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:05 UTC

[01/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Repository: incubator-geode
Updated Branches:
  refs/heads/feature/GEODE-917 [created] f6c4c2f9e


http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/cache/AttributesMutator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/AttributesMutator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/cache/AttributesMutator.java
deleted file mode 100644
index 1d36536..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/AttributesMutator.java
+++ /dev/null
@@ -1,224 +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.cache;
-
-
-/**
- * Supports modification of certain region attributes after the region has been
- * created. It is recommended that the attributes be completely initialized
- * using an {@link AttributesFactory} before creating the region instead of
- * using an <code>AttributesMutator</code> after region creation. This will
- * avoid a potential performance penalty due to the additional
- * network traffic.
- *<p>
- * The setter methods all return the previous value of the attribute. 
- *
- * @author Eric Zoerner
- *
- *
- * @see Region#getAttributesMutator
- * @see RegionAttributes
- * @see AttributesFactory
- * @since 3.0
- */
-public interface AttributesMutator<K,V> {
-  
-  /** Returns the Region whose attributes this mutator affects.
-   * @return the Region this mutator affects
-   */
-  public Region<K,V> getRegion();
-  
-  /** Changes the timeToLive expiration attributes for the region as a whole
-   *
-   * @param timeToLive the expiration attributes for the region timeToLive
-   * @return the previous value of region timeToLive
-   * @throws IllegalArgumentException if timeToLive is null or if the
-   * ExpirationAction is LOCAL_INVALIDATE and the region is
-   * {@link DataPolicy#withReplication replicated}
-   * @throws IllegalStateException if statistics are disabled for this region.
-   */
-  public ExpirationAttributes setRegionTimeToLive(ExpirationAttributes timeToLive);
-  
-  /** Changes the idleTimeout expiration attributes for the region as a whole.
-   * Resets the {@link CacheStatistics#getLastAccessedTime} for the region.
-   *
-   * @param idleTimeout the ExpirationAttributes for this region idleTimeout
-   * @return the previous value of region idleTimeout
-   * @throws IllegalArgumentException if idleTimeout is null or if the
-   * ExpirationAction is LOCAL_INVALIDATE and the region is
-   * {@link DataPolicy#withReplication replicated}
-   * @throws IllegalStateException if statistics are disabled for this region.
-   */
-  public ExpirationAttributes setRegionIdleTimeout(ExpirationAttributes idleTimeout);
-    
-  /** Changes the timeToLive expiration attributes for values in this region.
-   *
-   * @param timeToLive the timeToLive expiration attributes for entries
-   * @return the previous value of entry timeToLive
-   * @throws IllegalArgumentException if timeToLive is null or if the
-   * ExpirationAction is LOCAL_DESTROY and the region is {@link DataPolicy#withReplication replicated} or if 
-   * the ExpirationAction is LOCAL_INVALIDATE and the region is 
-   * {@link DataPolicy#withReplication replicated}
-   * @throws IllegalStateException if statistics are disabled for this region.
-   */
-  public ExpirationAttributes setEntryTimeToLive(ExpirationAttributes timeToLive);
-  
-  /**
-   * Changes the custom timeToLive for values in this region
-   * @param custom the new CustomExpiry
-   * @return the old CustomExpiry
-   */
-  public CustomExpiry<K,V> setCustomEntryTimeToLive(CustomExpiry<K,V> custom);
-  
-  /** Changes the idleTimeout expiration attributes for values in the region.
-   *
-   * @param idleTimeout the idleTimeout expiration attributes for entries
-   * @return the previous value of entry idleTimeout
-   * @throws IllegalArgumentException if idleTimeout is null or if the
-   * ExpirationAction is LOCAL_DESTROY and the region is
-   * {@link DataPolicy#withReplication replicated}
-   * or if the the ExpirationAction is LOCAL_INVALIDATE and the region is 
-   * {@link DataPolicy#withReplication replicated}
-   * @see AttributesFactory#setStatisticsEnabled
-   * @throws IllegalStateException if statistics are disabled for this region.
-   */
-  public ExpirationAttributes setEntryIdleTimeout(ExpirationAttributes idleTimeout);
-  
-  /** Changes the CustomExpiry for idleTimeout for values in the region
-   * 
-   * @param custom the new CustomExpiry
-   * @return the old CustomExpiry
-   */
-  public CustomExpiry<K,V> setCustomEntryIdleTimeout(CustomExpiry<K,V> custom);
-  
-  /** Changes the CacheListener for the region.
-   * Removes listeners already added and calls {@link CacheCallback#close} on each of them.
-   * @param aListener a user defined cache listener
-   * @return the previous CacheListener if a single one exists; otherwise null.
-   * @throws IllegalStateException if more than one cache listener has already been added
-   * @deprecated as of GemFire 5.0, use {@link #addCacheListener} or {@link #initCacheListeners} instead.
-   */
-  @Deprecated
-  public CacheListener<K,V> setCacheListener(CacheListener<K,V> aListener);
-  /**
-   * Adds a cache listener to the end of the list of cache listeners on this region.
-   * @param aListener the user defined cache listener to add to the region.
-   * @throws IllegalArgumentException if <code>aListener</code> is null
-   * @since 5.0
-   */
-  public void addCacheListener(CacheListener<K,V> aListener);
-  /**
-   * Removes a cache listener from the list of cache listeners on this region.
-   * Does nothing if the specified listener has not been added.
-   * If the specified listener has been added then {@link CacheCallback#close} will
-   * be called on it; otherwise does nothing.
-   * @param aListener the cache listener to remove from the region.
-   * @throws IllegalArgumentException if <code>aListener</code> is null
-   * @since 5.0
-   */
-  public void removeCacheListener(CacheListener<K,V> aListener);
-  /**
-   * Removes all cache listeners, calling {@link CacheCallback#close} on each of them, and then adds each listener in the specified array.
-   * @param newListeners a possibly null or empty array of listeners to add to this region.
-   * @throws IllegalArgumentException if the <code>newListeners</code> array has a null element
-   * @since 5.0
-   */
-  public void initCacheListeners(CacheListener<K,V>[] newListeners);
-  
-  /** Changes the cache writer for the region.
-   * @param cacheWriter the cache writer
-   * @return the previous CacheWriter
-   */
-  public CacheWriter<K,V> setCacheWriter(CacheWriter<K,V> cacheWriter);
-  
-  /**
-   * Changes the cache loader for the region.
-   * 
-   * Changing the cache loader for partitioned regions is not recommended due to
-   * the fact that it can result in an inconsistent cache loader configuration.
-   * This feature may be removed in future releases.
-   * 
-   * @param cacheLoader
-   *          the cache loader
-   * @return the previous CacheLoader
-   */
-  public CacheLoader<K,V> setCacheLoader(CacheLoader<K,V> cacheLoader);
-  
-
-  /** Allows changing the eviction controller attributes for the region.
-   * 
-   * @return the {@link EvictionAttributesMutator} used to change the EvictionAttributes
-   */
-  public EvictionAttributesMutator getEvictionAttributesMutator();
-
-  /**
-   * Changes the evictor frequency for custom eviction attributes.
-   * 
-   * @param newStart
-   *          the new start time in millis since epoch for the evictor task
-   * 
-   * @param newInterval
-   *          the new interval between evictor task invocations in millis
-   * 
-   * @return the updated {@link CustomEvictionAttributes}
-   */
-  public CustomEvictionAttributes setCustomEvictionAttributes(long newStart,
-      long newInterval);
-
-  /**
-   * Sets cloning on region
-   * @param cloningEnable
-   * @since 6.1
-   */
-  public void setCloningEnabled(boolean cloningEnable);
-  /**
-   * Returns whether or not cloning is enabled on region
-   *
-   * @return True if cloning is enabled (default);
-   *         false cloning is not enabled.
-   *
-   * @since 6.1
-   */
-  public boolean getCloningEnabled();
-  
-  /**
-   * Adds GatewaySenderId to the list of GatewaySenderIds of the region.
-   * If the GatewaySenderId is not present on this VM then it will try to send it to other VM's
-   * 
-   * @param gatewaySenderId
-   */
-   public void addGatewaySenderId(String gatewaySenderId);
-   
-   /**
-    * Removes GatewaySenderId from the list of GatewaySenderIds of the region.
-    * @param gatewaySenderId 
-    */
-   public void removeGatewaySenderId(String gatewaySenderId);
-   
-   /**
-    * Adds AsyncEventQueueId to the list of AsyncEventQueueId of the region.
-    * @param asyncEventQueueId 
-    */
-   public void addAsyncEventQueueId(String asyncEventQueueId);
-   
-   /**
-    * Removes AsyncEventQueueId from the list of AsyncEventQueuesId of the region.
-    * @param asyncEventQueueId 
-    */
-   public void removeAsyncEventQueueId(String asyncEventQueueId);
-}


[45/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
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/CommonTests.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CommonTests.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CommonTests.java
deleted file mode 100644
index 4a37d36..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CommonTests.java
+++ /dev/null
@@ -1,582 +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.mockrunner.mock.web.MockHttpServletRequest;
-import com.mockrunner.mock.web.MockHttpServletResponse;
-import com.mockrunner.mock.web.MockHttpSession;
-import com.mockrunner.servlet.BasicServletTestCaseAdapter;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import java.util.concurrent.TimeUnit;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionAttributeListener;
-
-import static junit.framework.Assert.assertEquals;
-import static org.junit.Assert.*;
-
-/**
- * This servlet tests the effects of the downstream SessionCachingFilter filter.
- * When these tests are performed, the filter would already have taken effect.
- */
-public abstract class CommonTests extends BasicServletTestCaseAdapter {
-
-  protected static final String CONTEXT_PATH = "/test";
-
-  @Test
-  public void testGetSession1() throws Exception {
-    doFilter();
-    HttpSession session1 =
-        ((HttpServletRequest) getFilteredRequest()).getSession();
-    HttpSession session2 =
-        ((HttpServletRequest) getFilteredRequest()).getSession();
-
-    assertSame("Session should be the same", session1, session2);
-  }
-
-  @Test
-  public void testGetSession2() throws Exception {
-    doFilter();
-
-    HttpSession session1 = ((HttpServletRequest) getFilteredRequest()).getSession();
-
-    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
-    Cookie cookie = (Cookie) response.getCookies().get(0);
-    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
-
-    doFilter();
-
-    HttpSession session2 = ((HttpServletRequest) getFilteredRequest()).getSession();
-
-    assertEquals("Session objects across requests should be the same", session1, session2);
-  }
-
-  @Test
-  public void testGetAttributeRequest1() throws Exception {
-    doFilter();
-
-    getFilteredRequest().setAttribute("foo", "bar");
-
-    assertEquals("bar", getFilteredRequest().getAttribute("foo"));
-    assertNull("Unknown attribute should be null",
-        getFilteredRequest().getAttribute("baz"));
-  }
-
-  @Test
-  public void testGetAttributeRequest2() throws Exception {
-    // Setup
-    CallbackServlet s = (CallbackServlet) getServlet();
-    s.setCallback(new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) {
-        request.setAttribute("foo", "bar");
-      }
-    });
-    doFilter();
-
-    assertEquals("bar", getFilteredRequest().getAttribute("foo"));
-    assertNull("Unknown attribute should be null",
-        getFilteredRequest().getAttribute("baz"));
-  }
-
-  @Test
-  public void testGetAttributeSession1() throws Exception {
-    doFilter();
-
-    ((HttpServletRequest) getFilteredRequest()).getSession().setAttribute("foo", "bar");
-
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    assertEquals("bar", request.getSession().getAttribute("foo"));
-  }
-
-  /**
-   * Are attributes preserved across client requests?
-   */
-  @Test
-  public void testGetAttributeSession2() throws Exception {
-    doFilter();
-
-    ((HttpServletRequest) getFilteredRequest()).getSession().setAttribute("foo", "bar");
-
-    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
-    Cookie cookie = (Cookie) response.getCookies().get(0);
-    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
-
-    doFilter();
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-
-    assertEquals("bar", request.getSession().getAttribute("foo"));
-  }
-
-  /**
-   * Setting a session attribute to null should remove it
-   */
-  @Test
-  public void testSetAttributeNullSession1() throws Exception {
-    // Setup
-    CallbackServlet s = (CallbackServlet) getServlet();
-    s.setCallback(new Callback() {
-      private boolean called = false;
-
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) {
-        if (called) {
-          request.getSession().setAttribute("foo", null);
-        } else {
-          request.getSession().setAttribute("foo", "bar");
-          called = true;
-        }
-      }
-    });
-
-    doFilter();
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-
-    String attr = (String) session.getAttribute("foo");
-    assertNull("Attribute should be null but is " + attr, attr);
-  }
-
-
-  /**
-   * Test that various methods throw the appropriate exception when the session is
-   * invalid.
-   */
-  @Test
-  public void testInvalidate1() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.getAttribute("foo");
-      fail("Session should be invalid and an exception should be thrown");
-    } catch (IllegalStateException iex) {
-      // Pass
-    }
-  }
-
-  @Test
-  public void testInvalidate2() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.getAttributeNames();
-      fail("Session should be invalid and an exception should be thrown");
-    } catch (IllegalStateException iex) {
-      // Pass
-    }
-  }
-
-  @Ignore(value = "until mockrunner 1.0.9 - see pull request #23")
-  public void testInvalidate3() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.getCreationTime();
-      fail("Session should be invalid and an exception should be thrown");
-    } catch (IllegalStateException iex) {
-      // Pass
-    }
-  }
-
-  @Test
-  public void testInvalidate4() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.getId();
-    } catch (Exception iex) {
-      fail("Exception should not be thrown");
-    }
-  }
-
-  @Test
-  public void testInvalidate5() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.getLastAccessedTime();
-      fail("Session should be invalid and an exception should be thrown");
-    } catch (IllegalStateException iex) {
-      // Pass
-    }
-  }
-
-  @Test
-  public void testInvalidate6() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.getMaxInactiveInterval();
-    } catch (Exception ex) {
-      fail("Exception should not be thrown");
-    }
-  }
-
-  @Test
-  public void testInvalidate7() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.getServletContext();
-    } catch (Exception ex) {
-      fail("Exception should not be thrown");
-    }
-  }
-
-  @Test
-  public void testInvalidate8() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.isNew();
-      fail("Session should be invalid and an exception should be thrown");
-    } catch (IllegalStateException iex) {
-      // Pass
-    }
-  }
-
-  @Test
-  public void testInvalidate9() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.removeAttribute("foo");
-      fail("Session should be invalid and an exception should be thrown");
-    } catch (IllegalStateException iex) {
-      // Pass
-    }
-  }
-
-  @Test
-  public void testInvalidate10() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.setAttribute("foo", "bar");
-      fail("Session should be invalid and an exception should be thrown");
-    } catch (IllegalStateException iex) {
-      // Pass
-    }
-  }
-
-  @Test
-  public void testInvalidate11() throws Exception {
-    doFilter();
-
-    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
-    session.invalidate();
-
-    try {
-      session.setMaxInactiveInterval(1);
-    } catch (Exception ex) {
-      fail("Exception should not be thrown");
-    }
-  }
-
-  /**
-   * Test that Session Attribute events get triggered
-   */
-  @Test
-  public void testSessionAttributeListener1() throws Exception {
-    AbstractListener listener = new HttpSessionAttributeListenerImpl();
-    RendezvousManager.registerListener(listener);
-    listener.setLatch(3);
-
-    doFilter();
-
-    // Ugh
-    MockHttpSession session = (MockHttpSession) ((GemfireHttpSession) ((HttpServletRequest) getFilteredRequest()).getSession()).getNativeSession();
-    session.addAttributeListener((HttpSessionAttributeListener) listener);
-    session.setAttribute("foo", "bar");
-    session.setAttribute("foo", "baz");
-    session.setAttribute("foo", null);
-
-    assertTrue("Event timeout", listener.await(1, TimeUnit.SECONDS));
-    assertEquals(ListenerEventType.SESSION_ATTRIBUTE_ADDED, listener.getEvents().get(0));
-    assertEquals(ListenerEventType.SESSION_ATTRIBUTE_REPLACED,
-        listener.getEvents().get(1));
-    assertEquals(ListenerEventType.SESSION_ATTRIBUTE_REMOVED,
-        listener.getEvents().get(2));
-  }
-
-  /**
-   * Test that both replace and remove events get triggered
-   */
-  @Test
-  public void testHttpSessionBindingListener1() throws Exception {
-    doFilter();
-
-    HttpSession session =
-        ((HttpServletRequest) getFilteredRequest()).getSession();
-
-    HttpSessionBindingListenerImpl listener1 =
-        new HttpSessionBindingListenerImpl(2);
-    HttpSessionBindingListenerImpl listener2 =
-        new HttpSessionBindingListenerImpl(2);
-
-    session.setAttribute("foo", listener1);
-    session.setAttribute("foo", listener2);
-    session.setAttribute("foo", null);
-
-    assertTrue("Event timeout", listener1.await(1, TimeUnit.SECONDS));
-    assertTrue("Event timeout", listener2.await(1, TimeUnit.SECONDS));
-
-    assertEquals("Event list size incorrect", 2, listener1.getEvents().size());
-    assertEquals("Event list size incorrect", 2, listener2.getEvents().size());
-    assertEquals(ListenerEventType.SESSION_VALUE_BOUND, listener1.getEvents().get(0));
-    assertEquals(ListenerEventType.SESSION_VALUE_UNBOUND,
-        listener1.getEvents().get(1));
-    assertEquals(ListenerEventType.SESSION_VALUE_BOUND, listener2.getEvents().get(0));
-    assertEquals(ListenerEventType.SESSION_VALUE_UNBOUND,
-        listener2.getEvents().get(1));
-  }
-
-  @Test
-  public void testGetId1() throws Exception {
-    doFilter();
-
-    assertNotNull("Session Id should not be null",
-        ((HttpServletRequest) getFilteredRequest()).getSession().getId());
-  }
-
-  /**
-   * Test that multiple calls from the same client return the same session id
-   */
-  @Test
-  public void testGetId2() throws Exception {
-    doFilter();
-
-    String sessionId = ((HttpServletRequest) getFilteredRequest()).getSession().getId();
-
-    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
-    Cookie cookie = (Cookie) response.getCookies().get(0);
-    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
-
-    doFilter();
-
-    assertEquals("Session Ids should be the same", sessionId,
-        ((HttpServletRequest) getFilteredRequest()).getSession().getId());
-  }
-
-  @Test
-  public void testGetCreationTime1() throws Exception {
-    doFilter();
-
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    assertTrue("Session should have a non-zero creation time",
-        request.getSession().getCreationTime() > 0);
-  }
-
-
-  /**
-   * Test that multiple calls from the same client don't change the creation time.
-   */
-  @Test
-  public void testGetCreationTime2() throws Exception {
-    doFilter();
-
-    long creationTime = ((HttpServletRequest) getFilteredRequest()).getSession().getCreationTime();
-
-    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
-    Cookie cookie = (Cookie) response.getCookies().get(0);
-    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
-
-    doFilter();
-
-    assertEquals("Session creation time should be the same", creationTime,
-        ((HttpServletRequest) getFilteredRequest()).getSession().getCreationTime());
-  }
-
-  @Test
-  public void testResponseContainsRequestedSessionId1() throws Exception {
-    Cookie cookie = new Cookie("JSESSIONID", "999-GF");
-    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
-
-    doFilter();
-
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-
-    assertEquals("Request does not contain requested session ID", "999-GF",
-        request.getRequestedSessionId());
-  }
-
-  @Test
-  public void testGetLastAccessedTime1() throws Exception {
-    doFilter();
-
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    assertTrue("Session should have a non-zero last access time",
-        request.getSession().getLastAccessedTime() > 0);
-  }
-
-
-  /**
-   * Test that repeated accesses update the last accessed time
-   */
-  @Test
-  public void testGetLastAccessedTime2() throws Exception {
-    // Setup
-    CallbackServlet s = (CallbackServlet) getServlet();
-    s.setCallback(new Callback() {
-
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) {
-        request.getSession();
-      }
-    });
-
-    doFilter();
-
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    long lastAccess = request.getSession().getLastAccessedTime();
-    assertTrue("Session should have a non-zero last access time", lastAccess > 0);
-
-    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
-    Cookie cookie = (Cookie) response.getCookies().get(0);
-
-    MockHttpServletRequest mRequest = getWebMockObjectFactory().createMockRequest();
-    mRequest.setRequestURL("/test/foo/bar");
-    mRequest.setContextPath(CONTEXT_PATH);
-    mRequest.addCookie(cookie);
-    getWebMockObjectFactory().addRequestWrapper(mRequest);
-
-    Thread.sleep(50);
-    doFilter();
-
-    assertTrue("Last access time should be changing",
-        request.getSession().getLastAccessedTime() > lastAccess);
-  }
-
-  @Test
-  public void testGetSetMaxInactiveInterval() throws Exception {
-    doFilter();
-
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    request.getSession().setMaxInactiveInterval(50);
-
-    assertEquals(50, request.getSession().getMaxInactiveInterval());
-  }
-
-  @Test
-  public void testIsNew1() throws Exception {
-    doFilter();
-
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    assertTrue("Session should be new", request.getSession().isNew());
-  }
-
-  /**
-   * Subsequent calls should not return true
-   */
-  @Test
-  public void testIsNew2() throws Exception {
-    // Setup
-    CallbackServlet s = (CallbackServlet) getServlet();
-    s.setCallback(new Callback() {
-
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) {
-        request.getSession();
-      }
-    });
-
-    doFilter();
-
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    request.getSession();
-
-    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
-    Cookie cookie = (Cookie) response.getCookies().get(0);
-
-    MockHttpServletRequest mRequest = getWebMockObjectFactory().createMockRequest();
-    mRequest.setRequestURL("/test/foo/bar");
-    mRequest.setContextPath(CONTEXT_PATH);
-    mRequest.addCookie(cookie);
-    getWebMockObjectFactory().addRequestWrapper(mRequest);
-
-    doFilter();
-
-    request = (HttpServletRequest) getFilteredRequest();
-    HttpSession s1 = request.getSession();
-
-    assertFalse("Subsequent isNew() calls should be false", request.getSession().isNew());
-  }
-
-  @Test
-  public void testIsRequestedSessionIdFromCookie() {
-    MockHttpServletRequest mRequest = getWebMockObjectFactory().getMockRequest();
-    Cookie c = new Cookie("JSESSIONID", "1-GF");
-    mRequest.addCookie(c);
-
-    doFilter();
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    request.getSession();
-
-    assertTrue(request.isRequestedSessionIdFromCookie());
-  }
-
-  @Test
-  public void testIsRequestedSessionIdFromURL() {
-    MockHttpServletRequest mRequest = getWebMockObjectFactory().getMockRequest();
-    mRequest.setRequestURL("/foo/bar;jsessionid=1");
-
-    doFilter();
-    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
-    request.getSession();
-
-    assertFalse("Session ID should not be from cookie",
-        request.isRequestedSessionIdFromCookie());
-    assertTrue("Session ID should be from URL", request.isRequestedSessionIdFromURL());
-  }
-
-}

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/HttpSessionAttributeListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionAttributeListenerImpl.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionAttributeListenerImpl.java
deleted file mode 100644
index 6d5679a..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionAttributeListenerImpl.java
+++ /dev/null
@@ -1,46 +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.HttpSessionAttributeListener;
-import javax.servlet.http.HttpSessionBindingEvent;
-
-/**
- *
- */
-public class HttpSessionAttributeListenerImpl extends AbstractListener
-    implements HttpSessionAttributeListener {
-
-  @Override
-  public synchronized void attributeAdded(HttpSessionBindingEvent se) {
-    events.add(ListenerEventType.SESSION_ATTRIBUTE_ADDED);
-    latch.countDown();
-  }
-
-  @Override
-  public synchronized void attributeRemoved(HttpSessionBindingEvent se) {
-    events.add(ListenerEventType.SESSION_ATTRIBUTE_REMOVED);
-    latch.countDown();
-  }
-
-  @Override
-  public synchronized void attributeReplaced(HttpSessionBindingEvent se) {
-    events.add(ListenerEventType.SESSION_ATTRIBUTE_REPLACED);
-    latch.countDown();
-  }
-}

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/HttpSessionBindingListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionBindingListenerImpl.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionBindingListenerImpl.java
deleted file mode 100644
index ce25cb6..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionBindingListenerImpl.java
+++ /dev/null
@@ -1,42 +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.Serializable;
-import javax.servlet.http.HttpSessionBindingEvent;
-import javax.servlet.http.HttpSessionBindingListener;
-
-public class HttpSessionBindingListenerImpl extends AbstractListener implements
-    HttpSessionBindingListener, Serializable {
-
-  public HttpSessionBindingListenerImpl(int i) {
-    super(i);
-  }
-
-  @Override
-  public synchronized void valueBound(HttpSessionBindingEvent event) {
-    events.add(ListenerEventType.SESSION_VALUE_BOUND);
-    latch.countDown();
-  }
-
-  @Override
-  public synchronized void valueUnbound(HttpSessionBindingEvent event) {
-    events.add(ListenerEventType.SESSION_VALUE_UNBOUND);
-    latch.countDown();
-  }
-}

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/HttpSessionListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl.java
deleted file mode 100644
index 55510a6..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl.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;
-
-import com.gemstone.gemfire.modules.session.filter.SessionCachingFilter;
-
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionEvent;
-import javax.servlet.http.HttpSessionListener;
-
-public class HttpSessionListenerImpl extends AbstractListener
-    implements HttpSessionListener {
-
-  public synchronized void sessionCreated(HttpSessionEvent se) {
-    HttpSession gfeSession = SessionCachingFilter.getWrappingSession(
-        se.getSession());
-    gfeSession.setAttribute("gemfire-session-id", gfeSession.getId());
-    events.add(ListenerEventType.SESSION_CREATED);
-    latch.countDown();
-  }
-
-  public synchronized void sessionDestroyed(HttpSessionEvent se) {
-    events.add(ListenerEventType.SESSION_DESTROYED);
-    latch.countDown();
-  }
-}

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/HttpSessionListenerImpl2.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl2.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl2.java
deleted file mode 100644
index bccd83f..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl2.java
+++ /dev/null
@@ -1,43 +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.modules.session.filter.SessionCachingFilter;
-
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionEvent;
-import javax.servlet.http.HttpSessionListener;
-
-public class HttpSessionListenerImpl2 extends AbstractListener
-    implements HttpSessionListener {
-
-  @Override
-  public void sessionCreated(HttpSessionEvent se) {
-    events.add(ListenerEventType.SESSION_CREATED);
-    latch.countDown();
-  }
-
-  @Override
-  public void sessionDestroyed(HttpSessionEvent se) {
-    HttpSession gfeSession = SessionCachingFilter.getWrappingSession(
-        se.getSession());
-    assert (gfeSession != null);
-    events.add(ListenerEventType.SESSION_DESTROYED);
-    latch.countDown();
-  }
-}

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/MyServletTester.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/MyServletTester.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/MyServletTester.java
deleted file mode 100644
index 09c9536..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/MyServletTester.java
+++ /dev/null
@@ -1,38 +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 org.eclipse.jetty.servlet.ServletTester;
-
-/**
- * Extend the base ServletTester class with a couple of helper methods. This
- * depends on a patched ServletTester class which exposes the _server variable
- * as package-private.
- */
-public class MyServletTester extends ServletTester {
-
-  public boolean isStarted() {
-//    return _server.isStarted();
-    return false;
-  }
-
-  public boolean isStopped() {
-//    return _server.isStopped();
-    return false;
-  }
-}

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/RendezvousManager.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/RendezvousManager.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/RendezvousManager.java
deleted file mode 100644
index acb5a1b..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/RendezvousManager.java
+++ /dev/null
@@ -1,46 +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.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- *
- */
-public class RendezvousManager {
-
-  private static AbstractListener listener = null;
-
-  private static CountDownLatch latch = new CountDownLatch(1);
-
-  public static void registerListener(AbstractListener listener) {
-    RendezvousManager.listener = listener;
-    latch.countDown();
-  }
-
-  public static AbstractListener getListener() {
-    try {
-      latch.await(2, TimeUnit.SECONDS);
-    } catch (InterruptedException ex) {
-    }
-
-    return listener;
-  }
-
-}

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/ServletRequestAttributeListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestAttributeListenerImpl.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestAttributeListenerImpl.java
deleted file mode 100644
index ab06356..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestAttributeListenerImpl.java
+++ /dev/null
@@ -1,45 +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.ServletRequestAttributeEvent;
-import javax.servlet.ServletRequestAttributeListener;
-
-/**
- * @author jdeppe
- */
-public class ServletRequestAttributeListenerImpl extends AbstractListener
-    implements ServletRequestAttributeListener {
-
-  public synchronized void attributeAdded(ServletRequestAttributeEvent srae) {
-    events.add(ListenerEventType.SERVLET_REQUEST_ATTRIBUTE_ADDED);
-    latch.countDown();
-  }
-
-  public synchronized void attributeRemoved(ServletRequestAttributeEvent srae) {
-    events.add(ListenerEventType.SERVLET_REQUEST_ATTRIBUTE_REMOVED);
-    latch.countDown();
-  }
-
-  public synchronized void attributeReplaced(
-      ServletRequestAttributeEvent srae) {
-    events.add(ListenerEventType.SERVLET_REQUEST_ATTRIBUTE_REPLACED);
-    latch.countDown();
-  }
-
-}

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/ServletRequestListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestListenerImpl.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestListenerImpl.java
deleted file mode 100644
index 5e007dd..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestListenerImpl.java
+++ /dev/null
@@ -1,36 +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.ServletRequestEvent;
-import javax.servlet.ServletRequestListener;
-
-public class ServletRequestListenerImpl extends AbstractListener
-    implements ServletRequestListener {
-
-  public synchronized void requestDestroyed(ServletRequestEvent sre) {
-    events.add(ListenerEventType.SERVLET_REQUEST_DESTROYED);
-    latch.countDown();
-  }
-
-  public synchronized void requestInitialized(ServletRequestEvent sre) {
-    events.add(ListenerEventType.SERVLET_REQUEST_INITIALIZED);
-    latch.countDown();
-  }
-
-}



[14/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXml.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXml.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXml.java
deleted file mode 100644
index 4bf14a3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXml.java
+++ /dev/null
@@ -1,170 +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.admin.internal;
-
-import com.gemstone.gemfire.internal.ClassPathLoader;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import org.xml.sax.*;
-import java.io.*;
-
-/**
- * The abstract superclass of classes that convert XML into a {@link
- * com.gemstone.gemfire.admin.DistributedSystemConfig} and vice versa.
- * It provides helper methods and constants.
- *
- * @author David Whitlock
- * @since 4.0
- */
-abstract class ManagedEntityConfigXml implements EntityResolver, ErrorHandler {
-
-  /** The location of the DTD file */
-  protected static final String DTD_LOCATION =
-    "/com/gemstone/gemfire/admin/doc-files/ds5_0.dtd";
-
-  /** The URL for the DTD */
-  protected static final String SYSTEM_ID =
-    "http://www.gemstone.com/dtd/ds5_0.dtd";
-
-  /** The public ID for the DTD */
-  protected static final String PUBLIC_ID = 
-    "-//GemStone Systems, Inc.//GemFire Distributed System 5.0//EN";
-
-  /** The name of the <code>distributed-system</code> element. */
-  public static final String DISTRIBUTED_SYSTEM =
-    "distributed-system";
-
-  /** The name of the <code>id</code> attribute. */
-  public static final String ID = "id";
-
-  /** The name of the <code>disable-tcp</code> attribute. */
-  public static final String DISABLE_TCP = "disable-tcp";
-
-  /** The name of the <code>remote-command</code> element. */
-  public static final String REMOTE_COMMAND = "remote-command";
-
-  /** The name of the <code>locators</code> element. */
-  public static final String LOCATORS = "locators";
-
-  /** The name of the <code>ssl</code> element. */
-  public static final String SSL = "ssl";
-
-  /** The name of the <code>cache-server</code> element */
-  public static final String CACHE_SERVER = "cache-server";
-
-  /** The name of the <code>multicast</code> element */
-  public static final String MULTICAST = "multicast";
-
-  /** The name of the <code>locator</code> element */
-  public static final String LOCATOR = "locator";
-
-  /** The name of the <code>port</code> attribute */
-  public static final String PORT = "port";
-
-  /** The name of the <code>address</code> attribute */
-  public static final String ADDRESS = "address";
-
-  /** The name of the <code>host</code> element. */
-  public static final String HOST = "host";
-
-  /** The name of the <code>working-directory</code> element */
-  public static final String WORKING_DIRECTORY = "working-directory";
-
-  /** The name of the <code>product-directory</code> element */
-  public static final String PRODUCT_DIRECTORY = "product-directory";
-
-  /** The name of the <code>protocols</code> element */
-  public static final String PROTOCOLS = "protocols";
-
-  /** The name of the <code>ciphers</code> element */
-  public static final String CIPHERS = "ciphers";
-
-  /** The name of the <code>property</code> element */
-  public static final String PROPERTY = "property";
-
-  /** Name of the <code>authentication-required</code> attribute */
-  public static final String AUTHENTICATION_REQUIRED =
-    "authentication-required";
-
-  /** The name of the <code>key</code> element */
-  public static final String KEY = "key";
-
-  /** The name of the <code>value</code> element */
-  public static final String VALUE = "value";
-  
-  /** The name of the <code>classpath</code> element */
-  public static final String CLASSPATH = "classpath";
-
-  ///////////////////////  Instance Methods  ///////////////////////
-
-  /**
-   * Given a public id, attempt to resolve it to a DTD.  Returns an
-   * <code>InputSoure</code> for the DTD.
-   */
-  public InputSource resolveEntity(String publicId, String systemId) 
-    throws SAXException {
-
-    if (publicId == null || systemId == null) {
-      throw new SAXException(LocalizedStrings.ManagedEntityConfigXml_PUBLIC_ID_0_SYSTEM_ID_1.toLocalizedString(new Object[] {publicId, systemId}));
-    }
-
-    // Figure out the location for the publicId.
-    String location = DTD_LOCATION;
-
-    InputSource result;
-//    if (location != null) (cannot be null) 
-    {
-      InputStream stream = ClassPathLoader.getLatest().getResourceAsStream(getClass(), location);
-      if (stream != null) {
-        result = new InputSource(stream);
-      } else {
-        throw new SAXNotRecognizedException(LocalizedStrings.ManagedEntityConfigXml_DTD_NOT_FOUND_0.toLocalizedString(location));
-      }
-
-//    } else {
-//      throw new SAXNotRecognizedException(LocalizedStrings.ManagedEntityConfigXml_COULD_NOT_FIND_DTD_FOR_0_1.toLocalizedString(new Object[] {publicId, systemId}));
-    }
-
-    return result;
-  }
-
-  /**
-   * Warnings are ignored
-   */
-  public void warning(SAXParseException ex) throws SAXException { 
-
-  }
-
-  /**
-   * Throws a {@link com.gemstone.gemfire.cache.CacheXmlException}
-   */
-  public void error(SAXParseException ex) throws SAXException {
-    IllegalArgumentException ex2 = new IllegalArgumentException(LocalizedStrings.ManagedEntityConfigXml_ERROR_WHILE_PARSING_XML.toLocalizedString());
-    ex2.initCause(ex);
-    throw ex2;
-  }
-  
-  /**
-   * Throws a {@link com.gemstone.gemfire.cache.CacheXmlException}
-   */
-  public void fatalError(SAXParseException ex) throws SAXException {
-    IllegalArgumentException ex2 = new IllegalArgumentException(LocalizedStrings.ManagedEntityConfigXml_FATAL_ERROR_WHILE_PARSING_XML.toLocalizedString());
-    ex2.initCause(ex);
-    throw ex2;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXmlGenerator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXmlGenerator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXmlGenerator.java
deleted file mode 100644
index e881a54..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXmlGenerator.java
+++ /dev/null
@@ -1,386 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import javax.xml.transform.*; 
-//import javax.xml.transform.dom.DOMSource; 
-import javax.xml.transform.sax.SAXSource; 
-import javax.xml.transform.stream.StreamResult;  
-import org.xml.sax.*;
-//import org.xml.sax.ext.*;
-import org.xml.sax.helpers.AttributesImpl; 
-import java.io.*;
-import java.util.*;
-
-/**
- * Generates XML data that represents the managed entities in an
- * <code>AdminDistributedSystem</code>.  This class is used mainly for
- * testing.
- *
- * @author David Whitlock
- * @since 4.0
- */
-public class ManagedEntityConfigXmlGenerator
-  extends ManagedEntityConfigXml implements XMLReader {
-
-  /** An empty <code>Attributes</code> */
-  private static Attributes EMPTY = new AttributesImpl();
-
-  /////////////////////////  Instance Fields  ////////////////////////
-
-  /** The <code>AdminDistributedSystem</code> for which we are
-   * generating XML */
-  private AdminDistributedSystem system;
-
-  /** The content handler to which SAX events are generated */
-  private ContentHandler handler;
-
-  /////////////////////////  Static Methods  ////////////////////////
-
-  /**
-   * Generates an XML representation of all of the managed entities in
-   * the given <code>AdminDistributedSystem</code>.
-   */
-  public static void generate(AdminDistributedSystem system,
-                              PrintWriter pw) {
-    (new ManagedEntityConfigXmlGenerator(system)).generate(pw);
-  }
-
-  /////////////////////////  Constructors  //////////////////////////
-
-  /**
-   * Creates a new generator for the given
-   * <code>AdminDistributedSystem</code>. 
-   */
-  private ManagedEntityConfigXmlGenerator(AdminDistributedSystem
-                                          system) {
-    this.system = system;
-  }
-
-  ///////////////////////  Instance Methods  ///////////////////////
-
-  /**
-   * Generates XML and writes it to the given <code>PrintWriter</code>
-   */
-  private void generate(PrintWriter pw) {
-    // Use JAXP's transformation API to turn SAX events into pretty
-    // XML text
-    try {
-      Source src = new SAXSource(this, new InputSource());
-      Result res = new StreamResult(pw);
-
-      TransformerFactory xFactory = TransformerFactory.newInstance();
-      Transformer xform = xFactory.newTransformer();
-      xform.setOutputProperty(OutputKeys.METHOD, "xml");
-      xform.setOutputProperty(OutputKeys.INDENT, "yes");
-      xform.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, SYSTEM_ID);
-      xform.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, PUBLIC_ID);
-      xform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
-      xform.transform(src, res);
-      pw.flush();
-
-    } catch (Exception ex) {
-      RuntimeException ex2 = new RuntimeException(LocalizedStrings.ManagedEntityConfigXmlGenerator_EXCEPTION_THROWN_WHILE_GENERATING_XML.toLocalizedString());
-      ex2.initCause(ex);
-      throw ex2;
-    }
-  }
-
-  /**
-   * Called by the transformer to parse the "input source".  We ignore
-   * the input source and, instead, generate SAX events to the {@link
-   * #setContentHandler ContentHandler}.
-   */
-  public void parse(InputSource input) throws SAXException {
-    Assert.assertTrue(this.handler != null);
-
-    handler.startDocument();
-
-    AttributesImpl atts = new AttributesImpl();
-
-    atts.addAttribute("", "", ID, "",
-                      String.valueOf(this.system.getConfig().getSystemId()));
-
-    handler.startElement("", DISTRIBUTED_SYSTEM, DISTRIBUTED_SYSTEM, atts);
-
-    // Add generation methods here
-    try {
-      generateRemoteCommand();
-      generateDiscovery();
-      generateSSL();
-      generateCacheServers();
-
-    } catch (AdminException ex) {
-      throw new SAXException(LocalizedStrings.ManagedEntityConfigXmlGenerator_AN_ADMINEXCEPTION_WAS_THROWN_WHILE_GENERATING_XML.toLocalizedString(), ex);
-    }
-
-    handler.endElement("", DISTRIBUTED_SYSTEM, DISTRIBUTED_SYSTEM);
-    handler.endDocument();
-  }
-
-  /**
-   * Generates XML for the remote command
-   */
-  private void generateRemoteCommand() throws SAXException {
-    String remoteCommand = this.system.getRemoteCommand();
-
-    handler.startElement("", REMOTE_COMMAND, REMOTE_COMMAND, EMPTY);
-
-    handler.characters(remoteCommand.toCharArray(), 0,
-                       remoteCommand.length());
-
-    handler.endElement("", REMOTE_COMMAND, REMOTE_COMMAND);
-  }
-
-  /**
-   * Generates XML for locators in the distributed system
-   */
-  private void generateDiscovery() throws SAXException {
-    handler.startElement("", LOCATORS, LOCATORS, EMPTY);
-
-    generateLocators();
-    
-    handler.endElement("", LOCATORS, LOCATORS);
-  }
-
-  /**
-   * Generates XML for the distributed system's locators
-   */
-  private void generateLocators() throws SAXException {
-    DistributionLocator[] locators =
-      this.system.getDistributionLocators();
-    for (int i = 0; i < locators.length; i++) {
-      generateLocator(locators[i].getConfig());
-    }
-  }
-
-  /**
-   * Generates XML for a locator
-   */
-  private void generateLocator(DistributionLocatorConfig config) 
-    throws SAXException {
-    
-    AttributesImpl atts = new AttributesImpl();
-    atts.addAttribute("", "", PORT, "",
-                      String.valueOf(config.getPort()));
-
-    handler.startElement("", LOCATOR, LOCATOR, atts);
-
-    generateEntityConfig(config);
-
-    handler.endElement("", LOCATOR, LOCATOR);
-  }
-
-  /**
-   * Generates XML for attributes common to all managed entities.
-   */
-  private void generateEntityConfig(ManagedEntityConfig config) 
-    throws SAXException {
-
-    String host = config.getHost();
-    if (host != null) {
-      handler.startElement("", HOST, HOST, EMPTY);
-      handler.characters(host.toCharArray(), 0, host.length());
-      handler.endElement("", HOST, HOST);
-    }
-
-    String remoteCommand = config.getRemoteCommand();
-    if (remoteCommand != null) {
-      handler.startElement("", REMOTE_COMMAND, REMOTE_COMMAND, EMPTY);
-      handler.characters(remoteCommand.toCharArray(), 0,
-                         remoteCommand.length());
-      handler.endElement("", REMOTE_COMMAND, REMOTE_COMMAND);
-    }
-
-    String workingDirectory = config.getWorkingDirectory();
-    if (workingDirectory != null) {
-      handler.startElement("", WORKING_DIRECTORY, WORKING_DIRECTORY, EMPTY);
-      handler.characters(workingDirectory.toCharArray(), 0,
-                         workingDirectory.length());
-      handler.endElement("", WORKING_DIRECTORY, WORKING_DIRECTORY);
-    }
-
-    String productDirectory = config.getProductDirectory();
-    if (productDirectory != null) {
-      handler.startElement("", PRODUCT_DIRECTORY, PRODUCT_DIRECTORY, EMPTY);
-      handler.characters(productDirectory.toCharArray(), 0,
-                         productDirectory.length());
-      handler.endElement("", PRODUCT_DIRECTORY, PRODUCT_DIRECTORY);
-    }
-  }
-
-  /**
-   * Generates XML for the SSL configuration of the distributed
-   * system.
-   */
-  private void generateSSL() throws SAXException {
-    DistributedSystemConfig config = this.system.getConfig();
-
-    boolean sslEnabled = config.isSSLEnabled();
-    if (!sslEnabled) {
-      return;
-    }
-
-    AttributesImpl atts = new AttributesImpl();
-    atts.addAttribute("", "", AUTHENTICATION_REQUIRED, "",
-                      String.valueOf(config.isSSLAuthenticationRequired()));
-
-    handler.startElement("", SSL, SSL, atts);
-
-    String protocols = config.getSSLProtocols();
-    if (protocols != null) {
-      handler.startElement("", PROTOCOLS, PROTOCOLS, EMPTY);
-      handler.characters(protocols.toCharArray(), 0,
-                         protocols.length());
-      handler.endElement("", PROTOCOLS, PROTOCOLS);
-    }
-
-    String ciphers = config.getSSLCiphers();
-    if (ciphers != null) {
-      handler.startElement("", CIPHERS, CIPHERS, EMPTY);
-      handler.characters(ciphers.toCharArray(), 0,
-                         ciphers.length());
-      handler.endElement("", CIPHERS, CIPHERS);
-    }
-
-    Properties sslProps = config.getSSLProperties();
-    for (Iterator iter = sslProps.entrySet().iterator();
-         iter.hasNext(); ) {
-      Map.Entry entry = (Map.Entry) iter.next();
-      String key = (String) entry.getKey();
-      String value = (String) entry.getValue();
-      
-      handler.startElement("", PROPERTY, PROPERTY, EMPTY);
-
-      handler.startElement("", KEY, KEY, EMPTY);
-      handler.characters(key.toCharArray(), 0, key.length());
-      handler.endElement("", KEY, KEY);
-
-      handler.startElement("", VALUE, VALUE, EMPTY);
-      handler.characters(value.toCharArray(), 0, value.length());
-      handler.endElement("", VALUE, VALUE);
-
-      handler.endElement("", PROPERTY, PROPERTY);
-    }
-
-    handler.endElement("", SSL, SSL);
-  }
-
-  /**
-   * Generates an XML representation of the
-   * <code>CacheServer</code>s in the distributed system.
-   */
-  private void generateCacheServers()
-    throws SAXException, AdminException {
-
-    CacheServer[] servers = this.system.getCacheServers();
-    for (int i = 0; i < servers.length; i++) {
-      generateCacheServer(servers[i].getConfig());
-    }
-  }
-
-  /**
-   * Generates an XML representation of a
-   * <code>CacheServerConfig</code>.
-   */
-  private void generateCacheServer(CacheServerConfig config) 
-    throws SAXException {
-
-    handler.startElement("", CACHE_SERVER, CACHE_SERVER, EMPTY);
-
-    generateEntityConfig(config);
-
-    String classpath = config.getClassPath();
-    if (classpath != null) {
-      handler.startElement("", CLASSPATH, CLASSPATH, EMPTY);
-      handler.characters(classpath.toCharArray(), 0,
-                         classpath.length());
-      handler.endElement("", CLASSPATH, CLASSPATH);
-    }
-
-    handler.endElement("", CACHE_SERVER, CACHE_SERVER);
-  }
-
-  /**
-   * Keep track of the content handler for use during {@link #parse(String)}.
-   */
-  public void setContentHandler(ContentHandler handler) {
-    this.handler = handler;
-  }  
-
-  public ContentHandler getContentHandler() {
-    return this.handler;
-  }  
-
-  public ErrorHandler getErrorHandler() {
-    return this;
-  }
-
-  //////////  Inherited methods that don't do anything  //////////
-
-  public boolean getFeature(String name)
-    throws SAXNotRecognizedException, SAXNotSupportedException {
-    return false;
-  }
-
-  public void setFeature(String name, boolean value)
-    throws SAXNotRecognizedException, SAXNotSupportedException {
-
-  }
-
-  public Object getProperty(String name)
-    throws SAXNotRecognizedException, SAXNotSupportedException {
-
-    return null;
-  }
-
-  public void setProperty(String name, Object value)
-    throws SAXNotRecognizedException, SAXNotSupportedException {
-
-  }
-
-  public void setEntityResolver(EntityResolver resolver) {
-
-  }
-
-  public EntityResolver getEntityResolver() {
-    return this;
-  }
-  
-  public void setDTDHandler(DTDHandler handler) {
-
-  }
-
-  public DTDHandler getDTDHandler() {
-    return null;
-  }
-
-  public void setErrorHandler(ErrorHandler handler) {
-
-  }
-
-  public void parse(String systemId)
-    throws IOException, SAXException {
-
-  }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXmlParser.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXmlParser.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXmlParser.java
deleted file mode 100644
index 3188d49..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigXmlParser.java
+++ /dev/null
@@ -1,623 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-import java.io.*;
-import java.util.*;
-
-/**
- * Parses an XML file and configures a {@link DistributedSystemConfig}
- * from it.
- *
- * @author David Whitlock
- * @since 4.0
- */
-public class ManagedEntityConfigXmlParser
-  extends ManagedEntityConfigXml implements ContentHandler {
-
-  /** The <code>DistributedSystemConfig</code> to be configured */
-  private DistributedSystemConfig config;
-
-  /** The stack of intermediate values used while parsing */
-  private Stack stack = new Stack();
-
-  //////////////////////  Static Methods  //////////////////////
-
-  /**
-   * Parses XML data and from it configures a
-   * <code>DistributedSystemConfig</code>.
-   *
-   * @throws AdminXmlException
-   *         If an error is encountered while parsing the XML
-   */
-  public static void parse(InputStream is,
-                           DistributedSystemConfig config) {
-    ManagedEntityConfigXmlParser handler =
-      new ManagedEntityConfigXmlParser();
-    handler.config = config;
-
-    try {
-      SAXParserFactory factory = SAXParserFactory.newInstance();
-      factory.setValidating(true);
-      SAXParser parser = factory.newSAXParser();
-      parser.parse(is, new DefaultHandlerDelegate(handler));
-
-    } catch (Exception ex) {
-      if (ex instanceof AdminXmlException) {
-        throw (AdminXmlException) ex;
-
-      } else if (ex.getCause() instanceof AdminXmlException) {
-        throw (AdminXmlException) ex.getCause();
-
-      } else if (ex instanceof SAXException) {
-        // Silly JDK 1.4.2 XML parser wraps RunTime exceptions in a
-        // SAXException.  Pshaw!
-
-        SAXException sax = (SAXException) ex;
-        Exception cause = sax.getException();
-        if (cause instanceof AdminXmlException) {
-          throw (AdminXmlException) cause;
-        }
-      }
-
-      throw new AdminXmlException(LocalizedStrings.ManagedEntityConfigXmlParser_WHILE_PARSING_XML.toLocalizedString(), ex);
-    }
-  }
-
-  /**
-   * Helper method for parsing an integer
-   *
-   * @throws com.gemstone.gemfire.cache.CacheXmlException
-   *         If <code>s</code> is a malformed integer
-   */
-  private static int parseInt(String s) {
-    try {
-      return Integer.parseInt(s);
-
-    } catch (NumberFormatException ex) {
-      throw new AdminXmlException(LocalizedStrings.ManagedEntityConfigXmlParser_MALFORMED_INTEGER_0.toLocalizedString(s), ex);
-    }
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-//    if (this.system.isMcastEnabled()) {
-//      generateMulticast();
-//    }
-
-  public void startElement(String namespaceURI, String localName,
-                           String qName, Attributes atts)
-    throws SAXException {
-
-    if (qName.equals(DISTRIBUTED_SYSTEM)) {
-      startDistributedSystem(atts);
-
-    } else if (qName.equals(REMOTE_COMMAND)) {
-      startRemoteCommand(atts);
-
-    } else if (qName.equals(LOCATORS)) {
-      startLocators(atts);
-      
-    } else if (qName.equals(MULTICAST)) {
-      startMulticast(atts);
-
-    } else if (qName.equals(LOCATOR)) {
-      startLocator(atts);
-
-    } else if (qName.equals(HOST)) {
-      startHost(atts);
-
-    } else if (qName.equals(WORKING_DIRECTORY)) {
-      startWorkingDirectory(atts);
-
-    } else if (qName.equals(PRODUCT_DIRECTORY)) {
-      startProductDirectory(atts);
-
-    } else if (qName.equals(SSL)) {
-      startSSL(atts);
-
-    } else if (qName.equals(PROTOCOLS)) {
-      startProtocols(atts);
-
-    } else if (qName.equals(CIPHERS)) {
-      startCiphers(atts);
-
-    } else if (qName.equals(PROPERTY)) {
-      startProperty(atts);
-
-    } else if (qName.equals(KEY)) {
-      startKey(atts);
-
-    } else if (qName.equals(VALUE)) {
-      startValue(atts);
-
-    } else if (qName.equals(CACHE_SERVER)) {
-      startCacheServer(atts);
-
-    } else if (qName.equals(CLASSPATH)) {
-      startClassPath(atts);
-
-    } else {
-      throw new AdminXmlException(LocalizedStrings.ManagedEntityConfigXmlParser_UNKNOWN_XML_ELEMENT_0.toLocalizedString(qName));
-    }
-  }
-
-  public void endElement(String namespaceURI, String localName,
-                         String qName)
-    throws SAXException {
-
-    if (qName.equals(DISTRIBUTED_SYSTEM)) {
-      endDistributedSystem();
-
-    } else if (qName.equals(REMOTE_COMMAND)) {
-      endRemoteCommand();
-
-    } else if (qName.equals(LOCATORS)) {
-      endLocators();
-
-    } else if (qName.equals(MULTICAST)) {
-      endMulticast();
-
-    } else if (qName.equals(LOCATOR)) {
-      endLocator();
-
-    } else if (qName.equals(HOST)) {
-      endHost();
-
-    } else if (qName.equals(WORKING_DIRECTORY)) {
-      endWorkingDirectory();
-
-    } else if (qName.equals(PRODUCT_DIRECTORY)) {
-      endProductDirectory();
-
-    } else if (qName.equals(SSL)) {
-      endSSL();
-
-    } else if (qName.equals(PROTOCOLS)) {
-      endProtocols();
-
-    } else if (qName.equals(CIPHERS)) {
-      endCiphers();
-
-    } else if (qName.equals(PROPERTY)) {
-      endProperty();
-
-    } else if (qName.equals(KEY)) {
-      endKey();
-
-    } else if (qName.equals(VALUE)) {
-      endValue();
-
-    } else if (qName.equals(CACHE_SERVER)) {
-      endCacheServer();
-
-    } else if (qName.equals(CLASSPATH)) {
-      endClassPath();
-
-    } else {
-      throw new AdminXmlException(LocalizedStrings.ManagedEntityConfigXmlParser_UNKNOWN_XML_ELEMENT_0.toLocalizedString(qName));
-    }
-  }
-
-  /**
-   * When a <code>distributed-system</code> element is encountered, we
-   * push the <code>DistributedSystemConfig</code> on the stack.
-   */
-  private void startDistributedSystem(Attributes atts) {
-    Assert.assertTrue(stack.isEmpty());
-
-    String id = atts.getValue(ID);
-    if (id != null) {
-      this.config.setSystemId(id);
-    }
-    
-    String disable_tcp = atts.getValue(DISABLE_TCP);
-    if (disable_tcp != null) {
-      this.config.setDisableTcp(DISABLE_TCP.equalsIgnoreCase("true"));
-    }
-
-    stack.push(this.config);
-  }
-
-  /**
-   * When a <code>distributed-system</code> element is finished
-   */
-  private void endDistributedSystem() {
-    
-  }
-
-  /**
-   * When a <code>multicast</code> is first encountered, get the
-   * <code>DistributedSystemConfig</code> off of the top of the stack
-   * and set its multicast config appropriately.
-   */
-  private void startMulticast(Attributes atts) {
-    DistributedSystemConfig config =
-      (DistributedSystemConfig) stack.peek();
-
-    String port = atts.getValue(PORT);
-    config.setMcastPort(parseInt(port));
-
-    String address = atts.getValue(ADDRESS);
-    if (address != null) {
-      config.setMcastAddress(address);
-    }
-  }
-
-  private void endMulticast() {
-
-  }
-
-  /**
-   * Starts a <code>remote-command</code> element.  The item on top of
-   * the stack may be a <code>DistributedSystemConfig</code> or it
-   * might be a <code>ManagedEntityConfig</code>.
-   */
-  private void startRemoteCommand(Attributes atts) {
-
-  }
-
-  /**
-   * Ends a <code>remote-command</code> element.  Pop the command off
-   * the top of the stack and set it on the
-   * <code>DistributedSystemConfig</code> or it might be a
-   * <code>ManagedEntityConfig</code> on top of the stack.
-   */
-  private void endRemoteCommand() {
-    String remoteCommand = popString();
-    Object top = stack.peek();
-    Assert.assertTrue(top != null);
-
-    if (top instanceof DistributedSystemConfig) {
-      ((DistributedSystemConfig) top).setRemoteCommand(remoteCommand);
-
-    } else if (top instanceof ManagedEntityConfig) {
-      ((ManagedEntityConfig) top).setRemoteCommand(remoteCommand);
-
-    } else {
-      String s = "Did not expect a " + top.getClass().getName() +
-        " on top of the stack";
-      Assert.assertTrue(false, s);
-    }
-  }
-
-  private void startLocators(Attributes atts) {
-
-  }
-
-  private void endLocators() {
-
-  }
-
-  private void startLocator(Attributes atts) {
-    String port = atts.getValue(PORT);
-
-    DistributedSystemConfig system =
-      (DistributedSystemConfig) stack.peek();
-    system.setMcastPort(0);
-
-    DistributionLocatorConfig config =
-      system.createDistributionLocatorConfig();
-    
-    config.setPort(parseInt(port));
-
-    stack.push(config);
-  }
-
-  private void endLocator() {
-    Object o = stack.pop();
-    Assert.assertTrue(o instanceof DistributionLocatorConfig);
-  }
-
-  private void startHost(Attributes atts) {
-
-  }
-
-  /**
-   * We assume that there is a <code>ManagedEntityConfig</code> on top
-   * of the stack.
-   */
-  private void endHost() {
-    String host = popString();
-    ManagedEntityConfig config = (ManagedEntityConfig) stack.peek();
-    config.setHost(host);
-  }
-
-  private void startWorkingDirectory(Attributes atts) {
-
-  }
-
-  private void endWorkingDirectory() {
-    String workingDirectory = popString();
-    ManagedEntityConfig config = (ManagedEntityConfig) stack.peek();
-    config.setWorkingDirectory(workingDirectory);
-  }
-
-  private void startProductDirectory(Attributes atts) {
-
-  }
-
-  private void endProductDirectory() {
-    String productDirectory = popString();
-    ManagedEntityConfig config = (ManagedEntityConfig) stack.peek();
-    config.setProductDirectory(productDirectory);
-  }
-
-  private void startSSL(Attributes atts) {
-    DistributedSystemConfig config =
-      (DistributedSystemConfig) stack.peek();
-    config.setSSLEnabled(true);
-
-    String authenticationRequired =
-      atts.getValue(AUTHENTICATION_REQUIRED);
-    config.setSSLAuthenticationRequired(Boolean.valueOf(authenticationRequired).booleanValue());
-  }
-
-  private void endSSL() {
-
-  }
-
-  private void startProtocols(Attributes atts) {
-
-  }
-
-  private void endProtocols() {
-    String protocols = popString();
-    DistributedSystemConfig config =
-      (DistributedSystemConfig) stack.peek();
-    config.setSSLProtocols(protocols);
-  }
-
-  private void startCiphers(Attributes atts) {
-
-  }
-
-  private void endCiphers() {
-    String ciphers = popString();
-    DistributedSystemConfig config =
-      (DistributedSystemConfig) stack.peek();
-    config.setSSLCiphers(ciphers);
-  }
-
-  private void startProperty(Attributes atts) {
-
-  }
-
-  private void endProperty() {
-    String value = popString();
-    String key = popString();
-    DistributedSystemConfig config =
-      (DistributedSystemConfig) stack.peek();
-    config.addSSLProperty(key, value);
-  }
-
-  private void startKey(Attributes atts) {
-
-  }
-
-  private void endKey() {
-    String key = popString();
-    stack.push(key);
-  }
-
-  private void startValue(Attributes atts) {
-
-  }
-
-  private void endValue() {
-    String value = popString();
-    stack.push(value);
-  }
-
-  private void startCacheServer(Attributes atts) {
-    DistributedSystemConfig config =
-      (DistributedSystemConfig) stack.peek();
-    CacheServerConfig server =
-      config.createCacheServerConfig();
-    stack.push(server);
-  }
-
-  private void endCacheServer() {
-    /* CacheServerConfig server = (CacheServerConfig) */ stack.pop();
-  }
-
-  private void startClassPath(Attributes atts) {
-
-  }
-
-  private void endClassPath() {
-    String classpath = popString();
-    CacheServerConfig server = (CacheServerConfig) stack.peek();
-    server.setClassPath(classpath);
-  }
-
-  /**
-   * Pops a <code>String</code> off of the stack.
-   */
-  private String popString() {
-    Object o = stack.pop();
-
-    if (o instanceof StringBuffer) {
-      StringBuffer sb = (StringBuffer) o;
-      return sb.toString();
-
-    } else {
-      return (String) o;
-    }
-  }
-
-  /**
-   * Long strings in XML files may generate multiple
-   * <code>characters</code> callbacks.  Coalesce multiple callbacks
-   * into one big string by using a <code>StringBuffer</code>.  See
-   * bug 32122.
-   */
-  public void characters(char[] ch, int start, int length)
-    throws SAXException {
-
-    Object top = stack.peek();
-
-    StringBuffer sb;
-    if (top instanceof StringBuffer) {
-      sb = (StringBuffer) top;
-
-    } else {
-      sb = new StringBuffer();
-      stack.push(sb);
-    }
-
-    sb.append(ch, start, length);
-  }
-
-  //////////  Inherited methods that don't do anything  //////////
-
-  public void setDocumentLocator(Locator locator) { }
-
-  public void startDocument() throws SAXException { }
-
-  public void endDocument() throws SAXException { }
-
-  public void startPrefixMapping(String prefix, String uri) 
-    throws SAXException { }
-
-  public void endPrefixMapping(String prefix)
-    throws SAXException { }
-
-  public void ignorableWhitespace(char[] ch, int start, int length)
-    throws SAXException { }
-
-  public void processingInstruction(String target, String data)
-    throws SAXException { }
-
-  public void skippedEntity(String name) throws SAXException { }
-
-  ///////////////////////  Inner Classes  ///////////////////////
-
-  /**
-   * Class that delegates all of the methods of a {@link
-   * DefaultHandler} to a {@link ManagedEntityConfigXmlParser} that
-   * implements all of the methods of <code>DefaultHandler</code>, but
-   * <B>is not</B> a <code>DefaultHandler</code>.
-   */
-  static class DefaultHandlerDelegate extends DefaultHandler {
-    /** The <code>ManagedEntityConfigXmlParser</code> that does the
-     * real work */ 
-    private ManagedEntityConfigXmlParser handler;
-
-    /**
-     * Creates a new <code>DefaultHandlerDelegate</code> that
-     * delegates to the given
-     * <code>ManagedEntityConfigXmlParser</code>.
-     */
-    public DefaultHandlerDelegate(ManagedEntityConfigXmlParser handler) {
-      this.handler = handler;
-    }
-
-    @Override
-    public InputSource resolveEntity(String publicId, 
-                                     String systemId)
-      throws SAXException {
-      return handler.resolveEntity(publicId, systemId);
-    }
-
-    @Override
-    public void setDocumentLocator(Locator locator) {
-      handler.setDocumentLocator(locator);
-    }
-
-    @Override
-    public void startDocument() throws SAXException {
-      handler.startDocument();
-    }
-
-    @Override
-    public void endDocument() throws SAXException {
-      handler.endDocument();
-    }
-
-    @Override
-    public void startPrefixMapping(String prefix, String uri)
-      throws SAXException {
-      handler.startPrefixMapping(prefix, uri);
-    }
-
-    @Override
-    public void endPrefixMapping(String prefix) throws SAXException {
-      handler.endPrefixMapping(prefix);
-    }
-
-    @Override
-    public void startElement(String uri, String localName,
-                             String qName, Attributes attributes)
-      throws SAXException {
-      handler.startElement(uri, localName, qName, attributes);
-    }
-
-    @Override
-    public void endElement(String uri, String localName, String qName)
-      throws SAXException {
-      handler.endElement(uri, localName, qName);
-    }
-
-    @Override
-    public void characters(char[] ch, int start, int length)
-      throws SAXException {
-      handler.characters(ch, start, length);
-    }
-
-    @Override
-    public void ignorableWhitespace(char[] ch, int start, int length)
-      throws SAXException {
-      handler.ignorableWhitespace(ch, start, length);
-    }
-
-    @Override
-    public void processingInstruction(String target, String data)
-      throws SAXException {
-      handler.processingInstruction(target, data);
-    }
-
-    @Override
-    public void skippedEntity(String name) throws SAXException {
-      handler.skippedEntity(name);
-    }
-
-    @Override
-    public void warning(SAXParseException e) throws SAXException {
-      handler.warning(e);
-    }
-
-    @Override
-    public void error(SAXParseException e) throws SAXException {
-      handler.error(e);
-    }
-
-    @Override
-    public void fatalError(SAXParseException e) throws SAXException {
-      handler.fatalError(e);
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityController.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityController.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityController.java
deleted file mode 100644
index abe3e28..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityController.java
+++ /dev/null
@@ -1,74 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-import com.gemstone.gemfire.admin.ManagedEntity;
-import com.gemstone.gemfire.admin.ManagedEntityConfig;
-
-/**
- * Defines the actual administration (starting, stopping, etc.) of
- * GemFire {@link ManagedEntity}s.
- * 
- * @author Kirk Lund
- */
-interface ManagedEntityController {
-  /**
-   * Starts a managed entity.
-   */
-  public void start(final InternalManagedEntity entity);
-
-  /**
-   * Stops a managed entity.
-   */
-  public void stop(final InternalManagedEntity entity);
-
-  /**
-   * Returns whether or not a managed entity is running
-   */
-  public boolean isRunning(InternalManagedEntity entity);
-  
-  /**
-   * Returns the contents of a locator's log file.  Other APIs are
-   * used to get the log file of managed entities that are also system
-   * members.
-   */
-  public String getLog(DistributionLocatorImpl locator);
-  
-  /**
-   * Returns the full path to the executable in
-   * <code>$GEMFIRE/bin</code> taking into account the {@linkplain
-   * ManagedEntityConfig#getProductDirectory product directory} and the
-   * platform's file separator.
-   *
-   * <P>
-   *
-   * Note: we should probably do a better job of determine whether or
-   * not the machine on which the entity runs is Windows or Linux.
-   *
-   * @param executable
-   *        The name of the executable that resides in
-   *        <code>$GEMFIRE/bin</code>.
-   */
-  public String getProductExecutable(InternalManagedEntity entity, String executable);
-  
-  /**
-   * Builds optional SSL command-line arguments.  Returns null if SSL is not
-   * enabled for the distributed system.
-   */
-  public String buildSSLArguments(DistributedSystemConfig config);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityControllerFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityControllerFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityControllerFactory.java
deleted file mode 100755
index 5b09687..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityControllerFactory.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 com.gemstone.gemfire.admin.internal;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.AdminDistributedSystem;
-import com.gemstone.gemfire.admin.ManagedEntity;
-import com.gemstone.gemfire.internal.ClassPathLoader;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LogMarker;
-
-/**
- * Creates ManagedEntityController for administration (starting, stopping, etc.) 
- * of GemFire {@link ManagedEntity}s.
- * 
- * @author Kirk Lund
- */
-public class ManagedEntityControllerFactory {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  private static final String ENABLED_MANAGED_ENTITY_CONTROLLER_CLASS_NAME = "com.gemstone.gemfire.admin.internal.EnabledManagedEntityController";
-  
-  static ManagedEntityController createManagedEntityController(final AdminDistributedSystem system) {
-    if (isEnabledManagedEntityController()) {
-      logger.info(LogMarker.CONFIG, "Local and remote OS command invocations are enabled for the Admin API.");
-      return createEnabledManagedEntityController(system);
-    } else {
-      logger.info(LogMarker.CONFIG, "Local and remote OS command invocations are disabled for the Admin API.");
-      return new DisabledManagedEntityController();
-    }
-  }
-
-  public static boolean isEnabledManagedEntityController() {
-    try {
-      ClassPathLoader.getLatest().forName(ENABLED_MANAGED_ENTITY_CONTROLLER_CLASS_NAME);
-      return true;
-    } catch (ClassNotFoundException e) {
-      return false;
-    }
-  }
-  
-  private static ManagedEntityController createEnabledManagedEntityController(final AdminDistributedSystem system) {
-    return new EnabledManagedEntityController(system);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedSystemMemberImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedSystemMemberImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedSystemMemberImpl.java
deleted file mode 100644
index a58b6e4..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedSystemMemberImpl.java
+++ /dev/null
@@ -1,271 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.admin.ManagedEntityConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-
-/**
- * A <code>SystemMember</code> that is also managed (or manageable) by
- * the admin API.
- *
- * This class must be public so that its methods can be invoked
- * reflectively (for MBean operations) on instances of its
- * subclasses. 
- *
- * @author David Whitlock
- * @since 4.0
- */
-public abstract class ManagedSystemMemberImpl extends SystemMemberImpl
-  implements InternalManagedEntity {
-
-  /** Controller for starting and stopping local or remote managers */
-  protected ManagedEntityController controller;
-  
-  /** The state of this managed entity (see bug 32455) */
-  private int state = UNKNOWN;
-
-  /** A lock that is obtained while this entity's state changes */
-  private final Object stateChange = new Object();
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>ManagedSystemMemberImpl</code> that
-   * represents an existing member of an
-   * <code>AdminDistributedSystem</code>.
-   */
-  protected ManagedSystemMemberImpl(AdminDistributedSystemImpl system, 
-                                    GemFireVM vm) 
-    throws AdminException {
-
-    super(system, vm);
-    this.controller = system.getEntityController();
-  }
-
-  /**
-   * Creates a new <code>ManagedSystemMemberImpl</code> that
-   * represents a non-existing member with the given
-   * <code>ManagedEntityConfig</code> that has not yet been started.
-   */
-  protected ManagedSystemMemberImpl(AdminDistributedSystemImpl system,
-                                    ManagedEntityConfig config) 
-    throws AdminException {
-
-    super(system);
-    this.internalId = null;
-    this.id = getNewId();
-    this.host = config.getHost();
-    this.name = this.id;
-    this.controller = system.getEntityController();
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  public String getWorkingDirectory() {
-    return this.getEntityConfig().getWorkingDirectory();
-  }
-
-  public void setWorkingDirectory(String workingDirectory) {
-    this.getEntityConfig().setWorkingDirectory(workingDirectory);
-  }
-
-  public String getProductDirectory() {
-    return this.getEntityConfig().getProductDirectory();
-  }
-
-  public void setProductDirectory(String productDirectory) {
-    this.getEntityConfig().setProductDirectory(productDirectory);
-  }
-
-  @Override
-  public String getHost() {
-    return this.getEntityConfig().getHost();
-  }
-
-  public int setState(int state) {
-    if (this.stateChange == null) {
-      // The initial state is set in the constructor before
-      // stateChange is initialized.
-      int oldState = this.state;
-      this.state = state;
-      return oldState;
-      
-    } else {
-      synchronized (this.stateChange) {
-        int oldState = this.state;
-        this.state = state;
-
-        this.stateChange.notifyAll();
-        
-        return oldState;
-      }
-    }
-  }
-
-  /**
-   * Returns whether or not this managed system member needs to be
-   * stopped.  If this member is stopped or is stopping, then it does
-   * not need to be stopped.  Otherwise, it will atomically place this
-   * member in the {@link #STOPPING} state.  See bug 32455.
-   */
-  protected boolean needToStop() {
-    synchronized (this.stateChange) {
-      if (this.state == STOPPED || this.state == STOPPING) {
-        return false;
-
-      } else {
-        setState(STOPPING);
-        return true;
-      }
-    }
-  }
-
-  /**
-   * Returns whether or not this managed system member needs to be
-   * started.  If this member is started or is starting, then it
-   * does not need to be started.  Otherwise, it will atomically
-   * place this member in the {@link #STARTING} state.  See bug
-   * 32455.
-   */
-  protected boolean needToStart() {
-    synchronized (this.stateChange) {
-      if (this.state == RUNNING || this.state == STARTING) {
-        return false;
-
-      } else {
-        setState(STARTING);
-        return true;
-      }
-    }
-  }
-
-  /**
-   * Sets the state of this managed system member depending on whether
-   * or not <code>vm</code> is <code>null</code>.
-   */
-  @Override
-  void setGemFireVM(GemFireVM vm) throws AdminException {
-    super.setGemFireVM(vm);
-    if (vm != null) {
-      this.setState(RUNNING);
-
-    } else {
-      this.setState(STOPPED);
-    }
-  }
-
-  /**
-   * Waits until this system member's "state" is {@link #RUNNING}.
-   */
-  public boolean waitToStart(long timeout) 
-    throws InterruptedException {
-
-    if (Thread.interrupted()) throw new InterruptedException();
-    
-    long start = System.currentTimeMillis();
-    while (System.currentTimeMillis() - start < timeout) {
-      synchronized (this.stateChange) {
-        if (this.state == RUNNING) {
-          break;
-
-        } else {
-          this.stateChange.wait(System.currentTimeMillis() - start);
-        }
-      }
-    }
-
-    synchronized (this.stateChange) {
-      return this.state == RUNNING;
-    }
-  }
-
-  /**
-   * Waits until this system member's "state" is {@link #STOPPED}.
-   */
-  public boolean waitToStop(long timeout) 
-    throws InterruptedException {
-
-    if (Thread.interrupted()) throw new InterruptedException();
-    long start = System.currentTimeMillis();
-    while (System.currentTimeMillis() - start < timeout) {
-      synchronized (this.stateChange) {
-        if (this.state == STOPPED) {
-          break;
-
-        } else {
-          this.stateChange.wait(System.currentTimeMillis() - start);
-        }
-      }
-    }
-
-    synchronized (this.stateChange) {
-      return this.state == STOPPED;
-    }
-  }
-
-  /**
-   * Appends configuration information to a <code>StringBuffer</code>
-   * that contains a command line.  Handles certain configuration
-   * parameters specially.
-   */
-  protected void appendConfiguration(StringBuffer sb) {
-    ConfigurationParameter[] params = this.getConfiguration();
-    for (int i = 0; i < params.length; i++) {
-      ConfigurationParameter param = params[i];
-
-      if (!param.isModifiable()) {
-        continue;
-      }
-
-      String name = param.getName();
-      String value = param.getValueAsString();
-
-      if (value != null && !value.equals("")) {
-        if (name.equals(DistributionConfig.LOCATORS_NAME)) {
-          // Use the new locator syntax so that is plays nicely with
-          // rsh.  See bug 32306.
-          String locator = value;
-          int firstBracket = locator.indexOf('[');
-          int lastBracket = locator.indexOf(']');
-
-          if (firstBracket > -1 && lastBracket > -1) {
-            String host = locator.substring(0, firstBracket);
-            String port =
-              locator.substring(firstBracket + 1, lastBracket);
-            locator = host + ":" + port;
-          }
-
-          sb.append(" ");
-          sb.append(name);
-          sb.append("=");
-          sb.append(locator);
-
-        } else {
-          sb.append(" ");
-          sb.append(name);
-          sb.append("=");
-          sb.append(value);
-        }
-      }
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/MemberHealthConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/MemberHealthConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/MemberHealthConfigImpl.java
deleted file mode 100644
index 7b395e1..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/MemberHealthConfigImpl.java
+++ /dev/null
@@ -1,96 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-
-// @todo Make this class (and all of its subclasses) {@link java.io.Externalizable} or
-// {@link com.gemstone.gemfire.DataSerializable}. 
-/**
- * The implementation of <code>MemberHealthConfig</code>
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-public abstract class MemberHealthConfigImpl
-  implements MemberHealthConfig, java.io.Serializable {
-
-  private static final long serialVersionUID = 3966032573073580490L;
-  
-  /** The maximum process size (in megabytes) of a healthy member of
-   * the distributed system. */
-  private long maxVMProcessSize = DEFAULT_MAX_VM_PROCESS_SIZE;
-
-  /** The maximum number of enqueued incoming or outgoing
-   * messages that a healthy member of a distributed system can
-   * have. */
-  private long maxMessageQueueSize = DEFAULT_MAX_MESSAGE_QUEUE_SIZE;
-
-  /** The maximum number message replies that can timeout in a healthy
-   * member. */
-  private long maxReplyTimeouts = DEFAULT_MAX_REPLY_TIMEOUTS;
-
-  /** The maximum multicast retransmit / multicast message count ratio
-   */
-  private double maxRetransmissionRatio = DEFAULT_MAX_RETRANSMISSION_RATIO;
-
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>MemberHealthConfigImpl</code> with the
-   * default configuration.
-   */
-  MemberHealthConfigImpl() {
-
-  }
-
-  /////////////////////  Instance Methods  //////////////////////
-
-  public long getMaxVMProcessSize() {
-    return this.maxVMProcessSize;
-  }
-
-  public void setMaxVMProcessSize(long size) {
-    this.maxVMProcessSize = size;
-  }
-
-  public long getMaxMessageQueueSize() {
-    return this.maxMessageQueueSize;
-  }
-
-  public void setMaxMessageQueueSize(long maxMessageQueueSize) {
-    this.maxMessageQueueSize = maxMessageQueueSize;
-  }
-
-  public long getMaxReplyTimeouts() {
-    return this.maxReplyTimeouts;
-  }
-
-  public void setMaxReplyTimeouts(long maxReplyTimeouts) {
-    this.maxReplyTimeouts = maxReplyTimeouts;
-  }
-
-  public double getMaxRetransmissionRatio() {
-    return this.maxRetransmissionRatio;
-  }
-
-  public void setMaxRetransmissionRatio(double ratio) {
-    this.maxRetransmissionRatio = ratio;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/MemberHealthEvaluator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/MemberHealthEvaluator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/MemberHealthEvaluator.java
deleted file mode 100644
index eb23349..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/MemberHealthEvaluator.java
+++ /dev/null
@@ -1,242 +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.admin.internal;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.distributed.internal.*;
-import com.gemstone.gemfire.internal.*;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.cache.CachePerfStats;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-
-import java.util.*;
-
-/**
- * Contains the logic for evaluating the health of a GemFire
- * distributed system member according to the thresholds provided in a
- * {@link MemberHealthConfig}.  
- *
- * @see VMStats
- * @see ProcessStats
- * @see DMStats
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-/**
- * @author rdubey
- *
- */
-class MemberHealthEvaluator extends AbstractHealthEvaluator {
-
-  /** The config from which we get the evaluation criteria */
-  private MemberHealthConfig config;
-
-  /** The description of the member being evaluated */
-  private String description;
-
-//  /** Statistics about this VM (may be null) */
-//  private VMStatsContract vmStats;
-
-  /** Statistics about this process (may be null) */
-  private ProcessStats processStats;
-
-  /** Statistics about the distribution manager */
-  private DMStats dmStats;
-
-  /** The previous value of the reply timeouts stat */
-  private long prevReplyTimeouts;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>MemberHealthEvaluator</code>
-   */
-  MemberHealthEvaluator(GemFireHealthConfig config,
-                        DM dm) {
-    super(config, dm);
-
-    this.config = config;
-    InternalDistributedSystem system = dm.getSystem();
-
-    GemFireStatSampler sampler = system.getStatSampler();
-    if (sampler != null) {
-      // Sampling is enabled
-//      this.vmStats = sampler.getVMStats();
-      this.processStats = sampler.getProcessStats();
-    }
-
-    this.dmStats = dm.getStats();
-    
-    StringBuffer sb = new StringBuffer();
-    sb.append("Application VM member ");
-    sb.append(dm.getId());
-    int pid = OSProcess.getId();
-    if (pid != 0) {
-      sb.append(" with pid ");
-      sb.append(pid);
-    }
-    this.description = sb.toString();
-  }
-
-  ////////////////////  Instance Methods  ////////////////////
-
-  @Override
-  protected String getDescription() {
-    return this.description;
-  }
-
-  /**
-   * Checks to make sure that the {@linkplain
-   * ProcessStats#getProcessSize VM's process size} is less than the
-   * {@linkplain MemberHealthConfig#getMaxVMProcessSize threshold}.
-   * If not, the status is "okay" health.
-   */
-  void checkVMProcessSize(List status) {
-    // There is no need to check isFirstEvaluation()
-    if (this.processStats == null) {
-      return;
-    }
-
-    long vmSize = this.processStats.getProcessSize();
-    long threshold = this.config.getMaxVMProcessSize();
-    if (vmSize > threshold) {
-      String s = LocalizedStrings.MemberHealthEvaluator_THE_SIZE_OF_THIS_VM_0_MEGABYTES_EXCEEDS_THE_THRESHOLD_1_MEGABYTES.toLocalizedString(new Object[] {Long.valueOf(vmSize), Long.valueOf(threshold)});
-      status.add(okayHealth(s));
-    }
-  }
-
-  /**
-   * Checks to make sure that the size of the distribution manager's
-   * {@linkplain DMStats#getOverflowQueueSize() overflow} message
-   * queue does not exceed the {@linkplain
-   * MemberHealthConfig#getMaxMessageQueueSize threshold}.  If not,
-   * the status is "okay" health.
-   */
-  void checkMessageQueueSize(List status) {
-    long threshold = this.config.getMaxMessageQueueSize();
-    long overflowSize = this.dmStats.getOverflowQueueSize();
-    if (overflowSize > threshold) {
-      String s = LocalizedStrings.MemberHealthEvaluator_THE_SIZE_OF_THE_OVERFLOW_QUEUE_0_EXCEEDS_THE_THRESHOLD_1.toLocalizedString(new Object[] { Long.valueOf(overflowSize), Long.valueOf(threshold)});
-      status.add(okayHealth(s));
-    }
-  }
-
-  /**
-   * Checks to make sure that the number of {@linkplain
-   * DMStats#getReplyTimeouts reply timeouts} does not exceed the
-   * {@linkplain MemberHealthConfig#getMaxReplyTimeouts threshold}.
-   * If not, the status is "okay" health.
-   */
-  void checkReplyTimeouts(List status) {
-    if (isFirstEvaluation()) {
-      return;
-    }
-
-    long threshold = this.config.getMaxReplyTimeouts();
-    long deltaReplyTimeouts =
-      this.dmStats.getReplyTimeouts() - prevReplyTimeouts;
-    if (deltaReplyTimeouts > threshold) {
-      String s = LocalizedStrings.MemberHealthEvaluator_THE_NUMBER_OF_MESSAGE_REPLY_TIMEOUTS_0_EXCEEDS_THE_THRESHOLD_1.toLocalizedString(new Object[] { Long.valueOf(deltaReplyTimeouts), Long.valueOf(threshold)}); 
-      status.add(okayHealth(s));
-    }
-  }
-
-  /**
-   * See if the multicast retransmission ratio is okay
-   */
-  void checkRetransmissionRatio(List status) {
-    double threshold = this.config.getMaxRetransmissionRatio();
-    int mcastMessages = this.dmStats.getMcastWrites();
-    if (mcastMessages > 100000) { // avoid initial state & int overflow
-      // the ratio we actually use here is (retransmit requests) / (mcast datagram writes)
-      // a single retransmit request may include multiple missed messages
-      double ratio = (this.dmStats.getMcastRetransmits() * 1.0) /
-                    (this.dmStats.getMcastWrites() * 1.0);
-      if (ratio > threshold) {
-        String s = "The number of message retransmissions (" +
-          ratio + ") exceeds the threshold (" + threshold + ")";
-        status.add(okayHealth(s));
-      }
-    }
-  }
-  
-/**
- * The function keeps updating the health of the cache based on 
- * roles required by the regions and their reliablity policies.
- * 
- * */
-  
-  void checkCacheRequiredRolesMeet(List status){
-	// will have to call here okeyHealth() or poorHealth()
-	//GemFireCache cache = (GemFireCache)CacheFactory.getAnyInstance();
-	
-	//CachePerfStats cPStats= null;
-	try{
-		GemFireCacheImpl cache = (GemFireCacheImpl)CacheFactory.getAnyInstance();
-		CachePerfStats cPStats= null;
-		cPStats= cache.getCachePerfStats();
-	
-		if(cPStats.getReliableRegionsMissingFullAccess()> 0){
-			// health is okay.
-			int numRegions = cPStats.getReliableRegionsMissingFullAccess();
-			status.add(okayHealth(LocalizedStrings.MemberHealthEvaluator_THERE_ARE_0_REGIONS_MISSING_REQUIRED_ROLES_BUT_ARE_CONFIGURED_FOR_FULL_ACCESS.toLocalizedString(Integer.valueOf(numRegions))));
-		}else if(cPStats.getReliableRegionsMissingLimitedAccess() > 0){
-			// health is poor
-			int numRegions = cPStats.getReliableRegionsMissingLimitedAccess();
-			status.add(poorHealth(LocalizedStrings.MemberHealthEvaluator_THERE_ARE_0_REGIONS_MISSING_REQUIRED_ROLES_AND_CONFIGURED_WITH_LIMITED_ACCESS.toLocalizedString(Integer.valueOf(numRegions))));
-		}else if (cPStats.getReliableRegionsMissingNoAccess() > 0){
-			// health is poor
-			int numRegions = cPStats.getReliableRegionsMissingNoAccess();
-			status.add(poorHealth(LocalizedStrings.MemberHealthEvaluator_THERE_ARE_0_REGIONS_MISSING_REQUIRED_ROLES_AND_CONFIGURED_WITHOUT_ACCESS.toLocalizedString(Integer.valueOf(numRegions))));
-		}//else{
-			// health is good/okay
-		//	status.add(okayHealth("All regions have there required roles meet"));
-		//}
-	}
-	catch (CancelException ignore) {
-	}
-  }
-
-    
-  /**
-   * Updates the previous values of statistics
-   */
-  private void updatePrevious() {
-    this.prevReplyTimeouts = this.dmStats.getReplyTimeouts();
-  }
-
-  @Override
-  protected void check(List status) {
-    checkVMProcessSize(status);
-    checkMessageQueueSize(status);
-    checkReplyTimeouts(status);
-    // will have to add another call to check for roles 
-    // missing and reliablity attributed.
-    checkCacheRequiredRolesMeet(status);
-
-    updatePrevious();
-  }
-
-  @Override
-  void close() {
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/PrepareBackupRequest.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/PrepareBackupRequest.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/PrepareBackupRequest.java
deleted file mode 100644
index 93733fe..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/PrepareBackupRequest.java
+++ /dev/null
@@ -1,133 +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.admin.internal;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.distributed.internal.DistributionMessage;
-import com.gemstone.gemfire.distributed.internal.ReplyException;
-import com.gemstone.gemfire.internal.admin.remote.AdminFailureResponse;
-import com.gemstone.gemfire.internal.admin.remote.AdminMultipleReplyProcessor;
-import com.gemstone.gemfire.internal.admin.remote.AdminResponse;
-import com.gemstone.gemfire.internal.admin.remote.CliLegacyMessage;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.cache.persistence.BackupManager;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * A request to from an admin VM to all non admin members
- * to start a backup. In the prepare phase of the backup,
- * the members will suspend bucket destroys to make sure
- * buckets aren't missed during the backup.
- * 
- * @author dsmith
- *
- */
-public class PrepareBackupRequest  extends CliLegacyMessage {
-  private static final Logger logger = LogService.getLogger();
-  
-  public PrepareBackupRequest() {
-    
-  }
-  
-  public static Map<DistributedMember, Set<PersistentID>> send(DM dm, Set recipients) {
-    PrepareBackupRequest request = new PrepareBackupRequest();
-    request.setRecipients(recipients);
-
-    PrepareBackupReplyProcessor replyProcessor = new PrepareBackupReplyProcessor(dm, recipients);
-    request.msgId = replyProcessor.getProcessorId();
-    dm.putOutgoing(request);
-    try {
-      replyProcessor.waitForReplies();
-    } catch (ReplyException e) {
-      if(!(e.getCause() instanceof CancelException)) {
-        throw e;
-      }
-    } catch (InterruptedException e) {
-      e.printStackTrace();
-    }
-    AdminResponse response = request.createResponse((DistributionManager)dm);
-    response.setSender(dm.getDistributionManagerId());
-    replyProcessor.process(response);
-    return replyProcessor.results;
-  }
-  
-  @Override
-  protected AdminResponse createResponse(DistributionManager dm) {
-    GemFireCacheImpl cache = GemFireCacheImpl.getInstance();
-    HashSet<PersistentID> persistentIds;
-    if(cache == null) {
-      persistentIds = new HashSet<PersistentID>();
-    } else {
-      try {
-        BackupManager manager = cache.startBackup(getSender());
-        persistentIds = manager.prepareBackup();
-      } catch(IOException e) {
-        logger.error(LocalizedMessage.create(LocalizedStrings.CliLegacyMessage_ERROR, this.getClass()), e);
-        return AdminFailureResponse.create(dm, getSender(), e);        
-      }
-    }
-
-
-    return new PrepareBackupResponse(this.getSender(), persistentIds);
-  }
-
-  public int getDSFID() {
-    return PREPARE_BACKUP_REQUEST;
-  }
-  
-  private static class PrepareBackupReplyProcessor extends AdminMultipleReplyProcessor {
-    Map<DistributedMember, Set<PersistentID>> results = Collections.synchronizedMap(new HashMap<DistributedMember, Set<PersistentID>>());
-    public PrepareBackupReplyProcessor(DM dm, Collection initMembers) {
-      super(dm, initMembers);
-    }
-    
-    @Override
-    protected boolean stopBecauseOfExceptions() {
-      return false;
-    }
-
-    @Override
-    protected void process(DistributionMessage msg, boolean warn) {
-      if(msg instanceof PrepareBackupResponse) {
-        final HashSet<PersistentID> persistentIds = ((PrepareBackupResponse) msg).getPersistentIds();
-        if(persistentIds != null && !persistentIds.isEmpty()) {
-          results.put(msg.getSender(), persistentIds);
-        }
-      }
-      super.process(msg, warn);
-    }
-    
-    
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/PrepareBackupResponse.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/PrepareBackupResponse.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/PrepareBackupResponse.java
deleted file mode 100644
index 92c1848..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/PrepareBackupResponse.java
+++ /dev/null
@@ -1,82 +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.admin.internal;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.HashSet;
-
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.admin.remote.AdminResponse;
-
-/**
- * The response to the {@link PrepareBackupRequest}
- * 
- * @author dsmith
- *
- */
-public class PrepareBackupResponse extends AdminResponse {
-
-  private HashSet<PersistentID> persistentIds;
-  
-  public PrepareBackupResponse() {
-    super();
-  }
-
-  public PrepareBackupResponse(InternalDistributedMember sender, HashSet<PersistentID> persistentIds) {
-    this.setRecipient(sender);
-    this.persistentIds = persistentIds;
-  }
-  
-  public HashSet<PersistentID> getPersistentIds() {
-    return persistentIds;
-  }
-
-  @Override
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    super.fromData(in);
-    persistentIds = DataSerializer.readHashSet(in);
-  }
-
-
-
-  @Override
-  public void toData(DataOutput out) throws IOException {
-    super.toData(out);    
-    DataSerializer.writeHashSet(persistentIds, out);
-  }
-
-
-
-  @Override
-  protected Object clone() throws CloneNotSupportedException {
-    // TODO Auto-generated method stub
-    return super.clone();
-  }
-
-  public int getDSFID() {
-    return PREPARE_BACKUP_RESPONSE;
-  }
-  
-  @Override
-  public String toString() {
-    return getClass().getName() + ": " + persistentIds;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/StatisticImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/StatisticImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/StatisticImpl.java
deleted file mode 100755
index 7d1db84..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/StatisticImpl.java
+++ /dev/null
@@ -1,97 +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.admin.internal;
-
-import com.gemstone.gemfire.internal.admin.Stat;
-
-/**
- * Implementation of a single statistic in a <code>StatisticResource</code>
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public class StatisticImpl
-implements com.gemstone.gemfire.admin.Statistic {
-
-  private static final long serialVersionUID = 3899296873901634399L;
-  
-  private Stat internalStat;
-
-  protected StatisticImpl() {
-  }
-
-  protected StatisticImpl(Stat internalStat) {
-    this.internalStat = internalStat;
-  }
-    
-  /**
-   * @return the identifying name of this stat 
-   */
-  public String getName() {
-    return this.internalStat.getName();
-  }
-  
-  /**
-   * @return the value of this stat as a <code>java.lang.Number</code> 
-   */
-  public Number getValue() {
-    return this.internalStat.getValue();
-  }
-  
-  /**
-   * @return a display string for the unit of measurement (if any) this stat represents
-   */
-  public String getUnits() {
-    return this.internalStat.getUnits();
-  }
-  
-  /**
-   * @return true if this stat represents a numeric value which always increases
-   */
-  public boolean isCounter() {
-    return this.internalStat.isCounter();
-  }
-  
-  /**
-   * @return the full description of this stat
-   */
-  public String getDescription() {
-    return this.internalStat.getDescription();
-  }
-  
-  /**
-   * Sets the internal stat which allows us to reuse the wrapper object and
-   * handle refreshes along with isWriteable set to false on the attribute.
-   */
-  protected void setStat(Stat internalStat) {
-    this.internalStat = internalStat;
-  }
-    
-	/**
-	 * Returns a string representation of the object.
-	 * 
-	 * @return a string representation of the object
-	 */
-  @Override
-	public String toString() {
-		return getName();
-	}
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/StatisticResourceImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/StatisticResourceImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/StatisticResourceImpl.java
deleted file mode 100755
index 78b6804..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/StatisticResourceImpl.java
+++ /dev/null
@@ -1,182 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.SystemMember;
-import com.gemstone.gemfire.admin.Statistic;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.admin.Stat;
-import com.gemstone.gemfire.internal.admin.StatResource;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-//import com.gemstone.gemfire.internal.admin.SystemMember;
-
-import java.util.ArrayList;
-//import java.util.Date;
-import java.util.List;
-
-/**
- * Provides monitoring of a statistic resource.
- *
- * @author    Kirk Lund
- * @since     3.5
- */
-public class StatisticResourceImpl 
-implements com.gemstone.gemfire.admin.StatisticResource {
-
-  /** The underlying remote StatResource which this object delegates to */
-  protected StatResource statResource;
-  /** Displayable name of this statistic resource */
-  protected String name;
-  /** Description of this statistic resource */
-  protected String description;
-  /** Classification type of this statistic resource */
-  protected String type;
-  /** GemFire system member which owns this statistic resource */
-  protected SystemMember member;
-  /** The array of statistics in this resource */
-  protected Statistic[] statistics; // = new Statistic[0];
-  
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Constructs an instance of StatisticResourceImpl.
-   *
-   * @param statResource  the admin StatResource to manage/monitor
-   * @param member        the SystemMember owning this resource
-   * @exception com.gemstone.gemfire.admin.AdminException 
-   *            if unable to create this StatisticResource for administration
-   */
-  public StatisticResourceImpl(StatResource statResource,
-                               SystemMember member)
-                        throws com.gemstone.gemfire.admin.AdminException {
-    this.statResource = statResource;
-    this.member = member;
-    this.name = this.statResource.getName();
-    this.description = this.statResource.getDescription();
-    this.type = this.statResource.getType();
-  }
-
-  // -------------------------------------------------------------------------
-  //   Attributes accessors and mutators
-  // -------------------------------------------------------------------------
-
-	public String getName() {
-		return this.name;
-	}
-  
-	public String getDescription() {
-		return this.description;
-	}
-  
-  public String getType() {
-    return this.type;
-  }
-  
-	public String getOwner() {
-		return this.member.toString();
-	}
-  
-  public Statistic[] getStatistics() {
-    if (this.statistics == null) {
-      try {
-        refresh();
-      }
-      catch (AdminException e) {
-        this.statistics = new Statistic[0];
-      }
-    }
-    return this.statistics;
-  }
-
-  public long getUniqueId() {
-    return this.statResource.getResourceUniqueID();
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Operations
-  // -------------------------------------------------------------------------
-
-  public void refresh() throws com.gemstone.gemfire.admin.AdminException {
-    Stat[] stats = null;
-    if (this.statResource != null) {
-      stats = this.statResource.getStats();
-    }
-    if (stats == null || stats.length < 1) {
-      throw new AdminException(LocalizedStrings.StatisticResourceImpl_FAILED_TO_REFRESH_STATISTICS_0_FOR_1.toLocalizedString(getType()+"-"+getName(), getOwner()));
-    }
-    
-    if (this.statistics == null || this.statistics.length < 1) {
-      // define new statistics instances...
-      List statList = new ArrayList();
-      for (int i = 0; i < stats.length; i++) {
-        statList.add(createStatistic(stats[i]));
-      }
-      this.statistics = (Statistic[]) statList.toArray(new Statistic[0]);
-    }
-    else {
-      // update the existing instances...
-      for (int i = 0; i < stats.length; i++) {
-        updateStatistic(stats[i]);
-      }
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Non-public implementation methods
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Updates the value of the {@link Statistic} corresponding to the internal 
-   * {@link com.gemstone.gemfire.internal.admin.Stat}
-   *
-   * @param stat  the internal stat to use in updating the matching statistic
-   */
-  private void updateStatistic(Stat stat) {
-    for (int i = 0; i < this.statistics.length; i++) {
-      if (this.statistics[i].getName().equals(stat.getName())) {
-        ((StatisticImpl)this.statistics[i]).setStat(stat);
-        return;
-      }
-    }
-    Assert.assertTrue(false, "Unknown stat: " + stat.getName());
-  }
-  
-  /**
-   * Creates a new {@link StatisticImpl} to represent the internal {@link 
-   * com.gemstone.gemfire.internal.admin.Stat}
-   *
-   * @param stat  the internal stat to wrap in a new statistic
-   */
-  protected Statistic createStatistic(Stat stat) {
-    return new StatisticImpl(stat);
-  }
-  
-	/**
-	 * Returns a string representation of the object.
-	 * 
-	 * @return a string representation of the object
-	 */
-  @Override
-	public String toString() {
-		return getName();
-	}
-  
-}
-


[51/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
GEODE-917: rename gemfire subprojects to geode

Rename the gemfire-* subdirectories to geode-*.  This has the effect
of changing the maven published artifacts as well.  For example,

gemfire-core-1.0.0-incubating.M2-SNAPSHOT.jar

is now

geode-core-1.0.0-incubating.M2-SNAPSHOT.jar

Also took the opportunity to rename gemfire-core-dependencies.jar
to geode-dependencies.jar.


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

Branch: refs/heads/feature/GEODE-917
Commit: f6c4c2f9e589aee70046f6ab5d2d846362762c79
Parents: bef0c1b
Author: Anthony Baker <ab...@apache.org>
Authored: Mon Feb 8 22:29:20 2016 -0800
Committer: Anthony Baker <ab...@apache.org>
Committed: Wed Feb 17 10:21:03 2016 -0800

----------------------------------------------------------------------
 COMPILING.txt                                   |     2 +-
 RUNNING.txt                                     |     2 +-
 build.gradle                                    |     2 +-
 docker/Dockerfile                               |     6 +-
 .../gemfire-modules-assembly/build.gradle       |   247 -
 .../release/conf/cache-client.xml               |    40 -
 .../release/conf/cache-peer.xml                 |    48 -
 .../release/conf/cache-server.xml               |    74 -
 .../release/scripts/cacheserver.bat             |   133 -
 .../release/scripts/cacheserver.sh              |    97 -
 .../release/scripts/gemfire.bat                 |    41 -
 .../release/scripts/gemfire.sh                  |    58 -
 .../release/scripts/setenv.properties           |     6 -
 .../release/session/bin/cacheserver.bat         |    56 -
 .../release/session/bin/cacheserver.sh          |    57 -
 .../release/session/bin/gemfire.bat             |    53 -
 .../release/session/bin/gemfire.sh              |    69 -
 .../release/session/bin/modify_war              |   392 -
 .../release/session/bin/setenv.properties       |     6 -
 .../gemfire-cs-tomcat-7/context-fragment.xml    |    15 -
 .../tcserver/gemfire-cs-tomcat-7/modules.env    |     1 -
 .../gemfire-cs-tomcat-8/context-fragment.xml    |    15 -
 .../tcserver/gemfire-cs-tomcat-8/modules.env    |     1 -
 .../gemfire-cs/configuration-prompts.properties |    17 -
 .../tcserver/gemfire-cs/context-fragment.xml    |    13 -
 .../release/tcserver/gemfire-cs/modules.env     |     1 -
 .../tcserver/gemfire-cs/server-fragment.xml     |    12 -
 .../gemfire-p2p-tomcat-7/context-fragment.xml   |    15 -
 .../tcserver/gemfire-p2p-tomcat-7/modules.env   |     1 -
 .../gemfire-p2p-tomcat-8/context-fragment.xml   |    15 -
 .../tcserver/gemfire-p2p-tomcat-8/modules.env   |     1 -
 .../configuration-prompts.properties            |    19 -
 .../tcserver/gemfire-p2p/context-fragment.xml   |    13 -
 .../release/tcserver/gemfire-p2p/modules.env    |     1 -
 .../tcserver/gemfire-p2p/server-fragment.xml    |    14 -
 .../gemfire-modules-hibernate/build.gradle      |    33 -
 .../gemfire/modules/hibernate/EnumType.java     |    58 -
 .../gemfire/modules/hibernate/GemFireCache.java |   238 -
 .../modules/hibernate/GemFireCacheListener.java |    54 -
 .../modules/hibernate/GemFireCacheProvider.java |   200 -
 .../hibernate/GemFireQueryCacheFactory.java     |    39 -
 .../modules/hibernate/GemFireRegionFactory.java |   237 -
 .../modules/hibernate/internal/Access.java      |   257 -
 .../ClientServerRegionFactoryDelegate.java      |   208 -
 .../hibernate/internal/CollectionAccess.java    |   224 -
 .../hibernate/internal/EntityRegionWriter.java  |    87 -
 .../hibernate/internal/EntityVersion.java       |    28 -
 .../hibernate/internal/EntityVersionImpl.java   |    51 -
 .../hibernate/internal/EntityWrapper.java       |    89 -
 .../hibernate/internal/GemFireBaseRegion.java   |   166 -
 .../internal/GemFireCollectionRegion.java       |    59 -
 .../hibernate/internal/GemFireEntityRegion.java |   187 -
 .../internal/GemFireQueryResultsRegion.java     |   113 -
 .../modules/hibernate/internal/KeyWrapper.java  |    93 -
 .../internal/NonStrictReadWriteAccess.java      |    83 -
 .../hibernate/internal/ReadOnlyAccess.java      |    55 -
 .../hibernate/internal/ReadWriteAccess.java     |    36 -
 .../internal/RegionFactoryDelegate.java         |   153 -
 .../hibernate/internal/TransactionalAccess.java |    25 -
 .../com/gemstone/gemfire/modules/Event.java     |    67 -
 .../gemfire/modules/HibernateJUnitTest.java     |   410 -
 .../com/gemstone/gemfire/modules/Owner.java     |   186 -
 .../com/gemstone/gemfire/modules/Person.java    |    72 -
 .../gemstone/gemfire/modules/SecondVMTest.java  |    93 -
 .../com/gemstone/gemfire/modules/Event.hbm.xml  |    32 -
 .../com/gemstone/gemfire/modules/Person.hbm.xml |    36 -
 .../src/test/resources/log4j.properties         |    16 -
 extensions/gemfire-modules-session/build.gradle |    54 -
 .../session/filter/SessionCachingFilter.java    |   652 -
 .../modules/session/filter/SessionListener.java |    51 -
 .../modules/session/installer/Installer.java    |   296 -
 .../session/installer/JarClassLoader.java       |   123 -
 .../session/installer/args/Argument.java        |   275 -
 .../session/installer/args/ArgumentHandler.java |    38 -
 .../installer/args/ArgumentProcessor.java       |   397 -
 .../session/installer/args/ArgumentValues.java  |   222 -
 .../installer/args/URLArgumentHandler.java      |    77 -
 .../installer/args/UnknownArgumentHandler.java  |    36 -
 .../session/installer/args/UsageException.java  |    89 -
 .../internal/common/AbstractSessionCache.java   |   102 -
 .../session/internal/common/CacheProperty.java  |    65 -
 .../common/ClientServerSessionCache.java        |   186 -
 .../internal/common/PeerToPeerSessionCache.java |   184 -
 .../session/internal/common/SessionCache.java   |    68 -
 .../common/SessionExpirationCacheListener.java  |    53 -
 .../session/internal/filter/Constants.java      |    30 -
 .../internal/filter/DummySessionManager.java    |   132 -
 .../internal/filter/GemfireHttpSession.java     |   526 -
 .../filter/GemfireSessionException.java         |    41 -
 .../internal/filter/GemfireSessionManager.java  |   511 -
 .../internal/filter/ListenerEventType.java      |    75 -
 .../session/internal/filter/SessionManager.java |   110 -
 .../AbstractDeltaSessionAttributes.java         |   107 -
 .../attributes/AbstractSessionAttributes.java   |   188 -
 .../internal/filter/attributes/DeltaEvent.java  |   119 -
 .../DeltaQueuedSessionAttributes.java           |    94 -
 .../attributes/DeltaSessionAttributes.java      |    75 -
 .../attributes/ImmediateSessionAttributes.java  |    68 -
 .../attributes/QueuedSessionAttributes.java     |    65 -
 .../filter/attributes/SessionAttributes.java    |   120 -
 .../filter/util/NamedThreadFactory.java         |    68 -
 .../filter/util/ThreadLocalSession.java         |    39 -
 .../internal/filter/util/TypeAwareMap.java      |    50 -
 .../session/internal/jmx/SessionStatistics.java |    78 -
 .../internal/jmx/SessionStatisticsMXBean.java   |    30 -
 .../internal/filter/AbstractListener.java       |    57 -
 .../session/internal/filter/BasicServlet.java   |    52 -
 .../session/internal/filter/Callback.java       |    30 -
 .../internal/filter/CallbackServlet.java        |    91 -
 .../session/internal/filter/CommonTests.java    |   582 -
 .../HttpSessionAttributeListenerImpl.java       |    46 -
 .../filter/HttpSessionBindingListenerImpl.java  |    42 -
 .../filter/HttpSessionListenerImpl.java         |    41 -
 .../filter/HttpSessionListenerImpl2.java        |    43 -
 .../internal/filter/MyServletTester.java        |    38 -
 .../internal/filter/RendezvousManager.java      |    46 -
 .../ServletRequestAttributeListenerImpl.java    |    45 -
 .../filter/ServletRequestListenerImpl.java      |    36 -
 .../SessionReplicationIntegrationJUnitTest.java |  1558 --
 .../filter/SessionReplicationJUnitTest.java     |    53 -
 .../SessionReplicationLocalCacheJUnitTest.java  |    54 -
 .../session/junit/ChildFirstClassLoader.java    |    86 -
 .../modules/session/junit/NamedRunner.java      |   120 -
 .../session/junit/PerTestClassLoaderRunner.java |   283 -
 .../junit/SeparateClassloaderTestRunner.java    |    56 -
 .../src/test/resources/log4j.properties         |    12 -
 extensions/gemfire-modules-tomcat7/build.gradle |    54 -
 .../catalina/Tomcat7DeltaSessionManager.java    |   112 -
 .../session/Tomcat7SessionsJUnitTest.java       |    35 -
 .../test/resources/tomcat/conf/tomcat-users.xml |     3 -
 .../src/test/resources/tomcat/logs/.gitkeep     |     0
 .../src/test/resources/tomcat/temp/.gitkeep     |     0
 extensions/gemfire-modules/build.gradle         |    39 -
 .../gatewaydelta/AbstractGatewayDeltaEvent.java |    64 -
 .../modules/gatewaydelta/GatewayDelta.java      |    26 -
 .../gatewaydelta/GatewayDeltaCreateEvent.java   |    88 -
 .../gatewaydelta/GatewayDeltaDestroyEvent.java  |    82 -
 .../modules/gatewaydelta/GatewayDeltaEvent.java |    24 -
 ...tewayDeltaEventApplicationCacheListener.java |    67 -
 .../GatewayDeltaForwarderCacheListener.java     |   197 -
 .../session/bootstrap/AbstractCache.java        |   398 -
 .../session/bootstrap/ClientServerCache.java    |    74 -
 .../session/bootstrap/LifecycleTypeAdapter.java |    59 -
 .../session/bootstrap/PeerToPeerCache.java      |    85 -
 .../AbstractCacheLifecycleListener.java         |    68 -
 .../session/catalina/AbstractSessionCache.java  |   113 -
 .../ClientServerCacheLifecycleListener.java     |    26 -
 .../catalina/ClientServerSessionCache.java      |   252 -
 .../session/catalina/CommitSessionValve.java    |    68 -
 .../modules/session/catalina/DeltaSession.java  |   597 -
 .../session/catalina/DeltaSessionFacade.java    |    49 -
 .../session/catalina/DeltaSessionManager.java   |   992 -
 .../session/catalina/JvmRouteBinderValve.java   |   108 -
 .../session/catalina/LocalStrings.properties    |    16 -
 .../PeerToPeerCacheLifecycleListener.java       |    29 -
 .../catalina/PeerToPeerSessionCache.java        |   215 -
 .../modules/session/catalina/SessionCache.java  |    64 -
 .../session/catalina/SessionManager.java        |    48 -
 .../catalina/Tomcat6DeltaSessionManager.java    |    98 -
 .../callback/LocalSessionCacheLoader.java       |    45 -
 .../callback/LocalSessionCacheWriter.java       |    59 -
 .../SessionExpirationCacheListener.java         |    77 -
 .../internal/DeltaSessionAttributeEvent.java    |    25 -
 .../DeltaSessionAttributeEventBatch.java        |    88 -
 .../DeltaSessionDestroyAttributeEvent.java      |    73 -
 .../internal/DeltaSessionStatistics.java        |    88 -
 .../DeltaSessionUpdateAttributeEvent.java       |    83 -
 .../gemstone/gemfire/modules/util/Banner.java   |    59 -
 .../modules/util/BootstrappingFunction.java     |   188 -
 .../util/ClassLoaderObjectInputStream.java      |    40 -
 .../gemfire/modules/util/ContextMapper.java     |    53 -
 .../modules/util/CreateRegionFunction.java      |   245 -
 .../modules/util/DebugCacheListener.java        |    72 -
 .../gemfire/modules/util/ModuleStatistics.java  |    91 -
 .../modules/util/RegionConfiguration.java       |   308 -
 .../util/RegionConfigurationCacheListener.java  |   114 -
 .../gemfire/modules/util/RegionHelper.java      |   241 -
 .../modules/util/RegionSizeFunction.java        |    56 -
 .../gemfire/modules/util/RegionStatus.java      |    21 -
 .../modules/util/ResourceManagerValidator.java  |   166 -
 .../modules/util/SessionCustomExpiry.java       |    64 -
 .../TouchPartitionedRegionEntriesFunction.java  |   100 -
 .../TouchReplicatedRegionEntriesFunction.java   |    97 -
 .../main/resources/modules-version.properties   |     1 -
 .../gemfire/modules/session/Callback.java       |    30 -
 .../gemfire/modules/session/CommandServlet.java |    91 -
 .../gemfire/modules/session/EmbeddedTomcat.java |   193 -
 .../gemfire/modules/session/QueryCommand.java   |    34 -
 .../modules/session/TestSessionsBase.java       |   493 -
 .../session/Tomcat6SessionsJUnitTest.java       |    35 -
 .../com/gemstone/gemfire/modules/Event.hbm.xml  |    16 -
 .../com/gemstone/gemfire/modules/Person.hbm.xml |    21 -
 .../src/test/resources/log4j.properties         |    16 -
 .../test/resources/tomcat/conf/tomcat-users.xml |     3 -
 .../src/test/resources/tomcat/logs/.gitkeep     |     0
 .../src/test/resources/tomcat/temp/.gitkeep     |     0
 extensions/geode-modules-assembly/build.gradle  |   247 +
 .../release/conf/cache-client.xml               |    40 +
 .../release/conf/cache-peer.xml                 |    48 +
 .../release/conf/cache-server.xml               |    74 +
 .../release/scripts/cacheserver.bat             |   133 +
 .../release/scripts/cacheserver.sh              |    97 +
 .../release/scripts/gemfire.bat                 |    41 +
 .../release/scripts/gemfire.sh                  |    58 +
 .../release/scripts/setenv.properties           |     6 +
 .../release/session/bin/cacheserver.bat         |    56 +
 .../release/session/bin/cacheserver.sh          |    57 +
 .../release/session/bin/gemfire.bat             |    53 +
 .../release/session/bin/gemfire.sh              |    69 +
 .../release/session/bin/modify_war              |   392 +
 .../release/session/bin/setenv.properties       |     6 +
 .../gemfire-cs-tomcat-7/context-fragment.xml    |    15 +
 .../tcserver/gemfire-cs-tomcat-7/modules.env    |     1 +
 .../gemfire-cs-tomcat-8/context-fragment.xml    |    15 +
 .../tcserver/gemfire-cs-tomcat-8/modules.env    |     1 +
 .../gemfire-cs/configuration-prompts.properties |    17 +
 .../tcserver/gemfire-cs/context-fragment.xml    |    13 +
 .../release/tcserver/gemfire-cs/modules.env     |     1 +
 .../tcserver/gemfire-cs/server-fragment.xml     |    12 +
 .../gemfire-p2p-tomcat-7/context-fragment.xml   |    15 +
 .../tcserver/gemfire-p2p-tomcat-7/modules.env   |     1 +
 .../gemfire-p2p-tomcat-8/context-fragment.xml   |    15 +
 .../tcserver/gemfire-p2p-tomcat-8/modules.env   |     1 +
 .../configuration-prompts.properties            |    19 +
 .../tcserver/gemfire-p2p/context-fragment.xml   |    13 +
 .../release/tcserver/gemfire-p2p/modules.env    |     1 +
 .../tcserver/gemfire-p2p/server-fragment.xml    |    14 +
 extensions/geode-modules-hibernate/build.gradle |    33 +
 .../gemfire/modules/hibernate/EnumType.java     |    58 +
 .../gemfire/modules/hibernate/GemFireCache.java |   238 +
 .../modules/hibernate/GemFireCacheListener.java |    54 +
 .../modules/hibernate/GemFireCacheProvider.java |   200 +
 .../hibernate/GemFireQueryCacheFactory.java     |    39 +
 .../modules/hibernate/GemFireRegionFactory.java |   237 +
 .../modules/hibernate/internal/Access.java      |   257 +
 .../ClientServerRegionFactoryDelegate.java      |   208 +
 .../hibernate/internal/CollectionAccess.java    |   224 +
 .../hibernate/internal/EntityRegionWriter.java  |    87 +
 .../hibernate/internal/EntityVersion.java       |    28 +
 .../hibernate/internal/EntityVersionImpl.java   |    51 +
 .../hibernate/internal/EntityWrapper.java       |    89 +
 .../hibernate/internal/GemFireBaseRegion.java   |   166 +
 .../internal/GemFireCollectionRegion.java       |    59 +
 .../hibernate/internal/GemFireEntityRegion.java |   187 +
 .../internal/GemFireQueryResultsRegion.java     |   113 +
 .../modules/hibernate/internal/KeyWrapper.java  |    93 +
 .../internal/NonStrictReadWriteAccess.java      |    83 +
 .../hibernate/internal/ReadOnlyAccess.java      |    55 +
 .../hibernate/internal/ReadWriteAccess.java     |    36 +
 .../internal/RegionFactoryDelegate.java         |   153 +
 .../hibernate/internal/TransactionalAccess.java |    25 +
 .../com/gemstone/gemfire/modules/Event.java     |    67 +
 .../gemfire/modules/HibernateJUnitTest.java     |   410 +
 .../com/gemstone/gemfire/modules/Owner.java     |   186 +
 .../com/gemstone/gemfire/modules/Person.java    |    72 +
 .../gemstone/gemfire/modules/SecondVMTest.java  |    93 +
 .../com/gemstone/gemfire/modules/Event.hbm.xml  |    32 +
 .../com/gemstone/gemfire/modules/Person.hbm.xml |    36 +
 .../src/test/resources/log4j.properties         |    16 +
 extensions/geode-modules-session/build.gradle   |    54 +
 .../session/filter/SessionCachingFilter.java    |   652 +
 .../modules/session/filter/SessionListener.java |    51 +
 .../modules/session/installer/Installer.java    |   296 +
 .../session/installer/JarClassLoader.java       |   123 +
 .../session/installer/args/Argument.java        |   275 +
 .../session/installer/args/ArgumentHandler.java |    38 +
 .../installer/args/ArgumentProcessor.java       |   397 +
 .../session/installer/args/ArgumentValues.java  |   222 +
 .../installer/args/URLArgumentHandler.java      |    77 +
 .../installer/args/UnknownArgumentHandler.java  |    36 +
 .../session/installer/args/UsageException.java  |    89 +
 .../internal/common/AbstractSessionCache.java   |   102 +
 .../session/internal/common/CacheProperty.java  |    65 +
 .../common/ClientServerSessionCache.java        |   186 +
 .../internal/common/PeerToPeerSessionCache.java |   184 +
 .../session/internal/common/SessionCache.java   |    68 +
 .../common/SessionExpirationCacheListener.java  |    53 +
 .../session/internal/filter/Constants.java      |    30 +
 .../internal/filter/DummySessionManager.java    |   132 +
 .../internal/filter/GemfireHttpSession.java     |   526 +
 .../filter/GemfireSessionException.java         |    41 +
 .../internal/filter/GemfireSessionManager.java  |   511 +
 .../internal/filter/ListenerEventType.java      |    75 +
 .../session/internal/filter/SessionManager.java |   110 +
 .../AbstractDeltaSessionAttributes.java         |   107 +
 .../attributes/AbstractSessionAttributes.java   |   188 +
 .../internal/filter/attributes/DeltaEvent.java  |   119 +
 .../DeltaQueuedSessionAttributes.java           |    94 +
 .../attributes/DeltaSessionAttributes.java      |    75 +
 .../attributes/ImmediateSessionAttributes.java  |    68 +
 .../attributes/QueuedSessionAttributes.java     |    65 +
 .../filter/attributes/SessionAttributes.java    |   120 +
 .../filter/util/NamedThreadFactory.java         |    68 +
 .../filter/util/ThreadLocalSession.java         |    39 +
 .../internal/filter/util/TypeAwareMap.java      |    50 +
 .../session/internal/jmx/SessionStatistics.java |    78 +
 .../internal/jmx/SessionStatisticsMXBean.java   |    30 +
 .../internal/filter/AbstractListener.java       |    57 +
 .../session/internal/filter/BasicServlet.java   |    52 +
 .../session/internal/filter/Callback.java       |    30 +
 .../internal/filter/CallbackServlet.java        |    91 +
 .../session/internal/filter/CommonTests.java    |   582 +
 .../HttpSessionAttributeListenerImpl.java       |    46 +
 .../filter/HttpSessionBindingListenerImpl.java  |    42 +
 .../filter/HttpSessionListenerImpl.java         |    41 +
 .../filter/HttpSessionListenerImpl2.java        |    43 +
 .../internal/filter/MyServletTester.java        |    38 +
 .../internal/filter/RendezvousManager.java      |    46 +
 .../ServletRequestAttributeListenerImpl.java    |    45 +
 .../filter/ServletRequestListenerImpl.java      |    36 +
 .../SessionReplicationIntegrationJUnitTest.java |  1558 ++
 .../filter/SessionReplicationJUnitTest.java     |    53 +
 .../SessionReplicationLocalCacheJUnitTest.java  |    54 +
 .../session/junit/ChildFirstClassLoader.java    |    86 +
 .../modules/session/junit/NamedRunner.java      |   120 +
 .../session/junit/PerTestClassLoaderRunner.java |   283 +
 .../junit/SeparateClassloaderTestRunner.java    |    56 +
 .../src/test/resources/log4j.properties         |    12 +
 extensions/geode-modules-tomcat7/build.gradle   |    54 +
 .../catalina/Tomcat7DeltaSessionManager.java    |   112 +
 .../session/Tomcat7SessionsJUnitTest.java       |    35 +
 .../test/resources/tomcat/conf/tomcat-users.xml |     3 +
 .../src/test/resources/tomcat/logs/.gitkeep     |     0
 .../src/test/resources/tomcat/temp/.gitkeep     |     0
 extensions/geode-modules/build.gradle           |    39 +
 .../gatewaydelta/AbstractGatewayDeltaEvent.java |    64 +
 .../modules/gatewaydelta/GatewayDelta.java      |    26 +
 .../gatewaydelta/GatewayDeltaCreateEvent.java   |    88 +
 .../gatewaydelta/GatewayDeltaDestroyEvent.java  |    82 +
 .../modules/gatewaydelta/GatewayDeltaEvent.java |    24 +
 ...tewayDeltaEventApplicationCacheListener.java |    67 +
 .../GatewayDeltaForwarderCacheListener.java     |   197 +
 .../session/bootstrap/AbstractCache.java        |   398 +
 .../session/bootstrap/ClientServerCache.java    |    74 +
 .../session/bootstrap/LifecycleTypeAdapter.java |    59 +
 .../session/bootstrap/PeerToPeerCache.java      |    85 +
 .../AbstractCacheLifecycleListener.java         |    68 +
 .../session/catalina/AbstractSessionCache.java  |   113 +
 .../ClientServerCacheLifecycleListener.java     |    26 +
 .../catalina/ClientServerSessionCache.java      |   252 +
 .../session/catalina/CommitSessionValve.java    |    68 +
 .../modules/session/catalina/DeltaSession.java  |   597 +
 .../session/catalina/DeltaSessionFacade.java    |    49 +
 .../session/catalina/DeltaSessionManager.java   |   992 +
 .../session/catalina/JvmRouteBinderValve.java   |   108 +
 .../session/catalina/LocalStrings.properties    |    16 +
 .../PeerToPeerCacheLifecycleListener.java       |    29 +
 .../catalina/PeerToPeerSessionCache.java        |   215 +
 .../modules/session/catalina/SessionCache.java  |    64 +
 .../session/catalina/SessionManager.java        |    48 +
 .../catalina/Tomcat6DeltaSessionManager.java    |    98 +
 .../callback/LocalSessionCacheLoader.java       |    45 +
 .../callback/LocalSessionCacheWriter.java       |    59 +
 .../SessionExpirationCacheListener.java         |    77 +
 .../internal/DeltaSessionAttributeEvent.java    |    25 +
 .../DeltaSessionAttributeEventBatch.java        |    88 +
 .../DeltaSessionDestroyAttributeEvent.java      |    73 +
 .../internal/DeltaSessionStatistics.java        |    88 +
 .../DeltaSessionUpdateAttributeEvent.java       |    83 +
 .../gemstone/gemfire/modules/util/Banner.java   |    59 +
 .../modules/util/BootstrappingFunction.java     |   188 +
 .../util/ClassLoaderObjectInputStream.java      |    40 +
 .../gemfire/modules/util/ContextMapper.java     |    53 +
 .../modules/util/CreateRegionFunction.java      |   245 +
 .../modules/util/DebugCacheListener.java        |    72 +
 .../gemfire/modules/util/ModuleStatistics.java  |    91 +
 .../modules/util/RegionConfiguration.java       |   308 +
 .../util/RegionConfigurationCacheListener.java  |   114 +
 .../gemfire/modules/util/RegionHelper.java      |   241 +
 .../modules/util/RegionSizeFunction.java        |    56 +
 .../gemfire/modules/util/RegionStatus.java      |    21 +
 .../modules/util/ResourceManagerValidator.java  |   166 +
 .../modules/util/SessionCustomExpiry.java       |    64 +
 .../TouchPartitionedRegionEntriesFunction.java  |   100 +
 .../TouchReplicatedRegionEntriesFunction.java   |    97 +
 .../main/resources/modules-version.properties   |     1 +
 .../gemfire/modules/session/Callback.java       |    30 +
 .../gemfire/modules/session/CommandServlet.java |    91 +
 .../gemfire/modules/session/EmbeddedTomcat.java |   193 +
 .../gemfire/modules/session/QueryCommand.java   |    34 +
 .../modules/session/TestSessionsBase.java       |   493 +
 .../session/Tomcat6SessionsJUnitTest.java       |    35 +
 .../com/gemstone/gemfire/modules/Event.hbm.xml  |    16 +
 .../com/gemstone/gemfire/modules/Person.hbm.xml |    21 +
 .../src/test/resources/log4j.properties         |    16 +
 .../test/resources/tomcat/conf/tomcat-users.xml |     3 +
 .../src/test/resources/tomcat/logs/.gitkeep     |     0
 .../src/test/resources/tomcat/temp/.gitkeep     |     0
 gemfire-assembly/build.gradle                   |   342 -
 gemfire-assembly/src/main/dist/DISCLAIMER       |     6 -
 gemfire-assembly/src/main/dist/LICENSE          |   429 -
 gemfire-assembly/src/main/dist/NOTICE           |   467 -
 gemfire-assembly/src/main/dist/bin/gfsh         |   152 -
 .../src/main/dist/bin/gfsh-completion.bash      |   103 -
 gemfire-assembly/src/main/dist/bin/gfsh.bat     |    87 -
 .../LocatorLauncherAssemblyJUnitTest.java       |   157 -
 .../management/internal/AgentUtilJUnitTest.java |    98 -
 .../LauncherLifecycleCommandsDUnitTest.java     |  1007 -
 .../LauncherLifecycleCommandsJUnitTest.java     |   625 -
 .../SharedConfigurationEndToEndDUnitTest.java   |   450 -
 gemfire-common/build.gradle                     |    20 -
 .../gemfire/annotations/Experimental.java       |    56 -
 .../annotations/ExperimentalJUnitTest.java      |   199 -
 .../ClassInExperimentalPackage.java             |    27 -
 .../experimentalpackage/package-info.java       |    27 -
 .../ClassInNonExperimentalPackage.java          |    27 -
 .../nonexperimentalpackage/package-info.java    |    24 -
 gemfire-core/build.gradle                       |   204 -
 .../internal/ra/GFConnectionFactoryImpl.java    |    66 -
 .../gemfire/internal/ra/GFConnectionImpl.java   |    71 -
 .../internal/ra/spi/JCALocalTransaction.java    |   236 -
 .../internal/ra/spi/JCAManagedConnection.java   |   299 -
 .../ra/spi/JCAManagedConnectionFactory.java     |   145 -
 .../ra/spi/JCAManagedConnectionMetaData.java    |    67 -
 gemfire-core/src/jca/ra.xml                     |    52 -
 .../com/gemstone/gemfire/CancelCriterion.java   |   109 -
 .../com/gemstone/gemfire/CancelException.java   |    64 -
 .../gemstone/gemfire/CanonicalInstantiator.java |    86 -
 .../com/gemstone/gemfire/CopyException.java     |    67 -
 .../java/com/gemstone/gemfire/CopyHelper.java   |   268 -
 .../com/gemstone/gemfire/DataSerializable.java  |   140 -
 .../com/gemstone/gemfire/DataSerializer.java    |  3565 ----
 .../main/java/com/gemstone/gemfire/Delta.java   |    66 -
 .../gemfire/DeltaSerializationException.java    |    59 -
 .../gemfire/ForcedDisconnectException.java      |    41 -
 .../gemstone/gemfire/GemFireCacheException.java |    50 -
 .../gemfire/GemFireCheckedException.java        |    90 -
 .../gemfire/GemFireConfigException.java         |    42 -
 .../com/gemstone/gemfire/GemFireException.java  |   149 -
 .../gemstone/gemfire/GemFireIOException.java    |    41 -
 .../gemstone/gemfire/GemFireRethrowable.java    |    47 -
 .../gemfire/IncompatibleSystemException.java    |    38 -
 .../java/com/gemstone/gemfire/Instantiator.java |   315 -
 .../gemstone/gemfire/InternalGemFireError.java  |   154 -
 .../gemfire/InternalGemFireException.java       |    56 -
 .../gemstone/gemfire/InvalidDeltaException.java |    63 -
 .../gemstone/gemfire/InvalidValueException.java |    42 -
 .../gemfire/InvalidVersionException.java        |    25 -
 .../com/gemstone/gemfire/LicenseException.java  |    54 -
 .../java/com/gemstone/gemfire/LogWriter.java    |   301 -
 .../com/gemstone/gemfire/NoSystemException.java |    48 -
 .../gemfire/OutOfOffHeapMemoryException.java    |    45 -
 .../gemfire/SerializationException.java         |    45 -
 .../gemstone/gemfire/StatisticDescriptor.java   |    82 -
 .../java/com/gemstone/gemfire/Statistics.java   |   446 -
 .../com/gemstone/gemfire/StatisticsFactory.java |   154 -
 .../com/gemstone/gemfire/StatisticsType.java    |    72 -
 .../gemstone/gemfire/StatisticsTypeFactory.java |   197 -
 .../gemfire/SystemConnectException.java         |    42 -
 .../com/gemstone/gemfire/SystemFailure.java     |  1239 --
 .../gemfire/SystemIsRunningException.java       |    46 -
 .../gemfire/ThreadInterruptedException.java     |    31 -
 .../com/gemstone/gemfire/ToDataException.java   |    42 -
 .../gemfire/UncreatedSystemException.java       |    48 -
 .../gemstone/gemfire/UnmodifiableException.java |    36 -
 .../gemfire/UnstartedSystemException.java       |    49 -
 .../com/gemstone/gemfire/admin/AdminConfig.java |   157 -
 .../gemfire/admin/AdminDistributedSystem.java   |   478 -
 .../admin/AdminDistributedSystemFactory.java    |   163 -
 .../gemstone/gemfire/admin/AdminException.java  |    90 -
 .../gemfire/admin/AdminXmlException.java        |    48 -
 .../java/com/gemstone/gemfire/admin/Alert.java  |    56 -
 .../com/gemstone/gemfire/admin/AlertLevel.java  |   174 -
 .../gemstone/gemfire/admin/AlertListener.java   |    30 -
 .../gemstone/gemfire/admin/BackupStatus.java    |    49 -
 .../admin/CacheDoesNotExistException.java       |    87 -
 .../gemfire/admin/CacheHealthConfig.java        |   157 -
 .../com/gemstone/gemfire/admin/CacheServer.java |    46 -
 .../gemfire/admin/CacheServerConfig.java        |    55 -
 .../com/gemstone/gemfire/admin/CacheVm.java     |    38 -
 .../gemstone/gemfire/admin/CacheVmConfig.java   |    54 -
 .../gemfire/admin/ConfigurationParameter.java   |    74 -
 .../gemfire/admin/DistributedSystemConfig.java  |   682 -
 .../admin/DistributedSystemHealthConfig.java    |    77 -
 .../gemfire/admin/DistributionLocator.java      |    47 -
 .../admin/DistributionLocatorConfig.java        |    90 -
 .../gemstone/gemfire/admin/GemFireHealth.java   |   234 -
 .../gemfire/admin/GemFireHealthConfig.java      |    58 -
 .../gemfire/admin/GemFireMemberStatus.java      |   709 -
 .../gemstone/gemfire/admin/ManagedEntity.java   |   125 -
 .../gemfire/admin/ManagedEntityConfig.java      |   100 -
 .../gemfire/admin/MemberHealthConfig.java       |   142 -
 .../admin/OperationCancelledException.java      |    48 -
 .../gemfire/admin/RegionNotFoundException.java  |    39 -
 .../gemfire/admin/RegionSubRegionSnapshot.java  |   193 -
 .../gemfire/admin/RuntimeAdminException.java    |    50 -
 .../com/gemstone/gemfire/admin/Statistic.java   |    66 -
 .../gemfire/admin/StatisticResource.java        |    86 -
 .../gemstone/gemfire/admin/SystemMember.java    |   148 -
 .../gemfire/admin/SystemMemberBridgeServer.java |   309 -
 .../gemfire/admin/SystemMemberCache.java        |   205 -
 .../gemfire/admin/SystemMemberCacheEvent.java   |    34 -
 .../admin/SystemMemberCacheListener.java        |    73 -
 .../gemfire/admin/SystemMemberCacheServer.java  |   309 -
 .../gemfire/admin/SystemMemberRegion.java       |   322 -
 .../gemfire/admin/SystemMemberRegionEvent.java  |    33 -
 .../gemfire/admin/SystemMemberType.java         |   146 -
 .../gemfire/admin/SystemMembershipEvent.java    |    41 -
 .../gemfire/admin/SystemMembershipListener.java |    62 -
 .../UnmodifiableConfigurationException.java     |    89 -
 .../admin/internal/AbstractHealthEvaluator.java |   185 -
 .../internal/AdminDistributedSystemImpl.java    |  2510 ---
 .../admin/internal/BackupDataStoreHelper.java   |    76 -
 .../admin/internal/BackupDataStoreResult.java   |    57 -
 .../admin/internal/BackupStatusImpl.java        |    62 -
 .../admin/internal/CacheHealthConfigImpl.java   |    92 -
 .../admin/internal/CacheHealthEvaluator.java    |   324 -
 .../admin/internal/CacheServerConfigImpl.java   |   136 -
 .../gemfire/admin/internal/CacheServerImpl.java |   199 -
 .../internal/ConfigurationParameterImpl.java    |   281 -
 .../ConfigurationParameterListener.java         |    35 -
 .../DisabledManagedEntityController.java        |    92 -
 .../internal/DistributedSystemConfigImpl.java   |  1103 --
 .../DistributedSystemHealthConfigImpl.java      |    59 -
 .../DistributedSystemHealthEvaluator.java       |   172 -
 .../DistributedSystemHealthMonitor.java         |   437 -
 .../internal/DistributionLocatorConfigImpl.java |   192 -
 .../admin/internal/DistributionLocatorImpl.java |   331 -
 .../EnabledManagedEntityController.java         |   412 -
 .../admin/internal/FinishBackupRequest.java     |   172 -
 .../admin/internal/FinishBackupResponse.java    |    79 -
 .../admin/internal/FlushToDiskRequest.java      |    98 -
 .../admin/internal/FlushToDiskResponse.java     |    46 -
 .../admin/internal/GemFireHealthConfigImpl.java |    84 -
 .../admin/internal/GemFireHealthEvaluator.java  |   188 -
 .../admin/internal/GemFireHealthImpl.java       |   536 -
 .../gemfire/admin/internal/InetAddressUtil.java |   209 -
 .../admin/internal/InternalManagedEntity.java   |   106 -
 .../gemfire/admin/internal/LogCollator.java     |   137 -
 .../admin/internal/ManagedEntityConfigImpl.java |   263 -
 .../admin/internal/ManagedEntityConfigXml.java  |   170 -
 .../ManagedEntityConfigXmlGenerator.java        |   386 -
 .../internal/ManagedEntityConfigXmlParser.java  |   623 -
 .../admin/internal/ManagedEntityController.java |    74 -
 .../ManagedEntityControllerFactory.java         |    61 -
 .../admin/internal/ManagedSystemMemberImpl.java |   271 -
 .../admin/internal/MemberHealthConfigImpl.java  |    96 -
 .../admin/internal/MemberHealthEvaluator.java   |   242 -
 .../admin/internal/PrepareBackupRequest.java    |   133 -
 .../admin/internal/PrepareBackupResponse.java   |    82 -
 .../gemfire/admin/internal/StatisticImpl.java   |    97 -
 .../admin/internal/StatisticResourceImpl.java   |   182 -
 .../internal/SystemMemberBridgeServerImpl.java  |   234 -
 .../internal/SystemMemberCacheEventImpl.java    |    61 -
 .../SystemMemberCacheEventProcessor.java        |   148 -
 .../admin/internal/SystemMemberCacheImpl.java   |   313 -
 .../admin/internal/SystemMemberImpl.java        |   520 -
 .../internal/SystemMemberRegionEventImpl.java   |    63 -
 .../admin/internal/SystemMemberRegionImpl.java  |   381 -
 .../internal/SystemMembershipEventImpl.java     |    71 -
 .../internal/doc-files/config-hierarchy.fig     |   156 -
 .../admin/internal/doc-files/health-classes.fig |   233 -
 .../admin/internal/doc-files/health-classes.gif |   Bin 8973 -> 0 bytes
 .../gemfire/admin/internal/package.html         |    53 -
 .../com/gemstone/gemfire/admin/jmx/Agent.java   |   165 -
 .../gemstone/gemfire/admin/jmx/AgentConfig.java |   884 -
 .../gemfire/admin/jmx/AgentFactory.java         |    52 -
 .../internal/AdminDistributedSystemJmxImpl.java |  2341 ---
 .../admin/jmx/internal/AgentConfigImpl.java     |  1847 --
 .../gemfire/admin/jmx/internal/AgentImpl.java   |  1622 --
 .../admin/jmx/internal/AgentLauncher.java       |   889 -
 .../admin/jmx/internal/CacheServerJmxImpl.java  |   642 -
 .../admin/jmx/internal/ConfigAttributeInfo.java |    77 -
 .../internal/ConfigurationParameterJmxImpl.java |   170 -
 .../DistributedSystemHealthConfigJmxImpl.java   |   108 -
 .../internal/DistributionLocatorJmxImpl.java    |   186 -
 .../admin/jmx/internal/DynamicManagedBean.java  |   142 -
 .../internal/GemFireHealthConfigJmxImpl.java    |   223 -
 .../jmx/internal/GemFireHealthJmxImpl.java      |   179 -
 .../admin/jmx/internal/GenerateMBeanHTML.java   |   514 -
 .../gemfire/admin/jmx/internal/MBeanUtil.java   |   769 -
 .../admin/jmx/internal/MX4JModelMBean.java      |  1255 --
 .../jmx/internal/MX4JServerSocketFactory.java   |   160 -
 .../gemfire/admin/jmx/internal/MailManager.java |   333 -
 .../admin/jmx/internal/ManagedResource.java     |    78 -
 .../admin/jmx/internal/ManagedResourceType.java |   210 -
 .../jmx/internal/MemberInfoWithStatsMBean.java  |  1388 --
 .../admin/jmx/internal/RMIRegistryService.java  |   239 -
 .../jmx/internal/RMIRegistryServiceMBean.java   |    85 -
 .../jmx/internal/RefreshNotificationType.java   |   133 -
 .../jmx/internal/StatAlertNotification.java     |   162 -
 .../jmx/internal/StatAlertsAggregator.java      |   125 -
 .../jmx/internal/StatisticAttributeInfo.java    |    79 -
 .../jmx/internal/StatisticResourceJmxImpl.java  |   361 -
 .../SystemMemberBridgeServerJmxImpl.java        |   135 -
 .../jmx/internal/SystemMemberCacheJmxImpl.java  |   475 -
 .../admin/jmx/internal/SystemMemberJmx.java     |   508 -
 .../admin/jmx/internal/SystemMemberJmxImpl.java |   593 -
 .../jmx/internal/SystemMemberRegionJmxImpl.java |   140 -
 .../gemfire/admin/jmx/internal/package.html     |   166 -
 .../com/gemstone/gemfire/admin/jmx/package.html |    28 -
 .../com/gemstone/gemfire/admin/package.html     |    78 -
 .../gemfire/cache/AttributesFactory.java        |  2056 --
 .../gemfire/cache/AttributesMutator.java        |   224 -
 .../java/com/gemstone/gemfire/cache/Cache.java  |   457 -
 .../gemstone/gemfire/cache/CacheCallback.java   |    47 -
 .../gemfire/cache/CacheClosedException.java     |    77 -
 .../com/gemstone/gemfire/cache/CacheEvent.java  |   110 -
 .../gemstone/gemfire/cache/CacheException.java  |    70 -
 .../gemfire/cache/CacheExistsException.java     |    66 -
 .../gemstone/gemfire/cache/CacheFactory.java    |   392 -
 .../gemstone/gemfire/cache/CacheListener.java   |   174 -
 .../com/gemstone/gemfire/cache/CacheLoader.java |    64 -
 .../gemfire/cache/CacheLoaderException.java     |    66 -
 .../gemfire/cache/CacheRuntimeException.java    |    81 -
 .../gemstone/gemfire/cache/CacheStatistics.java |   130 -
 .../gemfire/cache/CacheTransactionManager.java  |   350 -
 .../com/gemstone/gemfire/cache/CacheWriter.java |   151 -
 .../gemfire/cache/CacheWriterException.java     |    70 -
 .../gemfire/cache/CacheXmlException.java        |    50 -
 .../gemstone/gemfire/cache/ClientSession.java   |   198 -
 .../gemfire/cache/CommitConflictException.java  |    57 -
 .../cache/CommitDistributionException.java      |    81 -
 .../cache/CommitIncompleteException.java        |    31 -
 .../gemfire/cache/CustomEvictionAttributes.java |    79 -
 .../gemstone/gemfire/cache/CustomExpiry.java    |    42 -
 .../com/gemstone/gemfire/cache/DataPolicy.java  |   266 -
 .../com/gemstone/gemfire/cache/Declarable.java  |    77 -
 .../gemfire/cache/DiskAccessException.java      |   141 -
 .../com/gemstone/gemfire/cache/DiskStore.java   |   216 -
 .../gemfire/cache/DiskStoreFactory.java         |   243 -
 .../gemfire/cache/DiskWriteAttributes.java      |   108 -
 .../cache/DiskWriteAttributesFactory.java       |   263 -
 .../DuplicatePrimaryPartitionException.java     |    65 -
 .../gemfire/cache/DynamicRegionFactory.java     |  1108 --
 .../gemfire/cache/DynamicRegionListener.java    |    70 -
 .../gemfire/cache/EntryDestroyedException.java  |    61 -
 .../com/gemstone/gemfire/cache/EntryEvent.java  |   167 -
 .../gemfire/cache/EntryExistsException.java     |    62 -
 .../gemfire/cache/EntryNotFoundException.java   |    51 -
 .../gemfire/cache/EntryNotFoundInRegion.java    |    50 -
 .../gemstone/gemfire/cache/EntryOperation.java  |    86 -
 .../gemstone/gemfire/cache/EvictionAction.java  |   115 -
 .../gemfire/cache/EvictionAlgorithm.java        |   151 -
 .../gemfire/cache/EvictionAttributes.java       |   494 -
 .../cache/EvictionAttributesMutator.java        |    40 -
 .../gemfire/cache/EvictionCriteria.java         |    58 -
 .../gemfire/cache/ExpirationAction.java         |   123 -
 .../gemfire/cache/ExpirationAttributes.java     |   144 -
 .../cache/FailedSynchronizationException.java   |    55 -
 .../gemfire/cache/FixedPartitionAttributes.java |   115 -
 .../gemfire/cache/FixedPartitionResolver.java   |    79 -
 .../cache/GatewayConfigurationException.java    |    45 -
 .../gemfire/cache/GatewayException.java         |    68 -
 .../gemstone/gemfire/cache/GemFireCache.java    |   262 -
 .../cache/IncompatibleVersionException.java     |    48 -
 .../gemstone/gemfire/cache/InterestPolicy.java  |   149 -
 .../cache/InterestRegistrationEvent.java        |    92 -
 .../cache/InterestRegistrationListener.java     |    84 -
 .../gemfire/cache/InterestResultPolicy.java     |   122 -
 .../gemstone/gemfire/cache/LoaderHelper.java    |    81 -
 .../com/gemstone/gemfire/cache/LossAction.java  |   149 -
 .../gemfire/cache/LowMemoryException.java       |    67 -
 .../gemfire/cache/MembershipAttributes.java     |   269 -
 .../com/gemstone/gemfire/cache/MirrorType.java  |   136 -
 .../cache/NoQueueServersAvailableException.java |    64 -
 ...NoSubscriptionServersAvailableException.java |    64 -
 .../com/gemstone/gemfire/cache/Operation.java   |  1010 -
 .../cache/OperationAbortedException.java        |    63 -
 .../gemfire/cache/PartitionAttributes.java      |   171 -
 .../cache/PartitionAttributesFactory.java       |   457 -
 .../gemfire/cache/PartitionResolver.java        |    84 -
 .../PartitionedRegionDistributionException.java |    46 -
 .../PartitionedRegionStorageException.java      |    96 -
 .../java/com/gemstone/gemfire/cache/Region.java |  2403 ---
 .../gemfire/cache/RegionAccessException.java    |   118 -
 .../gemfire/cache/RegionAttributes.java         |   490 -
 .../gemfire/cache/RegionDestroyedException.java |    52 -
 .../cache/RegionDistributionException.java      |   123 -
 .../com/gemstone/gemfire/cache/RegionEvent.java |    41 -
 .../gemfire/cache/RegionExistsException.java    |    65 -
 .../gemstone/gemfire/cache/RegionFactory.java   |   934 -
 .../gemfire/cache/RegionMembershipListener.java |    83 -
 .../cache/RegionReinitializedException.java     |    48 -
 .../gemfire/cache/RegionRoleException.java      |    63 -
 .../gemfire/cache/RegionRoleListener.java       |    54 -
 .../gemstone/gemfire/cache/RegionService.java   |   142 -
 .../gemstone/gemfire/cache/RegionShortcut.java  |   238 -
 .../cache/RemoteTransactionException.java       |    42 -
 .../gemstone/gemfire/cache/RequiredRoles.java   |   117 -
 .../gemfire/cache/ResourceException.java        |    61 -
 .../gemfire/cache/ResumptionAction.java         |   114 -
 .../com/gemstone/gemfire/cache/RoleEvent.java   |    39 -
 .../gemstone/gemfire/cache/RoleException.java   |    68 -
 .../java/com/gemstone/gemfire/cache/Scope.java  |   168 -
 .../gemfire/cache/SerializedCacheValue.java     |    53 -
 .../cache/StatisticsDisabledException.java      |    68 -
 .../gemfire/cache/SubscriptionAttributes.java   |   117 -
 .../SynchronizationCommitConflictException.java |    49 -
 .../gemfire/cache/TimeoutException.java         |    73 -
 ...TransactionDataNodeHasDepartedException.java |    42 -
 .../TransactionDataNotColocatedException.java   |    46 -
 .../TransactionDataRebalancedException.java     |    38 -
 .../gemfire/cache/TransactionEvent.java         |   114 -
 .../gemfire/cache/TransactionException.java     |    43 -
 .../gemstone/gemfire/cache/TransactionId.java   |    33 -
 .../cache/TransactionInDoubtException.java      |    42 -
 .../gemfire/cache/TransactionListener.java      |    66 -
 .../gemfire/cache/TransactionWriter.java        |    44 -
 .../cache/TransactionWriterException.java       |    45 -
 ...upportedOperationInTransactionException.java |    37 -
 .../cache/UnsupportedVersionException.java      |    44 -
 .../gemfire/cache/VersionException.java         |    50 -
 .../gemfire/cache/asyncqueue/AsyncEvent.java    |    42 -
 .../cache/asyncqueue/AsyncEventListener.java    |    76 -
 .../cache/asyncqueue/AsyncEventQueue.java       |   151 -
 .../asyncqueue/AsyncEventQueueFactory.java      |   191 -
 .../internal/AsyncEventQueueFactoryImpl.java    |   299 -
 .../internal/AsyncEventQueueImpl.java           |   205 -
 .../internal/AsyncEventQueueStats.java          |   186 -
 .../internal/ParallelAsyncEventQueueImpl.java   |   260 -
 .../internal/SerialAsyncEventQueueImpl.java     |   257 -
 .../client/AllConnectionsInUseException.java    |    61 -
 .../gemfire/cache/client/ClientCache.java       |   168 -
 .../cache/client/ClientCacheFactory.java        |   695 -
 .../cache/client/ClientNotReadyException.java   |    56 -
 .../cache/client/ClientRegionFactory.java       |   346 -
 .../cache/client/ClientRegionShortcut.java      |   108 -
 .../client/NoAvailableLocatorsException.java    |    59 -
 .../client/NoAvailableServersException.java     |    59 -
 .../com/gemstone/gemfire/cache/client/Pool.java |   251 -
 .../gemfire/cache/client/PoolFactory.java       |   477 -
 .../gemfire/cache/client/PoolManager.java       |    98 -
 .../client/ServerConnectivityException.java     |    63 -
 .../cache/client/ServerOperationException.java  |    86 -
 .../ServerRefusedConnectionException.java       |    41 -
 .../client/SubscriptionNotEnabledException.java |    63 -
 .../client/doc-files/example-client-cache.xml   |    46 -
 .../cache/client/internal/AbstractOp.java       |   436 -
 .../cache/client/internal/AddPDXEnumOp.java     |    98 -
 .../cache/client/internal/AddPDXTypeOp.java     |    98 -
 .../client/internal/AuthenticateUserOp.java     |   312 -
 .../internal/AutoConnectionSourceImpl.java      |   387 -
 .../client/internal/CacheServerLoadMessage.java |   108 -
 .../gemfire/cache/client/internal/ClearOp.java  |   106 -
 .../client/internal/ClientMetadataService.java  |   848 -
 .../client/internal/ClientPartitionAdvisor.java |   288 -
 .../internal/ClientRegionFactoryImpl.java       |   271 -
 .../cache/client/internal/ClientUpdater.java    |    36 -
 .../client/internal/CloseConnectionOp.java      |    95 -
 .../gemfire/cache/client/internal/CommitOp.java |   109 -
 .../cache/client/internal/Connection.java       |    85 -
 .../client/internal/ConnectionFactory.java      |    68 -
 .../client/internal/ConnectionFactoryImpl.java  |   334 -
 .../cache/client/internal/ConnectionImpl.java   |   339 -
 .../cache/client/internal/ConnectionSource.java |    77 -
 .../cache/client/internal/ConnectionStats.java  |  3292 ----
 .../cache/client/internal/ContainsKeyOp.java    |   102 -
 .../DataSerializerRecoveryListener.java         |   153 -
 .../cache/client/internal/DestroyOp.java        |   286 -
 .../cache/client/internal/DestroyRegionOp.java  |   104 -
 .../gemfire/cache/client/internal/Endpoint.java |   111 -
 .../cache/client/internal/EndpointManager.java  |   100 -
 .../client/internal/EndpointManagerImpl.java    |   308 -
 .../cache/client/internal/ExecutablePool.java   |   150 -
 .../client/internal/ExecuteFunctionHelper.java  |    30 -
 .../client/internal/ExecuteFunctionNoAckOp.java |   243 -
 .../client/internal/ExecuteFunctionOp.java      |   653 -
 .../internal/ExecuteRegionFunctionNoAckOp.java  |   227 -
 .../internal/ExecuteRegionFunctionOp.java       |   624 -
 .../ExecuteRegionFunctionSingleHopOp.java       |   500 -
 .../internal/ExplicitConnectionSourceImpl.java  |   277 -
 .../gemfire/cache/client/internal/GetAllOp.java |   242 -
 .../client/internal/GetClientPRMetaDataOp.java  |   171 -
 .../GetClientPartitionAttributesOp.java         |   177 -
 .../cache/client/internal/GetEntryOp.java       |    82 -
 .../cache/client/internal/GetEventValueOp.java  |   121 -
 .../client/internal/GetFunctionAttributeOp.java |    84 -
 .../gemfire/cache/client/internal/GetOp.java    |   245 -
 .../cache/client/internal/GetPDXEnumByIdOp.java |    94 -
 .../cache/client/internal/GetPDXEnumsOp.java    |   112 -
 .../client/internal/GetPDXIdForEnumOp.java      |   115 -
 .../client/internal/GetPDXIdForTypeOp.java      |   115 -
 .../cache/client/internal/GetPDXTypeByIdOp.java |    94 -
 .../cache/client/internal/GetPDXTypesOp.java    |   112 -
 .../internal/InstantiatorRecoveryListener.java  |   159 -
 .../cache/client/internal/InternalPool.java     |    43 -
 .../cache/client/internal/InvalidateOp.java     |   121 -
 .../gemfire/cache/client/internal/KeySetOp.java |   130 -
 .../cache/client/internal/LiveServerPinger.java |   117 -
 .../internal/LocatorDiscoveryCallback.java      |    47 -
 .../LocatorDiscoveryCallbackAdapter.java        |    36 -
 .../cache/client/internal/MakePrimaryOp.java    |    91 -
 .../gemfire/cache/client/internal/Op.java       |    43 -
 .../cache/client/internal/OpExecutorImpl.java   |   973 -
 .../internal/PdxRegistryRecoveryListener.java   |    90 -
 .../gemfire/cache/client/internal/PingOp.java   |    97 -
 .../gemfire/cache/client/internal/PoolImpl.java |  1522 --
 .../cache/client/internal/PrimaryAckOp.java     |   101 -
 .../cache/client/internal/ProxyCache.java       |   248 -
 .../client/internal/ProxyCacheCloseOp.java      |   124 -
 .../cache/client/internal/ProxyRegion.java      |   698 -
 .../gemfire/cache/client/internal/PutAllOp.java |   430 -
 .../gemfire/cache/client/internal/PutOp.java    |   553 -
 .../gemfire/cache/client/internal/QueryOp.java  |   203 -
 .../client/internal/QueueConnectionImpl.java    |   226 -
 .../cache/client/internal/QueueManager.java     |    57 -
 .../cache/client/internal/QueueManagerImpl.java |  1487 --
 .../cache/client/internal/QueueState.java       |    33 -
 .../cache/client/internal/QueueStateImpl.java   |   450 -
 .../cache/client/internal/ReadyForEventsOp.java |    91 -
 .../internal/RegisterDataSerializersOp.java     |   138 -
 .../internal/RegisterInstantiatorsOp.java       |   180 -
 .../client/internal/RegisterInterestListOp.java |   147 -
 .../client/internal/RegisterInterestOp.java     |   296 -
 .../internal/RegisterInterestTracker.java       |   419 -
 .../cache/client/internal/RemoveAllOp.java      |   391 -
 .../cache/client/internal/RollbackOp.java       |    99 -
 .../cache/client/internal/ServerBlackList.java  |   188 -
 .../cache/client/internal/ServerProxy.java      |    69 -
 .../client/internal/ServerRegionDataAccess.java |   143 -
 .../client/internal/ServerRegionProxy.java      |   878 -
 .../internal/SingleHopClientExecutor.java       |   415 -
 .../internal/SingleHopOperationCallable.java    |    83 -
 .../gemfire/cache/client/internal/SizeOp.java   |    92 -
 .../cache/client/internal/TXFailoverOp.java     |    93 -
 .../client/internal/TXSynchronizationOp.java    |   163 -
 .../internal/UnregisterInterestListOp.java      |   100 -
 .../client/internal/UnregisterInterestOp.java   |    98 -
 .../cache/client/internal/UserAttributes.java   |    59 -
 .../doc-files/ConnectionManagerImpl.dia         |   Bin 2034 -> 0 bytes
 .../doc-files/ConnectionManagerImpl.png         |   Bin 11825 -> 0 bytes
 .../client/internal/doc-files/PoolImpl.dia      |   Bin 3083 -> 0 bytes
 .../internal/doc-files/QueueManagerImpl.dia     |   Bin 2180 -> 0 bytes
 .../internal/doc-files/QueueManagerImpl.png     |   Bin 15075 -> 0 bytes
 .../doc-files/client_static_diagram.png         |   Bin 29430 -> 0 bytes
 .../locator/ClientConnectionRequest.java        |    68 -
 .../locator/ClientConnectionResponse.java       |    85 -
 .../locator/ClientReplacementRequest.java       |    75 -
 .../internal/locator/GetAllServersRequest.java  |    58 -
 .../internal/locator/GetAllServersResponse.java |    80 -
 .../internal/locator/LocatorListRequest.java    |    36 -
 .../internal/locator/LocatorListResponse.java   |    92 -
 .../internal/locator/LocatorStatusRequest.java  |    37 -
 .../internal/locator/LocatorStatusResponse.java |   321 -
 .../locator/QueueConnectionRequest.java         |    99 -
 .../locator/QueueConnectionResponse.java        |    87 -
 .../internal/locator/SerializationHelper.java   |   123 -
 .../internal/locator/ServerLocationRequest.java |    61 -
 .../locator/ServerLocationResponse.java         |    33 -
 .../locator/wan/LocatorMembershipListener.java  |    57 -
 .../gemfire/cache/client/internal/package.html  |    63 -
 .../pooling/ConnectionDestroyedException.java   |    48 -
 .../internal/pooling/ConnectionManager.java     |   132 -
 .../internal/pooling/ConnectionManagerImpl.java |  1587 --
 .../internal/pooling/PooledConnection.java      |   354 -
 .../gemstone/gemfire/cache/client/package.html  |    67 -
 .../gemfire/cache/control/RebalanceFactory.java |    66 -
 .../cache/control/RebalanceOperation.java       |    75 -
 .../gemfire/cache/control/RebalanceResults.java |   106 -
 .../gemfire/cache/control/ResourceManager.java  |   260 -
 .../gemstone/gemfire/cache/control/package.html |    23 -
 .../gemfire/cache/doc-files/architecture.fig    |   170 -
 .../gemfire/cache/doc-files/architecture.gif    |   Bin 9983 -> 0 bytes
 .../cache/doc-files/entry-life-cycle.fig        |    64 -
 .../cache/doc-files/entry-life-cycle.gif        |   Bin 3357 -> 0 bytes
 .../gemfire/cache/doc-files/example-cache.xml   |    98 -
 .../gemfire/cache/doc-files/example2-cache.xml  |    63 -
 .../gemfire/cache/doc-files/example3-cache.xml  |    60 -
 .../cache/doc-files/partitioned-regions.fig     |   267 -
 .../cache/doc-files/partitioned-regions.gif     |   Bin 9494 -> 0 bytes
 .../execute/EmtpyRegionFunctionException.java   |    64 -
 .../gemfire/cache/execute/Execution.java        |   224 -
 .../gemfire/cache/execute/Function.java         |   112 -
 .../gemfire/cache/execute/FunctionAdapter.java  |   124 -
 .../gemfire/cache/execute/FunctionContext.java  |    80 -
 .../cache/execute/FunctionException.java        |   129 -
 .../FunctionInvocationTargetException.java      |    93 -
 .../gemfire/cache/execute/FunctionService.java  |   371 -
 .../cache/execute/RegionFunctionContext.java    |    72 -
 .../gemfire/cache/execute/ResultCollector.java  |   136 -
 .../gemfire/cache/execute/ResultSender.java     |    93 -
 .../internal/FunctionServiceManager.java        |   460 -
 .../gemstone/gemfire/cache/execute/package.html |   162 -
 .../gemfire/cache/hdfs/HDFSIOException.java     |    53 -
 .../gemstone/gemfire/cache/hdfs/HDFSStore.java  |   343 -
 .../gemfire/cache/hdfs/HDFSStoreFactory.java    |   205 -
 .../gemfire/cache/hdfs/HDFSStoreMutator.java    |   197 -
 .../cache/hdfs/StoreExistsException.java        |    33 -
 .../cache/hdfs/internal/FailureTracker.java     |    97 -
 .../cache/hdfs/internal/FlushObserver.java      |    54 -
 .../hdfs/internal/HDFSBucketRegionQueue.java    |  1233 --
 .../cache/hdfs/internal/HDFSEntriesSet.java     |   329 -
 .../cache/hdfs/internal/HDFSEventListener.java  |   180 -
 .../hdfs/internal/HDFSEventQueueFilter.java     |    74 -
 .../hdfs/internal/HDFSGatewayEventImpl.java     |   181 -
 .../hdfs/internal/HDFSIntegrationUtil.java      |   118 -
 .../HDFSParallelGatewaySenderQueue.java         |   473 -
 .../hdfs/internal/HDFSStoreConfigHolder.java    |   560 -
 .../cache/hdfs/internal/HDFSStoreCreation.java  |   199 -
 .../hdfs/internal/HDFSStoreFactoryImpl.java     |    78 -
 .../cache/hdfs/internal/HDFSStoreImpl.java      |   639 -
 .../hdfs/internal/HDFSStoreMutatorImpl.java     |   200 -
 .../HDFSWriteOnlyStoreEventListener.java        |   185 -
 .../hdfs/internal/HoplogListenerForRegion.java  |    73 -
 .../cache/hdfs/internal/PersistedEventImpl.java |   203 -
 .../hdfs/internal/QueuedPersistentEvent.java    |    27 -
 .../hdfs/internal/SignalledFlushObserver.java   |   123 -
 .../internal/SortedHDFSQueuePersistedEvent.java |    87 -
 .../internal/SortedHoplogPersistedEvent.java    |   115 -
 .../UnsortedHDFSQueuePersistedEvent.java        |    77 -
 .../internal/UnsortedHoplogPersistedEvent.java  |    93 -
 .../cache/hdfs/internal/cardinality/Bits.java   |    54 -
 .../cardinality/CardinalityMergeException.java  |    42 -
 .../hdfs/internal/cardinality/HyperLogLog.java  |   313 -
 .../hdfs/internal/cardinality/IBuilder.java     |    41 -
 .../hdfs/internal/cardinality/ICardinality.java |    87 -
 .../hdfs/internal/cardinality/MurmurHash.java   |   261 -
 .../hdfs/internal/cardinality/RegisterSet.java  |   136 -
 .../hdfs/internal/hoplog/AbstractHoplog.java    |   357 -
 .../hoplog/AbstractHoplogOrganizer.java         |   430 -
 .../cache/hdfs/internal/hoplog/BloomFilter.java |    36 -
 .../hoplog/CloseTmpHoplogsTimerTask.java        |   109 -
 .../hdfs/internal/hoplog/CompactionStatus.java  |    73 -
 .../cache/hdfs/internal/hoplog/FlushStatus.java |    73 -
 .../internal/hoplog/HDFSCompactionManager.java  |   330 -
 .../internal/hoplog/HDFSFlushQueueArgs.java     |    94 -
 .../internal/hoplog/HDFSFlushQueueFunction.java |   287 -
 .../hoplog/HDFSForceCompactionArgs.java         |   108 -
 .../hoplog/HDFSForceCompactionFunction.java     |   130 -
 .../HDFSForceCompactionResultCollector.java     |   132 -
 .../hoplog/HDFSLastCompactionTimeFunction.java  |    57 -
 .../internal/hoplog/HDFSRegionDirector.java     |   480 -
 .../hdfs/internal/hoplog/HDFSStoreDirector.java |    79 -
 .../hoplog/HDFSUnsortedHoplogOrganizer.java     |   448 -
 .../hdfs/internal/hoplog/HFileSortedOplog.java  |   853 -
 .../hoplog/HdfsSortedOplogOrganizer.java        |  2007 --
 .../cache/hdfs/internal/hoplog/Hoplog.java      |   263 -
 .../hdfs/internal/hoplog/HoplogConfig.java      |    75 -
 .../hdfs/internal/hoplog/HoplogListener.java    |    47 -
 .../hdfs/internal/hoplog/HoplogOrganizer.java   |   123 -
 .../hdfs/internal/hoplog/HoplogSetIterator.java |   166 -
 .../hdfs/internal/hoplog/HoplogSetReader.java   |   114 -
 .../internal/hoplog/SequenceFileHoplog.java     |   396 -
 .../hoplog/mapred/AbstractGFRecordReader.java   |   106 -
 .../internal/hoplog/mapred/GFInputFormat.java   |    95 -
 .../internal/hoplog/mapred/GFOutputFormat.java  |    76 -
 .../mapreduce/AbstractGFRecordReader.java       |   140 -
 .../hoplog/mapreduce/GFInputFormat.java         |   124 -
 .../hdfs/internal/hoplog/mapreduce/GFKey.java   |    72 -
 .../hoplog/mapreduce/GFOutputFormat.java        |   199 -
 .../hoplog/mapreduce/HDFSSplitIterator.java     |   198 -
 .../internal/hoplog/mapreduce/HoplogUtil.java   |   464 -
 .../hoplog/mapreduce/RWSplitIterator.java       |    49 -
 .../hoplog/mapreduce/StreamSplitIterator.java   |    47 -
 .../org/apache/hadoop/io/SequenceFile.java      |  3726 ----
 .../operations/CloseCQOperationContext.java     |    65 -
 .../operations/DestroyOperationContext.java     |    63 -
 .../operations/ExecuteCQOperationContext.java   |    68 -
 .../ExecuteFunctionOperationContext.java        |    97 -
 .../GetDurableCQsOperationContext.java          |    60 -
 .../cache/operations/GetOperationContext.java   |    91 -
 .../operations/InterestOperationContext.java    |    84 -
 .../gemfire/cache/operations/InterestType.java  |   152 -
 .../operations/InvalidateOperationContext.java  |    64 -
 .../cache/operations/KeyOperationContext.java   |   125 -
 .../operations/KeySetOperationContext.java      |    97 -
 .../operations/KeyValueOperationContext.java    |   177 -
 .../cache/operations/OperationContext.java      |   521 -
 .../operations/PutAllOperationContext.java      |   407 -
 .../cache/operations/PutOperationContext.java   |   144 -
 .../cache/operations/QueryOperationContext.java |   172 -
 .../operations/RegionClearOperationContext.java |    51 -
 .../RegionCreateOperationContext.java           |    61 -
 .../RegionDestroyOperationContext.java          |    51 -
 .../operations/RegionOperationContext.java      |    87 -
 .../RegisterInterestOperationContext.java       |    72 -
 .../operations/RemoveAllOperationContext.java   |   101 -
 .../operations/StopCQOperationContext.java      |    66 -
 .../UnregisterInterestOperationContext.java     |    54 -
 .../internal/GetOperationContextImpl.java       |   124 -
 .../gemfire/cache/operations/package.html       |   107 -
 .../com/gemstone/gemfire/cache/package.html     |   608 -
 .../cache/partition/PartitionListener.java      |   132 -
 .../partition/PartitionListenerAdapter.java     |    50 -
 .../cache/partition/PartitionMemberInfo.java    |    74 -
 .../PartitionNotAvailableException.java         |    66 -
 .../cache/partition/PartitionRebalanceInfo.java |   150 -
 .../cache/partition/PartitionRegionHelper.java  |   552 -
 .../cache/partition/PartitionRegionInfo.java    |   113 -
 .../gemfire/cache/partition/package.html        |    23 -
 .../ConflictingPersistentDataException.java     |    57 -
 .../persistence/PartitionOfflineException.java  |    77 -
 .../gemfire/cache/persistence/PersistentID.java |    59 -
 .../PersistentReplicatesOfflineException.java   |    44 -
 .../persistence/RevokeFailedException.java      |    51 -
 .../RevokedPersistentDataException.java         |    58 -
 .../gemfire/cache/query/Aggregator.java         |    46 -
 .../cache/query/AmbiguousNameException.java     |    47 -
 .../gemfire/cache/query/CqAttributes.java       |    50 -
 .../cache/query/CqAttributesFactory.java        |   319 -
 .../cache/query/CqAttributesMutator.java        |    57 -
 .../gemfire/cache/query/CqClosedException.java  |    57 -
 .../gemstone/gemfire/cache/query/CqEvent.java   |    93 -
 .../gemfire/cache/query/CqException.java        |    57 -
 .../gemfire/cache/query/CqExistsException.java  |    53 -
 .../gemfire/cache/query/CqListener.java         |    59 -
 .../gemstone/gemfire/cache/query/CqQuery.java   |   155 -
 .../gemstone/gemfire/cache/query/CqResults.java |    51 -
 .../cache/query/CqServiceStatistics.java        |    70 -
 .../gemstone/gemfire/cache/query/CqState.java   |    55 -
 .../gemfire/cache/query/CqStatistics.java       |    53 -
 .../gemfire/cache/query/CqStatusListener.java   |    42 -
 .../cache/query/FunctionDomainException.java    |    36 -
 .../com/gemstone/gemfire/cache/query/Index.java |   112 -
 .../cache/query/IndexCreationException.java     |    46 -
 .../cache/query/IndexExistsException.java       |    52 -
 .../cache/query/IndexInvalidException.java      |    64 -
 .../cache/query/IndexMaintenanceException.java  |    66 -
 .../cache/query/IndexNameConflictException.java |    52 -
 .../gemfire/cache/query/IndexStatistics.java    |    76 -
 .../gemstone/gemfire/cache/query/IndexType.java |   106 -
 .../query/MultiIndexCreationException.java      |    82 -
 .../cache/query/NameNotFoundException.java      |    48 -
 .../cache/query/NameResolutionException.java    |    47 -
 .../query/ParameterCountInvalidException.java   |    38 -
 .../com/gemstone/gemfire/cache/query/Query.java |   328 -
 .../gemfire/cache/query/QueryException.java     |    66 -
 .../query/QueryExecutionLowMemoryException.java |    67 -
 .../query/QueryExecutionTimeoutException.java   |    62 -
 .../cache/query/QueryInvalidException.java      |    48 -
 .../query/QueryInvocationTargetException.java   |    54 -
 .../gemfire/cache/query/QueryService.java       |   852 -
 .../gemfire/cache/query/QueryStatistics.java    |    38 -
 .../cache/query/RegionNotFoundException.java    |    45 -
 .../gemfire/cache/query/SelectResults.java      |   122 -
 .../gemstone/gemfire/cache/query/Struct.java    |    59 -
 .../cache/query/TypeMismatchException.java      |    45 -
 .../query/internal/AbstractCompiledValue.java   |   323 -
 .../internal/AbstractGroupOrRangeJunction.java  |   596 -
 .../cache/query/internal/AllGroupJunction.java  |   276 -
 .../query/internal/AttributeDescriptor.java     |   420 -
 .../gemfire/cache/query/internal/Bag.java       |   726 -
 .../internal/CompiledAggregateFunction.java     |   185 -
 .../query/internal/CompiledBindArgument.java    |   100 -
 .../query/internal/CompiledComparison.java      |   877 -
 .../query/internal/CompiledConstruction.java    |    78 -
 .../cache/query/internal/CompiledFunction.java  |   117 -
 .../query/internal/CompiledGroupBySelect.java   |   522 -
 .../cache/query/internal/CompiledID.java        |    99 -
 .../cache/query/internal/CompiledIn.java        |   965 -
 .../query/internal/CompiledIndexOperation.java  |   183 -
 .../query/internal/CompiledIteratorDef.java     |   379 -
 .../cache/query/internal/CompiledJunction.java  |  1254 --
 .../cache/query/internal/CompiledLike.java      |   548 -
 .../cache/query/internal/CompiledLiteral.java   |    85 -
 .../cache/query/internal/CompiledNegation.java  |    79 -
 .../cache/query/internal/CompiledOperation.java |   331 -
 .../cache/query/internal/CompiledPath.java      |   177 -
 .../cache/query/internal/CompiledRegion.java    |   111 -
 .../cache/query/internal/CompiledSelect.java    |  1590 --
 .../query/internal/CompiledSortCriterion.java   |   320 -
 .../query/internal/CompiledUnaryMinus.java      |   102 -
 .../cache/query/internal/CompiledUndefined.java |   320 -
 .../cache/query/internal/CompiledValue.java     |   143 -
 .../query/internal/CompositeGroupJunction.java  |   555 -
 .../gemfire/cache/query/internal/CqEntry.java   |   112 -
 .../cache/query/internal/CqQueryVsdStats.java   |   342 -
 .../cache/query/internal/CqStateImpl.java       |   104 -
 .../internal/CumulativeNonDistinctResults.java  |   391 -
 .../cache/query/internal/DefaultQuery.java      |  1141 --
 .../query/internal/DefaultQueryService.java     |  1003 -
 .../cache/query/internal/DerivedInfo.java       |   306 -
 .../cache/query/internal/ExecutionContext.java  |   736 -
 .../gemfire/cache/query/internal/Filter.java    |   178 -
 .../gemfire/cache/query/internal/Functions.java |   206 -
 .../cache/query/internal/GroupJunction.java     |   193 -
 .../cache/query/internal/HashingStrategy.java   |    55 -
 .../gemfire/cache/query/internal/IndexInfo.java |    78 -
 .../internal/IndexTrackingQueryObserver.java    |   217 -
 .../cache/query/internal/IndexUpdater.java      |   123 -
 .../gemfire/cache/query/internal/Indexable.java |    55 -
 .../cache/query/internal/LinkedResultSet.java   |   145 -
 .../cache/query/internal/LinkedStructSet.java   |   367 -
 .../cache/query/internal/MapIndexable.java      |    26 -
 .../cache/query/internal/MethodDispatch.java    |   232 -
 .../cache/query/internal/NWayMergeResults.java  |   546 -
 .../gemfire/cache/query/internal/Negatable.java |    26 -
 .../gemfire/cache/query/internal/NullToken.java |    77 -
 .../cache/query/internal/ObjectIntHashMap.java  |  1141 --
 .../cache/query/internal/OrderByComparator.java |   237 -
 .../internal/OrderByComparatorUnmapped.java     |    90 -
 .../gemfire/cache/query/internal/Ordered.java   |    44 -
 .../cache/query/internal/OrganizedOperands.java |    55 -
 .../cache/query/internal/PRQueryTraceInfo.java  |   109 -
 .../gemfire/cache/query/internal/PathUtils.java |   269 -
 .../gemfire/cache/query/internal/PlanInfo.java  |    36 -
 .../cache/query/internal/ProxyQueryService.java |   451 -
 .../gemfire/cache/query/internal/QCompiler.java |   698 -
 .../gemfire/cache/query/internal/QRegion.java   |   539 -
 .../gemfire/cache/query/internal/QScope.java    |    92 -
 .../QueryExecutionCanceledException.java        |    63 -
 .../query/internal/QueryExecutionContext.java   |   242 -
 .../cache/query/internal/QueryExecutor.java     |    40 -
 .../cache/query/internal/QueryMonitor.java      |   361 -
 .../cache/query/internal/QueryObserver.java     |   338 -
 .../query/internal/QueryObserverAdapter.java    |   341 -
 .../query/internal/QueryObserverHolder.java     |    84 -
 .../cache/query/internal/QueryUtils.java        |  2079 --
 .../cache/query/internal/RangeJunction.java     |  1255 --
 .../cache/query/internal/ResultsBag.java        |   276 -
 .../ResultsCollectionCopyOnReadWrapper.java     |   228 -
 ...ResultsCollectionPdxDeserializerWrapper.java |   219 -
 .../internal/ResultsCollectionWrapper.java      |   664 -
 .../cache/query/internal/ResultsSet.java        |   150 -
 .../cache/query/internal/RuntimeIterator.java   |   338 -
 .../query/internal/SelectResultsComparator.java |    61 -
 .../cache/query/internal/SortedResultSet.java   |   134 -
 .../cache/query/internal/SortedResultsBag.java  |   260 -
 .../cache/query/internal/SortedStructBag.java   |   369 -
 .../cache/query/internal/SortedStructSet.java   |   385 -
 .../gemfire/cache/query/internal/StructBag.java |   474 -
 .../cache/query/internal/StructFields.java      |    42 -
 .../cache/query/internal/StructImpl.java        |   183 -
 .../gemfire/cache/query/internal/StructSet.java |   459 -
 .../gemfire/cache/query/internal/Support.java   |    95 -
 .../gemfire/cache/query/internal/Undefined.java |    87 -
 .../internal/aggregate/AbstractAggregator.java  |    47 -
 .../cache/query/internal/aggregate/Avg.java     |    50 -
 .../query/internal/aggregate/AvgBucketNode.java |    49 -
 .../query/internal/aggregate/AvgDistinct.java   |    43 -
 .../aggregate/AvgDistinctPRQueryNode.java       |    35 -
 .../internal/aggregate/AvgPRQueryNode.java      |    47 -
 .../cache/query/internal/aggregate/Count.java   |    49 -
 .../query/internal/aggregate/CountDistinct.java |    33 -
 .../aggregate/CountDistinctPRQueryNode.java     |    44 -
 .../internal/aggregate/CountPRQueryNode.java    |    48 -
 .../internal/aggregate/DistinctAggregator.java  |    56 -
 .../cache/query/internal/aggregate/MaxMin.java  |    68 -
 .../cache/query/internal/aggregate/Sum.java     |    48 -
 .../query/internal/aggregate/SumDistinct.java   |    35 -
 .../aggregate/SumDistinctPRQueryNode.java       |    46 -
 .../cache/query/internal/cq/ClientCQ.java       |    42 -
 .../cache/query/internal/cq/CqService.java      |   263 -
 .../query/internal/cq/CqServiceProvider.java    |    72 -
 .../query/internal/cq/InternalCqQuery.java      |    82 -
 .../query/internal/cq/MissingCqService.java     |   217 -
 .../internal/cq/MissingCqServiceStatistics.java |    52 -
 .../cache/query/internal/cq/ServerCQ.java       |    87 -
 .../query/internal/cq/spi/CqServiceFactory.java |    36 -
 .../query/internal/index/AbstractIndex.java     |  2405 ---
 .../query/internal/index/AbstractMapIndex.java  |   440 -
 .../internal/index/CompactMapRangeIndex.java    |   216 -
 .../query/internal/index/CompactRangeIndex.java |  1799 --
 .../query/internal/index/DummyQRegion.java      |   252 -
 .../index/FunctionalIndexCreationHelper.java    |   721 -
 .../cache/query/internal/index/HashIndex.java   |  1573 --
 .../query/internal/index/HashIndexSet.java      |   818 -
 .../query/internal/index/IMQException.java      |    59 -
 .../internal/index/IndexConcurrentHashSet.java  |    78 -
 .../query/internal/index/IndexCreationData.java |   166 -
 .../internal/index/IndexCreationHelper.java     |   113 -
 .../cache/query/internal/index/IndexData.java   |    72 -
 .../query/internal/index/IndexElemArray.java    |   333 -
 .../query/internal/index/IndexManager.java      |  1718 --
 .../query/internal/index/IndexProtocol.java     |   222 -
 .../cache/query/internal/index/IndexStats.java  |   223 -
 .../cache/query/internal/index/IndexStore.java  |   153 -
 .../cache/query/internal/index/IndexUtils.java  |   135 -
 .../index/IndexedExpressionEvaluator.java       |    52 -
 .../query/internal/index/MapIndexStore.java     |   336 -
 .../query/internal/index/MapRangeIndex.java     |   195 -
 .../query/internal/index/MemoryIndexStore.java  |   822 -
 .../query/internal/index/PartitionedIndex.java  |   656 -
 .../query/internal/index/PrimaryKeyIndex.java   |   392 -
 .../index/PrimaryKeyIndexCreationHelper.java    |   124 -
 .../cache/query/internal/index/RangeIndex.java  |  1686 --
 .../cache/query/internal/index/package.html     |   646 -
 .../gemfire/cache/query/internal/package.html   |    43 -
 .../query/internal/parse/ASTAggregateFunc.java  |    66 -
 .../cache/query/internal/parse/ASTAnd.java      |    39 -
 .../query/internal/parse/ASTCombination.java    |    46 -
 .../query/internal/parse/ASTCompareOp.java      |    38 -
 .../query/internal/parse/ASTConstruction.java   |    45 -
 .../query/internal/parse/ASTConversionExpr.java |    42 -
 .../cache/query/internal/parse/ASTDummy.java    |    39 -
 .../cache/query/internal/parse/ASTGroupBy.java  |    44 -
 .../cache/query/internal/parse/ASTHint.java     |    52 -
 .../query/internal/parse/ASTHintIdentifier.java |    52 -
 .../query/internal/parse/ASTIdentifier.java     |    42 -
 .../cache/query/internal/parse/ASTImport.java   |    57 -
 .../cache/query/internal/parse/ASTIn.java       |    43 -
 .../query/internal/parse/ASTIteratorDef.java    |    79 -
 .../cache/query/internal/parse/ASTLike.java     |    47 -
 .../cache/query/internal/parse/ASTLimit.java    |    41 -
 .../cache/query/internal/parse/ASTLiteral.java  |   232 -
 .../internal/parse/ASTMethodInvocation.java     |    68 -
 .../cache/query/internal/parse/ASTOr.java       |    38 -
 .../cache/query/internal/parse/ASTOrderBy.java  |    44 -
 .../query/internal/parse/ASTParameter.java      |    40 -
 .../cache/query/internal/parse/ASTPostfix.java  |    70 -
 .../query/internal/parse/ASTProjection.java     |    48 -
 .../query/internal/parse/ASTRegionPath.java     |    41 -
 .../cache/query/internal/parse/ASTSelect.java   |    68 -
 .../query/internal/parse/ASTSortCriterion.java  |    44 -
 .../cache/query/internal/parse/ASTTrace.java    |    41 -
 .../cache/query/internal/parse/ASTType.java     |    67 -
 .../cache/query/internal/parse/ASTTypeCast.java |    44 -
 .../cache/query/internal/parse/ASTUnary.java    |    65 -
 .../query/internal/parse/ASTUndefinedExpr.java  |    42 -
 .../query/internal/parse/ASTUnsupported.java    |    45 -
 .../cache/query/internal/parse/GemFireAST.java  |    61 -
 .../cache/query/internal/parse/OQLLexer.java    |  2265 ---
 .../internal/parse/OQLLexerTokenTypes.java      |   155 -
 .../query/internal/parse/OQLLexerTokenTypes.txt |   147 -
 .../cache/query/internal/parse/OQLParser.java   |  3833 ----
 .../cache/query/internal/parse/UtilParser.java  |    92 -
 .../cache/query/internal/parse/fixantlr.sh      |    52 -
 .../gemfire/cache/query/internal/parse/oql.g    |  1195 --
 .../internal/types/CollectionTypeImpl.java      |   126 -
 .../types/ExtendedNumericComparator.java        |    52 -
 .../cache/query/internal/types/MapTypeImpl.java |   100 -
 .../query/internal/types/NumericComparator.java |    96 -
 .../query/internal/types/ObjectTypeImpl.java    |   100 -
 .../query/internal/types/StructTypeImpl.java    |   160 -
 .../internal/types/TemporalComparator.java      |    77 -
 .../cache/query/internal/types/TypeUtils.java   |   476 -
 .../query/internal/utils/LimitIterator.java     |    63 -
 .../cache/query/internal/utils/PDXUtils.java    |    95 -
 .../gemstone/gemfire/cache/query/package.html   |   708 -
 .../cache/query/types/CollectionType.java       |    47 -
 .../gemfire/cache/query/types/MapType.java      |    42 -
 .../gemfire/cache/query/types/ObjectType.java   |    60 -
 .../gemfire/cache/query/types/StructType.java   |    52 -
 .../gemfire/cache/server/CacheServer.java       |   512 -
 .../cache/server/ClientSubscriptionConfig.java  |   148 -
 .../gemfire/cache/server/ServerLoad.java        |   187 -
 .../gemfire/cache/server/ServerLoadProbe.java   |    75 -
 .../cache/server/ServerLoadProbeAdapter.java    |    43 -
 .../gemfire/cache/server/ServerMetrics.java     |    53 -
 .../server/internal/ConnectionCountProbe.java   |    94 -
 .../cache/server/internal/LoadMonitor.java      |   242 -
 .../server/internal/ServerMetricsImpl.java      |    79 -
 .../gemstone/gemfire/cache/server/package.html  |    42 -
 .../cache/snapshot/CacheSnapshotService.java    |   149 -
 .../cache/snapshot/RegionSnapshotService.java   |   140 -
 .../gemfire/cache/snapshot/SnapshotFilter.java  |    45 -
 .../cache/snapshot/SnapshotIterator.java        |    62 -
 .../gemfire/cache/snapshot/SnapshotOptions.java |    62 -
 .../gemfire/cache/snapshot/SnapshotReader.java  |    58 -
 .../gemfire/cache/snapshot/package.html         |    54 -
 .../cache/util/BoundedLinkedHashMap.java        |    88 -
 .../cache/util/CacheListenerAdapter.java        |    67 -
 .../gemfire/cache/util/CacheWriterAdapter.java  |    54 -
 .../gemfire/cache/util/CqListenerAdapter.java   |    66 -
 .../gemstone/gemfire/cache/util/Gateway.java    |    53 -
 .../cache/util/GatewayConflictHelper.java       |    34 -
 .../cache/util/GatewayConflictResolver.java     |    48 -
 .../gemfire/cache/util/GatewayEvent.java        |    91 -
 .../gemfire/cache/util/ObjectSizer.java         |    83 -
 .../gemfire/cache/util/ObjectSizerImpl.java     |    35 -
 .../util/RegionMembershipListenerAdapter.java   |    44 -
 .../cache/util/RegionRoleListenerAdapter.java   |    40 -
 .../cache/util/TimestampedEntryEvent.java       |    40 -
 .../cache/util/TransactionListenerAdapter.java  |    43 -
 .../gemstone/gemfire/cache/util/package.html    |    31 -
 .../gemfire/cache/wan/EventSequenceID.java      |   104 -
 .../gemfire/cache/wan/GatewayEventFilter.java   |    64 -
 .../wan/GatewayEventSubstitutionFilter.java     |    40 -
 .../gemfire/cache/wan/GatewayQueueEvent.java    |    81 -
 .../gemfire/cache/wan/GatewayReceiver.java      |   174 -
 .../cache/wan/GatewayReceiverFactory.java       |   122 -
 .../gemfire/cache/wan/GatewaySender.java        |   415 -
 .../gemfire/cache/wan/GatewaySenderFactory.java |   239 -
 .../cache/wan/GatewayTransportFilter.java       |    27 -
 .../compression/CompressionException.java       |    43 -
 .../gemfire/compression/Compressor.java         |    48 -
 .../gemfire/compression/SnappyCompressor.java   |   110 -
 .../gemfire/distributed/AbstractLauncher.java   |   926 -
 .../distributed/ClientSocketFactory.java        |    47 -
 .../distributed/DistributedLockService.java     |   393 -
 .../gemfire/distributed/DistributedMember.java  |    80 -
 .../gemfire/distributed/DistributedSystem.java  |  2207 ---
 .../DistributedSystemDisconnectedException.java |    47 -
 .../distributed/DurableClientAttributes.java    |   147 -
 .../distributed/FutureCancelledException.java   |    47 -
 .../distributed/GatewayCancelledException.java  |    46 -
 .../distributed/LeaseExpiredException.java      |    38 -
 .../gemstone/gemfire/distributed/Locator.java   |   553 -
 .../gemfire/distributed/LocatorLauncher.java    |  2046 --
 .../distributed/LockNotHeldException.java       |    51 -
 .../LockServiceDestroyedException.java          |    51 -
 .../distributed/OplogCancelledException.java    |    47 -
 .../distributed/PoolCancelledException.java     |    47 -
 .../com/gemstone/gemfire/distributed/Role.java  |    56 -
 .../gemfire/distributed/ServerLauncher.java     |  2605 ---
 .../TXManagerCancelledException.java            |    47 -
 .../internal/AbstractDistributionConfig.java    |  1161 --
 .../distributed/internal/AdminMessageType.java  |    23 -
 .../internal/AtomicLongWithTerminalState.java   |    67 -
 .../internal/CollectingReplyProcessor.java      |    56 -
 .../distributed/internal/ConfigAttribute.java   |    36 -
 .../internal/ConfigAttributeChecker.java        |    31 -
 .../internal/ConfigAttributeDesc.java           |    31 -
 .../internal/ConfigAttributeGetter.java         |    31 -
 .../internal/ConfigAttributeSetter.java         |    31 -
 .../distributed/internal/ConflationKey.java     |    78 -
 .../gemfire/distributed/internal/DM.java        |   467 -
 .../gemfire/distributed/internal/DMStats.java   |   619 -
 .../gemfire/distributed/internal/DSClock.java   |   313 -
 .../internal/DirectReplyProcessor.java          |   172 -
 .../internal/DistributionAdvisee.java           |    93 -
 .../internal/DistributionAdvisor.java           |  1678 --
 .../internal/DistributionChannel.java           |   166 -
 .../internal/DistributionConfig.java            |  3778 ----
 .../internal/DistributionConfigImpl.java        |  3533 ----
 .../internal/DistributionConfigSnapshot.java    |    71 -
 .../internal/DistributionException.java         |    37 -
 .../internal/DistributionManager.java           |  4811 -----
 .../internal/DistributionMessage.java           |   711 -
 .../internal/DistributionMessageObserver.java   |    75 -
 .../distributed/internal/DistributionStats.java |  2051 --
 .../distributed/internal/FlowControlParams.java |   114 -
 .../FunctionExecutionPooledExecutor.java        |   311 -
 .../distributed/internal/HealthMonitor.java     |    46 -
 .../distributed/internal/HealthMonitorImpl.java |   148 -
 .../internal/HighPriorityAckedMessage.java      |   235 -
 .../HighPriorityDistributionMessage.java        |    31 -
 .../distributed/internal/IgnoredByManager.java  |    26 -
 .../internal/InternalDistributedSystem.java     |  3056 ---
 .../distributed/internal/InternalLocator.java   |  1488 --
 .../internal/LocatorLoadSnapshot.java           |   695 -
 .../distributed/internal/LocatorStats.java      |   245 -
 .../internal/LonerDistributionManager.java      |   997 -
 .../gemfire/distributed/internal/MQueue.java    |    32 -
 .../internal/MembershipListener.java            |    77 -
 .../distributed/internal/MessageFactory.java    |    56 -
 .../distributed/internal/MessageWithReply.java  |    43 -
 .../internal/OverflowQueueWithDMStats.java      |   174 -
 .../distributed/internal/PoolStatHelper.java    |    38 -
 .../internal/PooledDistributionMessage.java     |    34 -
 .../internal/PooledExecutorWithDMStats.java     |   234 -
 .../distributed/internal/ProcessorKeeper21.java |   129 -
 .../distributed/internal/ProductUseLog.java     |   147 -
 .../distributed/internal/ProfileListener.java   |    55 -
 .../distributed/internal/QueueStatHelper.java   |    42 -
 .../internal/ReliableReplyException.java        |    37 -
 .../internal/ReliableReplyProcessor21.java      |   116 -
 .../distributed/internal/ReplyException.java    |   201 -
 .../distributed/internal/ReplyMessage.java      |   364 -
 .../distributed/internal/ReplyProcessor21.java  |  1298 --
 .../distributed/internal/ReplySender.java       |    39 -
 .../distributed/internal/ResourceEvent.java     |    52 -
 .../internal/ResourceEventsListener.java        |    38 -
 .../internal/RuntimeDistributionConfigImpl.java |   138 -
 .../internal/SerialAckedMessage.java            |   159 -
 .../internal/SerialDistributionMessage.java     |    34 -
 .../SerialQueuedExecutorWithDMStats.java        |    51 -
 .../distributed/internal/ServerLocation.java    |   178 -
 .../distributed/internal/ServerLocator.java     |   486 -
 .../internal/SharedConfiguration.java           |   955 -
 .../distributed/internal/ShutdownMessage.java   |   121 -
 .../gemfire/distributed/internal/Sizeable.java  |    28 -
 .../distributed/internal/SizeableRunnable.java  |    39 -
 .../distributed/internal/StartupMessage.java    |   433 -
 .../internal/StartupMessageData.java            |   231 -
 .../internal/StartupMessageReplyProcessor.java  |   118 -
 .../distributed/internal/StartupOperation.java  |   136 -
 .../internal/StartupResponseMessage.java        |   294 -
 .../StartupResponseWithVersionMessage.java      |   108 -
 .../internal/ThrottledMemQueueStatHelper.java   |    49 -
 .../internal/ThrottledQueueStatHelper.java      |    39 -
 .../ThrottlingMemLinkedQueueWithDMStats.java    |   165 -
 .../internal/WaitForViewInstallation.java       |   126 -
 .../internal/WanLocatorDiscoverer.java          |    31 -
 .../deadlock/DLockDependencyMonitor.java        |   147 -
 .../internal/deadlock/DeadlockDetector.java     |   395 -
 .../internal/deadlock/Dependency.java           |    88 -
 .../internal/deadlock/DependencyGraph.java      |   340 -
 .../internal/deadlock/DependencyMonitor.java    |    45 -
 .../deadlock/DependencyMonitorManager.java      |   107 -
 .../deadlock/GemFireDeadlockDetector.java       |   142 -
 .../internal/deadlock/LocalLockInfo.java        |   101 -
 .../internal/deadlock/LocalThread.java          |   120 -
 .../deadlock/MessageDependencyMonitor.java      |   155 -
 .../internal/deadlock/ThreadReference.java      |    28 -
 .../internal/deadlock/UnsafeThreadLocal.java    |    92 -
 .../internal/direct/DirectChannel.java          |   939 -
 .../internal/direct/DirectChannelListener.java  |    38 -
 .../internal/direct/ShunnedMemberException.java |    34 -
 .../internal/distribution-overview.html         |    42 -
 .../internal/doc-files/config-classes.fig       |   138 -
 .../internal/doc-files/config-classes.gif       |   Bin 4205 -> 0 bytes
 .../doc-files/distribution-managers.fig         |    76 -
 .../doc-files/distribution-managers.gif         |   Bin 3267 -> 0 bytes
 .../internal/locks/Collaboration.java           |   454 -
 .../distributed/internal/locks/DLockBatch.java  |    46 -
 .../internal/locks/DLockBatchId.java            |    31 -
 .../internal/locks/DLockGrantor.java            |  3796 ----
 .../locks/DLockLessorDepartureHandler.java      |    35 -
 .../internal/locks/DLockQueryProcessor.java     |   519 -
 .../locks/DLockRecoverGrantorProcessor.java     |   460 -
 .../internal/locks/DLockReleaseProcessor.java   |   450 -
 .../internal/locks/DLockRemoteToken.java        |   235 -
 .../internal/locks/DLockRequestProcessor.java   |  1284 --
 .../internal/locks/DLockService.java            |  3377 ----
 .../distributed/internal/locks/DLockStats.java  |   887 -
 .../distributed/internal/locks/DLockToken.java  |   572 -
 .../internal/locks/DeposeGrantorProcessor.java  |   210 -
 .../internal/locks/DistributedLockStats.java    |   201 -
 .../internal/locks/DistributedMemberLock.java   |   297 -
 .../internal/locks/DummyDLockStats.java         |   180 -
 .../internal/locks/ElderInitProcessor.java      |   314 -
 .../distributed/internal/locks/ElderState.java  |   399 -
 .../distributed/internal/locks/GrantorInfo.java |    87 -
 .../internal/locks/GrantorRequestProcessor.java |   751 -
 .../locks/LockGrantorDestroyedException.java    |    51 -
 .../internal/locks/LockGrantorId.java           |   243 -
 .../locks/NonGrantorDestroyedProcessor.java     |   308 -
 .../internal/locks/RemoteThread.java            |    88 -
 .../internal/locks/doc-files/elder.fig          |    84 -
 .../internal/locks/doc-files/elder.jpg          |   Bin 55182 -> 0 bytes
 .../internal/locks/doc-files/turks.fig          |   128 -
 .../internal/locks/doc-files/turks.jpg          |   Bin 79859 -> 0 bytes
 .../distributed/internal/locks/package.html     |   313 -
 .../DistributedMembershipListener.java          |    86 -
 .../membership/InternalDistributedMember.java   |  1304 --
 .../internal/membership/InternalRole.java       |   169 -
 .../internal/membership/MemberAttributes.java   |   124 -
 .../internal/membership/MemberFactory.java      |   109 -
 .../internal/membership/MemberServices.java     |    90 -
 .../internal/membership/MembershipManager.java  |   326 -
 .../internal/membership/MembershipTestHook.java |    40 -
 .../internal/membership/NetMember.java          |    82 -
 .../internal/membership/NetView.java            |   614 -
 .../internal/membership/QuorumChecker.java      |    63 -
 .../internal/membership/gms/GMSMember.java      |   458 -
 .../membership/gms/GMSMemberFactory.java        |   133 -
 .../internal/membership/gms/GMSUtil.java        |   159 -
 .../internal/membership/gms/NetLocator.java     |    32 -
 .../internal/membership/gms/ServiceConfig.java  |   187 -
 .../internal/membership/gms/Services.java       |   387 -
 .../internal/membership/gms/SuspectMember.java  |    58 -
 .../membership/gms/auth/GMSAuthenticator.java   |   235 -
 .../membership/gms/fd/GMSHealthMonitor.java     |  1380 --
 .../gms/interfaces/Authenticator.java           |    27 -
 .../gms/interfaces/HealthMonitor.java           |    64 -
 .../membership/gms/interfaces/JoinLeave.java    |    73 -
 .../membership/gms/interfaces/Locator.java      |    32 -
 .../membership/gms/interfaces/Manager.java      |   120 -
 .../gms/interfaces/MessageHandler.java          |    30 -
 .../membership/gms/interfaces/Messenger.java    |    81 -
 .../membership/gms/interfaces/Service.java      |    83 -
 .../gms/locator/FindCoordinatorRequest.java     |   148 -
 .../gms/locator/FindCoordinatorResponse.java    |   161 -
 .../membership/gms/locator/GMSLocator.java      |   373 -
 .../membership/gms/locator/GetViewRequest.java  |    49 -
 .../membership/gms/locator/GetViewResponse.java |    64 -
 .../gms/locator/PeerLocatorRequest.java         |    25 -
 .../membership/gms/membership/GMSJoinLeave.java |  2312 ---
 .../membership/gms/messages/HasMemberID.java    |    25 -
 .../gms/messages/HeartbeatMessage.java          |    74 -
 .../gms/messages/HeartbeatRequestMessage.java   |    80 -
 .../gms/messages/InstallViewMessage.java        |   106 -
 .../gms/messages/JoinRequestMessage.java        |    97 -
 .../gms/messages/JoinResponseMessage.java       |   129 -
 .../gms/messages/LeaveRequestMessage.java       |    94 -
 .../gms/messages/NetworkPartitionMessage.java   |    44 -
 .../gms/messages/RemoveMemberMessage.java       |    96 -
 .../gms/messages/SuspectMembersMessage.java     |    91 -
 .../membership/gms/messages/SuspectRequest.java |    72 -
 .../membership/gms/messages/ViewAckMessage.java |   103 -
 .../gms/messenger/AddressManager.java           |   121 -
 .../membership/gms/messenger/GMSPingPonger.java |    65 -
 .../gms/messenger/GMSQuorumChecker.java         |   274 -
 .../membership/gms/messenger/JGAddress.java     |   221 -
 .../gms/messenger/JGroupsMessenger.java         |  1109 --
 .../membership/gms/messenger/StatRecorder.java  |   162 -
 .../membership/gms/messenger/Transport.java     |   163 -
 .../gms/mgr/GMSMembershipManager.java           |  2652 ---
 .../membership/gms/mgr/LocalViewMessage.java    |    85 -
 .../internal/membership/gms/package.html        |    57 -
 .../gemfire/distributed/internal/package.html   |    55 -
 .../internal/streaming/StreamingOperation.java  |   613 -
 .../internal/tcpserver/InfoRequest.java         |    41 -
 .../internal/tcpserver/InfoResponse.java        |    56 -
 .../internal/tcpserver/ShutdownRequest.java     |    39 -
 .../internal/tcpserver/ShutdownResponse.java    |    40 -
 .../internal/tcpserver/TcpClient.java           |   251 -
 .../internal/tcpserver/TcpHandler.java          |    61 -
 .../internal/tcpserver/TcpServer.java           |   546 -
 .../internal/tcpserver/VersionRequest.java      |    41 -
 .../internal/tcpserver/VersionResponse.java     |    54 -
 .../unsafe/RegisterSignalHandlerSupport.java    |    35 -
 .../gemstone/gemfire/distributed/package.html   |    37 -
 .../doc-files/data-serialization-exceptions.fig |   135 -
 .../doc-files/data-serialization-exceptions.gif |   Bin 3666 -> 0 bytes
 .../gemstone/gemfire/i18n/LogWriterI18n.java    |   420 -
 .../com/gemstone/gemfire/i18n/StringId.java     |   161 -
 .../gemfire/internal/AbstractConfig.java        |   403 -
 .../internal/AbstractStatisticsFactory.java     |   340 -
 .../gemfire/internal/ArchiveSplitter.java       |   522 -
 .../com/gemstone/gemfire/internal/Assert.java   |   177 -
 .../gemfire/internal/AvailablePort.java         |   588 -
 .../com/gemstone/gemfire/internal/Banner.java   |   172 -
 .../gemfire/internal/ByteArrayDataInput.java    |   458 -
 .../internal/ByteBufferOutputStream.java        |   102 -
 .../gemfire/internal/ByteBufferWriter.java      |    35 -
 .../gemfire/internal/ClassLoadUtil.java         |   124 -
 .../gemfire/internal/ClassPathLoader.java       |   726 -
 .../com/gemstone/gemfire/internal/Config.java   |   110 -
 .../gemstone/gemfire/internal/ConfigSource.java |   108 -
 .../gemfire/internal/ConnectionWatcher.java     |    41 -
 .../gemfire/internal/CopyOnWriteHashSet.java    |   177 -
 .../com/gemstone/gemfire/internal/DSCODE.java   |   416 -
 .../gemstone/gemfire/internal/DSFIDFactory.java |  1403 --
 .../internal/DSFIDNotFoundException.java        |    52 -
 .../internal/DataSerializableFixedID.java       |   912 -
 .../gemfire/internal/DistributionLocator.java   |   190 -
 .../internal/DummyStatisticsFactory.java        |   134 -
 .../gemfire/internal/DummyStatisticsImpl.java   |   199 -
 .../gemfire/internal/ExternalizableDSFID.java   |    43 -
 .../com/gemstone/gemfire/internal/FileUtil.java |   331 -
 .../gemfire/internal/GemFireStatSampler.java    |   507 -
 .../gemfire/internal/GemFireUtilLauncher.java   |   166 -
 .../gemfire/internal/GemFireVersion.java        |   681 -
 .../internal/GfeConsoleReaderFactory.java       |    87 -
 .../gemfire/internal/HeapDataOutputStream.java  |  1374 --
 .../gemfire/internal/HistogramStats.java        |    82 -
 .../gemfire/internal/HostStatHelper.java        |   289 -
 .../gemfire/internal/HostStatSampler.java       |   546 -
 .../InsufficientDiskSpaceException.java         |    54 -
 .../internal/InternalDataSerializer.java        |  4057 ----
 .../gemfire/internal/InternalEntity.java        |    30 -
 .../gemfire/internal/InternalInstantiator.java  |  1061 -
 .../InternalStatisticsDisabledException.java    |    70 -
 .../gemfire/internal/JarClassLoader.java        |   701 -
 .../gemstone/gemfire/internal/JarDeployer.java  |   639 -
 .../gemfire/internal/LinuxProcFsStatistics.java |   786 -
 .../gemfire/internal/LinuxProcessStats.java     |    79 -
 .../gemfire/internal/LinuxSystemStats.java      |   311 -
 .../gemfire/internal/LocalStatListener.java     |    41 -
 .../internal/LocalStatisticsFactory.java        |   101 -
 .../gemfire/internal/LocalStatisticsImpl.java   |   269 -
 .../gemstone/gemfire/internal/ManagerInfo.java  |   386 -
 .../gemfire/internal/MigrationClient.java       |   260 -
 .../gemfire/internal/MigrationServer.java       |   566 -
 .../gemstone/gemfire/internal/NanoTimer.java    |   186 -
 .../gemfire/internal/NullDataOutputStream.java  |   379 -
 .../gemstone/gemfire/internal/OSProcess.java    |   753 -
 .../gemfire/internal/OSXProcessStats.java       |    83 -
 .../gemfire/internal/OSXSystemStats.java        |   228 -
 .../gemfire/internal/ObjIdConcurrentMap.java    |  1366 --
 .../com/gemstone/gemfire/internal/ObjIdMap.java |   337 -
 .../internal/ObjToByteArraySerializer.java      |    35 -
 .../gemfire/internal/OneTaskOnlyExecutor.java   |   175 -
 .../gemfire/internal/OsStatisticsFactory.java   |    42 -
 .../gemfire/internal/PdxSerializerObject.java   |    33 -
 .../gemfire/internal/ProcessOutputReader.java   |   135 -
 .../gemstone/gemfire/internal/ProcessStats.java |    61 -
 .../gemstone/gemfire/internal/PureJavaMode.java |    80 -
 ...cheduledThreadPoolExecutorWithKeepAlive.java |   313 -
 .../com/gemstone/gemfire/internal/Sendable.java |    42 -
 .../gemfire/internal/SerializationVersions.java |    42 -
 .../com/gemstone/gemfire/internal/SetUtils.java |    68 -
 .../gemfire/internal/SharedLibrary.java         |   226 -
 .../gemfire/internal/SimpleStatSampler.java     |   114 -
 .../com/gemstone/gemfire/internal/SmHelper.java |   183 -
 .../gemstone/gemfire/internal/SocketCloser.java |   257 -
 .../gemfire/internal/SocketCreator.java         |  1364 --
 .../gemfire/internal/SocketIOWithTimeout.java   |   491 -
 .../gemfire/internal/SocketInputStream.java     |   181 -
 .../gemfire/internal/SocketInputWrapper.java    |    93 -
 .../gemfire/internal/SocketOutputStream.java    |   174 -
 .../gemstone/gemfire/internal/SocketUtils.java  |   220 -
 .../gemfire/internal/SolarisProcessStats.java   |   217 -
 .../gemfire/internal/SolarisSystemStats.java    |   428 -
 .../gemfire/internal/StatArchiveFormat.java     |   197 -
 .../gemfire/internal/StatArchiveReader.java     |  3338 ----
 .../gemfire/internal/StatArchiveWriter.java     |   748 -
 .../gemfire/internal/StatSamplerStats.java      |   123 -
 .../internal/StatisticDescriptorImpl.java       |   385 -
 .../gemfire/internal/StatisticsImpl.java        |   454 -
 .../gemfire/internal/StatisticsManager.java     |    79 -
 .../internal/StatisticsTypeFactoryImpl.java     |   141 -
 .../gemfire/internal/StatisticsTypeImpl.java    |   260 -
 .../gemfire/internal/StatisticsTypeXml.java     |   280 -
 .../gemstone/gemfire/internal/SystemAdmin.java  |  2305 ---
 .../gemfire/internal/SystemFailureTestHook.java |    48 -
 .../gemstone/gemfire/internal/SystemTimer.java  |   467 -
 .../gemfire/internal/UniqueIdGenerator.java     |   257 -
 .../com/gemstone/gemfire/internal/VMStats.java  |    87 -
 .../gemfire/internal/VMStatsContract.java       |    36 -
 .../internal/VMStatsContractFactory.java        |    60 -
 .../com/gemstone/gemfire/internal/Version.java  |   636 -
 .../internal/VersionedDataInputStream.java      |    67 -
 .../internal/VersionedDataOutputStream.java     |    57 -
 .../internal/VersionedDataSerializable.java     |    34 -
 .../gemfire/internal/VersionedDataStream.java   |    53 -
 .../gemfire/internal/VersionedObjectInput.java  |   245 -
 .../gemfire/internal/VersionedObjectOutput.java |   199 -
 .../gemfire/internal/WindowsProcessStats.java   |   160 -
 .../gemfire/internal/WindowsSystemStats.java    |   267 -
 .../internal/admin/AdminBridgeServer.java       |    33 -
 .../gemstone/gemfire/internal/admin/Alert.java  |    69 -
 .../gemfire/internal/admin/AlertListener.java   |    29 -
 .../gemfire/internal/admin/ApplicationVM.java   |    36 -
 .../gemfire/internal/admin/CacheCollector.java  |   277 -
 .../gemfire/internal/admin/CacheInfo.java       |   102 -
 .../gemfire/internal/admin/CacheSnapshot.java   |    34 -
 .../admin/ClientHealthMonitoringRegion.java     |   117 -
 .../internal/admin/ClientMembershipMessage.java |   187 -
 .../internal/admin/ClientStatsManager.java      |   263 -
 .../internal/admin/CompoundEntrySnapshot.java   |   201 -
 .../internal/admin/CompoundRegionSnapshot.java  |   387 -
 .../gemfire/internal/admin/DLockInfo.java       |    35 -
 .../gemfire/internal/admin/EntrySnapshot.java   |    29 -
 .../gemfire/internal/admin/EntryValueNode.java  |    53 -
 .../gemfire/internal/admin/GemFireVM.java       |   396 -
 .../gemfire/internal/admin/GfManagerAgent.java  |   112 -
 .../internal/admin/GfManagerAgentConfig.java    |    87 -
 .../internal/admin/GfManagerAgentFactory.java   |    42 -
 .../gemfire/internal/admin/GfObject.java        |    28 -
 .../gemfire/internal/admin/HealthListener.java  |    44 -
 .../internal/admin/JoinLeaveListener.java       |    27 -
 .../gemfire/internal/admin/ListenerIdMap.java   |   318 -
 .../gemfire/internal/admin/RegionSnapshot.java  |    31 -
 .../gemfire/internal/admin/SSLConfig.java       |   131 -
 .../gemfire/internal/admin/SnapshotClient.java  |    38 -
 .../gemstone/gemfire/internal/admin/Stat.java   |    44 -
 .../gemfire/internal/admin/StatAlert.java       |   140 -
 .../internal/admin/StatAlertDefinition.java     |   103 -
 .../internal/admin/StatAlertsManager.java       |   408 -
 .../gemfire/internal/admin/StatListener.java    |    43 -
 .../gemfire/internal/admin/StatResource.java    |    42 -
 .../gemfire/internal/admin/TransportConfig.java |    27 -
 .../admin/doc-files/class-hierarchy.fig         |   224 -
 .../admin/doc-files/class-hierarchy.gif         |   Bin 11971 -> 0 bytes
 .../gemfire/internal/admin/package.html         |    29 -
 .../admin/remote/AddHealthListenerRequest.java  |    89 -
 .../admin/remote/AddHealthListenerResponse.java |    76 -
 .../admin/remote/AddStatListenerRequest.java    |    85 -
 .../admin/remote/AddStatListenerResponse.java   |    79 -
 .../remote/AdminConsoleDisconnectMessage.java   |   125 -
 .../admin/remote/AdminConsoleMessage.java       |    83 -
 .../admin/remote/AdminFailureResponse.java      |    73 -
 .../remote/AdminMultipleReplyProcessor.java     |    91 -
 .../internal/admin/remote/AdminRegion.java      |   581 -
 .../admin/remote/AdminReplyProcessor.java       |   148 -
 .../internal/admin/remote/AdminRequest.java     |   193 -
 .../internal/admin/remote/AdminResponse.java    |    90 -
 .../internal/admin/remote/AdminWaiters.java     |   184 -
 .../admin/remote/AlertLevelChangeMessage.java   |    96 -
 .../admin/remote/AlertListenerMessage.java      |   147 -
 .../admin/remote/AlertsNotificationMessage.java |   110 -
 .../admin/remote/AppCacheSnapshotMessage.java   |   163 -
 .../admin/remote/BridgeServerRequest.java       |   202 -
 .../admin/remote/BridgeServerResponse.java      |   181 -
 .../admin/remote/CacheConfigRequest.java        |    88 -
 .../admin/remote/CacheConfigResponse.java       |   119 -
 .../internal/admin/remote/CacheDisplay.java     |    86 -
 .../internal/admin/remote/CacheInfoRequest.java |    73 -
 .../admin/remote/CacheInfoResponse.java         |    83 -
 .../admin/remote/CancelStatListenerRequest.java |    79 -
 .../remote/CancelStatListenerResponse.java      |    74 -
 .../internal/admin/remote/Cancellable.java      |    27 -
 .../admin/remote/CancellationMessage.java       |    70 -
 .../admin/remote/CancellationRegistry.java      |    95 -
 .../remote/ChangeRefreshIntervalMessage.java    |    98 -
 .../internal/admin/remote/CliLegacyMessage.java |    58 -
 .../admin/remote/ClientHealthStats.java         |   308 -
 .../internal/admin/remote/CompactRequest.java   |   145 -
 .../internal/admin/remote/CompactResponse.java  |    66 -
 .../admin/remote/DestroyEntryMessage.java       |   100 -
 .../admin/remote/DestroyRegionMessage.java      |    96 -
 .../admin/remote/DistributionLocatorId.java     |   394 -
 .../internal/admin/remote/DummyEntry.java       |    77 -
 .../admin/remote/DurableClientInfoRequest.java  |   109 -
 .../admin/remote/DurableClientInfoResponse.java |   108 -
 .../admin/remote/EntryValueNodeImpl.java        |   393 -
 .../admin/remote/FetchDistLockInfoRequest.java  |    68 -
 .../admin/remote/FetchDistLockInfoResponse.java |    93 -
 .../remote/FetchHealthDiagnosisRequest.java     |    91 -
 .../remote/FetchHealthDiagnosisResponse.java    |    92 -
 .../internal/admin/remote/FetchHostRequest.java |    70 -
 .../admin/remote/FetchHostResponse.java         |   173 -
 .../remote/FetchResourceAttributesRequest.java  |    70 -
 .../remote/FetchResourceAttributesResponse.java |    81 -
 .../admin/remote/FetchStatsRequest.java         |    72 -
 .../admin/remote/FetchStatsResponse.java        |   145 -
 .../admin/remote/FetchSysCfgRequest.java        |    76 -
 .../admin/remote/FetchSysCfgResponse.java       |    77 -
 .../remote/FlushAppCacheSnapshotMessage.java    |    69 -
 .../admin/remote/HealthListenerMessage.java     |    89 -
 .../remote/InspectionClasspathManager.java      |    90 -
 .../admin/remote/LicenseInfoRequest.java        |    72 -
 .../admin/remote/LicenseInfoResponse.java       |    79 -
 .../remote/MissingPersistentIDsRequest.java     |   141 -
 .../remote/MissingPersistentIDsResponse.java    |   115 -
 .../admin/remote/ObjectDetailsRequest.java      |   103 -
 .../admin/remote/ObjectDetailsResponse.java     |   155 -
 .../admin/remote/ObjectNamesRequest.java        |    89 -
 .../admin/remote/ObjectNamesResponse.java       |    98 -
 .../PrepareRevokePersistentIDRequest.java       |   127 -
 .../remote/RefreshMemberSnapshotRequest.java    |    74 -
 .../remote/RefreshMemberSnapshotResponse.java   |    95 -
 .../admin/remote/RegionAdminMessage.java        |    66 -
 .../admin/remote/RegionAdminRequest.java        |    74 -
 .../admin/remote/RegionAttributesRequest.java   |    74 -
 .../admin/remote/RegionAttributesResponse.java  |    75 -
 .../internal/admin/remote/RegionRequest.java    |   175 -
 .../internal/admin/remote/RegionResponse.java   |   149 -
 .../admin/remote/RegionSizeRequest.java         |    90 -
 .../admin/remote/RegionSizeResponse.java        |    96 -
 .../admin/remote/RegionStatisticsRequest.java   |    74 -
 .../admin/remote/RegionStatisticsResponse.java  |    75 -
 .../remote/RegionSubRegionSizeRequest.java      |    94 -
 .../remote/RegionSubRegionsSizeResponse.java    |   162 -
 .../internal/admin/remote/RemoteAlert.java      |   205 -
 .../admin/remote/RemoteApplicationVM.java       |    61 -
 .../admin/remote/RemoteBridgeServer.java        |   300 -
 .../internal/admin/remote/RemoteCacheInfo.java  |   192 -
 .../admin/remote/RemoteCacheStatistics.java     |    87 -
 .../internal/admin/remote/RemoteDLockInfo.java  |   115 -
 .../admin/remote/RemoteEntrySnapshot.java       |   131 -
 .../internal/admin/remote/RemoteGemFireVM.java  |   998 -
 .../admin/remote/RemoteGfManagerAgent.java      |  1489 --
 .../internal/admin/remote/RemoteObjectName.java |    95 -
 .../admin/remote/RemoteRegionAttributes.java    |   702 -
 .../admin/remote/RemoteRegionSnapshot.java      |   158 -
 .../internal/admin/remote/RemoteStat.java       |   118 -
 .../admin/remote/RemoteStatResource.java        |   154 -
 .../admin/remote/RemoteTransportConfig.java     |   376 -
 .../remote/RemoveHealthListenerRequest.java     |    80 -
 .../remote/RemoveHealthListenerResponse.java    |    67 -
 .../admin/remote/ResetHealthStatusRequest.java  |    80 -
 .../admin/remote/ResetHealthStatusResponse.java |    72 -
 .../admin/remote/RevokePersistentIDRequest.java |   103 -
 .../remote/RevokePersistentIDResponse.java      |    36 -
 .../admin/remote/RootRegionRequest.java         |    76 -
 .../admin/remote/RootRegionResponse.java        |   115 -
 .../remote/ShutdownAllGatewayHubsRequest.java   |    68 -
 .../admin/remote/ShutdownAllRequest.java        |   301 -
 .../admin/remote/ShutdownAllResponse.java       |    80 -
 .../admin/remote/SnapshotResultMessage.java     |    85 -
 .../remote/StatAlertsManagerAssignMessage.java  |   152 -
 .../admin/remote/StatListenerMessage.java       |   118 -
 .../admin/remote/StoreSysCfgRequest.java        |    81 -
 .../admin/remote/StoreSysCfgResponse.java       |    77 -
 .../internal/admin/remote/SubRegionRequest.java |    74 -
 .../admin/remote/SubRegionResponse.java         |   100 -
 .../internal/admin/remote/TailLogRequest.java   |    62 -
 .../internal/admin/remote/TailLogResponse.java  |   169 -
 .../remote/UpdateAlertDefinitionMessage.java    |   162 -
 .../admin/remote/VersionInfoRequest.java        |    73 -
 .../admin/remote/VersionInfoResponse.java       |    74 -
 .../admin/remote/VersionMismatchAlert.java      |    66 -
 .../gemfire/internal/admin/remote/package.html  |    41 -
 .../admin/statalerts/BaseDecoratorImpl.java     |   224 -
 .../statalerts/DummyStatisticInfoImpl.java      |   146 -
 .../admin/statalerts/FunctionDecoratorImpl.java |   133 -
 .../admin/statalerts/FunctionHelper.java        |   257 -
 .../statalerts/GaugeThresholdDecoratorImpl.java |   156 -
 .../statalerts/MultiAttrDefinitionImpl.java     |   207 -
 .../NumberThresholdDecoratorImpl.java           |   153 -
 .../statalerts/SingleAttrDefinitionImpl.java    |   213 -
 .../admin/statalerts/StatisticInfo.java         |    85 -
 .../admin/statalerts/StatisticInfoImpl.java     |   157 -
 .../cache/AbstractBucketRegionQueue.java        |   563 -
 .../internal/cache/AbstractCacheServer.java     |   407 -
 .../cache/AbstractDiskLRURegionEntry.java       |    42 -
 .../internal/cache/AbstractDiskRegion.java      |   992 -
 .../internal/cache/AbstractDiskRegionEntry.java |    76 -
 .../internal/cache/AbstractLRURegionEntry.java  |    46 -
 .../internal/cache/AbstractLRURegionMap.java    |   861 -
 .../cache/AbstractOplogDiskRegionEntry.java     |   173 -
 .../gemfire/internal/cache/AbstractRegion.java  |  2134 --
 .../internal/cache/AbstractRegionEntry.java     |  2243 ---
 .../internal/cache/AbstractRegionMap.java       |  4164 ----
 .../internal/cache/AbstractUpdateOperation.java |   338 -
 .../gemfire/internal/cache/AcceptHelper.java    |   101 -
 .../cache/AddCacheServerProfileMessage.java     |   161 -
 .../gemfire/internal/cache/BackupLock.java      |    91 -
 .../gemfire/internal/cache/BucketAdvisor.java   |  3002 ---
 .../gemfire/internal/cache/BucketDump.java      |   144 -
 .../internal/cache/BucketNotFoundException.java |    38 -
 .../cache/BucketPersistenceAdvisor.java         |   463 -
 .../gemfire/internal/cache/BucketRegion.java    |  2614 ---
 .../internal/cache/BucketRegionEvictior.java    |    63 -
 .../internal/cache/BucketRegionQueue.java       |   548 -
 .../internal/cache/BucketServerLocation.java    |    88 -
 .../internal/cache/BucketServerLocation66.java  |   113 -
 .../cache/BytesAndBitsForCompactor.java         |    94 -
 .../internal/cache/CacheClientStatus.java       |   101 -
 .../gemfire/internal/cache/CacheConfig.java     |   228 -
 .../cache/CacheDistributionAdvisee.java         |    58 -
 .../cache/CacheDistributionAdvisor.java         |  1260 --
 .../internal/cache/CacheLifecycleListener.java  |    37 -
 .../gemfire/internal/cache/CacheObserver.java   |   190 -
 .../internal/cache/CacheObserverAdapter.java    |   154 -
 .../internal/cache/CacheObserverHolder.java     |    78 -
 .../gemfire/internal/cache/CachePerfStats.java  |  1419 --
 .../internal/cache/CacheServerAdvisor.java      |   173 -
 .../gemfire/internal/cache/CacheServerImpl.java |   821 -
 .../internal/cache/CacheServerLauncher.java     |  1391 --
 .../gemfire/internal/cache/CacheService.java    |    42 -
 .../internal/cache/CacheStatisticsImpl.java     |   111 -
 .../internal/cache/CachedDeserializable.java    |   114 -
 .../cache/CachedDeserializableFactory.java      |   275 -
 .../internal/cache/ClientRegionEventImpl.java   |   117 -
 .../internal/cache/ClientServerObserver.java    |    99 -
 .../cache/ClientServerObserverAdapter.java      |   116 -
 .../cache/ClientServerObserverHolder.java       |    62 -
 .../cache/ClientSubscriptionConfigImpl.java     |   178 -
 .../internal/cache/CloseCacheMessage.java       |   116 -
 .../cache/ClusterConfigurationLoader.java       |   245 -
 .../internal/cache/ColocationHelper.java        |   569 -
 .../internal/cache/CommitReplyException.java    |    73 -
 .../internal/cache/CompactableOplog.java        |    37 -
 .../gemfire/internal/cache/Conflatable.java     |    76 -
 .../internal/cache/ControllerAdvisor.java       |   171 -
 .../internal/cache/CountingDataInputStream.java |   125 -
 .../internal/cache/CreateRegionProcessor.java   |   914 -
 .../internal/cache/CustomEntryExpiryTask.java   |    49 -
 .../cache/CustomEvictionAttributesImpl.java     |    36 -
 .../internal/cache/DataLocationException.java   |    43 -
 .../internal/cache/DestroyOperation.java        |   303 -
 .../cache/DestroyPartitionedRegionMessage.java  |   252 -
 .../internal/cache/DestroyRegionOperation.java  |   547 -
 .../gemfire/internal/cache/DestroyedEntry.java  |    85 -
 .../internal/cache/DirectReplyMessage.java      |    58 -
 .../gemfire/internal/cache/DirectoryHolder.java |   123 -
 .../internal/cache/DiskDirectoryStats.java      |   117 -
 .../gemfire/internal/cache/DiskEntry.java       |  2028 --
 .../gemstone/gemfire/internal/cache/DiskId.java |   730 -
 .../gemfire/internal/cache/DiskInitFile.java    |  2877 ---
 .../gemfire/internal/cache/DiskRegion.java      |   876 -
 .../gemfire/internal/cache/DiskRegionStats.java |   326 -
 .../internal/cache/DiskStoreAttributes.java     |   196 -
 .../gemfire/internal/cache/DiskStoreBackup.java |    98 -
 .../internal/cache/DiskStoreFactoryImpl.java    |   291 -
 .../gemfire/internal/cache/DiskStoreImpl.java   |  4873 -----
 .../internal/cache/DiskStoreMonitor.java        |   413 -
 .../internal/cache/DiskStoreObserver.java       |    63 -
 .../gemfire/internal/cache/DiskStoreStats.java  |   528 -
 .../gemfire/internal/cache/DiskStoreTask.java   |    27 -
 .../internal/cache/DiskWriteAttributesImpl.java |   564 -
 .../internal/cache/DistPeerTXStateStub.java     |   374 -
 .../cache/DistTXAdjunctCommitMessage.java       |    51 -
 .../internal/cache/DistTXCommitMessage.java     |   500 -
 .../cache/DistTXCoordinatorInterface.java       |    73 -
 .../internal/cache/DistTXPrecommitMessage.java  |   548 -
 .../internal/cache/DistTXRollbackMessage.java   |   507 -
 .../gemfire/internal/cache/DistTXState.java     |   746 -
 .../cache/DistTXStateOnCoordinator.java         |   416 -
 .../internal/cache/DistTXStateProxyImpl.java    |    48 -
 .../DistTXStateProxyImplOnCoordinator.java      |  1068 -
 .../cache/DistTXStateProxyImplOnDatanode.java   |   128 -
 .../cache/DistributedCacheOperation.java        |  1615 --
 .../cache/DistributedClearOperation.java        |   356 -
 .../cache/DistributedPutAllOperation.java       |  1384 --
 .../internal/cache/DistributedRegion.java       |  4303 -----
 ...stributedRegionFunctionStreamingMessage.java |   460 -
 .../cache/DistributedRemoveAllOperation.java    |  1097 --
 .../cache/DistributedTombstoneOperation.java    |   227 -
 .../internal/cache/DummyCachePerfStats.java     |   485 -
 .../internal/cache/DynamicRegionAttributes.java |    52 -
 .../cache/DynamicRegionFactoryImpl.java         |    44 -
 .../gemfire/internal/cache/EntriesMap.java      |   155 -
 .../gemfire/internal/cache/EntriesSet.java      |   294 -
 .../gemfire/internal/cache/EntryBits.java       |   128 -
 .../gemfire/internal/cache/EntryEventImpl.java  |  3135 ---
 .../gemfire/internal/cache/EntryExpiryTask.java |   358 -
 .../internal/cache/EntryOperationImpl.java      |   119 -
 .../gemfire/internal/cache/EntrySnapshot.java   |   285 -
 .../internal/cache/EnumListenerEvent.java       |   475 -
 .../gemfire/internal/cache/EventID.java         |   804 -
 .../internal/cache/EventStateHelper.java        |   196 -
 .../gemfire/internal/cache/EventTracker.java    |   811 -
 .../internal/cache/EvictionAttributesImpl.java  |   243 -
 .../gemfire/internal/cache/EvictorService.java  |   285 -
 .../internal/cache/ExpirationScheduler.java     |   106 -
 .../gemfire/internal/cache/ExpiryTask.java      |   540 -
 .../internal/cache/ExportDiskRegion.java        |    84 -
 .../gemfire/internal/cache/FilterProfile.java   |  2218 ---
 .../internal/cache/FilterRoutingInfo.java       |   519 -
 .../cache/FindDurableQueueProcessor.java        |   256 -
 .../internal/cache/FindRemoteTXMessage.java     |   281 -
 .../internal/cache/FindVersionTagOperation.java |   254 -
 .../cache/FixedPartitionAttributesImpl.java     |   156 -
 .../internal/cache/ForceReattemptException.java |   121 -
 .../cache/ForceableLinkedBlockingQueue.java     |   864 -
 .../FunctionStreamingOrderedReplyMessage.java   |    64 -
 .../cache/FunctionStreamingReplyMessage.java    |   145 -
 .../internal/cache/GatewayEventFilter.java      |    27 -
 .../internal/cache/GemFireCacheImpl.java        |  5467 ------
 .../internal/cache/GemfireCacheHelper.java      |    38 -
 .../gemfire/internal/cache/GridAdvisor.java     |   442 -
 .../gemfire/internal/cache/HARegion.java        |   618 -
 .../internal/cache/HDFSLRURegionMap.java        |   112 -
 .../gemfire/internal/cache/HDFSRegionMap.java   |    33 -
 .../internal/cache/HDFSRegionMapDelegate.java   |   541 -
 .../internal/cache/HDFSRegionMapImpl.java       |    75 -
 .../internal/cache/HasCachePerfStats.java       |    22 -
 .../internal/cache/IdentityArrayList.java       |   473 -
 .../gemfire/internal/cache/ImageState.java      |    89 -
 .../cache/InMemoryPersistentMemberView.java     |   136 -
 .../internal/cache/IncomingGatewayStatus.java   |    83 -
 .../internal/cache/InitialImageFlowControl.java |   253 -
 .../internal/cache/InitialImageOperation.java   |  4310 -----
 .../gemfire/internal/cache/InlineKeyHelper.java |    71 -
 .../gemfire/internal/cache/InterestEvent.java   |    68 -
 .../gemfire/internal/cache/InterestFilter.java  |    34 -
 .../cache/InterestRegistrationEventImpl.java    |   152 -
 .../gemfire/internal/cache/InternalCache.java   |    52 -
 .../internal/cache/InternalCacheEvent.java      |    87 -
 .../internal/cache/InternalDataView.java        |   255 -
 .../internal/cache/InternalRegionArguments.java |   337 -
 .../internal/cache/InvalidateOperation.java     |   236 -
 .../InvalidatePartitionedRegionMessage.java     |   102 -
 .../cache/InvalidateRegionOperation.java        |   108 -
 .../cache/JtaAfterCompletionMessage.java        |   128 -
 .../cache/JtaBeforeCompletionMessage.java       |    82 -
 .../gemfire/internal/cache/KeyInfo.java         |   129 -
 .../internal/cache/KeyWithRegionContext.java    |    71 -
 .../gemfire/internal/cache/ListOfDeltas.java    |   101 -
 .../internal/cache/LoaderHelperFactory.java     |    40 -
 .../internal/cache/LoaderHelperImpl.java        |   169 -
 .../gemfire/internal/cache/LocalDataSet.java    |   750 -
 .../gemfire/internal/cache/LocalRegion.java     | 12975 -------------
 .../internal/cache/LocalRegionDataView.java     |   273 -
 .../cache/MemberFunctionStreamingMessage.java   |   416 -
 .../cache/MinimumSystemRequirements.java        |    92 -
 .../cache/NetSearchExpirationCalculator.java    |    49 -
 .../gemstone/gemfire/internal/cache/Node.java   |   187 -
 .../internal/cache/NonLocalRegionEntry.java     |   579 -
 .../cache/NonLocalRegionEntryWithStats.java     |    86 -
 .../internal/cache/OffHeapRegionEntry.java      |    42 -
 .../cache/OfflineCompactionDiskRegion.java      |   124 -
 .../gemstone/gemfire/internal/cache/OpType.java |    59 -
 .../gemstone/gemfire/internal/cache/Oplog.java  |  7969 --------
 .../gemfire/internal/cache/OplogSet.java        |    34 -
 .../internal/cache/OrderedTombstoneMap.java     |   123 -
 .../gemfire/internal/cache/OverflowOplog.java   |  1613 --
 .../internal/cache/OverflowOplogSet.java        |   328 -
 .../internal/cache/PRContainsValueFunction.java |    60 -
 .../internal/cache/PRHARedundancyProvider.java  |  2384 ---
 .../internal/cache/PRQueryProcessor.java        |   658 -
 .../internal/cache/PRSystemPropertyGetter.java  |    70 -
 .../internal/cache/PartitionAttributesImpl.java |   828 -
 .../internal/cache/PartitionRegionConfig.java   |   477 -
 .../cache/PartitionRegionConfigValidator.java   |   511 -
 .../internal/cache/PartitionedRegion.java       | 11398 -----------
 .../PartitionedRegionBucketMgmtHelper.java      |    54 -
 .../cache/PartitionedRegionDataStore.java       |  3284 ----
 .../cache/PartitionedRegionDataView.java        |   142 -
 .../cache/PartitionedRegionException.java       |    48 -
 .../internal/cache/PartitionedRegionHelper.java |  1132 --
 .../cache/PartitionedRegionQueryEvaluator.java  |  1486 --
 .../internal/cache/PartitionedRegionStats.java  |  1267 --
 .../internal/cache/PartitionedRegionStatus.java |    86 -
 .../gemfire/internal/cache/PeerTXStateStub.java |   257 -
 .../internal/cache/PersistentOplogSet.java      |  1184 --
 .../internal/cache/PlaceHolderDiskRegion.java   |   207 -
 .../gemfire/internal/cache/PoolFactoryImpl.java |   529 -
 .../gemfire/internal/cache/PoolManagerImpl.java |   336 -
 .../gemfire/internal/cache/PoolStats.java       |   319 -
 .../cache/PreferBytesCachedDeserializable.java  |   157 -
 .../internal/cache/PrimaryBucketException.java  |    49 -
 .../cache/ProfileExchangeProcessor.java         |    41 -
 .../internal/cache/ProxyBucketRegion.java       |   657 -
 .../gemfire/internal/cache/ProxyRegionMap.java  |   794 -
 .../cache/PutAllPartialResultException.java     |   229 -
 .../gemfire/internal/cache/QueuedOperation.java |   196 -
 .../internal/cache/RegionClearedException.java  |    62 -
 .../gemfire/internal/cache/RegionEntry.java     |   519 -
 .../internal/cache/RegionEntryContext.java      |    41 -
 .../internal/cache/RegionEntryFactory.java      |    50 -
 .../gemfire/internal/cache/RegionEventImpl.java |   352 -
 .../internal/cache/RegionEvictorTask.java       |   144 -
 .../internal/cache/RegionExpiryTask.java        |   162 -
 .../internal/cache/RegionFactoryImpl.java       |    50 -
 .../internal/cache/RegionIdleExpiryTask.java    |    73 -
 .../gemfire/internal/cache/RegionListener.java  |    46 -
 .../gemfire/internal/cache/RegionMap.java       |   404 -
 .../internal/cache/RegionMapFactory.java        |    76 -
 .../gemfire/internal/cache/RegionQueue.java     |   158 -
 .../internal/cache/RegionQueueException.java    |    49 -
 .../gemfire/internal/cache/RegionStatus.java    |    88 -
 .../internal/cache/RegionTTLExpiryTask.java     |    75 -
 .../internal/cache/ReleaseClearLockMessage.java |   113 -
 .../cache/ReliableDistributionData.java         |    43 -
 .../internal/cache/ReliableMessageQueue.java    |    66 -
 .../cache/ReliableMessageQueueFactory.java      |    43 -
 .../cache/ReliableMessageQueueFactoryImpl.java  |   230 -
 .../cache/RemoteContainsKeyValueMessage.java    |   342 -
 .../internal/cache/RemoteDestroyMessage.java    |   745 -
 .../internal/cache/RemoteFetchEntryMessage.java |   386 -
 .../cache/RemoteFetchVersionMessage.java        |   261 -
 .../internal/cache/RemoteGetMessage.java        |   462 -
 .../internal/cache/RemoteInvalidateMessage.java |   439 -
 .../cache/RemoteOperationException.java         |   119 -
 .../internal/cache/RemoteOperationMessage.java  |   656 -
 .../RemoteOperationMessageWithDirectReply.java  |    85 -
 .../internal/cache/RemotePutAllMessage.java     |   549 -
 .../internal/cache/RemotePutMessage.java        |  1236 --
 .../internal/cache/RemoteRegionOperation.java   |   224 -
 .../internal/cache/RemoteRemoveAllMessage.java  |   531 -
 .../gemfire/internal/cache/RoleEventImpl.java   |    96 -
 .../cache/SearchLoadAndWriteProcessor.java      |  2802 ---
 .../internal/cache/SendQueueOperation.java      |   191 -
 .../internal/cache/SerializationHelper.java     |    24 -
 .../internal/cache/ServerPingMessage.java       |   136 -
 .../internal/cache/StateFlushOperation.java     |   783 -
 .../cache/StoreAllCachedDeserializable.java     |   159 -
 .../internal/cache/TXBucketRegionState.java     |    37 -
 .../gemfire/internal/cache/TXCommitMessage.java |  2478 ---
 .../gemfire/internal/cache/TXEntry.java         |   274 -
 .../gemfire/internal/cache/TXEntryState.java    |  2270 ---
 .../internal/cache/TXEntryStateFactory.java     |    38 -
 .../internal/cache/TXEntryUserAttrState.java    |    67 -
 .../gemfire/internal/cache/TXEvent.java         |   148 -
 .../internal/cache/TXFarSideCMTracker.java      |   360 -
 .../gemstone/gemfire/internal/cache/TXId.java   |   130 -
 .../gemfire/internal/cache/TXLockRequest.java   |   144 -
 .../gemfire/internal/cache/TXManagerImpl.java   |  1511 --
 .../gemfire/internal/cache/TXMessage.java       |   215 -
 .../internal/cache/TXRegionLockRequestImpl.java |   209 -
 .../gemfire/internal/cache/TXRegionState.java   |   629 -
 .../internal/cache/TXRemoteCommitMessage.java   |   320 -
 .../internal/cache/TXRemoteRollbackMessage.java |    88 -
 .../internal/cache/TXReservationMgr.java        |   154 -
 .../gemfire/internal/cache/TXRmtEvent.java      |   243 -
 .../gemfire/internal/cache/TXState.java         |  1839 --
 .../internal/cache/TXStateInterface.java        |   224 -
 .../gemfire/internal/cache/TXStateProxy.java    |    96 -
 .../internal/cache/TXStateProxyImpl.java        |  1036 -
 .../gemfire/internal/cache/TXStateStub.java     |   577 -
 .../cache/TXSynchronizationRunnable.java        |   160 -
 .../cache/TestHeapThresholdObserver.java        |    62 -
 .../cache/TimestampedEntryEventImpl.java        |    73 -
 .../gemstone/gemfire/internal/cache/Token.java  |   301 -
 .../internal/cache/TombstoneService.java        |  1007 -
 .../internal/cache/TransactionMessage.java      |    75 -
 .../gemfire/internal/cache/TxEntryFactory.java  |    35 -
 .../internal/cache/UnsharedImageState.java      |   293 -
 .../cache/UpdateAttributesProcessor.java        |   553 -
 .../cache/UpdateEntryVersionOperation.java      |   195 -
 .../gemfire/internal/cache/UpdateOperation.java |   629 -
 .../cache/UserSpecifiedDiskStoreAttributes.java |   191 -
 .../cache/UserSpecifiedRegionAttributes.java    |   624 -
 .../internal/cache/VMCachedDeserializable.java  |   263 -
 .../gemfire/internal/cache/VMLRURegionMap.java  |    65 -
 .../gemfire/internal/cache/VMRegionMap.java     |    39 -
 .../cache/VMStatsDiskLRURegionEntry.java        |    40 -
 .../cache/VMStatsDiskLRURegionEntryHeap.java    |    69 -
 .../VMStatsDiskLRURegionEntryHeapIntKey.java    |   345 -
 .../VMStatsDiskLRURegionEntryHeapLongKey.java   |   345 -
 .../VMStatsDiskLRURegionEntryHeapObjectKey.java |   338 -
 ...VMStatsDiskLRURegionEntryHeapStringKey1.java |   407 -
 ...VMStatsDiskLRURegionEntryHeapStringKey2.java |   448 -
 .../VMStatsDiskLRURegionEntryHeapUUIDKey.java   |   349 -
 .../cache/VMStatsDiskLRURegionEntryOffHeap.java |    69 -
 .../VMStatsDiskLRURegionEntryOffHeapIntKey.java |   394 -
 ...VMStatsDiskLRURegionEntryOffHeapLongKey.java |   394 -
 ...StatsDiskLRURegionEntryOffHeapObjectKey.java |   387 -
 ...tatsDiskLRURegionEntryOffHeapStringKey1.java |   456 -
 ...tatsDiskLRURegionEntryOffHeapStringKey2.java |   497 -
 ...VMStatsDiskLRURegionEntryOffHeapUUIDKey.java |   398 -
 .../internal/cache/VMStatsDiskRegionEntry.java  |    39 -
 .../cache/VMStatsDiskRegionEntryHeap.java       |    69 -
 .../cache/VMStatsDiskRegionEntryHeapIntKey.java |   248 -
 .../VMStatsDiskRegionEntryHeapLongKey.java      |   248 -
 .../VMStatsDiskRegionEntryHeapObjectKey.java    |   241 -
 .../VMStatsDiskRegionEntryHeapStringKey1.java   |   310 -
 .../VMStatsDiskRegionEntryHeapStringKey2.java   |   351 -
 .../VMStatsDiskRegionEntryHeapUUIDKey.java      |   252 -
 .../cache/VMStatsDiskRegionEntryOffHeap.java    |    69 -
 .../VMStatsDiskRegionEntryOffHeapIntKey.java    |   297 -
 .../VMStatsDiskRegionEntryOffHeapLongKey.java   |   297 -
 .../VMStatsDiskRegionEntryOffHeapObjectKey.java |   290 -
 ...VMStatsDiskRegionEntryOffHeapStringKey1.java |   359 -
 ...VMStatsDiskRegionEntryOffHeapStringKey2.java |   400 -
 .../VMStatsDiskRegionEntryOffHeapUUIDKey.java   |   301 -
 .../internal/cache/VMStatsLRURegionEntry.java   |    43 -
 .../cache/VMStatsLRURegionEntryHeap.java        |    69 -
 .../cache/VMStatsLRURegionEntryHeapIntKey.java  |   256 -
 .../cache/VMStatsLRURegionEntryHeapLongKey.java |   256 -
 .../VMStatsLRURegionEntryHeapObjectKey.java     |   249 -
 .../VMStatsLRURegionEntryHeapStringKey1.java    |   318 -
 .../VMStatsLRURegionEntryHeapStringKey2.java    |   359 -
 .../cache/VMStatsLRURegionEntryHeapUUIDKey.java |   260 -
 .../cache/VMStatsLRURegionEntryOffHeap.java     |    69 -
 .../VMStatsLRURegionEntryOffHeapIntKey.java     |   305 -
 .../VMStatsLRURegionEntryOffHeapLongKey.java    |   305 -
 .../VMStatsLRURegionEntryOffHeapObjectKey.java  |   298 -
 .../VMStatsLRURegionEntryOffHeapStringKey1.java |   367 -
 .../VMStatsLRURegionEntryOffHeapStringKey2.java |   408 -
 .../VMStatsLRURegionEntryOffHeapUUIDKey.java    |   309 -
 .../internal/cache/VMStatsRegionEntry.java      |    39 -
 .../internal/cache/VMStatsRegionEntryHeap.java  |    69 -
 .../cache/VMStatsRegionEntryHeapIntKey.java     |   175 -
 .../cache/VMStatsRegionEntryHeapLongKey.java    |   175 -
 .../cache/VMStatsRegionEntryHeapObjectKey.java  |   168 -
 .../cache/VMStatsRegionEntryHeapStringKey1.java |   237 -
 .../cache/VMStatsRegionEntryHeapStringKey2.java |   278 -
 .../cache/VMStatsRegionEntryHeapUUIDKey.java    |   179 -
 .../cache/VMStatsRegionEntryOffHeap.java        |    69 -
 .../cache/VMStatsRegionEntryOffHeapIntKey.java  |   224 -
 .../cache/VMStatsRegionEntryOffHeapLongKey.java |   224 -
 .../VMStatsRegionEntryOffHeapObjectKey.java     |   217 -
 .../VMStatsRegionEntryOffHeapStringKey1.java    |   286 -
 .../VMStatsRegionEntryOffHeapStringKey2.java    |   327 -
 .../cache/VMStatsRegionEntryOffHeapUUIDKey.java |   228 -
 .../cache/VMThinDiskLRURegionEntry.java         |    39 -
 .../cache/VMThinDiskLRURegionEntryHeap.java     |    69 -
 .../VMThinDiskLRURegionEntryHeapIntKey.java     |   280 -
 .../VMThinDiskLRURegionEntryHeapLongKey.java    |   280 -
 .../VMThinDiskLRURegionEntryHeapObjectKey.java  |   273 -
 .../VMThinDiskLRURegionEntryHeapStringKey1.java |   342 -
 .../VMThinDiskLRURegionEntryHeapStringKey2.java |   383 -
 .../VMThinDiskLRURegionEntryHeapUUIDKey.java    |   284 -
 .../cache/VMThinDiskLRURegionEntryOffHeap.java  |    69 -
 .../VMThinDiskLRURegionEntryOffHeapIntKey.java  |   329 -
 .../VMThinDiskLRURegionEntryOffHeapLongKey.java |   329 -
 ...MThinDiskLRURegionEntryOffHeapObjectKey.java |   322 -
 ...ThinDiskLRURegionEntryOffHeapStringKey1.java |   391 -
 ...ThinDiskLRURegionEntryOffHeapStringKey2.java |   432 -
 .../VMThinDiskLRURegionEntryOffHeapUUIDKey.java |   333 -
 .../internal/cache/VMThinDiskRegionEntry.java   |    41 -
 .../cache/VMThinDiskRegionEntryHeap.java        |    69 -
 .../cache/VMThinDiskRegionEntryHeapIntKey.java  |   182 -
 .../cache/VMThinDiskRegionEntryHeapLongKey.java |   182 -
 .../VMThinDiskRegionEntryHeapObjectKey.java     |   175 -
 .../VMThinDiskRegionEntryHeapStringKey1.java    |   244 -
 .../VMThinDiskRegionEntryHeapStringKey2.java    |   285 -
 .../cache/VMThinDiskRegionEntryHeapUUIDKey.java |   186 -
 .../cache/VMThinDiskRegionEntryOffHeap.java     |    69 -
 .../VMThinDiskRegionEntryOffHeapIntKey.java     |   231 -
 .../VMThinDiskRegionEntryOffHeapLongKey.java    |   231 -
 .../VMThinDiskRegionEntryOffHeapObjectKey.java  |   224 -
 .../VMThinDiskRegionEntryOffHeapStringKey1.java |   293 -
 .../VMThinDiskRegionEntryOffHeapStringKey2.java |   334 -
 .../VMThinDiskRegionEntryOffHeapUUIDKey.java    |   235 -
 .../internal/cache/VMThinLRURegionEntry.java    |    37 -
 .../cache/VMThinLRURegionEntryHeap.java         |    69 -
 .../cache/VMThinLRURegionEntryHeapIntKey.java   |   191 -
 .../cache/VMThinLRURegionEntryHeapLongKey.java  |   191 -
 .../VMThinLRURegionEntryHeapObjectKey.java      |   184 -
 .../VMThinLRURegionEntryHeapStringKey1.java     |   253 -
 .../VMThinLRURegionEntryHeapStringKey2.java     |   294 -
 .../cache/VMThinLRURegionEntryHeapUUIDKey.java  |   195 -
 .../cache/VMThinLRURegionEntryOffHeap.java      |    69 -
 .../VMThinLRURegionEntryOffHeapIntKey.java      |   240 -
 .../VMThinLRURegionEntryOffHeapLongKey.java     |   240 -
 .../VMThinLRURegionEntryOffHeapObjectKey.java   |   233 -
 .../VMThinLRURegionEntryOffHeapStringKey1.java  |   302 -
 .../VMThinLRURegionEntryOffHeapStringKey2.java  |   343 -
 .../VMThinLRURegionEntryOffHeapUUIDKey.java     |   244 -
 .../internal/cache/VMThinRegionEntry.java       |    35 -
 .../internal/cache/VMThinRegionEntryHeap.java   |    71 -
 .../cache/VMThinRegionEntryHeapIntKey.java      |   109 -
 .../cache/VMThinRegionEntryHeapLongKey.java     |   109 -
 .../cache/VMThinRegionEntryHeapObjectKey.java   |   102 -
 .../cache/VMThinRegionEntryHeapStringKey1.java  |   171 -
 .../cache/VMThinRegionEntryHeapStringKey2.java  |   212 -
 .../cache/VMThinRegionEntryHeapUUIDKey.java     |   113 -
 .../cache/VMThinRegionEntryOffHeap.java         |    71 -
 .../cache/VMThinRegionEntryOffHeapIntKey.java   |   158 -
 .../cache/VMThinRegionEntryOffHeapLongKey.java  |   158 -
 .../VMThinRegionEntryOffHeapObjectKey.java      |   151 -
 .../VMThinRegionEntryOffHeapStringKey1.java     |   220 -
 .../VMThinRegionEntryOffHeapStringKey2.java     |   261 -
 .../cache/VMThinRegionEntryOffHeapUUIDKey.java  |   162 -
 .../internal/cache/ValidatingDiskRegion.java    |   519 -
 .../internal/cache/ValueByteWrapper.java        |    70 -
 .../internal/cache/VersionTimestamp.java        |    47 -
 .../cache/VersionedStatsDiskLRURegionEntry.java |    33 -
 .../VersionedStatsDiskLRURegionEntryHeap.java   |    70 -
 ...sionedStatsDiskLRURegionEntryHeapIntKey.java |   430 -
 ...ionedStatsDiskLRURegionEntryHeapLongKey.java |   430 -
 ...nedStatsDiskLRURegionEntryHeapObjectKey.java |   423 -
 ...edStatsDiskLRURegionEntryHeapStringKey1.java |   492 -
 ...edStatsDiskLRURegionEntryHeapStringKey2.java |   533 -
 ...ionedStatsDiskLRURegionEntryHeapUUIDKey.java |   434 -
 ...VersionedStatsDiskLRURegionEntryOffHeap.java |    70 -
 ...nedStatsDiskLRURegionEntryOffHeapIntKey.java |   479 -
 ...edStatsDiskLRURegionEntryOffHeapLongKey.java |   479 -
 ...StatsDiskLRURegionEntryOffHeapObjectKey.java |   472 -
 ...tatsDiskLRURegionEntryOffHeapStringKey1.java |   541 -
 ...tatsDiskLRURegionEntryOffHeapStringKey2.java |   582 -
 ...edStatsDiskLRURegionEntryOffHeapUUIDKey.java |   483 -
 .../cache/VersionedStatsDiskRegionEntry.java    |    33 -
 .../VersionedStatsDiskRegionEntryHeap.java      |    70 -
 ...VersionedStatsDiskRegionEntryHeapIntKey.java |   333 -
 ...ersionedStatsDiskRegionEntryHeapLongKey.java |   333 -
 ...sionedStatsDiskRegionEntryHeapObjectKey.java |   326 -
 ...ionedStatsDiskRegionEntryHeapStringKey1.java |   395 -
 ...ionedStatsDiskRegionEntryHeapStringKey2.java |   436 -
 ...ersionedStatsDiskRegionEntryHeapUUIDKey.java |   337 -
 .../VersionedStatsDiskRegionEntryOffHeap.java   |    70 -
 ...sionedStatsDiskRegionEntryOffHeapIntKey.java |   382 -
 ...ionedStatsDiskRegionEntryOffHeapLongKey.java |   382 -
 ...nedStatsDiskRegionEntryOffHeapObjectKey.java |   375 -
 ...edStatsDiskRegionEntryOffHeapStringKey1.java |   444 -
 ...edStatsDiskRegionEntryOffHeapStringKey2.java |   485 -
 ...ionedStatsDiskRegionEntryOffHeapUUIDKey.java |   386 -
 .../cache/VersionedStatsLRURegionEntry.java     |    34 -
 .../cache/VersionedStatsLRURegionEntryHeap.java |    70 -
 .../VersionedStatsLRURegionEntryHeapIntKey.java |   341 -
 ...VersionedStatsLRURegionEntryHeapLongKey.java |   341 -
 ...rsionedStatsLRURegionEntryHeapObjectKey.java |   334 -
 ...sionedStatsLRURegionEntryHeapStringKey1.java |   403 -
 ...sionedStatsLRURegionEntryHeapStringKey2.java |   444 -
 ...VersionedStatsLRURegionEntryHeapUUIDKey.java |   345 -
 .../VersionedStatsLRURegionEntryOffHeap.java    |    70 -
 ...rsionedStatsLRURegionEntryOffHeapIntKey.java |   390 -
 ...sionedStatsLRURegionEntryOffHeapLongKey.java |   390 -
 ...onedStatsLRURegionEntryOffHeapObjectKey.java |   383 -
 ...nedStatsLRURegionEntryOffHeapStringKey1.java |   452 -
 ...nedStatsLRURegionEntryOffHeapStringKey2.java |   493 -
 ...sionedStatsLRURegionEntryOffHeapUUIDKey.java |   394 -
 .../cache/VersionedStatsRegionEntry.java        |    34 -
 .../cache/VersionedStatsRegionEntryHeap.java    |    69 -
 .../VersionedStatsRegionEntryHeapIntKey.java    |   260 -
 .../VersionedStatsRegionEntryHeapLongKey.java   |   260 -
 .../VersionedStatsRegionEntryHeapObjectKey.java |   253 -
 ...VersionedStatsRegionEntryHeapStringKey1.java |   322 -
 ...VersionedStatsRegionEntryHeapStringKey2.java |   363 -
 .../VersionedStatsRegionEntryHeapUUIDKey.java   |   264 -
 .../cache/VersionedStatsRegionEntryOffHeap.java |    69 -
 .../VersionedStatsRegionEntryOffHeapIntKey.java |   309 -
 ...VersionedStatsRegionEntryOffHeapLongKey.java |   309 -
 ...rsionedStatsRegionEntryOffHeapObjectKey.java |   302 -
 ...sionedStatsRegionEntryOffHeapStringKey1.java |   371 -
 ...sionedStatsRegionEntryOffHeapStringKey2.java |   412 -
 ...VersionedStatsRegionEntryOffHeapUUIDKey.java |   313 -
 .../cache/VersionedThinDiskLRURegionEntry.java  |    33 -
 .../VersionedThinDiskLRURegionEntryHeap.java    |    70 -
 ...rsionedThinDiskLRURegionEntryHeapIntKey.java |   365 -
 ...sionedThinDiskLRURegionEntryHeapLongKey.java |   365 -
 ...onedThinDiskLRURegionEntryHeapObjectKey.java |   358 -
 ...nedThinDiskLRURegionEntryHeapStringKey1.java |   427 -
 ...nedThinDiskLRURegionEntryHeapStringKey2.java |   468 -
 ...sionedThinDiskLRURegionEntryHeapUUIDKey.java |   369 -
 .../VersionedThinDiskLRURegionEntryOffHeap.java |    70 -
 ...onedThinDiskLRURegionEntryOffHeapIntKey.java |   414 -
 ...nedThinDiskLRURegionEntryOffHeapLongKey.java |   414 -
 ...dThinDiskLRURegionEntryOffHeapObjectKey.java |   407 -
 ...ThinDiskLRURegionEntryOffHeapStringKey1.java |   476 -
 ...ThinDiskLRURegionEntryOffHeapStringKey2.java |   517 -
 ...nedThinDiskLRURegionEntryOffHeapUUIDKey.java |   418 -
 .../cache/VersionedThinDiskRegionEntry.java     |    33 -
 .../cache/VersionedThinDiskRegionEntryHeap.java |    70 -
 .../VersionedThinDiskRegionEntryHeapIntKey.java |   267 -
 ...VersionedThinDiskRegionEntryHeapLongKey.java |   267 -
 ...rsionedThinDiskRegionEntryHeapObjectKey.java |   260 -
 ...sionedThinDiskRegionEntryHeapStringKey1.java |   329 -
 ...sionedThinDiskRegionEntryHeapStringKey2.java |   370 -
 ...VersionedThinDiskRegionEntryHeapUUIDKey.java |   271 -
 .../VersionedThinDiskRegionEntryOffHeap.java    |    70 -
 ...rsionedThinDiskRegionEntryOffHeapIntKey.java |   316 -
 ...sionedThinDiskRegionEntryOffHeapLongKey.java |   316 -
 ...onedThinDiskRegionEntryOffHeapObjectKey.java |   309 -
 ...nedThinDiskRegionEntryOffHeapStringKey1.java |   378 -
 ...nedThinDiskRegionEntryOffHeapStringKey2.java |   419 -
 ...sionedThinDiskRegionEntryOffHeapUUIDKey.java |   320 -
 .../cache/VersionedThinLRURegionEntry.java      |    38 -
 .../cache/VersionedThinLRURegionEntryHeap.java  |    69 -
 .../VersionedThinLRURegionEntryHeapIntKey.java  |   276 -
 .../VersionedThinLRURegionEntryHeapLongKey.java |   276 -
 ...ersionedThinLRURegionEntryHeapObjectKey.java |   269 -
 ...rsionedThinLRURegionEntryHeapStringKey1.java |   338 -
 ...rsionedThinLRURegionEntryHeapStringKey2.java |   379 -
 .../VersionedThinLRURegionEntryHeapUUIDKey.java |   280 -
 .../VersionedThinLRURegionEntryOffHeap.java     |    69 -
 ...ersionedThinLRURegionEntryOffHeapIntKey.java |   325 -
 ...rsionedThinLRURegionEntryOffHeapLongKey.java |   325 -
 ...ionedThinLRURegionEntryOffHeapObjectKey.java |   318 -
 ...onedThinLRURegionEntryOffHeapStringKey1.java |   387 -
 ...onedThinLRURegionEntryOffHeapStringKey2.java |   428 -
 ...rsionedThinLRURegionEntryOffHeapUUIDKey.java |   329 -
 .../cache/VersionedThinRegionEntry.java         |    33 -
 .../cache/VersionedThinRegionEntryHeap.java     |    69 -
 .../VersionedThinRegionEntryHeapIntKey.java     |   194 -
 .../VersionedThinRegionEntryHeapLongKey.java    |   194 -
 .../VersionedThinRegionEntryHeapObjectKey.java  |   187 -
 .../VersionedThinRegionEntryHeapStringKey1.java |   256 -
 .../VersionedThinRegionEntryHeapStringKey2.java |   297 -
 .../VersionedThinRegionEntryHeapUUIDKey.java    |   198 -
 .../cache/VersionedThinRegionEntryOffHeap.java  |    69 -
 .../VersionedThinRegionEntryOffHeapIntKey.java  |   243 -
 .../VersionedThinRegionEntryOffHeapLongKey.java |   243 -
 ...ersionedThinRegionEntryOffHeapObjectKey.java |   236 -
 ...rsionedThinRegionEntryOffHeapStringKey1.java |   305 -
 ...rsionedThinRegionEntryOffHeapStringKey2.java |   346 -
 .../VersionedThinRegionEntryOffHeapUUIDKey.java |   247 -
 .../internal/cache/WrappedCallbackArgument.java |   105 -
 .../cache/WrappedRegionMembershipListener.java  |   200 -
 .../CompressedCachedDeserializable.java         |   197 -
 .../SnappyCompressedCachedDeserializable.java   |    83 -
 .../internal/cache/control/FilterByPath.java    |    66 -
 .../cache/control/HeapMemoryMonitor.java        |   881 -
 .../cache/control/InternalResourceManager.java  |   620 -
 .../internal/cache/control/MemoryEvent.java     |    93 -
 .../cache/control/MemoryThresholds.java         |   282 -
 .../cache/control/OffHeapMemoryMonitor.java     |   562 -
 .../control/PartitionRebalanceDetailsImpl.java  |   159 -
 .../cache/control/RebalanceOperationImpl.java   |   263 -
 .../cache/control/RebalanceResultsImpl.java     |   104 -
 .../internal/cache/control/RegionFilter.java    |    27 -
 .../internal/cache/control/ResourceAdvisor.java |   475 -
 .../internal/cache/control/ResourceEvent.java   |    33 -
 .../cache/control/ResourceListener.java         |    33 -
 .../cache/control/ResourceManagerStats.java     |   607 -
 .../internal/cache/control/ResourceMonitor.java |    54 -
 .../gemfire/internal/cache/delta/Delta.java     |    57 -
 .../cache/doc-files/BucketAdvisor-state.png     |   Bin 39148 -> 0 bytes
 .../internal/cache/doc-files/eventmatrix.xls    |   Bin 24576 -> 0 bytes
 .../cache/doc-files/extensible-hashing.fig      |   159 -
 .../cache/doc-files/extensible-hashing.gif      |   Bin 6605 -> 0 bytes
 .../cache/doc-files/jcache-get-flow.fig         |   349 -
 .../cache/doc-files/jcache-get-flow.pdf         |   Bin 7519 -> 0 bytes
 .../cache/doc-files/jcache-put-flow.fig         |   359 -
 .../cache/doc-files/jcache-put-flow.pdf         |   Bin 7667 -> 0 bytes
 .../doc-files/jcache-update-message-flow.fig    |   334 -
 .../doc-files/jcache-update-message-flow.pdf    |   Bin 5937 -> 0 bytes
 .../cache/doc-files/partitioned-regions.fig     |   255 -
 .../cache/doc-files/partitioned-regions.gif     |   Bin 9273 -> 0 bytes
 .../internal/cache/doc-files/properties.html    |  3937 ----
 .../cache/doc-files/region-implementation.fig   |   262 -
 .../cache/execute/AbstractExecution.java        |   635 -
 .../cache/execute/BucketMovedException.java     |    57 -
 .../cache/execute/DefaultResultCollector.java   |   108 -
 .../DistributedRegionFunctionExecutor.java      |   444 -
 .../DistributedRegionFunctionResultSender.java  |   263 -
 .../DistributedRegionFunctionResultWaiter.java  |    60 -
 .../cache/execute/FunctionContextImpl.java      |   107 -
 .../execute/FunctionExecutionNodePruner.java    |   260 -
 .../cache/execute/FunctionRemoteContext.java    |   131 -
 .../cache/execute/FunctionServiceStats.java     |   440 -
 .../internal/cache/execute/FunctionStats.java   |   536 -
 .../FunctionStreamingResultCollector.java       |   636 -
 .../cache/execute/InternalExecution.java        |   112 -
 .../execute/InternalFunctionException.java      |    78 -
 ...ternalFunctionInvocationTargetException.java |    96 -
 .../cache/execute/InternalFunctionService.java  |   199 -
 .../execute/InternalRegionFunctionContext.java  |    84 -
 .../cache/execute/InternalResultSender.java     |    35 -
 .../cache/execute/LocalResultCollector.java     |    43 -
 .../cache/execute/LocalResultCollectorImpl.java |   212 -
 .../cache/execute/MemberFunctionExecutor.java   |   283 -
 .../execute/MemberFunctionResultSender.java     |   278 -
 .../execute/MemberFunctionResultWaiter.java     |    51 -
 .../cache/execute/MemberMappedArgument.java     |    74 -
 .../execute/MultiRegionFunctionContext.java     |    50 -
 .../execute/MultiRegionFunctionContextImpl.java |    56 -
 .../execute/MultiRegionFunctionExecutor.java    |   416 -
 .../MultiRegionFunctionResultWaiter.java        |    61 -
 .../internal/cache/execute/NoResult.java        |    79 -
 .../PartitionedRegionFunctionExecutor.java      |   378 -
 .../PartitionedRegionFunctionResultSender.java  |   340 -
 .../PartitionedRegionFunctionResultWaiter.java  |   125 -
 .../execute/RegionFunctionContextImpl.java      |   160 -
 .../cache/execute/ServerFunctionExecutor.java   |   428 -
 .../execute/ServerRegionFunctionExecutor.java   |   501 -
 .../ServerToClientFunctionResultSender.java     |   319 -
 .../ServerToClientFunctionResultSender65.java   |   289 -
 .../execute/StreamingFunctionOperation.java     |   127 -
 .../cache/execute/util/CommitFunction.java      |   142 -
 .../util/FindRestEnabledServersFunction.java    |    83 -
 .../execute/util/NestedTransactionFunction.java |   117 -
 .../cache/execute/util/RollbackFunction.java    |   137 -
 .../internal/cache/extension/Extensible.java    |    43 -
 .../internal/cache/extension/Extension.java     |    53 -
 .../cache/extension/ExtensionPoint.java         |    65 -
 .../cache/extension/SimpleExtensionPoint.java   |    85 -
 .../internal/cache/ha/HAContainerMap.java       |   203 -
 .../internal/cache/ha/HAContainerRegion.java    |   170 -
 .../internal/cache/ha/HAContainerWrapper.java   |    47 -
 .../internal/cache/ha/HARegionQueue.java        |  4226 ----
 .../cache/ha/HARegionQueueAttributes.java       |   109 -
 .../internal/cache/ha/HARegionQueueStats.java   |   411 -
 .../internal/cache/ha/QueueRemovalMessage.java  |   240 -
 .../internal/cache/ha/ThreadIdentifier.java     |   330 -
 .../cache/locks/TXLessorDepartureHandler.java   |   102 -
 .../internal/cache/locks/TXLockBatch.java       |   148 -
 .../gemfire/internal/cache/locks/TXLockId.java  |    35 -
 .../internal/cache/locks/TXLockIdImpl.java      |   140 -
 .../internal/cache/locks/TXLockService.java     |   161 -
 .../internal/cache/locks/TXLockServiceImpl.java |   278 -
 .../internal/cache/locks/TXLockToken.java       |    95 -
 .../locks/TXLockUpdateParticipantsMessage.java  |   186 -
 .../locks/TXOriginatorRecoveryProcessor.java    |   312 -
 .../locks/TXRecoverGrantorMessageProcessor.java |   157 -
 .../cache/locks/TXRegionLockRequest.java        |    39 -
 .../gemfire/internal/cache/lru/EnableLRU.java   |   122 -
 .../gemfire/internal/cache/lru/HeapEvictor.java |   492 -
 .../cache/lru/HeapLRUCapacityController.java    |   335 -
 .../internal/cache/lru/HeapLRUStatistics.java   |    68 -
 .../internal/cache/lru/LRUAlgorithm.java        |   352 -
 .../cache/lru/LRUCapacityController.java        |   356 -
 .../internal/cache/lru/LRUClockNode.java        |    45 -
 .../gemfire/internal/cache/lru/LRUEntry.java    |    32 -
 .../internal/cache/lru/LRUMapCallbacks.java     |    61 -
 .../internal/cache/lru/LRUStatistics.java       |   210 -
 .../cache/lru/MemLRUCapacityController.java     |   545 -
 .../internal/cache/lru/NewLIFOClockHand.java    |    98 -
 .../internal/cache/lru/NewLRUClockHand.java     |   468 -
 .../internal/cache/lru/OffHeapEvictor.java      |    97 -
 .../gemfire/internal/cache/lru/Sizeable.java    |    63 -
 .../operations/ContainsKeyOperationContext.java |    52 -
 .../gemfire/internal/cache/package.html         |   241 -
 .../AllBucketProfilesUpdateMessage.java         |   170 -
 .../partitioned/BecomePrimaryBucketMessage.java |   332 -
 .../internal/cache/partitioned/Bucket.java      |    80 -
 .../cache/partitioned/BucketBackupMessage.java  |   137 -
 .../cache/partitioned/BucketCountLoadProbe.java |    75 -
 .../partitioned/BucketProfileUpdateMessage.java |   192 -
 .../cache/partitioned/BucketSizeMessage.java    |   286 -
 .../partitioned/ContainsKeyValueMessage.java    |   348 -
 .../cache/partitioned/CreateBucketMessage.java  |   371 -
 .../partitioned/CreateMissingBucketsTask.java   |    70 -
 .../partitioned/DeposePrimaryBucketMessage.java |   285 -
 .../cache/partitioned/DestroyMessage.java       |   621 -
 .../DestroyRegionOnDataStoreMessage.java        |   118 -
 .../partitioned/DumpAllPRConfigMessage.java     |    77 -
 .../cache/partitioned/DumpB2NRegion.java        |   343 -
 .../cache/partitioned/DumpBucketsMessage.java   |   111 -
 .../partitioned/EndBucketCreationMessage.java   |   149 -
 .../partitioned/FetchBulkEntriesMessage.java    |   670 -
 .../cache/partitioned/FetchEntriesMessage.java  |   659 -
 .../cache/partitioned/FetchEntryMessage.java    |   431 -
 .../cache/partitioned/FetchKeysMessage.java     |   574 -
 .../FetchPartitionDetailsMessage.java           |   397 -
 .../cache/partitioned/FlushMessage.java         |   154 -
 .../internal/cache/partitioned/GetMessage.java  |   669 -
 .../partitioned/IdentityRequestMessage.java     |   342 -
 .../partitioned/IdentityUpdateMessage.java      |   167 -
 .../cache/partitioned/IndexCreationMsg.java     |   687 -
 .../cache/partitioned/InterestEventMessage.java |   284 -
 .../cache/partitioned/InternalPRInfo.java       |    44 -
 .../partitioned/InternalPartitionDetails.java   |    45 -
 .../cache/partitioned/InvalidateMessage.java    |   409 -
 .../internal/cache/partitioned/LoadProbe.java   |    33 -
 .../internal/cache/partitioned/LockObject.java  |    42 -
 .../partitioned/ManageBackupBucketMessage.java  |   437 -
 .../cache/partitioned/ManageBucketMessage.java  |   419 -
 .../cache/partitioned/MoveBucketMessage.java    |   324 -
 .../cache/partitioned/OfflineMemberDetails.java |    48 -
 .../partitioned/OfflineMemberDetailsImpl.java   |    79 -
 .../cache/partitioned/PREntriesIterator.java    |    44 -
 .../PRFunctionStreamingResultCollector.java     |   436 -
 .../internal/cache/partitioned/PRLoad.java      |   154 -
 .../PRLocallyDestroyedException.java            |    40 -
 .../cache/partitioned/PRSanityCheckMessage.java |   164 -
 .../cache/partitioned/PRTombstoneMessage.java   |   182 -
 .../PRUpdateEntryVersionMessage.java            |   295 -
 .../partitioned/PartitionMemberInfoImpl.java    |   167 -
 .../cache/partitioned/PartitionMessage.java     |   849 -
 .../PartitionMessageWithDirectReply.java        |   141 -
 .../partitioned/PartitionRegionInfoImpl.java    |   139 -
 ...rtitionedRegionFunctionStreamingMessage.java |   205 -
 .../partitioned/PartitionedRegionObserver.java  |    44 -
 .../PartitionedRegionObserverAdapter.java       |    47 -
 .../PartitionedRegionObserverHolder.java        |    63 -
 .../PartitionedRegionRebalanceOp.java           |   913 -
 .../partitioned/PrimaryRequestMessage.java      |   238 -
 .../cache/partitioned/PutAllPRMessage.java      |   912 -
 .../internal/cache/partitioned/PutMessage.java  |  1380 --
 .../cache/partitioned/QueryMessage.java         |   326 -
 .../cache/partitioned/RecoveryRunnable.java     |    86 -
 .../RedundancyAlreadyMetException.java          |    42 -
 .../cache/partitioned/RedundancyLogger.java     |   395 -
 .../cache/partitioned/RegionAdvisor.java        |  1965 --
 .../partitioned/RemoteFetchKeysMessage.java     |   489 -
 .../cache/partitioned/RemoteSizeMessage.java    |   363 -
 .../cache/partitioned/RemoveAllPRMessage.java   |   823 -
 .../cache/partitioned/RemoveBucketMessage.java  |   323 -
 .../cache/partitioned/RemoveIndexesMessage.java |   545 -
 .../internal/cache/partitioned/SizeMessage.java |   379 -
 .../cache/partitioned/SizedBasedLoadProbe.java  |    83 -
 .../StreamingPartitionOperation.java            |   471 -
 .../partitioned/rebalance/BucketOperator.java   |   101 -
 .../rebalance/CompositeDirector.java            |   127 -
 .../rebalance/ExplicitMoveDirector.java         |    99 -
 .../partitioned/rebalance/FPRDirector.java      |    79 -
 .../partitioned/rebalance/MoveBuckets.java      |    63 -
 .../partitioned/rebalance/MovePrimaries.java    |    63 -
 .../partitioned/rebalance/MovePrimariesFPR.java |   105 -
 .../rebalance/ParallelBucketOperator.java       |   167 -
 .../rebalance/PartitionedRegionLoadModel.java   |  1640 --
 .../rebalance/PercentageMoveDirector.java       |   165 -
 .../rebalance/RebalanceDirector.java            |    79 -
 .../rebalance/RebalanceDirectorAdapter.java     |    39 -
 .../rebalance/RemoveOverRedundancy.java         |    82 -
 .../rebalance/SatisfyRedundancy.java            |    92 -
 .../rebalance/SatisfyRedundancyFPR.java         |    90 -
 .../rebalance/SimulatedBucketOperator.java      |    55 -
 .../cache/persistence/BackupInspector.java      |   345 -
 .../cache/persistence/BackupManager.java        |   377 -
 .../cache/persistence/BytesAndBits.java         |    51 -
 .../cache/persistence/CanonicalIdHolder.java    |   101 -
 .../CreatePersistentRegionProcessor.java        |    58 -
 .../cache/persistence/DiskExceptionHandler.java |    38 -
 .../persistence/DiskInitFileInterpreter.java    |   148 -
 .../cache/persistence/DiskInitFileParser.java   |   652 -
 .../cache/persistence/DiskRecoveryStore.java    |    64 -
 .../cache/persistence/DiskRegionView.java       |   109 -
 .../cache/persistence/DiskStoreFilter.java      |    57 -
 .../internal/cache/persistence/DiskStoreID.java |   167 -
 .../persistence/MembershipFlushRequest.java     |   141 -
 .../persistence/MembershipViewRequest.java      |   254 -
 .../internal/cache/persistence/OplogType.java   |    32 -
 .../cache/persistence/PRPersistentConfig.java   |    74 -
 .../cache/persistence/PersistenceAdvisor.java   |   190 -
 .../persistence/PersistenceAdvisorImpl.java     |  1300 --
 .../persistence/PersistenceObserverHolder.java  |   102 -
 .../cache/persistence/PersistentMemberID.java   |   171 -
 .../persistence/PersistentMemberManager.java    |   270 -
 .../persistence/PersistentMemberPattern.java    |   229 -
 .../persistence/PersistentMemberState.java      |    41 -
 .../cache/persistence/PersistentMemberView.java |   150 -
 .../persistence/PersistentMembershipView.java   |   112 -
 .../persistence/PersistentStateListener.java    |    38 -
 .../PersistentStateQueryMessage.java            |   308 -
 .../PersistentStateQueryResults.java            |    57 -
 .../PrepareNewPersistentMemberMessage.java      |   168 -
 .../RemovePersistentMemberMessage.java          |   182 -
 .../cache/persistence/RestoreScript.java        |   223 -
 .../persistence/UninterruptibleFileChannel.java |    29 -
 .../UninterruptibleRandomAccessFile.java        |   251 -
 .../persistence/query/CloseableIterator.java    |    33 -
 .../persistence/query/IdentityExtractor.java    |    26 -
 .../cache/persistence/query/IndexMap.java       |   187 -
 .../cache/persistence/query/ResultBag.java      |    60 -
 .../cache/persistence/query/ResultList.java     |    58 -
 .../cache/persistence/query/ResultMap.java      |   124 -
 .../cache/persistence/query/ResultSet.java      |    60 -
 .../persistence/query/SortKeyExtractor.java     |    21 -
 .../query/TemporaryResultSetFactory.java        |    79 -
 .../persistence/query/mock/ByteComparator.java  |    86 -
 .../mock/CachedDeserializableComparator.java    |    54 -
 .../persistence/query/mock/IndexMapImpl.java    |   278 -
 .../persistence/query/mock/ItrAdapter.java      |    62 -
 .../query/mock/NaturalComparator.java           |    33 -
 .../cache/persistence/query/mock/Pair.java      |    72 -
 .../persistence/query/mock/PairComparator.java  |    46 -
 .../persistence/query/mock/ResultListImpl.java  |    55 -
 .../query/mock/ReverseComparator.java           |    40 -
 .../query/mock/SortedResultBagImpl.java         |    64 -
 .../query/mock/SortedResultMapImpl.java         |   184 -
 .../query/mock/SortedResultSetImpl.java         |    52 -
 .../persistence/soplog/ByteComparator.java      |    56 -
 .../persistence/soplog/CursorIterator.java      |    82 -
 .../soplog/DelegatingSerializedComparator.java  |    38 -
 .../soplog/HFileStoreStatistics.java            |   205 -
 .../persistence/soplog/KeyValueIterator.java    |    43 -
 .../soplog/SortedOplogStatistics.java           |   505 -
 .../cache/persistence/soplog/SortedReader.java  |   256 -
 .../persistence/soplog/TrackedReference.java    |   154 -
 .../region/entry/RegionEntryFactoryBuilder.java |   103 -
 .../snapshot/CacheSnapshotServiceImpl.java      |   130 -
 .../internal/cache/snapshot/ClientExporter.java |   229 -
 .../cache/snapshot/ExportedRegistry.java        |   104 -
 .../internal/cache/snapshot/FlowController.java |   350 -
 .../internal/cache/snapshot/GFSnapshot.java     |   417 -
 .../internal/cache/snapshot/LocalExporter.java  |    58 -
 .../snapshot/RegionSnapshotServiceImpl.java     |   565 -
 .../cache/snapshot/SnapshotFileMapper.java      |    93 -
 .../cache/snapshot/SnapshotOptionsImpl.java     |   124 -
 .../internal/cache/snapshot/SnapshotPacket.java |   270 -
 .../cache/snapshot/WindowedExporter.java        |   401 -
 .../gemfire/internal/cache/tier/Acceptor.java   |   115 -
 .../internal/cache/tier/BatchException.java     |    72 -
 .../internal/cache/tier/CachedRegionHelper.java |   109 -
 .../internal/cache/tier/ClientHandShake.java    |    46 -
 .../gemfire/internal/cache/tier/Command.java    |    36 -
 .../internal/cache/tier/ConnectionProxy.java    |    35 -
 .../internal/cache/tier/InterestType.java       |    64 -
 .../cache/tier/InternalClientMembership.java    |   626 -
 .../internal/cache/tier/MessageType.java        |   569 -
 .../gemfire/internal/cache/tier/package.html    |    23 -
 .../cache/tier/sockets/AcceptorImpl.java        |  1872 --
 .../cache/tier/sockets/BaseCommand.java         |  1625 --
 .../cache/tier/sockets/BaseCommandQuery.java    |   578 -
 .../cache/tier/sockets/CacheClientNotifier.java |  2743 ---
 .../tier/sockets/CacheClientNotifierStats.java  |   295 -
 .../cache/tier/sockets/CacheClientProxy.java    |  3110 ---
 .../tier/sockets/CacheClientProxyStats.java     |   405 -
 .../cache/tier/sockets/CacheClientUpdater.java  |  2007 --
 .../cache/tier/sockets/CacheServerHelper.java   |   187 -
 .../cache/tier/sockets/CacheServerStats.java    |  1148 --
 .../cache/tier/sockets/ChunkedMessage.java      |   376 -
 .../tier/sockets/ClientBlacklistProcessor.java  |   174 -
 .../sockets/ClientDataSerializerMessage.java    |   256 -
 .../cache/tier/sockets/ClientHealthMonitor.java |   972 -
 .../tier/sockets/ClientInstantiatorMessage.java |   230 -
 .../tier/sockets/ClientInterestMessageImpl.java |   274 -
 .../tier/sockets/ClientMarkerMessageImpl.java   |   127 -
 .../cache/tier/sockets/ClientMessage.java       |    46 -
 .../tier/sockets/ClientPingMessageImpl.java     |   111 -
 .../tier/sockets/ClientProxyMembershipID.java   |   623 -
 .../tier/sockets/ClientTombstoneMessage.java    |   188 -
 .../cache/tier/sockets/ClientUpdateMessage.java |   188 -
 .../tier/sockets/ClientUpdateMessageImpl.java   |  1725 --
 .../cache/tier/sockets/ClientUserAuths.java     |   201 -
 .../cache/tier/sockets/CommandInitializer.java  |   342 -
 .../cache/tier/sockets/ConnectionListener.java  |    55 -
 .../tier/sockets/ConnectionListenerAdapter.java |    38 -
 .../cache/tier/sockets/HAEventWrapper.java      |   435 -
 .../internal/cache/tier/sockets/HandShake.java  |  1934 --
 .../tier/sockets/InterestResultPolicyImpl.java  |    59 -
 .../internal/cache/tier/sockets/Message.java    |  1190 --
 .../cache/tier/sockets/MessageStats.java        |    29 -
 .../cache/tier/sockets/ObjectPartList.java      |   273 -
 .../cache/tier/sockets/ObjectPartList651.java   |   166 -
 .../internal/cache/tier/sockets/Part.java       |   457 -
 .../RemoveClientFromBlacklistMessage.java       |   114 -
 .../tier/sockets/SerializedObjectPartList.java  |   132 -
 .../cache/tier/sockets/ServerConnection.java    |  2077 --
 .../tier/sockets/ServerHandShakeProcessor.java  |   464 -
 .../cache/tier/sockets/ServerQueueStatus.java   |   132 -
 .../tier/sockets/ServerResponseMatrix.java      |   141 -
 .../tier/sockets/UnregisterAllInterest.java     |    50 -
 .../cache/tier/sockets/UserAuthAttributes.java  |    81 -
 .../cache/tier/sockets/VersionedObjectList.java |   753 -
 .../cache/tier/sockets/command/AddPdxEnum.java  |    73 -
 .../cache/tier/sockets/command/AddPdxType.java  |    78 -
 .../cache/tier/sockets/command/ClearRegion.java |   150 -
 .../cache/tier/sockets/command/ClientReady.java |    76 -
 .../tier/sockets/command/CloseConnection.java   |    77 -
 .../tier/sockets/command/CommitCommand.java     |   142 -
 .../cache/tier/sockets/command/ContainsKey.java |   145 -
 .../tier/sockets/command/ContainsKey66.java     |   162 -
 .../tier/sockets/command/CreateRegion.java      |   137 -
 .../cache/tier/sockets/command/Default.java     |    52 -
 .../cache/tier/sockets/command/Destroy.java     |   219 -
 .../cache/tier/sockets/command/Destroy65.java   |   340 -
 .../cache/tier/sockets/command/Destroy70.java   |   118 -
 .../tier/sockets/command/DestroyRegion.java     |   175 -
 .../tier/sockets/command/ExecuteFunction.java   |   242 -
 .../tier/sockets/command/ExecuteFunction65.java |   273 -
 .../tier/sockets/command/ExecuteFunction66.java |   431 -
 .../tier/sockets/command/ExecuteFunction70.java |   144 -
 .../sockets/command/ExecuteRegionFunction.java  |   270 -
 .../command/ExecuteRegionFunction61.java        |   292 -
 .../command/ExecuteRegionFunction65.java        |   400 -
 .../command/ExecuteRegionFunction66.java        |   436 -
 .../command/ExecuteRegionFunctionSingleHop.java |   420 -
 .../sockets/command/GatewayReceiverCommand.java |   805 -
 .../cache/tier/sockets/command/Get70.java       |   531 -
 .../cache/tier/sockets/command/GetAll.java      |   260 -
 .../cache/tier/sockets/command/GetAll651.java   |   284 -
 .../cache/tier/sockets/command/GetAll70.java    |   293 -
 .../cache/tier/sockets/command/GetAllForRI.java |    52 -
 .../sockets/command/GetAllWithCallback.java     |   285 -
 .../command/GetClientPRMetadataCommand.java     |   114 -
 .../command/GetClientPRMetadataCommand66.java   |   105 -
 .../GetClientPartitionAttributesCommand.java    |   141 -
 .../GetClientPartitionAttributesCommand66.java  |   158 -
 .../cache/tier/sockets/command/GetEntry70.java  |    77 -
 .../tier/sockets/command/GetEntryCommand.java   |    64 -
 .../sockets/command/GetFunctionAttribute.java   |    81 -
 .../tier/sockets/command/GetPDXEnumById.java    |    73 -
 .../tier/sockets/command/GetPDXIdForEnum.java   |    74 -
 .../tier/sockets/command/GetPDXIdForType.java   |    75 -
 .../tier/sockets/command/GetPDXTypeById.java    |    73 -
 .../tier/sockets/command/GetPdxEnums70.java     |    68 -
 .../tier/sockets/command/GetPdxTypes70.java     |    67 -
 .../cache/tier/sockets/command/Invalid.java     |    49 -
 .../cache/tier/sockets/command/Invalidate.java  |   249 -
 .../tier/sockets/command/Invalidate70.java      |   107 -
 .../cache/tier/sockets/command/KeySet.java      |   193 -
 .../cache/tier/sockets/command/MakePrimary.java |    66 -
 .../tier/sockets/command/ManagementCommand.java |    39 -
 .../cache/tier/sockets/command/PeriodicAck.java |    79 -
 .../cache/tier/sockets/command/Ping.java        |    93 -
 .../cache/tier/sockets/command/Put.java         |   261 -
 .../cache/tier/sockets/command/Put61.java       |   319 -
 .../cache/tier/sockets/command/Put65.java       |   539 -
 .../cache/tier/sockets/command/Put70.java       |   126 -
 .../cache/tier/sockets/command/PutAll.java      |   268 -
 .../cache/tier/sockets/command/PutAll70.java    |   380 -
 .../cache/tier/sockets/command/PutAll80.java    |   469 -
 .../sockets/command/PutAllWithCallback.java     |    53 -
 .../sockets/command/PutUserCredentials.java     |    81 -
 .../cache/tier/sockets/command/Query.java       |   107 -
 .../cache/tier/sockets/command/Query651.java    |   137 -
 .../command/RegisterDataSerializers.java        |   114 -
 .../sockets/command/RegisterInstantiators.java  |   148 -
 .../tier/sockets/command/RegisterInterest.java  |   245 -
 .../sockets/command/RegisterInterest61.java     |   282 -
 .../sockets/command/RegisterInterestList.java   |   253 -
 .../sockets/command/RegisterInterestList61.java |   265 -
 .../sockets/command/RegisterInterestList66.java |   267 -
 .../cache/tier/sockets/command/RemoveAll.java   |   404 -
 .../tier/sockets/command/RemoveUserAuth.java    |    84 -
 .../cache/tier/sockets/command/Request.java     |   278 -
 .../tier/sockets/command/RequestEventValue.java |   176 -
 .../tier/sockets/command/RollbackCommand.java   |    90 -
 .../cache/tier/sockets/command/Size.java        |   167 -
 .../tier/sockets/command/TXFailoverCommand.java |   132 -
 .../command/TXSynchronizationCommand.java       |   209 -
 .../sockets/command/UnregisterInterest.java     |   152 -
 .../sockets/command/UnregisterInterestList.java |   171 -
 .../command/UpdateClientNotification.java       |    79 -
 .../doc-files/communication-architecture.fig    |   158 -
 .../doc-files/communication-architecture.gif    |   Bin 5485 -> 0 bytes
 .../internal/cache/tier/sockets/package.html    |    23 -
 .../cache/tx/AbstractPeerTXRegionStub.java      |    56 -
 .../internal/cache/tx/ClientTXRegionStub.java   |   158 -
 .../internal/cache/tx/ClientTXStateStub.java    |   292 -
 .../cache/tx/DistClientTXStateStub.java         |   140 -
 .../internal/cache/tx/DistTxEntryEvent.java     |   288 -
 .../internal/cache/tx/DistTxKeyInfo.java        |    54 -
 .../cache/tx/DistributedTXRegionStub.java       |   255 -
 .../cache/tx/PartitionedTXRegionStub.java       |   535 -
 .../gemfire/internal/cache/tx/TXRegionStub.java |    65 -
 .../cache/tx/TransactionalOperation.java        |   111 -
 .../cache/versions/CompactVersionHolder.java    |   105 -
 .../ConcurrentCacheModificationException.java   |    41 -
 .../cache/versions/DiskRegionVersionVector.java |   103 -
 .../internal/cache/versions/DiskVersionTag.java |    83 -
 .../internal/cache/versions/RVVException.java   |   207 -
 .../internal/cache/versions/RVVExceptionB.java  |   296 -
 .../internal/cache/versions/RVVExceptionT.java  |   283 -
 .../cache/versions/RegionVersionHolder.java     |   789 -
 .../cache/versions/RegionVersionVector.java     |  1531 --
 .../cache/versions/VMRegionVersionVector.java   |   101 -
 .../internal/cache/versions/VMVersionTag.java   |    74 -
 .../internal/cache/versions/VersionHolder.java  |    57 -
 .../internal/cache/versions/VersionSource.java  |    43 -
 .../internal/cache/versions/VersionStamp.java   |    93 -
 .../internal/cache/versions/VersionTag.java     |   548 -
 .../internal/cache/vmotion/VMotionObserver.java |    44 -
 .../cache/vmotion/VMotionObserverAdapter.java   |    49 -
 .../cache/vmotion/VMotionObserverHolder.java    |    57 -
 .../cache/wan/AbstractGatewaySender.java        |  1331 --
 .../AbstractGatewaySenderEventProcessor.java    |  1353 --
 .../AsyncEventQueueConfigurationException.java  |    73 -
 .../internal/cache/wan/BatchException70.java    |   108 -
 .../cache/wan/DistributedSystemListener.java    |    32 -
 .../cache/wan/GatewayEventFilterImpl.java       |    45 -
 .../cache/wan/GatewayReceiverException.java     |    69 -
 .../cache/wan/GatewayReceiverStats.java         |   278 -
 .../cache/wan/GatewaySenderAdvisor.java         |   747 -
 .../cache/wan/GatewaySenderAttributes.java      |   200 -
 .../GatewaySenderConfigurationException.java    |    49 -
 .../wan/GatewaySenderEventCallbackArgument.java |   201 -
 .../GatewaySenderEventCallbackDispatcher.java   |   203 -
 .../cache/wan/GatewaySenderEventDispatcher.java |    35 -
 .../cache/wan/GatewaySenderEventImpl.java       |  1286 --
 .../cache/wan/GatewaySenderException.java       |    63 -
 .../internal/cache/wan/GatewaySenderStats.java  |   744 -
 .../cache/wan/InternalGatewaySenderFactory.java |    38 -
 .../cache/wan/TransportFilterServerSocket.java  |    40 -
 .../cache/wan/TransportFilterSocket.java        |    78 -
 .../cache/wan/TransportFilterSocketFactory.java |    41 -
 .../internal/cache/wan/WANServiceProvider.java  |    76 -
 .../BucketRegionQueueUnavailableException.java  |    35 -
 ...rentParallelGatewaySenderEventProcessor.java |   376 -
 .../ConcurrentParallelGatewaySenderQueue.java   |   229 -
 .../ParallelGatewaySenderEventProcessor.java    |   245 -
 .../parallel/ParallelGatewaySenderQueue.java    |  1886 --
 .../ParallelQueueBatchRemovalMessage.java       |   279 -
 .../parallel/ParallelQueueRemovalMessage.java   |   282 -
 .../cache/wan/parallel/RREventIDResolver.java   |    54 -
 .../cache/wan/serial/BatchDestroyOperation.java |   243 -
 ...urrentSerialGatewaySenderEventProcessor.java |   386 -
 .../SerialGatewaySenderEventProcessor.java      |   848 -
 .../wan/serial/SerialGatewaySenderQueue.java    |  1300 --
 .../serial/SerialSecondaryGatewayListener.java  |   100 -
 .../internal/cache/wan/spi/WANFactory.java      |    37 -
 .../cache/xmlcache/AbstractXmlParser.java       |    95 -
 .../cache/xmlcache/AsyncEventQueueCreation.java |   222 -
 .../cache/xmlcache/BindingCreation.java         |    61 -
 .../internal/cache/xmlcache/CacheCreation.java  |  1690 --
 .../cache/xmlcache/CacheServerCreation.java     |   257 -
 .../CacheTransactionManagerCreation.java        |   145 -
 .../internal/cache/xmlcache/CacheXml.java       |  1056 -
 .../cache/xmlcache/CacheXmlGenerator.java       |  2850 ---
 .../internal/cache/xmlcache/CacheXmlParser.java |  3795 ----
 .../xmlcache/CacheXmlPropertyResolver.java      |   147 -
 .../CacheXmlPropertyResolverHelper.java         |   152 -
 .../cache/xmlcache/CacheXmlVersion.java         |   132 -
 .../cache/xmlcache/ClientCacheCreation.java     |   306 -
 .../cache/xmlcache/ClientHaQueueCreation.java   |   100 -
 .../internal/cache/xmlcache/Declarable2.java    |    39 -
 .../cache/xmlcache/DefaultEntityResolver2.java  |    75 -
 .../xmlcache/DiskStoreAttributesCreation.java   |   314 -
 .../cache/xmlcache/FunctionServiceCreation.java |    53 -
 .../cache/xmlcache/GatewayReceiverCreation.java |   190 -
 .../cache/xmlcache/GeodeEntityResolver.java     |    58 -
 .../cache/xmlcache/IndexCreationData.java       |   144 -
 .../ParallelAsyncEventQueueCreation.java        |   119 -
 .../xmlcache/ParallelGatewaySenderCreation.java |   123 -
 .../cache/xmlcache/PivotalEntityResolver.java   |    58 -
 .../cache/xmlcache/PropertyResolver.java        |    57 -
 .../xmlcache/RegionAttributesCreation.java      |  1671 --
 .../internal/cache/xmlcache/RegionCreation.java |   969 -
 .../cache/xmlcache/ResourceManagerCreation.java |   215 -
 .../xmlcache/SerialAsyncEventQueueCreation.java |   115 -
 .../xmlcache/SerialGatewaySenderCreation.java   |   115 -
 .../cache/xmlcache/SerializerCreation.java      |   108 -
 .../internal/cache/xmlcache/XmlGenerator.java   |    62 -
 .../cache/xmlcache/XmlGeneratorUtils.java       |   151 -
 .../internal/cache/xmlcache/XmlParser.java      |    58 -
 .../internal/cache/xmlcache/package.html        |    32 -
 .../gemfire/internal/concurrent/AL.java         |   127 -
 .../internal/concurrent/AtomicLong5.java        |    48 -
 .../gemfire/internal/concurrent/Atomics.java    |    67 -
 .../concurrent/CompactConcurrentHashSet2.java   |  2514 ---
 .../internal/concurrent/ConcurrentHashSet.java  |    89 -
 .../gemfire/internal/concurrent/LI.java         |    95 -
 .../internal/concurrent/MapCallback.java        |   269 -
 .../internal/concurrent/MapCallbackAdapter.java |   140 -
 .../gemfire/internal/concurrent/MapResult.java  |    43 -
 .../internal/datasource/AbstractDataSource.java |   241 -
 .../internal/datasource/AbstractPoolCache.java  |   553 -
 .../ClientConnectionFactoryWrapper.java         |    54 -
 .../internal/datasource/ConfigProperty.java     |    65 -
 .../ConfiguredDataSourceProperties.java         |   288 -
 .../ConnectionEventListenerAdaptor.java         |    76 -
 .../datasource/ConnectionPoolCache.java         |    52 -
 .../datasource/ConnectionPoolCacheImpl.java     |   104 -
 .../internal/datasource/ConnectionProvider.java |    50 -
 .../datasource/ConnectionProviderException.java |    67 -
 .../datasource/DataSourceCreateException.java   |    62 -
 .../internal/datasource/DataSourceFactory.java  |   374 -
 .../datasource/DataSourceResources.java         |    49 -
 .../FacetsJCAConnectionManagerImpl.java         |   269 -
 .../datasource/GemFireBasicDataSource.java      |   150 -
 .../datasource/GemFireConnPooledDataSource.java |   225 -
 .../GemFireConnectionPoolManager.java           |   108 -
 .../GemFireTransactionDataSource.java           |   264 -
 .../datasource/JCAConnectionManagerImpl.java    |   220 -
 .../datasource/ManagedPoolCacheImpl.java        |   104 -
 .../internal/datasource/PoolException.java      |    55 -
 .../internal/datasource/TranxPoolCacheImpl.java |   102 -
 .../gemfire/internal/doc-files/cs-maps.fig      |   150 -
 .../gemfire/internal/doc-files/cs-maps.gif      |   Bin 5951 -> 0 bytes
 .../gemfire/internal/doc-files/ds-map.fig       |   105 -
 .../gemfire/internal/doc-files/ds-map.gif       |   Bin 4867 -> 0 bytes
 .../internal/doc-files/merge-log-files.fig      |   153 -
 .../internal/doc-files/merge-log-files.gif      |   Bin 2646 -> 0 bytes
 .../i18n/AbstractStringIdResourceBundle.java    |   156 -
 .../gemfire/internal/i18n/LocalizedStrings.java |  2161 ---
 .../internal/i18n/ParentLocalizedStrings.java   |  2399 ---
 .../gemfire/internal/i18n/StringId.java         |    58 -
 .../internal/io/CompositeOutputStream.java      |   176 -
 .../internal/io/CompositePrintStream.java       |    79 -
 .../gemfire/internal/io/TeeOutputStream.java    |    93 -
 .../gemfire/internal/io/TeePrintStream.java     |    45 -
 .../gemfire/internal/jndi/ContextImpl.java      |   779 -
 .../jndi/InitialContextFactoryImpl.java         |   102 -
 .../gemfire/internal/jndi/JNDIInvoker.java      |   401 -
 .../gemfire/internal/jndi/NameParserImpl.java   |    55 -
 .../gemfire/internal/jta/GlobalTransaction.java |   732 -
 .../gemfire/internal/jta/TransactionImpl.java   |   270 -
 .../internal/jta/TransactionManagerImpl.java    |   867 -
 .../gemfire/internal/jta/TransactionUtils.java  |    59 -
 .../internal/jta/UserTransactionImpl.java       |   145 -
 .../gemstone/gemfire/internal/jta/XidImpl.java  |    94 -
 .../gemfire/internal/lang/ClassUtils.java       |   131 -
 .../gemstone/gemfire/internal/lang/Filter.java  |    30 -
 .../gemfire/internal/lang/InOutParameter.java   |   102 -
 .../gemfire/internal/lang/Initable.java         |    36 -
 .../gemfire/internal/lang/Initializer.java      |    46 -
 .../internal/lang/MutableIdentifiable.java      |    39 -
 .../gemfire/internal/lang/ObjectUtils.java      |   192 -
 .../gemfire/internal/lang/Orderable.java        |    41 -
 .../gemstone/gemfire/internal/lang/Ordered.java |    44 -
 .../gemfire/internal/lang/StringUtils.java      |   716 -
 .../gemfire/internal/lang/SystemUtils.java      |   244 -
 .../gemfire/internal/lang/ThreadUtils.java      |   131 -
 .../gemfire/internal/logging/DateFormatter.java |    94 -
 .../internal/logging/DebugLogWriter.java        |   126 -
 .../internal/logging/GemFireFormatter.java      |   104 -
 .../internal/logging/GemFireHandler.java        |    81 -
 .../gemfire/internal/logging/GemFireLevel.java  |    78 -
 .../internal/logging/InternalLogWriter.java     |   134 -
 .../internal/logging/LocalLogWriter.java        |    95 -
 .../gemfire/internal/logging/LogConfig.java     |    63 -
 .../gemfire/internal/logging/LogFileParser.java |   513 -
 .../gemfire/internal/logging/LogService.java    |   279 -
 .../internal/logging/LogWriterFactory.java      |   109 -
 .../gemfire/internal/logging/LogWriterImpl.java |  1051 -
 .../internal/logging/LoggingThreadGroup.java    |   347 -
 .../internal/logging/ManagerLogWriter.java      |   692 -
 .../gemfire/internal/logging/MergeLogFiles.java |  1008 -
 .../gemfire/internal/logging/PureLogWriter.java |   283 -
 .../logging/SecurityLocalLogWriter.java         |    87 -
 .../internal/logging/SecurityLogConfig.java     |    66 -
 .../internal/logging/SecurityLogWriter.java     |    80 -
 .../logging/SecurityManagerLogWriter.java       |    73 -
 .../gemfire/internal/logging/SortLogFile.java   |   149 -
 .../internal/logging/StandardErrorPrinter.java  |    43 -
 .../internal/logging/StandardOutputPrinter.java |    43 -
 .../internal/logging/log4j/AlertAppender.java   |   351 -
 .../internal/logging/log4j/AppenderContext.java |    80 -
 .../internal/logging/log4j/ConfigLocator.java   |    85 -
 .../internal/logging/log4j/Configurator.java    |   205 -
 .../internal/logging/log4j/FastLogger.java      |    79 -
 .../internal/logging/log4j/GemFireLogger.java   |   923 -
 .../logging/log4j/LocalizedMessage.java         |    81 -
 .../internal/logging/log4j/LogMarker.java       |    98 -
 .../logging/log4j/LogWriterAppender.java        |   212 -
 .../logging/log4j/LogWriterAppenders.java       |   299 -
 .../internal/logging/log4j/LogWriterLogger.java |  2035 --
 .../logging/log4j/ThreadIdPatternConverter.java |    61 -
 .../gemfire/internal/memcached/Command.java     |   501 -
 .../internal/memcached/CommandProcessor.java    |    42 -
 .../internal/memcached/ConnectionHandler.java   |    93 -
 .../gemfire/internal/memcached/KeyWrapper.java  |    95 -
 .../gemfire/internal/memcached/Reply.java       |   121 -
 .../internal/memcached/RequestReader.java       |   291 -
 .../internal/memcached/ResponseStatus.java      |    64 -
 .../internal/memcached/ValueWrapper.java        |   146 -
 .../memcached/commands/AbstractCommand.java     |   223 -
 .../internal/memcached/commands/AddCommand.java |    90 -
 .../memcached/commands/AddQCommand.java         |    30 -
 .../memcached/commands/AppendCommand.java       |    92 -
 .../memcached/commands/AppendQCommand.java      |    29 -
 .../internal/memcached/commands/CASCommand.java |    76 -
 .../memcached/commands/ClientError.java         |    39 -
 .../memcached/commands/DecrementCommand.java    |   173 -
 .../memcached/commands/DecrementQCommand.java   |    29 -
 .../memcached/commands/DeleteCommand.java       |   101 -
 .../memcached/commands/DeleteQCommand.java      |    29 -
 .../memcached/commands/FlushAllCommand.java     |   119 -
 .../memcached/commands/FlushAllQCommand.java    |    29 -
 .../internal/memcached/commands/GATCommand.java |    29 -
 .../memcached/commands/GATQCommand.java         |    29 -
 .../internal/memcached/commands/GetCommand.java |   224 -
 .../memcached/commands/GetKCommand.java         |    30 -
 .../memcached/commands/GetKQCommand.java        |    30 -
 .../memcached/commands/GetQCommand.java         |    38 -
 .../memcached/commands/IncrementCommand.java    |   170 -
 .../memcached/commands/IncrementQCommand.java   |    29 -
 .../memcached/commands/NoOpCommand.java         |    40 -
 .../memcached/commands/NotSupportedCommand.java |    41 -
 .../memcached/commands/PrependCommand.java      |    88 -
 .../memcached/commands/PrependQCommand.java     |    29 -
 .../memcached/commands/QuitCommand.java         |    56 -
 .../memcached/commands/QuitQCommand.java        |    29 -
 .../memcached/commands/ReplaceCommand.java      |   102 -
 .../memcached/commands/ReplaceQCommand.java     |    29 -
 .../internal/memcached/commands/SetCommand.java |    90 -
 .../memcached/commands/SetQCommand.java         |    30 -
 .../memcached/commands/StatsCommand.java        |    50 -
 .../memcached/commands/StorageCommand.java      |   218 -
 .../memcached/commands/TouchCommand.java        |   104 -
 .../memcached/commands/VerbosityCommand.java    |    48 -
 .../memcached/commands/VersionCommand.java      |    49 -
 .../modules/util/RegionConfiguration.java       |   293 -
 .../gemfire/internal/net/SocketUtils.java       |    76 -
 .../internal/offheap/AbstractStoredObject.java  |   107 -
 .../internal/offheap/ByteArrayMemoryChunk.java  |    77 -
 .../internal/offheap/ByteBufferMemoryChunk.java |    90 -
 .../gemfire/internal/offheap/Chunk.java         |   792 -
 .../gemfire/internal/offheap/ChunkFactory.java  |    51 -
 .../gemfire/internal/offheap/ChunkType.java     |    30 -
 .../internal/offheap/ChunkWithHeapForm.java     |    40 -
 .../gemfire/internal/offheap/DataAsAddress.java |   131 -
 .../gemfire/internal/offheap/DataType.java      |   269 -
 ...DisconnectingOutOfOffHeapMemoryListener.java |    77 -
 .../gemfire/internal/offheap/Fragment.java      |   139 -
 .../internal/offheap/FreeListManager.java       |   821 -
 .../gemfire/internal/offheap/GemFireChunk.java  |    47 -
 .../internal/offheap/GemFireChunkFactory.java   |    52 -
 .../internal/offheap/GemFireChunkSlice.java     |    44 -
 .../internal/offheap/LifecycleListener.java     |    98 -
 .../internal/offheap/MemoryAllocator.java       |    64 -
 .../gemfire/internal/offheap/MemoryBlock.java   |    71 -
 .../internal/offheap/MemoryBlockNode.java       |   170 -
 .../gemfire/internal/offheap/MemoryChunk.java   |    47 -
 .../offheap/MemoryChunkWithRefCount.java        |    34 -
 .../internal/offheap/MemoryInspector.java       |    43 -
 .../internal/offheap/MemoryInspectorImpl.java   |    99 -
 .../internal/offheap/MemoryUsageListener.java   |    27 -
 .../offheap/OffHeapCachedDeserializable.java    |   142 -
 .../gemfire/internal/offheap/OffHeapHelper.java |   133 -
 .../internal/offheap/OffHeapMemoryStats.java    |    54 -
 .../offheap/OffHeapRegionEntryHelper.java       |   418 -
 .../internal/offheap/OffHeapStorage.java        |   394 -
 .../offheap/OutOfOffHeapMemoryListener.java     |    44 -
 .../internal/offheap/RefCountChangeInfo.java    |   130 -
 .../internal/offheap/ReferenceCountHelper.java  |   254 -
 .../gemfire/internal/offheap/Releasable.java    |    31 -
 .../offheap/SimpleMemoryAllocatorImpl.java      |   625 -
 .../gemfire/internal/offheap/StoredObject.java  |    95 -
 .../internal/offheap/SyncChunkStack.java        |   141 -
 .../internal/offheap/UnsafeMemoryChunk.java     |   223 -
 .../offheap/annotations/OffHeapIdentifier.java  |    69 -
 .../internal/offheap/annotations/Released.java  |    49 -
 .../internal/offheap/annotations/Retained.java  |    51 -
 .../offheap/annotations/Unretained.java         |    51 -
 .../com/gemstone/gemfire/internal/package.html  |    45 -
 .../internal/process/AttachProcessUtils.java    |    57 -
 .../process/BlockingProcessStreamReader.java    |    73 -
 ...usterConfigurationNotAvailableException.java |    31 -
 .../process/ConnectionFailedException.java      |    50 -
 .../internal/process/ControlFileWatchdog.java   |   158 -
 .../process/ControlNotificationHandler.java     |    32 -
 .../internal/process/ControllableProcess.java   |   132 -
 .../process/FileAlreadyExistsException.java     |    52 -
 .../process/FileControllerParameters.java       |    33 -
 .../internal/process/FileProcessController.java |   162 -
 .../process/LocalProcessController.java         |   478 -
 .../internal/process/LocalProcessLauncher.java  |   128 -
 .../process/MBeanControllerParameters.java      |    37 -
 .../process/MBeanInvocationFailedException.java |    50 -
 .../process/MBeanProcessController.java         |   391 -
 .../internal/process/NativeProcessUtils.java    |    53 -
 .../process/NonBlockingProcessStreamReader.java |   101 -
 .../gemfire/internal/process/PidFile.java       |   169 -
 .../process/PidUnavailableException.java        |    51 -
 .../internal/process/ProcessController.java     |    61 -
 .../process/ProcessControllerFactory.java       |   102 -
 .../process/ProcessControllerParameters.java    |    30 -
 .../process/ProcessLauncherContext.java         |   176 -
 .../internal/process/ProcessStreamReader.java   |   265 -
 .../ProcessTerminatedAbnormallyException.java   |    90 -
 .../gemfire/internal/process/ProcessType.java   |    69 -
 .../gemfire/internal/process/ProcessUtils.java  |   195 -
 .../gemfire/internal/process/StartupStatus.java |    63 -
 .../internal/process/StartupStatusListener.java |    30 -
 .../UnableToControlProcessException.java        |    51 -
 .../AbstractSignalNotificationHandler.java      |   179 -
 .../gemfire/internal/process/signal/Signal.java |   128 -
 .../internal/process/signal/SignalEvent.java    |    53 -
 .../internal/process/signal/SignalListener.java |    34 -
 .../internal/process/signal/SignalType.java     |    44 -
 .../internal/redis/ByteArrayWrapper.java        |   181 -
 .../internal/redis/ByteToCommandDecoder.java    |   189 -
 .../gemstone/gemfire/internal/redis/Coder.java  |   517 -
 .../gemfire/internal/redis/Command.java         |   150 -
 .../gemfire/internal/redis/DoubleWrapper.java   |    79 -
 .../internal/redis/ExecutionHandlerContext.java |   380 -
 .../gemfire/internal/redis/Executor.java        |    38 -
 .../gemfire/internal/redis/Extendable.java      |    33 -
 .../redis/RedisCommandParserException.java      |    45 -
 .../internal/redis/RedisCommandType.java        |  2345 ---
 .../gemfire/internal/redis/RedisConstants.java  |   202 -
 .../gemfire/internal/redis/RedisDataType.java   |   118 -
 .../redis/RedisDataTypeMismatchException.java   |    39 -
 .../internal/redis/RegionCreationException.java |    39 -
 .../gemfire/internal/redis/RegionProvider.java  |   553 -
 .../redis/executor/AbstractExecutor.java        |   139 -
 .../redis/executor/AbstractScanExecutor.java    |    47 -
 .../internal/redis/executor/AuthExecutor.java   |    54 -
 .../internal/redis/executor/DBSizeExecutor.java |    31 -
 .../internal/redis/executor/DelExecutor.java    |    55 -
 .../internal/redis/executor/EchoExecutor.java   |    40 -
 .../internal/redis/executor/ExistsExecutor.java |    49 -
 .../redis/executor/ExpirationExecutor.java      |    41 -
 .../redis/executor/ExpireAtExecutor.java        |    93 -
 .../internal/redis/executor/ExpireExecutor.java |    93 -
 .../redis/executor/FlushAllExecutor.java        |    49 -
 .../internal/redis/executor/KeysExecutor.java   |    70 -
 .../internal/redis/executor/ListQuery.java      |    53 -
 .../redis/executor/PExpireAtExecutor.java       |    32 -
 .../redis/executor/PExpireExecutor.java         |    32 -
 .../internal/redis/executor/PTTLExecutor.java   |    33 -
 .../redis/executor/PersistExecutor.java         |    52 -
 .../internal/redis/executor/PingExecutor.java   |    31 -
 .../internal/redis/executor/QuitExecutor.java   |    31 -
 .../internal/redis/executor/ScanExecutor.java   |   144 -
 .../redis/executor/ShutDownExecutor.java        |    28 -
 .../internal/redis/executor/SortedSetQuery.java |   204 -
 .../internal/redis/executor/TTLExecutor.java    |    77 -
 .../internal/redis/executor/TimeExecutor.java   |    51 -
 .../internal/redis/executor/TypeExecutor.java   |    48 -
 .../internal/redis/executor/UnkownExecutor.java |    31 -
 .../redis/executor/hash/HDelExecutor.java       |    67 -
 .../redis/executor/hash/HExistsExecutor.java    |    66 -
 .../redis/executor/hash/HGetAllExecutor.java    |    63 -
 .../redis/executor/hash/HGetExecutor.java       |    62 -
 .../redis/executor/hash/HIncrByExecutor.java    |   109 -
 .../executor/hash/HIncrByFloatExecutor.java     |    99 -
 .../redis/executor/hash/HKeysExecutor.java      |    63 -
 .../redis/executor/hash/HLenExecutor.java       |    57 -
 .../redis/executor/hash/HMGetExecutor.java      |    72 -
 .../redis/executor/hash/HMSetExecutor.java      |    62 -
 .../redis/executor/hash/HScanExecutor.java      |   163 -
 .../redis/executor/hash/HSetExecutor.java       |    78 -
 .../redis/executor/hash/HSetNXExecutor.java     |    33 -
 .../redis/executor/hash/HValsExecutor.java      |    62 -
 .../redis/executor/hash/HashExecutor.java       |    39 -
 .../internal/redis/executor/hll/Bits.java       |    65 -
 .../executor/hll/CardinalityMergeException.java |    42 -
 .../redis/executor/hll/HllExecutor.java         |    38 -
 .../redis/executor/hll/HyperLogLog.java         |   360 -
 .../redis/executor/hll/HyperLogLogPlus.java     |  1068 -
 .../internal/redis/executor/hll/IBuilder.java   |    41 -
 .../redis/executor/hll/ICardinality.java        |    89 -
 .../internal/redis/executor/hll/MurmurHash.java |   234 -
 .../redis/executor/hll/PFAddExecutor.java       |    65 -
 .../redis/executor/hll/PFCountExecutor.java     |    68 -
 .../redis/executor/hll/PFMergeExecutor.java     |    72 -
 .../redis/executor/hll/RegisterSet.java         |   126 -
 .../internal/redis/executor/hll/Varint.java     |   241 -
 .../redis/executor/list/LIndexExecutor.java     |   118 -
 .../redis/executor/list/LInsertExecutor.java    |    29 -
 .../redis/executor/list/LLenExecutor.java       |    58 -
 .../redis/executor/list/LPopExecutor.java       |    34 -
 .../redis/executor/list/LPushExecutor.java      |    34 -
 .../redis/executor/list/LPushXExecutor.java     |    34 -
 .../redis/executor/list/LRangeExecutor.java     |   113 -
 .../redis/executor/list/LRemExecutor.java       |   116 -
 .../redis/executor/list/LSetExecutor.java       |   108 -
 .../redis/executor/list/LTrimExecutor.java      |   124 -
 .../redis/executor/list/ListExecutor.java       |   150 -
 .../redis/executor/list/PopExecutor.java        |   150 -
 .../redis/executor/list/PushExecutor.java       |    54 -
 .../redis/executor/list/PushXExecutor.java      |    59 -
 .../redis/executor/list/RPopExecutor.java       |    34 -
 .../redis/executor/list/RPushExecutor.java      |    34 -
 .../redis/executor/list/RPushXExecutor.java     |    34 -
 .../redis/executor/set/SAddExecutor.java        |    60 -
 .../redis/executor/set/SCardExecutor.java       |    55 -
 .../redis/executor/set/SDiffExecutor.java       |    46 -
 .../redis/executor/set/SDiffStoreExecutor.java  |    33 -
 .../redis/executor/set/SInterExecutor.java      |    49 -
 .../redis/executor/set/SInterStoreExecutor.java |    34 -
 .../redis/executor/set/SIsMemberExecutor.java   |    62 -
 .../redis/executor/set/SMembersExecutor.java    |    56 -
 .../redis/executor/set/SMoveExecutor.java       |    72 -
 .../redis/executor/set/SPopExecutor.java        |    61 -
 .../redis/executor/set/SRandMemberExecutor.java |    96 -
 .../redis/executor/set/SRemExecutor.java        |    63 -
 .../redis/executor/set/SScanExecutor.java       |   154 -
 .../redis/executor/set/SUnionExecutor.java      |    51 -
 .../redis/executor/set/SUnionStoreExecutor.java |    34 -
 .../redis/executor/set/SetExecutor.java         |    23 -
 .../redis/executor/set/SetOpExecutor.java       |   109 -
 .../executor/sortedset/SortedSetExecutor.java   |    41 -
 .../redis/executor/sortedset/ZAddExecutor.java  |    88 -
 .../redis/executor/sortedset/ZCardExecutor.java |    54 -
 .../executor/sortedset/ZCountExecutor.java      |   145 -
 .../executor/sortedset/ZIncrByExecutor.java     |    77 -
 .../executor/sortedset/ZLexCountExecutor.java   |   143 -
 .../executor/sortedset/ZRangeByLexExecutor.java |   209 -
 .../sortedset/ZRangeByScoreExecutor.java        |   209 -
 .../executor/sortedset/ZRangeExecutor.java      |   125 -
 .../redis/executor/sortedset/ZRankExecutor.java |    98 -
 .../redis/executor/sortedset/ZRemExecutor.java  |    64 -
 .../sortedset/ZRemRangeByLexExecutor.java       |   153 -
 .../sortedset/ZRemRangeByRankExecutor.java      |   121 -
 .../sortedset/ZRemRangeByScoreExecutor.java     |   143 -
 .../sortedset/ZRevRangeByScoreExecutor.java     |    33 -
 .../executor/sortedset/ZRevRangeExecutor.java   |    34 -
 .../executor/sortedset/ZRevRankExecutor.java    |    32 -
 .../redis/executor/sortedset/ZScanExecutor.java |   161 -
 .../executor/sortedset/ZScoreExecutor.java      |    59 -
 .../redis/executor/string/AppendExecutor.java   |    69 -
 .../redis/executor/string/BitCountExecutor.java |    97 -
 .../redis/executor/string/BitOpExecutor.java    |   153 -
 .../redis/executor/string/BitPosExecutor.java   |   134 -
 .../redis/executor/string/DecrByExecutor.java   |   110 -
 .../redis/executor/string/DecrExecutor.java     |    95 -
 .../redis/executor/string/GetBitExecutor.java   |    82 -
 .../redis/executor/string/GetExecutor.java      |    51 -
 .../redis/executor/string/GetRangeExecutor.java |    98 -
 .../redis/executor/string/GetSetExecutor.java   |    59 -
 .../redis/executor/string/IncrByExecutor.java   |   107 -
 .../executor/string/IncrByFloatExecutor.java    |   122 -
 .../redis/executor/string/IncrExecutor.java     |    91 -
 .../redis/executor/string/MGetExecutor.java     |    73 -
 .../redis/executor/string/MSetExecutor.java     |    64 -
 .../redis/executor/string/MSetNXExecutor.java   |    88 -
 .../redis/executor/string/PSetEXExecutor.java   |    34 -
 .../redis/executor/string/SetBitExecutor.java   |   106 -
 .../redis/executor/string/SetEXExecutor.java    |    88 -
 .../redis/executor/string/SetExecutor.java      |   154 -
 .../redis/executor/string/SetNXExecutor.java    |    60 -
 .../redis/executor/string/SetRangeExecutor.java |    96 -
 .../redis/executor/string/StringExecutor.java   |    45 -
 .../redis/executor/string/StrlenExecutor.java   |    56 -
 .../executor/transactions/DiscardExecutor.java  |    42 -
 .../executor/transactions/ExecExecutor.java     |    88 -
 .../executor/transactions/MultiExecutor.java    |    47 -
 .../transactions/TransactionExecutor.java       |    23 -
 .../executor/transactions/UnwatchExecutor.java  |    31 -
 .../executor/transactions/WatchExecutor.java    |    31 -
 .../redis/org/apache/hadoop/fs/GlobPattern.java |   164 -
 .../internal/security/AuthorizeRequest.java     |   757 -
 .../internal/security/AuthorizeRequestPP.java   |   250 -
 .../security/FilterPostAuthorization.java       |   235 -
 .../security/FilterPreAuthorization.java        |   160 -
 .../internal/security/ObjectWithAuthz.java      |    69 -
 .../gemfire/internal/security/package.html      |    25 -
 .../internal/sequencelog/EntryLogger.java       |   210 -
 .../gemfire/internal/sequencelog/GraphType.java |    60 -
 .../internal/sequencelog/MembershipLogger.java  |    47 -
 .../internal/sequencelog/MessageLogger.java     |    40 -
 .../internal/sequencelog/RegionLogger.java      |    88 -
 .../internal/sequencelog/SequenceLogger.java    |    63 -
 .../sequencelog/SequenceLoggerImpl.java         |   149 -
 .../internal/sequencelog/Transition.java        |    88 -
 .../gemfire/internal/sequencelog/io/Filter.java |    32 -
 .../sequencelog/io/GemfireLogConverter.java     |   251 -
 .../internal/sequencelog/io/GraphReader.java    |    90 -
 .../sequencelog/io/InputStreamReader.java       |   103 -
 .../sequencelog/io/OutputStreamAppender.java    |   117 -
 .../internal/sequencelog/model/Edge.java        |   111 -
 .../internal/sequencelog/model/Graph.java       |   105 -
 .../internal/sequencelog/model/GraphID.java     |    95 -
 .../sequencelog/model/GraphReaderCallback.java  |    37 -
 .../internal/sequencelog/model/GraphSet.java    |   165 -
 .../internal/sequencelog/model/Vertex.java      |   124 -
 .../visualization/text/TextDisplay.java         |    85 -
 .../gemfire/internal/shared/NativeCalls.java    |   633 -
 .../internal/shared/NativeCallsJNAImpl.java     |  1217 --
 .../internal/shared/NativeErrorException.java   |    43 -
 .../gemfire/internal/shared/OSType.java         |    93 -
 .../internal/shared/StringPrintWriter.java      |   236 -
 .../internal/shared/TCPSocketOptions.java       |    48 -
 .../internal/size/CachingSingleObjectSizer.java |    51 -
 .../size/InstrumentationSingleObjectSizer.java  |    42 -
 .../gemfire/internal/size/ObjectGraphSizer.java |   252 -
 .../gemfire/internal/size/ObjectTraverser.java  |   205 -
 .../internal/size/ReflectionObjectSizer.java    |    94 -
 .../size/ReflectionSingleObjectSizer.java       |   183 -
 .../internal/size/SingleObjectSizer.java        |    28 -
 .../internal/size/SizeClassOnceObjectSizer.java |    96 -
 .../gemfire/internal/size/SizeOfUtil0.java      |    33 -
 .../internal/size/WellKnownClassSizer.java      |    60 -
 .../internal/statistics/CounterMonitor.java     |    58 -
 .../internal/statistics/GaugeMonitor.java       |    53 -
 .../statistics/IgnoreResourceException.java     |    65 -
 .../MapBasedStatisticsNotification.java         |    88 -
 .../internal/statistics/ResourceInstance.java   |   120 -
 .../internal/statistics/ResourceType.java       |    70 -
 .../internal/statistics/SampleCollector.java    |   786 -
 .../internal/statistics/SampleHandler.java      |    72 -
 .../internal/statistics/SimpleStatisticId.java  |    67 -
 .../statistics/StatArchiveDescriptor.java       |   134 -
 .../internal/statistics/StatArchiveHandler.java |   676 -
 .../statistics/StatArchiveHandlerConfig.java    |    67 -
 .../internal/statistics/StatMonitorHandler.java |   336 -
 .../internal/statistics/StatisticId.java        |    39 -
 .../statistics/StatisticNotFoundException.java  |    62 -
 .../internal/statistics/StatisticsListener.java |    27 -
 .../internal/statistics/StatisticsMonitor.java  |   166 -
 .../statistics/StatisticsNotification.java      |    66 -
 .../internal/statistics/StatisticsSampler.java  |    57 -
 .../internal/statistics/ValueMonitor.java       |   133 -
 .../gemfire/internal/statistics/package.html    |    31 -
 .../stats50/Atomic50StatisticsImpl.java         |   497 -
 .../gemfire/internal/stats50/VMStats50.java     |   703 -
 .../gemfire/internal/tcp/BaseMsgStreamer.java   |    65 -
 .../gemstone/gemfire/internal/tcp/Buffers.java  |   170 -
 .../internal/tcp/ByteBufferInputStream.java     |  1022 -
 .../gemfire/internal/tcp/ConnectExceptions.java |    93 -
 .../gemfire/internal/tcp/Connection.java        |  4153 ----
 .../internal/tcp/ConnectionException.java       |    38 -
 .../gemfire/internal/tcp/ConnectionTable.java   |  1428 --
 .../gemfire/internal/tcp/DirectReplySender.java |   105 -
 .../tcp/ImmutableByteBufferInputStream.java     |    85 -
 .../internal/tcp/MemberShunnedException.java    |    50 -
 .../gemfire/internal/tcp/MsgDestreamer.java     |   536 -
 .../gemfire/internal/tcp/MsgIdGenerator.java    |    54 -
 .../gemfire/internal/tcp/MsgOutputStream.java   |   427 -
 .../gemfire/internal/tcp/MsgReader.java         |   129 -
 .../gemfire/internal/tcp/MsgStreamer.java       |  1004 -
 .../gemfire/internal/tcp/MsgStreamerList.java   |   169 -
 .../gemfire/internal/tcp/NIOMsgReader.java      |   113 -
 .../gemfire/internal/tcp/OioMsgReader.java      |    43 -
 .../internal/tcp/ReenteredConnectException.java |    51 -
 .../gemfire/internal/tcp/ServerDelegate.java    |    47 -
 .../gemfire/internal/tcp/TCPConduit.java        |  1207 --
 .../tcp/VersionedByteBufferInputStream.java     |    79 -
 .../internal/tcp/VersionedMsgStreamer.java      |    60 -
 .../gemstone/gemfire/internal/tcp/package.html  |   138 -
 .../internal/util/AbortableTaskService.java     |   174 -
 .../gemfire/internal/util/ArrayUtils.java       |   369 -
 .../gemfire/internal/util/BlobHelper.java       |   195 -
 .../gemfire/internal/util/Breadcrumbs.java      |   265 -
 .../gemstone/gemfire/internal/util/Bytes.java   |   259 -
 .../gemfire/internal/util/Callable.java         |    48 -
 .../gemfire/internal/util/CollectionUtils.java  |   282 -
 .../gemfire/internal/util/DebuggerSupport.java  |    65 -
 .../gemfire/internal/util/DelayedAction.java    |    65 -
 .../com/gemstone/gemfire/internal/util/Hex.java |    57 -
 .../gemstone/gemfire/internal/util/IOUtils.java |   347 -
 .../internal/util/JavaCommandBuilder.java       |   123 -
 .../gemfire/internal/util/LogFileUtils.java     |   178 -
 .../internal/util/ObjectIntProcedure.java       |    30 -
 .../gemfire/internal/util/PasswordUtil.java     |   132 -
 .../gemfire/internal/util/PluckStacks.java      |   523 -
 .../internal/util/SingletonCallable.java        |    87 -
 .../gemfire/internal/util/SingletonValue.java   |   318 -
 .../internal/util/StackTraceCollector.java      |   169 -
 .../gemfire/internal/util/StopWatch.java        |    80 -
 .../internal/util/SunAPINotFoundException.java  |    46 -
 .../gemfire/internal/util/TransformUtils.java   |   132 -
 .../gemfire/internal/util/Transformer.java      |    33 -
 .../gemfire/internal/util/Versionable.java      |    37 -
 .../internal/util/VersionedArrayList.java       |   346 -
 .../util/concurrent/CopyOnWriteHashMap.java     |   209 -
 .../util/concurrent/CopyOnWriteWeakHashMap.java |    98 -
 .../CustomEntryConcurrentHashMap.java           |  2679 ---
 .../internal/util/concurrent/FutureResult.java  |    93 -
 .../util/concurrent/ReentrantSemaphore.java     |   161 -
 .../util/concurrent/SemaphoreReadWriteLock.java |   217 -
 .../util/concurrent/StoppableCondition.java     |   113 -
 .../concurrent/StoppableCountDownLatch.java     |    98 -
 .../concurrent/StoppableCountDownOrUpLatch.java |   211 -
 .../concurrent/StoppableNonReentrantLock.java   |    92 -
 .../util/concurrent/StoppableReadWriteLock.java |    35 -
 .../util/concurrent/StoppableReentrantLock.java |   131 -
 .../StoppableReentrantReadWriteLock.java        |   244 -
 .../internal/util/doc-files/call-stack.fig      |    34 -
 .../internal/util/doc-files/class-loaders.fig   |    49 -
 .../lang/AttachAPINotFoundException.java        |    67 -
 .../com/gemstone/gemfire/lang/Identifiable.java |    40 -
 .../management/AlreadyRunningException.java     |    46 -
 .../management/AsyncEventQueueMXBean.java       |   118 -
 .../gemfire/management/CacheServerMXBean.java   |   397 -
 .../gemfire/management/ClientHealthStatus.java  |   346 -
 .../gemfire/management/ClientQueueDetail.java   |   165 -
 .../DependenciesNotFoundException.java          |    58 -
 .../gemfire/management/DiskBackupResult.java    |    68 -
 .../gemfire/management/DiskBackupStatus.java    |    73 -
 .../gemfire/management/DiskMetrics.java         |   124 -
 .../gemfire/management/DiskStoreMXBean.java     |   212 -
 .../DistributedLockServiceMXBean.java           |    66 -
 .../management/DistributedRegionMXBean.java     |   317 -
 .../management/DistributedSystemMXBean.java     |   696 -
 .../management/EvictionAttributesData.java      |   112 -
 .../FixedPartitionAttributesData.java           |    95 -
 .../management/GatewayReceiverMXBean.java       |   211 -
 .../gemfire/management/GatewaySenderMXBean.java |   249 -
 .../gemfire/management/GemFireProperties.java   |  1589 --
 .../gemfire/management/JMXNotificationType.java |   208 -
 .../management/JMXNotificationUserData.java     |    46 -
 .../gemstone/gemfire/management/JVMMetrics.java |   151 -
 .../gemfire/management/LocatorMXBean.java       |    76 -
 .../gemfire/management/LockServiceMXBean.java   |    85 -
 .../gemfire/management/ManagementException.java |    88 -
 .../gemfire/management/ManagementService.java   |   427 -
 .../gemfire/management/ManagerMXBean.java       |    83 -
 .../gemfire/management/MemberMXBean.java        |   855 -
 .../management/MembershipAttributesData.java    |   113 -
 .../gemfire/management/NetworkMetrics.java      |    59 -
 .../gemstone/gemfire/management/OSMetrics.java  |   231 -
 .../management/PartitionAttributesData.java     |   146 -
 .../management/PersistentMemberDetails.java     |    68 -
 .../management/RegionAttributesData.java        |   438 -
 .../gemfire/management/RegionMXBean.java        |   360 -
 .../gemfire/management/ServerLoadData.java      |    93 -
 .../gemfire/management/cli/CliMetaData.java     |   104 -
 .../cli/CommandProcessingException.java         |   125 -
 .../gemfire/management/cli/CommandService.java  |   205 -
 .../management/cli/CommandServiceException.java |    68 -
 .../management/cli/CommandStatement.java        |    58 -
 .../gemfire/management/cli/ConverterHint.java   |    52 -
 .../gemstone/gemfire/management/cli/Result.java |   130 -
 .../gemfire/management/cli/package.html         |    23 -
 .../gemfire/management/internal/AgentUtil.java  |   134 -
 .../management/internal/AlertDetails.java       |   162 -
 .../management/internal/ArrayConverter.java     |    82 -
 .../internal/BaseManagementService.java         |   185 -
 .../internal/CollectionConverter.java           |   110 -
 .../management/internal/CompositeConverter.java |   146 -
 .../management/internal/EnumConverter.java      |    50 -
 .../management/internal/FederatingManager.java  |   626 -
 .../internal/FederationComponent.java           |   306 -
 .../management/internal/FilterChain.java        |    59 -
 .../management/internal/FilterParam.java        |    71 -
 .../management/internal/IdentityConverter.java  |    47 -
 .../management/internal/JettyHelper.java        |   228 -
 .../management/internal/JmxManagerAdvisee.java  |   149 -
 .../management/internal/JmxManagerAdvisor.java  |   384 -
 .../management/internal/JmxManagerLocator.java  |   241 -
 .../internal/JmxManagerLocatorRequest.java      |   118 -
 .../internal/JmxManagerLocatorResponse.java     |   104 -
 .../management/internal/LocalFilterChain.java   |    63 -
 .../management/internal/LocalManager.java       |   466 -
 .../management/internal/MBeanJMXAdapter.java    |   621 -
 .../management/internal/MBeanProxyFactory.java  |   355 -
 .../internal/MBeanProxyInfoRepository.java      |   171 -
 .../internal/MBeanProxyInvocationHandler.java   |   546 -
 .../internal/MXBeanProxyInvocationHandler.java  |   260 -
 .../management/internal/ManagementAgent.java    |   516 -
 .../internal/ManagementCacheListener.java       |   122 -
 .../internal/ManagementConstants.java           |   187 -
 .../management/internal/ManagementFunction.java |   173 -
 .../internal/ManagementMembershipListener.java  |    94 -
 .../internal/ManagementResourceRepo.java        |   262 -
 .../management/internal/ManagementStrings.java  |   153 -
 .../gemfire/management/internal/Manager.java    |    90 -
 .../internal/ManagerStartupMessage.java         |    76 -
 .../management/internal/MemberMessenger.java    |   105 -
 .../internal/MonitoringRegionCacheListener.java |   116 -
 .../internal/NotificationBroadCasterProxy.java  |    38 -
 .../internal/NotificationCacheListener.java     |   120 -
 .../management/internal/NotificationHub.java    |   206 -
 .../internal/NotificationHubClient.java         |    77 -
 .../management/internal/NotificationKey.java    |    66 -
 .../gemfire/management/internal/OpenMethod.java |   190 -
 .../management/internal/OpenTypeConverter.java  |  1018 -
 .../management/internal/OpenTypeUtil.java       |   117 -
 .../gemfire/management/internal/ProxyInfo.java  |    83 -
 .../management/internal/ProxyInterface.java     |    40 -
 .../management/internal/ProxyListener.java      |   137 -
 .../management/internal/RemoteFilterChain.java  |    95 -
 .../gemfire/management/internal/RestAgent.java  |   217 -
 .../gemfire/management/internal/SSLUtil.java    |    82 -
 .../management/internal/StringBasedFilter.java  |   122 -
 .../internal/SystemManagementService.java       |   837 -
 .../management/internal/TableConverter.java     |   102 -
 .../internal/beans/AggregateHandler.java        |    92 -
 .../internal/beans/AsyncEventQueueMBean.java    |   113 -
 .../beans/AsyncEventQueueMBeanBridge.java       |   121 -
 .../internal/beans/BeanUtilFuncs.java           |   393 -
 .../internal/beans/CacheServerBridge.java       |   772 -
 .../internal/beans/CacheServerMBean.java        |   317 -
 .../internal/beans/DiskRegionBridge.java        |   138 -
 .../internal/beans/DiskStoreMBean.java          |   182 -
 .../internal/beans/DiskStoreMBeanBridge.java    |   288 -
 .../beans/DistributedLockServiceBridge.java     |   227 -
 .../beans/DistributedLockServiceMBean.java      |    68 -
 .../internal/beans/DistributedRegionBridge.java |   683 -
 .../internal/beans/DistributedRegionMBean.java  |   330 -
 .../internal/beans/DistributedSystemBridge.java |  1888 --
 .../internal/beans/DistributedSystemMBean.java  |   461 -
 .../internal/beans/GatewayReceiverMBean.java    |   220 -
 .../beans/GatewayReceiverMBeanBridge.java       |   224 -
 .../internal/beans/GatewaySenderMBean.java      |   226 -
 .../beans/GatewaySenderMBeanBridge.java         |   293 -
 .../internal/beans/HDFSRegionBridge.java        |   174 -
 .../management/internal/beans/LocatorMBean.java |    79 -
 .../internal/beans/LocatorMBeanBridge.java      |   157 -
 .../internal/beans/LockServiceMBean.java        |    94 -
 .../internal/beans/LockServiceMBeanBridge.java  |   129 -
 .../internal/beans/MBeanAggregator.java         |   435 -
 .../internal/beans/ManagementAdapter.java       |  1134 --
 .../internal/beans/ManagementListener.java      |   215 -
 .../management/internal/beans/ManagerMBean.java |    71 -
 .../internal/beans/ManagerMBeanBridge.java      |    80 -
 .../management/internal/beans/MemberMBean.java  |   685 -
 .../internal/beans/MemberMBeanBridge.java       |  1999 --
 .../internal/beans/MetricsCalculator.java       |   138 -
 .../internal/beans/PartitionedRegionBridge.java |   317 -
 .../internal/beans/QueryDataFunction.java       |   613 -
 .../management/internal/beans/RegionMBean.java  |   323 -
 .../internal/beans/RegionMBeanBridge.java       |   599 -
 .../beans/RegionMBeanCompositeDataFactory.java  |   229 -
 .../internal/beans/SequenceNumber.java          |    50 -
 .../management/internal/beans/ServerBridge.java |   184 -
 .../stats/AggregateRegionStatsMonitor.java      |   298 -
 .../internal/beans/stats/GCStatsMonitor.java    |    94 -
 .../GatewayReceiverClusterStatsMonitor.java     |    80 -
 .../stats/GatewaySenderClusterStatsMonitor.java |    93 -
 .../stats/IntegerStatsDeltaAggregator.java      |    93 -
 .../beans/stats/LongStatsDeltaAggregator.java   |    92 -
 .../internal/beans/stats/MBeanStatsMonitor.java |   120 -
 .../beans/stats/MemberClusterStatsMonitor.java  |   255 -
 .../beans/stats/MemberLevelDiskMonitor.java     |   311 -
 .../beans/stats/RegionClusterStatsMonitor.java  |   475 -
 .../beans/stats/ServerClusterStatsMonitor.java  |    86 -
 .../internal/beans/stats/StatType.java          |    29 -
 .../internal/beans/stats/StatsAggregator.java   |   305 -
 .../beans/stats/StatsAverageLatency.java        |    55 -
 .../internal/beans/stats/StatsKey.java          |   355 -
 .../internal/beans/stats/StatsLatency.java      |    70 -
 .../internal/beans/stats/StatsRate.java         |    92 -
 .../internal/beans/stats/VMStatsMonitor.java    |   129 -
 .../cli/AbstractCliAroundInterceptor.java       |   133 -
 .../internal/cli/CliAroundInterceptor.java      |    36 -
 .../management/internal/cli/CliUtil.java        |   758 -
 .../management/internal/cli/CommandManager.java |   632 -
 .../management/internal/cli/CommandRequest.java |   134 -
 .../internal/cli/CommandResponse.java           |   350 -
 .../internal/cli/CommandResponseBuilder.java    |    88 -
 .../internal/cli/CommandResponseWriter.java     |    66 -
 .../internal/cli/GfshParseResult.java           |   102 -
 .../management/internal/cli/GfshParser.java     |  1520 --
 .../management/internal/cli/Launcher.java       |   315 -
 .../management/internal/cli/LogWrapper.java     |   440 -
 .../internal/cli/MultipleValueAdapter.java      |    39 -
 .../internal/cli/MultipleValueConverter.java    |    60 -
 .../internal/cli/annotation/CliArgument.java    |    88 -
 .../cli/commands/AbstractCommandsSupport.java   |   197 -
 .../internal/cli/commands/ClientCommands.java   |   328 -
 .../internal/cli/commands/ConfigCommands.java   |   484 -
 .../CreateAlterDestroyRegionCommands.java       |  1200 --
 .../internal/cli/commands/DataCommands.java     |  1402 --
 .../internal/cli/commands/DeployCommands.java   |   345 -
 .../cli/commands/DiskStoreCommands.java         |  1450 --
 .../cli/commands/DurableClientCommands.java     |   430 -
 ...ExportImportSharedConfigurationCommands.java |   292 -
 .../internal/cli/commands/FunctionCommands.java |   642 -
 .../internal/cli/commands/GfshHelpCommands.java |   106 -
 .../internal/cli/commands/IndexCommands.java    |   674 -
 .../cli/commands/LauncherLifecycleCommands.java |  2803 ---
 .../internal/cli/commands/MemberCommands.java   |   204 -
 .../cli/commands/MiscellaneousCommands.java     |  2128 --
 .../internal/cli/commands/PDXCommands.java      |   286 -
 .../internal/cli/commands/QueueCommands.java    |   281 -
 .../internal/cli/commands/RegionCommands.java   |   493 -
 .../internal/cli/commands/ShellCommands.java    |  1081 --
 .../internal/cli/commands/StatusCommands.java   |    92 -
 .../internal/cli/commands/WanCommands.java      |  1281 --
 .../cli/commands/dto/RegionAttributesInfo.java  |   164 -
 .../cli/commands/dto/RegionDetails.java         |   231 -
 .../cli/commands/dto/RegionMemberDetails.java   |   199 -
 .../cli/converters/BooleanConverter.java        |    54 -
 .../ClusterMemberIdNameConverter.java           |    80 -
 .../converters/ConnectionEndpointConverter.java |   145 -
 .../internal/cli/converters/DirConverter.java   |   174 -
 .../cli/converters/DirPathConverter.java        |   143 -
 .../cli/converters/DiskStoreNameConverter.java  |    93 -
 .../internal/cli/converters/EnumConverter.java  |    67 -
 .../cli/converters/FilePathConverter.java       |   136 -
 .../cli/converters/FilePathStringConverter.java |   132 -
 .../converters/GatewayReceiverIdsConverter.java |    73 -
 .../converters/GatewaySenderIdConverter.java    |    81 -
 .../internal/cli/converters/HelpConverter.java  |    73 -
 .../cli/converters/HintTopicConverter.java      |    74 -
 .../cli/converters/IndexTypeConverter.java      |    57 -
 .../LocatorDiscoveryConfigConverter.java        |    80 -
 .../cli/converters/LocatorIdNameConverter.java  |    79 -
 .../cli/converters/LogLevelConverter.java       |    64 -
 .../cli/converters/MemberGroupConverter.java    |    83 -
 .../cli/converters/MemberIdNameConverter.java   |    82 -
 .../cli/converters/RegionPathConverter.java     |   100 -
 .../cli/converters/StringArrayConverter.java    |    59 -
 .../cli/converters/StringListConverter.java     |    60 -
 .../cli/domain/AsyncEventQueueDetails.java      |    77 -
 .../internal/cli/domain/CacheServerInfo.java    |    72 -
 .../cli/domain/ConnectToLocatorResult.java      |    56 -
 .../internal/cli/domain/DataCommandRequest.java |   214 -
 .../internal/cli/domain/DataCommandResult.java  |   904 -
 .../internal/cli/domain/DiskStoreDetails.java   |   692 -
 .../cli/domain/DurableCqNamesResult.java        |    64 -
 .../cli/domain/EvictionAttributesInfo.java      |   100 -
 .../domain/FixedPartitionAttributesInfo.java    |    70 -
 .../internal/cli/domain/IndexDetails.java       |   330 -
 .../internal/cli/domain/IndexInfo.java          |   103 -
 .../cli/domain/MemberConfigurationInfo.java     |   118 -
 .../internal/cli/domain/MemberInformation.java  |   202 -
 .../internal/cli/domain/MemberResult.java       |   114 -
 .../cli/domain/PartitionAttributesInfo.java     |   171 -
 .../cli/domain/RegionAttributesInfo.java        |   492 -
 .../internal/cli/domain/RegionDescription.java  |   247 -
 .../cli/domain/RegionDescriptionPerMember.java  |   137 -
 .../internal/cli/domain/RegionInformation.java  |   157 -
 .../cli/domain/StackTracesPerMember.java        |    39 -
 .../cli/domain/SubscriptionQueueSizeResult.java |    51 -
 .../cli/exceptions/CliCommandException.java     |    65 -
 .../exceptions/CliCommandInvalidException.java  |    33 -
 .../CliCommandMultiModeOptionException.java     |    48 -
 .../CliCommandNotAvailableException.java        |    33 -
 .../exceptions/CliCommandOptionException.java   |    53 -
 ...CommandOptionHasMultipleValuesException.java |    33 -
 .../CliCommandOptionInvalidException.java       |    34 -
 .../CliCommandOptionMissingException.java       |    35 -
 .../CliCommandOptionNotApplicableException.java |    36 -
 ...liCommandOptionValueConversionException.java |    36 -
 .../CliCommandOptionValueException.java         |    42 -
 .../CliCommandOptionValueMissingException.java  |    36 -
 .../internal/cli/exceptions/CliException.java   |    21 -
 .../exceptions/CreateSubregionException.java    |    41 -
 .../cli/exceptions/ExceptionGenerator.java      |    46 -
 .../cli/exceptions/ExceptionHandler.java        |   106 -
 .../cli/exceptions/IndexNotFoundException.java  |    35 -
 .../functions/AlterRuntimeConfigFunction.java   |    96 -
 .../cli/functions/ChangeLogLevelFunction.java   |    96 -
 .../cli/functions/CliFunctionResult.java        |   248 -
 .../functions/CloseDurableClientFunction.java   |    77 -
 .../cli/functions/CloseDurableCqFunction.java   |    79 -
 .../cli/functions/ContunuousQueryFunction.java  |   152 -
 .../CreateAsyncEventQueueFunction.java          |   183 -
 .../functions/CreateDefinedIndexesFunction.java |    91 -
 .../cli/functions/CreateDiskStoreFunction.java  |    91 -
 .../cli/functions/CreateIndexFunction.java      |   100 -
 .../cli/functions/DataCommandFunction.java      |  1048 -
 .../internal/cli/functions/DeployFunction.java  |   115 -
 .../functions/DescribeDiskStoreFunction.java    |   259 -
 .../functions/DescribeHDFSStoreFunction.java    |    87 -
 .../cli/functions/DestroyDiskStoreFunction.java |   103 -
 .../cli/functions/DestroyIndexFunction.java     |   122 -
 .../cli/functions/ExportConfigFunction.java     |   132 -
 .../cli/functions/ExportDataFunction.java       |    74 -
 .../ExportSharedConfigurationFunction.java      |    72 -
 .../FetchRegionAttributesFunction.java          |   144 -
 .../FetchSharedConfigurationStatusFunction.java |    54 -
 .../functions/GarbageCollectionFunction.java    |    93 -
 .../GatewayReceiverCreateFunction.java          |   226 -
 .../functions/GatewayReceiverFunctionArgs.java  |    80 -
 .../functions/GatewaySenderCreateFunction.java  |   219 -
 .../functions/GatewaySenderFunctionArgs.java    |   144 -
 .../GetMemberConfigInformationFunction.java     |   213 -
 .../functions/GetMemberInformationFunction.java |   150 -
 .../functions/GetRegionDescriptionFunction.java |    62 -
 .../cli/functions/GetRegionsFunction.java       |    75 -
 .../cli/functions/GetStackTracesFunction.java   |    54 -
 .../GetSubscriptionQueueSizeFunction.java       |   101 -
 .../cli/functions/ImportDataFunction.java       |    70 -
 ...ortSharedConfigurationArtifactsFunction.java |    77 -
 .../functions/ListAsyncEventQueuesFunction.java |   109 -
 .../cli/functions/ListDeployedFunction.java     |   106 -
 .../cli/functions/ListDiskStoresFunction.java   |    85 -
 .../functions/ListDurableCqNamesFunction.java   |    99 -
 .../cli/functions/ListFunctionFunction.java     |   115 -
 .../cli/functions/ListIndexFunction.java        |    74 -
 .../LoadSharedConfigurationFunction.java        |    65 -
 .../internal/cli/functions/LogFileFunction.java |   298 -
 .../cli/functions/MemberRegionFunction.java     |    85 -
 .../cli/functions/MembersForRegionFunction.java |    96 -
 .../internal/cli/functions/NetstatFunction.java |   272 -
 .../cli/functions/RebalanceFunction.java        |   124 -
 .../cli/functions/RegionAlterFunction.java      |   344 -
 .../cli/functions/RegionCreateFunction.java     |   415 -
 .../cli/functions/RegionDestroyFunction.java    |    85 -
 .../cli/functions/RegionFunctionArgs.java       |   764 -
 .../cli/functions/ShutDownFunction.java         |    87 -
 .../cli/functions/UndeployFunction.java         |   133 -
 .../cli/functions/UnregisterFunction.java       |    76 -
 .../cli/functions/UserFunctionExecution.java    |   227 -
 .../management/internal/cli/help/CliTopic.java  |   131 -
 .../internal/cli/help/format/Block.java         |    45 -
 .../internal/cli/help/format/DataNode.java      |    51 -
 .../internal/cli/help/format/Help.java          |    47 -
 .../internal/cli/help/format/NewHelp.java       |    55 -
 .../internal/cli/help/format/Row.java           |    30 -
 .../internal/cli/help/utils/FormatOutput.java   |    35 -
 .../internal/cli/help/utils/HelpUtils.java      |   418 -
 .../internal/cli/i18n/CliStrings.java           |  2231 ---
 .../internal/cli/json/GfJsonArray.java          |   242 -
 .../internal/cli/json/GfJsonException.java      |    37 -
 .../internal/cli/json/GfJsonObject.java         |   393 -
 .../management/internal/cli/json/TypedJson.java |   820 -
 .../internal/cli/modes/CommandModes.java        |   155 -
 .../cli/multistep/CLIMultiStepHelper.java       |   400 -
 .../internal/cli/multistep/CLIRemoteStep.java   |    35 -
 .../internal/cli/multistep/CLIStep.java         |    34 -
 .../cli/multistep/CLIStepExecption.java         |    38 -
 .../cli/multistep/MultiStepCommand.java         |    34 -
 .../internal/cli/parser/Argument.java           |    76 -
 .../internal/cli/parser/AvailabilityTarget.java |   107 -
 .../internal/cli/parser/CommandTarget.java      |   188 -
 .../internal/cli/parser/GfshMethodTarget.java   |   134 -
 .../internal/cli/parser/GfshOptionParser.java   |    40 -
 .../internal/cli/parser/MethodParameter.java    |    42 -
 .../management/internal/cli/parser/Option.java  |   223 -
 .../internal/cli/parser/OptionSet.java          |   132 -
 .../internal/cli/parser/Parameter.java          |   119 -
 .../internal/cli/parser/ParserUtils.java        |   190 -
 .../internal/cli/parser/SyntaxConstants.java    |    37 -
 .../cli/parser/jopt/JoptOptionParser.java       |   300 -
 .../preprocessor/EnclosingCharacters.java       |    35 -
 .../cli/parser/preprocessor/Preprocessor.java   |   140 -
 .../parser/preprocessor/PreprocessorUtils.java  |   338 -
 .../internal/cli/parser/preprocessor/Stack.java |    55 -
 .../cli/parser/preprocessor/TrimmedInput.java   |    47 -
 .../cli/remote/CommandExecutionContext.java     |   127 -
 .../internal/cli/remote/CommandProcessor.java   |   166 -
 .../cli/remote/CommandStatementImpl.java        |   100 -
 .../cli/remote/MemberCommandService.java        |    84 -
 .../cli/remote/RemoteExecutionStrategy.java     |   169 -
 .../internal/cli/remote/WrapperThreadLocal.java |    42 -
 .../internal/cli/result/AbstractResultData.java |   340 -
 .../cli/result/CliJsonSerializable.java         |    45 -
 .../cli/result/CliJsonSerializableFactory.java  |    48 -
 .../cli/result/CliJsonSerializableIds.java      |    34 -
 .../internal/cli/result/CommandResult.java      |   661 -
 .../cli/result/CommandResultException.java      |    39 -
 .../cli/result/CompositeResultData.java         |   361 -
 .../internal/cli/result/ErrorResultData.java    |   104 -
 .../internal/cli/result/FileResult.java         |   117 -
 .../internal/cli/result/InfoResultData.java     |    91 -
 .../internal/cli/result/ObjectResultData.java   |    88 -
 .../internal/cli/result/ResultBuilder.java      |   475 -
 .../internal/cli/result/ResultData.java         |    53 -
 .../cli/result/ResultDataException.java         |    35 -
 .../internal/cli/result/TableBuilder.java       |   475 -
 .../internal/cli/result/TableBuilderHelper.java |   176 -
 .../internal/cli/result/TabularResultData.java  |   174 -
 .../management/internal/cli/shell/Gfsh.java     |  1259 --
 .../internal/cli/shell/GfshConfig.java          |   253 -
 .../cli/shell/GfshExecutionStrategy.java        |   294 -
 .../cli/shell/JMXConnectionException.java       |    56 -
 .../cli/shell/JMXInvocationException.java       |    42 -
 .../internal/cli/shell/JmxOperationInvoker.java |   416 -
 .../internal/cli/shell/MultiCommandHelper.java  |    70 -
 .../internal/cli/shell/OperationInvoker.java    |   135 -
 .../internal/cli/shell/jline/ANSIBuffer.java    |   433 -
 .../internal/cli/shell/jline/ANSIHandler.java   |   113 -
 .../cli/shell/jline/CygwinMinttyTerminal.java   |    56 -
 .../internal/cli/shell/jline/GfshHistory.java   |    63 -
 .../shell/jline/GfshUnsupportedTerminal.java    |    33 -
 .../cli/shell/unsafe/GfshSignalHandler.java     |    85 -
 .../internal/cli/util/CLIConsoleBufferUtil.java |    37 -
 .../internal/cli/util/CauseFinder.java          |   214 -
 .../cli/util/ClasspathScanLoadHelper.java       |   258 -
 .../internal/cli/util/CommandStringBuilder.java |   105 -
 .../internal/cli/util/CommentSkipHelper.java    |    78 -
 .../internal/cli/util/ConnectionEndpoint.java   |    73 -
 .../internal/cli/util/DiskStoreCompacter.java   |   134 -
 .../cli/util/DiskStoreNotFoundException.java    |    49 -
 .../internal/cli/util/DiskStoreUpgrader.java    |   130 -
 .../internal/cli/util/DiskStoreValidater.java   |    60 -
 .../cli/util/EvictionAttributesInfo.java        |    63 -
 .../cli/util/FixedPartitionAttributesInfo.java  |    65 -
 .../internal/cli/util/GfshConsoleReader.java    |    90 -
 .../cli/util/HDFSStoreNotFoundException.java    |    47 -
 .../cli/util/JConsoleNotFoundException.java     |    47 -
 .../management/internal/cli/util/JsonUtil.java  |   606 -
 .../internal/cli/util/MemberInformation.java    |   157 -
 .../cli/util/MemberNotFoundException.java       |    49 -
 .../management/internal/cli/util/MergeLogs.java |    87 -
 .../internal/cli/util/ReadWriteFile.java        |   232 -
 .../cli/util/RegionAttributesDefault.java       |    90 -
 .../cli/util/RegionAttributesNames.java         |    89 -
 .../internal/cli/util/RegionPath.java           |   128 -
 .../cli/util/VisualVmNotFoundException.java     |    48 -
 .../SharedConfigurationWriter.java              |   180 -
 .../callbacks/ConfigurationChangeListener.java  |    59 -
 .../configuration/domain/CacheElement.java      |   253 -
 .../configuration/domain/Configuration.java     |   207 -
 .../domain/ConfigurationChangeResult.java       |   126 -
 .../domain/SharedConfigurationStatus.java       |    26 -
 .../configuration/domain/XmlEntity.java         |   551 -
 .../configuration/functions/AddJarFunction.java |    67 -
 .../functions/AddXmlEntityFunction.java         |    60 -
 .../functions/DeleteJarFunction.java            |    68 -
 .../functions/DeleteXmlEntityFunction.java      |    65 -
 .../functions/GetAllJarsFunction.java           |    67 -
 .../functions/ModifyPropertiesFunction.java     |    65 -
 .../handlers/ConfigurationRequestHandler.java   |    85 -
 ...SharedConfigurationStatusRequestHandler.java |    65 -
 .../messages/ConfigurationRequest.java          |   128 -
 .../messages/ConfigurationResponse.java         |   174 -
 .../SharedConfigurationStatusRequest.java       |    44 -
 .../SharedConfigurationStatusResponse.java      |    78 -
 .../configuration/utils/DtdResolver.java        |    92 -
 .../configuration/utils/XmlConstants.java       |    56 -
 .../internal/configuration/utils/XmlUtils.java  |   685 -
 .../internal/configuration/utils/ZipUtils.java  |   122 -
 .../internal/messages/CompactRequest.java       |   174 -
 .../internal/messages/CompactResponse.java      |    70 -
 .../internal/security/AccessControl.java        |    51 -
 .../internal/security/AccessControlContext.java |    37 -
 .../internal/security/AccessControlMXBean.java  |    23 -
 .../internal/security/CLIOperationContext.java  |   138 -
 .../internal/security/JMXOperationContext.java  |   177 -
 .../internal/security/JSONAuthorization.java    |   308 -
 .../internal/security/MBeanServerWrapper.java   |   286 -
 .../security/ManagementInterceptor.java         |   271 -
 .../management/internal/security/Resource.java  |    26 -
 .../internal/security/ResourceConstants.java    |   115 -
 .../internal/security/ResourceOperation.java    |    34 -
 .../security/ResourceOperationContext.java      |   203 -
 .../unsafe/ReadOpFileAccessController.java      |    63 -
 .../controllers/AbstractCommandsController.java |   618 -
 .../AbstractMultiPartCommandsController.java    |    78 -
 .../controllers/ClientCommandsController.java   |    60 -
 .../controllers/ClusterCommandsController.java  |    49 -
 .../controllers/ConfigCommandsController.java   |   214 -
 .../web/controllers/DataCommandsController.java |   241 -
 .../controllers/DeployCommandsController.java   |   110 -
 .../DiskStoreCommandsController.java            |   177 -
 .../DurableClientCommandsController.java        |   158 -
 .../controllers/FunctionCommandsController.java |   142 -
 .../controllers/IndexCommandsController.java    |   172 -
 .../LauncherLifecycleCommandsController.java    |    55 -
 .../controllers/MemberCommandsController.java   |    78 -
 .../MiscellaneousCommandsController.java        |   271 -
 .../web/controllers/PdxCommandsController.java  |   122 -
 .../controllers/QueueCommandsController.java    |   133 -
 .../controllers/RegionCommandsController.java   |   332 -
 .../controllers/ShellCommandsController.java    |   286 -
 .../web/controllers/WanCommandsController.java  |   403 -
 .../EnvironmentVariablesHandlerInterceptor.java |    93 -
 .../support/MemberMXBeanAdapter.java            |   660 -
 .../management/internal/web/domain/Link.java    |   161 -
 .../internal/web/domain/LinkIndex.java          |   140 -
 .../web/domain/QueryParameterSource.java        |    63 -
 .../internal/web/http/ClientHttpRequest.java    |   451 -
 .../internal/web/http/HttpHeader.java           |   100 -
 .../internal/web/http/HttpMethod.java           |    36 -
 .../SerializableObjectHttpMessageConverter.java |   103 -
 .../web/http/support/SimpleHttpRequester.java   |   140 -
 .../internal/web/io/MultipartFileAdapter.java   |    68 -
 .../web/io/MultipartFileResourceAdapter.java    |    68 -
 .../web/shell/AbstractHttpOperationInvoker.java |   801 -
 .../web/shell/HttpOperationInvoker.java         |    31 -
 .../web/shell/MBeanAccessException.java         |    45 -
 .../RestApiCallForCommandNotFoundException.java |    44 -
 .../web/shell/RestHttpOperationInvoker.java     |   424 -
 .../web/shell/SimpleHttpOperationInvoker.java   |   161 -
 .../shell/support/HttpInvocationHandler.java    |    95 -
 .../shell/support/HttpMBeanProxyFactory.java    |    41 -
 .../internal/web/util/ConvertUtils.java         |   132 -
 .../management/internal/web/util/UriUtils.java  |   257 -
 .../management/membership/ClientMembership.java |    67 -
 .../membership/ClientMembershipEvent.java       |    51 -
 .../membership/ClientMembershipListener.java    |    48 -
 .../ClientMembershipListenerAdapter.java        |    52 -
 .../management/membership/MembershipEvent.java  |    42 -
 .../membership/MembershipListener.java          |    53 -
 .../UniversalMembershipListenerAdapter.java     |   384 -
 .../gemstone/gemfire/management/package.html    |    24 -
 .../memcached/GemFireMemcachedServer.java       |   284 -
 .../main/java/com/gemstone/gemfire/package.html |    86 -
 .../com/gemstone/gemfire/pdx/FieldType.java     |   158 -
 .../com/gemstone/gemfire/pdx/JSONFormatter.java |   630 -
 .../gemfire/pdx/JSONFormatterException.java     |    47 -
 .../gemfire/pdx/NonPortableClassException.java  |    34 -
 .../gemfire/pdx/PdxConfigurationException.java  |    41 -
 .../pdx/PdxFieldAlreadyExistsException.java     |    46 -
 .../pdx/PdxFieldDoesNotExistException.java      |    42 -
 .../pdx/PdxFieldTypeMismatchException.java      |    46 -
 .../gemfire/pdx/PdxInitializationException.java |    51 -
 .../com/gemstone/gemfire/pdx/PdxInstance.java   |   202 -
 .../gemfire/pdx/PdxInstanceFactory.java         |   472 -
 .../com/gemstone/gemfire/pdx/PdxReader.java     |   265 -
 .../pdx/PdxRegistryMismatchException.java       |    37 -
 .../gemstone/gemfire/pdx/PdxSerializable.java   |    71 -
 .../gemfire/pdx/PdxSerializationException.java  |    53 -
 .../com/gemstone/gemfire/pdx/PdxSerializer.java |    94 -
 .../gemstone/gemfire/pdx/PdxUnreadFields.java   |    42 -
 .../com/gemstone/gemfire/pdx/PdxWriter.java     |   479 -
 .../pdx/ReflectionBasedAutoSerializer.java      |   561 -
 .../gemfire/pdx/WritablePdxInstance.java        |    44 -
 .../pdx/internal/AutoSerializableManager.java   |  2304 ---
 .../pdx/internal/CheckTypeRegistryState.java    |   110 -
 .../pdx/internal/ClientTypeRegistration.java    |   418 -
 .../gemfire/pdx/internal/ComparableEnum.java    |    24 -
 .../pdx/internal/ConvertableToBytes.java        |    23 -
 .../gemstone/gemfire/pdx/internal/DataSize.java |    49 -
 .../gemfire/pdx/internal/DefaultPdxField.java   |    40 -
 .../gemstone/gemfire/pdx/internal/EnumId.java   |    96 -
 .../gemstone/gemfire/pdx/internal/EnumInfo.java |   333 -
 .../pdx/internal/FieldNotFoundInPdxVersion.java |    27 -
 .../gemfire/pdx/internal/InternalPdxReader.java |    85 -
 .../pdx/internal/LonerTypeRegistration.java     |   186 -
 .../pdx/internal/NullTypeRegistration.java      |   120 -
 .../gemstone/gemfire/pdx/internal/PdxField.java |   259 -
 .../gemfire/pdx/internal/PdxInputStream.java    |   439 -
 .../gemfire/pdx/internal/PdxInstanceEnum.java   |   183 -
 .../pdx/internal/PdxInstanceFactoryImpl.java    |   270 -
 .../gemfire/pdx/internal/PdxInstanceImpl.java   |   646 -
 .../pdx/internal/PdxInstanceInputStream.java    |   115 -
 .../gemfire/pdx/internal/PdxOutputStream.java   |   242 -
 .../gemfire/pdx/internal/PdxReaderImpl.java     |   904 -
 .../gemfire/pdx/internal/PdxString.java         |   210 -
 .../gemstone/gemfire/pdx/internal/PdxType.java  |   495 -
 .../gemfire/pdx/internal/PdxUnreadData.java     |   118 -
 .../gemfire/pdx/internal/PdxWriterImpl.java     |   910 -
 .../pdx/internal/PeerTypeRegistration.java      |   776 -
 .../pdx/internal/TrackingPdxReaderImpl.java     |   354 -
 .../gemfire/pdx/internal/TypeRegistration.java  |   102 -
 .../gemfire/pdx/internal/TypeRegistry.java      |   525 -
 .../gemfire/pdx/internal/UnreadPdxType.java     |    73 -
 .../internal/WeakConcurrentIdentityHashMap.java |   137 -
 .../pdx/internal/WritablePdxInstanceImpl.java   |   288 -
 .../gemfire/pdx/internal/json/JsonHelper.java   |   182 -
 .../pdx/internal/json/PdxInstanceHelper.java    |   195 -
 .../pdx/internal/json/PdxListHelper.java        |   190 -
 .../gemfire/pdx/internal/json/PdxToJSON.java    |   322 -
 .../pdx/internal/unsafe/UnsafeWrapper.java      |   188 -
 .../java/com/gemstone/gemfire/pdx/package.html  |   112 -
 .../com/gemstone/gemfire/ra/GFConnection.java   |    27 -
 .../gemfire/ra/GFConnectionFactory.java         |    29 -
 .../gemfire/redis/GemFireRedisServer.java       |   717 -
 .../gemfire/security/AccessControl.java         |    95 -
 .../gemfire/security/AuthInitialize.java        |    88 -
 .../security/AuthenticationFailedException.java |    54 -
 .../AuthenticationRequiredException.java        |    54 -
 .../gemfire/security/Authenticator.java         |    87 -
 .../security/GemFireSecurityException.java      |    55 -
 .../security/NotAuthorizedException.java        |    63 -
 .../com/gemstone/gemfire/security/package.html  |    39 -
 .../message/GemFireParameterizedMessage.java    |   554 -
 .../GemFireParameterizedMessageFactory.java     |    54 -
 .../src/main/java/external-overview.html        |    43 -
 .../src/main/java/internal-overview.html        |    26 -
 .../gemfire/cache/cache-8.1.xsd                 |  1512 --
 .../gemfire/cache/cache-9.0.xsd                 |  1519 --
 .../services/org.xml.sax.ext.EntityResolver2    |     2 -
 .../gemstone/gemfire/admin/doc-files/ds4_0.dtd  |   176 -
 .../gemstone/gemfire/admin/doc-files/ds5_0.dtd  |   168 -
 .../internal/doc-files/mbeans-descriptors.dtd   |   232 -
 .../gemfire/admin/jmx/mbeans-descriptors.xml    |  1435 --
 .../gemfire/cache/doc-files/cache3_0.dtd        |   296 -
 .../gemfire/cache/doc-files/cache4_0.dtd        |   392 -
 .../gemfire/cache/doc-files/cache4_1.dtd        |   485 -
 .../gemfire/cache/doc-files/cache5_0.dtd        |   519 -
 .../gemfire/cache/doc-files/cache5_1.dtd        |   534 -
 .../gemfire/cache/doc-files/cache5_5.dtd        |   651 -
 .../gemfire/cache/doc-files/cache5_7.dtd        |   776 -
 .../gemfire/cache/doc-files/cache5_8.dtd        |   794 -
 .../gemfire/cache/doc-files/cache6_0.dtd        |   862 -
 .../gemfire/cache/doc-files/cache6_1.dtd        |   871 -
 .../gemfire/cache/doc-files/cache6_5.dtd        |   949 -
 .../gemfire/cache/doc-files/cache6_6.dtd        |  1006 -
 .../gemfire/cache/doc-files/cache7_0.dtd        |  1087 --
 .../gemfire/cache/doc-files/cache8_0.dtd        |  1107 --
 .../membership/gms/messenger/jgroups-config.xml |    72 -
 .../membership/gms/messenger/jgroups-mcast.xml  |    98 -
 .../internal/i18n/StringIdResourceBundle_ja.txt |  3811 ----
 .../internal/logging/log4j/log4j2-legacy.xml    |    17 -
 .../gemstone/gemfire/internal/privatekey.ser    |   Bin 756 -> 0 bytes
 .../com/gemstone/gemfire/internal/publickey.ser |   Bin 1029 -> 0 bytes
 .../tools/gfsh/app/windowsbindings.properties   |    83 -
 .../internal/cli/commands/support/gfmon.html    |    28 -
 .../management/internal/cli/modes/commands.json |     3 -
 .../management/internal/cli/modes/connect.json  |    29 -
 .../internal/cli/modes/stopserver.json          |    29 -
 .../com/gemstone/gemfire/statisticsType.dtd     |    87 -
 gemfire-core/src/main/resources/log4j2-cli.xml  |    17 -
 gemfire-core/src/main/resources/log4j2.xml      |    23 -
 .../batterytest/greplogs/ExpectedStrings.java   |   188 -
 .../java/batterytest/greplogs/LogConsumer.java  |   290 -
 .../src/test/java/cacheRunner/Portfolio.java    |   129 -
 .../src/test/java/cacheRunner/Position.java     |    74 -
 .../src/test/java/com/company/app/Customer.java |    37 -
 .../src/test/java/com/company/app/DBLoader.java |    64 -
 .../com/company/app/OrdersCacheListener.java    |    52 -
 .../java/com/company/data/DatabaseLoader.java   |    43 -
 .../java/com/company/data/MyDeclarable.java     |    33 -
 .../src/test/java/com/company/data/MySizer.java |    40 -
 .../com/company/data/MyTransactionListener.java |    39 -
 .../src/test/java/com/examples/LinkNode.java    |    78 -
 .../src/test/java/com/examples/SuperClass.java  |    93 -
 .../src/test/java/com/examples/TestObject.java  |    55 -
 .../src/test/java/com/examples/ds/Address.java  |    23 -
 .../src/test/java/com/examples/ds/Company.java  |    43 -
 .../java/com/examples/ds/CompanySerializer.java |    67 -
 .../src/test/java/com/examples/ds/Employee.java |    53 -
 .../com/examples/ds/PutDataSerializables.java   |    55 -
 .../src/test/java/com/examples/ds/User.java     |    58 -
 .../com/examples/snapshot/MyDataSerializer.java |    63 -
 .../java/com/examples/snapshot/MyObject.java    |    69 -
 .../snapshot/MyObjectDataSerializable.java      |    45 -
 .../java/com/examples/snapshot/MyObjectPdx.java |    33 -
 .../snapshot/MyObjectPdxSerializable.java       |    42 -
 .../com/examples/snapshot/MyPdxSerializer.java  |    64 -
 .../java/com/gemstone/gemfire/AppObject.java    |    24 -
 .../com/gemstone/gemfire/CopyJUnitTest.java     |   575 -
 .../com/gemstone/gemfire/DeltaTestImpl.java     |   397 -
 .../gemfire/DiskInstantiatorsJUnitTest.java     |   183 -
 .../com/gemstone/gemfire/GemFireTestCase.java   |    92 -
 .../java/com/gemstone/gemfire/Invariant.java    |    32 -
 .../com/gemstone/gemfire/InvariantResult.java   |    28 -
 .../com/gemstone/gemfire/JUnitTestSetup.java    |   143 -
 .../gemfire/JtaNoninvolvementJUnitTest.java     |   180 -
 .../gemfire/LocalStatisticsJUnitTest.java       |    50 -
 .../com/gemstone/gemfire/LonerDMJUnitTest.java  |   196 -
 .../gemstone/gemfire/StatisticsTestCase.java    |   388 -
 .../gemfire/StatisticsTypeJUnitTest.java        |    77 -
 .../gemfire/SystemFailureJUnitTest.java         |    60 -
 .../com/gemstone/gemfire/TXExpiryJUnitTest.java |   420 -
 .../java/com/gemstone/gemfire/TXJUnitTest.java  |  6825 -------
 .../com/gemstone/gemfire/TXWriterJUnitTest.java |   241 -
 .../gemstone/gemfire/TXWriterOOMEJUnitTest.java |    78 -
 .../com/gemstone/gemfire/TXWriterTestCase.java  |   152 -
 .../gemstone/gemfire/TestDataSerializer.java    |   117 -
 .../com/gemstone/gemfire/TimingTestCase.java    |    77 -
 .../com/gemstone/gemfire/UnitTestDoclet.java    |   264 -
 .../gemstone/gemfire/admin/AdminTestHelper.java |    45 -
 .../BindDistributedSystemJUnitTest.java         |    97 -
 .../internal/CacheHealthEvaluatorJUnitTest.java |   208 -
 .../internal/DistributedSystemTestCase.java     |    67 -
 .../admin/internal/HealthEvaluatorTestCase.java |    76 -
 .../MemberHealthEvaluatorJUnitTest.java         |   102 -
 .../cache/AttributesFactoryJUnitTest.java       |   420 -
 .../gemfire/cache/Bug36619JUnitTest.java        |    77 -
 .../gemfire/cache/Bug42039JUnitTest.java        |    96 -
 .../gemfire/cache/Bug52289JUnitTest.java        |    89 -
 .../gemfire/cache/CacheListenerJUnitTest.java   |   336 -
 .../cache/CacheRegionClearStatsDUnitTest.java   |   248 -
 .../gemstone/gemfire/cache/ClientHelper.java    |    73 -
 .../cache/ClientServerTimeSyncDUnitTest.java    |   203 -
 .../cache/ConnectionPoolAndLoaderDUnitTest.java |   489 -
 .../cache/ConnectionPoolFactoryJUnitTest.java   |   424 -
 .../gemfire/cache/OperationJUnitTest.java       |   933 -
 .../gemfire/cache/PoolManagerJUnitTest.java     |   135 -
 .../gemstone/gemfire/cache/ProxyJUnitTest.java  |  1169 --
 .../gemfire/cache/RegionFactoryJUnitTest.java   |  1195 --
 .../gemfire/cache/RoleExceptionJUnitTest.java   |   139 -
 .../SerialAsyncEventQueueImplJUnitTest.java     |    62 -
 .../client/ClientCacheFactoryJUnitTest.java     |   343 -
 .../client/ClientRegionFactoryJUnitTest.java    |   532 -
 .../ClientServerRegisterInterestsDUnitTest.java |   256 -
 .../internal/AutoConnectionSourceDUnitTest.java |   598 -
 .../AutoConnectionSourceImplJUnitTest.java      |   398 -
 .../CacheServerSSLConnectionDUnitTest.java      |   424 -
 .../internal/ConnectionPoolImplJUnitTest.java   |   260 -
 .../internal/LocatorLoadBalancingDUnitTest.java |   499 -
 .../cache/client/internal/LocatorTestBase.java  |   365 -
 .../internal/OpExecutorImplJUnitTest.java       |   664 -
 .../client/internal/QueueManagerJUnitTest.java  |   674 -
 .../internal/SSLNoClientAuthDUnitTest.java      |   277 -
 .../internal/ServerBlackListJUnitTest.java      |   123 -
 .../locator/LocatorStatusResponseJUnitTest.java |    77 -
 .../pooling/ConnectionManagerJUnitTest.java     |   878 -
 .../SignalledFlushObserverJUnitTest.java        |    97 -
 .../SortedListForAsyncQueueJUnitTest.java       |   565 -
 .../management/MXMemoryPoolListenerExample.java |   206 -
 .../management/MemoryThresholdsDUnitTest.java   |  2333 ---
 .../MemoryThresholdsOffHeapDUnitTest.java       |  1826 --
 .../management/ResourceManagerDUnitTest.java    |  1841 --
 .../ExceptionHandlingJUnitTest.java             |   177 -
 .../mapInterface/MapFunctionalJUnitTest.java    |   170 -
 .../mapInterface/PutAllGlobalLockJUnitTest.java |   109 -
 .../PutOperationContextJUnitTest.java           |   264 -
 .../GetOperationContextImplJUnitTest.java       |   291 -
 .../PartitionRegionHelperDUnitTest.java         |   742 -
 .../BaseLineAndCompareQueryPerfJUnitTest.java   |   537 -
 .../query/Bug32947ValueConstraintJUnitTest.java |   127 -
 .../gemfire/cache/query/BugJUnitTest.java       |   570 -
 .../gemfire/cache/query/CacheUtils.java         |   398 -
 .../cache/query/MultithreadedTester.java        |    73 -
 .../cache/query/PdxStringQueryJUnitTest.java    |   727 -
 .../gemstone/gemfire/cache/query/PerfQuery.java |   330 -
 .../gemfire/cache/query/QueryJUnitTest.java     |   457 -
 .../cache/query/QueryServiceJUnitTest.java      |   252 -
 .../gemfire/cache/query/QueryTestUtils.java     |  1640 --
 .../cache/query/QueryTestUtilsJUnitTest.java    |   134 -
 .../gemfire/cache/query/RegionJUnitTest.java    |   226 -
 .../cache/query/TypedIteratorJUnitTest.java     |   133 -
 .../com/gemstone/gemfire/cache/query/Utils.java |    57 -
 .../query/cq/dunit/CqQueryTestListener.java     |   398 -
 .../gemfire/cache/query/data/Address.java       |    51 -
 .../gemstone/gemfire/cache/query/data/City.java |    57 -
 .../cache/query/data/CollectionHolder.java      |    90 -
 .../cache/query/data/ComparableWrapper.java     |    70 -
 .../gemfire/cache/query/data/Country.java       |   100 -
 .../gemstone/gemfire/cache/query/data/Data.java |    47 -
 .../gemfire/cache/query/data/District.java      |    65 -
 .../gemfire/cache/query/data/Employee.java      |    72 -
 .../gemfire/cache/query/data/Inventory.java     |   127 -
 .../gemfire/cache/query/data/Keywords.java      |    90 -
 .../gemfire/cache/query/data/Manager.java       |    43 -
 .../gemfire/cache/query/data/Numbers.java       |    52 -
 .../gemfire/cache/query/data/PhoneNo.java       |    42 -
 .../gemfire/cache/query/data/Portfolio.java     |   314 -
 .../gemfire/cache/query/data/PortfolioData.java |   154 -
 .../gemfire/cache/query/data/PortfolioNoDS.java |   240 -
 .../gemfire/cache/query/data/PortfolioPdx.java  |   311 -
 .../gemfire/cache/query/data/Position.java      |   166 -
 .../gemfire/cache/query/data/PositionNoDS.java  |   130 -
 .../gemfire/cache/query/data/PositionPdx.java   |   182 -
 .../query/data/ProhibitedSecurityQuote.java     |    66 -
 .../gemfire/cache/query/data/Quote.java         |   114 -
 .../gemfire/cache/query/data/Restricted.java    |    80 -
 .../cache/query/data/SecurityMaster.java        |   262 -
 .../gemfire/cache/query/data/State.java         |    81 -
 .../gemfire/cache/query/data/Street.java        |    38 -
 .../gemfire/cache/query/data/Student.java       |    77 -
 .../gemfire/cache/query/data/Vehicle.java       |    39 -
 .../gemfire/cache/query/data/Village.java       |    55 -
 .../query/dunit/CloseCacheAuthorization.java    |    62 -
 .../query/dunit/CompactRangeIndexDUnitTest.java |   204 -
 .../cache/query/dunit/CqTimeTestListener.java   |   266 -
 .../cache/query/dunit/GroupByDUnitImpl.java     |   328 -
 .../dunit/GroupByPartitionedQueryDUnitTest.java |   110 -
 .../query/dunit/GroupByQueryDUnitTest.java      |   189 -
 .../cache/query/dunit/HashIndexDUnitTest.java   |   132 -
 .../cache/query/dunit/HelperTestCase.java       |   267 -
 .../dunit/NonDistinctOrderByDUnitImpl.java      |   266 -
 .../NonDistinctOrderByPartitionedDUnitTest.java |   154 -
 .../query/dunit/PdxStringQueryDUnitTest.java    |  1987 --
 .../dunit/QueryAPITestPartitionResolver.java    |    44 -
 .../cache/query/dunit/QueryAuthorization.java   |    70 -
 .../dunit/QueryDataInconsistencyDUnitTest.java  |   580 -
 .../dunit/QueryIndexUsingXMLDUnitTest.java      |   993 -
 .../QueryParamsAuthorizationDUnitTest.java      |   111 -
 .../QueryUsingFunctionContextDUnitTest.java     |  1048 -
 .../query/dunit/QueryUsingPoolDUnitTest.java    |  2588 ---
 .../cache/query/dunit/RemoteQueryDUnitTest.java |  1502 --
 ...esourceManagerWithQueryMonitorDUnitTest.java |  1166 --
 .../query/dunit/SelectStarQueryDUnitTest.java   |  1625 --
 .../cache/query/facets/lang/Address.java        |    60 -
 .../gemfire/cache/query/facets/lang/Course.java |    91 -
 .../cache/query/facets/lang/Department.java     |    96 -
 .../query/facets/lang/DerivedEmployee.java      |    29 -
 .../cache/query/facets/lang/Employee.java       |   140 -
 .../cache/query/facets/lang/Faculty.java        |   134 -
 .../cache/query/facets/lang/G_Student.java      |    66 -
 .../gemfire/cache/query/facets/lang/Person.java |    96 -
 .../cache/query/facets/lang/Student.java        |   103 -
 .../cache/query/facets/lang/UG_Student.java     |    66 -
 .../gemfire/cache/query/facets/lang/Utils.java  |   134 -
 .../ComparisonOperatorsJUnitTest.java           |   185 -
 .../query/functional/ConstantsJUnitTest.java    |   109 -
 .../query/functional/CountStarJUnitTest.java    |   686 -
 .../CustomerOptimizationsJUnitTest.java         |  1386 --
 .../DistinctAndNonDistinctQueryJUnitTest.java   |   154 -
 ...ctResultsWithDupValuesInRegionJUnitTest.java |   481 -
 .../query/functional/FunctionJUnitTest.java     |   315 -
 .../functional/GroupByPartitionedJUnitTest.java |    50 -
 .../functional/GroupByReplicatedJUnitTest.java  |    39 -
 .../cache/query/functional/GroupByTestImpl.java |  1010 -
 .../query/functional/GroupByTestInterface.java  |    58 -
 .../query/functional/INOperatorJUnitTest.java   |   471 -
 .../functional/IUM6Bug32345ReJUnitTest.java     |   224 -
 .../cache/query/functional/IUMJUnitTest.java    |   237 -
 .../IUMRCompositeIteratorJUnitTest.java         |   251 -
 .../IUMRMultiIndexesMultiRegionJUnitTest.java   |  1274 --
 .../IUMRShuffleIteratorsJUnitTest.java          |   489 -
 .../functional/IUMRSingleRegionJUnitTest.java   |   901 -
 ...ependentOperandsInWhereClause2JUnitTest.java |   200 -
 .../IndexCreationDeadLockJUnitTest.java         |   309 -
 .../functional/IndexCreationJUnitTest.java      |  1088 --
 .../IndexMaintenanceAsynchJUnitTest.java        |   178 -
 .../functional/IndexOnEntrySetJUnitTest.java    |   335 -
 .../functional/IndexOperatorJUnitTest.java      |   225 -
 .../IndexPrimaryKeyUsageJUnitTest.java          |   335 -
 .../IndexUsageInNestedQueryJUnitTest.java       |   152 -
 .../IndexUsageWithAliasAsProjAtrbt.java         |   177 -
 ...IndexUsageWithAliasAsProjAtrbtJUnitTest.java |   185 -
 .../IndexUseMultFrmSnglCondJUnitTest.java       |   274 -
 ...ndexWithSngleFrmAndMultCondQryJUnitTest.java |  1354 --
 .../functional/IteratorTypeDefEmpJUnitTest.java |    87 -
 .../functional/IteratorTypeDefJUnitTest.java    |   163 -
 .../IteratorTypeDefaultTypesJUnitTest.java      |   426 -
 .../functional/IumMultConditionJUnitTest.java   |   231 -
 .../functional/JavaSerializationJUnitTest.java  |    68 -
 .../functional/LikePredicateJUnitTest.java      |  2386 ---
 .../query/functional/LimitClauseJUnitTest.java  |  1850 --
 .../functional/LogicalOperatorsJUnitTest.java   |   201 -
 .../cache/query/functional/MiscJUnitTest.java   |   726 -
 .../functional/MultiIndexCreationJUnitTest.java |   385 -
 .../MultiRegionIndexUsageJUnitTest.java         |   903 -
 .../functional/MultipleRegionsJUnitTest.java    |   109 -
 .../NegativeNumberQueriesJUnitTest.java         |   127 -
 .../query/functional/NestedQueryJUnitTest.java  |   511 -
 .../NonDistinctOrderByPartitionedJUnitTest.java |   260 -
 .../NonDistinctOrderByReplicatedJUnitTest.java  |   411 -
 .../NonDistinctOrderByTestImplementation.java   |  1545 --
 .../query/functional/NumericQueryJUnitTest.java |   337 -
 .../functional/OrderByPartitionedJUnitTest.java |   667 -
 .../functional/OrderByReplicatedJUnitTest.java  |   836 -
 .../functional/OrderByTestImplementation.java   |  1184 --
 .../functional/ParameterBindingJUnitTest.java   |   178 -
 .../PdxGroupByPartitionedJUnitTest.java         |    40 -
 .../PdxGroupByReplicatedJUnitTest.java          |    37 -
 .../query/functional/PdxGroupByTestImpl.java    |  1025 -
 .../query/functional/PdxOrderByJUnitTest.java   |   357 -
 .../functional/QRegionInterfaceJUnitTest.java   |   164 -
 .../QueryREUpdateInProgressJUnitTest.java       |   436 -
 .../functional/QueryUndefinedJUnitTest.java     |   286 -
 .../functional/ReservedKeywordsJUnitTest.java   |    82 -
 .../ResultsDataSerializabilityJUnitTest.java    |   144 -
 .../query/functional/SelectToDateJUnitTest.java |   263 -
 .../functional/StructMemberAccessJUnitTest.java |   287 -
 .../query/functional/StructSetOrResultsSet.java |   456 -
 .../query/functional/TestNewFunctionSSorRS.java |   129 -
 .../CompiledAggregateFunctionJUnitTest.java     |   200 -
 .../CompiledGroupBySelectJUnitTest.java         |   161 -
 .../query/internal/CompiledInJUnitTest.java     |   460 -
 .../CompiledJunctionInternalsJUnitTest.java     |  3481 ----
 .../internal/CopyOnReadQueryJUnitTest.java      |   418 -
 .../internal/ExecutionContextJUnitTest.java     |   405 -
 .../query/internal/IndexManagerJUnitTest.java   |   182 -
 .../internal/NWayMergeResultsJUnitTest.java     |   551 -
 .../internal/OrderByComparatorJUnitTest.java    |   206 -
 .../internal/ProjectionAttributeJUnitTest.java  |   241 -
 .../query/internal/QCompilerJUnitTest.java      |   452 -
 .../QueryExecutionContextJUnitTest.java         |    67 -
 ...ueryFromClauseCanonicalizationJUnitTest.java |   264 -
 .../QueryObjectSerializationJUnitTest.java      |   151 -
 .../QueryObserverCallbackJUnitTest.java         |   424 -
 .../query/internal/QueryTraceJUnitTest.java     |   449 -
 .../query/internal/QueryUtilsJUnitTest.java     |   308 -
 .../query/internal/ResultsBagJUnitTest.java     |   314 -
 .../ResultsBagLimitBehaviourJUnitTest.java      |   585 -
 .../ResultsCollectionWrapperLimitJUnitTest.java |   367 -
 .../SelectResultsComparatorJUnitTest.java       |    91 -
 .../StructBagLimitBehaviourJUnitTest.java       |   129 -
 .../query/internal/StructSetJUnitTest.java      |    77 -
 .../internal/aggregate/AggregatorJUnitTest.java |   215 -
 ...syncIndexUpdaterThreadShutdownJUnitTest.java |   123 -
 .../index/AsynchIndexMaintenanceJUnitTest.java  |   261 -
 .../CompactRangeIndexIndexMapJUnitTest.java     |   187 -
 .../index/CompactRangeIndexJUnitTest.java       |   506 -
 ...rrentIndexInitOnOverflowRegionDUnitTest.java |   468 -
 ...ndexOperationsOnOverflowRegionDUnitTest.java |   724 -
 ...pdateWithInplaceObjectModFalseDUnitTest.java |   714 -
 ...ConcurrentIndexUpdateWithoutWLDUnitTest.java |   800 -
 .../index/CopyOnReadIndexDUnitTest.java         |   652 -
 .../index/CopyOnReadIndexJUnitTest.java         |   457 -
 .../DeclarativeIndexCreationJUnitTest.java      |   123 -
 .../query/internal/index/EquijoinDUnitTest.java |   437 -
 .../internal/index/HashIndexJUnitTest.java      |  1592 --
 .../internal/index/HashIndexSetJUnitTest.java   |   504 -
 .../index/IndexCreationInternalsJUnitTest.java  |   214 -
 .../internal/index/IndexElemArrayJUnitTest.java |   137 -
 .../internal/index/IndexHintJUnitTest.java      |   506 -
 .../query/internal/index/IndexJUnitTest.java    |    97 -
 .../index/IndexMaintainceJUnitTest.java         |   513 -
 .../index/IndexMaintenanceJUnitTest.java        |  1439 --
 .../index/IndexStatisticsJUnitTest.java         |   862 -
 .../IndexTrackingQueryObserverDUnitTest.java    |   329 -
 .../IndexTrackingQueryObserverJUnitTest.java    |   172 -
 .../query/internal/index/IndexUseJUnitTest.java |  1890 --
 .../IndexedMergeEquiJoinScenariosJUnitTest.java |   604 -
 ...itializeIndexEntryDestroyQueryDUnitTest.java |   455 -
 .../internal/index/MapIndexStoreJUnitTest.java  |   339 -
 .../MapRangeIndexMaintenanceJUnitTest.java      |   389 -
 .../index/MemoryIndexStoreJUnitTest.java        |   396 -
 ...exStoreWithInplaceModificationJUnitTest.java |    54 -
 .../index/MultiIndexCreationDUnitTest.java      |   201 -
 .../NewDeclarativeIndexCreationJUnitTest.java   |   173 -
 .../PartitionedRegionEquijoinDUnitTest.java     |   130 -
 .../index/PdxCopyOnReadQueryJUnitTest.java      |    77 -
 ...gRegionCreationIndexUpdateTypeJUnitTest.java |    98 -
 .../index/PutAllWithIndexPerfDUnitTest.java     |   216 -
 .../internal/index/RangeIndexAPIJUnitTest.java  |   422 -
 .../PRBasicIndexCreationDUnitTest.java          |  1050 -
 .../PRBasicIndexCreationDeadlockDUnitTest.java  |   235 -
 .../PRBasicMultiIndexCreationDUnitTest.java     |  1065 -
 .../partitioned/PRBasicQueryDUnitTest.java      |   273 -
 .../PRBasicRemoveIndexDUnitTest.java            |   142 -
 .../PRColocatedEquiJoinDUnitTest.java           |  1722 --
 .../partitioned/PRIndexStatisticsJUnitTest.java |   704 -
 .../partitioned/PRInvalidQueryDUnitTest.java    |   133 -
 .../partitioned/PRInvalidQueryJUnitTest.java    |   127 -
 .../partitioned/PRQueryCacheCloseDUnitTest.java |   341 -
 .../PRQueryCacheClosedJUnitTest.java            |   260 -
 .../query/partitioned/PRQueryDUnitHelper.java   |  3048 ---
 .../query/partitioned/PRQueryDUnitTest.java     |  1228 --
 .../query/partitioned/PRQueryJUnitTest.java     |   188 -
 .../partitioned/PRQueryNumThreadsJUnitTest.java |   165 -
 .../query/partitioned/PRQueryPerfDUnitTest.java |   505 -
 .../PRQueryRegionCloseDUnitTest.java            |   211 -
 .../PRQueryRegionClosedJUnitTest.java           |   257 -
 .../PRQueryRegionDestroyedDUnitTest.java        |   225 -
 .../PRQueryRegionDestroyedJUnitTest.java        |   254 -
 .../PRQueryRemoteNodeExceptionDUnitTest.java    |   786 -
 .../gemfire/cache/query/transaction/Person.java |    57 -
 .../query/transaction/QueryAndJtaJUnitTest.java |   479 -
 .../internal/ConnectionCountProbeJUnitTest.java |    51 -
 .../cache/snapshot/CacheSnapshotJUnitTest.java  |   128 -
 .../snapshot/ParallelSnapshotDUnitTest.java     |   197 -
 .../gemfire/cache/snapshot/RegionGenerator.java |   125 -
 .../cache/snapshot/RegionSnapshotJUnitTest.java |   294 -
 .../snapshot/SnapshotByteArrayDUnitTest.java    |   138 -
 .../cache/snapshot/SnapshotDUnitTest.java       |   224 -
 .../snapshot/SnapshotPerformanceDUnitTest.java  |   167 -
 .../cache/snapshot/SnapshotTestCase.java        |    92 -
 .../cache/snapshot/WanSnapshotJUnitTest.java    |    98 -
 .../cache/util/PasswordUtilJUnitTest.java       |    41 -
 .../gemfire/cache30/Bug34387DUnitTest.java      |   174 -
 .../gemfire/cache30/Bug34948DUnitTest.java      |   148 -
 .../gemfire/cache30/Bug35214DUnitTest.java      |   214 -
 .../gemfire/cache30/Bug38013DUnitTest.java      |   141 -
 .../gemfire/cache30/Bug38741DUnitTest.java      |   414 -
 .../gemfire/cache30/Bug40255JUnitTest.java      |   143 -
 .../gemfire/cache30/Bug40662JUnitTest.java      |    90 -
 .../gemfire/cache30/Bug44418JUnitTest.java      |   173 -
 .../gemfire/cache30/CacheCloseDUnitTest.java    |   104 -
 .../gemfire/cache30/CacheListenerTestCase.java  |   428 -
 .../gemfire/cache30/CacheLoaderTestCase.java    |   330 -
 .../gemfire/cache30/CacheLogRollDUnitTest.java  |   455 -
 .../gemfire/cache30/CacheMapTxnDUnitTest.java   |   534 -
 ...cheRegionsReliablityStatsCheckDUnitTest.java |   136 -
 .../cache30/CacheSerializableRunnable.java      |   114 -
 .../cache30/CacheStatisticsDUnitTest.java       |   515 -
 .../gemstone/gemfire/cache30/CacheTestCase.java |   653 -
 .../gemfire/cache30/CacheWriterTestCase.java    |   507 -
 .../cache30/CacheXMLPartitionResolver.java      |    78 -
 .../gemfire/cache30/CacheXml30DUnitTest.java    |   827 -
 .../gemfire/cache30/CacheXml40DUnitTest.java    |   150 -
 .../gemfire/cache30/CacheXml41DUnitTest.java    |   643 -
 .../gemfire/cache30/CacheXml45DUnitTest.java    |   398 -
 .../gemfire/cache30/CacheXml51DUnitTest.java    |   351 -
 .../gemfire/cache30/CacheXml55DUnitTest.java    |    53 -
 .../gemfire/cache30/CacheXml57DUnitTest.java    |   658 -
 .../gemfire/cache30/CacheXml58DUnitTest.java    |   505 -
 .../gemfire/cache30/CacheXml60DUnitTest.java    |   336 -
 .../gemfire/cache30/CacheXml61DUnitTest.java    |   125 -
 .../gemfire/cache30/CacheXml65DUnitTest.java    |  1159 --
 .../gemfire/cache30/CacheXml66DUnitTest.java    |   376 -
 .../gemfire/cache30/CacheXml70DUnitTest.java    |   289 -
 .../gemfire/cache30/CacheXml80DUnitTest.java    |   297 -
 .../gemfire/cache30/CacheXml81DUnitTest.java    |   158 -
 .../gemfire/cache30/CacheXml90DUnitTest.java    |   234 -
 .../gemfire/cache30/CacheXmlTestCase.java       |   157 -
 .../cache30/CachedAllEventsDUnitTest.java       |   111 -
 .../gemfire/cache30/CallbackArgDUnitTest.java   |   185 -
 .../cache30/CertifiableTestCacheListener.java   |   148 -
 .../cache30/ClearMultiVmCallBkDUnitTest.java    |   249 -
 .../gemfire/cache30/ClearMultiVmDUnitTest.java  |   469 -
 .../cache30/ClientMembershipDUnitTest.java      |  1669 --
 .../ClientMembershipSelectorDUnitTest.java      |    32 -
 .../ClientRegisterInterestDUnitTest.java        |   429 -
 ...ClientRegisterInterestSelectorDUnitTest.java |    32 -
 .../cache30/ClientServerCCEDUnitTest.java       |   633 -
 .../gemfire/cache30/ClientServerTestCase.java   |   391 -
 .../ConcurrentLeaveDuringGIIDUnitTest.java      |   216 -
 ...ibutedNoAckAsyncOverflowRegionDUnitTest.java |    61 -
 ...iskDistributedNoAckAsyncRegionDUnitTest.java |    53 -
 .../DiskDistributedNoAckRegionTestCase.java     |    42 -
 ...ributedNoAckSyncOverflowRegionDUnitTest.java |    63 -
 .../gemfire/cache30/DiskRegionDUnitTest.java    |  1636 --
 .../gemfire/cache30/DiskRegionTestImpl.java     |   247 -
 .../cache30/DistAckMapMethodsDUnitTest.java     |   707 -
 ...istributedAckOverflowRegionCCEDUnitTest.java |    82 -
 ...tedAckOverflowRegionCCEOffHeapDUnitTest.java |    82 -
 ...tributedAckPersistentRegionCCEDUnitTest.java |   228 -
 ...dAckPersistentRegionCCEOffHeapDUnitTest.java |    82 -
 .../DistributedAckRegionCCEDUnitTest.java       |   694 -
 ...DistributedAckRegionCCEOffHeapDUnitTest.java |    82 -
 ...istributedAckRegionCompressionDUnitTest.java |    72 -
 .../cache30/DistributedAckRegionDUnitTest.java  |   140 -
 .../DistributedAckRegionOffHeapDUnitTest.java   |    82 -
 .../DistributedMulticastRegionDUnitTest.java    |   212 -
 .../DistributedNoAckRegionCCEDUnitTest.java     |   586 -
 ...stributedNoAckRegionCCEOffHeapDUnitTest.java |    82 -
 .../DistributedNoAckRegionDUnitTest.java        |   311 -
 .../DistributedNoAckRegionOffHeapDUnitTest.java |    82 -
 .../gemfire/cache30/DynamicRegionDUnitTest.java |   288 -
 .../gemfire/cache30/GlobalLockingDUnitTest.java |   391 -
 .../cache30/GlobalRegionCCEDUnitTest.java       |   245 -
 .../GlobalRegionCCEOffHeapDUnitTest.java        |    82 -
 .../gemfire/cache30/GlobalRegionDUnitTest.java  |   417 -
 .../cache30/GlobalRegionOffHeapDUnitTest.java   |    89 -
 .../cache30/LRUEvictionControllerDUnitTest.java |   488 -
 .../gemfire/cache30/LocalRegionDUnitTest.java   |   264 -
 .../MemLRUEvictionControllerDUnitTest.java      |   276 -
 .../gemfire/cache30/MultiVMRegionTestCase.java  |  9177 ---------
 .../gemfire/cache30/MyGatewayEventFilter1.java  |    61 -
 .../gemfire/cache30/MyGatewayEventFilter2.java  |    66 -
 .../cache30/MyGatewayTransportFilter1.java      |    53 -
 .../cache30/MyGatewayTransportFilter2.java      |    55 -
 .../OffHeapLRUEvictionControllerDUnitTest.java  |    80 -
 .../PRBucketSynchronizationDUnitTest.java       |   306 -
 .../PartitionedRegionCompressionDUnitTest.java  |    70 -
 .../cache30/PartitionedRegionDUnitTest.java     |   554 -
 ...tionedRegionMembershipListenerDUnitTest.java |   150 -
 .../PartitionedRegionOffHeapDUnitTest.java      |    81 -
 .../cache30/PreloadedRegionTestCase.java        |   102 -
 .../gemfire/cache30/ProxyDUnitTest.java         |   546 -
 .../cache30/PutAllCallBkRemoteVMDUnitTest.java  |   401 -
 .../cache30/PutAllCallBkSingleVMDUnitTest.java  |   321 -
 .../gemfire/cache30/PutAllMultiVmDUnitTest.java |   366 -
 .../gemfire/cache30/QueueMsgDUnitTest.java      |   312 -
 .../cache30/RRSynchronizationDUnitTest.java     |   269 -
 .../gemfire/cache30/ReconnectDUnitTest.java     |  1173 --
 .../ReconnectedCacheServerDUnitTest.java        |    68 -
 .../cache30/RegionAttributesTestCase.java       |   266 -
 .../cache30/RegionExpirationDUnitTest.java      |   276 -
 .../RegionMembershipListenerDUnitTest.java      |   420 -
 .../RegionReliabilityDistAckDUnitTest.java      |    39 -
 .../RegionReliabilityDistNoAckDUnitTest.java    |    39 -
 .../RegionReliabilityGlobalDUnitTest.java       |    39 -
 .../RegionReliabilityListenerDUnitTest.java     |   209 -
 .../cache30/RegionReliabilityTestCase.java      |  1450 --
 .../gemfire/cache30/RegionTestCase.java         |  4101 ----
 .../gemfire/cache30/ReliabilityTestCase.java    |    59 -
 .../cache30/RemoveAllMultiVmDUnitTest.java      |   300 -
 .../gemfire/cache30/RequiredRolesDUnitTest.java |   440 -
 .../cache30/RolePerformanceDUnitTest.java       |   189 -
 .../gemfire/cache30/SearchAndLoadDUnitTest.java |  1017 -
 .../gemfire/cache30/SlowRecDUnitTest.java       |  1467 --
 .../gemfire/cache30/TXDistributedDUnitTest.java |  1527 --
 .../gemfire/cache30/TXOrderDUnitTest.java       |   434 -
 .../cache30/TXRestrictionsDUnitTest.java        |   100 -
 .../gemfire/cache30/TestCacheCallback.java      |   102 -
 .../gemfire/cache30/TestCacheListener.java      |   222 -
 .../gemfire/cache30/TestCacheLoader.java        |    45 -
 .../gemfire/cache30/TestCacheWriter.java        |   131 -
 .../gemfire/cache30/TestDiskRegion.java         |   257 -
 .../gemstone/gemfire/cache30/TestHeapLRU.java   |    90 -
 .../gemfire/cache30/TestPdxSerializer.java      |    69 -
 .../cache30/TestTransactionListener.java        |    93 -
 .../gemfire/cache30/TestTransactionWriter.java  |    44 -
 .../AnalyzeSerializablesJUnitTest.java          |   325 -
 .../codeAnalysis/ClassAndMethodDetails.java     |   154 -
 .../gemfire/codeAnalysis/ClassAndMethods.java   |    50 -
 .../codeAnalysis/ClassAndVariableDetails.java   |   108 -
 .../gemfire/codeAnalysis/ClassAndVariables.java |    64 -
 .../codeAnalysis/CompiledClassUtils.java        |   433 -
 .../codeAnalysis/decode/CompiledAttribute.java  |    46 -
 .../codeAnalysis/decode/CompiledClass.java      |   276 -
 .../codeAnalysis/decode/CompiledCode.java       |    70 -
 .../codeAnalysis/decode/CompiledField.java      |   116 -
 .../codeAnalysis/decode/CompiledMethod.java     |   153 -
 .../gemfire/codeAnalysis/decode/cp/Cp.java      |    78 -
 .../gemfire/codeAnalysis/decode/cp/CpClass.java |    42 -
 .../codeAnalysis/decode/cp/CpDouble.java        |    40 -
 .../codeAnalysis/decode/cp/CpFieldref.java      |    33 -
 .../gemfire/codeAnalysis/decode/cp/CpFloat.java |    31 -
 .../codeAnalysis/decode/cp/CpInteger.java       |    31 -
 .../decode/cp/CpInterfaceMethodref.java         |    24 -
 .../codeAnalysis/decode/cp/CpInvokeDynamic.java |    33 -
 .../gemfire/codeAnalysis/decode/cp/CpLong.java  |    39 -
 .../codeAnalysis/decode/cp/CpMethodHandle.java  |    33 -
 .../codeAnalysis/decode/cp/CpMethodType.java    |    31 -
 .../codeAnalysis/decode/cp/CpMethodref.java     |    25 -
 .../codeAnalysis/decode/cp/CpNameAndType.java   |    27 -
 .../codeAnalysis/decode/cp/CpString.java        |    25 -
 .../gemfire/codeAnalysis/decode/cp/CpUtf8.java  |   133 -
 .../AbstractLauncherIntegrationJUnitTest.java   |    71 -
 .../distributed/AbstractLauncherJUnitTest.java  |   300 -
 .../AbstractLauncherJUnitTestCase.java          |   255 -
 .../AbstractLauncherServiceStatusJUnitTest.java |   265 -
 .../AbstractLocatorLauncherJUnitTestCase.java   |   106 -
 .../AbstractServerLauncherJUnitTestCase.java    |    94 -
 .../gemfire/distributed/AuthInitializer.java    |    45 -
 .../distributed/DistributedMemberDUnitTest.java |   432 -
 .../DistributedSystemConnectPerf.java           |   135 -
 .../distributed/DistributedSystemDUnitTest.java |   406 -
 .../DistributedSystemIntegrationJUnitTest.java  |    91 -
 .../distributed/DistributedSystemJUnitTest.java |    78 -
 .../distributed/DistributedTestSuite.java       |    36 -
 .../distributed/HostedLocatorsDUnitTest.java    |   195 -
 .../LauncherMemberMXBeanJUnitTest.java          |   153 -
 .../gemfire/distributed/LauncherTestSuite.java  |    48 -
 .../gemfire/distributed/LocatorDUnitTest.java   |  1910 --
 .../gemfire/distributed/LocatorJUnitTest.java   |   200 -
 .../LocatorLauncherIntegrationJUnitTest.java    |   248 -
 .../distributed/LocatorLauncherJUnitTest.java   |   322 -
 .../LocatorLauncherLocalFileJUnitTest.java      |    52 -
 .../LocatorLauncherLocalJUnitTest.java          |   843 -
 .../LocatorLauncherRemoteFileJUnitTest.java     |   219 -
 .../LocatorLauncherRemoteJUnitTest.java         |  1005 -
 .../distributed/LocatorStateJUnitTest.java      |   208 -
 .../gemfire/distributed/MyAuthenticator.java    |    54 -
 .../gemfire/distributed/MyPrincipal.java        |    29 -
 .../gemfire/distributed/RoleDUnitTest.java      |   170 -
 .../ServerLauncherIntegrationJUnitTest.java     |   312 -
 .../distributed/ServerLauncherJUnitTest.java    |   809 -
 .../ServerLauncherLocalFileJUnitTest.java       |    55 -
 .../ServerLauncherLocalJUnitTest.java           |  1076 --
 .../ServerLauncherRemoteFileJUnitTest.java      |   223 -
 .../ServerLauncherRemoteJUnitTest.java          |  1428 --
 .../ServerLauncherWithSpringJUnitTest.java      |    99 -
 .../distributed/SystemAdminDUnitTest.java       |   125 -
 .../AtomicLongWithTerminalStateJUnitTest.java   |    41 -
 .../distributed/internal/Bug40751DUnitTest.java |   138 -
 .../ConsoleDistributionManagerDUnitTest.java    |   442 -
 .../distributed/internal/DateMessage.java       |    98 -
 .../internal/DistributionAdvisorDUnitTest.java  |    98 -
 .../internal/DistributionConfigJUnitTest.java   |   313 -
 .../internal/DistributionManagerDUnitTest.java  |   579 -
 .../InternalDistributedSystemJUnitTest.java     |   831 -
 .../gemfire/distributed/internal/LDM.java       |    71 -
 .../internal/LocatorLoadSnapshotJUnitTest.java  |   384 -
 .../internal/ProduceDateMessages.java           |    53 -
 .../internal/ProductUseLogDUnitTest.java        |   108 -
 .../internal/ProductUseLogJUnitTest.java        |    86 -
 .../internal/ServerLocatorJUnitTest.java        |    74 -
 .../internal/SharedConfigurationJUnitTest.java  |    57 -
 .../internal/StartupMessageDataJUnitTest.java   |   296 -
 .../deadlock/DeadlockDetectorJUnitTest.java     |   333 -
 .../deadlock/DependencyGraphJUnitTest.java      |    87 -
 .../GemFireDeadlockDetectorDUnitTest.java       |   243 -
 .../deadlock/UnsafeThreadLocalJUnitTest.java    |    61 -
 .../internal/locks/CollaborationJUnitTest.java  |   617 -
 .../internal/locks/DLockGrantorHelper.java      |    98 -
 .../locks/DLockReentrantLockJUnitTest.java      |    84 -
 .../membership/MembershipJUnitTest.java         |   364 -
 .../internal/membership/NetViewJUnitTest.java   |   269 -
 .../membership/gms/GMSMemberJUnitTest.java      |   164 -
 .../membership/gms/MembershipManagerHelper.java |   171 -
 .../gms/auth/GMSAuthenticatorJUnitTest.java     |   316 -
 .../gms/fd/GMSHealthMonitorJUnitTest.java       |   638 -
 .../locator/GMSLocatorRecoveryJUnitTest.java    |   186 -
 .../gms/membership/GMSJoinLeaveJUnitTest.java   |  1231 --
 .../gms/membership/StatRecorderJUnitTest.java   |   227 -
 .../messenger/GMSQuorumCheckerJUnitTest.java    |   359 -
 .../membership/gms/messenger/InterceptUDP.java  |   109 -
 .../messenger/JGroupsMessengerJUnitTest.java    |   881 -
 .../gms/mgr/GMSMembershipManagerJUnitTest.java  |   436 -
 .../StreamingOperationManyDUnitTest.java        |   223 -
 .../StreamingOperationOneDUnitTest.java         |   182 -
 .../TcpServerBackwardCompatDUnitTest.java       |   257 -
 .../internal/tcpserver/TcpServerJUnitTest.java  |   221 -
 .../support/DistributedSystemAdapter.java       |   258 -
 .../gemfire/disttx/CacheMapDistTXDUnitTest.java |    65 -
 .../gemfire/disttx/DistTXDebugDUnitTest.java    |  1018 -
 .../disttx/DistTXDistributedTestSuite.java      |    42 -
 .../gemfire/disttx/DistTXExpiryJUnitTest.java   |    57 -
 .../gemfire/disttx/DistTXJUnitTest.java         |    96 -
 .../disttx/DistTXManagerImplJUnitTest.java      |    54 -
 .../gemfire/disttx/DistTXOrderDUnitTest.java    |    55 -
 .../disttx/DistTXPersistentDebugDUnitTest.java  |   132 -
 .../DistTXReleasesOffHeapOnCloseJUnitTest.java  |    53 -
 .../disttx/DistTXRestrictionsDUnitTest.java     |    46 -
 .../disttx/DistTXWithDeltaDUnitTest.java        |    38 -
 .../gemfire/disttx/DistTXWriterJUnitTest.java   |    56 -
 .../disttx/DistTXWriterOOMEJUnitTest.java       |    57 -
 .../disttx/DistributedTransactionDUnitTest.java |  2202 ---
 .../gemfire/disttx/PRDistTXDUnitTest.java       |    65 -
 .../gemfire/disttx/PRDistTXJUnitTest.java       |    92 -
 .../disttx/PRDistTXWithVersionsDUnitTest.java   |    66 -
 ...entPartitionedRegionWithDistTXDUnitTest.java |    46 -
 .../internal/AbstractConfigJUnitTest.java       |   114 -
 .../gemfire/internal/ArrayEqualsJUnitTest.java  |   193 -
 .../gemfire/internal/AvailablePortHelper.java   |   133 -
 .../internal/AvailablePortJUnitTest.java        |    75 -
 ...wardCompatibilitySerializationDUnitTest.java |   300 -
 .../gemfire/internal/Bug49856JUnitTest.java     |    85 -
 .../gemfire/internal/Bug51616JUnitTest.java     |    61 -
 .../gemfire/internal/ByteArrayData.java         |    73 -
 .../gemstone/gemfire/internal/ClassBuilder.java |   291 -
 .../ClassNotFoundExceptionDUnitTest.java        |   244 -
 .../internal/ClassPathLoaderJUnitTest.java      |  1262 --
 .../gemfire/internal/ConfigSourceJUnitTest.java |    89 -
 .../internal/CopyOnWriteHashSetJUnitTest.java   |   103 -
 .../internal/DataSerializableJUnitTest.java     |  3671 ----
 .../gemfire/internal/FileUtilJUnitTest.java     |    87 -
 .../internal/GemFireStatSamplerJUnitTest.java   |   618 -
 .../GemFireVersionIntegrationJUnitTest.java     |    54 -
 .../internal/GemFireVersionJUnitTest.java       |   102 -
 .../internal/HeapDataOutputStreamJUnitTest.java |   154 -
 .../gemfire/internal/InlineKeyJUnitTest.java    |   173 -
 .../gemfire/internal/JSSESocketJUnitTest.java   |   247 -
 .../internal/JarClassLoaderJUnitTest.java       |   828 -
 .../gemfire/internal/JarDeployerDUnitTest.java  |   747 -
 .../com/gemstone/gemfire/internal/JavaExec.java |    69 -
 .../gemfire/internal/LineWrapUnitJUnitTest.java |    52 -
 .../gemstone/gemfire/internal/LongBuffer.java   |    96 -
 .../gemfire/internal/NanoTimerJUnitTest.java    |   134 -
 .../gemfire/internal/ObjIdMapJUnitTest.java     |   256 -
 .../internal/OneTaskOnlyDecoratorJUnitTest.java |   165 -
 .../internal/PdxDeleteFieldDUnitTest.java       |   213 -
 .../internal/PdxDeleteFieldJUnitTest.java       |   214 -
 .../gemfire/internal/PdxRenameDUnitTest.java    |   217 -
 .../gemfire/internal/PdxRenameJUnitTest.java    |   164 -
 .../PutAllOperationContextJUnitTest.java        |   197 -
 .../internal/SSLConfigIntegrationJUnitTest.java |    51 -
 .../gemfire/internal/SSLConfigJUnitTest.java    |  1233 --
 ...hreadPoolExecutorWithKeepAliveJUnitTest.java |   342 -
 .../internal/SimpleStatSamplerJUnitTest.java    |   358 -
 .../gemfire/internal/SocketCloserJUnitTest.java |   195 -
 .../internal/SocketCloserWithWaitJUnitTest.java |    38 -
 .../StatArchiveWriterReaderJUnitTest.java       |  1735 --
 .../gemfire/internal/StatSamplerJUnitTest.java  |   361 -
 .../gemfire/internal/StatSamplerTestCase.java   |   185 -
 .../internal/UniqueIdGeneratorJUnitTest.java    |    68 -
 .../internal/cache/AbstractRegionJUnitTest.java |   513 -
 .../internal/cache/AbstractRegionMapTest.java   |   186 -
 .../gemfire/internal/cache/BackupDUnitTest.java |   800 -
 .../gemfire/internal/cache/BackupJUnitTest.java |   435 -
 .../internal/cache/Bug33359DUnitTest.java       |   160 -
 .../internal/cache/Bug33726DUnitTest.java       |   161 -
 .../internal/cache/Bug33726JUnitTest.java       |   134 -
 .../Bug34179TooManyFilesOpenJUnitTest.java      |   130 -
 .../internal/cache/Bug34583JUnitTest.java       |   101 -
 .../internal/cache/Bug37241DUnitTest.java       |   233 -
 .../internal/cache/Bug37244JUnitTest.java       |   279 -
 .../internal/cache/Bug37377DUnitTest.java       |   380 -
 .../internal/cache/Bug37500JUnitTest.java       |   184 -
 .../internal/cache/Bug39079DUnitTest.java       |   411 -
 .../internal/cache/Bug40299DUnitTest.java       |   304 -
 .../internal/cache/Bug40632DUnitTest.java       |   148 -
 .../internal/cache/Bug41091DUnitTest.java       |   174 -
 .../internal/cache/Bug41733DUnitTest.java       |   216 -
 .../internal/cache/Bug41957DUnitTest.java       |   161 -
 .../internal/cache/Bug42055DUnitTest.java       |    88 -
 .../internal/cache/Bug45164DUnitTest.java       |   104 -
 .../internal/cache/Bug45934DUnitTest.java       |   134 -
 .../internal/cache/Bug47667DUnitTest.java       |    87 -
 .../internal/cache/Bug48182JUnitTest.java       |   200 -
 .../internal/cache/CacheAdvisorDUnitTest.java   |   281 -
 .../cache/CacheLifecycleListenerJUnitTest.java  |   324 -
 .../internal/cache/CacheServiceJUnitTest.java   |    59 -
 .../cache/ChunkValueWrapperJUnitTest.java       |   188 -
 .../internal/cache/ClearDAckDUnitTest.java      |   286 -
 .../internal/cache/ClearGlobalDUnitTest.java    |   214 -
 ...ssagesRegionCreationAndDestroyJUnitTest.java |   173 -
 .../cache/ClientServerGetAllDUnitTest.java      |   817 -
 ...ServerInvalidAndDestroyedEntryDUnitTest.java |   514 -
 .../ClientServerTransactionCCEDUnitTest.java    |   108 -
 .../cache/ClientServerTransactionDUnitTest.java |  3389 ----
 .../cache/ComplexDiskRegionJUnitTest.java       |   169 -
 .../ConcurrentDestroySubRegionDUnitTest.java    |   173 -
 ...entFlushingAndRegionOperationsJUnitTest.java |   641 -
 .../cache/ConcurrentMapLocalJUnitTest.java      |   105 -
 .../cache/ConcurrentMapOpsDUnitTest.java        |  1238 --
 .../ConcurrentRegionOperationsJUnitTest.java    |   925 -
 ...rentRollingAndRegionOperationsJUnitTest.java |   996 -
 .../internal/cache/ConflationJUnitTest.java     |   409 -
 .../cache/ConnectDisconnectDUnitTest.java       |   185 -
 .../cache/CustomerIDPartitionResolver.java      |    86 -
 .../internal/cache/DeltaFaultInDUnitTest.java   |   145 -
 .../cache/DeltaPropagationDUnitTest.java        |  1515 --
 .../cache/DeltaPropagationStatsDUnitTest.java   |   626 -
 .../internal/cache/DeltaSizingDUnitTest.java    |   265 -
 .../gemfire/internal/cache/DiskIFJUnitTest.java |   796 -
 .../gemfire/internal/cache/DiskIdJUnitTest.java |   238 -
 .../internal/cache/DiskInitFileJUnitTest.java   |   113 -
 .../cache/DiskOfflineCompactionJUnitTest.java   |   826 -
 .../internal/cache/DiskOldAPIsJUnitTest.java    |   437 -
 ...iskRandomOperationsAndRecoveryJUnitTest.java |   715 -
 .../cache/DiskRegByteArrayDUnitTest.java        |   270 -
 .../cache/DiskRegCacheXmlJUnitTest.java         |   299 -
 .../DiskRegCachexmlGeneratorJUnitTest.java      |   302 -
 .../internal/cache/DiskRegCbkChkJUnitTest.java  |   118 -
 .../DiskRegOplogSwtchingAndRollerJUnitTest.java |  1021 -
 .../cache/DiskRegRecoveryJUnitTest.java         |  1495 --
 .../cache/DiskRegionAsyncRecoveryJUnitTest.java |   538 -
 ...RegionChangingRegionAttributesJUnitTest.java |   143 -
 .../cache/DiskRegionClearJUnitTest.java         |   288 -
 .../internal/cache/DiskRegionHelperFactory.java |   263 -
 .../DiskRegionIllegalArguementsJUnitTest.java   |   281 -
 ...iskRegionIllegalCacheXMLvaluesJUnitTest.java |   146 -
 .../internal/cache/DiskRegionJUnitTest.java     |  3141 ---
 .../internal/cache/DiskRegionProperties.java    |   222 -
 .../internal/cache/DiskRegionTestingBase.java   |   404 -
 .../cache/DiskStoreFactoryJUnitTest.java        |   450 -
 .../cache/DiskWriteAttributesJUnitTest.java     |   223 -
 ...DistrbutedRegionProfileOffHeapDUnitTest.java |   252 -
 .../cache/DistributedCacheTestCase.java         |   473 -
 .../cache/EnumListenerEventJUnitTest.java       |    73 -
 .../internal/cache/EventTrackerDUnitTest.java   |   418 -
 .../internal/cache/EvictionDUnitTest.java       |   247 -
 .../cache/EvictionObjectSizerDUnitTest.java     |   358 -
 .../internal/cache/EvictionStatsDUnitTest.java  |   557 -
 .../internal/cache/EvictionTestBase.java        |   578 -
 .../internal/cache/FaultingInJUnitTest.java     |   236 -
 .../cache/FixedPRSinglehopDUnitTest.java        |   896 -
 .../internal/cache/GIIDeltaDUnitTest.java       |  2632 ---
 .../internal/cache/GIIFlowControlDUnitTest.java |   455 -
 .../internal/cache/GridAdvisorDUnitTest.java    |  1081 --
 .../internal/cache/HABug36773DUnitTest.java     |   370 -
 .../HAOverflowMemObjectSizerDUnitTest.java      |   302 -
 .../cache/IncrementalBackupDUnitTest.java       |  1104 --
 .../cache/InterruptClientServerDUnitTest.java   |   252 -
 .../internal/cache/InterruptDiskJUnitTest.java  |   135 -
 ...InterruptsConserveSocketsFalseDUnitTest.java |    37 -
 .../internal/cache/InterruptsDUnitTest.java     |   213 -
 .../internal/cache/IteratorDUnitTest.java       |   104 -
 .../LIFOEvictionAlgoEnabledRegionJUnitTest.java |   343 -
 ...victionAlgoMemoryEnabledRegionJUnitTest.java |   436 -
 .../internal/cache/MapClearGIIDUnitTest.java    |   286 -
 .../internal/cache/MapInterface2JUnitTest.java  |   281 -
 .../internal/cache/MapInterfaceJUnitTest.java   |   301 -
 .../internal/cache/MockCacheService.java        |    24 -
 .../internal/cache/MockCacheServiceImpl.java    |    39 -
 .../MultipleOplogsRollingFeatureJUnitTest.java  |   257 -
 .../cache/NetSearchMessagingDUnitTest.java      |   442 -
 .../cache/OffHeapEvictionDUnitTest.java         |   135 -
 .../cache/OffHeapEvictionStatsDUnitTest.java    |    88 -
 .../gemfire/internal/cache/OffHeapTestUtil.java |    64 -
 .../cache/OfflineSnapshotJUnitTest.java         |   137 -
 .../gemfire/internal/cache/OldVLJUnitTest.java  |    92 -
 .../cache/OldValueImporterTestBase.java         |   181 -
 .../cache/OplogEntryIdMapJUnitTest.java         |    99 -
 .../cache/OplogEntryIdSetJUnitTest.java         |    83 -
 .../gemfire/internal/cache/OplogJUnitTest.java  |  4034 ----
 .../internal/cache/OplogRVVJUnitTest.java       |   173 -
 .../cache/OrderedTombstoneMapJUnitTest.java     |    59 -
 .../cache/P2PDeltaPropagationDUnitTest.java     |   614 -
 .../internal/cache/PRBadToDataDUnitTest.java    |   109 -
 .../cache/PRConcurrentMapOpsJUnitTest.java      |   231 -
 .../cache/PRDataStoreMemoryJUnitTest.java       |   154 -
 .../PRDataStoreMemoryOffHeapJUnitTest.java      |    51 -
 .../gemfire/internal/cache/PRTXJUnitTest.java   |   150 -
 .../cache/PartitionAttributesImplJUnitTest.java |   543 -
 .../cache/PartitionListenerDUnitTest.java       |   203 -
 ...dRegionAPIConserveSocketsFalseDUnitTest.java |    45 -
 .../cache/PartitionedRegionAPIDUnitTest.java    |  1512 --
 .../PartitionedRegionAsSubRegionDUnitTest.java  |   337 -
 ...gionBucketCreationDistributionDUnitTest.java |  1543 --
 .../PartitionedRegionCacheCloseDUnitTest.java   |   297 -
 ...rtitionedRegionCacheLoaderForRootRegion.java |    62 -
 ...artitionedRegionCacheLoaderForSubRegion.java |    65 -
 ...rtitionedRegionCacheXMLExampleDUnitTest.java |   134 -
 .../PartitionedRegionCreationDUnitTest.java     |   914 -
 .../PartitionedRegionCreationJUnitTest.java     |   548 -
 .../cache/PartitionedRegionDUnitTestCase.java   |   531 -
 .../PartitionedRegionDataStoreJUnitTest.java    |   260 -
 ...rtitionedRegionDelayedRecoveryDUnitTest.java |   310 -
 .../PartitionedRegionDestroyDUnitTest.java      |   309 -
 .../PartitionedRegionEntryCountDUnitTest.java   |   149 -
 .../PartitionedRegionEvictionDUnitTest.java     |  1762 --
 .../cache/PartitionedRegionHADUnitTest.java     |   506 -
 ...onedRegionHAFailureAndRecoveryDUnitTest.java |   535 -
 .../cache/PartitionedRegionHelperJUnitTest.java |    48 -
 .../PartitionedRegionInvalidateDUnitTest.java   |   212 -
 ...artitionedRegionLocalMaxMemoryDUnitTest.java |   318 -
 ...nedRegionLocalMaxMemoryOffHeapDUnitTest.java |    73 -
 .../PartitionedRegionMultipleDUnitTest.java     |   600 -
 ...rtitionedRegionOffHeapEvictionDUnitTest.java |    94 -
 .../cache/PartitionedRegionPRIDDUnitTest.java   |   270 -
 .../cache/PartitionedRegionQueryDUnitTest.java  |  1160 --
 ...artitionedRegionQueryEvaluatorJUnitTest.java |   307 -
 ...artitionedRegionRedundancyZoneDUnitTest.java |   165 -
 ...tionedRegionSerializableObjectJUnitTest.java |   178 -
 .../PartitionedRegionSingleHopDUnitTest.java    |  2386 ---
 ...RegionSingleHopWithServerGroupDUnitTest.java |  1738 --
 ...onedRegionSingleNodeOperationsJUnitTest.java |  1542 --
 .../cache/PartitionedRegionSizeDUnitTest.java   |   609 -
 .../cache/PartitionedRegionStatsDUnitTest.java  |   649 -
 .../cache/PartitionedRegionStatsJUnitTest.java  |   534 -
 .../cache/PartitionedRegionTestHelper.java      |   337 -
 .../PartitionedRegionTestUtilsDUnitTest.java    |   576 -
 .../PartitionedRegionWithSameNameDUnitTest.java |   924 -
 .../PersistentPartitionedRegionJUnitTest.java   |   225 -
 .../internal/cache/PutAllDAckDUnitTest.java     |   228 -
 .../internal/cache/PutAllGlobalDUnitTest.java   |   296 -
 .../cache/RegionEntryFlagsJUnitTest.java        |    97 -
 .../internal/cache/RegionListenerJUnitTest.java |    63 -
 .../cache/RemotePutReplyMessageJUnitTest.java   |    53 -
 .../cache/RemoteTransactionCCEDUnitTest.java    |    35 -
 .../cache/RemoteTransactionDUnitTest.java       |  4322 -----
 .../internal/cache/RemoveAllDAckDUnitTest.java  |   173 -
 .../internal/cache/RemoveDAckDUnitTest.java     |   201 -
 .../internal/cache/RemoveGlobalDUnitTest.java   |   250 -
 .../internal/cache/RunCacheInOldGemfire.java    |   188 -
 .../cache/SimpleDiskRegionJUnitTest.java        |   390 -
 .../internal/cache/SingleHopStatsDUnitTest.java |   549 -
 .../internal/cache/SizingFlagDUnitTest.java     |  1039 -
 .../internal/cache/SnapshotTestUtil.java        |    47 -
 .../internal/cache/SystemFailureDUnitTest.java  |   877 -
 .../internal/cache/TXManagerImplJUnitTest.java  |   334 -
 .../cache/TXReservationMgrJUnitTest.java        |   150 -
 .../gemfire/internal/cache/TestDelta.java       |    96 -
 .../internal/cache/TestHelperForHydraTests.java |    32 -
 .../internal/cache/TestNonSizerObject.java      |    63 -
 .../internal/cache/TestObjectSizerImpl.java     |    72 -
 .../gemfire/internal/cache/TestUtils.java       |    32 -
 .../cache/TombstoneCreationJUnitTest.java       |   231 -
 .../cache/TransactionsWithDeltaDUnitTest.java   |   376 -
 .../internal/cache/UnitTestValueHolder.java     |    43 -
 .../gemfire/internal/cache/UnzipUtil.java       |    84 -
 .../internal/cache/UpdateVersionJUnitTest.java  |   407 -
 .../gemfire/internal/cache/VLJUnitTest.java     |   130 -
 .../cache/control/FilterByPathJUnitTest.java    |    96 -
 .../cache/control/MemoryMonitorJUnitTest.java   |   762 -
 .../control/MemoryMonitorOffHeapJUnitTest.java  |   338 -
 .../control/MemoryThresholdsJUnitTest.java      |   152 -
 .../control/RebalanceOperationDUnitTest.java    |  3269 ----
 .../control/TestMemoryThresholdListener.java    |   169 -
 ...skRegOverflowAsyncGetInMemPerfJUnitTest.java |   136 -
 ...iskRegOverflowAsyncJUnitPerformanceTest.java |   167 -
 ...lowSyncGetInMemPerfJUnitPerformanceTest.java |   129 -
 ...DiskRegOverflowSyncJUnitPerformanceTest.java |   169 -
 ...egionOverflowAsyncRollingOpLogJUnitTest.java |   225 -
 ...RegionOverflowSyncRollingOpLogJUnitTest.java |   223 -
 .../DiskRegionPerfJUnitPerformanceTest.java     |   570 -
 .../DiskRegionPersistOnlySyncJUnitTest.java     |   234 -
 ...DiskRegionRollOpLogJUnitPerformanceTest.java |   638 -
 ...ltiThreadedOplogPerJUnitPerformanceTest.java |   216 -
 .../cache/execute/Bug51193DUnitTest.java        |   247 -
 .../ClientServerFunctionExecutionDUnitTest.java |   952 -
 .../execute/ColocationFailoverDUnitTest.java    |   531 -
 .../cache/execute/CustomResultCollector.java    |    50 -
 .../execute/CustomerIDPartitionResolver.java    |    82 -
 ...ributedRegionFunctionExecutionDUnitTest.java |  1657 --
 .../FunctionExecution_ExceptionDUnitTest.java   |   646 -
 .../execute/FunctionServiceStatsDUnitTest.java  |  1364 --
 .../cache/execute/LocalDataSetDUnitTest.java    |   390 -
 .../cache/execute/LocalDataSetFunction.java     |    90 -
 .../execute/LocalDataSetIndexingDUnitTest.java  |   303 -
 .../LocalFunctionExecutionDUnitTest.java        |   185 -
 .../MemberFunctionExecutionDUnitTest.java       |   682 -
 .../MultiRegionFunctionExecutionDUnitTest.java  |   298 -
 .../execute/MyFunctionExecutionException.java   |    59 -
 .../cache/execute/MyTransactionFunction.java    |   517 -
 .../OnGroupsFunctionExecutionDUnitTest.java     |  1246 --
 ...ntServerFunctionExecutionNoAckDUnitTest.java |   254 -
 ...tServerRegionFunctionExecutionDUnitTest.java |  1672 --
 ...egionFunctionExecutionFailoverDUnitTest.java |   579 -
 ...onFunctionExecutionNoSingleHopDUnitTest.java |  1273 --
 ...onExecutionSelectorNoSingleHopDUnitTest.java |  1231 --
 ...gionFunctionExecutionSingleHopDUnitTest.java |  1219 --
 .../cache/execute/PRClientServerTestBase.java   |   872 -
 .../cache/execute/PRColocationDUnitTest.java    |  2737 ---
 .../execute/PRCustomPartitioningDUnitTest.java  |   575 -
 .../execute/PRFunctionExecutionDUnitTest.java   |  3215 ---
 .../PRFunctionExecutionTimeOutDUnitTest.java    |   885 -
 ...ctionExecutionWithResultSenderDUnitTest.java |   663 -
 .../execute/PRPerformanceTestDUnitTest.java     |   425 -
 .../cache/execute/PRTransactionDUnitTest.java   |   765 -
 .../PRTransactionWithVersionsDUnitTest.java     |    29 -
 .../internal/cache/execute/PerfFunction.java    |    69 -
 .../internal/cache/execute/PerfTxFunction.java  |    74 -
 .../cache/execute/PerformanceTestFunction.java  |    74 -
 .../execute/SingleHopGetAllPutAllDUnitTest.java |   200 -
 .../internal/cache/execute/TestFunction.java    |   150 -
 .../internal/cache/execute/data/CustId.java     |    72 -
 .../internal/cache/execute/data/Customer.java   |    77 -
 .../internal/cache/execute/data/Order.java      |    65 -
 .../internal/cache/execute/data/OrderId.java    |    82 -
 .../internal/cache/execute/data/Shipment.java   |    65 -
 .../internal/cache/execute/data/ShipmentId.java |    89 -
 .../SimpleExtensionPointJUnitTest.java          |   215 -
 .../extension/mock/AbstractMockExtension.java   |    61 -
 .../mock/AbstractMockExtensionXmlGenerator.java |    41 -
 .../mock/AlterMockCacheExtensionFunction.java   |    90 -
 .../mock/AlterMockRegionExtensionFunction.java  |   104 -
 .../mock/CreateMockCacheExtensionFunction.java  |    86 -
 .../mock/CreateMockRegionExtensionFunction.java |   101 -
 .../mock/DestroyMockCacheExtensionFunction.java |    89 -
 .../DestroyMockRegionExtensionFunction.java     |    99 -
 .../extension/mock/MockCacheExtension.java      |    53 -
 .../mock/MockCacheExtensionXmlGenerator.java    |    57 -
 .../extension/mock/MockExtensionCommands.java   |   219 -
 .../extension/mock/MockExtensionXmlParser.java  |   102 -
 .../extension/mock/MockRegionExtension.java     |    47 -
 .../mock/MockRegionExtensionXmlGenerator.java   |    57 -
 ...gionFunctionFunctionInvocationException.java |    60 -
 .../functions/DistributedRegionFunction.java    |    97 -
 .../cache/functions/LocalDataSetFunction.java   |    89 -
 .../internal/cache/functions/TestFunction.java  |  1148 --
 .../ha/BlockingHARQAddOperationJUnitTest.java   |   239 -
 .../cache/ha/BlockingHARQStatsJUnitTest.java    |    77 -
 .../cache/ha/BlockingHARegionJUnitTest.java     |   480 -
 .../ha/BlockingHARegionQueueJUnitTest.java      |   213 -
 .../cache/ha/Bug36853EventsExpiryDUnitTest.java |   307 -
 .../internal/cache/ha/Bug48571DUnitTest.java    |   262 -
 .../internal/cache/ha/Bug48879DUnitTest.java    |   221 -
 .../internal/cache/ha/ConflatableObject.java    |   221 -
 .../cache/ha/EventIdOptimizationDUnitTest.java  |   595 -
 .../cache/ha/EventIdOptimizationJUnitTest.java  |   253 -
 .../internal/cache/ha/FailoverDUnitTest.java    |   345 -
 .../internal/cache/ha/HABugInPutDUnitTest.java  |   185 -
 .../internal/cache/ha/HAClearDUnitTest.java     |   662 -
 .../cache/ha/HAConflationDUnitTest.java         |   447 -
 .../internal/cache/ha/HADuplicateDUnitTest.java |   333 -
 .../cache/ha/HAEventIdPropagationDUnitTest.java |   880 -
 .../internal/cache/ha/HAExpiryDUnitTest.java    |   285 -
 .../internal/cache/ha/HAGIIBugDUnitTest.java    |   418 -
 .../internal/cache/ha/HAGIIDUnitTest.java       |   473 -
 .../gemfire/internal/cache/ha/HAHelper.java     |    51 -
 .../cache/ha/HARQAddOperationJUnitTest.java     |  1203 --
 .../cache/ha/HARQueueNewImplDUnitTest.java      |  1372 --
 .../internal/cache/ha/HARegionDUnitTest.java    |   406 -
 .../internal/cache/ha/HARegionJUnitTest.java    |   222 -
 .../cache/ha/HARegionQueueDUnitTest.java        |  1150 --
 .../cache/ha/HARegionQueueJUnitTest.java        |  2153 ---
 .../ha/HARegionQueueStartStopJUnitTest.java     |   133 -
 .../cache/ha/HARegionQueueStatsJUnitTest.java   |   504 -
 .../cache/ha/HASlowReceiverDUnitTest.java       |   294 -
 .../ha/OperationsPropagationDUnitTest.java      |   504 -
 .../internal/cache/ha/PutAllDUnitTest.java      |   598 -
 .../internal/cache/ha/StatsBugDUnitTest.java    |   375 -
 .../cache/ha/TestBlockingHARegionQueue.java     |   129 -
 .../cache/ha/ThreadIdentifierJUnitTest.java     |   116 -
 .../cache/locks/TXLockServiceDUnitTest.java     |   736 -
 .../internal/cache/lru/LRUClockJUnitTest.java   |   519 -
 .../cache/partitioned/Bug39356DUnitTest.java    |   236 -
 .../cache/partitioned/Bug43684DUnitTest.java    |   343 -
 .../cache/partitioned/Bug47388DUnitTest.java    |   292 -
 .../cache/partitioned/Bug51400DUnitTest.java    |   208 -
 .../partitioned/ElidedPutAllDUnitTest.java      |   123 -
 .../OfflineMembersDetailsJUnitTest.java         |    59 -
 .../partitioned/PartitionResolverDUnitTest.java |   411 -
 .../PartitionedRegionLoadModelJUnitTest.java    |  1560 --
 .../PartitionedRegionLoaderWriterDUnitTest.java |   228 -
 ...rtitionedRegionMetaDataCleanupDUnitTest.java |   193 -
 .../partitioned/PersistPRKRFDUnitTest.java      |   234 -
 ...tentColocatedPartitionedRegionDUnitTest.java |  1597 --
 .../PersistentPartitionedRegionDUnitTest.java   |  2227 ---
 ...tentPartitionedRegionOldConfigDUnitTest.java |    51 -
 .../PersistentPartitionedRegionTestBase.java    |   807 -
 ...rtitionedRegionWithTransactionDUnitTest.java |   185 -
 .../PutPutReplyMessageJUnitTest.java            |    54 -
 .../cache/partitioned/ShutdownAllDUnitTest.java |   847 -
 ...treamingPartitionOperationManyDUnitTest.java |   250 -
 ...StreamingPartitionOperationOneDUnitTest.java |   233 -
 .../fixed/CustomerFixedPartitionResolver.java   |   113 -
 .../fixed/FixedPartitioningDUnitTest.java       |  1695 --
 .../fixed/FixedPartitioningTestBase.java        |  1407 --
 ...ngWithColocationAndPersistenceDUnitTest.java |  1436 --
 .../cache/partitioned/fixed/MyDate1.java        |    72 -
 .../cache/partitioned/fixed/MyDate2.java        |    52 -
 .../cache/partitioned/fixed/MyDate3.java        |    72 -
 .../fixed/QuarterPartitionResolver.java         |   142 -
 .../SingleHopQuarterPartitionResolver.java      |   173 -
 .../persistence/BackupInspectorJUnitTest.java   |   236 -
 .../PersistentRVVRecoveryDUnitTest.java         |  1006 -
 .../PersistentRecoveryOrderDUnitTest.java       |  1843 --
 ...rsistentRecoveryOrderOldConfigDUnitTest.java |    66 -
 .../PersistentReplicatedTestBase.java           |   240 -
 .../TemporaryResultSetFactoryJUnitTest.java     |   136 -
 .../RegionEntryFactoryBuilderJUnitTest.java     |    85 -
 .../GFSnapshotJUnitPerformanceTest.java         |   158 -
 .../internal/cache/tier/Bug40396DUnitTest.java  |   214 -
 .../tier/sockets/AcceptorImplJUnitTest.java     |   276 -
 ...mpatibilityHigherVersionClientDUnitTest.java |   258 -
 .../cache/tier/sockets/Bug36269DUnitTest.java   |   228 -
 .../cache/tier/sockets/Bug36457DUnitTest.java   |   216 -
 .../cache/tier/sockets/Bug36805DUnitTest.java   |   248 -
 .../cache/tier/sockets/Bug36829DUnitTest.java   |   175 -
 .../cache/tier/sockets/Bug36995DUnitTest.java   |   265 -
 .../cache/tier/sockets/Bug37210DUnitTest.java   |   296 -
 .../cache/tier/sockets/Bug37805DUnitTest.java   |   141 -
 .../CacheServerMaxConnectionsJUnitTest.java     |   225 -
 ...heServerSelectorMaxConnectionsJUnitTest.java |    35 -
 .../cache/tier/sockets/CacheServerTestUtil.java |   646 -
 .../CacheServerTransactionsDUnitTest.java       |   855 -
 ...acheServerTransactionsSelectorDUnitTest.java |    35 -
 .../tier/sockets/ClearPropagationDUnitTest.java |   488 -
 .../tier/sockets/ClientConflationDUnitTest.java |   540 -
 .../sockets/ClientHealthMonitorJUnitTest.java   |   261 -
 .../ClientHealthMonitorSelectorJUnitTest.java   |    35 -
 .../sockets/ClientInterestNotifyDUnitTest.java  |   651 -
 .../tier/sockets/ClientServerMiscDUnitTest.java |  1394 --
 .../ClientServerMiscSelectorDUnitTest.java      |    36 -
 .../cache/tier/sockets/ConflationDUnitTest.java |   920 -
 .../tier/sockets/ConnectionProxyJUnitTest.java  |   857 -
 .../DataSerializerPropogationDUnitTest.java     |  1394 --
 .../cache/tier/sockets/DeltaEOFException.java   |   113 -
 .../DestroyEntryPropagationDUnitTest.java       |   511 -
 .../sockets/DurableClientBug39997DUnitTest.java |   126 -
 .../DurableClientQueueSizeDUnitTest.java        |   434 -
 .../DurableClientReconnectAutoDUnitTest.java    |    59 -
 .../DurableClientReconnectDUnitTest.java        |   763 -
 .../sockets/DurableClientStatsDUnitTest.java    |   395 -
 .../sockets/DurableRegistrationDUnitTest.java   |   870 -
 .../sockets/DurableResponseMatrixDUnitTest.java |   526 -
 .../sockets/EventIDVerificationDUnitTest.java   |   508 -
 .../EventIDVerificationInP2PDUnitTest.java      |   334 -
 .../cache/tier/sockets/FaultyDelta.java         |   162 -
 .../FilterProfileIntegrationJUnitTest.java      |   110 -
 .../tier/sockets/FilterProfileJUnitTest.java    |   412 -
 .../ForceInvalidateEvictionDUnitTest.java       |   401 -
 ...ForceInvalidateOffHeapEvictionDUnitTest.java |    65 -
 .../cache/tier/sockets/HABug36738DUnitTest.java |   196 -
 .../sockets/HAInterestDistributedTestCase.java  |    31 -
 .../tier/sockets/HAInterestPart1DUnitTest.java  |   213 -
 .../tier/sockets/HAInterestPart2DUnitTest.java  |   376 -
 .../cache/tier/sockets/HAInterestTestCase.java  |  1021 -
 .../sockets/HAStartupAndFailoverDUnitTest.java  |   742 -
 .../internal/cache/tier/sockets/HaHelper.java   |    33 -
 .../InstantiatorPropagationDUnitTest.java       |  1775 --
 .../tier/sockets/InterestListDUnitTest.java     |  1215 --
 .../sockets/InterestListEndpointDUnitTest.java  |   503 -
 .../InterestListEndpointPRDUnitTest.java        |    42 -
 .../InterestListEndpointSelectorDUnitTest.java  |    35 -
 .../sockets/InterestListFailoverDUnitTest.java  |   322 -
 .../sockets/InterestListRecoveryDUnitTest.java  |   517 -
 .../sockets/InterestRegrListenerDUnitTest.java  |   469 -
 .../sockets/InterestResultPolicyDUnitTest.java  |   395 -
 .../sockets/NewRegionAttributesDUnitTest.java   |   491 -
 .../tier/sockets/ObjectPartListJUnitTest.java   |   130 -
 .../tier/sockets/RedundancyLevelJUnitTest.java  |   130 -
 .../sockets/RedundancyLevelPart1DUnitTest.java  |   542 -
 .../sockets/RedundancyLevelPart2DUnitTest.java  |   540 -
 .../sockets/RedundancyLevelPart3DUnitTest.java  |   249 -
 .../tier/sockets/RedundancyLevelTestBase.java   |   657 -
 .../tier/sockets/RegionCloseDUnitTest.java      |   246 -
 ...erInterestBeforeRegionCreationDUnitTest.java |   280 -
 .../sockets/RegisterInterestKeysDUnitTest.java  |   248 -
 .../RegisterInterestKeysPRDUnitTest.java        |    41 -
 .../sockets/ReliableMessagingDUnitTest.java     |   440 -
 .../internal/cache/tier/sockets/TestFilter.java |    58 -
 .../sockets/UnregisterInterestDUnitTest.java    |   342 -
 .../sockets/UpdatePropagationDUnitTest.java     |   603 -
 .../sockets/UpdatePropagationPRDUnitTest.java   |    40 -
 .../VerifyEventIDGenerationInP2PDUnitTest.java  |   188 -
 ...UpdatesFromNonInterestEndPointDUnitTest.java |   257 -
 .../tier/sockets/command/CommitCommandTest.java |    61 -
 .../cache/versions/RVVExceptionJUnitTest.java   |    48 -
 .../versions/RegionVersionHolder2JUnitTest.java |   178 -
 .../versions/RegionVersionHolderJUnitTest.java  |  1894 --
 .../RegionVersionHolderRandomJUnitTest.java     |   191 -
 ...RegionVersionHolderSmallBitSetJUnitTest.java |    46 -
 .../versions/RegionVersionVectorJUnitTest.java  |   546 -
 .../cache/wan/AsyncEventQueueTestBase.java      |  1671 --
 .../cache/wan/CustomAsyncEventListener.java     |    57 -
 .../gemfire/internal/cache/wan/Filter70.java    |    63 -
 .../cache/wan/MyAsyncEventListener.java         |    53 -
 .../cache/wan/MyAsyncEventListener2.java        |    98 -
 .../cache/wan/MyDistributedSystemListener.java  |    65 -
 .../cache/wan/MyGatewaySenderEventListener.java |    77 -
 .../wan/MyGatewaySenderEventListener2.java      |    77 -
 .../cache/wan/MyGatewayTransportFilter1.java    |    57 -
 .../cache/wan/MyGatewayTransportFilter2.java    |    56 -
 .../cache/wan/MyGatewayTransportFilter3.java    |    56 -
 .../cache/wan/MyGatewayTransportFilter4.java    |    56 -
 .../internal/cache/wan/QueueListener.java       |    79 -
 .../asyncqueue/AsyncEventListenerDUnitTest.java |  1922 --
 .../AsyncEventListenerOffHeapDUnitTest.java     |    33 -
 .../AsyncEventQueueStatsDUnitTest.java          |   320 -
 .../AsyncEventQueueValidationsJUnitTest.java    |    82 -
 .../ConcurrentAsyncEventQueueDUnitTest.java     |   336 -
 ...ncurrentAsyncEventQueueOffHeapDUnitTest.java |    32 -
 .../CommonParallelAsyncEventQueueDUnitTest.java |    61 -
 ...ParallelAsyncEventQueueOffHeapDUnitTest.java |    32 -
 .../ParallelGatewaySenderQueueJUnitTest.java    |    87 -
 ...ialGatewaySenderEventProcessorJUnitTest.java |    42 -
 .../xmlcache/AbstractXmlParserJUnitTest.java    |   168 -
 .../cache/xmlcache/CacheCreationJUnitTest.java  |   209 -
 .../cache/xmlcache/CacheXmlParserJUnitTest.java |   169 -
 .../xmlcache/CacheXmlVersionJUnitTest.java      |    75 -
 .../PivotalEntityResolverJUnitTest.java         |   145 -
 .../cache/xmlcache/RegionCreationJUnitTest.java |    57 -
 .../xmlcache/XmlGeneratorUtilsJUnitTest.java    |   250 -
 .../classpathloaderjunittest/DoesExist.java     |    21 -
 .../CompressionCacheConfigDUnitTest.java        |   190 -
 .../CompressionCacheListenerDUnitTest.java      |   362 -
 ...ompressionCacheListenerOffHeapDUnitTest.java |    76 -
 .../CompressionRegionConfigDUnitTest.java       |   527 -
 .../CompressionRegionFactoryDUnitTest.java      |   148 -
 .../CompressionRegionOperationsDUnitTest.java   |   541 -
 ...ressionRegionOperationsOffHeapDUnitTest.java |    69 -
 .../compression/CompressionStatsDUnitTest.java  |   681 -
 .../compression/SnappyCompressorJUnitTest.java  |    76 -
 .../datasource/AbstractPoolCacheJUnitTest.java  |   251 -
 .../internal/datasource/CleanUpJUnitTest.java   |   126 -
 .../ConnectionPoolCacheImplJUnitTest.java       |   213 -
 .../datasource/ConnectionPoolingJUnitTest.java  |   339 -
 .../datasource/DataSourceFactoryJUnitTest.java  |   115 -
 .../internal/datasource/RestartJUnitTest.java   |    82 -
 .../internal/i18n/BasicI18nJUnitTest.java       |   407 -
 .../io/CompositeOutputStreamJUnitTest.java      |   453 -
 .../gemfire/internal/jndi/ContextJUnitTest.java |   440 -
 .../internal/jta/BlockingTimeOutJUnitTest.java  |   311 -
 .../gemfire/internal/jta/CacheUtils.java        |   226 -
 .../internal/jta/DataSourceJTAJUnitTest.java    |  1024 -
 .../internal/jta/ExceptionJUnitTest.java        |   126 -
 .../jta/GlobalTransactionJUnitTest.java         |   254 -
 .../gemstone/gemfire/internal/jta/JTAUtils.java |   386 -
 .../internal/jta/JtaIntegrationJUnitTest.java   |   134 -
 .../gemstone/gemfire/internal/jta/SyncImpl.java |    39 -
 .../internal/jta/TransactionImplJUnitTest.java  |   109 -
 .../jta/TransactionManagerImplJUnitTest.java    |   298 -
 .../jta/TransactionTimeOutJUnitTest.java        |   333 -
 .../jta/UserTransactionImplJUnitTest.java       |   130 -
 .../internal/jta/dunit/CommitThread.java        |   176 -
 .../internal/jta/dunit/ExceptionsDUnitTest.java |   316 -
 .../jta/dunit/IdleTimeOutDUnitTest.java         |   345 -
 .../jta/dunit/LoginTimeOutDUnitTest.java        |   348 -
 .../jta/dunit/MaxPoolSizeDUnitTest.java         |   315 -
 .../internal/jta/dunit/RollbackThread.java      |   176 -
 .../jta/dunit/TransactionTimeOutDUnitTest.java  |   502 -
 .../dunit/TxnManagerMultiThreadDUnitTest.java   |   522 -
 .../internal/jta/dunit/TxnTimeOutDUnitTest.java |   311 -
 .../internal/jta/functional/CacheJUnitTest.java |  1199 --
 .../jta/functional/TestXACacheLoader.java       |   104 -
 .../internal/lang/ClassUtilsJUnitTest.java      |   165 -
 .../internal/lang/InOutParameterJUnitTest.java  |    74 -
 .../internal/lang/InitializerJUnitTest.java     |    75 -
 .../internal/lang/ObjectUtilsJUnitTest.java     |   189 -
 .../internal/lang/StringUtilsJUnitTest.java     |   351 -
 .../internal/lang/SystemUtilsJUnitTest.java     |   101 -
 .../internal/lang/ThreadUtilsJUnitTest.java     |   214 -
 .../DistributedSystemLogFileJUnitTest.java      |  1505 --
 .../logging/LocatorLogFileJUnitTest.java        |   125 -
 .../logging/LogServiceIntegrationJUnitTest.java |   223 -
 .../LogServiceIntegrationTestSupport.java       |    40 -
 .../internal/logging/LogServiceJUnitTest.java   |   120 -
 .../LogWriterDisabledPerformanceTest.java       |    64 -
 .../logging/LogWriterImplJUnitTest.java         |    83 -
 .../logging/LogWriterPerformanceTest.java       |   127 -
 .../logging/LoggingIntegrationTestSuite.java    |    35 -
 .../logging/LoggingPerformanceTestCase.java     |   200 -
 .../internal/logging/LoggingUnitTestSuite.java  |    42 -
 .../logging/MergeLogFilesJUnitTest.java         |   247 -
 .../gemfire/internal/logging/NullLogWriter.java |   146 -
 .../internal/logging/SortLogFileJUnitTest.java  |   115 -
 .../internal/logging/TestLogWriterFactory.java  |   134 -
 .../logging/log4j/AlertAppenderJUnitTest.java   |   257 -
 .../logging/log4j/ConfigLocatorJUnitTest.java   |   222 -
 .../log4j/FastLoggerIntegrationJUnitTest.java   |   575 -
 .../logging/log4j/FastLoggerJUnitTest.java      |   178 -
 .../FastLoggerWithDefaultConfigJUnitTest.java   |    90 -
 .../log4j/LocalizedMessageJUnitTest.java        |    64 -
 .../log4j/Log4J2DisabledPerformanceTest.java    |    73 -
 .../logging/log4j/Log4J2PerformanceTest.java    |   151 -
 .../log4j/Log4jIntegrationTestSuite.java        |    28 -
 .../logging/log4j/Log4jUnitTestSuite.java       |    32 -
 .../log4j/LogWriterAppenderJUnitTest.java       |   224 -
 .../LogWriterLoggerDisabledPerformanceTest.java |    72 -
 .../log4j/LogWriterLoggerPerformanceTest.java   |   150 -
 .../internal/net/SocketUtilsJUnitTest.java      |   130 -
 .../offheap/AbstractStoredObjectTestBase.java   |   203 -
 .../offheap/ByteArrayMemoryChunkJUnitTest.java  |    30 -
 .../offheap/ChunkWithHeapFormJUnitTest.java     |    64 -
 .../offheap/DataAsAddressJUnitTest.java         |   368 -
 .../internal/offheap/DataTypeJUnitTest.java     |   913 -
 .../DirectByteBufferMemoryChunkJUnitTest.java   |    33 -
 ...tingOutOfOffHeapMemoryListenerJUnitTest.java |   100 -
 .../offheap/FreeListOffHeapRegionJUnitTest.java |    46 -
 .../offheap/GemFireChunkFactoryJUnitTest.java   |   129 -
 .../internal/offheap/GemFireChunkJUnitTest.java |   921 -
 .../offheap/GemFireChunkSliceJUnitTest.java     |    72 -
 .../HeapByteBufferMemoryChunkJUnitTest.java     |    33 -
 .../internal/offheap/InlineKeyJUnitTest.java    |   185 -
 .../offheap/LifecycleListenerJUnitTest.java     |   230 -
 .../offheap/MemoryChunkJUnitTestBase.java       |   290 -
 .../internal/offheap/MemoryChunkTestSuite.java  |    32 -
 .../offheap/MemoryInspectorImplJUnitTest.java   |   142 -
 .../offheap/NullOffHeapMemoryStats.java         |   114 -
 .../offheap/NullOutOfOffHeapMemoryListener.java |    39 -
 .../offheap/OffHeapHelperJUnitTest.java         |   314 -
 .../internal/offheap/OffHeapIndexJUnitTest.java |    92 -
 .../internal/offheap/OffHeapRegionBase.java     |   593 -
 .../OffHeapRegionEntryHelperJUnitTest.java      |   870 -
 .../offheap/OffHeapStorageJUnitTest.java        |   285 -
 .../offheap/OffHeapValidationJUnitTest.java     |   540 -
 .../OffHeapWriteObjectAsByteArrayJUnitTest.java |   115 -
 .../OldFreeListOffHeapRegionJUnitTest.java      |    47 -
 .../offheap/OutOfOffHeapMemoryDUnitTest.java    |   304 -
 .../offheap/RefCountChangeInfoJUnitTest.java    |   207 -
 ...moryAllocatorFillPatternIntegrationTest.java |   246 -
 ...mpleMemoryAllocatorFillPatternJUnitTest.java |   183 -
 .../offheap/SimpleMemoryAllocatorJUnitTest.java |   675 -
 .../internal/offheap/StoredObjectTestSuite.java |    33 -
 .../offheap/SyncChunkStackJUnitTest.java        |   289 -
 .../TxReleasesOffHeapOnCloseJUnitTest.java      |    63 -
 .../offheap/UnsafeMemoryChunkJUnitTest.java     |    87 -
 .../BlockingProcessStreamReaderJUnitTest.java   |   480 -
 ...leProcessControllerIntegrationJUnitTest.java |   155 -
 .../LocalProcessControllerJUnitTest.java        |   119 -
 .../process/LocalProcessLauncherDUnitTest.java  |   148 -
 .../process/LocalProcessLauncherJUnitTest.java  |   182 -
 ...NonBlockingProcessStreamReaderJUnitTest.java |   411 -
 .../internal/process/PidFileJUnitTest.java      |   274 -
 .../ProcessControllerFactoryJUnitTest.java      |   159 -
 .../process/ProcessStreamReaderTestCase.java    |   238 -
 .../gemfire/internal/process/mbean/Process.java |    60 -
 .../internal/process/mbean/ProcessMBean.java    |    28 -
 ...tractSignalNotificationHandlerJUnitTest.java |   460 -
 .../internal/size/ObjectSizerJUnitTest.java     |    89 -
 .../internal/size/ObjectTraverserJUnitTest.java |   122 -
 .../internal/size/ObjectTraverserPerf.java      |   100 -
 .../size/SizeClassOnceObjectSizerJUnitTest.java |    70 -
 .../gemfire/internal/size/SizeTestUtil.java     |    33 -
 .../size/WellKnownClassSizerJUnitTest.java      |    62 -
 .../internal/statistics/DummyStatistics.java    |   209 -
 .../statistics/SampleCollectorJUnitTest.java    |   347 -
 .../statistics/StatMonitorHandlerJUnitTest.java |   256 -
 .../statistics/StatisticsDUnitTest.java         |   949 -
 .../statistics/StatisticsMonitorJUnitTest.java  |   227 -
 .../internal/statistics/TestSampleHandler.java  |   177 -
 .../statistics/TestStatArchiveWriter.java       |    60 -
 .../statistics/TestStatisticsManager.java       |    42 -
 .../statistics/TestStatisticsSampler.java       |    59 -
 .../statistics/ValueMonitorJUnitTest.java       |   374 -
 .../internal/stats50/AtomicStatsJUnitTest.java  |   128 -
 .../internal/tcp/ConnectionJUnitTest.java       |    88 -
 .../util/AbortableTaskServiceJUnitTest.java     |   199 -
 .../internal/util/ArrayUtilsJUnitTest.java      |   179 -
 .../gemfire/internal/util/BytesJUnitTest.java   |   116 -
 .../internal/util/CollectionUtilsJUnitTest.java |   487 -
 .../internal/util/DelayedActionJUnitTest.java   |    56 -
 .../gemfire/internal/util/IOUtilsJUnitTest.java |   315 -
 .../gemfire/internal/util/SerializableImpl.java |    38 -
 .../util/SerializableImplWithValue.java         |    57 -
 .../gemfire/internal/util/Valuable.java         |    40 -
 .../CompactConcurrentHashSetJUnitTest.java      |   103 -
 .../ConcurrentHashMapIteratorJUnitTest.java     |   124 -
 .../concurrent/CopyOnWriteHashMapJUnitTest.java |   505 -
 .../concurrent/ReentrantSemaphoreJUnitTest.java |   112 -
 .../SemaphoreReadWriteLockJUnitTest.java        |   185 -
 .../cm/ConcurrentHashMapJUnitTest.java          |   631 -
 .../concurrent/cm/CountedMapLoopsJUnitTest.java |   225 -
 .../concurrent/cm/IntMapCheckJUnitTest.java     |   618 -
 .../util/concurrent/cm/LoopHelpers.java         |   219 -
 .../util/concurrent/cm/MapCheckJUnitTest.java   |   631 -
 .../util/concurrent/cm/MapLoopsJUnitTest.java   |   230 -
 .../util/concurrent/cm/RLJBarJUnitTest.java     |   197 -
 .../concurrent/cm/StringMapLoopsJUnitTest.java  |   240 -
 .../management/CacheManagementDUnitTest.java    |   949 -
 .../management/ClientHealthStatsDUnitTest.java  |   446 -
 .../gemfire/management/CompositeStats.java      |   103 -
 .../gemfire/management/CompositeTestMBean.java  |    65 -
 .../gemfire/management/CompositeTestMXBean.java |    33 -
 .../management/CompositeTypeTestDUnitTest.java  |   170 -
 .../gemfire/management/CustomMBean.java         |    76 -
 .../gemfire/management/CustomMXBean.java        |    36 -
 .../management/DLockManagementDUnitTest.java    |   473 -
 .../DataBrowserJSONValidationJUnitTest.java     |   350 -
 .../management/DiskManagementDUnitTest.java     |   728 -
 .../management/DistributedSystemDUnitTest.java  |   894 -
 .../management/LocatorManagementDUnitTest.java  |   353 -
 .../gemstone/gemfire/management/MBeanUtil.java  |   550 -
 .../gemfire/management/ManagementTestBase.java  |   760 -
 .../MemberMBeanAttributesDUnitTest.java         |   270 -
 .../management/OffHeapManagementDUnitTest.java  |   978 -
 .../gemfire/management/QueryDataDUnitTest.java  |   873 -
 .../management/RegionManagementDUnitTest.java   |  1450 --
 .../gemfire/management/TypedJsonJUnitTest.java  |   288 -
 ...ersalMembershipListenerAdapterDUnitTest.java |  2171 ---
 .../stats/AsyncEventQueueStatsJUnitTest.java    |    66 -
 .../bean/stats/CacheServerStatsJUnitTest.java   |   167 -
 .../bean/stats/DiskStatsJUnitTest.java          |   122 -
 .../stats/DistributedSystemStatsDUnitTest.java  |   108 -
 .../stats/DistributedSystemStatsJUnitTest.java  |   122 -
 .../bean/stats/GatewayMBeanBridgeJUnitTest.java |   108 -
 .../stats/GatewayReceiverStatsJUnitTest.java    |   207 -
 .../bean/stats/MBeanStatsTestCase.java          |    86 -
 .../bean/stats/MemberLevelStatsJUnitTest.java   |   581 -
 .../bean/stats/RegionStatsJUnitTest.java        |   271 -
 .../bean/stats/StatsRateJUnitTest.java          |   191 -
 .../internal/JettyHelperJUnitTest.java          |    80 -
 .../beans/DistributedSystemBridgeJUnitTest.java |   106 -
 .../cli/ClasspathScanLoadHelperJUnitTest.java   |    92 -
 .../internal/cli/CliUtilDUnitTest.java          |   435 -
 .../internal/cli/CommandManagerJUnitTest.java   |   330 -
 .../cli/CommandSeparatorEscapeJUnitTest.java    |   138 -
 .../internal/cli/DataCommandJsonJUnitTest.java  |    61 -
 .../internal/cli/GfshParserJUnitTest.java       |  1154 --
 .../management/internal/cli/HeadlessGfsh.java   |   374 -
 .../internal/cli/HeadlessGfshJUnitTest.java     |    86 -
 .../management/internal/cli/ResultHandler.java  |    23 -
 .../internal/cli/TableBuilderJUnitTest.java     |   314 -
 .../cli/annotations/CliArgumentJUnitTest.java   |   214 -
 .../AbstractCommandsSupportJUnitTest.java       |   404 -
 .../cli/commands/CliCommandTestBase.java        |   565 -
 .../cli/commands/ConfigCommandsDUnitTest.java   |   502 -
 ...eateAlterDestroyRegionCommandsDUnitTest.java |  1150 --
 .../cli/commands/DeployCommandsDUnitTest.java   |   480 -
 .../commands/DiskStoreCommandsDUnitTest.java    |  1157 --
 .../commands/DiskStoreCommandsJUnitTest.java    |   405 -
 .../cli/commands/FunctionCommandsDUnitTest.java |   595 -
 .../commands/GemfireDataCommandsDUnitTest.java  |  2088 --
 ...WithCacheLoaderDuringCacheMissDUnitTest.java |   374 -
 .../HTTPServiceSSLSupportJUnitTest.java         |   158 -
 .../cli/commands/IndexCommandsDUnitTest.java    |   815 -
 .../cli/commands/IndexCommandsJUnitTest.java    |   208 -
 ...stAndDescribeDiskStoreCommandsDUnitTest.java |   194 -
 .../ListAndDescribeRegionDUnitTest.java         |   321 -
 .../cli/commands/ListIndexCommandDUnitTest.java |   669 -
 .../cli/commands/MemberCommandsDUnitTest.java   |   288 -
 .../MiscellaneousCommandsDUnitTest.java         |   498 -
 ...laneousCommandsExportLogsPart1DUnitTest.java |   140 -
 ...laneousCommandsExportLogsPart2DUnitTest.java |   144 -
 ...laneousCommandsExportLogsPart3DUnitTest.java |   151 -
 ...laneousCommandsExportLogsPart4DUnitTest.java |   137 -
 .../cli/commands/QueueCommandsDUnitTest.java    |   392 -
 .../SharedConfigurationCommandsDUnitTest.java   |   341 -
 .../cli/commands/ShellCommandsDUnitTest.java    |   367 -
 .../cli/commands/ShowDeadlockDUnitTest.java     |   274 -
 .../cli/commands/ShowMetricsDUnitTest.java      |   345 -
 .../cli/commands/ShowStackTraceDUnitTest.java   |   150 -
 .../cli/commands/UserCommandsDUnitTest.java     |   164 -
 .../RegionPathConverterJUnitTest.java           |    82 -
 .../internal/cli/domain/AbstractImpl.java       |    21 -
 .../management/internal/cli/domain/Impl1.java   |    21 -
 .../management/internal/cli/domain/Impl12.java  |    21 -
 .../internal/cli/domain/Interface1.java         |    21 -
 .../internal/cli/domain/Interface2.java         |    21 -
 .../management/internal/cli/domain/Stock.java   |    37 -
 .../management/internal/cli/dto/Car.java        |    75 -
 .../management/internal/cli/dto/Key1.java       |    67 -
 .../management/internal/cli/dto/Key2.java       |    64 -
 .../internal/cli/dto/ObjectWithCharAttr.java    |    60 -
 .../management/internal/cli/dto/Value1.java     |    97 -
 .../management/internal/cli/dto/Value2.java     |    90 -
 .../functions/DataCommandFunctionJUnitTest.java |   132 -
 .../DescribeDiskStoreFunctionJUnitTest.java     |  1676 --
 .../ListDiskStoresFunctionJUnitTest.java        |   328 -
 .../functions/ListIndexFunctionJUnitTest.java   |   435 -
 .../cli/parser/ParserUtilsJUnitTest.java        |    82 -
 .../preprocessor/PreprocessorJUnitTest.java     |   302 -
 .../PreprocessorUtilsJUnitTest.java             |   127 -
 .../cli/shell/GfshConfigInitFileJUnitTest.java  |   186 -
 .../shell/GfshExecutionStrategyJUnitTest.java   |   137 -
 .../cli/shell/GfshHistoryJUnitTest.java         |    89 -
 .../cli/shell/GfshInitFileJUnitTest.java        |   476 -
 .../SharedConfigurationDUnitTest.java           |   443 -
 .../configuration/ZipUtilsJUnitTest.java        |    96 -
 .../domain/CacheElementJUnitTest.java           |   144 -
 .../utils/XmlUtilsAddNewNodeJUnitTest.java      |   415 -
 .../configuration/utils/XmlUtilsJUnitTest.java  |   248 -
 .../internal/pulse/TestClientIdsDUnitTest.java  |   301 -
 .../internal/pulse/TestFunctionsDUnitTest.java  |   113 -
 .../internal/pulse/TestHeapDUnitTest.java       |   109 -
 .../internal/pulse/TestLocatorsDUnitTest.java   |    88 -
 .../pulse/TestSubscriptionsDUnitTest.java       |   307 -
 ...rDistributedSystemMXBeanIntegrationTest.java |    50 -
 ...horizeOperationForMBeansIntegrationTest.java |   323 -
 ...erationForRegionCommandsIntegrationTest.java |   136 -
 ...JSONAuthorizationDetailsIntegrationTest.java |   163 -
 ...tionCodesForDataCommandsIntegrationTest.java |   101 -
 ...tionCodesForDistributedSystemMXBeanTest.java |    76 -
 .../ReadOpFileAccessControllerJUnitTest.java    |   201 -
 .../WanCommandsControllerJUnitTest.java         |   140 -
 .../gemfire/management/model/EmptyObject.java   |    24 -
 .../gemstone/gemfire/management/model/Item.java |    95 -
 .../gemfire/management/model/Order.java         |    88 -
 .../gemfire/management/model/SubOrder.java      |    30 -
 .../DomainObjectsAsValuesJUnitTest.java         |   129 -
 .../GemcachedBinaryClientJUnitTest.java         |   148 -
 .../GemcachedDevelopmentJUnitTest.java          |   265 -
 .../gemfire/memcached/IntegrationJUnitTest.java |    94 -
 .../gemfire/pdx/AutoSerializableJUnitTest.java  |  1401 --
 .../gemfire/pdx/ByteSourceJUnitTest.java        |   752 -
 .../ClientsWithVersioningRetryDUnitTest.java    |   513 -
 .../com/gemstone/gemfire/pdx/DSInsidePdx.java   |   109 -
 .../pdx/DistributedSystemIdDUnitTest.java       |   157 -
 .../com/gemstone/gemfire/pdx/DomainObject.java  |   106 -
 .../gemstone/gemfire/pdx/DomainObjectBad.java   |    25 -
 .../gemfire/pdx/DomainObjectClassLoadable.java  |    27 -
 .../gemfire/pdx/DomainObjectPdxAuto.java        |   192 -
 ...DomainObjectPdxAutoNoDefaultConstructor.java |    63 -
 .../java/com/gemstone/gemfire/pdx/Employee.java |    92 -
 .../pdx/JSONPdxClientServerDUnitTest.java       |   629 -
 .../com/gemstone/gemfire/pdx/NestedPdx.java     |   114 -
 .../gemfire/pdx/NonDelegatingLoader.java        |    66 -
 .../OffHeapByteBufferByteSourceJUnitTest.java   |    52 -
 .../gemfire/pdx/OffHeapByteSourceJUnitTest.java |    65 -
 .../pdx/PDXAsyncEventQueueDUnitTest.java        |   154 -
 .../gemfire/pdx/PdxAttributesJUnitTest.java     |   250 -
 .../gemfire/pdx/PdxClientServerDUnitTest.java   |   799 -
 .../pdx/PdxDeserializationDUnitTest.java        |   413 -
 .../pdx/PdxFormatterPutGetJUnitTest.java        |   208 -
 .../com/gemstone/gemfire/pdx/PdxInsideDS.java   |   107 -
 .../pdx/PdxInstanceFactoryJUnitTest.java        |  1210 --
 .../gemfire/pdx/PdxInstanceJUnitTest.java       |   396 -
 .../gemfire/pdx/PdxSerializableDUnitTest.java   |   196 -
 .../gemfire/pdx/PdxSerializableJUnitTest.java   |  2171 ---
 .../gemfire/pdx/PdxStringJUnitTest.java         |   167 -
 .../gemfire/pdx/PdxTypeExportDUnitTest.java     |   130 -
 .../gemfire/pdx/SeparateClassloaderPdx.java     |    43 -
 .../com/gemstone/gemfire/pdx/SimpleClass.java   |    83 -
 .../com/gemstone/gemfire/pdx/SimpleClass1.java  |   151 -
 .../com/gemstone/gemfire/pdx/SimpleClass2.java  |    32 -
 .../gemfire/pdx/TestObjectForPdxFormatter.java  |  1003 -
 .../gemfire/pdx/VersionClassLoader.java         |    98 -
 .../gemstone/gemfire/redis/AuthJUnitTest.java   |   160 -
 .../gemfire/redis/ConcurrentStartTest.java      |    98 -
 .../gemstone/gemfire/redis/HashesJUnitTest.java |   191 -
 .../gemstone/gemfire/redis/ListsJUnitTest.java  |   254 -
 .../gemfire/redis/RedisDistDUnitTest.java       |   258 -
 .../gemstone/gemfire/redis/SetsJUnitTest.java   |   258 -
 .../gemfire/redis/SortedSetsJUnitTest.java      |   430 -
 .../gemfire/redis/StringsJunitTest.java         |   312 -
 .../web/controllers/AddFreeItemToOrders.java    |   153 -
 .../rest/internal/web/controllers/Customer.java |   109 -
 .../internal/web/controllers/DateTimeUtils.java |    40 -
 .../rest/internal/web/controllers/Gender.java   |    30 -
 .../internal/web/controllers/GetAllEntries.java |    68 -
 .../web/controllers/GetDeliveredOrders.java     |   106 -
 .../internal/web/controllers/GetRegions.java    |    76 -
 .../web/controllers/GetValueForKey.java         |    77 -
 .../rest/internal/web/controllers/Item.java     |   160 -
 .../rest/internal/web/controllers/Order.java    |   189 -
 .../rest/internal/web/controllers/Person.java   |   185 -
 .../web/controllers/PutKeyFunction.java         |    63 -
 .../web/controllers/RestAPITestBase.java        |   123 -
 .../internal/web/controllers/RestTestUtils.java |   110 -
 .../security/ClientAuthenticationDUnitTest.java |   967 -
 .../ClientAuthenticationPart2DUnitTest.java     |    88 -
 .../security/ClientAuthorizationDUnitTest.java  |   797 -
 .../security/ClientAuthorizationTestBase.java   |  1388 --
 .../security/ClientMultiUserAuthzDUnitTest.java |   535 -
 .../DeltaClientAuthorizationDUnitTest.java      |   337 -
 .../DeltaClientPostAuthorizationDUnitTest.java  |   542 -
 .../security/P2PAuthenticationDUnitTest.java    |   623 -
 .../gemfire/security/SecurityTestUtil.java      |  1875 --
 .../com/gemstone/gemfire/test/dunit/Assert.java |    66 -
 .../gemfire/test/dunit/AsyncInvocation.java     |   216 -
 .../gemstone/gemfire/test/dunit/DUnitEnv.java   |    78 -
 .../gemfire/test/dunit/DebuggerUtils.java       |    52 -
 .../gemfire/test/dunit/DistributedTestCase.java |   532 -
 .../test/dunit/DistributedTestUtils.java        |   167 -
 .../com/gemstone/gemfire/test/dunit/Host.java   |   213 -
 .../gemfire/test/dunit/IgnoredException.java    |   200 -
 .../com/gemstone/gemfire/test/dunit/Invoke.java |   160 -
 .../com/gemstone/gemfire/test/dunit/Jitter.java |    87 -
 .../gemfire/test/dunit/LogWriterUtils.java      |   111 -
 .../gemfire/test/dunit/NetworkUtils.java        |    69 -
 .../gemfire/test/dunit/RMIException.java        |   170 -
 .../gemfire/test/dunit/RepeatableRunnable.java  |    31 -
 .../test/dunit/SerializableCallable.java        |    70 -
 .../test/dunit/SerializableCallableIF.java      |    26 -
 .../test/dunit/SerializableRunnable.java        |    91 -
 .../test/dunit/SerializableRunnableIF.java      |    25 -
 .../test/dunit/StoppableWaitCriterion.java      |    35 -
 .../gemfire/test/dunit/ThreadUtils.java         |   155 -
 .../com/gemstone/gemfire/test/dunit/VM.java     |  1357 --
 .../com/gemstone/gemfire/test/dunit/Wait.java   |   204 -
 .../gemfire/test/dunit/WaitCriterion.java       |    33 -
 .../dunit/rules/DistributedDisconnectRule.java  |   121 -
 .../rules/DistributedExternalResource.java      |    58 -
 .../DistributedRestoreSystemProperties.java     |    74 -
 .../gemfire/test/dunit/rules/RemoteInvoker.java |    39 -
 .../test/dunit/standalone/BounceResult.java     |    36 -
 .../gemfire/test/dunit/standalone/ChildVM.java  |    81 -
 .../test/dunit/standalone/DUnitLauncher.java    |   464 -
 .../test/dunit/standalone/ProcessManager.java   |   259 -
 .../test/dunit/standalone/RemoteDUnitVM.java    |   143 -
 .../test/dunit/standalone/RemoteDUnitVMIF.java  |    36 -
 .../dunit/standalone/StandAloneDUnitEnv.java    |    74 -
 .../test/dunit/tests/BasicDUnitTest.java        |   158 -
 .../tests/GetDefaultDiskStoreNameDUnitTest.java |    67 -
 .../dunit/tests/GetTestMethodNameDUnitTest.java |    54 -
 .../gemfire/test/dunit/tests/VMDUnitTest.java   |   241 -
 .../com/gemstone/gemfire/test/fake/Fakes.java   |    99 -
 .../gemfire/test/golden/ExecutableProcess.java  |    24 -
 .../gemfire/test/golden/FailOutputTestCase.java |    52 -
 .../golden/FailWithErrorInOutputJUnitTest.java  |    47 -
 .../FailWithExtraLineInOutputJUnitTest.java     |    76 -
 ...WithLineMissingFromEndOfOutputJUnitTest.java |    75 -
 ...hLineMissingFromMiddleOfOutputJUnitTest.java |    74 -
 .../FailWithLoggerErrorInOutputJUnitTest.java   |    46 -
 .../FailWithLoggerFatalInOutputJUnitTest.java   |    46 -
 .../FailWithLoggerWarnInOutputJUnitTest.java    |    46 -
 .../golden/FailWithProblemInOutputTestCase.java |    61 -
 .../golden/FailWithSevereInOutputJUnitTest.java |    47 -
 ...hTimeoutOfWaitForOutputToMatchJUnitTest.java |    68 -
 .../FailWithWarningInOutputJUnitTest.java       |    47 -
 .../gemfire/test/golden/GoldenComparator.java   |   142 -
 .../test/golden/GoldenStringComparator.java     |    39 -
 .../gemfire/test/golden/GoldenTestCase.java     |   157 -
 .../golden/GoldenTestFrameworkTestSuite.java    |    43 -
 .../gemfire/test/golden/PassJUnitTest.java      |    86 -
 .../golden/PassWithExpectedErrorJUnitTest.java  |    47 -
 .../golden/PassWithExpectedProblemTestCase.java |    91 -
 .../golden/PassWithExpectedSevereJUnitTest.java |    47 -
 .../PassWithExpectedWarningJUnitTest.java       |    47 -
 .../test/golden/RegexGoldenComparator.java      |    37 -
 .../test/golden/StringGoldenComparator.java     |    37 -
 .../gemfire/test/golden/log4j2-test.xml         |    18 -
 .../gemfire/test/process/MainLauncher.java      |    48 -
 .../test/process/MainLauncherJUnitTest.java     |   159 -
 .../gemfire/test/process/OutputFormatter.java   |    37 -
 .../test/process/ProcessOutputReader.java       |    89 -
 .../test/process/ProcessStreamReader.java       |    74 -
 .../process/ProcessTestFrameworkTestSuite.java  |    28 -
 .../gemfire/test/process/ProcessWrapper.java    |   464 -
 .../test/process/ProcessWrapperJUnitTest.java   |    72 -
 .../gemstone/gemfire/util/JSR166TestCase.java   |   482 -
 .../gemstone/gemfire/util/test/TestUtil.java    |    65 -
 .../com/gemstone/persistence/admin/Logger.java  |   278 -
 .../gemstone/persistence/logging/Formatter.java |    41 -
 .../gemstone/persistence/logging/Handler.java   |    98 -
 .../com/gemstone/persistence/logging/Level.java |   128 -
 .../gemstone/persistence/logging/LogRecord.java |   185 -
 .../gemstone/persistence/logging/Logger.java    |   566 -
 .../persistence/logging/SimpleFormatter.java    |    77 -
 .../persistence/logging/StreamHandler.java      |    61 -
 .../test/java/com/gemstone/sequence/Arrow.java  |   124 -
 .../java/com/gemstone/sequence/Lifeline.java    |    98 -
 .../com/gemstone/sequence/LifelineState.java    |   114 -
 .../java/com/gemstone/sequence/LineMapper.java  |    36 -
 .../com/gemstone/sequence/SequenceDiagram.java  |   315 -
 .../com/gemstone/sequence/SequencePanel.java    |    83 -
 .../com/gemstone/sequence/StateColorMap.java    |    66 -
 .../java/com/gemstone/sequence/TimeAxis.java    |   122 -
 .../com/gemstone/sequence/ZoomingPanel.java     |   188 -
 .../sequence/gemfire/DefaultLineMapper.java     |    42 -
 .../gemfire/GemfireSequenceDisplay.java         |   336 -
 .../sequence/gemfire/HydraLineMapper.java       |   135 -
 .../sequence/gemfire/SelectGraphDialog.java     |   155 -
 .../com/main/MyDistributedSystemListener.java   |   115 -
 .../com/main/WANBootStrapping_Site1_Add.java    |   122 -
 .../com/main/WANBootStrapping_Site1_Remove.java |    75 -
 .../com/main/WANBootStrapping_Site2_Add.java    |   107 -
 .../com/main/WANBootStrapping_Site2_Remove.java |    73 -
 gemfire-core/src/test/java/hydra/GsRandom.java  |   311 -
 .../test/java/hydra/HydraRuntimeException.java  |    33 -
 gemfire-core/src/test/java/hydra/Log.java       |   219 -
 .../src/test/java/hydra/LogVersionHelper.java   |    45 -
 .../src/test/java/hydra/MethExecutor.java       |   393 -
 .../src/test/java/hydra/MethExecutorResult.java |   186 -
 .../src/test/java/hydra/SchedulingOrder.java    |    36 -
 .../src/test/java/hydra/log/AnyLogWriter.java   |   555 -
 .../java/hydra/log/CircularOutputStream.java    |   131 -
 .../parReg/query/unittest/NewPortfolio.java     |   272 -
 .../java/parReg/query/unittest/Position.java    |   162 -
 .../src/test/java/perffmwk/Formatter.java       |   147 -
 .../java/security/AuthzCredentialGenerator.java |   462 -
 .../test/java/security/CredentialGenerator.java |   343 -
 .../security/DummyAuthzCredentialGenerator.java |   145 -
 .../java/security/DummyCredentialGenerator.java |    94 -
 .../security/LdapUserCredentialGenerator.java   |   160 -
 .../java/security/PKCSCredentialGenerator.java  |   112 -
 .../java/security/SSLCredentialGenerator.java   |   117 -
 .../UserPasswordWithExtraPropsAuthInit.java     |    77 -
 .../security/XmlAuthzCredentialGenerator.java   |   264 -
 .../templates/security/DummyAuthenticator.java  |    87 -
 .../templates/security/DummyAuthorization.java  |   118 -
 .../security/FunctionSecurityPrmsHolder.java    |    55 -
 .../security/LdapUserAuthenticator.java         |   117 -
 .../java/templates/security/PKCSAuthInit.java   |   133 -
 .../templates/security/PKCSAuthenticator.java   |   167 -
 .../java/templates/security/PKCSPrincipal.java  |    42 -
 .../security/UserPasswordAuthInit.java          |    84 -
 .../templates/security/UsernamePrincipal.java   |    46 -
 .../templates/security/XmlAuthorization.java    |   675 -
 .../templates/security/XmlErrorHandler.java     |    82 -
 .../src/test/java/util/TestException.java       |    35 -
 ...gemstone.gemfire.internal.cache.CacheService |     1 -
 ...ne.gemfire.internal.cache.xmlcache.XmlParser |     5 -
 ...org.springframework.shell.core.CommandMarker |     8 -
 .../ClientCacheFactoryJUnitTest_single_pool.xml |    30 -
 .../cache/client/internal/cacheserver.cer       |   Bin 782 -> 0 bytes
 .../cache/client/internal/cacheserver.keystore  |   Bin 1253 -> 0 bytes
 .../client/internal/cacheserver.truststore      |   Bin 844 -> 0 bytes
 .../gemfire/cache/client/internal/client.cer    |   Bin 782 -> 0 bytes
 .../cache/client/internal/client.keystore       |   Bin 1251 -> 0 bytes
 .../cache/client/internal/client.truststore     |   Bin 846 -> 0 bytes
 .../cache/client/internal/default.keystore      |   Bin 1115 -> 0 bytes
 .../cache/client/internal/trusted.keystore      |   Bin 1078 -> 0 bytes
 .../gemfire/cache/query/dunit/IndexCreation.xml |   131 -
 .../functional/index-creation-with-eviction.xml |    56 -
 .../index-creation-without-eviction.xml         |    67 -
 .../functional/index-recovery-overflow.xml      |    57 -
 .../query/internal/index/cachequeryindex.xml    |   125 -
 .../internal/index/cachequeryindexwitherror.xml |   134 -
 .../cache/query/partitioned/PRIndexCreation.xml |    44 -
 .../gemfire/cache30/attributesUnordered.xml     |    39 -
 .../com/gemstone/gemfire/cache30/badFloat.xml   |    30 -
 .../com/gemstone/gemfire/cache30/badInt.xml     |    33 -
 .../gemfire/cache30/badKeyConstraintClass.xml   |    31 -
 .../com/gemstone/gemfire/cache30/badScope.xml   |    30 -
 .../com/gemstone/gemfire/cache30/bug44710.xml   |    31 -
 .../gemfire/cache30/callbackNotDeclarable.xml   |    34 -
 .../gemfire/cache30/callbackWithException.xml   |    34 -
 .../com/gemstone/gemfire/cache30/coLocation.xml |    31 -
 .../gemstone/gemfire/cache30/coLocation3.xml    |    31 -
 .../com/gemstone/gemfire/cache30/ewtest.xml     |    68 -
 .../cache30/examples_3_0/example-cache.xml      |    87 -
 .../cache30/examples_4_0/example-cache.xml      |    94 -
 .../gemfire/cache30/loaderNotLoader.xml         |    33 -
 .../com/gemstone/gemfire/cache30/malformed.xml  |    29 -
 .../gemfire/cache30/namedAttributes.xml         |    59 -
 .../gemfire/cache30/partitionedRegion.xml       |    39 -
 .../gemfire/cache30/partitionedRegion51.xml     |    31 -
 .../gemstone/gemfire/cache30/sameRootRegion.xml |    37 -
 .../gemstone/gemfire/cache30/sameSubregion.xml  |    42 -
 .../gemfire/cache30/unknownNamedAttributes.xml  |    30 -
 .../gemfire/codeAnalysis/excludedClasses.txt    |   115 -
 .../gemstone/gemfire/codeAnalysis/openBugs.txt  |    23 -
 .../sanctionedDataSerializables.txt             |  2172 ---
 .../codeAnalysis/sanctionedSerializables.txt    |   829 -
 .../internal/SharedConfigurationJUnitTest.xml   |    23 -
 ...st_testWriteAfterSamplingBegins_expected.gfs |   Bin 1970 -> 0 bytes
 ...est_testWriteWhenSamplingBegins_expected.gfs |   Bin 1933 -> 0 bytes
 .../internal/cache/BackupJUnitTest.cache.xml    |    23 -
 .../internal/cache/DiskRegCacheXmlJUnitTest.xml |   233 -
 .../cache/PartitionRegionCacheExample1.xml      |    43 -
 .../cache/PartitionRegionCacheExample2.xml      |    42 -
 .../incorrect_bytes_threshold.xml               |    35 -
 .../faultyDiskXMLsForTesting/incorrect_dir.xml  |    35 -
 .../incorrect_dir_size.xml                      |    35 -
 .../incorrect_max_oplog_size.xml                |    35 -
 .../incorrect_roll_oplogs_value.xml             |    35 -
 .../incorrect_sync_value.xml                    |    35 -
 .../incorrect_time_interval.xml                 |    35 -
 .../mixed_diskstore_diskdir.xml                 |    38 -
 .../mixed_diskstore_diskwriteattrs.xml          |    38 -
 .../tier/sockets/RedundancyLevelJUnitTest.xml   |    38 -
 ...testDTDFallbackWithNonEnglishLocal.cache.xml |    23 -
 .../gemstone/gemfire/internal/jta/cachejta.xml  |   273 -
 .../domain/CacheElementJUnitTest.xml            |     7 -
 ...dNewNodeJUnitTest.testAddNewNodeNewNamed.xml |    25 -
 ...ewNodeJUnitTest.testAddNewNodeNewUnnamed.xml |    27 -
 ...itTest.testAddNewNodeNewUnnamedExtension.xml |    25 -
 ...NodeJUnitTest.testAddNewNodeReplaceNamed.xml |    22 -
 ...deJUnitTest.testAddNewNodeReplaceUnnamed.xml |    24 -
 ...st.testAddNewNodeReplaceUnnamedExtension.xml |    24 -
 ...sAddNewNodeJUnitTest.testDeleteNodeNamed.xml |    21 -
 ...ddNewNodeJUnitTest.testDeleteNodeUnnamed.xml |    23 -
 ...JUnitTest.testDeleteNodeUnnamedExtension.xml |    23 -
 .../utils/XmlUtilsAddNewNodeJUnitTest.xml       |    24 -
 ...Test.testBuildSchemaLocationMapAttribute.xml |    10 -
 ...testBuildSchemaLocationMapEmptyAttribute.xml |     8 -
 ...ationMapMapOfStringListOfStringAttribute.xml |    10 -
 ....testBuildSchemaLocationMapNullAttribute.xml |     7 -
 ...XmlUtilsJUnitTest.testQuerySingleElement.xml |    24 -
 .../management/internal/security/auth1.json     |    14 -
 .../management/internal/security/auth2.json     |    21 -
 .../management/internal/security/auth3.json     |    25 -
 .../internal/security/testInheritRole.json      |    40 -
 .../security/testSimpleUserAndRole.json         |    14 -
 .../testUserAndRoleRegionServerGroup.json       |    16 -
 .../internal/security/testUserMultipleRole.json |    20 -
 .../gemstone/gemfire/pdx/jsonStrings/array.txt  |    22 -
 .../gemfire/pdx/jsonStrings/attachment.txt      |    11 -
 .../gemfire/pdx/jsonStrings/attachment2.txt     |    13 -
 .../gemstone/gemfire/pdx/jsonStrings/book.txt   |    17 -
 .../gemstone/gemfire/pdx/jsonStrings/image.txt  |    13 -
 .../gemstone/gemfire/pdx/jsonStrings/json1.txt  |    22 -
 .../gemstone/gemfire/pdx/jsonStrings/json10.txt |    20 -
 .../gemstone/gemfire/pdx/jsonStrings/json11.txt |    33 -
 .../gemstone/gemfire/pdx/jsonStrings/json12.txt |    32 -
 .../gemstone/gemfire/pdx/jsonStrings/json13.txt |    42 -
 .../gemstone/gemfire/pdx/jsonStrings/json14.txt |    15 -
 .../gemstone/gemfire/pdx/jsonStrings/json15.txt |     1 -
 .../gemstone/gemfire/pdx/jsonStrings/json16.txt |    31 -
 .../gemfire/pdx/jsonStrings/json16_2.txt        |    31 -
 .../gemstone/gemfire/pdx/jsonStrings/json17.txt |    27 -
 .../gemstone/gemfire/pdx/jsonStrings/json18.txt |    71 -
 .../gemstone/gemfire/pdx/jsonStrings/json19.txt |    18 -
 .../gemstone/gemfire/pdx/jsonStrings/json2.txt  |    11 -
 .../gemstone/gemfire/pdx/jsonStrings/json20.txt |    36 -
 .../gemstone/gemfire/pdx/jsonStrings/json21.txt |    36 -
 .../gemstone/gemfire/pdx/jsonStrings/json22.txt |    36 -
 .../gemstone/gemfire/pdx/jsonStrings/json23.txt |    23 -
 .../gemstone/gemfire/pdx/jsonStrings/json24.txt |    15 -
 .../gemstone/gemfire/pdx/jsonStrings/json25.txt |    33 -
 .../gemstone/gemfire/pdx/jsonStrings/json26.txt |    13 -
 .../gemstone/gemfire/pdx/jsonStrings/json27.txt |    25 -
 .../gemstone/gemfire/pdx/jsonStrings/json28.txt |    84 -
 .../gemstone/gemfire/pdx/jsonStrings/json29.txt |    11 -
 .../gemstone/gemfire/pdx/jsonStrings/json3.txt  |    26 -
 .../gemstone/gemfire/pdx/jsonStrings/json31.txt |     9 -
 .../gemstone/gemfire/pdx/jsonStrings/json4.txt  |    88 -
 .../gemstone/gemfire/pdx/jsonStrings/json5.txt  |    27 -
 .../gemstone/gemfire/pdx/jsonStrings/json6.txt  |    11 -
 .../gemstone/gemfire/pdx/jsonStrings/json7.txt  |    32 -
 .../gemstone/gemfire/pdx/jsonStrings/json8.txt  |    53 -
 .../gemstone/gemfire/pdx/jsonStrings/json9.txt  |    77 -
 .../gemfire/pdx/jsonStrings/jsonMongo.txt       |    10 -
 .../pdx/jsonStrings/jsonMongoSingleQuote.tx0    |    10 -
 .../gemfire/pdx/jsonStrings/jsonProductdb.txt   |    33 -
 .../gemfire/pdx/jsonStrings/json_google.txt     |    33 -
 .../gemfire/pdx/jsonStrings/jsoncustomer.txt    |    24 -
 .../gemfire/pdx/jsonStrings/jsonemptyobject.txo |    44 -
 .../gemfire/pdx/jsonStrings/jsonemptyobject.txt |    23 -
 .../gemfire/pdx/jsonStrings/jsonfacebook.txt    |    45 -
 .../gemfire/pdx/jsonStrings/jsonfeed.txt        |    33 -
 .../gemfire/pdx/jsonStrings/jsonfeed2.txt       |    47 -
 .../gemfire/pdx/jsonStrings/jsonflicker.txt     |    21 -
 .../gemfire/pdx/jsonStrings/jsoniphone.txt      |    78 -
 .../pdx/jsonStrings/jsonsolrwithcomment.tx0     |    29 -
 .../pdx/jsonStrings/jsonsolrwithcomment.txt     |    29 -
 .../gemfire/pdx/jsonStrings/jsontwitter1.txt    |   430 -
 .../gemfire/pdx/jsonStrings/jsontwitter2.txt    |   574 -
 .../gemfire/pdx/jsonStrings/jsontwitter3.txt    |    70 -
 .../gemfire/pdx/jsonStrings/jsonutf.tx0         |     2 -
 .../gemfire/pdx/jsonStrings/jsonyahoo.txt       |    11 -
 .../gemfire/pdx/jsonStrings/jsonyoutube.txt     |    54 -
 .../gemfire/pdx/jsonStrings/linkden1.txt        |    16 -
 .../gemstone/gemfire/pdx/jsonStrings/odata.txt  |    16 -
 .../gemstone/gemfire/pdx/jsonStrings/odata2.txt |    18 -
 .../jsonStrings/unquoteJsonStrings/json1.txt    |    31 -
 .../gemfire/pdx/jsonStrings/weather.txt         |     1 -
 .../gemfire/test/golden/log4j2-test.xml         |    18 -
 .../src/test/resources/jta/cachejta.xml         |   273 -
 .../src/test/resources/lib/authz-dummy.xml      |   126 -
 .../src/test/resources/lib/authz-ldap.xml       |    85 -
 .../resources/lib/authz-multiUser-dummy.xml     |   106 -
 .../test/resources/lib/authz-multiUser-ldap.xml |    83 -
 .../test/resources/lib/keys/gemfire1.keystore   |   Bin 1536 -> 0 bytes
 .../test/resources/lib/keys/gemfire10.keystore  |   Bin 1546 -> 0 bytes
 .../test/resources/lib/keys/gemfire11.keystore  |   Bin 1546 -> 0 bytes
 .../test/resources/lib/keys/gemfire2.keystore   |   Bin 1536 -> 0 bytes
 .../test/resources/lib/keys/gemfire3.keystore   |   Bin 1536 -> 0 bytes
 .../test/resources/lib/keys/gemfire4.keystore   |   Bin 1536 -> 0 bytes
 .../test/resources/lib/keys/gemfire5.keystore   |   Bin 1536 -> 0 bytes
 .../test/resources/lib/keys/gemfire6.keystore   |   Bin 1536 -> 0 bytes
 .../test/resources/lib/keys/gemfire7.keystore   |   Bin 1536 -> 0 bytes
 .../test/resources/lib/keys/gemfire8.keystore   |   Bin 1536 -> 0 bytes
 .../test/resources/lib/keys/gemfire9.keystore   |   Bin 1536 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire1.keystore    |   Bin 1426 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire10.keystore   |   Bin 1434 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire11.keystore   |   Bin 1434 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire2.keystore    |   Bin 1434 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire3.keystore    |   Bin 1426 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire4.keystore    |   Bin 1434 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire5.keystore    |   Bin 1434 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire6.keystore    |   Bin 1434 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire7.keystore    |   Bin 1426 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire8.keystore    |   Bin 1434 -> 0 bytes
 .../resources/lib/keys/ibm/gemfire9.keystore    |   Bin 1426 -> 0 bytes
 .../test/resources/lib/keys/ibm/publickeyfile   |   Bin 4535 -> 0 bytes
 .../src/test/resources/lib/keys/publickeyfile   |   Bin 4535 -> 0 bytes
 .../resources/spring/spring-gemfire-context.xml |    42 -
 .../src/test/resources/ssl/trusted.keystore     |   Bin 1176 -> 0 bytes
 .../src/test/resources/ssl/untrusted.keystore   |   Bin 1181 -> 0 bytes
 .../resources/templates/security/authz5_5.dtd   |   105 -
 .../resources/templates/security/authz6_0.dtd   |   110 -
 gemfire-cq/build.gradle                         |    23 -
 .../cache/client/internal/CloseCQOp.java        |    72 -
 .../cache/client/internal/CreateCQOp.java       |   163 -
 .../cache/client/internal/CreateCQWithIROp.java |    92 -
 .../cache/client/internal/GetDurableCQsOp.java  |   135 -
 .../client/internal/ServerCQProxyImpl.java      |   111 -
 .../gemfire/cache/client/internal/StopCQOp.java |    72 -
 .../cache/query/internal/cq/ClientCQImpl.java   |   615 -
 .../internal/cq/CqAttributesMutatorImpl.java    |    68 -
 .../cache/query/internal/cq/CqConflatable.java  |   223 -
 .../cache/query/internal/cq/CqEventImpl.java    |   162 -
 .../cache/query/internal/cq/CqListenerImpl.java |    56 -
 .../cache/query/internal/cq/CqQueryImpl.java    |   383 -
 .../query/internal/cq/CqServiceFactoryImpl.java |    69 -
 .../cache/query/internal/cq/CqServiceImpl.java  |  2087 --
 .../internal/cq/CqServiceStatisticsImpl.java    |   100 -
 .../query/internal/cq/CqServiceVsdStats.java    |   411 -
 .../query/internal/cq/CqStatisticsImpl.java     |    75 -
 .../cache/query/internal/cq/ServerCQImpl.java   |   655 -
 .../tier/sockets/command/BaseCQCommand.java     |    59 -
 .../cache/tier/sockets/command/CloseCQ.java     |   131 -
 .../cache/tier/sockets/command/ExecuteCQ.java   |   168 -
 .../cache/tier/sockets/command/ExecuteCQ61.java |   220 -
 .../cache/tier/sockets/command/GetCQStats.java  |   100 -
 .../tier/sockets/command/GetDurableCQs.java     |   143 -
 .../cache/tier/sockets/command/MonitorCQ.java   |   100 -
 .../cache/tier/sockets/command/StopCQ.java      |   135 -
 ...cache.query.internal.cq.spi.CqServiceFactory |    15 -
 .../gemfire/cache/query/cq/CQJUnitTest.java     |   150 -
 .../cache/query/cq/dunit/CqDataDUnitTest.java   |  1168 --
 .../dunit/CqDataOptimizedExecuteDUnitTest.java  |    55 -
 .../cq/dunit/CqDataUsingPoolDUnitTest.java      |  1574 --
 ...qDataUsingPoolOptimizedExecuteDUnitTest.java |    54 -
 .../cache/query/cq/dunit/CqPerfDUnitTest.java   |  1049 -
 .../cq/dunit/CqPerfUsingPoolDUnitTest.java      |  1009 -
 .../cache/query/cq/dunit/CqQueryDUnitTest.java  |  4009 ----
 .../dunit/CqQueryOptimizedExecuteDUnitTest.java |   314 -
 .../cq/dunit/CqQueryUsingPoolDUnitTest.java     |  3328 ----
 ...QueryUsingPoolOptimizedExecuteDUnitTest.java |    50 -
 .../cq/dunit/CqResultSetUsingPoolDUnitTest.java |  1144 --
 ...ltSetUsingPoolOptimizedExecuteDUnitTest.java |   235 -
 .../cache/query/cq/dunit/CqStateDUnitTest.java  |   138 -
 .../cache/query/cq/dunit/CqStatsDUnitTest.java  |   445 -
 .../dunit/CqStatsOptimizedExecuteDUnitTest.java |    50 -
 .../cq/dunit/CqStatsUsingPoolDUnitTest.java     |   456 -
 ...StatsUsingPoolOptimizedExecuteDUnitTest.java |    50 -
 .../query/cq/dunit/CqTimeTestListener.java      |   266 -
 .../PartitionedRegionCqQueryDUnitTest.java      |  1792 --
 ...dRegionCqQueryOptimizedExecuteDUnitTest.java |   248 -
 .../query/cq/dunit/PrCqUsingPoolDUnitTest.java  |  2033 --
 .../PrCqUsingPoolOptimizedExecuteDUnitTest.java |    50 -
 .../cache/query/dunit/PdxQueryCQDUnitTest.java  |   706 -
 .../cache/query/dunit/PdxQueryCQTestBase.java   |   496 -
 .../dunit/QueryIndexUpdateRIDUnitTest.java      |   823 -
 .../query/dunit/QueryMonitorDUnitTest.java      |  1300 --
 .../cache/snapshot/ClientSnapshotDUnitTest.java |   286 -
 .../AnalyzeCQSerializablesJUnitTest.java        |    79 -
 .../cache/PRDeltaPropagationDUnitTest.java      |  1215 --
 .../internal/cache/PutAllCSDUnitTest.java       |  4426 -----
 .../cache/RemoteCQTransactionDUnitTest.java     |  1119 --
 .../internal/cache/ha/CQListGIIDUnitTest.java   |   821 -
 .../cache/ha/HADispatcherDUnitTest.java         |   696 -
 .../sockets/ClientToServerDeltaDUnitTest.java   |  1040 -
 .../DeltaPropagationWithCQDUnitTest.java        |   344 -
 ...ToRegionRelationCQRegistrationDUnitTest.java |   784 -
 .../sockets/DurableClientCrashDUnitTest.java    |    99 -
 .../sockets/DurableClientNetDownDUnitTest.java  |    79 -
 .../sockets/DurableClientSimpleDUnitTest.java   |  3409 ----
 .../tier/sockets/DurableClientTestCase.java     |  2100 --
 .../CacheServerManagementDUnitTest.java         |   575 -
 .../cli/commands/ClientCommandsDUnitTest.java   |  1446 --
 .../DurableClientCommandsDUnitTest.java         |   436 -
 .../internal/pulse/TestCQDUnitTest.java         |   147 -
 .../internal/pulse/TestClientsDUnitTest.java    |   108 -
 .../internal/pulse/TestServerDUnitTest.java     |    98 -
 .../ClientAuthorizationTwoDUnitTest.java        |   243 -
 .../security/ClientAuthzObjectModDUnitTest.java |   417 -
 .../ClientCQPostAuthorizationDUnitTest.java     |   525 -
 .../ClientPostAuthorizationDUnitTest.java       |   397 -
 .../gemfire/security/MultiuserAPIDUnitTest.java |   392 -
 .../MultiuserDurableCQAuthzDUnitTest.java       |   491 -
 .../gemfire/codeAnalysis/excludedClasses.txt    |     2 -
 .../gemstone/gemfire/codeAnalysis/openBugs.txt  |    21 -
 .../sanctionedDataSerializables.txt             |     4 -
 .../codeAnalysis/sanctionedSerializables.txt    |     1 -
 .../tier/sockets/durablecq-client-cache.xml     |    37 -
 .../tier/sockets/durablecq-server-cache.xml     |    32 -
 .../java/joptsimple/AbstractOptionSpec.java     |   127 -
 .../joptsimple/AlternativeLongOptionSpec.java   |    54 -
 .../joptsimple/ArgumentAcceptingOptionSpec.java |   349 -
 .../src/main/java/joptsimple/ArgumentList.java  |    59 -
 .../java/joptsimple/BuiltinHelpFormatter.java   |   149 -
 .../src/main/java/joptsimple/HelpFormatter.java |    45 -
 .../IllegalOptionSpecificationException.java    |    52 -
 .../MissingRequiredOptionException.java         |    52 -
 .../MultipleArgumentsForOptionException.java    |    52 -
 .../java/joptsimple/NoArgumentOptionSpec.java   |    82 -
 .../OptionArgumentConversionException.java      |    63 -
 .../main/java/joptsimple/OptionDescriptor.java  |    94 -
 .../main/java/joptsimple/OptionException.java   |   111 -
 .../OptionMissingRequiredArgumentException.java |    52 -
 .../src/main/java/joptsimple/OptionParser.java  |   568 -
 .../main/java/joptsimple/OptionParserState.java |    81 -
 .../src/main/java/joptsimple/OptionSet.java     |   309 -
 .../src/main/java/joptsimple/OptionSpec.java    |    98 -
 .../main/java/joptsimple/OptionSpecBuilder.java |    96 -
 .../java/joptsimple/OptionSpecTokenizer.java    |   127 -
 .../joptsimple/OptionalArgumentOptionSpec.java  |    69 -
 .../src/main/java/joptsimple/ParserRules.java   |    84 -
 .../joptsimple/RequiredArgumentOptionSpec.java  |    54 -
 .../joptsimple/UnrecognizedOptionException.java |    52 -
 .../joptsimple/ValueConversionException.java    |    54 -
 .../main/java/joptsimple/ValueConverter.java    |    58 -
 .../joptsimple/internal/AbbreviationMap.java    |   233 -
 .../main/java/joptsimple/internal/Classes.java  |    74 -
 .../main/java/joptsimple/internal/Column.java   |   133 -
 .../internal/ColumnWidthCalculator.java         |    41 -
 .../java/joptsimple/internal/ColumnarData.java  |   163 -
 .../ConstructorInvokingValueConverter.java      |    58 -
 .../internal/MethodInvokingValueConverter.java  |    60 -
 .../main/java/joptsimple/internal/Objects.java  |    46 -
 .../java/joptsimple/internal/Reflection.java    |   143 -
 .../internal/ReflectionException.java           |    39 -
 .../main/java/joptsimple/internal/Strings.java  |   117 -
 .../java/joptsimple/util/DateConverter.java     |   104 -
 .../main/java/joptsimple/util/KeyValuePair.java |    83 -
 .../main/java/joptsimple/util/RegexMatcher.java |    88 -
 gemfire-json/src/main/java/org/json/CDL.java    |   279 -
 gemfire-json/src/main/java/org/json/Cookie.java |   169 -
 .../src/main/java/org/json/CookieList.java      |    90 -
 gemfire-json/src/main/java/org/json/HTTP.java   |   163 -
 .../src/main/java/org/json/HTTPTokener.java     |    77 -
 .../src/main/java/org/json/JSONArray.java       |   906 -
 .../src/main/java/org/json/JSONException.java   |    28 -
 gemfire-json/src/main/java/org/json/JSONML.java |   467 -
 .../src/main/java/org/json/JSONObject.java      |  1611 --
 .../src/main/java/org/json/JSONString.java      |    18 -
 .../src/main/java/org/json/JSONStringer.java    |    78 -
 .../src/main/java/org/json/JSONTokener.java     |   446 -
 .../src/main/java/org/json/JSONWriter.java      |   327 -
 gemfire-json/src/main/java/org/json/XML.java    |   508 -
 .../src/main/java/org/json/XMLTokener.java      |   365 -
 gemfire-junit/build.gradle                      |    21 -
 .../gemfire/test/junit/ConditionalIgnore.java   |    49 -
 .../gemfire/test/junit/IgnoreCondition.java     |    32 -
 .../gemfire/test/junit/IgnoreUntil.java         |    49 -
 .../com/gemstone/gemfire/test/junit/Repeat.java |    43 -
 .../com/gemstone/gemfire/test/junit/Retry.java  |    38 -
 .../test/junit/categories/ContainerTest.java    |    25 -
 .../test/junit/categories/DistributedTest.java  |    25 -
 .../categories/DistributedTransactionsTest.java |    26 -
 .../test/junit/categories/HydraTest.java        |    24 -
 .../test/junit/categories/IntegrationTest.java  |    25 -
 .../test/junit/categories/PerformanceTest.java  |    25 -
 .../gemfire/test/junit/categories/UITest.java   |    24 -
 .../gemfire/test/junit/categories/UnitTest.java |    25 -
 .../gemfire/test/junit/categories/WanTest.java  |    24 -
 .../test/junit/rules/ConditionalIgnoreRule.java |   123 -
 .../test/junit/rules/ExpectedTimeout.java       |   180 -
 .../test/junit/rules/ExpectedTimeoutRule.java   |   180 -
 .../test/junit/rules/IgnoreUntilRule.java       |   123 -
 .../gemfire/test/junit/rules/RepeatRule.java    |    81 -
 .../gemfire/test/junit/rules/RetryRule.java     |   181 -
 .../rules/SerializableExternalResource.java     |   107 -
 .../test/junit/rules/SerializableRuleChain.java |   119 -
 .../rules/SerializableTemporaryFolder.java      |    70 -
 .../test/junit/rules/SerializableTestName.java  |    54 -
 .../test/junit/rules/SerializableTestRule.java  |    33 -
 .../junit/rules/SerializableTestWatcher.java    |    29 -
 .../test/junit/rules/SerializableTimeout.java   |   119 -
 .../junit/support/DefaultIgnoreCondition.java   |    57 -
 .../IgnoreConditionEvaluationException.java     |    43 -
 .../junit/rules/ExpectedTimeoutJUnitTest.java   |   204 -
 .../examples/RepeatingTestCasesExampleTest.java |    94 -
 .../rules/examples/RetryRuleExampleTest.java    |    43 -
 .../rules/tests/ExpectedTimeoutRuleTest.java    |   214 -
 .../junit/rules/tests/IgnoreUntilRuleTest.java  |   121 -
 .../junit/rules/tests/JUnitRuleTestSuite.java   |    33 -
 .../test/junit/rules/tests/RepeatRuleTest.java  |   304 -
 .../tests/RetryRuleGlobalWithErrorTest.java     |   250 -
 .../tests/RetryRuleGlobalWithExceptionTest.java |   254 -
 .../tests/RetryRuleLocalWithErrorTest.java      |   207 -
 .../tests/RetryRuleLocalWithExceptionTest.java  |   213 -
 .../junit/rules/tests/RuleAndClassRuleTest.java |   138 -
 .../test/junit/rules/tests/TestRunner.java      |    37 -
 gemfire-lucene/build.gradle                     |    40 -
 .../gemfire/cache/lucene/LuceneIndex.java       |    60 -
 .../gemfire/cache/lucene/LuceneQuery.java       |    48 -
 .../cache/lucene/LuceneQueryFactory.java        |   100 -
 .../cache/lucene/LuceneQueryProvider.java       |    45 -
 .../cache/lucene/LuceneQueryResults.java        |    58 -
 .../cache/lucene/LuceneResultStruct.java        |    62 -
 .../gemfire/cache/lucene/LuceneService.java     |   118 -
 .../cache/lucene/LuceneServiceProvider.java     |    46 -
 .../lucene/internal/InternalLuceneIndex.java    |    29 -
 .../lucene/internal/InternalLuceneService.java  |    29 -
 .../lucene/internal/LuceneEventListener.java    |    99 -
 .../LuceneIndexForPartitionedRegion.java        |   136 -
 .../LuceneIndexForReplicatedRegion.java         |    48 -
 .../cache/lucene/internal/LuceneIndexImpl.java  |   107 -
 .../lucene/internal/LuceneQueryFactoryImpl.java |    67 -
 .../cache/lucene/internal/LuceneQueryImpl.java  |    87 -
 .../lucene/internal/LuceneQueryResultsImpl.java |   120 -
 .../lucene/internal/LuceneResultStructImpl.java |    94 -
 .../lucene/internal/LuceneServiceImpl.java      |   273 -
 .../internal/PartitionedRepositoryManager.java  |   163 -
 .../lucene/internal/StringQueryProvider.java    |   106 -
 .../internal/directory/FileIndexInput.java      |   131 -
 .../internal/directory/RegionDirectory.java     |   119 -
 .../internal/distributed/CollectorManager.java  |    55 -
 .../lucene/internal/distributed/EntryScore.java |    82 -
 .../internal/distributed/LuceneFunction.java    |   137 -
 .../distributed/LuceneFunctionContext.java      |   115 -
 .../lucene/internal/distributed/TopEntries.java |   133 -
 .../distributed/TopEntriesCollector.java        |   102 -
 .../distributed/TopEntriesCollectorManager.java |   178 -
 .../TopEntriesFunctionCollector.java            |   163 -
 .../lucene/internal/filesystem/ChunkKey.java    |   123 -
 .../cache/lucene/internal/filesystem/File.java  |   155 -
 .../internal/filesystem/FileInputStream.java    |   166 -
 .../internal/filesystem/FileOutputStream.java   |   103 -
 .../lucene/internal/filesystem/FileSystem.java  |   156 -
 .../filesystem/SeekableInputStream.java         |    43 -
 .../internal/repository/IndexRepository.java    |    74 -
 .../repository/IndexRepositoryImpl.java         |   113 -
 .../repository/IndexResultCollector.java        |    47 -
 .../internal/repository/RepositoryManager.java  |    44 -
 .../HeterogenousLuceneSerializer.java           |    83 -
 .../repository/serializer/LuceneSerializer.java |    35 -
 .../serializer/PdxLuceneSerializer.java         |    47 -
 .../serializer/ReflectionLuceneSerializer.java  |    74 -
 .../repository/serializer/SerializerUtil.java   |   168 -
 .../internal/xml/LuceneIndexCreation.java       |   111 -
 .../internal/xml/LuceneIndexXmlGenerator.java   |    65 -
 .../internal/xml/LuceneServiceXmlGenerator.java |    39 -
 .../lucene/internal/xml/LuceneXmlConstants.java |    31 -
 .../lucene/internal/xml/LuceneXmlParser.java    |    97 -
 .../geode.apache.org/lucene/lucene-1.0.xsd      |    57 -
 ...gemstone.gemfire.internal.cache.CacheService |     1 -
 ...ne.gemfire.internal.cache.xmlcache.XmlParser |     1 -
 .../internal/LuceneEventListenerJUnitTest.java  |   109 -
 .../LuceneIndexRecoveryHAJUnitTest.java         |   201 -
 .../LuceneQueryFactoryImplJUnitTest.java        |    50 -
 .../internal/LuceneQueryImplJUnitTest.java      |   123 -
 .../LuceneQueryResultsImplJUnitTest.java        |   126 -
 .../LuceneResultStructImpJUnitTest.java         |    51 -
 .../internal/LuceneServiceImplJUnitTest.java    |   226 -
 .../PartitionedRepositoryManagerJUnitTest.java  |   230 -
 .../internal/StringQueryProviderJUnitTest.java  |    90 -
 .../directory/RegionDirectoryJUnitTest.java     |    56 -
 .../DistributedScoringJUnitTest.java            |   155 -
 .../distributed/EntryScoreJUnitTest.java        |    40 -
 .../LuceneFunctionContextJUnitTest.java         |    64 -
 .../distributed/LuceneFunctionJUnitTest.java    |   423 -
 .../LuceneFunctionReadPathDUnitTest.java        |   240 -
 .../TopEntriesCollectorJUnitTest.java           |   139 -
 .../TopEntriesFunctionCollectorJUnitTest.java   |   323 -
 .../distributed/TopEntriesJUnitTest.java        |   146 -
 .../internal/filesystem/ChunkKeyJUnitTest.java  |    48 -
 .../internal/filesystem/FileJUnitTest.java      |    53 -
 .../filesystem/FileSystemJUnitTest.java         |   578 -
 .../IndexRepositoryImplJUnitTest.java           |   208 -
 .../IndexRepositoryImplPerformanceTest.java     |   439 -
 .../HeterogenousLuceneSerializerJUnitTest.java  |    90 -
 .../serializer/PdxFieldMapperJUnitTest.java     |    85 -
 .../ReflectionFieldMapperJUnitTest.java         |    85 -
 .../internal/repository/serializer/Type1.java   |    48 -
 .../internal/repository/serializer/Type2.java   |    34 -
 ...neIndexXmlGeneratorIntegrationJUnitTest.java |    78 -
 .../xml/LuceneIndexXmlGeneratorJUnitTest.java   |    80 -
 ...uceneIndexXmlParserIntegrationJUnitTest.java |   107 -
 .../xml/LuceneIndexXmlParserJUnitTest.java      |    72 -
 ...erIntegrationJUnitTest.createIndex.cache.xml |    41 -
 ...serIntegrationJUnitTest.parseIndex.cache.xml |    41 -
 gemfire-pulse/build.gradle                      |   116 -
 .../tools/pulse/internal/PulseAppListener.java  |   703 -
 .../controllers/ExceptionHandlingAdvice.java    |    52 -
 .../internal/controllers/PulseController.java   |   587 -
 .../tools/pulse/internal/data/Cluster.java      |  3826 ----
 .../tools/pulse/internal/data/DataBrowser.java  |   281 -
 .../pulse/internal/data/IClusterUpdater.java    |    37 -
 .../pulse/internal/data/JMXDataUpdater.java     |  2455 ---
 .../pulse/internal/data/JmxManagerFinder.java   |   171 -
 .../tools/pulse/internal/data/PulseConfig.java  |   126 -
 .../pulse/internal/data/PulseConstants.java     |   421 -
 .../tools/pulse/internal/data/PulseVersion.java |   104 -
 .../tools/pulse/internal/data/Repository.java   |   215 -
 .../gemfire/tools/pulse/internal/json/CDL.java  |   274 -
 .../tools/pulse/internal/json/Cookie.java       |   164 -
 .../tools/pulse/internal/json/CookieList.java   |    85 -
 .../gemfire/tools/pulse/internal/json/HTTP.java |   158 -
 .../tools/pulse/internal/json/HTTPTokener.java  |    72 -
 .../tools/pulse/internal/json/JSONArray.java    |   901 -
 .../pulse/internal/json/JSONException.java      |    47 -
 .../tools/pulse/internal/json/JSONML.java       |   462 -
 .../tools/pulse/internal/json/JSONObject.java   |  1585 --
 .../tools/pulse/internal/json/JSONString.java   |    37 -
 .../tools/pulse/internal/json/JSONStringer.java |    73 -
 .../tools/pulse/internal/json/JSONTokener.java  |   441 -
 .../tools/pulse/internal/json/JSONWriter.java   |   322 -
 .../gemfire/tools/pulse/internal/json/README    |    68 -
 .../gemfire/tools/pulse/internal/json/XML.java  |   503 -
 .../tools/pulse/internal/json/XMLTokener.java   |   360 -
 .../tools/pulse/internal/log/LogWriter.java     |   266 -
 .../pulse/internal/log/MessageFormatter.java    |   103 -
 .../pulse/internal/log/PulseLogWriter.java      |   306 -
 .../tools/pulse/internal/log/PulseLogger.java   |   144 -
 .../internal/service/ClusterDetailsService.java |   109 -
 .../service/ClusterDiskThroughputService.java   |    79 -
 .../service/ClusterGCPausesService.java         |    71 -
 .../service/ClusterKeyStatisticsService.java    |    79 -
 .../internal/service/ClusterMemberService.java  |   132 -
 .../service/ClusterMembersRGraphService.java    |   372 -
 .../service/ClusterMemoryUsageService.java      |    70 -
 .../internal/service/ClusterRegionService.java  |   241 -
 .../internal/service/ClusterRegionsService.java |   243 -
 .../service/ClusterSelectedRegionService.java   |   278 -
 .../ClusterSelectedRegionsMemberService.java    |   146 -
 .../internal/service/ClusterWANInfoService.java |    82 -
 .../service/MemberAsynchEventQueuesService.java |   107 -
 .../internal/service/MemberClientsService.java  |   123 -
 .../internal/service/MemberDetailsService.java  |   128 -
 .../service/MemberDiskThroughputService.java    |    93 -
 .../internal/service/MemberGCPausesService.java |    85 -
 .../service/MemberGatewayHubService.java        |   163 -
 .../service/MemberHeapUsageService.java         |    85 -
 .../service/MemberKeyStatisticsService.java     |    98 -
 .../internal/service/MemberRegionsService.java  |   140 -
 .../internal/service/MembersListService.java    |    77 -
 .../pulse/internal/service/PulseService.java    |    42 -
 .../internal/service/PulseServiceFactory.java   |    56 -
 .../internal/service/PulseVersionService.java   |    74 -
 .../service/QueryStatisticsService.java         |   152 -
 .../internal/service/SystemAlertsService.java   |   134 -
 .../pulse/internal/util/ConnectionUtil.java     |    47 -
 .../pulse/internal/util/IPAddressUtil.java      |    66 -
 .../tools/pulse/internal/util/StringUtils.java  |    86 -
 .../tools/pulse/internal/util/TimeUtils.java    |   121 -
 .../main/resources/LogMessages_en_US.properties |    97 -
 .../main/resources/LogMessages_fr_FR.properties |    91 -
 .../src/main/resources/default.properties       |    23 -
 .../src/main/resources/gemfire.properties       |    47 -
 .../src/main/resources/pulse-users.properties   |    30 -
 .../src/main/resources/pulse.properties         |    54 -
 .../src/main/resources/pulsesecurity.properties |    26 -
 .../src/main/resources/sqlfire.properties       |    47 -
 gemfire-pulse/src/main/webapp/DataBrowser.html  |   367 -
 gemfire-pulse/src/main/webapp/Login.html        |   142 -
 .../src/main/webapp/META-INF/MANIFEST.MF        |     3 -
 .../src/main/webapp/MemberDetails.html          |   618 -
 .../src/main/webapp/QueryStatistics.html        |   323 -
 .../webapp/WEB-INF/mvc-dispatcher-servlet.xml   |    35 -
 .../src/main/webapp/WEB-INF/spring-security.xml |    83 -
 gemfire-pulse/src/main/webapp/WEB-INF/web.xml   |    62 -
 .../src/main/webapp/clusterDetail.html          |   676 -
 .../src/main/webapp/css/ForceDirected.css       |    46 -
 gemfire-pulse/src/main/webapp/css/Treemap.css   |   134 -
 gemfire-pulse/src/main/webapp/css/base.css      |    74 -
 gemfire-pulse/src/main/webapp/css/common.css    |   240 -
 .../webapp/css/fonts/DroidSans-Bold-webfont.eot |   Bin 43462 -> 0 bytes
 .../webapp/css/fonts/DroidSans-Bold-webfont.svg |   271 -
 .../webapp/css/fonts/DroidSans-Bold-webfont.ttf |   Bin 43260 -> 0 bytes
 .../css/fonts/DroidSans-Bold-webfont.woff       |   Bin 27120 -> 0 bytes
 .../main/webapp/css/fonts/DroidSans-webfont.eot |   Bin 44926 -> 0 bytes
 .../main/webapp/css/fonts/DroidSans-webfont.svg |   271 -
 .../main/webapp/css/fonts/DroidSans-webfont.ttf |   Bin 44712 -> 0 bytes
 .../webapp/css/fonts/DroidSans-webfont.woff     |   Bin 27672 -> 0 bytes
 .../src/main/webapp/css/grid/ui.jqgrid.css      |   850 -
 gemfire-pulse/src/main/webapp/css/ie/ie.css     |    19 -
 gemfire-pulse/src/main/webapp/css/ie/ie7.css    |    21 -
 gemfire-pulse/src/main/webapp/css/ie/ie8.css    |    20 -
 gemfire-pulse/src/main/webapp/css/ie/ie9.css    |    20 -
 gemfire-pulse/src/main/webapp/css/jquery-ui.css |   566 -
 .../src/main/webapp/css/jquery.jscrollpane.css  |   121 -
 .../src/main/webapp/css/jquery.ui.all.css       |    11 -
 .../src/main/webapp/css/jquery.ui.core.css      |    41 -
 .../src/main/webapp/css/jquery.ui.theme.css     |   248 -
 .../src/main/webapp/css/jquery.ztreestyle.css   |    90 -
 .../css/multiselect/jquery.multiselect.css      |   301 -
 .../main/webapp/css/multiselect/prettify.css    |    46 -
 .../src/main/webapp/css/multiselect/style.css   |    35 -
 gemfire-pulse/src/main/webapp/css/popup.css     |    55 -
 gemfire-pulse/src/main/webapp/css/style.css     |  3067 ---
 .../src/main/webapp/css/treeView/Treemap.css    |   134 -
 .../src/main/webapp/images/about-gemfirexd.png  |   Bin 4440 -> 0 bytes
 .../src/main/webapp/images/about-sqlfire.png    |   Bin 6277 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/about.png  |   Bin 4421 -> 0 bytes
 .../src/main/webapp/images/acc-minus.png        |   Bin 1049 -> 0 bytes
 .../src/main/webapp/images/acc-n-minus.png      |   Bin 961 -> 0 bytes
 .../src/main/webapp/images/acc-n-plus.png       |   Bin 988 -> 0 bytes
 .../src/main/webapp/images/acc-plus.png         |   Bin 1047 -> 0 bytes
 .../src/main/webapp/images/activeServer.png     |   Bin 2846 -> 0 bytes
 .../src/main/webapp/images/arrow-down.png       |   Bin 986 -> 0 bytes
 .../src/main/webapp/images/arrow-up.png         |   Bin 988 -> 0 bytes
 .../src/main/webapp/images/bg-image.png         |   Bin 948 -> 0 bytes
 .../src/main/webapp/images/bg-imageLogin.png    |   Bin 946 -> 0 bytes
 .../src/main/webapp/images/blue-msg-icon.png    |   Bin 1194 -> 0 bytes
 .../src/main/webapp/images/border-left-grid.png |   Bin 927 -> 0 bytes
 .../src/main/webapp/images/bread-crumb.png      |   Bin 1182 -> 0 bytes
 .../src/main/webapp/images/bubble_arrow.png     |   Bin 1168 -> 0 bytes
 .../src/main/webapp/images/chart-active.png     |   Bin 1096 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/chart.png  |   Bin 1095 -> 0 bytes
 .../src/main/webapp/images/checkbox.png         |   Bin 1630 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/chkbox.png |   Bin 1313 -> 0 bytes
 .../src/main/webapp/images/copy_icon.png        |   Bin 1172 -> 0 bytes
 .../src/main/webapp/images/correct_icon.png     |   Bin 1143 -> 0 bytes
 .../main/webapp/images/correct_small_icon.png   |   Bin 1065 -> 0 bytes
 .../main/webapp/images/correct_white_icon.png   |   Bin 1122 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/cross.png  |   Bin 2954 -> 0 bytes
 .../main/webapp/images/dataViewWanEnabled.png   |   Bin 1204 -> 0 bytes
 .../src/main/webapp/images/dd_active.png        |   Bin 1065 -> 0 bytes
 .../src/main/webapp/images/dd_arrow.png         |   Bin 1058 -> 0 bytes
 .../webapp/images/error-locators-others.png     |   Bin 2052 -> 0 bytes
 .../src/main/webapp/images/error-locators.png   |   Bin 2023 -> 0 bytes
 .../images/error-manager-locator-others.png     |   Bin 2067 -> 0 bytes
 .../webapp/images/error-manager-locator.png     |   Bin 2047 -> 0 bytes
 .../webapp/images/error-managers-others.png     |   Bin 2051 -> 0 bytes
 .../src/main/webapp/images/error-managers.png   |   Bin 2025 -> 0 bytes
 .../main/webapp/images/error-message-icon.png   |   Bin 1193 -> 0 bytes
 .../src/main/webapp/images/error-msg-icon.png   |   Bin 1194 -> 0 bytes
 .../src/main/webapp/images/error-others.png     |   Bin 2066 -> 0 bytes
 .../src/main/webapp/images/error-otheruser.png  |   Bin 2002 -> 0 bytes
 .../main/webapp/images/error-status-icon.png    |   Bin 2024 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/error.png  |   Bin 1110 -> 0 bytes
 .../src/main/webapp/images/graph-active.png     |   Bin 1360 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/graph.png  |   Bin 1374 -> 0 bytes
 .../images/graph/key-statistics-graph.png       |   Bin 1617 -> 0 bytes
 .../webapp/images/graph/memory-usage-graph.png  |   Bin 4366 -> 0 bytes
 .../src/main/webapp/images/graph/reads.png      |   Bin 3423 -> 0 bytes
 .../images/graph/throughput-writes-graph.png    |   Bin 4340 -> 0 bytes
 .../src/main/webapp/images/graph/topology.png   |   Bin 14997 -> 0 bytes
 .../src/main/webapp/images/graph/treeview.png   |   Bin 3386 -> 0 bytes
 .../src/main/webapp/images/graph/writes.png     |   Bin 3527 -> 0 bytes
 .../src/main/webapp/images/grid-active.png      |   Bin 1095 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/grid.png   |   Bin 1094 -> 0 bytes
 .../webapp/images/header-bg-bottom-border.png   |   Bin 924 -> 0 bytes
 .../src/main/webapp/images/hide_ico.png         |   Bin 3281 -> 0 bytes
 .../src/main/webapp/images/history-icon.png     |   Bin 3533 -> 0 bytes
 .../src/main/webapp/images/history-remove.png   |   Bin 1185 -> 0 bytes
 .../src/main/webapp/images/hor-spiltter-dot.png |   Bin 990 -> 0 bytes
 .../webapp/images/icons members/locators.png    |   Bin 3106 -> 0 bytes
 .../images/icons members/locators_others.png    |   Bin 3118 -> 0 bytes
 .../webapp/images/icons members/managers.png    |   Bin 3103 -> 0 bytes
 .../images/icons members/managers_locators.png  |   Bin 3120 -> 0 bytes
 .../images/icons members/managers_others.png    |   Bin 3117 -> 0 bytes
 .../main/webapp/images/icons members/others.png |   Bin 3102 -> 0 bytes
 .../src/main/webapp/images/info-msg-icon.png    |   Bin 1194 -> 0 bytes
 .../src/main/webapp/images/lastLine.png         |   Bin 948 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/line.png   |   Bin 929 -> 0 bytes
 .../src/main/webapp/images/mask-bg.png          |   Bin 940 -> 0 bytes
 .../webapp/images/membersName_arror-off.png     |   Bin 1148 -> 0 bytes
 .../main/webapp/images/membersName_arror-on.png |   Bin 1170 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/minus.png  |   Bin 2959 -> 0 bytes
 .../webapp/images/normal-locators-others.png    |   Bin 2025 -> 0 bytes
 .../src/main/webapp/images/normal-locators.png  |   Bin 1995 -> 0 bytes
 .../images/normal-manager-locator-others.png    |   Bin 2037 -> 0 bytes
 .../webapp/images/normal-manager-locator.png    |   Bin 2029 -> 0 bytes
 .../webapp/images/normal-managers-others.png    |   Bin 2027 -> 0 bytes
 .../src/main/webapp/images/normal-managers.png  |   Bin 1997 -> 0 bytes
 .../src/main/webapp/images/normal-others.png    |   Bin 1988 -> 0 bytes
 .../src/main/webapp/images/normal-otheruser.png |   Bin 1968 -> 0 bytes
 .../main/webapp/images/normal-status-icon.png   |   Bin 1955 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/normal.png |   Bin 1110 -> 0 bytes
 .../src/main/webapp/images/orange-msg-icon.png  |   Bin 1194 -> 0 bytes
 .../src/main/webapp/images/pivotal-logo.png     |   Bin 4302 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/plus.png   |   Bin 1178 -> 0 bytes
 .../src/main/webapp/images/plusMinusIcon.png    |   Bin 1192 -> 0 bytes
 .../src/main/webapp/images/popup-arrow.png      |   Bin 1075 -> 0 bytes
 .../main/webapp/images/popup-close-button.png   |   Bin 1026 -> 0 bytes
 .../images/pulse-monitoring-gemfirexd-old.png   |   Bin 6606 -> 0 bytes
 .../images/pulse-monitoring-gemfirexd.png       |   Bin 4440 -> 0 bytes
 .../webapp/images/pulse-monitoring-sqlfire.png  |   Bin 6467 -> 0 bytes
 .../src/main/webapp/images/pulse-monitoring.png |   Bin 4741 -> 0 bytes
 .../src/main/webapp/images/radio-off.png        |   Bin 1252 -> 0 bytes
 .../src/main/webapp/images/radio-on.png         |   Bin 1306 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/radio.png  |   Bin 2476 -> 0 bytes
 .../src/main/webapp/images/regionIcons.png      |   Bin 1495 -> 0 bytes
 .../src/main/webapp/images/rightBorder.png      |   Bin 927 -> 0 bytes
 .../src/main/webapp/images/searchIcon.png       |   Bin 1592 -> 0 bytes
 .../src/main/webapp/images/seperator.png        |   Bin 929 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/server.png |   Bin 1233 -> 0 bytes
 .../webapp/images/severe-locators-others.png    |   Bin 2026 -> 0 bytes
 .../src/main/webapp/images/severe-locators.png  |   Bin 1980 -> 0 bytes
 .../images/severe-manager-locator-others.png    |   Bin 2032 -> 0 bytes
 .../webapp/images/severe-manager-locator.png    |   Bin 2026 -> 0 bytes
 .../webapp/images/severe-managers-others.png    |   Bin 2026 -> 0 bytes
 .../src/main/webapp/images/severe-managers.png  |   Bin 1985 -> 0 bytes
 .../src/main/webapp/images/severe-msg-icon.png  |   Bin 1194 -> 0 bytes
 .../src/main/webapp/images/severe-others.png    |   Bin 2007 -> 0 bytes
 .../src/main/webapp/images/severe-otheruser.png |   Bin 1959 -> 0 bytes
 .../main/webapp/images/severe-status-icon.png   |   Bin 2218 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/severe.png |   Bin 1110 -> 0 bytes
 .../src/main/webapp/images/show_ico.png         |   Bin 3296 -> 0 bytes
 gemfire-pulse/src/main/webapp/images/spacer.png |   Bin 922 -> 0 bytes
 .../src/main/webapp/images/sqlfire.png          |   Bin 6467 -> 0 bytes
 .../src/main/webapp/images/status-down.png      |   Bin 1125 -> 0 bytes
 .../src/main/webapp/images/status-up.png        |   Bin 1104 -> 0 bytes
 .../src/main/webapp/images/subServer.png        |   Bin 2201 -> 0 bytes
 .../src/main/webapp/images/tab-bottom-bg.png    |   Bin 929 -> 0 bytes
 .../src/main/webapp/images/treeView-img.png     |   Bin 962 -> 0 bytes
 .../main/webapp/images/ui-anim_basic_16x16.gif  |   Bin 1459 -> 0 bytes
 .../src/main/webapp/images/ver-spiltter-dot.png |   Bin 979 -> 0 bytes
 .../webapp/images/warning-locators-others.png   |   Bin 2048 -> 0 bytes
 .../src/main/webapp/images/warning-locators.png |   Bin 2032 -> 0 bytes
 .../images/warning-manager-locator-others.png   |   Bin 2071 -> 0 bytes
 .../webapp/images/warning-manager-locator.png   |   Bin 2052 -> 0 bytes
 .../webapp/images/warning-managers-others.png   |   Bin 2023 -> 0 bytes
 .../src/main/webapp/images/warning-managers.png |   Bin 2030 -> 0 bytes
 .../src/main/webapp/images/warning-msg-icon.png |   Bin 1194 -> 0 bytes
 .../src/main/webapp/images/warning-others.png   |   Bin 2027 -> 0 bytes
 .../main/webapp/images/warning-otheruser.png    |   Bin 2010 -> 0 bytes
 .../main/webapp/images/warning-status-icon.png  |   Bin 1714 -> 0 bytes
 .../src/main/webapp/images/warning.png          |   Bin 1107 -> 0 bytes
 .../src/main/webapp/images/yellow-msg-icon.png  |   Bin 1194 -> 0 bytes
 gemfire-pulse/src/main/webapp/index.html        |    67 -
 .../main/webapp/properties/default.properties   |    21 -
 .../webapp/properties/default_en.properties     |    21 -
 .../main/webapp/properties/gemfire.properties   |    45 -
 .../webapp/properties/gemfire_en.properties     |    45 -
 .../main/webapp/properties/gemfirexd.properties |    45 -
 .../webapp/properties/gemfirexd_en.properties   |    45 -
 .../src/main/webapp/properties/index.properties |    18 -
 .../main/webapp/properties/index_fr.properties  |    19 -
 .../main/webapp/properties/sqlfire.properties   |    45 -
 gemfire-pulse/src/main/webapp/regionDetail.html |   567 -
 .../src/main/webapp/scripts/lib/common.js       |   536 -
 .../src/main/webapp/scripts/lib/excanvas.js     |  1416 --
 .../main/webapp/scripts/lib/grid.locale-en.js   |   169 -
 .../src/main/webapp/scripts/lib/html5.js        |     3 -
 .../src/main/webapp/scripts/lib/jit.js          | 17208 -----------------
 .../src/main/webapp/scripts/lib/jquery-1.7.2.js |  9404 ---------
 .../webapp/scripts/lib/jquery.generateFile.js   |    77 -
 .../scripts/lib/jquery.i18n.properties.js       |   336 -
 .../webapp/scripts/lib/jquery.jqGrid.src.js     | 12182 ------------
 .../webapp/scripts/lib/jquery.jscrollpane.js    |  1340 --
 .../webapp/scripts/lib/jquery.mousewheel.js     |    84 -
 .../webapp/scripts/lib/jquery.placeholder.js    |   106 -
 .../main/webapp/scripts/lib/jquery.sparkline.js |  3001 ---
 .../main/webapp/scripts/lib/jquery.tablednd.js  |   383 -
 .../main/webapp/scripts/lib/jquery.timeago.js   |   193 -
 .../webapp/scripts/lib/jquery.ztree.core-3.5.js |  1650 --
 .../scripts/lib/jquery.ztree.excheck-3.5.js     |   624 -
 .../src/main/webapp/scripts/lib/tooltip.js      |   357 -
 .../webapp/scripts/multiselect/jquery-ui.js     | 14988 --------------
 .../scripts/multiselect/jquery.multiselect.js   |   816 -
 .../main/webapp/scripts/multiselect/prettify.js |  1522 --
 .../webapp/scripts/pulsescript/MemberDetails.js |  1045 -
 .../scripts/pulsescript/PulseCallbacks.js       |  1735 --
 .../scripts/pulsescript/PulseFunctions.js       |   227 -
 .../webapp/scripts/pulsescript/clusterDetail.js |  2370 ---
 .../scripts/pulsescript/clusterRGraphMembers.js |  1515 --
 .../main/webapp/scripts/pulsescript/common.js   |  1626 --
 .../scripts/pulsescript/pages/DataBrowser.js    |   662 -
 .../pulsescript/pages/DataBrowserQuery.js       |   964 -
 .../pages/DataBrowserQueryHistory.js            |    95 -
 .../webapp/scripts/pulsescript/pages/Login.js   |   170 -
 .../webapp/scripts/pulsescript/pages/index.js   |    26 -
 .../scripts/pulsescript/queryStatistics.js      |   315 -
 .../webapp/scripts/pulsescript/regionView.js    |   757 -
 .../pulse/testbed/GemFireDistributedSystem.java |   323 -
 .../tools/pulse/testbed/GemfireTopology.java    |    24 -
 .../tools/pulse/testbed/PropFileHelper.java     |   115 -
 .../pulse/testbed/PropMockDataUpdater.java      |   515 -
 .../gemfire/tools/pulse/testbed/TestBed.java    |    84 -
 .../tools/pulse/testbed/driver/PulseUITest.java |   284 -
 .../pulse/testbed/driver/TomcatHelper.java      |    77 -
 .../tools/pulse/tests/AggregateStatement.java   |   217 -
 .../pulse/tests/AggregateStatementMBean.java    |   168 -
 .../pulse/tests/DataBrowserResultLoader.java    |    84 -
 .../pulse/tests/GemFireXDAggregateTable.java    |    46 -
 .../tests/GemFireXDAggregateTableMBean.java     |    28 -
 .../tools/pulse/tests/GemFireXDCluster.java     |    95 -
 .../pulse/tests/GemFireXDClusterMBean.java      |    32 -
 .../tools/pulse/tests/GemFireXDMember.java      |    80 -
 .../tools/pulse/tests/GemFireXDMemberMBean.java |    31 -
 .../gemfire/tools/pulse/tests/JMXBaseBean.java  |    67 -
 .../tools/pulse/tests/JMXProperties.java        |    47 -
 .../gemfire/tools/pulse/tests/Member.java       |   193 -
 .../gemfire/tools/pulse/tests/MemberMBean.java  |    86 -
 .../tools/pulse/tests/PulseAutomatedTest.java   |   785 -
 .../tools/pulse/tests/PulseBaseTest.java        |   686 -
 .../gemfire/tools/pulse/tests/PulseTest.java    |  1056 -
 .../tools/pulse/tests/PulseTestData.java        |   106 -
 .../tools/pulse/tests/PulseTestLocators.java    |   225 -
 .../gemfire/tools/pulse/tests/Region.java       |   192 -
 .../gemfire/tools/pulse/tests/RegionMBean.java  |    59 -
 .../tools/pulse/tests/RegionOnMember.java       |    96 -
 .../tools/pulse/tests/RegionOnMemberMBean.java  |    50 -
 .../gemfire/tools/pulse/tests/Server.java       |   253 -
 .../gemfire/tools/pulse/tests/ServerObject.java |   264 -
 .../tools/pulse/tests/ServerObjectMBean.java    |    79 -
 .../gemfire/tools/pulse/tests/TomcatHelper.java |    97 -
 .../pulse/tests/junit/BaseServiceTest.java      |   250 -
 .../junit/ClusterSelectedRegionServiceTest.java |   350 -
 ...ClusterSelectedRegionsMemberServiceTest.java |   362 -
 .../junit/MemberGatewayHubServiceTest.java      |   423 -
 .../src/test/resources/NoDataFound1.txt         |     1 -
 .../src/test/resources/NoDataFound2.txt         |    35 -
 .../src/test/resources/NoDataFound3.txt         |     6 -
 gemfire-pulse/src/test/resources/message.txt    |     1 -
 .../src/test/resources/test.properties          |   326 -
 gemfire-pulse/src/test/resources/test1.txt      |     5 -
 gemfire-pulse/src/test/resources/test2.txt      |     7 -
 gemfire-pulse/src/test/resources/test3.txt      |     5 -
 gemfire-pulse/src/test/resources/test4.txt      |     4 -
 gemfire-pulse/src/test/resources/test5.txt      |     7 -
 gemfire-pulse/src/test/resources/test6.txt      |    11 -
 gemfire-pulse/src/test/resources/test7.txt      |    13 -
 .../resources/testNullObjectsAtRootLevel1.txt   |    25 -
 .../resources/testNullObjectsAtRootLevel2.txt   |    30 -
 .../src/test/resources/testQueryResult.txt      |   198 -
 .../src/test/resources/testQueryResult1000.txt  |  1023 -
 .../testQueryResultArrayAndArrayList.txt        |     8 -
 .../test/resources/testQueryResultArrayList.txt |     6 -
 .../resources/testQueryResultArrayOfList.txt    |    15 -
 .../resources/testQueryResultClusterSmall.txt   |    23 -
 .../testQueryResultClusterWithStruct.txt        |    10 -
 .../test/resources/testQueryResultHashMap.txt   |     8 -
 .../resources/testQueryResultHashMapSmall.txt   |    12 -
 .../src/test/resources/testQueryResultSmall.txt |    12 -
 .../resources/testQueryResultWithStruct.txt     |  1744 --
 .../testQueryResultWithStructSmall.txt          |    15 -
 gemfire-pulse/src/test/resources/test_pp.txt    |     7 -
 .../src/test/resources/testbed.properties       |   157 -
 gemfire-rebalancer/build.gradle                 |    28 -
 .../gemfire/cache/util/AutoBalancer.java        |   554 -
 .../util/AutoBalancerIntegrationJUnitTest.java  |   206 -
 .../cache/util/AutoBalancerJUnitTest.java       |   604 -
 gemfire-site/.gitignore                         |     1 -
 gemfire-site/website/.gitignore                 |     1 -
 gemfire-site/website/README.md                  |    54 -
 gemfire-site/website/Rules                      |    69 -
 gemfire-site/website/build.sh                   |    18 -
 .../website/content/bootstrap/bootstrap.min.css |     9 -
 .../website/content/community/index.html        |   291 -
 .../website/content/css/bootflat-extensions.css |   356 -
 .../website/content/css/bootflat-square.css     |    69 -
 gemfire-site/website/content/css/bootflat.css   |  1559 --
 .../website/content/css/font-awesome.min.css    |   405 -
 gemfire-site/website/content/css/geode-site.css |  1617 --
 gemfire-site/website/content/favicon.ico        |   Bin 20805 -> 0 bytes
 .../website/content/font/FontAwesome.otf        |   Bin 61896 -> 0 bytes
 .../content/font/fontawesome-webfont-eot.eot    |   Bin 37405 -> 0 bytes
 .../content/font/fontawesome-webfont-svg.svg    |   399 -
 .../content/font/fontawesome-webfont-ttf.ttf    |   Bin 79076 -> 0 bytes
 .../content/font/fontawesome-webfont-woff.woff  |   Bin 43572 -> 0 bytes
 .../website/content/img/apache_geode_logo.png   |   Bin 23616 -> 0 bytes
 .../content/img/apache_geode_logo_white.png     |   Bin 22695 -> 0 bytes
 .../img/apache_geode_logo_white_small.png       |   Bin 52948 -> 0 bytes
 .../website/content/img/check_flat/default.png  |   Bin 25851 -> 0 bytes
 gemfire-site/website/content/img/egg-logo.png   |   Bin 9938 -> 0 bytes
 gemfire-site/website/content/img/github.png     |   Bin 8936 -> 0 bytes
 gemfire-site/website/content/index.html         |   142 -
 .../website/content/js/bootstrap.min.js         |     8 -
 gemfire-site/website/content/js/head.js         |   708 -
 gemfire-site/website/content/js/html5shiv.js    |     8 -
 .../website/content/js/jquery-1.10.1.min.js     |     6 -
 .../website/content/js/jquery.icheck.js         |   397 -
 gemfire-site/website/content/js/respond.min.js  |     6 -
 .../website/content/js/usergrid-site.js         |    66 -
 .../website/content/releases/index.html         |   129 -
 gemfire-site/website/layouts/community.html     |     1 -
 gemfire-site/website/layouts/default.html       |    44 -
 gemfire-site/website/layouts/docs.html          |     1 -
 gemfire-site/website/layouts/footer.html        |    96 -
 gemfire-site/website/layouts/header.html        |   248 -
 gemfire-site/website/lib/default.rb             |    60 -
 gemfire-site/website/lib/helpers_.rb            |    16 -
 gemfire-site/website/lib/pandoc.template        |     4 -
 gemfire-site/website/nanoc.yaml                 |    94 -
 gemfire-site/website/run.sh                     |    18 -
 gemfire-site/website/utilities/map-markers.rb   |    75 -
 gemfire-site/website/utilities/markers.txt      |   440 -
 .../website/utilities/snapshot-apigee.rb        |    88 -
 gemfire-spark-connector/.gitignore              |     1 -
 gemfire-spark-connector/README.md               |    32 -
 gemfire-spark-connector/doc/10_demos.md         |    84 -
 gemfire-spark-connector/doc/1_building.md       |    36 -
 gemfire-spark-connector/doc/2_quick.md          |   178 -
 gemfire-spark-connector/doc/3_connecting.md     |    55 -
 gemfire-spark-connector/doc/4_loading.md        |   108 -
 gemfire-spark-connector/doc/5_rdd_join.md       |   237 -
 gemfire-spark-connector/doc/6_save_rdd.md       |    81 -
 gemfire-spark-connector/doc/7_save_dstream.md   |    68 -
 gemfire-spark-connector/doc/8_oql.md            |    58 -
 gemfire-spark-connector/doc/9_java_api.md       |   129 -
 .../connector/internal/RegionMetadata.java      |    93 -
 .../gemfirefunctions/QueryFunction.java         |    99 -
 .../RetrieveRegionFunction.java                 |   208 -
 .../RetrieveRegionMetadataFunction.java         |   118 -
 .../StructStreamingResultSender.java            |   219 -
 .../gemfire/spark/connector/Employee.java       |    54 -
 .../spark/connector/JavaApiIntegrationTest.java |   424 -
 .../gemfire/spark/connector/Portfolio.java      |   109 -
 .../gemfire/spark/connector/Position.java       |    73 -
 .../src/it/resources/test-regions.xml           |    49 -
 .../src/it/resources/test-retrieve-regions.xml  |    57 -
 .../spark/connector/BasicIntegrationTest.scala  |   598 -
 .../RDDJoinRegionIntegrationTest.scala          |   300 -
 .../RetrieveRegionIntegrationTest.scala         |   253 -
 .../gemfire/spark/connector/package.scala       |    29 -
 .../connector/testkit/GemFireCluster.scala      |    47 -
 .../spark/connector/testkit/GemFireRunner.scala |   148 -
 .../spark/connector/testkit/IOUtils.scala       |    94 -
 .../spark/streaming/ManualClockHelper.scala     |    28 -
 .../spark/streaming/TestInputDStream.scala      |    44 -
 .../javaapi/GemFireJavaDStreamFunctions.java    |    86 -
 .../GemFireJavaPairDStreamFunctions.java        |    77 -
 .../javaapi/GemFireJavaPairRDDFunctions.java    |   238 -
 .../javaapi/GemFireJavaRDDFunctions.java        |   178 -
 .../javaapi/GemFireJavaSQLContextFunctions.java |    49 -
 .../GemFireJavaSparkContextFunctions.java       |    87 -
 .../connector/javaapi/GemFireJavaUtil.java      |   122 -
 .../spark/connector/GemFireConnection.scala     |    67 -
 .../spark/connector/GemFireConnectionConf.scala |    73 -
 .../connector/GemFireConnectionManager.scala    |    31 -
 .../connector/GemFireFunctionDeployer.scala     |    81 -
 .../connector/GemFireKryoRegistrator.scala      |    29 -
 .../connector/GemFirePairRDDFunctions.scala     |   140 -
 .../spark/connector/GemFireRDDFunctions.scala   |   120 -
 .../connector/GemFireSQLContextFunctions.scala  |    42 -
 .../GemFireSparkContextFunctions.scala          |    39 -
 .../internal/DefaultGemFireConnection.scala     |   164 -
 .../DefaultGemFireConnectionManager.scala       |    77 -
 .../connector/internal/LocatorHelper.scala      |   135 -
 .../StructStreamingResultCollector.scala        |   152 -
 .../connector/internal/oql/QueryParser.scala    |    58 -
 .../spark/connector/internal/oql/QueryRDD.scala |    83 -
 .../internal/oql/QueryResultCollector.scala     |    69 -
 .../connector/internal/oql/RDDConverter.scala   |    40 -
 .../connector/internal/oql/RowBuilder.scala     |    38 -
 .../connector/internal/oql/SchemaBuilder.scala  |    73 -
 .../internal/oql/UndefinedSerializer.scala      |    46 -
 .../connector/internal/rdd/GemFireJoinRDD.scala |    67 -
 .../internal/rdd/GemFireOuterJoinRDD.scala      |    69 -
 .../internal/rdd/GemFireRDDPartition.scala      |    36 -
 .../internal/rdd/GemFireRDDPartitioner.scala    |    59 -
 .../rdd/GemFireRDDPartitionerImpl.scala         |    89 -
 .../internal/rdd/GemFireRDDWriter.scala         |    82 -
 .../internal/rdd/GemFireRegionRDD.scala         |   138 -
 .../javaapi/GemFireJavaRegionRDD.scala          |    26 -
 .../spark/connector/javaapi/JavaAPIHelper.scala |    53 -
 .../gemfire/spark/connector/package.scala       |    69 -
 .../streaming/GemFireDStreamFunctions.scala     |    89 -
 .../spark/connector/streaming/package.scala     |    32 -
 .../gemfire/spark/connector/JavaAPITest.java    |   163 -
 .../connector/GemFireFunctionDeployerTest.scala |    58 -
 .../DefaultGemFireConnectionManagerTest.scala   |    82 -
 ...tStreamingResultSenderAndCollectorTest.scala |   254 -
 .../internal/oql/QueryParserTest.scala          |    83 -
 .../connector/ConnectorImplicitsTest.scala      |    50 -
 .../connector/GemFireConnectionConfTest.scala   |   100 -
 .../connector/GemFireDStreamFunctionsTest.scala |    79 -
 .../connector/GemFireRDDFunctionsTest.scala     |   139 -
 .../spark/connector/LocatorHelperTest.scala     |   168 -
 .../rdd/GemFireRDDPartitionerTest.scala         |   190 -
 .../connector/rdd/GemFireRegionRDDTest.scala    |   117 -
 .../basic-demos/src/main/java/demo/Emp.java     |    95 -
 .../src/main/java/demo/OQLJavaDemo.java         |    59 -
 .../src/main/java/demo/PairRDDSaveJavaDemo.java |    86 -
 .../src/main/java/demo/RDDSaveJavaDemo.java     |    85 -
 .../src/main/java/demo/RegionToRDDJavaDemo.java |    57 -
 .../src/main/scala/demo/NetworkWordCount.scala  |    75 -
 .../project/Dependencies.scala                  |    45 -
 .../project/GemFireSparkBuild.scala             |    76 -
 gemfire-spark-connector/project/Settings.scala  |    57 -
 .../project/build.properties                    |     1 -
 gemfire-spark-connector/project/plugins.sbt     |     8 -
 gemfire-spark-connector/scalastyle-config.xml   |   117 -
 gemfire-wan/build.gradle                        |    23 -
 .../client/internal/GatewaySenderBatchOp.java   |   313 -
 .../cache/client/internal/SenderProxy.java      |    43 -
 .../internal/locator/wan/LocatorDiscovery.java  |   227 -
 .../internal/locator/wan/LocatorHelper.java     |   143 -
 .../locator/wan/LocatorJoinMessage.java         |   105 -
 .../wan/LocatorMembershipListenerImpl.java      |   230 -
 .../locator/wan/RemoteLocatorJoinRequest.java   |    87 -
 .../locator/wan/RemoteLocatorJoinResponse.java  |    89 -
 .../locator/wan/RemoteLocatorPingRequest.java   |    56 -
 .../locator/wan/RemoteLocatorPingResponse.java  |    55 -
 .../locator/wan/RemoteLocatorRequest.java       |    66 -
 .../locator/wan/RemoteLocatorResponse.java      |    74 -
 .../internal/locator/wan/WANFactoryImpl.java    |    74 -
 .../locator/wan/WanLocatorDiscovererImpl.java   |   138 -
 .../cache/wan/AbstractRemoteGatewaySender.java  |   169 -
 .../cache/wan/GatewayReceiverFactoryImpl.java   |   147 -
 .../internal/cache/wan/GatewayReceiverImpl.java |   253 -
 .../wan/GatewaySenderEventRemoteDispatcher.java |   766 -
 .../cache/wan/GatewaySenderFactoryImpl.java     |   389 -
 .../wan/parallel/ParallelGatewaySenderImpl.java |   267 -
 ...rentParallelGatewaySenderEventProcessor.java |    67 -
 ...moteParallelGatewaySenderEventProcessor.java |   122 -
 ...urrentSerialGatewaySenderEventProcessor.java |    45 -
 ...RemoteSerialGatewaySenderEventProcessor.java |    50 -
 .../wan/serial/SerialGatewaySenderImpl.java     |   260 -
 ...ternal.locator.wan.LocatorMembershipListener |    15 -
 ...ne.gemfire.internal.cache.wan.spi.WANFactory |    15 -
 .../cache/CacheXml70GatewayDUnitTest.java       |   243 -
 .../cache/CacheXml80GatewayDUnitTest.java       |    77 -
 .../AnalyzeWANSerializablesJUnitTest.java       |    91 -
 .../internal/cache/UpdateVersionDUnitTest.java  |   965 -
 .../gemfire/internal/cache/wan/WANTestBase.java |  5187 -----
 ...oncurrentParallelGatewaySenderDUnitTest.java |   863 -
 ...ntParallelGatewaySenderOffHeapDUnitTest.java |    32 -
 ...allelGatewaySenderOperation_1_DUnitTest.java |   851 -
 ...allelGatewaySenderOperation_2_DUnitTest.java |   541 -
 ...tSerialGatewaySenderOperationsDUnitTest.java |   111 -
 ...GatewaySenderOperationsOffHeapDUnitTest.java |    32 -
 .../ConcurrentWANPropogation_1_DUnitTest.java   |   610 -
 .../ConcurrentWANPropogation_2_DUnitTest.java   |   487 -
 .../cache/wan/disttx/DistTXWANDUnitTest.java    |   211 -
 .../CommonParallelGatewaySenderDUnitTest.java   |   485 -
 ...onParallelGatewaySenderOffHeapDUnitTest.java |    32 -
 ...wWANConcurrencyCheckForDestroyDUnitTest.java |   528 -
 .../cache/wan/misc/PDXNewWanDUnitTest.java      |   789 -
 ...dRegion_ParallelWANPersistenceDUnitTest.java |   753 -
 ...dRegion_ParallelWANPropogationDUnitTest.java |  1134 --
 .../SenderWithTransportFilterDUnitTest.java     |   241 -
 ...downAllPersistentGatewaySenderDUnitTest.java |   209 -
 .../wan/misc/WANConfigurationJUnitTest.java     |   609 -
 .../wan/misc/WANLocatorServerDUnitTest.java     |   195 -
 .../cache/wan/misc/WANSSLDUnitTest.java         |   153 -
 .../wan/misc/WanAutoDiscoveryDUnitTest.java     |   559 -
 .../cache/wan/misc/WanValidationsDUnitTest.java |  1680 --
 ...tewaySenderOperation_2_OffHeapDUnitTest.java |    32 -
 ...tewaySenderOperation_2_OffHeapDUnitTest.java |    32 -
 ...GatewaySenderOperationsOffHeapDUnitTest.java |    34 -
 ...ewaySenderQueueOverflowOffHeapDUnitTest.java |    34 -
 .../ParallelWANConflationOffHeapDUnitTest.java  |    34 -
 ...nceEnabledGatewaySenderOffHeapDUnitTest.java |    34 -
 ...ropogationConcurrentOpsOffHeapDUnitTest.java |    34 -
 .../ParallelWANPropogationOffHeapDUnitTest.java |    34 -
 ...erialGatewaySenderQueueOffHeapDUnitTest.java |    34 -
 ...nceEnabledGatewaySenderOffHeapDUnitTest.java |    34 -
 .../SerialWANPropogationOffHeapDUnitTest.java   |    34 -
 ...ation_PartitionedRegionOffHeapDUnitTest.java |    34 -
 ...allelGatewaySenderOperation_2_DUnitTest.java |    38 -
 ...arallelGatewaySenderOperationsDUnitTest.java |   639 -
 ...llelGatewaySenderQueueOverflowDUnitTest.java |   534 -
 .../ParallelWANConflationDUnitTest.java         |   497 -
 ...ersistenceEnabledGatewaySenderDUnitTest.java |  1824 --
 ...llelWANPropagationClientServerDUnitTest.java |   114 -
 ...lelWANPropagationConcurrentOpsDUnitTest.java |   291 -
 .../ParallelWANPropagationDUnitTest.java        |  1451 --
 ...ParallelWANPropagationLoopBackDUnitTest.java |   426 -
 .../wan/parallel/ParallelWANStatsDUnitTest.java |   532 -
 ...tewaySenderDistributedDeadlockDUnitTest.java |   408 -
 ...rialGatewaySenderEventListenerDUnitTest.java |   391 -
 .../SerialGatewaySenderOperationsDUnitTest.java |   656 -
 .../SerialGatewaySenderQueueDUnitTest.java      |   339 -
 ...ersistenceEnabledGatewaySenderDUnitTest.java |   604 -
 .../SerialWANPropagationLoopBackDUnitTest.java  |   539 -
 .../serial/SerialWANPropogationDUnitTest.java   |  1605 --
 ...NPropogation_PartitionedRegionDUnitTest.java |   440 -
 .../SerialWANPropogationsFeatureDUnitTest.java  |   373 -
 .../wan/serial/SerialWANStatsDUnitTest.java     |   597 -
 .../wan/wancommand/WANCommandTestBase.java      |   513 -
 ...anCommandCreateGatewayReceiverDUnitTest.java |   699 -
 .../WanCommandCreateGatewaySenderDUnitTest.java |   764 -
 ...WanCommandGatewayReceiverStartDUnitTest.java |   328 -
 .../WanCommandGatewayReceiverStopDUnitTest.java |   333 -
 .../WanCommandGatewaySenderStartDUnitTest.java  |   418 -
 .../WanCommandGatewaySenderStopDUnitTest.java   |   369 -
 .../wan/wancommand/WanCommandListDUnitTest.java |   404 -
 .../WanCommandPauseResumeDUnitTest.java         |   717 -
 .../wancommand/WanCommandStatusDUnitTest.java   |   583 -
 .../management/WANManagementDUnitTest.java      |   521 -
 .../ClusterConfigurationDUnitTest.java          |  1057 -
 .../pulse/TestRemoteClusterDUnitTest.java       |   272 -
 .../gemfire/codeAnalysis/excludedClasses.txt    |     2 -
 .../gemstone/gemfire/codeAnalysis/openBugs.txt  |    21 -
 .../sanctionedDataSerializables.txt             |    28 -
 .../codeAnalysis/sanctionedSerializables.txt    |     0
 gemfire-web-api/build.gradle                    |    55 -
 .../web/controllers/AbstractBaseController.java |   841 -
 .../web/controllers/BaseControllerAdvice.java   |   147 -
 .../web/controllers/CommonCrudController.java   |   249 -
 .../controllers/FunctionAccessController.java   |   246 -
 .../web/controllers/PdxBasedCrudController.java |   354 -
 .../web/controllers/QueryAccessController.java  |   354 -
 .../web/controllers/support/JSONTypes.java      |    25 -
 .../controllers/support/QueryResultTypes.java   |    32 -
 .../web/controllers/support/RegionData.java     |   170 -
 .../controllers/support/RegionEntryData.java    |   105 -
 .../support/RestServersResultCollector.java     |    55 -
 .../web/controllers/support/UpdateOp.java       |    31 -
 .../DataTypeNotSupportedException.java          |    50 -
 .../web/exception/GemfireRestException.java     |    48 -
 .../web/exception/MalformedJsonException.java   |    51 -
 .../web/exception/RegionNotFoundException.java  |    44 -
 .../exception/ResourceNotFoundException.java    |    45 -
 ...stomMappingJackson2HttpMessageConverter.java |   161 -
 .../web/swagger/config/RestApiPathProvider.java |    77 -
 .../web/swagger/config/SwaggerConfig.java       |   181 -
 .../rest/internal/web/util/ArrayUtils.java      |    60 -
 .../rest/internal/web/util/DateTimeUtils.java   |    54 -
 .../internal/web/util/IdentifiableUtils.java    |   109 -
 .../rest/internal/web/util/JSONUtils.java       |   253 -
 .../rest/internal/web/util/JsonWriter.java      |   597 -
 .../rest/internal/web/util/NumberUtils.java     |   146 -
 .../rest/internal/web/util/ValidationUtils.java |    41 -
 .../main/webapp/WEB-INF/gemfire-api-servlet.xml |    85 -
 gemfire-web-api/src/main/webapp/WEB-INF/web.xml |    65 -
 .../src/main/webapp/docs/css/reset.css          |   125 -
 .../src/main/webapp/docs/css/screen.css         |  1221 --
 .../main/webapp/docs/images/explorer_icons.png  |   Bin 5763 -> 0 bytes
 .../src/main/webapp/docs/images/logo_small.png  |   Bin 770 -> 0 bytes
 .../main/webapp/docs/images/pet_store_api.png   |   Bin 824 -> 0 bytes
 .../src/main/webapp/docs/images/throbber.gif    |   Bin 9257 -> 0 bytes
 .../src/main/webapp/docs/images/wordnik_api.png |   Bin 980 -> 0 bytes
 gemfire-web-api/src/main/webapp/docs/index.html |    81 -
 .../src/main/webapp/docs/lib/backbone-min.js    |    38 -
 .../main/webapp/docs/lib/handlebars-1.0.0.js    |  2278 ---
 .../main/webapp/docs/lib/highlight.7.3.pack.js  |     1 -
 .../main/webapp/docs/lib/jquery-1.8.0.min.js    |     2 -
 .../main/webapp/docs/lib/jquery.ba-bbq.min.js   |    18 -
 .../main/webapp/docs/lib/jquery.slideto.min.js  |     1 -
 .../main/webapp/docs/lib/jquery.wiggle.min.js   |     8 -
 .../src/main/webapp/docs/lib/shred.bundle.js    |  2765 ---
 .../src/main/webapp/docs/lib/shred/content.js   |   193 -
 .../src/main/webapp/docs/lib/swagger-oauth.js   |   211 -
 .../src/main/webapp/docs/lib/swagger.js         |  1527 --
 .../src/main/webapp/docs/lib/underscore-min.js  |    32 -
 gemfire-web-api/src/main/webapp/docs/o2c.html   |    15 -
 .../src/main/webapp/docs/swagger-ui.js          |  2269 ---
 .../src/main/webapp/docs/swagger-ui.min.js      |     1 -
 gemfire-web/build.gradle                        |    55 -
 .../src/main/webapp/WEB-INF/gemfire-servlet.xml |    59 -
 gemfire-web/src/main/webapp/WEB-INF/web.xml     |    56 -
 .../internal/web/AbstractWebTestCase.java       |    97 -
 .../ShellCommandsControllerJUnitTest.java       |   240 -
 ...entVariablesHandlerInterceptorJUnitTest.java |   268 -
 .../internal/web/domain/LinkIndexJUnitTest.java |   237 -
 .../internal/web/domain/LinkJUnitTest.java      |   124 -
 .../domain/QueryParameterSourceJUnitTest.java   |    93 -
 .../web/http/ClientHttpRequestJUnitTest.java    |   510 -
 ...ableObjectHttpMessageConverterJUnitTest.java |   166 -
 .../RestHttpOperationInvokerJUnitTest.java      |   454 -
 .../SimpleHttpOperationInvokerJUnitTest.java    |   199 -
 .../web/util/ConvertUtilsJUnitTest.java         |   171 -
 .../internal/web/util/UriUtilsJUnitTest.java    |   119 -
 geode-assembly/build.gradle                     |   340 +
 geode-assembly/src/main/dist/DISCLAIMER         |     6 +
 geode-assembly/src/main/dist/LICENSE            |   429 +
 geode-assembly/src/main/dist/NOTICE             |   467 +
 geode-assembly/src/main/dist/bin/gfsh           |   152 +
 .../src/main/dist/bin/gfsh-completion.bash      |   103 +
 geode-assembly/src/main/dist/bin/gfsh.bat       |    87 +
 .../LocatorLauncherAssemblyJUnitTest.java       |   157 +
 .../management/internal/AgentUtilJUnitTest.java |    98 +
 .../LauncherLifecycleCommandsDUnitTest.java     |  1007 +
 .../LauncherLifecycleCommandsJUnitTest.java     |   625 +
 .../SharedConfigurationEndToEndDUnitTest.java   |   450 +
 geode-common/build.gradle                       |    20 +
 .../gemfire/annotations/Experimental.java       |    56 +
 .../annotations/ExperimentalJUnitTest.java      |   199 +
 .../ClassInExperimentalPackage.java             |    27 +
 .../experimentalpackage/package-info.java       |    27 +
 .../ClassInNonExperimentalPackage.java          |    27 +
 .../nonexperimentalpackage/package-info.java    |    24 +
 geode-core/build.gradle                         |   204 +
 .../internal/ra/GFConnectionFactoryImpl.java    |    66 +
 .../gemfire/internal/ra/GFConnectionImpl.java   |    71 +
 .../internal/ra/spi/JCALocalTransaction.java    |   236 +
 .../internal/ra/spi/JCAManagedConnection.java   |   299 +
 .../ra/spi/JCAManagedConnectionFactory.java     |   145 +
 .../ra/spi/JCAManagedConnectionMetaData.java    |    67 +
 geode-core/src/jca/ra.xml                       |    52 +
 .../com/gemstone/gemfire/CancelCriterion.java   |   109 +
 .../com/gemstone/gemfire/CancelException.java   |    64 +
 .../gemstone/gemfire/CanonicalInstantiator.java |    86 +
 .../com/gemstone/gemfire/CopyException.java     |    67 +
 .../java/com/gemstone/gemfire/CopyHelper.java   |   268 +
 .../com/gemstone/gemfire/DataSerializable.java  |   140 +
 .../com/gemstone/gemfire/DataSerializer.java    |  3565 ++++
 .../main/java/com/gemstone/gemfire/Delta.java   |    66 +
 .../gemfire/DeltaSerializationException.java    |    59 +
 .../gemfire/ForcedDisconnectException.java      |    41 +
 .../gemstone/gemfire/GemFireCacheException.java |    50 +
 .../gemfire/GemFireCheckedException.java        |    90 +
 .../gemfire/GemFireConfigException.java         |    42 +
 .../com/gemstone/gemfire/GemFireException.java  |   149 +
 .../gemstone/gemfire/GemFireIOException.java    |    41 +
 .../gemstone/gemfire/GemFireRethrowable.java    |    47 +
 .../gemfire/IncompatibleSystemException.java    |    38 +
 .../java/com/gemstone/gemfire/Instantiator.java |   315 +
 .../gemstone/gemfire/InternalGemFireError.java  |   154 +
 .../gemfire/InternalGemFireException.java       |    56 +
 .../gemstone/gemfire/InvalidDeltaException.java |    63 +
 .../gemstone/gemfire/InvalidValueException.java |    42 +
 .../gemfire/InvalidVersionException.java        |    25 +
 .../com/gemstone/gemfire/LicenseException.java  |    54 +
 .../java/com/gemstone/gemfire/LogWriter.java    |   301 +
 .../com/gemstone/gemfire/NoSystemException.java |    48 +
 .../gemfire/OutOfOffHeapMemoryException.java    |    45 +
 .../gemfire/SerializationException.java         |    45 +
 .../gemstone/gemfire/StatisticDescriptor.java   |    82 +
 .../java/com/gemstone/gemfire/Statistics.java   |   446 +
 .../com/gemstone/gemfire/StatisticsFactory.java |   154 +
 .../com/gemstone/gemfire/StatisticsType.java    |    72 +
 .../gemstone/gemfire/StatisticsTypeFactory.java |   197 +
 .../gemfire/SystemConnectException.java         |    42 +
 .../com/gemstone/gemfire/SystemFailure.java     |  1239 ++
 .../gemfire/SystemIsRunningException.java       |    46 +
 .../gemfire/ThreadInterruptedException.java     |    31 +
 .../com/gemstone/gemfire/ToDataException.java   |    42 +
 .../gemfire/UncreatedSystemException.java       |    48 +
 .../gemstone/gemfire/UnmodifiableException.java |    36 +
 .../gemfire/UnstartedSystemException.java       |    49 +
 .../com/gemstone/gemfire/admin/AdminConfig.java |   157 +
 .../gemfire/admin/AdminDistributedSystem.java   |   478 +
 .../admin/AdminDistributedSystemFactory.java    |   163 +
 .../gemstone/gemfire/admin/AdminException.java  |    90 +
 .../gemfire/admin/AdminXmlException.java        |    48 +
 .../java/com/gemstone/gemfire/admin/Alert.java  |    56 +
 .../com/gemstone/gemfire/admin/AlertLevel.java  |   174 +
 .../gemstone/gemfire/admin/AlertListener.java   |    30 +
 .../gemstone/gemfire/admin/BackupStatus.java    |    49 +
 .../admin/CacheDoesNotExistException.java       |    87 +
 .../gemfire/admin/CacheHealthConfig.java        |   157 +
 .../com/gemstone/gemfire/admin/CacheServer.java |    46 +
 .../gemfire/admin/CacheServerConfig.java        |    55 +
 .../com/gemstone/gemfire/admin/CacheVm.java     |    38 +
 .../gemstone/gemfire/admin/CacheVmConfig.java   |    54 +
 .../gemfire/admin/ConfigurationParameter.java   |    74 +
 .../gemfire/admin/DistributedSystemConfig.java  |   682 +
 .../admin/DistributedSystemHealthConfig.java    |    77 +
 .../gemfire/admin/DistributionLocator.java      |    47 +
 .../admin/DistributionLocatorConfig.java        |    90 +
 .../gemstone/gemfire/admin/GemFireHealth.java   |   234 +
 .../gemfire/admin/GemFireHealthConfig.java      |    58 +
 .../gemfire/admin/GemFireMemberStatus.java      |   709 +
 .../gemstone/gemfire/admin/ManagedEntity.java   |   125 +
 .../gemfire/admin/ManagedEntityConfig.java      |   100 +
 .../gemfire/admin/MemberHealthConfig.java       |   142 +
 .../admin/OperationCancelledException.java      |    48 +
 .../gemfire/admin/RegionNotFoundException.java  |    39 +
 .../gemfire/admin/RegionSubRegionSnapshot.java  |   193 +
 .../gemfire/admin/RuntimeAdminException.java    |    50 +
 .../com/gemstone/gemfire/admin/Statistic.java   |    66 +
 .../gemfire/admin/StatisticResource.java        |    86 +
 .../gemstone/gemfire/admin/SystemMember.java    |   148 +
 .../gemfire/admin/SystemMemberBridgeServer.java |   309 +
 .../gemfire/admin/SystemMemberCache.java        |   205 +
 .../gemfire/admin/SystemMemberCacheEvent.java   |    34 +
 .../admin/SystemMemberCacheListener.java        |    73 +
 .../gemfire/admin/SystemMemberCacheServer.java  |   309 +
 .../gemfire/admin/SystemMemberRegion.java       |   322 +
 .../gemfire/admin/SystemMemberRegionEvent.java  |    33 +
 .../gemfire/admin/SystemMemberType.java         |   146 +
 .../gemfire/admin/SystemMembershipEvent.java    |    41 +
 .../gemfire/admin/SystemMembershipListener.java |    62 +
 .../UnmodifiableConfigurationException.java     |    89 +
 .../admin/internal/AbstractHealthEvaluator.java |   185 +
 .../internal/AdminDistributedSystemImpl.java    |  2510 +++
 .../admin/internal/BackupDataStoreHelper.java   |    76 +
 .../admin/internal/BackupDataStoreResult.java   |    57 +
 .../admin/internal/BackupStatusImpl.java        |    62 +
 .../admin/internal/CacheHealthConfigImpl.java   |    92 +
 .../admin/internal/CacheHealthEvaluator.java    |   324 +
 .../admin/internal/CacheServerConfigImpl.java   |   136 +
 .../gemfire/admin/internal/CacheServerImpl.java |   199 +
 .../internal/ConfigurationParameterImpl.java    |   281 +
 .../ConfigurationParameterListener.java         |    35 +
 .../DisabledManagedEntityController.java        |    92 +
 .../internal/DistributedSystemConfigImpl.java   |  1103 ++
 .../DistributedSystemHealthConfigImpl.java      |    59 +
 .../DistributedSystemHealthEvaluator.java       |   172 +
 .../DistributedSystemHealthMonitor.java         |   437 +
 .../internal/DistributionLocatorConfigImpl.java |   192 +
 .../admin/internal/DistributionLocatorImpl.java |   331 +
 .../EnabledManagedEntityController.java         |   412 +
 .../admin/internal/FinishBackupRequest.java     |   172 +
 .../admin/internal/FinishBackupResponse.java    |    79 +
 .../admin/internal/FlushToDiskRequest.java      |    98 +
 .../admin/internal/FlushToDiskResponse.java     |    46 +
 .../admin/internal/GemFireHealthConfigImpl.java |    84 +
 .../admin/internal/GemFireHealthEvaluator.java  |   188 +
 .../admin/internal/GemFireHealthImpl.java       |   536 +
 .../gemfire/admin/internal/InetAddressUtil.java |   209 +
 .../admin/internal/InternalManagedEntity.java   |   106 +
 .../gemfire/admin/internal/LogCollator.java     |   137 +
 .../admin/internal/ManagedEntityConfigImpl.java |   263 +
 .../admin/internal/ManagedEntityConfigXml.java  |   170 +
 .../ManagedEntityConfigXmlGenerator.java        |   386 +
 .../internal/ManagedEntityConfigXmlParser.java  |   623 +
 .../admin/internal/ManagedEntityController.java |    74 +
 .../ManagedEntityControllerFactory.java         |    61 +
 .../admin/internal/ManagedSystemMemberImpl.java |   271 +
 .../admin/internal/MemberHealthConfigImpl.java  |    96 +
 .../admin/internal/MemberHealthEvaluator.java   |   242 +
 .../admin/internal/PrepareBackupRequest.java    |   133 +
 .../admin/internal/PrepareBackupResponse.java   |    82 +
 .../gemfire/admin/internal/StatisticImpl.java   |    97 +
 .../admin/internal/StatisticResourceImpl.java   |   182 +
 .../internal/SystemMemberBridgeServerImpl.java  |   234 +
 .../internal/SystemMemberCacheEventImpl.java    |    61 +
 .../SystemMemberCacheEventProcessor.java        |   148 +
 .../admin/internal/SystemMemberCacheImpl.java   |   313 +
 .../admin/internal/SystemMemberImpl.java        |   520 +
 .../internal/SystemMemberRegionEventImpl.java   |    63 +
 .../admin/internal/SystemMemberRegionImpl.java  |   381 +
 .../internal/SystemMembershipEventImpl.java     |    71 +
 .../internal/doc-files/config-hierarchy.fig     |   156 +
 .../admin/internal/doc-files/health-classes.fig |   233 +
 .../admin/internal/doc-files/health-classes.gif |   Bin 0 -> 8973 bytes
 .../gemfire/admin/internal/package.html         |    53 +
 .../com/gemstone/gemfire/admin/jmx/Agent.java   |   165 +
 .../gemstone/gemfire/admin/jmx/AgentConfig.java |   884 +
 .../gemfire/admin/jmx/AgentFactory.java         |    52 +
 .../internal/AdminDistributedSystemJmxImpl.java |  2341 +++
 .../admin/jmx/internal/AgentConfigImpl.java     |  1847 ++
 .../gemfire/admin/jmx/internal/AgentImpl.java   |  1622 ++
 .../admin/jmx/internal/AgentLauncher.java       |   889 +
 .../admin/jmx/internal/CacheServerJmxImpl.java  |   642 +
 .../admin/jmx/internal/ConfigAttributeInfo.java |    77 +
 .../internal/ConfigurationParameterJmxImpl.java |   170 +
 .../DistributedSystemHealthConfigJmxImpl.java   |   108 +
 .../internal/DistributionLocatorJmxImpl.java    |   186 +
 .../admin/jmx/internal/DynamicManagedBean.java  |   142 +
 .../internal/GemFireHealthConfigJmxImpl.java    |   223 +
 .../jmx/internal/GemFireHealthJmxImpl.java      |   179 +
 .../admin/jmx/internal/GenerateMBeanHTML.java   |   514 +
 .../gemfire/admin/jmx/internal/MBeanUtil.java   |   769 +
 .../admin/jmx/internal/MX4JModelMBean.java      |  1255 ++
 .../jmx/internal/MX4JServerSocketFactory.java   |   160 +
 .../gemfire/admin/jmx/internal/MailManager.java |   333 +
 .../admin/jmx/internal/ManagedResource.java     |    78 +
 .../admin/jmx/internal/ManagedResourceType.java |   210 +
 .../jmx/internal/MemberInfoWithStatsMBean.java  |  1388 ++
 .../admin/jmx/internal/RMIRegistryService.java  |   239 +
 .../jmx/internal/RMIRegistryServiceMBean.java   |    85 +
 .../jmx/internal/RefreshNotificationType.java   |   133 +
 .../jmx/internal/StatAlertNotification.java     |   162 +
 .../jmx/internal/StatAlertsAggregator.java      |   125 +
 .../jmx/internal/StatisticAttributeInfo.java    |    79 +
 .../jmx/internal/StatisticResourceJmxImpl.java  |   361 +
 .../SystemMemberBridgeServerJmxImpl.java        |   135 +
 .../jmx/internal/SystemMemberCacheJmxImpl.java  |   475 +
 .../admin/jmx/internal/SystemMemberJmx.java     |   508 +
 .../admin/jmx/internal/SystemMemberJmxImpl.java |   593 +
 .../jmx/internal/SystemMemberRegionJmxImpl.java |   140 +
 .../gemfire/admin/jmx/internal/package.html     |   166 +
 .../com/gemstone/gemfire/admin/jmx/package.html |    28 +
 .../com/gemstone/gemfire/admin/package.html     |    78 +
 .../gemfire/cache/AttributesFactory.java        |  2056 ++
 .../gemfire/cache/AttributesMutator.java        |   224 +
 .../java/com/gemstone/gemfire/cache/Cache.java  |   457 +
 .../gemstone/gemfire/cache/CacheCallback.java   |    47 +
 .../gemfire/cache/CacheClosedException.java     |    77 +
 .../com/gemstone/gemfire/cache/CacheEvent.java  |   110 +
 .../gemstone/gemfire/cache/CacheException.java  |    70 +
 .../gemfire/cache/CacheExistsException.java     |    66 +
 .../gemstone/gemfire/cache/CacheFactory.java    |   392 +
 .../gemstone/gemfire/cache/CacheListener.java   |   174 +
 .../com/gemstone/gemfire/cache/CacheLoader.java |    64 +
 .../gemfire/cache/CacheLoaderException.java     |    66 +
 .../gemfire/cache/CacheRuntimeException.java    |    81 +
 .../gemstone/gemfire/cache/CacheStatistics.java |   130 +
 .../gemfire/cache/CacheTransactionManager.java  |   350 +
 .../com/gemstone/gemfire/cache/CacheWriter.java |   151 +
 .../gemfire/cache/CacheWriterException.java     |    70 +
 .../gemfire/cache/CacheXmlException.java        |    50 +
 .../gemstone/gemfire/cache/ClientSession.java   |   198 +
 .../gemfire/cache/CommitConflictException.java  |    57 +
 .../cache/CommitDistributionException.java      |    81 +
 .../cache/CommitIncompleteException.java        |    31 +
 .../gemfire/cache/CustomEvictionAttributes.java |    79 +
 .../gemstone/gemfire/cache/CustomExpiry.java    |    42 +
 .../com/gemstone/gemfire/cache/DataPolicy.java  |   266 +
 .../com/gemstone/gemfire/cache/Declarable.java  |    77 +
 .../gemfire/cache/DiskAccessException.java      |   141 +
 .../com/gemstone/gemfire/cache/DiskStore.java   |   216 +
 .../gemfire/cache/DiskStoreFactory.java         |   243 +
 .../gemfire/cache/DiskWriteAttributes.java      |   108 +
 .../cache/DiskWriteAttributesFactory.java       |   263 +
 .../DuplicatePrimaryPartitionException.java     |    65 +
 .../gemfire/cache/DynamicRegionFactory.java     |  1108 ++
 .../gemfire/cache/DynamicRegionListener.java    |    70 +
 .../gemfire/cache/EntryDestroyedException.java  |    61 +
 .../com/gemstone/gemfire/cache/EntryEvent.java  |   167 +
 .../gemfire/cache/EntryExistsException.java     |    62 +
 .../gemfire/cache/EntryNotFoundException.java   |    51 +
 .../gemfire/cache/EntryNotFoundInRegion.java    |    50 +
 .../gemstone/gemfire/cache/EntryOperation.java  |    86 +
 .../gemstone/gemfire/cache/EvictionAction.java  |   115 +
 .../gemfire/cache/EvictionAlgorithm.java        |   151 +
 .../gemfire/cache/EvictionAttributes.java       |   494 +
 .../cache/EvictionAttributesMutator.java        |    40 +
 .../gemfire/cache/EvictionCriteria.java         |    58 +
 .../gemfire/cache/ExpirationAction.java         |   123 +
 .../gemfire/cache/ExpirationAttributes.java     |   144 +
 .../cache/FailedSynchronizationException.java   |    55 +
 .../gemfire/cache/FixedPartitionAttributes.java |   115 +
 .../gemfire/cache/FixedPartitionResolver.java   |    79 +
 .../cache/GatewayConfigurationException.java    |    45 +
 .../gemfire/cache/GatewayException.java         |    68 +
 .../gemstone/gemfire/cache/GemFireCache.java    |   262 +
 .../cache/IncompatibleVersionException.java     |    48 +
 .../gemstone/gemfire/cache/InterestPolicy.java  |   149 +
 .../cache/InterestRegistrationEvent.java        |    92 +
 .../cache/InterestRegistrationListener.java     |    84 +
 .../gemfire/cache/InterestResultPolicy.java     |   122 +
 .../gemstone/gemfire/cache/LoaderHelper.java    |    81 +
 .../com/gemstone/gemfire/cache/LossAction.java  |   149 +
 .../gemfire/cache/LowMemoryException.java       |    67 +
 .../gemfire/cache/MembershipAttributes.java     |   269 +
 .../com/gemstone/gemfire/cache/MirrorType.java  |   136 +
 .../cache/NoQueueServersAvailableException.java |    64 +
 ...NoSubscriptionServersAvailableException.java |    64 +
 .../com/gemstone/gemfire/cache/Operation.java   |  1010 +
 .../cache/OperationAbortedException.java        |    63 +
 .../gemfire/cache/PartitionAttributes.java      |   171 +
 .../cache/PartitionAttributesFactory.java       |   457 +
 .../gemfire/cache/PartitionResolver.java        |    84 +
 .../PartitionedRegionDistributionException.java |    46 +
 .../PartitionedRegionStorageException.java      |    96 +
 .../java/com/gemstone/gemfire/cache/Region.java |  2403 +++
 .../gemfire/cache/RegionAccessException.java    |   118 +
 .../gemfire/cache/RegionAttributes.java         |   490 +
 .../gemfire/cache/RegionDestroyedException.java |    52 +
 .../cache/RegionDistributionException.java      |   123 +
 .../com/gemstone/gemfire/cache/RegionEvent.java |    41 +
 .../gemfire/cache/RegionExistsException.java    |    65 +
 .../gemstone/gemfire/cache/RegionFactory.java   |   934 +
 .../gemfire/cache/RegionMembershipListener.java |    83 +
 .../cache/RegionReinitializedException.java     |    48 +
 .../gemfire/cache/RegionRoleException.java      |    63 +
 .../gemfire/cache/RegionRoleListener.java       |    54 +
 .../gemstone/gemfire/cache/RegionService.java   |   142 +
 .../gemstone/gemfire/cache/RegionShortcut.java  |   238 +
 .../cache/RemoteTransactionException.java       |    42 +
 .../gemstone/gemfire/cache/RequiredRoles.java   |   117 +
 .../gemfire/cache/ResourceException.java        |    61 +
 .../gemfire/cache/ResumptionAction.java         |   114 +
 .../com/gemstone/gemfire/cache/RoleEvent.java   |    39 +
 .../gemstone/gemfire/cache/RoleException.java   |    68 +
 .../java/com/gemstone/gemfire/cache/Scope.java  |   168 +
 .../gemfire/cache/SerializedCacheValue.java     |    53 +
 .../cache/StatisticsDisabledException.java      |    68 +
 .../gemfire/cache/SubscriptionAttributes.java   |   117 +
 .../SynchronizationCommitConflictException.java |    49 +
 .../gemfire/cache/TimeoutException.java         |    73 +
 ...TransactionDataNodeHasDepartedException.java |    42 +
 .../TransactionDataNotColocatedException.java   |    46 +
 .../TransactionDataRebalancedException.java     |    38 +
 .../gemfire/cache/TransactionEvent.java         |   114 +
 .../gemfire/cache/TransactionException.java     |    43 +
 .../gemstone/gemfire/cache/TransactionId.java   |    33 +
 .../cache/TransactionInDoubtException.java      |    42 +
 .../gemfire/cache/TransactionListener.java      |    66 +
 .../gemfire/cache/TransactionWriter.java        |    44 +
 .../cache/TransactionWriterException.java       |    45 +
 ...upportedOperationInTransactionException.java |    37 +
 .../cache/UnsupportedVersionException.java      |    44 +
 .../gemfire/cache/VersionException.java         |    50 +
 .../gemfire/cache/asyncqueue/AsyncEvent.java    |    42 +
 .../cache/asyncqueue/AsyncEventListener.java    |    76 +
 .../cache/asyncqueue/AsyncEventQueue.java       |   151 +
 .../asyncqueue/AsyncEventQueueFactory.java      |   191 +
 .../internal/AsyncEventQueueFactoryImpl.java    |   299 +
 .../internal/AsyncEventQueueImpl.java           |   205 +
 .../internal/AsyncEventQueueStats.java          |   186 +
 .../internal/ParallelAsyncEventQueueImpl.java   |   260 +
 .../internal/SerialAsyncEventQueueImpl.java     |   257 +
 .../client/AllConnectionsInUseException.java    |    61 +
 .../gemfire/cache/client/ClientCache.java       |   168 +
 .../cache/client/ClientCacheFactory.java        |   695 +
 .../cache/client/ClientNotReadyException.java   |    56 +
 .../cache/client/ClientRegionFactory.java       |   346 +
 .../cache/client/ClientRegionShortcut.java      |   108 +
 .../client/NoAvailableLocatorsException.java    |    59 +
 .../client/NoAvailableServersException.java     |    59 +
 .../com/gemstone/gemfire/cache/client/Pool.java |   251 +
 .../gemfire/cache/client/PoolFactory.java       |   477 +
 .../gemfire/cache/client/PoolManager.java       |    98 +
 .../client/ServerConnectivityException.java     |    63 +
 .../cache/client/ServerOperationException.java  |    86 +
 .../ServerRefusedConnectionException.java       |    41 +
 .../client/SubscriptionNotEnabledException.java |    63 +
 .../client/doc-files/example-client-cache.xml   |    46 +
 .../cache/client/internal/AbstractOp.java       |   436 +
 .../cache/client/internal/AddPDXEnumOp.java     |    98 +
 .../cache/client/internal/AddPDXTypeOp.java     |    98 +
 .../client/internal/AuthenticateUserOp.java     |   312 +
 .../internal/AutoConnectionSourceImpl.java      |   387 +
 .../client/internal/CacheServerLoadMessage.java |   108 +
 .../gemfire/cache/client/internal/ClearOp.java  |   106 +
 .../client/internal/ClientMetadataService.java  |   848 +
 .../client/internal/ClientPartitionAdvisor.java |   288 +
 .../internal/ClientRegionFactoryImpl.java       |   271 +
 .../cache/client/internal/ClientUpdater.java    |    36 +
 .../client/internal/CloseConnectionOp.java      |    95 +
 .../gemfire/cache/client/internal/CommitOp.java |   109 +
 .../cache/client/internal/Connection.java       |    85 +
 .../client/internal/ConnectionFactory.java      |    68 +
 .../client/internal/ConnectionFactoryImpl.java  |   334 +
 .../cache/client/internal/ConnectionImpl.java   |   339 +
 .../cache/client/internal/ConnectionSource.java |    77 +
 .../cache/client/internal/ConnectionStats.java  |  3292 ++++
 .../cache/client/internal/ContainsKeyOp.java    |   102 +
 .../DataSerializerRecoveryListener.java         |   153 +
 .../cache/client/internal/DestroyOp.java        |   286 +
 .../cache/client/internal/DestroyRegionOp.java  |   104 +
 .../gemfire/cache/client/internal/Endpoint.java |   111 +
 .../cache/client/internal/EndpointManager.java  |   100 +
 .../client/internal/EndpointManagerImpl.java    |   308 +
 .../cache/client/internal/ExecutablePool.java   |   150 +
 .../client/internal/ExecuteFunctionHelper.java  |    30 +
 .../client/internal/ExecuteFunctionNoAckOp.java |   243 +
 .../client/internal/ExecuteFunctionOp.java      |   653 +
 .../internal/ExecuteRegionFunctionNoAckOp.java  |   227 +
 .../internal/ExecuteRegionFunctionOp.java       |   624 +
 .../ExecuteRegionFunctionSingleHopOp.java       |   500 +
 .../internal/ExplicitConnectionSourceImpl.java  |   277 +
 .../gemfire/cache/client/internal/GetAllOp.java |   242 +
 .../client/internal/GetClientPRMetaDataOp.java  |   171 +
 .../GetClientPartitionAttributesOp.java         |   177 +
 .../cache/client/internal/GetEntryOp.java       |    82 +
 .../cache/client/internal/GetEventValueOp.java  |   121 +
 .../client/internal/GetFunctionAttributeOp.java |    84 +
 .../gemfire/cache/client/internal/GetOp.java    |   245 +
 .../cache/client/internal/GetPDXEnumByIdOp.java |    94 +
 .../cache/client/internal/GetPDXEnumsOp.java    |   112 +
 .../client/internal/GetPDXIdForEnumOp.java      |   115 +
 .../client/internal/GetPDXIdForTypeOp.java      |   115 +
 .../cache/client/internal/GetPDXTypeByIdOp.java |    94 +
 .../cache/client/internal/GetPDXTypesOp.java    |   112 +
 .../internal/InstantiatorRecoveryListener.java  |   159 +
 .../cache/client/internal/InternalPool.java     |    43 +
 .../cache/client/internal/InvalidateOp.java     |   121 +
 .../gemfire/cache/client/internal/KeySetOp.java |   130 +
 .../cache/client/internal/LiveServerPinger.java |   117 +
 .../internal/LocatorDiscoveryCallback.java      |    47 +
 .../LocatorDiscoveryCallbackAdapter.java        |    36 +
 .../cache/client/internal/MakePrimaryOp.java    |    91 +
 .../gemfire/cache/client/internal/Op.java       |    43 +
 .../cache/client/internal/OpExecutorImpl.java   |   973 +
 .../internal/PdxRegistryRecoveryListener.java   |    90 +
 .../gemfire/cache/client/internal/PingOp.java   |    97 +
 .../gemfire/cache/client/internal/PoolImpl.java |  1522 ++
 .../cache/client/internal/PrimaryAckOp.java     |   101 +
 .../cache/client/internal/ProxyCache.java       |   248 +
 .../client/internal/ProxyCacheCloseOp.java      |   124 +
 .../cache/client/internal/ProxyRegion.java      |   698 +
 .../gemfire/cache/client/internal/PutAllOp.java |   430 +
 .../gemfire/cache/client/internal/PutOp.java    |   553 +
 .../gemfire/cache/client/internal/QueryOp.java  |   203 +
 .../client/internal/QueueConnectionImpl.java    |   226 +
 .../cache/client/internal/QueueManager.java     |    57 +
 .../cache/client/internal/QueueManagerImpl.java |  1487 ++
 .../cache/client/internal/QueueState.java       |    33 +
 .../cache/client/internal/QueueStateImpl.java   |   450 +
 .../cache/client/internal/ReadyForEventsOp.java |    91 +
 .../internal/RegisterDataSerializersOp.java     |   138 +
 .../internal/RegisterInstantiatorsOp.java       |   180 +
 .../client/internal/RegisterInterestListOp.java |   147 +
 .../client/internal/RegisterInterestOp.java     |   296 +
 .../internal/RegisterInterestTracker.java       |   419 +
 .../cache/client/internal/RemoveAllOp.java      |   391 +
 .../cache/client/internal/RollbackOp.java       |    99 +
 .../cache/client/internal/ServerBlackList.java  |   188 +
 .../cache/client/internal/ServerProxy.java      |    69 +
 .../client/internal/ServerRegionDataAccess.java |   143 +
 .../client/internal/ServerRegionProxy.java      |   878 +
 .../internal/SingleHopClientExecutor.java       |   415 +
 .../internal/SingleHopOperationCallable.java    |    83 +
 .../gemfire/cache/client/internal/SizeOp.java   |    92 +
 .../cache/client/internal/TXFailoverOp.java     |    93 +
 .../client/internal/TXSynchronizationOp.java    |   163 +
 .../internal/UnregisterInterestListOp.java      |   100 +
 .../client/internal/UnregisterInterestOp.java   |    98 +
 .../cache/client/internal/UserAttributes.java   |    59 +
 .../doc-files/ConnectionManagerImpl.dia         |   Bin 0 -> 2034 bytes
 .../doc-files/ConnectionManagerImpl.png         |   Bin 0 -> 11825 bytes
 .../client/internal/doc-files/PoolImpl.dia      |   Bin 0 -> 3083 bytes
 .../internal/doc-files/QueueManagerImpl.dia     |   Bin 0 -> 2180 bytes
 .../internal/doc-files/QueueManagerImpl.png     |   Bin 0 -> 15075 bytes
 .../doc-files/client_static_diagram.png         |   Bin 0 -> 29430 bytes
 .../locator/ClientConnectionRequest.java        |    68 +
 .../locator/ClientConnectionResponse.java       |    85 +
 .../locator/ClientReplacementRequest.java       |    75 +
 .../internal/locator/GetAllServersRequest.java  |    58 +
 .../internal/locator/GetAllServersResponse.java |    80 +
 .../internal/locator/LocatorListRequest.java    |    36 +
 .../internal/locator/LocatorListResponse.java   |    92 +
 .../internal/locator/LocatorStatusRequest.java  |    37 +
 .../internal/locator/LocatorStatusResponse.java |   321 +
 .../locator/QueueConnectionRequest.java         |    99 +
 .../locator/QueueConnectionResponse.java        |    87 +
 .../internal/locator/SerializationHelper.java   |   123 +
 .../internal/locator/ServerLocationRequest.java |    61 +
 .../locator/ServerLocationResponse.java         |    33 +
 .../locator/wan/LocatorMembershipListener.java  |    57 +
 .../gemfire/cache/client/internal/package.html  |    63 +
 .../pooling/ConnectionDestroyedException.java   |    48 +
 .../internal/pooling/ConnectionManager.java     |   132 +
 .../internal/pooling/ConnectionManagerImpl.java |  1587 ++
 .../internal/pooling/PooledConnection.java      |   354 +
 .../gemstone/gemfire/cache/client/package.html  |    67 +
 .../gemfire/cache/control/RebalanceFactory.java |    66 +
 .../cache/control/RebalanceOperation.java       |    75 +
 .../gemfire/cache/control/RebalanceResults.java |   106 +
 .../gemfire/cache/control/ResourceManager.java  |   260 +
 .../gemstone/gemfire/cache/control/package.html |    23 +
 .../gemfire/cache/doc-files/architecture.fig    |   170 +
 .../gemfire/cache/doc-files/architecture.gif    |   Bin 0 -> 9983 bytes
 .../cache/doc-files/entry-life-cycle.fig        |    64 +
 .../cache/doc-files/entry-life-cycle.gif        |   Bin 0 -> 3357 bytes
 .../gemfire/cache/doc-files/example-cache.xml   |    98 +
 .../gemfire/cache/doc-files/example2-cache.xml  |    63 +
 .../gemfire/cache/doc-files/example3-cache.xml  |    60 +
 .../cache/doc-files/partitioned-regions.fig     |   267 +
 .../cache/doc-files/partitioned-regions.gif     |   Bin 0 -> 9494 bytes
 .../execute/EmtpyRegionFunctionException.java   |    64 +
 .../gemfire/cache/execute/Execution.java        |   224 +
 .../gemfire/cache/execute/Function.java         |   112 +
 .../gemfire/cache/execute/FunctionAdapter.java  |   124 +
 .../gemfire/cache/execute/FunctionContext.java  |    80 +
 .../cache/execute/FunctionException.java        |   129 +
 .../FunctionInvocationTargetException.java      |    93 +
 .../gemfire/cache/execute/FunctionService.java  |   371 +
 .../cache/execute/RegionFunctionContext.java    |    72 +
 .../gemfire/cache/execute/ResultCollector.java  |   136 +
 .../gemfire/cache/execute/ResultSender.java     |    93 +
 .../internal/FunctionServiceManager.java        |   460 +
 .../gemstone/gemfire/cache/execute/package.html |   162 +
 .../gemfire/cache/hdfs/HDFSIOException.java     |    53 +
 .../gemstone/gemfire/cache/hdfs/HDFSStore.java  |   343 +
 .../gemfire/cache/hdfs/HDFSStoreFactory.java    |   205 +
 .../gemfire/cache/hdfs/HDFSStoreMutator.java    |   197 +
 .../cache/hdfs/StoreExistsException.java        |    33 +
 .../cache/hdfs/internal/FailureTracker.java     |    97 +
 .../cache/hdfs/internal/FlushObserver.java      |    54 +
 .../hdfs/internal/HDFSBucketRegionQueue.java    |  1233 ++
 .../cache/hdfs/internal/HDFSEntriesSet.java     |   329 +
 .../cache/hdfs/internal/HDFSEventListener.java  |   180 +
 .../hdfs/internal/HDFSEventQueueFilter.java     |    74 +
 .../hdfs/internal/HDFSGatewayEventImpl.java     |   181 +
 .../hdfs/internal/HDFSIntegrationUtil.java      |   118 +
 .../HDFSParallelGatewaySenderQueue.java         |   473 +
 .../hdfs/internal/HDFSStoreConfigHolder.java    |   560 +
 .../cache/hdfs/internal/HDFSStoreCreation.java  |   199 +
 .../hdfs/internal/HDFSStoreFactoryImpl.java     |    78 +
 .../cache/hdfs/internal/HDFSStoreImpl.java      |   639 +
 .../hdfs/internal/HDFSStoreMutatorImpl.java     |   200 +
 .../HDFSWriteOnlyStoreEventListener.java        |   185 +
 .../hdfs/internal/HoplogListenerForRegion.java  |    73 +
 .../cache/hdfs/internal/PersistedEventImpl.java |   203 +
 .../hdfs/internal/QueuedPersistentEvent.java    |    27 +
 .../hdfs/internal/SignalledFlushObserver.java   |   123 +
 .../internal/SortedHDFSQueuePersistedEvent.java |    87 +
 .../internal/SortedHoplogPersistedEvent.java    |   115 +
 .../UnsortedHDFSQueuePersistedEvent.java        |    77 +
 .../internal/UnsortedHoplogPersistedEvent.java  |    93 +
 .../cache/hdfs/internal/cardinality/Bits.java   |    54 +
 .../cardinality/CardinalityMergeException.java  |    42 +
 .../hdfs/internal/cardinality/HyperLogLog.java  |   313 +
 .../hdfs/internal/cardinality/IBuilder.java     |    41 +
 .../hdfs/internal/cardinality/ICardinality.java |    87 +
 .../hdfs/internal/cardinality/MurmurHash.java   |   261 +
 .../hdfs/internal/cardinality/RegisterSet.java  |   136 +
 .../hdfs/internal/hoplog/AbstractHoplog.java    |   357 +
 .../hoplog/AbstractHoplogOrganizer.java         |   430 +
 .../cache/hdfs/internal/hoplog/BloomFilter.java |    36 +
 .../hoplog/CloseTmpHoplogsTimerTask.java        |   109 +
 .../hdfs/internal/hoplog/CompactionStatus.java  |    73 +
 .../cache/hdfs/internal/hoplog/FlushStatus.java |    73 +
 .../internal/hoplog/HDFSCompactionManager.java  |   330 +
 .../internal/hoplog/HDFSFlushQueueArgs.java     |    94 +
 .../internal/hoplog/HDFSFlushQueueFunction.java |   287 +
 .../hoplog/HDFSForceCompactionArgs.java         |   108 +
 .../hoplog/HDFSForceCompactionFunction.java     |   130 +
 .../HDFSForceCompactionResultCollector.java     |   132 +
 .../hoplog/HDFSLastCompactionTimeFunction.java  |    57 +
 .../internal/hoplog/HDFSRegionDirector.java     |   480 +
 .../hdfs/internal/hoplog/HDFSStoreDirector.java |    79 +
 .../hoplog/HDFSUnsortedHoplogOrganizer.java     |   448 +
 .../hdfs/internal/hoplog/HFileSortedOplog.java  |   853 +
 .../hoplog/HdfsSortedOplogOrganizer.java        |  2007 ++
 .../cache/hdfs/internal/hoplog/Hoplog.java      |   263 +
 .../hdfs/internal/hoplog/HoplogConfig.java      |    75 +
 .../hdfs/internal/hoplog/HoplogListener.java    |    47 +
 .../hdfs/internal/hoplog/HoplogOrganizer.java   |   123 +
 .../hdfs/internal/hoplog/HoplogSetIterator.java |   166 +
 .../hdfs/internal/hoplog/HoplogSetReader.java   |   114 +
 .../internal/hoplog/SequenceFileHoplog.java     |   396 +
 .../hoplog/mapred/AbstractGFRecordReader.java   |   106 +
 .../internal/hoplog/mapred/GFInputFormat.java   |    95 +
 .../internal/hoplog/mapred/GFOutputFormat.java  |    76 +
 .../mapreduce/AbstractGFRecordReader.java       |   140 +
 .../hoplog/mapreduce/GFInputFormat.java         |   124 +
 .../hdfs/internal/hoplog/mapreduce/GFKey.java   |    72 +
 .../hoplog/mapreduce/GFOutputFormat.java        |   199 +
 .../hoplog/mapreduce/HDFSSplitIterator.java     |   198 +
 .../internal/hoplog/mapreduce/HoplogUtil.java   |   464 +
 .../hoplog/mapreduce/RWSplitIterator.java       |    49 +
 .../hoplog/mapreduce/StreamSplitIterator.java   |    47 +
 .../org/apache/hadoop/io/SequenceFile.java      |  3726 ++++
 .../operations/CloseCQOperationContext.java     |    65 +
 .../operations/DestroyOperationContext.java     |    63 +
 .../operations/ExecuteCQOperationContext.java   |    68 +
 .../ExecuteFunctionOperationContext.java        |    97 +
 .../GetDurableCQsOperationContext.java          |    60 +
 .../cache/operations/GetOperationContext.java   |    91 +
 .../operations/InterestOperationContext.java    |    84 +
 .../gemfire/cache/operations/InterestType.java  |   152 +
 .../operations/InvalidateOperationContext.java  |    64 +
 .../cache/operations/KeyOperationContext.java   |   125 +
 .../operations/KeySetOperationContext.java      |    97 +
 .../operations/KeyValueOperationContext.java    |   177 +
 .../cache/operations/OperationContext.java      |   521 +
 .../operations/PutAllOperationContext.java      |   407 +
 .../cache/operations/PutOperationContext.java   |   144 +
 .../cache/operations/QueryOperationContext.java |   172 +
 .../operations/RegionClearOperationContext.java |    51 +
 .../RegionCreateOperationContext.java           |    61 +
 .../RegionDestroyOperationContext.java          |    51 +
 .../operations/RegionOperationContext.java      |    87 +
 .../RegisterInterestOperationContext.java       |    72 +
 .../operations/RemoveAllOperationContext.java   |   101 +
 .../operations/StopCQOperationContext.java      |    66 +
 .../UnregisterInterestOperationContext.java     |    54 +
 .../internal/GetOperationContextImpl.java       |   124 +
 .../gemfire/cache/operations/package.html       |   107 +
 .../com/gemstone/gemfire/cache/package.html     |   608 +
 .../cache/partition/PartitionListener.java      |   132 +
 .../partition/PartitionListenerAdapter.java     |    50 +
 .../cache/partition/PartitionMemberInfo.java    |    74 +
 .../PartitionNotAvailableException.java         |    66 +
 .../cache/partition/PartitionRebalanceInfo.java |   150 +
 .../cache/partition/PartitionRegionHelper.java  |   552 +
 .../cache/partition/PartitionRegionInfo.java    |   113 +
 .../gemfire/cache/partition/package.html        |    23 +
 .../ConflictingPersistentDataException.java     |    57 +
 .../persistence/PartitionOfflineException.java  |    77 +
 .../gemfire/cache/persistence/PersistentID.java |    59 +
 .../PersistentReplicatesOfflineException.java   |    44 +
 .../persistence/RevokeFailedException.java      |    51 +
 .../RevokedPersistentDataException.java         |    58 +
 .../gemfire/cache/query/Aggregator.java         |    46 +
 .../cache/query/AmbiguousNameException.java     |    47 +
 .../gemfire/cache/query/CqAttributes.java       |    50 +
 .../cache/query/CqAttributesFactory.java        |   319 +
 .../cache/query/CqAttributesMutator.java        |    57 +
 .../gemfire/cache/query/CqClosedException.java  |    57 +
 .../gemstone/gemfire/cache/query/CqEvent.java   |    93 +
 .../gemfire/cache/query/CqException.java        |    57 +
 .../gemfire/cache/query/CqExistsException.java  |    53 +
 .../gemfire/cache/query/CqListener.java         |    59 +
 .../gemstone/gemfire/cache/query/CqQuery.java   |   155 +
 .../gemstone/gemfire/cache/query/CqResults.java |    51 +
 .../cache/query/CqServiceStatistics.java        |    70 +
 .../gemstone/gemfire/cache/query/CqState.java   |    55 +
 .../gemfire/cache/query/CqStatistics.java       |    53 +
 .../gemfire/cache/query/CqStatusListener.java   |    42 +
 .../cache/query/FunctionDomainException.java    |    36 +
 .../com/gemstone/gemfire/cache/query/Index.java |   112 +
 .../cache/query/IndexCreationException.java     |    46 +
 .../cache/query/IndexExistsException.java       |    52 +
 .../cache/query/IndexInvalidException.java      |    64 +
 .../cache/query/IndexMaintenanceException.java  |    66 +
 .../cache/query/IndexNameConflictException.java |    52 +
 .../gemfire/cache/query/IndexStatistics.java    |    76 +
 .../gemstone/gemfire/cache/query/IndexType.java |   106 +
 .../query/MultiIndexCreationException.java      |    82 +
 .../cache/query/NameNotFoundException.java      |    48 +
 .../cache/query/NameResolutionException.java    |    47 +
 .../query/ParameterCountInvalidException.java   |    38 +
 .../com/gemstone/gemfire/cache/query/Query.java |   328 +
 .../gemfire/cache/query/QueryException.java     |    66 +
 .../query/QueryExecutionLowMemoryException.java |    67 +
 .../query/QueryExecutionTimeoutException.java   |    62 +
 .../cache/query/QueryInvalidException.java      |    48 +
 .../query/QueryInvocationTargetException.java   |    54 +
 .../gemfire/cache/query/QueryService.java       |   852 +
 .../gemfire/cache/query/QueryStatistics.java    |    38 +
 .../cache/query/RegionNotFoundException.java    |    45 +
 .../gemfire/cache/query/SelectResults.java      |   122 +
 .../gemstone/gemfire/cache/query/Struct.java    |    59 +
 .../cache/query/TypeMismatchException.java      |    45 +
 .../query/internal/AbstractCompiledValue.java   |   323 +
 .../internal/AbstractGroupOrRangeJunction.java  |   596 +
 .../cache/query/internal/AllGroupJunction.java  |   276 +
 .../query/internal/AttributeDescriptor.java     |   420 +
 .../gemfire/cache/query/internal/Bag.java       |   726 +
 .../internal/CompiledAggregateFunction.java     |   185 +
 .../query/internal/CompiledBindArgument.java    |   100 +
 .../query/internal/CompiledComparison.java      |   877 +
 .../query/internal/CompiledConstruction.java    |    78 +
 .../cache/query/internal/CompiledFunction.java  |   117 +
 .../query/internal/CompiledGroupBySelect.java   |   522 +
 .../cache/query/internal/CompiledID.java        |    99 +
 .../cache/query/internal/CompiledIn.java        |   965 +
 .../query/internal/CompiledIndexOperation.java  |   183 +
 .../query/internal/CompiledIteratorDef.java     |   379 +
 .../cache/query/internal/CompiledJunction.java  |  1254 ++
 .../cache/query/internal/CompiledLike.java      |   548 +
 .../cache/query/internal/CompiledLiteral.java   |    85 +
 .../cache/query/internal/CompiledNegation.java  |    79 +
 .../cache/query/internal/CompiledOperation.java |   331 +
 .../cache/query/internal/CompiledPath.java      |   177 +
 .../cache/query/internal/CompiledRegion.java    |   111 +
 .../cache/query/internal/CompiledSelect.java    |  1590 ++
 .../query/internal/CompiledSortCriterion.java   |   320 +
 .../query/internal/CompiledUnaryMinus.java      |   102 +
 .../cache/query/internal/CompiledUndefined.java |   320 +
 .../cache/query/internal/CompiledValue.java     |   143 +
 .../query/internal/CompositeGroupJunction.java  |   555 +
 .../gemfire/cache/query/internal/CqEntry.java   |   112 +
 .../cache/query/internal/CqQueryVsdStats.java   |   342 +
 .../cache/query/internal/CqStateImpl.java       |   104 +
 .../internal/CumulativeNonDistinctResults.java  |   391 +
 .../cache/query/internal/DefaultQuery.java      |  1141 ++
 .../query/internal/DefaultQueryService.java     |  1003 +
 .../cache/query/internal/DerivedInfo.java       |   306 +
 .../cache/query/internal/ExecutionContext.java  |   736 +
 .../gemfire/cache/query/internal/Filter.java    |   178 +
 .../gemfire/cache/query/internal/Functions.java |   206 +
 .../cache/query/internal/GroupJunction.java     |   193 +
 .../cache/query/internal/HashingStrategy.java   |    55 +
 .../gemfire/cache/query/internal/IndexInfo.java |    78 +
 .../internal/IndexTrackingQueryObserver.java    |   217 +
 .../cache/query/internal/IndexUpdater.java      |   123 +
 .../gemfire/cache/query/internal/Indexable.java |    55 +
 .../cache/query/internal/LinkedResultSet.java   |   145 +
 .../cache/query/internal/LinkedStructSet.java   |   367 +
 .../cache/query/internal/MapIndexable.java      |    26 +
 .../cache/query/internal/MethodDispatch.java    |   232 +
 .../cache/query/internal/NWayMergeResults.java  |   546 +
 .../gemfire/cache/query/internal/Negatable.java |    26 +
 .../gemfire/cache/query/internal/NullToken.java |    77 +
 .../cache/query/internal/ObjectIntHashMap.java  |  1141 ++
 .../cache/query/internal/OrderByComparator.java |   237 +
 .../internal/OrderByComparatorUnmapped.java     |    90 +
 .../gemfire/cache/query/internal/Ordered.java   |    44 +
 .../cache/query/internal/OrganizedOperands.java |    55 +
 .../cache/query/internal/PRQueryTraceInfo.java  |   109 +
 .../gemfire/cache/query/internal/PathUtils.java |   269 +
 .../gemfire/cache/query/internal/PlanInfo.java  |    36 +
 .../cache/query/internal/ProxyQueryService.java |   451 +
 .../gemfire/cache/query/internal/QCompiler.java |   698 +
 .../gemfire/cache/query/internal/QRegion.java   |   539 +
 .../gemfire/cache/query/internal/QScope.java    |    92 +
 .../QueryExecutionCanceledException.java        |    63 +
 .../query/internal/QueryExecutionContext.java   |   242 +
 .../cache/query/internal/QueryExecutor.java     |    40 +
 .../cache/query/internal/QueryMonitor.java      |   361 +
 .../cache/query/internal/QueryObserver.java     |   338 +
 .../query/internal/QueryObserverAdapter.java    |   341 +
 .../query/internal/QueryObserverHolder.java     |    84 +
 .../cache/query/internal/QueryUtils.java        |  2079 ++
 .../cache/query/internal/RangeJunction.java     |  1255 ++
 .../cache/query/internal/ResultsBag.java        |   276 +
 .../ResultsCollectionCopyOnReadWrapper.java     |   228 +
 ...ResultsCollectionPdxDeserializerWrapper.java |   219 +
 .../internal/ResultsCollectionWrapper.java      |   664 +
 .../cache/query/internal/ResultsSet.java        |   150 +
 .../cache/query/internal/RuntimeIterator.java   |   338 +
 .../query/internal/SelectResultsComparator.java |    61 +
 .../cache/query/internal/SortedResultSet.java   |   134 +
 .../cache/query/internal/SortedResultsBag.java  |   260 +
 .../cache/query/internal/SortedStructBag.java   |   369 +
 .../cache/query/internal/SortedStructSet.java   |   385 +
 .../gemfire/cache/query/internal/StructBag.java |   474 +
 .../cache/query/internal/StructFields.java      |    42 +
 .../cache/query/internal/StructImpl.java        |   183 +
 .../gemfire/cache/query/internal/StructSet.java |   459 +
 .../gemfire/cache/query/internal/Support.java   |    95 +
 .../gemfire/cache/query/internal/Undefined.java |    87 +
 .../internal/aggregate/AbstractAggregator.java  |    47 +
 .../cache/query/internal/aggregate/Avg.java     |    50 +
 .../query/internal/aggregate/AvgBucketNode.java |    49 +
 .../query/internal/aggregate/AvgDistinct.java   |    43 +
 .../aggregate/AvgDistinctPRQueryNode.java       |    35 +
 .../internal/aggregate/AvgPRQueryNode.java      |    47 +
 .../cache/query/internal/aggregate/Count.java   |    49 +
 .../query/internal/aggregate/CountDistinct.java |    33 +
 .../aggregate/CountDistinctPRQueryNode.java     |    44 +
 .../internal/aggregate/CountPRQueryNode.java    |    48 +
 .../internal/aggregate/DistinctAggregator.java  |    56 +
 .../cache/query/internal/aggregate/MaxMin.java  |    68 +
 .../cache/query/internal/aggregate/Sum.java     |    48 +
 .../query/internal/aggregate/SumDistinct.java   |    35 +
 .../aggregate/SumDistinctPRQueryNode.java       |    46 +
 .../cache/query/internal/cq/ClientCQ.java       |    42 +
 .../cache/query/internal/cq/CqService.java      |   263 +
 .../query/internal/cq/CqServiceProvider.java    |    72 +
 .../query/internal/cq/InternalCqQuery.java      |    82 +
 .../query/internal/cq/MissingCqService.java     |   217 +
 .../internal/cq/MissingCqServiceStatistics.java |    52 +
 .../cache/query/internal/cq/ServerCQ.java       |    87 +
 .../query/internal/cq/spi/CqServiceFactory.java |    36 +
 .../query/internal/index/AbstractIndex.java     |  2405 +++
 .../query/internal/index/AbstractMapIndex.java  |   440 +
 .../internal/index/CompactMapRangeIndex.java    |   216 +
 .../query/internal/index/CompactRangeIndex.java |  1799 ++
 .../query/internal/index/DummyQRegion.java      |   252 +
 .../index/FunctionalIndexCreationHelper.java    |   721 +
 .../cache/query/internal/index/HashIndex.java   |  1573 ++
 .../query/internal/index/HashIndexSet.java      |   818 +
 .../query/internal/index/IMQException.java      |    59 +
 .../internal/index/IndexConcurrentHashSet.java  |    78 +
 .../query/internal/index/IndexCreationData.java |   166 +
 .../internal/index/IndexCreationHelper.java     |   113 +
 .../cache/query/internal/index/IndexData.java   |    72 +
 .../query/internal/index/IndexElemArray.java    |   333 +
 .../query/internal/index/IndexManager.java      |  1718 ++
 .../query/internal/index/IndexProtocol.java     |   222 +
 .../cache/query/internal/index/IndexStats.java  |   223 +
 .../cache/query/internal/index/IndexStore.java  |   153 +
 .../cache/query/internal/index/IndexUtils.java  |   135 +
 .../index/IndexedExpressionEvaluator.java       |    52 +
 .../query/internal/index/MapIndexStore.java     |   336 +
 .../query/internal/index/MapRangeIndex.java     |   195 +
 .../query/internal/index/MemoryIndexStore.java  |   822 +
 .../query/internal/index/PartitionedIndex.java  |   656 +
 .../query/internal/index/PrimaryKeyIndex.java   |   392 +
 .../index/PrimaryKeyIndexCreationHelper.java    |   124 +
 .../cache/query/internal/index/RangeIndex.java  |  1686 ++
 .../cache/query/internal/index/package.html     |   646 +
 .../gemfire/cache/query/internal/package.html   |    43 +
 .../query/internal/parse/ASTAggregateFunc.java  |    66 +
 .../cache/query/internal/parse/ASTAnd.java      |    39 +
 .../query/internal/parse/ASTCombination.java    |    46 +
 .../query/internal/parse/ASTCompareOp.java      |    38 +
 .../query/internal/parse/ASTConstruction.java   |    45 +
 .../query/internal/parse/ASTConversionExpr.java |    42 +
 .../cache/query/internal/parse/ASTDummy.java    |    39 +
 .../cache/query/internal/parse/ASTGroupBy.java  |    44 +
 .../cache/query/internal/parse/ASTHint.java     |    52 +
 .../query/internal/parse/ASTHintIdentifier.java |    52 +
 .../query/internal/parse/ASTIdentifier.java     |    42 +
 .../cache/query/internal/parse/ASTImport.java   |    57 +
 .../cache/query/internal/parse/ASTIn.java       |    43 +
 .../query/internal/parse/ASTIteratorDef.java    |    79 +
 .../cache/query/internal/parse/ASTLike.java     |    47 +
 .../cache/query/internal/parse/ASTLimit.java    |    41 +
 .../cache/query/internal/parse/ASTLiteral.java  |   232 +
 .../internal/parse/ASTMethodInvocation.java     |    68 +
 .../cache/query/internal/parse/ASTOr.java       |    38 +
 .../cache/query/internal/parse/ASTOrderBy.java  |    44 +
 .../query/internal/parse/ASTParameter.java      |    40 +
 .../cache/query/internal/parse/ASTPostfix.java  |    70 +
 .../query/internal/parse/ASTProjection.java     |    48 +
 .../query/internal/parse/ASTRegionPath.java     |    41 +
 .../cache/query/internal/parse/ASTSelect.java   |    68 +
 .../query/internal/parse/ASTSortCriterion.java  |    44 +
 .../cache/query/internal/parse/ASTTrace.java    |    41 +
 .../cache/query/internal/parse/ASTType.java     |    67 +
 .../cache/query/internal/parse/ASTTypeCast.java |    44 +
 .../cache/query/internal/parse/ASTUnary.java    |    65 +
 .../query/internal/parse/ASTUndefinedExpr.java  |    42 +
 .../query/internal/parse/ASTUnsupported.java    |    45 +
 .../cache/query/internal/parse/GemFireAST.java  |    61 +
 .../cache/query/internal/parse/OQLLexer.java    |  2265 +++
 .../internal/parse/OQLLexerTokenTypes.java      |   155 +
 .../query/internal/parse/OQLLexerTokenTypes.txt |   147 +
 .../cache/query/internal/parse/OQLParser.java   |  3833 ++++
 .../cache/query/internal/parse/UtilParser.java  |    92 +
 .../cache/query/internal/parse/fixantlr.sh      |    52 +
 .../gemfire/cache/query/internal/parse/oql.g    |  1195 ++
 .../internal/types/CollectionTypeImpl.java      |   126 +
 .../types/ExtendedNumericComparator.java        |    52 +
 .../cache/query/internal/types/MapTypeImpl.java |   100 +
 .../query/internal/types/NumericComparator.java |    96 +
 .../query/internal/types/ObjectTypeImpl.java    |   100 +
 .../query/internal/types/StructTypeImpl.java    |   160 +
 .../internal/types/TemporalComparator.java      |    77 +
 .../cache/query/internal/types/TypeUtils.java   |   476 +
 .../query/internal/utils/LimitIterator.java     |    63 +
 .../cache/query/internal/utils/PDXUtils.java    |    95 +
 .../gemstone/gemfire/cache/query/package.html   |   708 +
 .../cache/query/types/CollectionType.java       |    47 +
 .../gemfire/cache/query/types/MapType.java      |    42 +
 .../gemfire/cache/query/types/ObjectType.java   |    60 +
 .../gemfire/cache/query/types/StructType.java   |    52 +
 .../gemfire/cache/server/CacheServer.java       |   512 +
 .../cache/server/ClientSubscriptionConfig.java  |   148 +
 .../gemfire/cache/server/ServerLoad.java        |   187 +
 .../gemfire/cache/server/ServerLoadProbe.java   |    75 +
 .../cache/server/ServerLoadProbeAdapter.java    |    43 +
 .../gemfire/cache/server/ServerMetrics.java     |    53 +
 .../server/internal/ConnectionCountProbe.java   |    94 +
 .../cache/server/internal/LoadMonitor.java      |   242 +
 .../server/internal/ServerMetricsImpl.java      |    79 +
 .../gemstone/gemfire/cache/server/package.html  |    42 +
 .../cache/snapshot/CacheSnapshotService.java    |   149 +
 .../cache/snapshot/RegionSnapshotService.java   |   140 +
 .../gemfire/cache/snapshot/SnapshotFilter.java  |    45 +
 .../cache/snapshot/SnapshotIterator.java        |    62 +
 .../gemfire/cache/snapshot/SnapshotOptions.java |    62 +
 .../gemfire/cache/snapshot/SnapshotReader.java  |    58 +
 .../gemfire/cache/snapshot/package.html         |    54 +
 .../cache/util/BoundedLinkedHashMap.java        |    88 +
 .../cache/util/CacheListenerAdapter.java        |    67 +
 .../gemfire/cache/util/CacheWriterAdapter.java  |    54 +
 .../gemfire/cache/util/CqListenerAdapter.java   |    66 +
 .../gemstone/gemfire/cache/util/Gateway.java    |    53 +
 .../cache/util/GatewayConflictHelper.java       |    34 +
 .../cache/util/GatewayConflictResolver.java     |    48 +
 .../gemfire/cache/util/GatewayEvent.java        |    91 +
 .../gemfire/cache/util/ObjectSizer.java         |    83 +
 .../gemfire/cache/util/ObjectSizerImpl.java     |    35 +
 .../util/RegionMembershipListenerAdapter.java   |    44 +
 .../cache/util/RegionRoleListenerAdapter.java   |    40 +
 .../cache/util/TimestampedEntryEvent.java       |    40 +
 .../cache/util/TransactionListenerAdapter.java  |    43 +
 .../gemstone/gemfire/cache/util/package.html    |    31 +
 .../gemfire/cache/wan/EventSequenceID.java      |   104 +
 .../gemfire/cache/wan/GatewayEventFilter.java   |    64 +
 .../wan/GatewayEventSubstitutionFilter.java     |    40 +
 .../gemfire/cache/wan/GatewayQueueEvent.java    |    81 +
 .../gemfire/cache/wan/GatewayReceiver.java      |   174 +
 .../cache/wan/GatewayReceiverFactory.java       |   122 +
 .../gemfire/cache/wan/GatewaySender.java        |   415 +
 .../gemfire/cache/wan/GatewaySenderFactory.java |   239 +
 .../cache/wan/GatewayTransportFilter.java       |    27 +
 .../compression/CompressionException.java       |    43 +
 .../gemfire/compression/Compressor.java         |    48 +
 .../gemfire/compression/SnappyCompressor.java   |   110 +
 .../gemfire/distributed/AbstractLauncher.java   |   926 +
 .../distributed/ClientSocketFactory.java        |    47 +
 .../distributed/DistributedLockService.java     |   393 +
 .../gemfire/distributed/DistributedMember.java  |    80 +
 .../gemfire/distributed/DistributedSystem.java  |  2207 +++
 .../DistributedSystemDisconnectedException.java |    47 +
 .../distributed/DurableClientAttributes.java    |   147 +
 .../distributed/FutureCancelledException.java   |    47 +
 .../distributed/GatewayCancelledException.java  |    46 +
 .../distributed/LeaseExpiredException.java      |    38 +
 .../gemstone/gemfire/distributed/Locator.java   |   553 +
 .../gemfire/distributed/LocatorLauncher.java    |  2046 ++
 .../distributed/LockNotHeldException.java       |    51 +
 .../LockServiceDestroyedException.java          |    51 +
 .../distributed/OplogCancelledException.java    |    47 +
 .../distributed/PoolCancelledException.java     |    47 +
 .../com/gemstone/gemfire/distributed/Role.java  |    56 +
 .../gemfire/distributed/ServerLauncher.java     |  2605 +++
 .../TXManagerCancelledException.java            |    47 +
 .../internal/AbstractDistributionConfig.java    |  1161 ++
 .../distributed/internal/AdminMessageType.java  |    23 +
 .../internal/AtomicLongWithTerminalState.java   |    67 +
 .../internal/CollectingReplyProcessor.java      |    56 +
 .../distributed/internal/ConfigAttribute.java   |    36 +
 .../internal/ConfigAttributeChecker.java        |    31 +
 .../internal/ConfigAttributeDesc.java           |    31 +
 .../internal/ConfigAttributeGetter.java         |    31 +
 .../internal/ConfigAttributeSetter.java         |    31 +
 .../distributed/internal/ConflationKey.java     |    78 +
 .../gemfire/distributed/internal/DM.java        |   467 +
 .../gemfire/distributed/internal/DMStats.java   |   619 +
 .../gemfire/distributed/internal/DSClock.java   |   313 +
 .../internal/DirectReplyProcessor.java          |   172 +
 .../internal/DistributionAdvisee.java           |    93 +
 .../internal/DistributionAdvisor.java           |  1678 ++
 .../internal/DistributionChannel.java           |   166 +
 .../internal/DistributionConfig.java            |  3778 ++++
 .../internal/DistributionConfigImpl.java        |  3533 ++++
 .../internal/DistributionConfigSnapshot.java    |    71 +
 .../internal/DistributionException.java         |    37 +
 .../internal/DistributionManager.java           |  4811 +++++
 .../internal/DistributionMessage.java           |   711 +
 .../internal/DistributionMessageObserver.java   |    75 +
 .../distributed/internal/DistributionStats.java |  2051 ++
 .../distributed/internal/FlowControlParams.java |   114 +
 .../FunctionExecutionPooledExecutor.java        |   311 +
 .../distributed/internal/HealthMonitor.java     |    46 +
 .../distributed/internal/HealthMonitorImpl.java |   148 +
 .../internal/HighPriorityAckedMessage.java      |   235 +
 .../HighPriorityDistributionMessage.java        |    31 +
 .../distributed/internal/IgnoredByManager.java  |    26 +
 .../internal/InternalDistributedSystem.java     |  3056 +++
 .../distributed/internal/InternalLocator.java   |  1488 ++
 .../internal/LocatorLoadSnapshot.java           |   695 +
 .../distributed/internal/LocatorStats.java      |   245 +
 .../internal/LonerDistributionManager.java      |   997 +
 .../gemfire/distributed/internal/MQueue.java    |    32 +
 .../internal/MembershipListener.java            |    77 +
 .../distributed/internal/MessageFactory.java    |    56 +
 .../distributed/internal/MessageWithReply.java  |    43 +
 .../internal/OverflowQueueWithDMStats.java      |   174 +
 .../distributed/internal/PoolStatHelper.java    |    38 +
 .../internal/PooledDistributionMessage.java     |    34 +
 .../internal/PooledExecutorWithDMStats.java     |   234 +
 .../distributed/internal/ProcessorKeeper21.java |   129 +
 .../distributed/internal/ProductUseLog.java     |   147 +
 .../distributed/internal/ProfileListener.java   |    55 +
 .../distributed/internal/QueueStatHelper.java   |    42 +
 .../internal/ReliableReplyException.java        |    37 +
 .../internal/ReliableReplyProcessor21.java      |   116 +
 .../distributed/internal/ReplyException.java    |   201 +
 .../distributed/internal/ReplyMessage.java      |   364 +
 .../distributed/internal/ReplyProcessor21.java  |  1298 ++
 .../distributed/internal/ReplySender.java       |    39 +
 .../distributed/internal/ResourceEvent.java     |    52 +
 .../internal/ResourceEventsListener.java        |    38 +
 .../internal/RuntimeDistributionConfigImpl.java |   138 +
 .../internal/SerialAckedMessage.java            |   159 +
 .../internal/SerialDistributionMessage.java     |    34 +
 .../SerialQueuedExecutorWithDMStats.java        |    51 +
 .../distributed/internal/ServerLocation.java    |   178 +
 .../distributed/internal/ServerLocator.java     |   486 +
 .../internal/SharedConfiguration.java           |   955 +
 .../distributed/internal/ShutdownMessage.java   |   121 +
 .../gemfire/distributed/internal/Sizeable.java  |    28 +
 .../distributed/internal/SizeableRunnable.java  |    39 +
 .../distributed/internal/StartupMessage.java    |   433 +
 .../internal/StartupMessageData.java            |   231 +
 .../internal/StartupMessageReplyProcessor.java  |   118 +
 .../distributed/internal/StartupOperation.java  |   136 +
 .../internal/StartupResponseMessage.java        |   294 +
 .../StartupResponseWithVersionMessage.java      |   108 +
 .../internal/ThrottledMemQueueStatHelper.java   |    49 +
 .../internal/ThrottledQueueStatHelper.java      |    39 +
 .../ThrottlingMemLinkedQueueWithDMStats.java    |   165 +
 .../internal/WaitForViewInstallation.java       |   126 +
 .../internal/WanLocatorDiscoverer.java          |    31 +
 .../deadlock/DLockDependencyMonitor.java        |   147 +
 .../internal/deadlock/DeadlockDetector.java     |   395 +
 .../internal/deadlock/Dependency.java           |    88 +
 .../internal/deadlock/DependencyGraph.java      |   340 +
 .../internal/deadlock/DependencyMonitor.java    |    45 +
 .../deadlock/DependencyMonitorManager.java      |   107 +
 .../deadlock/GemFireDeadlockDetector.java       |   142 +
 .../internal/deadlock/LocalLockInfo.java        |   101 +
 .../internal/deadlock/LocalThread.java          |   120 +
 .../deadlock/MessageDependencyMonitor.java      |   155 +
 .../internal/deadlock/ThreadReference.java      |    28 +
 .../internal/deadlock/UnsafeThreadLocal.java    |    92 +
 .../internal/direct/DirectChannel.java          |   939 +
 .../internal/direct/DirectChannelListener.java  |    38 +
 .../internal/direct/ShunnedMemberException.java |    34 +
 .../internal/distribution-overview.html         |    42 +
 .../internal/doc-files/config-classes.fig       |   138 +
 .../internal/doc-files/config-classes.gif       |   Bin 0 -> 4205 bytes
 .../doc-files/distribution-managers.fig         |    76 +
 .../doc-files/distribution-managers.gif         |   Bin 0 -> 3267 bytes
 .../internal/locks/Collaboration.java           |   454 +
 .../distributed/internal/locks/DLockBatch.java  |    46 +
 .../internal/locks/DLockBatchId.java            |    31 +
 .../internal/locks/DLockGrantor.java            |  3796 ++++
 .../locks/DLockLessorDepartureHandler.java      |    35 +
 .../internal/locks/DLockQueryProcessor.java     |   519 +
 .../locks/DLockRecoverGrantorProcessor.java     |   460 +
 .../internal/locks/DLockReleaseProcessor.java   |   450 +
 .../internal/locks/DLockRemoteToken.java        |   235 +
 .../internal/locks/DLockRequestProcessor.java   |  1284 ++
 .../internal/locks/DLockService.java            |  3377 ++++
 .../distributed/internal/locks/DLockStats.java  |   887 +
 .../distributed/internal/locks/DLockToken.java  |   572 +
 .../internal/locks/DeposeGrantorProcessor.java  |   210 +
 .../internal/locks/DistributedLockStats.java    |   201 +
 .../internal/locks/DistributedMemberLock.java   |   297 +
 .../internal/locks/DummyDLockStats.java         |   180 +
 .../internal/locks/ElderInitProcessor.java      |   314 +
 .../distributed/internal/locks/ElderState.java  |   399 +
 .../distributed/internal/locks/GrantorInfo.java |    87 +
 .../internal/locks/GrantorRequestProcessor.java |   751 +
 .../locks/LockGrantorDestroyedException.java    |    51 +
 .../internal/locks/LockGrantorId.java           |   243 +
 .../locks/NonGrantorDestroyedProcessor.java     |   308 +
 .../internal/locks/RemoteThread.java            |    88 +
 .../internal/locks/doc-files/elder.fig          |    84 +
 .../internal/locks/doc-files/elder.jpg          |   Bin 0 -> 55182 bytes
 .../internal/locks/doc-files/turks.fig          |   128 +
 .../internal/locks/doc-files/turks.jpg          |   Bin 0 -> 79859 bytes
 .../distributed/internal/locks/package.html     |   313 +
 .../DistributedMembershipListener.java          |    86 +
 .../membership/InternalDistributedMember.java   |  1304 ++
 .../internal/membership/InternalRole.java       |   169 +
 .../internal/membership/MemberAttributes.java   |   124 +
 .../internal/membership/MemberFactory.java      |   109 +
 .../internal/membership/MemberServices.java     |    90 +
 .../internal/membership/MembershipManager.java  |   326 +
 .../internal/membership/MembershipTestHook.java |    40 +
 .../internal/membership/NetMember.java          |    82 +
 .../internal/membership/NetView.java            |   614 +
 .../internal/membership/QuorumChecker.java      |    63 +
 .../internal/membership/gms/GMSMember.java      |   458 +
 .../membership/gms/GMSMemberFactory.java        |   133 +
 .../internal/membership/gms/GMSUtil.java        |   159 +
 .../internal/membership/gms/NetLocator.java     |    32 +
 .../internal/membership/gms/ServiceConfig.java  |   187 +
 .../internal/membership/gms/Services.java       |   387 +
 .../internal/membership/gms/SuspectMember.java  |    58 +
 .../membership/gms/auth/GMSAuthenticator.java   |   235 +
 .../membership/gms/fd/GMSHealthMonitor.java     |  1380 ++
 .../gms/interfaces/Authenticator.java           |    27 +
 .../gms/interfaces/HealthMonitor.java           |    64 +
 .../membership/gms/interfaces/JoinLeave.java    |    73 +
 .../membership/gms/interfaces/Locator.java      |    32 +
 .../membership/gms/interfaces/Manager.java      |   120 +
 .../gms/interfaces/MessageHandler.java          |    30 +
 .../membership/gms/interfaces/Messenger.java    |    81 +
 .../membership/gms/interfaces/Service.java      |    83 +
 .../gms/locator/FindCoordinatorRequest.java     |   148 +
 .../gms/locator/FindCoordinatorResponse.java    |   161 +
 .../membership/gms/locator/GMSLocator.java      |   373 +
 .../membership/gms/locator/GetViewRequest.java  |    49 +
 .../membership/gms/locator/GetViewResponse.java |    64 +
 .../gms/locator/PeerLocatorRequest.java         |    25 +
 .../membership/gms/membership/GMSJoinLeave.java |  2312 +++
 .../membership/gms/messages/HasMemberID.java    |    25 +
 .../gms/messages/HeartbeatMessage.java          |    74 +
 .../gms/messages/HeartbeatRequestMessage.java   |    80 +
 .../gms/messages/InstallViewMessage.java        |   106 +
 .../gms/messages/JoinRequestMessage.java        |    97 +
 .../gms/messages/JoinResponseMessage.java       |   129 +
 .../gms/messages/LeaveRequestMessage.java       |    94 +
 .../gms/messages/NetworkPartitionMessage.java   |    44 +
 .../gms/messages/RemoveMemberMessage.java       |    96 +
 .../gms/messages/SuspectMembersMessage.java     |    91 +
 .../membership/gms/messages/SuspectRequest.java |    72 +
 .../membership/gms/messages/ViewAckMessage.java |   103 +
 .../gms/messenger/AddressManager.java           |   121 +
 .../membership/gms/messenger/GMSPingPonger.java |    65 +
 .../gms/messenger/GMSQuorumChecker.java         |   274 +
 .../membership/gms/messenger/JGAddress.java     |   221 +
 .../gms/messenger/JGroupsMessenger.java         |  1109 ++
 .../membership/gms/messenger/StatRecorder.java  |   162 +
 .../membership/gms/messenger/Transport.java     |   163 +
 .../gms/mgr/GMSMembershipManager.java           |  2652 +++
 .../membership/gms/mgr/LocalViewMessage.java    |    85 +
 .../internal/membership/gms/package.html        |    57 +
 .../gemfire/distributed/internal/package.html   |    55 +
 .../internal/streaming/StreamingOperation.java  |   613 +
 .../internal/tcpserver/InfoRequest.java         |    41 +
 .../internal/tcpserver/InfoResponse.java        |    56 +
 .../internal/tcpserver/ShutdownRequest.java     |    39 +
 .../internal/tcpserver/ShutdownResponse.java    |    40 +
 .../internal/tcpserver/TcpClient.java           |   251 +
 .../internal/tcpserver/TcpHandler.java          |    61 +
 .../internal/tcpserver/TcpServer.java           |   546 +
 .../internal/tcpserver/VersionRequest.java      |    41 +
 .../internal/tcpserver/VersionResponse.java     |    54 +
 .../unsafe/RegisterSignalHandlerSupport.java    |    35 +
 .../gemstone/gemfire/distributed/package.html   |    37 +
 .../doc-files/data-serialization-exceptions.fig |   135 +
 .../doc-files/data-serialization-exceptions.gif |   Bin 0 -> 3666 bytes
 .../gemstone/gemfire/i18n/LogWriterI18n.java    |   420 +
 .../com/gemstone/gemfire/i18n/StringId.java     |   161 +
 .../gemfire/internal/AbstractConfig.java        |   403 +
 .../internal/AbstractStatisticsFactory.java     |   340 +
 .../gemfire/internal/ArchiveSplitter.java       |   522 +
 .../com/gemstone/gemfire/internal/Assert.java   |   177 +
 .../gemfire/internal/AvailablePort.java         |   588 +
 .../com/gemstone/gemfire/internal/Banner.java   |   172 +
 .../gemfire/internal/ByteArrayDataInput.java    |   458 +
 .../internal/ByteBufferOutputStream.java        |   102 +
 .../gemfire/internal/ByteBufferWriter.java      |    35 +
 .../gemfire/internal/ClassLoadUtil.java         |   124 +
 .../gemfire/internal/ClassPathLoader.java       |   726 +
 .../com/gemstone/gemfire/internal/Config.java   |   110 +
 .../gemstone/gemfire/internal/ConfigSource.java |   108 +
 .../gemfire/internal/ConnectionWatcher.java     |    41 +
 .../gemfire/internal/CopyOnWriteHashSet.java    |   177 +
 .../com/gemstone/gemfire/internal/DSCODE.java   |   416 +
 .../gemstone/gemfire/internal/DSFIDFactory.java |  1403 ++
 .../internal/DSFIDNotFoundException.java        |    52 +
 .../internal/DataSerializableFixedID.java       |   912 +
 .../gemfire/internal/DistributionLocator.java   |   190 +
 .../internal/DummyStatisticsFactory.java        |   134 +
 .../gemfire/internal/DummyStatisticsImpl.java   |   199 +
 .../gemfire/internal/ExternalizableDSFID.java   |    43 +
 .../com/gemstone/gemfire/internal/FileUtil.java |   331 +
 .../gemfire/internal/GemFireStatSampler.java    |   507 +
 .../gemfire/internal/GemFireUtilLauncher.java   |   166 +
 .../gemfire/internal/GemFireVersion.java        |   677 +
 .../internal/GfeConsoleReaderFactory.java       |    87 +
 .../gemfire/internal/HeapDataOutputStream.java  |  1374 ++
 .../gemfire/internal/HistogramStats.java        |    82 +
 .../gemfire/internal/HostStatHelper.java        |   289 +
 .../gemfire/internal/HostStatSampler.java       |   546 +
 .../InsufficientDiskSpaceException.java         |    54 +
 .../internal/InternalDataSerializer.java        |  4057 ++++
 .../gemfire/internal/InternalEntity.java        |    30 +
 .../gemfire/internal/InternalInstantiator.java  |  1061 +
 .../InternalStatisticsDisabledException.java    |    70 +
 .../gemfire/internal/JarClassLoader.java        |   701 +
 .../gemstone/gemfire/internal/JarDeployer.java  |   639 +
 .../gemfire/internal/LinuxProcFsStatistics.java |   786 +
 .../gemfire/internal/LinuxProcessStats.java     |    79 +
 .../gemfire/internal/LinuxSystemStats.java      |   311 +
 .../gemfire/internal/LocalStatListener.java     |    41 +
 .../internal/LocalStatisticsFactory.java        |   101 +
 .../gemfire/internal/LocalStatisticsImpl.java   |   269 +
 .../gemstone/gemfire/internal/ManagerInfo.java  |   386 +
 .../gemfire/internal/MigrationClient.java       |   260 +
 .../gemfire/internal/MigrationServer.java       |   566 +
 .../gemstone/gemfire/internal/NanoTimer.java    |   186 +
 .../gemfire/internal/NullDataOutputStream.java  |   379 +
 .../gemstone/gemfire/internal/OSProcess.java    |   753 +
 .../gemfire/internal/OSXProcessStats.java       |    83 +
 .../gemfire/internal/OSXSystemStats.java        |   228 +
 .../gemfire/internal/ObjIdConcurrentMap.java    |  1366 ++
 .../com/gemstone/gemfire/internal/ObjIdMap.java |   337 +
 .../internal/ObjToByteArraySerializer.java      |    35 +
 .../gemfire/internal/OneTaskOnlyExecutor.java   |   175 +
 .../gemfire/internal/OsStatisticsFactory.java   |    42 +
 .../gemfire/internal/PdxSerializerObject.java   |    33 +
 .../gemfire/internal/ProcessOutputReader.java   |   135 +
 .../gemstone/gemfire/internal/ProcessStats.java |    61 +
 .../gemstone/gemfire/internal/PureJavaMode.java |    80 +
 ...cheduledThreadPoolExecutorWithKeepAlive.java |   313 +
 .../com/gemstone/gemfire/internal/Sendable.java |    42 +
 .../gemfire/internal/SerializationVersions.java |    42 +
 .../com/gemstone/gemfire/internal/SetUtils.java |    68 +
 .../gemfire/internal/SharedLibrary.java         |   226 +
 .../gemfire/internal/SimpleStatSampler.java     |   114 +
 .../com/gemstone/gemfire/internal/SmHelper.java |   183 +
 .../gemstone/gemfire/internal/SocketCloser.java |   257 +
 .../gemfire/internal/SocketCreator.java         |  1364 ++
 .../gemfire/internal/SocketIOWithTimeout.java   |   491 +
 .../gemfire/internal/SocketInputStream.java     |   181 +
 .../gemfire/internal/SocketInputWrapper.java    |    93 +
 .../gemfire/internal/SocketOutputStream.java    |   174 +
 .../gemstone/gemfire/internal/SocketUtils.java  |   220 +
 .../gemfire/internal/SolarisProcessStats.java   |   217 +
 .../gemfire/internal/SolarisSystemStats.java    |   428 +
 .../gemfire/internal/StatArchiveFormat.java     |   197 +
 .../gemfire/internal/StatArchiveReader.java     |  3338 ++++
 .../gemfire/internal/StatArchiveWriter.java     |   748 +
 .../gemfire/internal/StatSamplerStats.java      |   123 +
 .../internal/StatisticDescriptorImpl.java       |   385 +
 .../gemfire/internal/StatisticsImpl.java        |   454 +
 .../gemfire/internal/StatisticsManager.java     |    79 +
 .../internal/StatisticsTypeFactoryImpl.java     |   141 +
 .../gemfire/internal/StatisticsTypeImpl.java    |   260 +
 .../gemfire/internal/StatisticsTypeXml.java     |   280 +
 .../gemstone/gemfire/internal/SystemAdmin.java  |  2305 +++
 .../gemfire/internal/SystemFailureTestHook.java |    48 +
 .../gemstone/gemfire/internal/SystemTimer.java  |   467 +
 .../gemfire/internal/UniqueIdGenerator.java     |   257 +
 .../com/gemstone/gemfire/internal/VMStats.java  |    87 +
 .../gemfire/internal/VMStatsContract.java       |    36 +
 .../internal/VMStatsContractFactory.java        |    60 +
 .../com/gemstone/gemfire/internal/Version.java  |   636 +
 .../internal/VersionedDataInputStream.java      |    67 +
 .../internal/VersionedDataOutputStream.java     |    57 +
 .../internal/VersionedDataSerializable.java     |    34 +
 .../gemfire/internal/VersionedDataStream.java   |    53 +
 .../gemfire/internal/VersionedObjectInput.java  |   245 +
 .../gemfire/internal/VersionedObjectOutput.java |   199 +
 .../gemfire/internal/WindowsProcessStats.java   |   160 +
 .../gemfire/internal/WindowsSystemStats.java    |   267 +
 .../internal/admin/AdminBridgeServer.java       |    33 +
 .../gemstone/gemfire/internal/admin/Alert.java  |    69 +
 .../gemfire/internal/admin/AlertListener.java   |    29 +
 .../gemfire/internal/admin/ApplicationVM.java   |    36 +
 .../gemfire/internal/admin/CacheCollector.java  |   277 +
 .../gemfire/internal/admin/CacheInfo.java       |   102 +
 .../gemfire/internal/admin/CacheSnapshot.java   |    34 +
 .../admin/ClientHealthMonitoringRegion.java     |   117 +
 .../internal/admin/ClientMembershipMessage.java |   187 +
 .../internal/admin/ClientStatsManager.java      |   263 +
 .../internal/admin/CompoundEntrySnapshot.java   |   201 +
 .../internal/admin/CompoundRegionSnapshot.java  |   387 +
 .../gemfire/internal/admin/DLockInfo.java       |    35 +
 .../gemfire/internal/admin/EntrySnapshot.java   |    29 +
 .../gemfire/internal/admin/EntryValueNode.java  |    53 +
 .../gemfire/internal/admin/GemFireVM.java       |   396 +
 .../gemfire/internal/admin/GfManagerAgent.java  |   112 +
 .../internal/admin/GfManagerAgentConfig.java    |    87 +
 .../internal/admin/GfManagerAgentFactory.java   |    42 +
 .../gemfire/internal/admin/GfObject.java        |    28 +
 .../gemfire/internal/admin/HealthListener.java  |    44 +
 .../internal/admin/JoinLeaveListener.java       |    27 +
 .../gemfire/internal/admin/ListenerIdMap.java   |   318 +
 .../gemfire/internal/admin/RegionSnapshot.java  |    31 +
 .../gemfire/internal/admin/SSLConfig.java       |   131 +
 .../gemfire/internal/admin/SnapshotClient.java  |    38 +
 .../gemstone/gemfire/internal/admin/Stat.java   |    44 +
 .../gemfire/internal/admin/StatAlert.java       |   140 +
 .../internal/admin/StatAlertDefinition.java     |   103 +
 .../internal/admin/StatAlertsManager.java       |   408 +
 .../gemfire/internal/admin/StatListener.java    |    43 +
 .../gemfire/internal/admin/StatResource.java    |    42 +
 .../gemfire/internal/admin/TransportConfig.java |    27 +
 .../admin/doc-files/class-hierarchy.fig         |   224 +
 .../admin/doc-files/class-hierarchy.gif         |   Bin 0 -> 11971 bytes
 .../gemfire/internal/admin/package.html         |    29 +
 .../admin/remote/AddHealthListenerRequest.java  |    89 +
 .../admin/remote/AddHealthListenerResponse.java |    76 +
 .../admin/remote/AddStatListenerRequest.java    |    85 +
 .../admin/remote/AddStatListenerResponse.java   |    79 +
 .../remote/AdminConsoleDisconnectMessage.java   |   125 +
 .../admin/remote/AdminConsoleMessage.java       |    83 +
 .../admin/remote/AdminFailureResponse.java      |    73 +
 .../remote/AdminMultipleReplyProcessor.java     |    91 +
 .../internal/admin/remote/AdminRegion.java      |   581 +
 .../admin/remote/AdminReplyProcessor.java       |   148 +
 .../internal/admin/remote/AdminRequest.java     |   193 +
 .../internal/admin/remote/AdminResponse.java    |    90 +
 .../internal/admin/remote/AdminWaiters.java     |   184 +
 .../admin/remote/AlertLevelChangeMessage.java   |    96 +
 .../admin/remote/AlertListenerMessage.java      |   147 +
 .../admin/remote/AlertsNotificationMessage.java |   110 +
 .../admin/remote/AppCacheSnapshotMessage.java   |   163 +
 .../admin/remote/BridgeServerRequest.java       |   202 +
 .../admin/remote/BridgeServerResponse.java      |   181 +
 .../admin/remote/CacheConfigRequest.java        |    88 +
 .../admin/remote/CacheConfigResponse.java       |   119 +
 .../internal/admin/remote/CacheDisplay.java     |    86 +
 .../internal/admin/remote/CacheInfoRequest.java |    73 +
 .../admin/remote/CacheInfoResponse.java         |    83 +
 .../admin/remote/CancelStatListenerRequest.java |    79 +
 .../remote/CancelStatListenerResponse.java      |    74 +
 .../internal/admin/remote/Cancellable.java      |    27 +
 .../admin/remote/CancellationMessage.java       |    70 +
 .../admin/remote/CancellationRegistry.java      |    95 +
 .../remote/ChangeRefreshIntervalMessage.java    |    98 +
 .../internal/admin/remote/CliLegacyMessage.java |    58 +
 .../admin/remote/ClientHealthStats.java         |   308 +
 .../internal/admin/remote/CompactRequest.java   |   145 +
 .../internal/admin/remote/CompactResponse.java  |    66 +
 .../admin/remote/DestroyEntryMessage.java       |   100 +
 .../admin/remote/DestroyRegionMessage.java      |    96 +
 .../admin/remote/DistributionLocatorId.java     |   394 +
 .../internal/admin/remote/DummyEntry.java       |    77 +
 .../admin/remote/DurableClientInfoRequest.java  |   109 +
 .../admin/remote/DurableClientInfoResponse.java |   108 +
 .../admin/remote/EntryValueNodeImpl.java        |   393 +
 .../admin/remote/FetchDistLockInfoRequest.java  |    68 +
 .../admin/remote/FetchDistLockInfoResponse.java |    93 +
 .../remote/FetchHealthDiagnosisRequest.java     |    91 +
 .../remote/FetchHealthDiagnosisResponse.java    |    92 +
 .../internal/admin/remote/FetchHostRequest.java |    70 +
 .../admin/remote/FetchHostResponse.java         |   173 +
 .../remote/FetchResourceAttributesRequest.java  |    70 +
 .../remote/FetchResourceAttributesResponse.java |    81 +
 .../admin/remote/FetchStatsRequest.java         |    72 +
 .../admin/remote/FetchStatsResponse.java        |   145 +
 .../admin/remote/FetchSysCfgRequest.java        |    76 +
 .../admin/remote/FetchSysCfgResponse.java       |    77 +
 .../remote/FlushAppCacheSnapshotMessage.java    |    69 +
 .../admin/remote/HealthListenerMessage.java     |    89 +
 .../remote/InspectionClasspathManager.java      |    90 +
 .../admin/remote/LicenseInfoRequest.java        |    72 +
 .../admin/remote/LicenseInfoResponse.java       |    79 +
 .../remote/MissingPersistentIDsRequest.java     |   141 +
 .../remote/MissingPersistentIDsResponse.java    |   115 +
 .../admin/remote/ObjectDetailsRequest.java      |   103 +
 .../admin/remote/ObjectDetailsResponse.java     |   155 +
 .../admin/remote/ObjectNamesRequest.java        |    89 +
 .../admin/remote/ObjectNamesResponse.java       |    98 +
 .../PrepareRevokePersistentIDRequest.java       |   127 +
 .../remote/RefreshMemberSnapshotRequest.java    |    74 +
 .../remote/RefreshMemberSnapshotResponse.java   |    95 +
 .../admin/remote/RegionAdminMessage.java        |    66 +
 .../admin/remote/RegionAdminRequest.java        |    74 +
 .../admin/remote/RegionAttributesRequest.java   |    74 +
 .../admin/remote/RegionAttributesResponse.java  |    75 +
 .../internal/admin/remote/RegionRequest.java    |   175 +
 .../internal/admin/remote/RegionResponse.java   |   149 +
 .../admin/remote/RegionSizeRequest.java         |    90 +
 .../admin/remote/RegionSizeResponse.java        |    96 +
 .../admin/remote/RegionStatisticsRequest.java   |    74 +
 .../admin/remote/RegionStatisticsResponse.java  |    75 +
 .../remote/RegionSubRegionSizeRequest.java      |    94 +
 .../remote/RegionSubRegionsSizeResponse.java    |   162 +
 .../internal/admin/remote/RemoteAlert.java      |   205 +
 .../admin/remote/RemoteApplicationVM.java       |    61 +
 .../admin/remote/RemoteBridgeServer.java        |   300 +
 .../internal/admin/remote/RemoteCacheInfo.java  |   192 +
 .../admin/remote/RemoteCacheStatistics.java     |    87 +
 .../internal/admin/remote/RemoteDLockInfo.java  |   115 +
 .../admin/remote/RemoteEntrySnapshot.java       |   131 +
 .../internal/admin/remote/RemoteGemFireVM.java  |   998 +
 .../admin/remote/RemoteGfManagerAgent.java      |  1489 ++
 .../internal/admin/remote/RemoteObjectName.java |    95 +
 .../admin/remote/RemoteRegionAttributes.java    |   702 +
 .../admin/remote/RemoteRegionSnapshot.java      |   158 +
 .../internal/admin/remote/RemoteStat.java       |   118 +
 .../admin/remote/RemoteStatResource.java        |   154 +
 .../admin/remote/RemoteTransportConfig.java     |   376 +
 .../remote/RemoveHealthListenerRequest.java     |    80 +
 .../remote/RemoveHealthListenerResponse.java    |    67 +
 .../admin/remote/ResetHealthStatusRequest.java  |    80 +
 .../admin/remote/ResetHealthStatusResponse.java |    72 +
 .../admin/remote/RevokePersistentIDRequest.java |   103 +
 .../remote/RevokePersistentIDResponse.java      |    36 +
 .../admin/remote/RootRegionRequest.java         |    76 +
 .../admin/remote/RootRegionResponse.java        |   115 +
 .../remote/ShutdownAllGatewayHubsRequest.java   |    68 +
 .../admin/remote/ShutdownAllRequest.java        |   301 +
 .../admin/remote/ShutdownAllResponse.java       |    80 +
 .../admin/remote/SnapshotResultMessage.java     |    85 +
 .../remote/StatAlertsManagerAssignMessage.java  |   152 +
 .../admin/remote/StatListenerMessage.java       |   118 +
 .../admin/remote/StoreSysCfgRequest.java        |    81 +
 .../admin/remote/StoreSysCfgResponse.java       |    77 +
 .../internal/admin/remote/SubRegionRequest.java |    74 +
 .../admin/remote/SubRegionResponse.java         |   100 +
 .../internal/admin/remote/TailLogRequest.java   |    62 +
 .../internal/admin/remote/TailLogResponse.java  |   169 +
 .../remote/UpdateAlertDefinitionMessage.java    |   162 +
 .../admin/remote/VersionInfoRequest.java        |    73 +
 .../admin/remote/VersionInfoResponse.java       |    74 +
 .../admin/remote/VersionMismatchAlert.java      |    66 +
 .../gemfire/internal/admin/remote/package.html  |    41 +
 .../admin/statalerts/BaseDecoratorImpl.java     |   224 +
 .../statalerts/DummyStatisticInfoImpl.java      |   146 +
 .../admin/statalerts/FunctionDecoratorImpl.java |   133 +
 .../admin/statalerts/FunctionHelper.java        |   257 +
 .../statalerts/GaugeThresholdDecoratorImpl.java |   156 +
 .../statalerts/MultiAttrDefinitionImpl.java     |   207 +
 .../NumberThresholdDecoratorImpl.java           |   153 +
 .../statalerts/SingleAttrDefinitionImpl.java    |   213 +
 .../admin/statalerts/StatisticInfo.java         |    85 +
 .../admin/statalerts/StatisticInfoImpl.java     |   157 +
 .../cache/AbstractBucketRegionQueue.java        |   563 +
 .../internal/cache/AbstractCacheServer.java     |   407 +
 .../cache/AbstractDiskLRURegionEntry.java       |    42 +
 .../internal/cache/AbstractDiskRegion.java      |   992 +
 .../internal/cache/AbstractDiskRegionEntry.java |    76 +
 .../internal/cache/AbstractLRURegionEntry.java  |    46 +
 .../internal/cache/AbstractLRURegionMap.java    |   861 +
 .../cache/AbstractOplogDiskRegionEntry.java     |   173 +
 .../gemfire/internal/cache/AbstractRegion.java  |  2134 ++
 .../internal/cache/AbstractRegionEntry.java     |  2243 +++
 .../internal/cache/AbstractRegionMap.java       |  4164 ++++
 .../internal/cache/AbstractUpdateOperation.java |   338 +
 .../gemfire/internal/cache/AcceptHelper.java    |   101 +
 .../cache/AddCacheServerProfileMessage.java     |   161 +
 .../gemfire/internal/cache/BackupLock.java      |    91 +
 .../gemfire/internal/cache/BucketAdvisor.java   |  3002 +++
 .../gemfire/internal/cache/BucketDump.java      |   144 +
 .../internal/cache/BucketNotFoundException.java |    38 +
 .../cache/BucketPersistenceAdvisor.java         |   463 +
 .../gemfire/internal/cache/BucketRegion.java    |  2614 +++
 .../internal/cache/BucketRegionEvictior.java    |    63 +
 .../internal/cache/BucketRegionQueue.java       |   548 +
 .../internal/cache/BucketServerLocation.java    |    88 +
 .../internal/cache/BucketServerLocation66.java  |   113 +
 .../cache/BytesAndBitsForCompactor.java         |    94 +
 .../internal/cache/CacheClientStatus.java       |   101 +
 .../gemfire/internal/cache/CacheConfig.java     |   228 +
 .../cache/CacheDistributionAdvisee.java         |    58 +
 .../cache/CacheDistributionAdvisor.java         |  1260 ++
 .../internal/cache/CacheLifecycleListener.java  |    37 +
 .../gemfire/internal/cache/CacheObserver.java   |   190 +
 .../internal/cache/CacheObserverAdapter.java    |   154 +
 .../internal/cache/CacheObserverHolder.java     |    78 +
 .../gemfire/internal/cache/CachePerfStats.java  |  1419 ++
 .../internal/cache/CacheServerAdvisor.java      |   173 +
 .../gemfire/internal/cache/CacheServerImpl.java |   821 +
 .../internal/cache/CacheServerLauncher.java     |  1391 ++
 .../gemfire/internal/cache/CacheService.java    |    42 +
 .../internal/cache/CacheStatisticsImpl.java     |   111 +
 .../internal/cache/CachedDeserializable.java    |   114 +
 .../cache/CachedDeserializableFactory.java      |   275 +
 .../internal/cache/ClientRegionEventImpl.java   |   117 +
 .../internal/cache/ClientServerObserver.java    |    99 +
 .../cache/ClientServerObserverAdapter.java      |   116 +
 .../cache/ClientServerObserverHolder.java       |    62 +
 .../cache/ClientSubscriptionConfigImpl.java     |   178 +
 .../internal/cache/CloseCacheMessage.java       |   116 +
 .../cache/ClusterConfigurationLoader.java       |   245 +
 .../internal/cache/ColocationHelper.java        |   569 +
 .../internal/cache/CommitReplyException.java    |    73 +
 .../internal/cache/CompactableOplog.java        |    37 +
 .../gemfire/internal/cache/Conflatable.java     |    76 +
 .../internal/cache/ControllerAdvisor.java       |   171 +
 .../internal/cache/CountingDataInputStream.java |   125 +
 .../internal/cache/CreateRegionProcessor.java   |   914 +
 .../internal/cache/CustomEntryExpiryTask.java   |    49 +
 .../cache/CustomEvictionAttributesImpl.java     |    36 +
 .../internal/cache/DataLocationException.java   |    43 +
 .../internal/cache/DestroyOperation.java        |   303 +
 .../cache/DestroyPartitionedRegionMessage.java  |   252 +
 .../internal/cache/DestroyRegionOperation.java  |   547 +
 .../gemfire/internal/cache/DestroyedEntry.java  |    85 +
 .../internal/cache/DirectReplyMessage.java      |    58 +
 .../gemfire/internal/cache/DirectoryHolder.java |   123 +
 .../internal/cache/DiskDirectoryStats.java      |   117 +
 .../gemfire/internal/cache/DiskEntry.java       |  2028 ++
 .../gemstone/gemfire/internal/cache/DiskId.java |   730 +
 .../gemfire/internal/cache/DiskInitFile.java    |  2877 +++
 .../gemfire/internal/cache/DiskRegion.java      |   876 +
 .../gemfire/internal/cache/DiskRegionStats.java |   326 +
 .../internal/cache/DiskStoreAttributes.java     |   196 +
 .../gemfire/internal/cache/DiskStoreBackup.java |    98 +
 .../internal/cache/DiskStoreFactoryImpl.java    |   291 +
 .../gemfire/internal/cache/DiskStoreImpl.java   |  4873 +++++
 .../internal/cache/DiskStoreMonitor.java        |   413 +
 .../internal/cache/DiskStoreObserver.java       |    63 +
 .../gemfire/internal/cache/DiskStoreStats.java  |   528 +
 .../gemfire/internal/cache/DiskStoreTask.java   |    27 +
 .../internal/cache/DiskWriteAttributesImpl.java |   564 +
 .../internal/cache/DistPeerTXStateStub.java     |   374 +
 .../cache/DistTXAdjunctCommitMessage.java       |    51 +
 .../internal/cache/DistTXCommitMessage.java     |   500 +
 .../cache/DistTXCoordinatorInterface.java       |    73 +
 .../internal/cache/DistTXPrecommitMessage.java  |   548 +
 .../internal/cache/DistTXRollbackMessage.java   |   507 +
 .../gemfire/internal/cache/DistTXState.java     |   746 +
 .../cache/DistTXStateOnCoordinator.java         |   416 +
 .../internal/cache/DistTXStateProxyImpl.java    |    48 +
 .../DistTXStateProxyImplOnCoordinator.java      |  1068 +
 .../cache/DistTXStateProxyImplOnDatanode.java   |   128 +
 .../cache/DistributedCacheOperation.java        |  1615 ++
 .../cache/DistributedClearOperation.java        |   356 +
 .../cache/DistributedPutAllOperation.java       |  1384 ++
 .../internal/cache/DistributedRegion.java       |  4303 +++++
 ...stributedRegionFunctionStreamingMessage.java |   460 +
 .../cache/DistributedRemoveAllOperation.java    |  1097 ++
 .../cache/DistributedTombstoneOperation.java    |   227 +
 .../internal/cache/DummyCachePerfStats.java     |   485 +
 .../internal/cache/DynamicRegionAttributes.java |    52 +
 .../cache/DynamicRegionFactoryImpl.java         |    44 +
 .../gemfire/internal/cache/EntriesMap.java      |   155 +
 .../gemfire/internal/cache/EntriesSet.java      |   294 +
 .../gemfire/internal/cache/EntryBits.java       |   128 +
 .../gemfire/internal/cache/EntryEventImpl.java  |  3135 +++
 .../gemfire/internal/cache/EntryExpiryTask.java |   358 +
 .../internal/cache/EntryOperationImpl.java      |   119 +
 .../gemfire/internal/cache/EntrySnapshot.java   |   285 +
 .../internal/cache/EnumListenerEvent.java       |   475 +
 .../gemfire/internal/cache/EventID.java         |   804 +
 .../internal/cache/EventStateHelper.java        |   196 +
 .../gemfire/internal/cache/EventTracker.java    |   811 +
 .../internal/cache/EvictionAttributesImpl.java  |   243 +
 .../gemfire/internal/cache/EvictorService.java  |   285 +
 .../internal/cache/ExpirationScheduler.java     |   106 +
 .../gemfire/internal/cache/ExpiryTask.java      |   540 +
 .../internal/cache/ExportDiskRegion.java        |    84 +
 .../gemfire/internal/cache/FilterProfile.java   |  2218 +++
 .../internal/cache/FilterRoutingInfo.java       |   519 +
 .../cache/FindDurableQueueProcessor.java        |   256 +
 .../internal/cache/FindRemoteTXMessage.java     |   281 +
 .../internal/cache/FindVersionTagOperation.java |   254 +
 .../cache/FixedPartitionAttributesImpl.java     |   156 +
 .../internal/cache/ForceReattemptException.java |   121 +
 .../cache/ForceableLinkedBlockingQueue.java     |   864 +
 .../FunctionStreamingOrderedReplyMessage.java   |    64 +
 .../cache/FunctionStreamingReplyMessage.java    |   145 +
 .../internal/cache/GatewayEventFilter.java      |    27 +
 .../internal/cache/GemFireCacheImpl.java        |  5467 ++++++
 .../internal/cache/GemfireCacheHelper.java      |    38 +
 .../gemfire/internal/cache/GridAdvisor.java     |   442 +
 .../gemfire/internal/cache/HARegion.java        |   618 +
 .../internal/cache/HDFSLRURegionMap.java        |   112 +
 .../gemfire/internal/cache/HDFSRegionMap.java   |    33 +
 .../internal/cache/HDFSRegionMapDelegate.java   |   541 +
 .../internal/cache/HDFSRegionMapImpl.java       |    75 +
 .../internal/cache/HasCachePerfStats.java       |    22 +
 .../internal/cache/IdentityArrayList.java       |   473 +
 .../gemfire/internal/cache/ImageState.java      |    89 +
 .../cache/InMemoryPersistentMemberView.java     |   136 +
 .../internal/cache/IncomingGatewayStatus.java   |    83 +
 .../internal/cache/InitialImageFlowControl.java |   253 +
 .../internal/cache/InitialImageOperation.java   |  4310 +++++
 .../gemfire/internal/cache/InlineKeyHelper.java |    71 +
 .../gemfire/internal/cache/InterestEvent.java   |    68 +
 .../gemfire/internal/cache/InterestFilter.java  |    34 +
 .../cache/InterestRegistrationEventImpl.java    |   152 +
 .../gemfire/internal/cache/InternalCache.java   |    52 +
 .../internal/cache/InternalCacheEvent.java      |    87 +
 .../internal/cache/InternalDataView.java        |   255 +
 .../internal/cache/InternalRegionArguments.java |   337 +
 .../internal/cache/InvalidateOperation.java     |   236 +
 .../InvalidatePartitionedRegionMessage.java     |   102 +
 .../cache/InvalidateRegionOperation.java        |   108 +
 .../cache/JtaAfterCompletionMessage.java        |   128 +
 .../cache/JtaBeforeCompletionMessage.java       |    82 +
 .../gemfire/internal/cache/KeyInfo.java         |   129 +
 .../internal/cache/KeyWithRegionContext.java    |    71 +
 .../gemfire/internal/cache/ListOfDeltas.java    |   101 +
 .../internal/cache/LoaderHelperFactory.java     |    40 +
 .../internal/cache/LoaderHelperImpl.java        |   169 +
 .../gemfire/internal/cache/LocalDataSet.java    |   750 +
 .../gemfire/internal/cache/LocalRegion.java     | 12975 +++++++++++++
 .../internal/cache/LocalRegionDataView.java     |   273 +
 .../cache/MemberFunctionStreamingMessage.java   |   416 +
 .../cache/MinimumSystemRequirements.java        |    92 +
 .../cache/NetSearchExpirationCalculator.java    |    49 +
 .../gemstone/gemfire/internal/cache/Node.java   |   187 +
 .../internal/cache/NonLocalRegionEntry.java     |   579 +
 .../cache/NonLocalRegionEntryWithStats.java     |    86 +
 .../internal/cache/OffHeapRegionEntry.java      |    42 +
 .../cache/OfflineCompactionDiskRegion.java      |   124 +
 .../gemstone/gemfire/internal/cache/OpType.java |    59 +
 .../gemstone/gemfire/internal/cache/Oplog.java  |  7969 ++++++++
 .../gemfire/internal/cache/OplogSet.java        |    34 +
 .../internal/cache/OrderedTombstoneMap.java     |   123 +
 .../gemfire/internal/cache/OverflowOplog.java   |  1613 ++
 .../internal/cache/OverflowOplogSet.java        |   328 +
 .../internal/cache/PRContainsValueFunction.java |    60 +
 .../internal/cache/PRHARedundancyProvider.java  |  2384 +++
 .../internal/cache/PRQueryProcessor.java        |   658 +
 .../internal/cache/PRSystemPropertyGetter.java  |    70 +
 .../internal/cache/PartitionAttributesImpl.java |   828 +
 .../internal/cache/PartitionRegionConfig.java   |   477 +
 .../cache/PartitionRegionConfigValidator.java   |   511 +
 .../internal/cache/PartitionedRegion.java       | 11398 +++++++++++
 .../PartitionedRegionBucketMgmtHelper.java      |    54 +
 .../cache/PartitionedRegionDataStore.java       |  3284 ++++
 .../cache/PartitionedRegionDataView.java        |   142 +
 .../cache/PartitionedRegionException.java       |    48 +
 .../internal/cache/PartitionedRegionHelper.java |  1132 ++
 .../cache/PartitionedRegionQueryEvaluator.java  |  1486 ++
 .../internal/cache/PartitionedRegionStats.java  |  1267 ++
 .../internal/cache/PartitionedRegionStatus.java |    86 +
 .../gemfire/internal/cache/PeerTXStateStub.java |   257 +
 .../internal/cache/PersistentOplogSet.java      |  1184 ++
 .../internal/cache/PlaceHolderDiskRegion.java   |   207 +
 .../gemfire/internal/cache/PoolFactoryImpl.java |   529 +
 .../gemfire/internal/cache/PoolManagerImpl.java |   336 +
 .../gemfire/internal/cache/PoolStats.java       |   319 +
 .../cache/PreferBytesCachedDeserializable.java  |   157 +
 .../internal/cache/PrimaryBucketException.java  |    49 +
 .../cache/ProfileExchangeProcessor.java         |    41 +
 .../internal/cache/ProxyBucketRegion.java       |   657 +
 .../gemfire/internal/cache/ProxyRegionMap.java  |   794 +
 .../cache/PutAllPartialResultException.java     |   229 +
 .../gemfire/internal/cache/QueuedOperation.java |   196 +
 .../internal/cache/RegionClearedException.java  |    62 +
 .../gemfire/internal/cache/RegionEntry.java     |   519 +
 .../internal/cache/RegionEntryContext.java      |    41 +
 .../internal/cache/RegionEntryFactory.java      |    50 +
 .../gemfire/internal/cache/RegionEventImpl.java |   352 +
 .../internal/cache/RegionEvictorTask.java       |   144 +
 .../internal/cache/RegionExpiryTask.java        |   162 +
 .../internal/cache/RegionFactoryImpl.java       |    50 +
 .../internal/cache/RegionIdleExpiryTask.java    |    73 +
 .../gemfire/internal/cache/RegionListener.java  |    46 +
 .../gemfire/internal/cache/RegionMap.java       |   404 +
 .../internal/cache/RegionMapFactory.java        |    76 +
 .../gemfire/internal/cache/RegionQueue.java     |   158 +
 .../internal/cache/RegionQueueException.java    |    49 +
 .../gemfire/internal/cache/RegionStatus.java    |    88 +
 .../internal/cache/RegionTTLExpiryTask.java     |    75 +
 .../internal/cache/ReleaseClearLockMessage.java |   113 +
 .../cache/ReliableDistributionData.java         |    43 +
 .../internal/cache/ReliableMessageQueue.java    |    66 +
 .../cache/ReliableMessageQueueFactory.java      |    43 +
 .../cache/ReliableMessageQueueFactoryImpl.java  |   230 +
 .../cache/RemoteContainsKeyValueMessage.java    |   342 +
 .../internal/cache/RemoteDestroyMessage.java    |   745 +
 .../internal/cache/RemoteFetchEntryMessage.java |   386 +
 .../cache/RemoteFetchVersionMessage.java        |   261 +
 .../internal/cache/RemoteGetMessage.java        |   462 +
 .../internal/cache/RemoteInvalidateMessage.java |   439 +
 .../cache/RemoteOperationException.java         |   119 +
 .../internal/cache/RemoteOperationMessage.java  |   656 +
 .../RemoteOperationMessageWithDirectReply.java  |    85 +
 .../internal/cache/RemotePutAllMessage.java     |   549 +
 .../internal/cache/RemotePutMessage.java        |  1236 ++
 .../internal/cache/RemoteRegionOperation.java   |   224 +
 .../internal/cache/RemoteRemoveAllMessage.java  |   531 +
 .../gemfire/internal/cache/RoleEventImpl.java   |    96 +
 .../cache/SearchLoadAndWriteProcessor.java      |  2802 +++
 .../internal/cache/SendQueueOperation.java      |   191 +
 .../internal/cache/SerializationHelper.java     |    24 +
 .../internal/cache/ServerPingMessage.java       |   136 +
 .../internal/cache/StateFlushOperation.java     |   783 +
 .../cache/StoreAllCachedDeserializable.java     |   159 +
 .../internal/cache/TXBucketRegionState.java     |    37 +
 .../gemfire/internal/cache/TXCommitMessage.java |  2478 +++
 .../gemfire/internal/cache/TXEntry.java         |   274 +
 .../gemfire/internal/cache/TXEntryState.java    |  2270 +++
 .../internal/cache/TXEntryStateFactory.java     |    38 +
 .../internal/cache/TXEntryUserAttrState.java    |    67 +
 .../gemfire/internal/cache/TXEvent.java         |   148 +
 .../internal/cache/TXFarSideCMTracker.java      |   360 +
 .../gemstone/gemfire/internal/cache/TXId.java   |   130 +
 .../gemfire/internal/cache/TXLockRequest.java   |   144 +
 .../gemfire/internal/cache/TXManagerImpl.java   |  1511 ++
 .../gemfire/internal/cache/TXMessage.java       |   215 +
 .../internal/cache/TXRegionLockRequestImpl.java |   209 +
 .../gemfire/internal/cache/TXRegionState.java   |   629 +
 .../internal/cache/TXRemoteCommitMessage.java   |   320 +
 .../internal/cache/TXRemoteRollbackMessage.java |    88 +
 .../internal/cache/TXReservationMgr.java        |   154 +
 .../gemfire/internal/cache/TXRmtEvent.java      |   243 +
 .../gemfire/internal/cache/TXState.java         |  1839 ++
 .../internal/cache/TXStateInterface.java        |   224 +
 .../gemfire/internal/cache/TXStateProxy.java    |    96 +
 .../internal/cache/TXStateProxyImpl.java        |  1036 +
 .../gemfire/internal/cache/TXStateStub.java     |   577 +
 .../cache/TXSynchronizationRunnable.java        |   160 +
 .../cache/TestHeapThresholdObserver.java        |    62 +
 .../cache/TimestampedEntryEventImpl.java        |    73 +
 .../gemstone/gemfire/internal/cache/Token.java  |   301 +
 .../internal/cache/TombstoneService.java        |  1007 +
 .../internal/cache/TransactionMessage.java      |    75 +
 .../gemfire/internal/cache/TxEntryFactory.java  |    35 +
 .../internal/cache/UnsharedImageState.java      |   293 +
 .../cache/UpdateAttributesProcessor.java        |   553 +
 .../cache/UpdateEntryVersionOperation.java      |   195 +
 .../gemfire/internal/cache/UpdateOperation.java |   629 +
 .../cache/UserSpecifiedDiskStoreAttributes.java |   191 +
 .../cache/UserSpecifiedRegionAttributes.java    |   624 +
 .../internal/cache/VMCachedDeserializable.java  |   263 +
 .../gemfire/internal/cache/VMLRURegionMap.java  |    65 +
 .../gemfire/internal/cache/VMRegionMap.java     |    39 +
 .../cache/VMStatsDiskLRURegionEntry.java        |    40 +
 .../cache/VMStatsDiskLRURegionEntryHeap.java    |    69 +
 .../VMStatsDiskLRURegionEntryHeapIntKey.java    |   345 +
 .../VMStatsDiskLRURegionEntryHeapLongKey.java   |   345 +
 .../VMStatsDiskLRURegionEntryHeapObjectKey.java |   338 +
 ...VMStatsDiskLRURegionEntryHeapStringKey1.java |   407 +
 ...VMStatsDiskLRURegionEntryHeapStringKey2.java |   448 +
 .../VMStatsDiskLRURegionEntryHeapUUIDKey.java   |   349 +
 .../cache/VMStatsDiskLRURegionEntryOffHeap.java |    69 +
 .../VMStatsDiskLRURegionEntryOffHeapIntKey.java |   394 +
 ...VMStatsDiskLRURegionEntryOffHeapLongKey.java |   394 +
 ...StatsDiskLRURegionEntryOffHeapObjectKey.java |   387 +
 ...tatsDiskLRURegionEntryOffHeapStringKey1.java |   456 +
 ...tatsDiskLRURegionEntryOffHeapStringKey2.java |   497 +
 ...VMStatsDiskLRURegionEntryOffHeapUUIDKey.java |   398 +
 .../internal/cache/VMStatsDiskRegionEntry.java  |    39 +
 .../cache/VMStatsDiskRegionEntryHeap.java       |    69 +
 .../cache/VMStatsDiskRegionEntryHeapIntKey.java |   248 +
 .../VMStatsDiskRegionEntryHeapLongKey.java      |   248 +
 .../VMStatsDiskRegionEntryHeapObjectKey.java    |   241 +
 .../VMStatsDiskRegionEntryHeapStringKey1.java   |   310 +
 .../VMStatsDiskRegionEntryHeapStringKey2.java   |   351 +
 .../VMStatsDiskRegionEntryHeapUUIDKey.java      |   252 +
 .../cache/VMStatsDiskRegionEntryOffHeap.java    |    69 +
 .../VMStatsDiskRegionEntryOffHeapIntKey.java    |   297 +
 .../VMStatsDiskRegionEntryOffHeapLongKey.java   |   297 +
 .../VMStatsDiskRegionEntryOffHeapObjectKey.java |   290 +
 ...VMStatsDiskRegionEntryOffHeapStringKey1.java |   359 +
 ...VMStatsDiskRegionEntryOffHeapStringKey2.java |   400 +
 .../VMStatsDiskRegionEntryOffHeapUUIDKey.java   |   301 +
 .../internal/cache/VMStatsLRURegionEntry.java   |    43 +
 .../cache/VMStatsLRURegionEntryHeap.java        |    69 +
 .../cache/VMStatsLRURegionEntryHeapIntKey.java  |   256 +
 .../cache/VMStatsLRURegionEntryHeapLongKey.java |   256 +
 .../VMStatsLRURegionEntryHeapObjectKey.java     |   249 +
 .../VMStatsLRURegionEntryHeapStringKey1.java    |   318 +
 .../VMStatsLRURegionEntryHeapStringKey2.java    |   359 +
 .../cache/VMStatsLRURegionEntryHeapUUIDKey.java |   260 +
 .../cache/VMStatsLRURegionEntryOffHeap.java     |    69 +
 .../VMStatsLRURegionEntryOffHeapIntKey.java     |   305 +
 .../VMStatsLRURegionEntryOffHeapLongKey.java    |   305 +
 .../VMStatsLRURegionEntryOffHeapObjectKey.java  |   298 +
 .../VMStatsLRURegionEntryOffHeapStringKey1.java |   367 +
 .../VMStatsLRURegionEntryOffHeapStringKey2.java |   408 +
 .../VMStatsLRURegionEntryOffHeapUUIDKey.java    |   309 +
 .../internal/cache/VMStatsRegionEntry.java      |    39 +
 .../internal/cache/VMStatsRegionEntryHeap.java  |    69 +
 .../cache/VMStatsRegionEntryHeapIntKey.java     |   175 +
 .../cache/VMStatsRegionEntryHeapLongKey.java    |   175 +
 .../cache/VMStatsRegionEntryHeapObjectKey.java  |   168 +
 .../cache/VMStatsRegionEntryHeapStringKey1.java |   237 +
 .../cache/VMStatsRegionEntryHeapStringKey2.java |   278 +
 .../cache/VMStatsRegionEntryHeapUUIDKey.java    |   179 +
 .../cache/VMStatsRegionEntryOffHeap.java        |    69 +
 .../cache/VMStatsRegionEntryOffHeapIntKey.java  |   224 +
 .../cache/VMStatsRegionEntryOffHeapLongKey.java |   224 +
 .../VMStatsRegionEntryOffHeapObjectKey.java     |   217 +
 .../VMStatsRegionEntryOffHeapStringKey1.java    |   286 +
 .../VMStatsRegionEntryOffHeapStringKey2.java    |   327 +
 .../cache/VMStatsRegionEntryOffHeapUUIDKey.java |   228 +
 .../cache/VMThinDiskLRURegionEntry.java         |    39 +
 .../cache/VMThinDiskLRURegionEntryHeap.java     |    69 +
 .../VMThinDiskLRURegionEntryHeapIntKey.java     |   280 +
 .../VMThinDiskLRURegionEntryHeapLongKey.java    |   280 +
 .../VMThinDiskLRURegionEntryHeapObjectKey.java  |   273 +
 .../VMThinDiskLRURegionEntryHeapStringKey1.java |   342 +
 .../VMThinDiskLRURegionEntryHeapStringKey2.java |   383 +
 .../VMThinDiskLRURegionEntryHeapUUIDKey.java    |   284 +
 .../cache/VMThinDiskLRURegionEntryOffHeap.java  |    69 +
 .../VMThinDiskLRURegionEntryOffHeapIntKey.java  |   329 +
 .../VMThinDiskLRURegionEntryOffHeapLongKey.java |   329 +
 ...MThinDiskLRURegionEntryOffHeapObjectKey.java |   322 +
 ...ThinDiskLRURegionEntryOffHeapStringKey1.java |   391 +
 ...ThinDiskLRURegionEntryOffHeapStringKey2.java |   432 +
 .../VMThinDiskLRURegionEntryOffHeapUUIDKey.java |   333 +
 .../internal/cache/VMThinDiskRegionEntry.java   |    41 +
 .../cache/VMThinDiskRegionEntryHeap.java        |    69 +
 .../cache/VMThinDiskRegionEntryHeapIntKey.java  |   182 +
 .../cache/VMThinDiskRegionEntryHeapLongKey.java |   182 +
 .../VMThinDiskRegionEntryHeapObjectKey.java     |   175 +
 .../VMThinDiskRegionEntryHeapStringKey1.java    |   244 +
 .../VMThinDiskRegionEntryHeapStringKey2.java    |   285 +
 .../cache/VMThinDiskRegionEntryHeapUUIDKey.java |   186 +
 .../cache/VMThinDiskRegionEntryOffHeap.java     |    69 +
 .../VMThinDiskRegionEntryOffHeapIntKey.java     |   231 +
 .../VMThinDiskRegionEntryOffHeapLongKey.java    |   231 +
 .../VMThinDiskRegionEntryOffHeapObjectKey.java  |   224 +
 .../VMThinDiskRegionEntryOffHeapStringKey1.java |   293 +
 .../VMThinDiskRegionEntryOffHeapStringKey2.java |   334 +
 .../VMThinDiskRegionEntryOffHeapUUIDKey.java    |   235 +
 .../internal/cache/VMThinLRURegionEntry.java    |    37 +
 .../cache/VMThinLRURegionEntryHeap.java         |    69 +
 .../cache/VMThinLRURegionEntryHeapIntKey.java   |   191 +
 .../cache/VMThinLRURegionEntryHeapLongKey.java  |   191 +
 .../VMThinLRURegionEntryHeapObjectKey.java      |   184 +
 .../VMThinLRURegionEntryHeapStringKey1.java     |   253 +
 .../VMThinLRURegionEntryHeapStringKey2.java     |   294 +
 .../cache/VMThinLRURegionEntryHeapUUIDKey.java  |   195 +
 .../cache/VMThinLRURegionEntryOffHeap.java      |    69 +
 .../VMThinLRURegionEntryOffHeapIntKey.java      |   240 +
 .../VMThinLRURegionEntryOffHeapLongKey.java     |   240 +
 .../VMThinLRURegionEntryOffHeapObjectKey.java   |   233 +
 .../VMThinLRURegionEntryOffHeapStringKey1.java  |   302 +
 .../VMThinLRURegionEntryOffHeapStringKey2.java  |   343 +
 .../VMThinLRURegionEntryOffHeapUUIDKey.java     |   244 +
 .../internal/cache/VMThinRegionEntry.java       |    35 +
 .../internal/cache/VMThinRegionEntryHeap.java   |    71 +
 .../cache/VMThinRegionEntryHeapIntKey.java      |   109 +
 .../cache/VMThinRegionEntryHeapLongKey.java     |   109 +
 .../cache/VMThinRegionEntryHeapObjectKey.java   |   102 +
 .../cache/VMThinRegionEntryHeapStringKey1.java  |   171 +
 .../cache/VMThinRegionEntryHeapStringKey2.java  |   212 +
 .../cache/VMThinRegionEntryHeapUUIDKey.java     |   113 +
 .../cache/VMThinRegionEntryOffHeap.java         |    71 +
 .../cache/VMThinRegionEntryOffHeapIntKey.java   |   158 +
 .../cache/VMThinRegionEntryOffHeapLongKey.java  |   158 +
 .../VMThinRegionEntryOffHeapObjectKey.java      |   151 +
 .../VMThinRegionEntryOffHeapStringKey1.java     |   220 +
 .../VMThinRegionEntryOffHeapStringKey2.java     |   261 +
 .../cache/VMThinRegionEntryOffHeapUUIDKey.java  |   162 +
 .../internal/cache/ValidatingDiskRegion.java    |   519 +
 .../internal/cache/ValueByteWrapper.java        |    70 +
 .../internal/cache/VersionTimestamp.java        |    47 +
 .../cache/VersionedStatsDiskLRURegionEntry.java |    33 +
 .../VersionedStatsDiskLRURegionEntryHeap.java   |    70 +
 ...sionedStatsDiskLRURegionEntryHeapIntKey.java |   430 +
 ...ionedStatsDiskLRURegionEntryHeapLongKey.java |   430 +
 ...nedStatsDiskLRURegionEntryHeapObjectKey.java |   423 +
 ...edStatsDiskLRURegionEntryHeapStringKey1.java |   492 +
 ...edStatsDiskLRURegionEntryHeapStringKey2.java |   533 +
 ...ionedStatsDiskLRURegionEntryHeapUUIDKey.java |   434 +
 ...VersionedStatsDiskLRURegionEntryOffHeap.java |    70 +
 ...nedStatsDiskLRURegionEntryOffHeapIntKey.java |   479 +
 ...edStatsDiskLRURegionEntryOffHeapLongKey.java |   479 +
 ...StatsDiskLRURegionEntryOffHeapObjectKey.java |   472 +
 ...tatsDiskLRURegionEntryOffHeapStringKey1.java |   541 +
 ...tatsDiskLRURegionEntryOffHeapStringKey2.java |   582 +
 ...edStatsDiskLRURegionEntryOffHeapUUIDKey.java |   483 +
 .../cache/VersionedStatsDiskRegionEntry.java    |    33 +
 .../VersionedStatsDiskRegionEntryHeap.java      |    70 +
 ...VersionedStatsDiskRegionEntryHeapIntKey.java |   333 +
 ...ersionedStatsDiskRegionEntryHeapLongKey.java |   333 +
 ...sionedStatsDiskRegionEntryHeapObjectKey.java |   326 +
 ...ionedStatsDiskRegionEntryHeapStringKey1.java |   395 +
 ...ionedStatsDiskRegionEntryHeapStringKey2.java |   436 +
 ...ersionedStatsDiskRegionEntryHeapUUIDKey.java |   337 +
 .../VersionedStatsDiskRegionEntryOffHeap.java   |    70 +
 ...sionedStatsDiskRegionEntryOffHeapIntKey.java |   382 +
 ...ionedStatsDiskRegionEntryOffHeapLongKey.java |   382 +
 ...nedStatsDiskRegionEntryOffHeapObjectKey.java |   375 +
 ...edStatsDiskRegionEntryOffHeapStringKey1.java |   444 +
 ...edStatsDiskRegionEntryOffHeapStringKey2.java |   485 +
 ...ionedStatsDiskRegionEntryOffHeapUUIDKey.java |   386 +
 .../cache/VersionedStatsLRURegionEntry.java     |    34 +
 .../cache/VersionedStatsLRURegionEntryHeap.java |    70 +
 .../VersionedStatsLRURegionEntryHeapIntKey.java |   341 +
 ...VersionedStatsLRURegionEntryHeapLongKey.java |   341 +
 ...rsionedStatsLRURegionEntryHeapObjectKey.java |   334 +
 ...sionedStatsLRURegionEntryHeapStringKey1.java |   403 +
 ...sionedStatsLRURegionEntryHeapStringKey2.java |   444 +
 ...VersionedStatsLRURegionEntryHeapUUIDKey.java |   345 +
 .../VersionedStatsLRURegionEntryOffHeap.java    |    70 +
 ...rsionedStatsLRURegionEntryOffHeapIntKey.java |   390 +
 ...sionedStatsLRURegionEntryOffHeapLongKey.java |   390 +
 ...onedStatsLRURegionEntryOffHeapObjectKey.java |   383 +
 ...nedStatsLRURegionEntryOffHeapStringKey1.java |   452 +
 ...nedStatsLRURegionEntryOffHeapStringKey2.java |   493 +
 ...sionedStatsLRURegionEntryOffHeapUUIDKey.java |   394 +
 .../cache/VersionedStatsRegionEntry.java        |    34 +
 .../cache/VersionedStatsRegionEntryHeap.java    |    69 +
 .../VersionedStatsRegionEntryHeapIntKey.java    |   260 +
 .../VersionedStatsRegionEntryHeapLongKey.java   |   260 +
 .../VersionedStatsRegionEntryHeapObjectKey.java |   253 +
 ...VersionedStatsRegionEntryHeapStringKey1.java |   322 +
 ...VersionedStatsRegionEntryHeapStringKey2.java |   363 +
 .../VersionedStatsRegionEntryHeapUUIDKey.java   |   264 +
 .../cache/VersionedStatsRegionEntryOffHeap.java |    69 +
 .../VersionedStatsRegionEntryOffHeapIntKey.java |   309 +
 ...VersionedStatsRegionEntryOffHeapLongKey.java |   309 +
 ...rsionedStatsRegionEntryOffHeapObjectKey.java |   302 +
 ...sionedStatsRegionEntryOffHeapStringKey1.java |   371 +
 ...sionedStatsRegionEntryOffHeapStringKey2.java |   412 +
 ...VersionedStatsRegionEntryOffHeapUUIDKey.java |   313 +
 .../cache/VersionedThinDiskLRURegionEntry.java  |    33 +
 .../VersionedThinDiskLRURegionEntryHeap.java    |    70 +
 ...rsionedThinDiskLRURegionEntryHeapIntKey.java |   365 +
 ...sionedThinDiskLRURegionEntryHeapLongKey.java |   365 +
 ...onedThinDiskLRURegionEntryHeapObjectKey.java |   358 +
 ...nedThinDiskLRURegionEntryHeapStringKey1.java |   427 +
 ...nedThinDiskLRURegionEntryHeapStringKey2.java |   468 +
 ...sionedThinDiskLRURegionEntryHeapUUIDKey.java |   369 +
 .../VersionedThinDiskLRURegionEntryOffHeap.java |    70 +
 ...onedThinDiskLRURegionEntryOffHeapIntKey.java |   414 +
 ...nedThinDiskLRURegionEntryOffHeapLongKey.java |   414 +
 ...dThinDiskLRURegionEntryOffHeapObjectKey.java |   407 +
 ...ThinDiskLRURegionEntryOffHeapStringKey1.java |   476 +
 ...ThinDiskLRURegionEntryOffHeapStringKey2.java |   517 +
 ...nedThinDiskLRURegionEntryOffHeapUUIDKey.java |   418 +
 .../cache/VersionedThinDiskRegionEntry.java     |    33 +
 .../cache/VersionedThinDiskRegionEntryHeap.java |    70 +
 .../VersionedThinDiskRegionEntryHeapIntKey.java |   267 +
 ...VersionedThinDiskRegionEntryHeapLongKey.java |   267 +
 ...rsionedThinDiskRegionEntryHeapObjectKey.java |   260 +
 ...sionedThinDiskRegionEntryHeapStringKey1.java |   329 +
 ...sionedThinDiskRegionEntryHeapStringKey2.java |   370 +
 ...VersionedThinDiskRegionEntryHeapUUIDKey.java |   271 +
 .../VersionedThinDiskRegionEntryOffHeap.java    |    70 +
 ...rsionedThinDiskRegionEntryOffHeapIntKey.java |   316 +
 ...sionedThinDiskRegionEntryOffHeapLongKey.java |   316 +
 ...onedThinDiskRegionEntryOffHeapObjectKey.java |   309 +
 ...nedThinDiskRegionEntryOffHeapStringKey1.java |   378 +
 ...nedThinDiskRegionEntryOffHeapStringKey2.java |   419 +
 ...sionedThinDiskRegionEntryOffHeapUUIDKey.java |   320 +
 .../cache/VersionedThinLRURegionEntry.java      |    38 +
 .../cache/VersionedThinLRURegionEntryHeap.java  |    69 +
 .../VersionedThinLRURegionEntryHeapIntKey.java  |   276 +
 .../VersionedThinLRURegionEntryHeapLongKey.java |   276 +
 ...ersionedThinLRURegionEntryHeapObjectKey.java |   269 +
 ...rsionedThinLRURegionEntryHeapStringKey1.java |   338 +
 ...rsionedThinLRURegionEntryHeapStringKey2.java |   379 +
 .../VersionedThinLRURegionEntryHeapUUIDKey.java |   280 +
 .../VersionedThinLRURegionEntryOffHeap.java     |    69 +
 ...ersionedThinLRURegionEntryOffHeapIntKey.java |   325 +
 ...rsionedThinLRURegionEntryOffHeapLongKey.java |   325 +
 ...ionedThinLRURegionEntryOffHeapObjectKey.java |   318 +
 ...onedThinLRURegionEntryOffHeapStringKey1.java |   387 +
 ...onedThinLRURegionEntryOffHeapStringKey2.java |   428 +
 ...rsionedThinLRURegionEntryOffHeapUUIDKey.java |   329 +
 .../cache/VersionedThinRegionEntry.java         |    33 +
 .../cache/VersionedThinRegionEntryHeap.java     |    69 +
 .../VersionedThinRegionEntryHeapIntKey.java     |   194 +
 .../VersionedThinRegionEntryHeapLongKey.java    |   194 +
 .../VersionedThinRegionEntryHeapObjectKey.java  |   187 +
 .../VersionedThinRegionEntryHeapStringKey1.java |   256 +
 .../VersionedThinRegionEntryHeapStringKey2.java |   297 +
 .../VersionedThinRegionEntryHeapUUIDKey.java    |   198 +
 .../cache/VersionedThinRegionEntryOffHeap.java  |    69 +
 .../VersionedThinRegionEntryOffHeapIntKey.java  |   243 +
 .../VersionedThinRegionEntryOffHeapLongKey.java |   243 +
 ...ersionedThinRegionEntryOffHeapObjectKey.java |   236 +
 ...rsionedThinRegionEntryOffHeapStringKey1.java |   305 +
 ...rsionedThinRegionEntryOffHeapStringKey2.java |   346 +
 .../VersionedThinRegionEntryOffHeapUUIDKey.java |   247 +
 .../internal/cache/WrappedCallbackArgument.java |   105 +
 .../cache/WrappedRegionMembershipListener.java  |   200 +
 .../CompressedCachedDeserializable.java         |   197 +
 .../SnappyCompressedCachedDeserializable.java   |    83 +
 .../internal/cache/control/FilterByPath.java    |    66 +
 .../cache/control/HeapMemoryMonitor.java        |   881 +
 .../cache/control/InternalResourceManager.java  |   620 +
 .../internal/cache/control/MemoryEvent.java     |    93 +
 .../cache/control/MemoryThresholds.java         |   282 +
 .../cache/control/OffHeapMemoryMonitor.java     |   562 +
 .../control/PartitionRebalanceDetailsImpl.java  |   159 +
 .../cache/control/RebalanceOperationImpl.java   |   263 +
 .../cache/control/RebalanceResultsImpl.java     |   104 +
 .../internal/cache/control/RegionFilter.java    |    27 +
 .../internal/cache/control/ResourceAdvisor.java |   475 +
 .../internal/cache/control/ResourceEvent.java   |    33 +
 .../cache/control/ResourceListener.java         |    33 +
 .../cache/control/ResourceManagerStats.java     |   607 +
 .../internal/cache/control/ResourceMonitor.java |    54 +
 .../gemfire/internal/cache/delta/Delta.java     |    57 +
 .../cache/doc-files/BucketAdvisor-state.png     |   Bin 0 -> 39148 bytes
 .../internal/cache/doc-files/eventmatrix.xls    |   Bin 0 -> 24576 bytes
 .../cache/doc-files/extensible-hashing.fig      |   159 +
 .../cache/doc-files/extensible-hashing.gif      |   Bin 0 -> 6605 bytes
 .../cache/doc-files/jcache-get-flow.fig         |   349 +
 .../cache/doc-files/jcache-get-flow.pdf         |   Bin 0 -> 7519 bytes
 .../cache/doc-files/jcache-put-flow.fig         |   359 +
 .../cache/doc-files/jcache-put-flow.pdf         |   Bin 0 -> 7667 bytes
 .../doc-files/jcache-update-message-flow.fig    |   334 +
 .../doc-files/jcache-update-message-flow.pdf    |   Bin 0 -> 5937 bytes
 .../cache/doc-files/partitioned-regions.fig     |   255 +
 .../cache/doc-files/partitioned-regions.gif     |   Bin 0 -> 9273 bytes
 .../internal/cache/doc-files/properties.html    |  3937 ++++
 .../cache/doc-files/region-implementation.fig   |   262 +
 .../cache/execute/AbstractExecution.java        |   635 +
 .../cache/execute/BucketMovedException.java     |    57 +
 .../cache/execute/DefaultResultCollector.java   |   108 +
 .../DistributedRegionFunctionExecutor.java      |   444 +
 .../DistributedRegionFunctionResultSender.java  |   263 +
 .../DistributedRegionFunctionResultWaiter.java  |    60 +
 .../cache/execute/FunctionContextImpl.java      |   107 +
 .../execute/FunctionExecutionNodePruner.java    |   260 +
 .../cache/execute/FunctionRemoteContext.java    |   131 +
 .../cache/execute/FunctionServiceStats.java     |   440 +
 .../internal/cache/execute/FunctionStats.java   |   536 +
 .../FunctionStreamingResultCollector.java       |   636 +
 .../cache/execute/InternalExecution.java        |   112 +
 .../execute/InternalFunctionException.java      |    78 +
 ...ternalFunctionInvocationTargetException.java |    96 +
 .../cache/execute/InternalFunctionService.java  |   199 +
 .../execute/InternalRegionFunctionContext.java  |    84 +
 .../cache/execute/InternalResultSender.java     |    35 +
 .../cache/execute/LocalResultCollector.java     |    43 +
 .../cache/execute/LocalResultCollectorImpl.java |   212 +
 .../cache/execute/MemberFunctionExecutor.java   |   283 +
 .../execute/MemberFunctionResultSender.java     |   278 +
 .../execute/MemberFunctionResultWaiter.java     |    51 +
 .../cache/execute/MemberMappedArgument.java     |    74 +
 .../execute/MultiRegionFunctionContext.java     |    50 +
 .../execute/MultiRegionFunctionContextImpl.java |    56 +
 .../execute/MultiRegionFunctionExecutor.java    |   416 +
 .../MultiRegionFunctionResultWaiter.java        |    61 +
 .../internal/cache/execute/NoResult.java        |    79 +
 .../PartitionedRegionFunctionExecutor.java      |   378 +
 .../PartitionedRegionFunctionResultSender.java  |   340 +
 .../PartitionedRegionFunctionResultWaiter.java  |   125 +
 .../execute/RegionFunctionContextImpl.java      |   160 +
 .../cache/execute/ServerFunctionExecutor.java   |   428 +
 .../execute/ServerRegionFunctionExecutor.java   |   501 +
 .../ServerToClientFunctionResultSender.java     |   319 +
 .../ServerToClientFunctionResultSender65.java   |   289 +
 .../execute/StreamingFunctionOperation.java     |   127 +
 .../cache/execute/util/CommitFunction.java      |   142 +
 .../util/FindRestEnabledServersFunction.java    |    83 +
 .../execute/util/NestedTransactionFunction.java |   117 +
 .../cache/execute/util/RollbackFunction.java    |   137 +
 .../internal/cache/extension/Extensible.java    |    43 +
 .../internal/cache/extension/Extension.java     |    53 +
 .../cache/extension/ExtensionPoint.java         |    65 +
 .../cache/extension/SimpleExtensionPoint.java   |    85 +
 .../internal/cache/ha/HAContainerMap.java       |   203 +
 .../internal/cache/ha/HAContainerRegion.java    |   170 +
 .../internal/cache/ha/HAContainerWrapper.java   |    47 +
 .../internal/cache/ha/HARegionQueue.java        |  4226 ++++
 .../cache/ha/HARegionQueueAttributes.java       |   109 +
 .../internal/cache/ha/HARegionQueueStats.java   |   411 +
 .../internal/cache/ha/QueueRemovalMessage.java  |   240 +
 .../internal/cache/ha/ThreadIdentifier.java     |   330 +
 .../cache/locks/TXLessorDepartureHandler.java   |   102 +
 .../internal/cache/locks/TXLockBatch.java       |   148 +
 .../gemfire/internal/cache/locks/TXLockId.java  |    35 +
 .../internal/cache/locks/TXLockIdImpl.java      |   140 +
 .../internal/cache/locks/TXLockService.java     |   161 +
 .../internal/cache/locks/TXLockServiceImpl.java |   278 +
 .../internal/cache/locks/TXLockToken.java       |    95 +
 .../locks/TXLockUpdateParticipantsMessage.java  |   186 +
 .../locks/TXOriginatorRecoveryProcessor.java    |   312 +
 .../locks/TXRecoverGrantorMessageProcessor.java |   157 +
 .../cache/locks/TXRegionLockRequest.java        |    39 +
 .../gemfire/internal/cache/lru/EnableLRU.java   |   122 +
 .../gemfire/internal/cache/lru/HeapEvictor.java |   492 +
 .../cache/lru/HeapLRUCapacityController.java    |   335 +
 .../internal/cache/lru/HeapLRUStatistics.java   |    68 +
 .../internal/cache/lru/LRUAlgorithm.java        |   352 +
 .../cache/lru/LRUCapacityController.java        |   356 +
 .../internal/cache/lru/LRUClockNode.java        |    45 +
 .../gemfire/internal/cache/lru/LRUEntry.java    |    32 +
 .../internal/cache/lru/LRUMapCallbacks.java     |    61 +
 .../internal/cache/lru/LRUStatistics.java       |   210 +
 .../cache/lru/MemLRUCapacityController.java     |   545 +
 .../internal/cache/lru/NewLIFOClockHand.java    |    98 +
 .../internal/cache/lru/NewLRUClockHand.java     |   468 +
 .../internal/cache/lru/OffHeapEvictor.java      |    97 +
 .../gemfire/internal/cache/lru/Sizeable.java    |    63 +
 .../operations/ContainsKeyOperationContext.java |    52 +
 .../gemfire/internal/cache/package.html         |   241 +
 .../AllBucketProfilesUpdateMessage.java         |   170 +
 .../partitioned/BecomePrimaryBucketMessage.java |   332 +
 .../internal/cache/partitioned/Bucket.java      |    80 +
 .../cache/partitioned/BucketBackupMessage.java  |   137 +
 .../cache/partitioned/BucketCountLoadProbe.java |    75 +
 .../partitioned/BucketProfileUpdateMessage.java |   192 +
 .../cache/partitioned/BucketSizeMessage.java    |   286 +
 .../partitioned/ContainsKeyValueMessage.java    |   348 +
 .../cache/partitioned/CreateBucketMessage.java  |   371 +
 .../partitioned/CreateMissingBucketsTask.java   |    70 +
 .../partitioned/DeposePrimaryBucketMessage.java |   285 +
 .../cache/partitioned/DestroyMessage.java       |   621 +
 .../DestroyRegionOnDataStoreMessage.java        |   118 +
 .../partitioned/DumpAllPRConfigMessage.java     |    77 +
 .../cache/partitioned/DumpB2NRegion.java        |   343 +
 .../cache/partitioned/DumpBucketsMessage.java   |   111 +
 .../partitioned/EndBucketCreationMessage.java   |   149 +
 .../partitioned/FetchBulkEntriesMessage.java    |   670 +
 .../cache/partitioned/FetchEntriesMessage.java  |   659 +
 .../cache/partitioned/FetchEntryMessage.java    |   431 +
 .../cache/partitioned/FetchKeysMessage.java     |   574 +
 .../FetchPartitionDetailsMessage.java           |   397 +
 .../cache/partitioned/FlushMessage.java         |   154 +
 .../internal/cache/partitioned/GetMessage.java  |   669 +
 .../partitioned/IdentityRequestMessage.java     |   342 +
 .../partitioned/IdentityUpdateMessage.java      |   167 +
 .../cache/partitioned/IndexCreationMsg.java     |   687 +
 .../cache/partitioned/InterestEventMessage.java |   284 +
 .../cache/partitioned/InternalPRInfo.java       |    44 +
 .../partitioned/InternalPartitionDetails.java   |    45 +
 .../cache/partitioned/InvalidateMessage.java    |   409 +
 .../internal/cache/partitioned/LoadProbe.java   |    33 +
 .../internal/cache/partitioned/LockObject.java  |    42 +
 .../partitioned/ManageBackupBucketMessage.java  |   437 +
 .../cache/partitioned/ManageBucketMessage.java  |   419 +
 .../cache/partitioned/MoveBucketMessage.java    |   324 +
 .../cache/partitioned/OfflineMemberDetails.java |    48 +
 .../partitioned/OfflineMemberDetailsImpl.java   |    79 +
 .../cache/partitioned/PREntriesIterator.java    |    44 +
 .../PRFunctionStreamingResultCollector.java     |   436 +
 .../internal/cache/partitioned/PRLoad.java      |   154 +
 .../PRLocallyDestroyedException.java            |    40 +
 .../cache/partitioned/PRSanityCheckMessage.java |   164 +
 .../cache/partitioned/PRTombstoneMessage.java   |   182 +
 .../PRUpdateEntryVersionMessage.java            |   295 +
 .../partitioned/PartitionMemberInfoImpl.java    |   167 +
 .../cache/partitioned/PartitionMessage.java     |   849 +
 .../PartitionMessageWithDirectReply.java        |   141 +
 .../partitioned/PartitionRegionInfoImpl.java    |   139 +
 ...rtitionedRegionFunctionStreamingMessage.java |   205 +
 .../partitioned/PartitionedRegionObserver.java  |    44 +
 .../PartitionedRegionObserverAdapter.java       |    47 +
 .../PartitionedRegionObserverHolder.java        |    63 +
 .../PartitionedRegionRebalanceOp.java           |   913 +
 .../partitioned/PrimaryRequestMessage.java      |   238 +
 .../cache/partitioned/PutAllPRMessage.java      |   912 +
 .../internal/cache/partitioned/PutMessage.java  |  1380 ++
 .../cache/partitioned/QueryMessage.java         |   326 +
 .../cache/partitioned/RecoveryRunnable.java     |    86 +
 .../RedundancyAlreadyMetException.java          |    42 +
 .../cache/partitioned/RedundancyLogger.java     |   395 +
 .../cache/partitioned/RegionAdvisor.java        |  1965 ++
 .../partitioned/RemoteFetchKeysMessage.java     |   489 +
 .../cache/partitioned/RemoteSizeMessage.java    |   363 +
 .../cache/partitioned/RemoveAllPRMessage.java   |   823 +
 .../cache/partitioned/RemoveBucketMessage.java  |   323 +
 .../cache/partitioned/RemoveIndexesMessage.java |   545 +
 .../internal/cache/partitioned/SizeMessage.java |   379 +
 .../cache/partitioned/SizedBasedLoadProbe.java  |    83 +
 .../StreamingPartitionOperation.java            |   471 +
 .../partitioned/rebalance/BucketOperator.java   |   101 +
 .../rebalance/CompositeDirector.java            |   127 +
 .../rebalance/ExplicitMoveDirector.java         |    99 +
 .../partitioned/rebalance/FPRDirector.java      |    79 +
 .../partitioned/rebalance/MoveBuckets.java      |    63 +
 .../partitioned/rebalance/MovePrimaries.java    |    63 +
 .../partitioned/rebalance/MovePrimariesFPR.java |   105 +
 .../rebalance/ParallelBucketOperator.java       |   167 +
 .../rebalance/PartitionedRegionLoadModel.java   |  1640 ++
 .../rebalance/PercentageMoveDirector.java       |   165 +
 .../rebalance/RebalanceDirector.java            |    79 +
 .../rebalance/RebalanceDirectorAdapter.java     |    39 +
 .../rebalance/RemoveOverRedundancy.java         |    82 +
 .../rebalance/SatisfyRedundancy.java            |    92 +
 .../rebalance/SatisfyRedundancyFPR.java         |    90 +
 .../rebalance/SimulatedBucketOperator.java      |    55 +
 .../cache/persistence/BackupInspector.java      |   345 +
 .../cache/persistence/BackupManager.java        |   377 +
 .../cache/persistence/BytesAndBits.java         |    51 +
 .../cache/persistence/CanonicalIdHolder.java    |   101 +
 .../CreatePersistentRegionProcessor.java        |    58 +
 .../cache/persistence/DiskExceptionHandler.java |    38 +
 .../persistence/DiskInitFileInterpreter.java    |   148 +
 .../cache/persistence/DiskInitFileParser.java   |   652 +
 .../cache/persistence/DiskRecoveryStore.java    |    64 +
 .../cache/persistence/DiskRegionView.java       |   109 +
 .../cache/persistence/DiskStoreFilter.java      |    57 +
 .../internal/cache/persistence/DiskStoreID.java |   167 +
 .../persistence/MembershipFlushRequest.java     |   141 +
 .../persistence/MembershipViewRequest.java      |   254 +
 .../internal/cache/persistence/OplogType.java   |    32 +
 .../cache/persistence/PRPersistentConfig.java   |    74 +
 .../cache/persistence/PersistenceAdvisor.java   |   190 +
 .../persistence/PersistenceAdvisorImpl.java     |  1300 ++
 .../persistence/PersistenceObserverHolder.java  |   102 +
 .../cache/persistence/PersistentMemberID.java   |   171 +
 .../persistence/PersistentMemberManager.java    |   270 +
 .../persistence/PersistentMemberPattern.java    |   229 +
 .../persistence/PersistentMemberState.java      |    41 +
 .../cache/persistence/PersistentMemberView.java |   150 +
 .../persistence/PersistentMembershipView.java   |   112 +
 .../persistence/PersistentStateListener.java    |    38 +
 .../PersistentStateQueryMessage.java            |   308 +
 .../PersistentStateQueryResults.java            |    57 +
 .../PrepareNewPersistentMemberMessage.java      |   168 +
 .../RemovePersistentMemberMessage.java          |   182 +
 .../cache/persistence/RestoreScript.java        |   223 +
 .../persistence/UninterruptibleFileChannel.java |    29 +
 .../UninterruptibleRandomAccessFile.java        |   251 +
 .../persistence/query/CloseableIterator.java    |    33 +
 .../persistence/query/IdentityExtractor.java    |    26 +
 .../cache/persistence/query/IndexMap.java       |   187 +
 .../cache/persistence/query/ResultBag.java      |    60 +
 .../cache/persistence/query/ResultList.java     |    58 +
 .../cache/persistence/query/ResultMap.java      |   124 +
 .../cache/persistence/query/ResultSet.java      |    60 +
 .../persistence/query/SortKeyExtractor.java     |    21 +
 .../query/TemporaryResultSetFactory.java        |    79 +
 .../persistence/query/mock/ByteComparator.java  |    86 +
 .../mock/CachedDeserializableComparator.java    |    54 +
 .../persistence/query/mock/IndexMapImpl.java    |   278 +
 .../persistence/query/mock/ItrAdapter.java      |    62 +
 .../query/mock/NaturalComparator.java           |    33 +
 .../cache/persistence/query/mock/Pair.java      |    72 +
 .../persistence/query/mock/PairComparator.java  |    46 +
 .../persistence/query/mock/ResultListImpl.java  |    55 +
 .../query/mock/ReverseComparator.java           |    40 +
 .../query/mock/SortedResultBagImpl.java         |    64 +
 .../query/mock/SortedResultMapImpl.java         |   184 +
 .../query/mock/SortedResultSetImpl.java         |    52 +
 .../persistence/soplog/ByteComparator.java      |    56 +
 .../persistence/soplog/CursorIterator.java      |    82 +
 .../soplog/DelegatingSerializedComparator.java  |    38 +
 .../soplog/HFileStoreStatistics.java            |   205 +
 .../persistence/soplog/KeyValueIterator.java    |    43 +
 .../soplog/SortedOplogStatistics.java           |   505 +
 .../cache/persistence/soplog/SortedReader.java  |   256 +
 .../persistence/soplog/TrackedReference.java    |   154 +
 .../region/entry/RegionEntryFactoryBuilder.java |   103 +
 .../snapshot/CacheSnapshotServiceImpl.java      |   130 +
 .../internal/cache/snapshot/ClientExporter.java |   229 +
 .../cache/snapshot/ExportedRegistry.java        |   104 +
 .../internal/cache/snapshot/FlowController.java |   350 +
 .../internal/cache/snapshot/GFSnapshot.java     |   417 +
 .../internal/cache/snapshot/LocalExporter.java  |    58 +
 .../snapshot/RegionSnapshotServiceImpl.java     |   565 +
 .../cache/snapshot/SnapshotFileMapper.java      |    93 +
 .../cache/snapshot/SnapshotOptionsImpl.java     |   124 +
 .../internal/cache/snapshot/SnapshotPacket.java |   270 +
 .../cache/snapshot/WindowedExporter.java        |   401 +
 .../gemfire/internal/cache/tier/Acceptor.java   |   115 +
 .../internal/cache/tier/BatchException.java     |    72 +
 .../internal/cache/tier/CachedRegionHelper.java |   109 +
 .../internal/cache/tier/ClientHandShake.java    |    46 +
 .../gemfire/internal/cache/tier/Command.java    |    36 +
 .../internal/cache/tier/ConnectionProxy.java    |    35 +
 .../internal/cache/tier/InterestType.java       |    64 +
 .../cache/tier/InternalClientMembership.java    |   626 +
 .../internal/cache/tier/MessageType.java        |   569 +
 .../gemfire/internal/cache/tier/package.html    |    23 +
 .../cache/tier/sockets/AcceptorImpl.java        |  1872 ++
 .../cache/tier/sockets/BaseCommand.java         |  1625 ++
 .../cache/tier/sockets/BaseCommandQuery.java    |   578 +
 .../cache/tier/sockets/CacheClientNotifier.java |  2743 +++
 .../tier/sockets/CacheClientNotifierStats.java  |   295 +
 .../cache/tier/sockets/CacheClientProxy.java    |  3110 +++
 .../tier/sockets/CacheClientProxyStats.java     |   405 +
 .../cache/tier/sockets/CacheClientUpdater.java  |  2007 ++
 .../cache/tier/sockets/CacheServerHelper.java   |   187 +
 .../cache/tier/sockets/CacheServerStats.java    |  1148 ++
 .../cache/tier/sockets/ChunkedMessage.java      |   376 +
 .../tier/sockets/ClientBlacklistProcessor.java  |   174 +
 .../sockets/ClientDataSerializerMessage.java    |   256 +
 .../cache/tier/sockets/ClientHealthMonitor.java |   972 +
 .../tier/sockets/ClientInstantiatorMessage.java |   230 +
 .../tier/sockets/ClientInterestMessageImpl.java |   274 +
 .../tier/sockets/ClientMarkerMessageImpl.java   |   127 +
 .../cache/tier/sockets/ClientMessage.java       |    46 +
 .../tier/sockets/ClientPingMessageImpl.java     |   111 +
 .../tier/sockets/ClientProxyMembershipID.java   |   623 +
 .../tier/sockets/ClientTombstoneMessage.java    |   188 +
 .../cache/tier/sockets/ClientUpdateMessage.java |   188 +
 .../tier/sockets/ClientUpdateMessageImpl.java   |  1725 ++
 .../cache/tier/sockets/ClientUserAuths.java     |   201 +
 .../cache/tier/sockets/CommandInitializer.java  |   342 +
 .../cache/tier/sockets/ConnectionListener.java  |    55 +
 .../tier/sockets/ConnectionListenerAdapter.java |    38 +
 .../cache/tier/sockets/HAEventWrapper.java      |   435 +
 .../internal/cache/tier/sockets/HandShake.java  |  1934 ++
 .../tier/sockets/InterestResultPolicyImpl.java  |    59 +
 .../internal/cache/tier/sockets/Message.java    |  1190 ++
 .../cache/tier/sockets/MessageStats.java        |    29 +
 .../cache/tier/sockets/ObjectPartList.java      |   273 +
 .../cache/tier/sockets/ObjectPartList651.java   |   166 +
 .../internal/cache/tier/sockets/Part.java       |   457 +
 .../RemoveClientFromBlacklistMessage.java       |   114 +
 .../tier/sockets/SerializedObjectPartList.java  |   132 +
 .../cache/tier/sockets/ServerConnection.java    |  2077 ++
 .../tier/sockets/ServerHandShakeProcessor.java  |   464 +
 .../cache/tier/sockets/ServerQueueStatus.java   |   132 +
 .../tier/sockets/ServerResponseMatrix.java      |   141 +
 .../tier/sockets/UnregisterAllInterest.java     |    50 +
 .../cache/tier/sockets/UserAuthAttributes.java  |    81 +
 .../cache/tier/sockets/VersionedObjectList.java |   753 +
 .../cache/tier/sockets/command/AddPdxEnum.java  |    73 +
 .../cache/tier/sockets/command/AddPdxType.java  |    78 +
 .../cache/tier/sockets/command/ClearRegion.java |   150 +
 .../cache/tier/sockets/command/ClientReady.java |    76 +
 .../tier/sockets/command/CloseConnection.java   |    77 +
 .../tier/sockets/command/CommitCommand.java     |   142 +
 .../cache/tier/sockets/command/ContainsKey.java |   145 +
 .../tier/sockets/command/ContainsKey66.java     |   162 +
 .../tier/sockets/command/CreateRegion.java      |   137 +
 .../cache/tier/sockets/command/Default.java     |    52 +
 .../cache/tier/sockets/command/Destroy.java     |   219 +
 .../cache/tier/sockets/command/Destroy65.java   |   340 +
 .../cache/tier/sockets/command/Destroy70.java   |   118 +
 .../tier/sockets/command/DestroyRegion.java     |   175 +
 .../tier/sockets/command/ExecuteFunction.java   |   242 +
 .../tier/sockets/command/ExecuteFunction65.java |   273 +
 .../tier/sockets/command/ExecuteFunction66.java |   431 +
 .../tier/sockets/command/ExecuteFunction70.java |   144 +
 .../sockets/command/ExecuteRegionFunction.java  |   270 +
 .../command/ExecuteRegionFunction61.java        |   292 +
 .../command/ExecuteRegionFunction65.java        |   400 +
 .../command/ExecuteRegionFunction66.java        |   436 +
 .../command/ExecuteRegionFunctionSingleHop.java |   420 +
 .../sockets/command/GatewayReceiverCommand.java |   805 +
 .../cache/tier/sockets/command/Get70.java       |   531 +
 .../cache/tier/sockets/command/GetAll.java      |   260 +
 .../cache/tier/sockets/command/GetAll651.java   |   284 +
 .../cache/tier/sockets/command/GetAll70.java    |   293 +
 .../cache/tier/sockets/command/GetAllForRI.java |    52 +
 .../sockets/command/GetAllWithCallback.java     |   285 +
 .../command/GetClientPRMetadataCommand.java     |   114 +
 .../command/GetClientPRMetadataCommand66.java   |   105 +
 .../GetClientPartitionAttributesCommand.java    |   141 +
 .../GetClientPartitionAttributesCommand66.java  |   158 +
 .../cache/tier/sockets/command/GetEntry70.java  |    77 +
 .../tier/sockets/command/GetEntryCommand.java   |    64 +
 .../sockets/command/GetFunctionAttribute.java   |    81 +
 .../tier/sockets/command/GetPDXEnumById.java    |    73 +
 .../tier/sockets/command/GetPDXIdForEnum.java   |    74 +
 .../tier/sockets/command/GetPDXIdForType.java   |    75 +
 .../tier/sockets/command/GetPDXTypeById.java    |    73 +
 .../tier/sockets/command/GetPdxEnums70.java     |    68 +
 .../tier/sockets/command/GetPdxTypes70.java     |    67 +
 .../cache/tier/sockets/command/Invalid.java     |    49 +
 .../cache/tier/sockets/command/Invalidate.java  |   249 +
 .../tier/sockets/command/Invalidate70.java      |   107 +
 .../cache/tier/sockets/command/KeySet.java      |   193 +
 .../cache/tier/sockets/command/MakePrimary.java |    66 +
 .../tier/sockets/command/ManagementCommand.java |    39 +
 .../cache/tier/sockets/command/PeriodicAck.java |    79 +
 .../cache/tier/sockets/command/Ping.java        |    93 +
 .../cache/tier/sockets/command/Put.java         |   261 +
 .../cache/tier/sockets/command/Put61.java       |   319 +
 .../cache/tier/sockets/command/Put65.java       |   539 +
 .../cache/tier/sockets/command/Put70.java       |   126 +
 .../cache/tier/sockets/command/PutAll.java      |   268 +
 .../cache/tier/sockets/command/PutAll70.java    |   380 +
 .../cache/tier/sockets/command/PutAll80.java    |   469 +
 .../sockets/command/PutAllWithCallback.java     |    53 +
 .../sockets/command/PutUserCredentials.java     |    81 +
 .../cache/tier/sockets/command/Query.java       |   107 +
 .../cache/tier/sockets/command/Query651.java    |   137 +
 .../command/RegisterDataSerializers.java        |   114 +
 .../sockets/command/RegisterInstantiators.java  |   148 +
 .../tier/sockets/command/RegisterInterest.java  |   245 +
 .../sockets/command/RegisterInterest61.java     |   282 +
 .../sockets/command/RegisterInterestList.java   |   253 +
 .../sockets/command/RegisterInterestList61.java |   265 +
 .../sockets/command/RegisterInterestList66.java |   267 +
 .../cache/tier/sockets/command/RemoveAll.java   |   404 +
 .../tier/sockets/command/RemoveUserAuth.java    |    84 +
 .../cache/tier/sockets/command/Request.java     |   278 +
 .../tier/sockets/command/RequestEventValue.java |   176 +
 .../tier/sockets/command/RollbackCommand.java   |    90 +
 .../cache/tier/sockets/command/Size.java        |   167 +
 .../tier/sockets/command/TXFailoverCommand.java |   132 +
 .../command/TXSynchronizationCommand.java       |   209 +
 .../sockets/command/UnregisterInterest.java     |   152 +
 .../sockets/command/UnregisterInterestList.java |   171 +
 .../command/UpdateClientNotification.java       |    79 +
 .../doc-files/communication-architecture.fig    |   158 +
 .../doc-files/communication-architecture.gif    |   Bin 0 -> 5485 bytes
 .../internal/cache/tier/sockets/package.html    |    23 +
 .../cache/tx/AbstractPeerTXRegionStub.java      |    56 +
 .../internal/cache/tx/ClientTXRegionStub.java   |   158 +
 .../internal/cache/tx/ClientTXStateStub.java    |   292 +
 .../cache/tx/DistClientTXStateStub.java         |   140 +
 .../internal/cache/tx/DistTxEntryEvent.java     |   288 +
 .../internal/cache/tx/DistTxKeyInfo.java        |    54 +
 .../cache/tx/DistributedTXRegionStub.java       |   255 +
 .../cache/tx/PartitionedTXRegionStub.java       |   535 +
 .../gemfire/internal/cache/tx/TXRegionStub.java |    65 +
 .../cache/tx/TransactionalOperation.java        |   111 +
 .../cache/versions/CompactVersionHolder.java    |   105 +
 .../ConcurrentCacheModificationException.java   |    41 +
 .../cache/versions/DiskRegionVersionVector.java |   103 +
 .../internal/cache/versions/DiskVersionTag.java |    83 +
 .../internal/cache/versions/RVVException.java   |   207 +
 .../internal/cache/versions/RVVExceptionB.java  |   296 +
 .../internal/cache/versions/RVVExceptionT.java  |   283 +
 .../cache/versions/RegionVersionHolder.java     |   789 +
 .../cache/versions/RegionVersionVector.java     |  1531 ++
 .../cache/versions/VMRegionVersionVector.java   |   101 +
 .../internal/cache/versions/VMVersionTag.java   |    74 +
 .../internal/cache/versions/VersionHolder.java  |    57 +
 .../internal/cache/versions/VersionSource.java  |    43 +
 .../internal/cache/versions/VersionStamp.java   |    93 +
 .../internal/cache/versions/VersionTag.java     |   548 +
 .../internal/cache/vmotion/VMotionObserver.java |    44 +
 .../cache/vmotion/VMotionObserverAdapter.java   |    49 +
 .../cache/vmotion/VMotionObserverHolder.java    |    57 +
 .../cache/wan/AbstractGatewaySender.java        |  1331 ++
 .../AbstractGatewaySenderEventProcessor.java    |  1353 ++
 .../AsyncEventQueueConfigurationException.java  |    73 +
 .../internal/cache/wan/BatchException70.java    |   108 +
 .../cache/wan/DistributedSystemListener.java    |    32 +
 .../cache/wan/GatewayEventFilterImpl.java       |    45 +
 .../cache/wan/GatewayReceiverException.java     |    69 +
 .../cache/wan/GatewayReceiverStats.java         |   278 +
 .../cache/wan/GatewaySenderAdvisor.java         |   747 +
 .../cache/wan/GatewaySenderAttributes.java      |   200 +
 .../GatewaySenderConfigurationException.java    |    49 +
 .../wan/GatewaySenderEventCallbackArgument.java |   201 +
 .../GatewaySenderEventCallbackDispatcher.java   |   203 +
 .../cache/wan/GatewaySenderEventDispatcher.java |    35 +
 .../cache/wan/GatewaySenderEventImpl.java       |  1286 ++
 .../cache/wan/GatewaySenderException.java       |    63 +
 .../internal/cache/wan/GatewaySenderStats.java  |   744 +
 .../cache/wan/InternalGatewaySenderFactory.java |    38 +
 .../cache/wan/TransportFilterServerSocket.java  |    40 +
 .../cache/wan/TransportFilterSocket.java        |    78 +
 .../cache/wan/TransportFilterSocketFactory.java |    41 +
 .../internal/cache/wan/WANServiceProvider.java  |    76 +
 .../BucketRegionQueueUnavailableException.java  |    35 +
 ...rentParallelGatewaySenderEventProcessor.java |   376 +
 .../ConcurrentParallelGatewaySenderQueue.java   |   229 +
 .../ParallelGatewaySenderEventProcessor.java    |   245 +
 .../parallel/ParallelGatewaySenderQueue.java    |  1886 ++
 .../ParallelQueueBatchRemovalMessage.java       |   279 +
 .../parallel/ParallelQueueRemovalMessage.java   |   282 +
 .../cache/wan/parallel/RREventIDResolver.java   |    54 +
 .../cache/wan/serial/BatchDestroyOperation.java |   243 +
 ...urrentSerialGatewaySenderEventProcessor.java |   386 +
 .../SerialGatewaySenderEventProcessor.java      |   848 +
 .../wan/serial/SerialGatewaySenderQueue.java    |  1300 ++
 .../serial/SerialSecondaryGatewayListener.java  |   100 +
 .../internal/cache/wan/spi/WANFactory.java      |    37 +
 .../cache/xmlcache/AbstractXmlParser.java       |    95 +
 .../cache/xmlcache/AsyncEventQueueCreation.java |   222 +
 .../cache/xmlcache/BindingCreation.java         |    61 +
 .../internal/cache/xmlcache/CacheCreation.java  |  1690 ++
 .../cache/xmlcache/CacheServerCreation.java     |   257 +
 .../CacheTransactionManagerCreation.java        |   145 +
 .../internal/cache/xmlcache/CacheXml.java       |  1056 +
 .../cache/xmlcache/CacheXmlGenerator.java       |  2850 +++
 .../internal/cache/xmlcache/CacheXmlParser.java |  3795 ++++
 .../xmlcache/CacheXmlPropertyResolver.java      |   147 +
 .../CacheXmlPropertyResolverHelper.java         |   152 +
 .../cache/xmlcache/CacheXmlVersion.java         |   132 +
 .../cache/xmlcache/ClientCacheCreation.java     |   306 +
 .../cache/xmlcache/ClientHaQueueCreation.java   |   100 +
 .../internal/cache/xmlcache/Declarable2.java    |    39 +
 .../cache/xmlcache/DefaultEntityResolver2.java  |    75 +
 .../xmlcache/DiskStoreAttributesCreation.java   |   314 +
 .../cache/xmlcache/FunctionServiceCreation.java |    53 +
 .../cache/xmlcache/GatewayReceiverCreation.java |   190 +
 .../cache/xmlcache/GeodeEntityResolver.java     |    58 +
 .../cache/xmlcache/IndexCreationData.java       |   144 +
 .../ParallelAsyncEventQueueCreation.java        |   119 +
 .../xmlcache/ParallelGatewaySenderCreation.java |   123 +
 .../cache/xmlcache/PivotalEntityResolver.java   |    58 +
 .../cache/xmlcache/PropertyResolver.java        |    57 +
 .../xmlcache/RegionAttributesCreation.java      |  1671 ++
 .../internal/cache/xmlcache/RegionCreation.java |   969 +
 .../cache/xmlcache/ResourceManagerCreation.java |   215 +
 .../xmlcache/SerialAsyncEventQueueCreation.java |   115 +
 .../xmlcache/SerialGatewaySenderCreation.java   |   115 +
 .../cache/xmlcache/SerializerCreation.java      |   108 +
 .../internal/cache/xmlcache/XmlGenerator.java   |    62 +
 .../cache/xmlcache/XmlGeneratorUtils.java       |   151 +
 .../internal/cache/xmlcache/XmlParser.java      |    58 +
 .../internal/cache/xmlcache/package.html        |    32 +
 .../gemfire/internal/concurrent/AL.java         |   127 +
 .../internal/concurrent/AtomicLong5.java        |    48 +
 .../gemfire/internal/concurrent/Atomics.java    |    67 +
 .../concurrent/CompactConcurrentHashSet2.java   |  2514 +++
 .../internal/concurrent/ConcurrentHashSet.java  |    89 +
 .../gemfire/internal/concurrent/LI.java         |    95 +
 .../internal/concurrent/MapCallback.java        |   269 +
 .../internal/concurrent/MapCallbackAdapter.java |   140 +
 .../gemfire/internal/concurrent/MapResult.java  |    43 +
 .../internal/datasource/AbstractDataSource.java |   241 +
 .../internal/datasource/AbstractPoolCache.java  |   553 +
 .../ClientConnectionFactoryWrapper.java         |    54 +
 .../internal/datasource/ConfigProperty.java     |    65 +
 .../ConfiguredDataSourceProperties.java         |   288 +
 .../ConnectionEventListenerAdaptor.java         |    76 +
 .../datasource/ConnectionPoolCache.java         |    52 +
 .../datasource/ConnectionPoolCacheImpl.java     |   104 +
 .../internal/datasource/ConnectionProvider.java |    50 +
 .../datasource/ConnectionProviderException.java |    67 +
 .../datasource/DataSourceCreateException.java   |    62 +
 .../internal/datasource/DataSourceFactory.java  |   374 +
 .../datasource/DataSourceResources.java         |    49 +
 .../FacetsJCAConnectionManagerImpl.java         |   269 +
 .../datasource/GemFireBasicDataSource.java      |   150 +
 .../datasource/GemFireConnPooledDataSource.java |   225 +
 .../GemFireConnectionPoolManager.java           |   108 +
 .../GemFireTransactionDataSource.java           |   264 +
 .../datasource/JCAConnectionManagerImpl.java    |   220 +
 .../datasource/ManagedPoolCacheImpl.java        |   104 +
 .../internal/datasource/PoolException.java      |    55 +
 .../internal/datasource/TranxPoolCacheImpl.java |   102 +
 .../gemfire/internal/doc-files/cs-maps.fig      |   150 +
 .../gemfire/internal/doc-files/cs-maps.gif      |   Bin 0 -> 5951 bytes
 .../gemfire/internal/doc-files/ds-map.fig       |   105 +
 .../gemfire/internal/doc-files/ds-map.gif       |   Bin 0 -> 4867 bytes
 .../internal/doc-files/merge-log-files.fig      |   153 +
 .../internal/doc-files/merge-log-files.gif      |   Bin 0 -> 2646 bytes
 .../i18n/AbstractStringIdResourceBundle.java    |   156 +
 .../gemfire/internal/i18n/LocalizedStrings.java |  2161 +++
 .../internal/i18n/ParentLocalizedStrings.java   |  2399 +++
 .../gemfire/internal/i18n/StringId.java         |    58 +
 .../internal/io/CompositeOutputStream.java      |   176 +
 .../internal/io/CompositePrintStream.java       |    79 +
 .../gemfire/internal/io/TeeOutputStream.java    |    93 +
 .../gemfire/internal/io/TeePrintStream.java     |    45 +
 .../gemfire/internal/jndi/ContextImpl.java      |   779 +
 .../jndi/InitialContextFactoryImpl.java         |   102 +
 .../gemfire/internal/jndi/JNDIInvoker.java      |   401 +
 .../gemfire/internal/jndi/NameParserImpl.java   |    55 +
 .../gemfire/internal/jta/GlobalTransaction.java |   732 +
 .../gemfire/internal/jta/TransactionImpl.java   |   270 +
 .../internal/jta/TransactionManagerImpl.java    |   867 +
 .../gemfire/internal/jta/TransactionUtils.java  |    59 +
 .../internal/jta/UserTransactionImpl.java       |   145 +
 .../gemstone/gemfire/internal/jta/XidImpl.java  |    94 +
 .../gemfire/internal/lang/ClassUtils.java       |   131 +
 .../gemstone/gemfire/internal/lang/Filter.java  |    30 +
 .../gemfire/internal/lang/InOutParameter.java   |   102 +
 .../gemfire/internal/lang/Initable.java         |    36 +
 .../gemfire/internal/lang/Initializer.java      |    46 +
 .../internal/lang/MutableIdentifiable.java      |    39 +
 .../gemfire/internal/lang/ObjectUtils.java      |   192 +
 .../gemfire/internal/lang/Orderable.java        |    41 +
 .../gemstone/gemfire/internal/lang/Ordered.java |    44 +
 .../gemfire/internal/lang/StringUtils.java      |   716 +
 .../gemfire/internal/lang/SystemUtils.java      |   244 +
 .../gemfire/internal/lang/ThreadUtils.java      |   131 +
 .../gemfire/internal/logging/DateFormatter.java |    94 +
 .../internal/logging/DebugLogWriter.java        |   126 +
 .../internal/logging/GemFireFormatter.java      |   104 +
 .../internal/logging/GemFireHandler.java        |    81 +
 .../gemfire/internal/logging/GemFireLevel.java  |    78 +
 .../internal/logging/InternalLogWriter.java     |   134 +
 .../internal/logging/LocalLogWriter.java        |    95 +
 .../gemfire/internal/logging/LogConfig.java     |    63 +
 .../gemfire/internal/logging/LogFileParser.java |   513 +
 .../gemfire/internal/logging/LogService.java    |   279 +
 .../internal/logging/LogWriterFactory.java      |   109 +
 .../gemfire/internal/logging/LogWriterImpl.java |  1051 +
 .../internal/logging/LoggingThreadGroup.java    |   347 +
 .../internal/logging/ManagerLogWriter.java      |   692 +
 .../gemfire/internal/logging/MergeLogFiles.java |  1008 +
 .../gemfire/internal/logging/PureLogWriter.java |   283 +
 .../logging/SecurityLocalLogWriter.java         |    87 +
 .../internal/logging/SecurityLogConfig.java     |    66 +
 .../internal/logging/SecurityLogWriter.java     |    80 +
 .../logging/SecurityManagerLogWriter.java       |    73 +
 .../gemfire/internal/logging/SortLogFile.java   |   149 +
 .../internal/logging/StandardErrorPrinter.java  |    43 +
 .../internal/logging/StandardOutputPrinter.java |    43 +
 .../internal/logging/log4j/AlertAppender.java   |   351 +
 .../internal/logging/log4j/AppenderContext.java |    80 +
 .../internal/logging/log4j/ConfigLocator.java   |    85 +
 .../internal/logging/log4j/Configurator.java    |   205 +
 .../internal/logging/log4j/FastLogger.java      |    79 +
 .../internal/logging/log4j/GemFireLogger.java   |   923 +
 .../logging/log4j/LocalizedMessage.java         |    81 +
 .../internal/logging/log4j/LogMarker.java       |    98 +
 .../logging/log4j/LogWriterAppender.java        |   212 +
 .../logging/log4j/LogWriterAppenders.java       |   299 +
 .../internal/logging/log4j/LogWriterLogger.java |  2035 ++
 .../logging/log4j/ThreadIdPatternConverter.java |    61 +
 .../gemfire/internal/memcached/Command.java     |   501 +
 .../internal/memcached/CommandProcessor.java    |    42 +
 .../internal/memcached/ConnectionHandler.java   |    93 +
 .../gemfire/internal/memcached/KeyWrapper.java  |    95 +
 .../gemfire/internal/memcached/Reply.java       |   121 +
 .../internal/memcached/RequestReader.java       |   291 +
 .../internal/memcached/ResponseStatus.java      |    64 +
 .../internal/memcached/ValueWrapper.java        |   146 +
 .../memcached/commands/AbstractCommand.java     |   223 +
 .../internal/memcached/commands/AddCommand.java |    90 +
 .../memcached/commands/AddQCommand.java         |    30 +
 .../memcached/commands/AppendCommand.java       |    92 +
 .../memcached/commands/AppendQCommand.java      |    29 +
 .../internal/memcached/commands/CASCommand.java |    76 +
 .../memcached/commands/ClientError.java         |    39 +
 .../memcached/commands/DecrementCommand.java    |   173 +
 .../memcached/commands/DecrementQCommand.java   |    29 +
 .../memcached/commands/DeleteCommand.java       |   101 +
 .../memcached/commands/DeleteQCommand.java      |    29 +
 .../memcached/commands/FlushAllCommand.java     |   119 +
 .../memcached/commands/FlushAllQCommand.java    |    29 +
 .../internal/memcached/commands/GATCommand.java |    29 +
 .../memcached/commands/GATQCommand.java         |    29 +
 .../internal/memcached/commands/GetCommand.java |   224 +
 .../memcached/commands/GetKCommand.java         |    30 +
 .../memcached/commands/GetKQCommand.java        |    30 +
 .../memcached/commands/GetQCommand.java         |    38 +
 .../memcached/commands/IncrementCommand.java    |   170 +
 .../memcached/commands/IncrementQCommand.java   |    29 +
 .../memcached/commands/NoOpCommand.java         |    40 +
 .../memcached/commands/NotSupportedCommand.java |    41 +
 .../memcached/commands/PrependCommand.java      |    88 +
 .../memcached/commands/PrependQCommand.java     |    29 +
 .../memcached/commands/QuitCommand.java         |    56 +
 .../memcached/commands/QuitQCommand.java        |    29 +
 .../memcached/commands/ReplaceCommand.java      |   102 +
 .../memcached/commands/ReplaceQCommand.java     |    29 +
 .../internal/memcached/commands/SetCommand.java |    90 +
 .../memcached/commands/SetQCommand.java         |    30 +
 .../memcached/commands/StatsCommand.java        |    50 +
 .../memcached/commands/StorageCommand.java      |   218 +
 .../memcached/commands/TouchCommand.java        |   104 +
 .../memcached/commands/VerbosityCommand.java    |    48 +
 .../memcached/commands/VersionCommand.java      |    49 +
 .../modules/util/RegionConfiguration.java       |   293 +
 .../gemfire/internal/net/SocketUtils.java       |    76 +
 .../internal/offheap/AbstractStoredObject.java  |   107 +
 .../internal/offheap/ByteArrayMemoryChunk.java  |    77 +
 .../internal/offheap/ByteBufferMemoryChunk.java |    90 +
 .../gemfire/internal/offheap/Chunk.java         |   792 +
 .../gemfire/internal/offheap/ChunkFactory.java  |    51 +
 .../gemfire/internal/offheap/ChunkType.java     |    30 +
 .../internal/offheap/ChunkWithHeapForm.java     |    40 +
 .../gemfire/internal/offheap/DataAsAddress.java |   131 +
 .../gemfire/internal/offheap/DataType.java      |   269 +
 ...DisconnectingOutOfOffHeapMemoryListener.java |    77 +
 .../gemfire/internal/offheap/Fragment.java      |   139 +
 .../internal/offheap/FreeListManager.java       |   821 +
 .../gemfire/internal/offheap/GemFireChunk.java  |    47 +
 .../internal/offheap/GemFireChunkFactory.java   |    52 +
 .../internal/offheap/GemFireChunkSlice.java     |    44 +
 .../internal/offheap/LifecycleListener.java     |    98 +
 .../internal/offheap/MemoryAllocator.java       |    64 +
 .../gemfire/internal/offheap/MemoryBlock.java   |    71 +
 .../internal/offheap/MemoryBlockNode.java       |   170 +
 .../gemfire/internal/offheap/MemoryChunk.java   |    47 +
 .../offheap/MemoryChunkWithRefCount.java        |    34 +
 .../internal/offheap/MemoryInspector.java       |    43 +
 .../internal/offheap/MemoryInspectorImpl.java   |    99 +
 .../internal/offheap/MemoryUsageListener.java   |    27 +
 .../offheap/OffHeapCachedDeserializable.java    |   142 +
 .../gemfire/internal/offheap/OffHeapHelper.java |   133 +
 .../internal/offheap/OffHeapMemoryStats.java    |    54 +
 .../offheap/OffHeapRegionEntryHelper.java       |   418 +
 .../internal/offheap/OffHeapStorage.java        |   394 +
 .../offheap/OutOfOffHeapMemoryListener.java     |    44 +
 .../internal/offheap/RefCountChangeInfo.java    |   130 +
 .../internal/offheap/ReferenceCountHelper.java  |   254 +
 .../gemfire/internal/offheap/Releasable.java    |    31 +
 .../offheap/SimpleMemoryAllocatorImpl.java      |   625 +
 .../gemfire/internal/offheap/StoredObject.java  |    95 +
 .../internal/offheap/SyncChunkStack.java        |   141 +
 .../internal/offheap/UnsafeMemoryChunk.java     |   223 +
 .../offheap/annotations/OffHeapIdentifier.java  |    69 +
 .../internal/offheap/annotations/Released.java  |    49 +
 .../internal/offheap/annotations/Retained.java  |    51 +
 .../offheap/annotations/Unretained.java         |    51 +
 .../com/gemstone/gemfire/internal/package.html  |    45 +
 .../internal/process/AttachProcessUtils.java    |    57 +
 .../process/BlockingProcessStreamReader.java    |    73 +
 ...usterConfigurationNotAvailableException.java |    31 +
 .../process/ConnectionFailedException.java      |    50 +
 .../internal/process/ControlFileWatchdog.java   |   158 +
 .../process/ControlNotificationHandler.java     |    32 +
 .../internal/process/ControllableProcess.java   |   132 +
 .../process/FileAlreadyExistsException.java     |    52 +
 .../process/FileControllerParameters.java       |    33 +
 .../internal/process/FileProcessController.java |   162 +
 .../process/LocalProcessController.java         |   478 +
 .../internal/process/LocalProcessLauncher.java  |   128 +
 .../process/MBeanControllerParameters.java      |    37 +
 .../process/MBeanInvocationFailedException.java |    50 +
 .../process/MBeanProcessController.java         |   391 +
 .../internal/process/NativeProcessUtils.java    |    53 +
 .../process/NonBlockingProcessStreamReader.java |   101 +
 .../gemfire/internal/process/PidFile.java       |   169 +
 .../process/PidUnavailableException.java        |    51 +
 .../internal/process/ProcessController.java     |    61 +
 .../process/ProcessControllerFactory.java       |   102 +
 .../process/ProcessControllerParameters.java    |    30 +
 .../process/ProcessLauncherContext.java         |   176 +
 .../internal/process/ProcessStreamReader.java   |   265 +
 .../ProcessTerminatedAbnormallyException.java   |    90 +
 .../gemfire/internal/process/ProcessType.java   |    69 +
 .../gemfire/internal/process/ProcessUtils.java  |   195 +
 .../gemfire/internal/process/StartupStatus.java |    63 +
 .../internal/process/StartupStatusListener.java |    30 +
 .../UnableToControlProcessException.java        |    51 +
 .../AbstractSignalNotificationHandler.java      |   179 +
 .../gemfire/internal/process/signal/Signal.java |   128 +
 .../internal/process/signal/SignalEvent.java    |    53 +
 .../internal/process/signal/SignalListener.java |    34 +
 .../internal/process/signal/SignalType.java     |    44 +
 .../internal/redis/ByteArrayWrapper.java        |   181 +
 .../internal/redis/ByteToCommandDecoder.java    |   189 +
 .../gemstone/gemfire/internal/redis/Coder.java  |   517 +
 .../gemfire/internal/redis/Command.java         |   150 +
 .../gemfire/internal/redis/DoubleWrapper.java   |    79 +
 .../internal/redis/ExecutionHandlerContext.java |   380 +
 .../gemfire/internal/redis/Executor.java        |    38 +
 .../gemfire/internal/redis/Extendable.java      |    33 +
 .../redis/RedisCommandParserException.java      |    45 +
 .../internal/redis/RedisCommandType.java        |  2345 +++
 .../gemfire/internal/redis/RedisConstants.java  |   202 +
 .../gemfire/internal/redis/RedisDataType.java   |   118 +
 .../redis/RedisDataTypeMismatchException.java   |    39 +
 .../internal/redis/RegionCreationException.java |    39 +
 .../gemfire/internal/redis/RegionProvider.java  |   553 +
 .../redis/executor/AbstractExecutor.java        |   139 +
 .../redis/executor/AbstractScanExecutor.java    |    47 +
 .../internal/redis/executor/AuthExecutor.java   |    54 +
 .../internal/redis/executor/DBSizeExecutor.java |    31 +
 .../internal/redis/executor/DelExecutor.java    |    55 +
 .../internal/redis/executor/EchoExecutor.java   |    40 +
 .../internal/redis/executor/ExistsExecutor.java |    49 +
 .../redis/executor/ExpirationExecutor.java      |    41 +
 .../redis/executor/ExpireAtExecutor.java        |    93 +
 .../internal/redis/executor/ExpireExecutor.java |    93 +
 .../redis/executor/FlushAllExecutor.java        |    49 +
 .../internal/redis/executor/KeysExecutor.java   |    70 +
 .../internal/redis/executor/ListQuery.java      |    53 +
 .../redis/executor/PExpireAtExecutor.java       |    32 +
 .../redis/executor/PExpireExecutor.java         |    32 +
 .../internal/redis/executor/PTTLExecutor.java   |    33 +
 .../redis/executor/PersistExecutor.java         |    52 +
 .../internal/redis/executor/PingExecutor.java   |    31 +
 .../internal/redis/executor/QuitExecutor.java   |    31 +
 .../internal/redis/executor/ScanExecutor.java   |   144 +
 .../redis/executor/ShutDownExecutor.java        |    28 +
 .../internal/redis/executor/SortedSetQuery.java |   204 +
 .../internal/redis/executor/TTLExecutor.java    |    77 +
 .../internal/redis/executor/TimeExecutor.java   |    51 +
 .../internal/redis/executor/TypeExecutor.java   |    48 +
 .../internal/redis/executor/UnkownExecutor.java |    31 +
 .../redis/executor/hash/HDelExecutor.java       |    67 +
 .../redis/executor/hash/HExistsExecutor.java    |    66 +
 .../redis/executor/hash/HGetAllExecutor.java    |    63 +
 .../redis/executor/hash/HGetExecutor.java       |    62 +
 .../redis/executor/hash/HIncrByExecutor.java    |   109 +
 .../executor/hash/HIncrByFloatExecutor.java     |    99 +
 .../redis/executor/hash/HKeysExecutor.java      |    63 +
 .../redis/executor/hash/HLenExecutor.java       |    57 +
 .../redis/executor/hash/HMGetExecutor.java      |    72 +
 .../redis/executor/hash/HMSetExecutor.java      |    62 +
 .../redis/executor/hash/HScanExecutor.java      |   163 +
 .../redis/executor/hash/HSetExecutor.java       |    78 +
 .../redis/executor/hash/HSetNXExecutor.java     |    33 +
 .../redis/executor/hash/HValsExecutor.java      |    62 +
 .../redis/executor/hash/HashExecutor.java       |    39 +
 .../internal/redis/executor/hll/Bits.java       |    65 +
 .../executor/hll/CardinalityMergeException.java |    42 +
 .../redis/executor/hll/HllExecutor.java         |    38 +
 .../redis/executor/hll/HyperLogLog.java         |   360 +
 .../redis/executor/hll/HyperLogLogPlus.java     |  1068 +
 .../internal/redis/executor/hll/IBuilder.java   |    41 +
 .../redis/executor/hll/ICardinality.java        |    89 +
 .../internal/redis/executor/hll/MurmurHash.java |   234 +
 .../redis/executor/hll/PFAddExecutor.java       |    65 +
 .../redis/executor/hll/PFCountExecutor.java     |    68 +
 .../redis/executor/hll/PFMergeExecutor.java     |    72 +
 .../redis/executor/hll/RegisterSet.java         |   126 +
 .../internal/redis/executor/hll/Varint.java     |   241 +
 .../redis/executor/list/LIndexExecutor.java     |   118 +
 .../redis/executor/list/LInsertExecutor.java    |    29 +
 .../redis/executor/list/LLenExecutor.java       |    58 +
 .../redis/executor/list/LPopExecutor.java       |    34 +
 .../redis/executor/list/LPushExecutor.java      |    34 +
 .../redis/executor/list/LPushXExecutor.java     |    34 +
 .../redis/executor/list/LRangeExecutor.java     |   113 +
 .../redis/executor/list/LRemExecutor.java       |   116 +
 .../redis/executor/list/LSetExecutor.java       |   108 +
 .../redis/executor/list/LTrimExecutor.java      |   124 +
 .../redis/executor/list/ListExecutor.java       |   150 +
 .../redis/executor/list/PopExecutor.java        |   150 +
 .../redis/executor/list/PushExecutor.java       |    54 +
 .../redis/executor/list/PushXExecutor.java      |    59 +
 .../redis/executor/list/RPopExecutor.java       |    34 +
 .../redis/executor/list/RPushExecutor.java      |    34 +
 .../redis/executor/list/RPushXExecutor.java     |    34 +
 .../redis/executor/set/SAddExecutor.java        |    60 +
 .../redis/executor/set/SCardExecutor.java       |    55 +
 .../redis/executor/set/SDiffExecutor.java       |    46 +
 .../redis/executor/set/SDiffStoreExecutor.java  |    33 +
 .../redis/executor/set/SInterExecutor.java      |    49 +
 .../redis/executor/set/SInterStoreExecutor.java |    34 +
 .../redis/executor/set/SIsMemberExecutor.java   |    62 +
 .../redis/executor/set/SMembersExecutor.java    |    56 +
 .../redis/executor/set/SMoveExecutor.java       |    72 +
 .../redis/executor/set/SPopExecutor.java        |    61 +
 .../redis/executor/set/SRandMemberExecutor.java |    96 +
 .../redis/executor/set/SRemExecutor.java        |    63 +
 .../redis/executor/set/SScanExecutor.java       |   154 +
 .../redis/executor/set/SUnionExecutor.java      |    51 +
 .../redis/executor/set/SUnionStoreExecutor.java |    34 +
 .../redis/executor/set/SetExecutor.java         |    23 +
 .../redis/executor/set/SetOpExecutor.java       |   109 +
 .../executor/sortedset/SortedSetExecutor.java   |    41 +
 .../redis/executor/sortedset/ZAddExecutor.java  |    88 +
 .../redis/executor/sortedset/ZCardExecutor.java |    54 +
 .../executor/sortedset/ZCountExecutor.java      |   145 +
 .../executor/sortedset/ZIncrByExecutor.java     |    77 +
 .../executor/sortedset/ZLexCountExecutor.java   |   143 +
 .../executor/sortedset/ZRangeByLexExecutor.java |   209 +
 .../sortedset/ZRangeByScoreExecutor.java        |   209 +
 .../executor/sortedset/ZRangeExecutor.java      |   125 +
 .../redis/executor/sortedset/ZRankExecutor.java |    98 +
 .../redis/executor/sortedset/ZRemExecutor.java  |    64 +
 .../sortedset/ZRemRangeByLexExecutor.java       |   153 +
 .../sortedset/ZRemRangeByRankExecutor.java      |   121 +
 .../sortedset/ZRemRangeByScoreExecutor.java     |   143 +
 .../sortedset/ZRevRangeByScoreExecutor.java     |    33 +
 .../executor/sortedset/ZRevRangeExecutor.java   |    34 +
 .../executor/sortedset/ZRevRankExecutor.java    |    32 +
 .../redis/executor/sortedset/ZScanExecutor.java |   161 +
 .../executor/sortedset/ZScoreExecutor.java      |    59 +
 .../redis/executor/string/AppendExecutor.java   |    69 +
 .../redis/executor/string/BitCountExecutor.java |    97 +
 .../redis/executor/string/BitOpExecutor.java    |   153 +
 .../redis/executor/string/BitPosExecutor.java   |   134 +
 .../redis/executor/string/DecrByExecutor.java   |   110 +
 .../redis/executor/string/DecrExecutor.java     |    95 +
 .../redis/executor/string/GetBitExecutor.java   |    82 +
 .../redis/executor/string/GetExecutor.java      |    51 +
 .../redis/executor/string/GetRangeExecutor.java |    98 +
 .../redis/executor/string/GetSetExecutor.java   |    59 +
 .../redis/executor/string/IncrByExecutor.java   |   107 +
 .../executor/string/IncrByFloatExecutor.java    |   122 +
 .../redis/executor/string/IncrExecutor.java     |    91 +
 .../redis/executor/string/MGetExecutor.java     |    73 +
 .../redis/executor/string/MSetExecutor.java     |    64 +
 .../redis/executor/string/MSetNXExecutor.java   |    88 +
 .../redis/executor/string/PSetEXExecutor.java   |    34 +
 .../redis/executor/string/SetBitExecutor.java   |   106 +
 .../redis/executor/string/SetEXExecutor.java    |    88 +
 .../redis/executor/string/SetExecutor.java      |   154 +
 .../redis/executor/string/SetNXExecutor.java    |    60 +
 .../redis/executor/string/SetRangeExecutor.java |    96 +
 .../redis/executor/string/StringExecutor.java   |    45 +
 .../redis/executor/string/StrlenExecutor.java   |    56 +
 .../executor/transactions/DiscardExecutor.java  |    42 +
 .../executor/transactions/ExecExecutor.java     |    88 +
 .../executor/transactions/MultiExecutor.java    |    47 +
 .../transactions/TransactionExecutor.java       |    23 +
 .../executor/transactions/UnwatchExecutor.java  |    31 +
 .../executor/transactions/WatchExecutor.java    |    31 +
 .../redis/org/apache/hadoop/fs/GlobPattern.java |   164 +
 .../internal/security/AuthorizeRequest.java     |   757 +
 .../internal/security/AuthorizeRequestPP.java   |   250 +
 .../security/FilterPostAuthorization.java       |   235 +
 .../security/FilterPreAuthorization.java        |   160 +
 .../internal/security/ObjectWithAuthz.java      |    69 +
 .../gemfire/internal/security/package.html      |    25 +
 .../internal/sequencelog/EntryLogger.java       |   210 +
 .../gemfire/internal/sequencelog/GraphType.java |    60 +
 .../internal/sequencelog/MembershipLogger.java  |    47 +
 .../internal/sequencelog/MessageLogger.java     |    40 +
 .../internal/sequencelog/RegionLogger.java      |    88 +
 .../internal/sequencelog/SequenceLogger.java    |    63 +
 .../sequencelog/SequenceLoggerImpl.java         |   149 +
 .../internal/sequencelog/Transition.java        |    88 +
 .../gemfire/internal/sequencelog/io/Filter.java |    32 +
 .../sequencelog/io/GemfireLogConverter.java     |   251 +
 .../internal/sequencelog/io/GraphReader.java    |    90 +
 .../sequencelog/io/InputStreamReader.java       |   103 +
 .../sequencelog/io/OutputStreamAppender.java    |   117 +
 .../internal/sequencelog/model/Edge.java        |   111 +
 .../internal/sequencelog/model/Graph.java       |   105 +
 .../internal/sequencelog/model/GraphID.java     |    95 +
 .../sequencelog/model/GraphReaderCallback.java  |    37 +
 .../internal/sequencelog/model/GraphSet.java    |   165 +
 .../internal/sequencelog/model/Vertex.java      |   124 +
 .../visualization/text/TextDisplay.java         |    85 +
 .../gemfire/internal/shared/NativeCalls.java    |   633 +
 .../internal/shared/NativeCallsJNAImpl.java     |  1217 ++
 .../internal/shared/NativeErrorException.java   |    43 +
 .../gemfire/internal/shared/OSType.java         |    93 +
 .../internal/shared/StringPrintWriter.java      |   236 +
 .../internal/shared/TCPSocketOptions.java       |    48 +
 .../internal/size/CachingSingleObjectSizer.java |    51 +
 .../size/InstrumentationSingleObjectSizer.java  |    42 +
 .../gemfire/internal/size/ObjectGraphSizer.java |   252 +
 .../gemfire/internal/size/ObjectTraverser.java  |   205 +
 .../internal/size/ReflectionObjectSizer.java    |    94 +
 .../size/ReflectionSingleObjectSizer.java       |   183 +
 .../internal/size/SingleObjectSizer.java        |    28 +
 .../internal/size/SizeClassOnceObjectSizer.java |    96 +
 .../gemfire/internal/size/SizeOfUtil0.java      |    33 +
 .../internal/size/WellKnownClassSizer.java      |    60 +
 .../internal/statistics/CounterMonitor.java     |    58 +
 .../internal/statistics/GaugeMonitor.java       |    53 +
 .../statistics/IgnoreResourceException.java     |    65 +
 .../MapBasedStatisticsNotification.java         |    88 +
 .../internal/statistics/ResourceInstance.java   |   120 +
 .../internal/statistics/ResourceType.java       |    70 +
 .../internal/statistics/SampleCollector.java    |   786 +
 .../internal/statistics/SampleHandler.java      |    72 +
 .../internal/statistics/SimpleStatisticId.java  |    67 +
 .../statistics/StatArchiveDescriptor.java       |   134 +
 .../internal/statistics/StatArchiveHandler.java |   676 +
 .../statistics/StatArchiveHandlerConfig.java    |    67 +
 .../internal/statistics/StatMonitorHandler.java |   336 +
 .../internal/statistics/StatisticId.java        |    39 +
 .../statistics/StatisticNotFoundException.java  |    62 +
 .../internal/statistics/StatisticsListener.java |    27 +
 .../internal/statistics/StatisticsMonitor.java  |   166 +
 .../statistics/StatisticsNotification.java      |    66 +
 .../internal/statistics/StatisticsSampler.java  |    57 +
 .../internal/statistics/ValueMonitor.java       |   133 +
 .../gemfire/internal/statistics/package.html    |    31 +
 .../stats50/Atomic50StatisticsImpl.java         |   497 +
 .../gemfire/internal/stats50/VMStats50.java     |   703 +
 .../gemfire/internal/tcp/BaseMsgStreamer.java   |    65 +
 .../gemstone/gemfire/internal/tcp/Buffers.java  |   170 +
 .../internal/tcp/ByteBufferInputStream.java     |  1022 +
 .../gemfire/internal/tcp/ConnectExceptions.java |    93 +
 .../gemfire/internal/tcp/Connection.java        |  4153 ++++
 .../internal/tcp/ConnectionException.java       |    38 +
 .../gemfire/internal/tcp/ConnectionTable.java   |  1428 ++
 .../gemfire/internal/tcp/DirectReplySender.java |   105 +
 .../tcp/ImmutableByteBufferInputStream.java     |    85 +
 .../internal/tcp/MemberShunnedException.java    |    50 +
 .../gemfire/internal/tcp/MsgDestreamer.java     |   536 +
 .../gemfire/internal/tcp/MsgIdGenerator.java    |    54 +
 .../gemfire/internal/tcp/MsgOutputStream.java   |   427 +
 .../gemfire/internal/tcp/MsgReader.java         |   129 +
 .../gemfire/internal/tcp/MsgStreamer.java       |  1004 +
 .../gemfire/internal/tcp/MsgStreamerList.java   |   169 +
 .../gemfire/internal/tcp/NIOMsgReader.java      |   113 +
 .../gemfire/internal/tcp/OioMsgReader.java      |    43 +
 .../internal/tcp/ReenteredConnectException.java |    51 +
 .../gemfire/internal/tcp/ServerDelegate.java    |    47 +
 .../gemfire/internal/tcp/TCPConduit.java        |  1207 ++
 .../tcp/VersionedByteBufferInputStream.java     |    79 +
 .../internal/tcp/VersionedMsgStreamer.java      |    60 +
 .../gemstone/gemfire/internal/tcp/package.html  |   138 +
 .../internal/util/AbortableTaskService.java     |   174 +
 .../gemfire/internal/util/ArrayUtils.java       |   369 +
 .../gemfire/internal/util/BlobHelper.java       |   195 +
 .../gemfire/internal/util/Breadcrumbs.java      |   265 +
 .../gemstone/gemfire/internal/util/Bytes.java   |   259 +
 .../gemfire/internal/util/Callable.java         |    48 +
 .../gemfire/internal/util/CollectionUtils.java  |   282 +
 .../gemfire/internal/util/DebuggerSupport.java  |    65 +
 .../gemfire/internal/util/DelayedAction.java    |    65 +
 .../com/gemstone/gemfire/internal/util/Hex.java |    57 +
 .../gemstone/gemfire/internal/util/IOUtils.java |   347 +
 .../internal/util/JavaCommandBuilder.java       |   123 +
 .../gemfire/internal/util/LogFileUtils.java     |   178 +
 .../internal/util/ObjectIntProcedure.java       |    30 +
 .../gemfire/internal/util/PasswordUtil.java     |   132 +
 .../gemfire/internal/util/PluckStacks.java      |   523 +
 .../internal/util/SingletonCallable.java        |    87 +
 .../gemfire/internal/util/SingletonValue.java   |   318 +
 .../internal/util/StackTraceCollector.java      |   169 +
 .../gemfire/internal/util/StopWatch.java        |    80 +
 .../internal/util/SunAPINotFoundException.java  |    46 +
 .../gemfire/internal/util/TransformUtils.java   |   132 +
 .../gemfire/internal/util/Transformer.java      |    33 +
 .../gemfire/internal/util/Versionable.java      |    37 +
 .../internal/util/VersionedArrayList.java       |   346 +
 .../util/concurrent/CopyOnWriteHashMap.java     |   209 +
 .../util/concurrent/CopyOnWriteWeakHashMap.java |    98 +
 .../CustomEntryConcurrentHashMap.java           |  2679 +++
 .../internal/util/concurrent/FutureResult.java  |    93 +
 .../util/concurrent/ReentrantSemaphore.java     |   161 +
 .../util/concurrent/SemaphoreReadWriteLock.java |   217 +
 .../util/concurrent/StoppableCondition.java     |   113 +
 .../concurrent/StoppableCountDownLatch.java     |    98 +
 .../concurrent/StoppableCountDownOrUpLatch.java |   211 +
 .../concurrent/StoppableNonReentrantLock.java   |    92 +
 .../util/concurrent/StoppableReadWriteLock.java |    35 +
 .../util/concurrent/StoppableReentrantLock.java |   131 +
 .../StoppableReentrantReadWriteLock.java        |   244 +
 .../internal/util/doc-files/call-stack.fig      |    34 +
 .../internal/util/doc-files/class-loaders.fig   |    49 +
 .../lang/AttachAPINotFoundException.java        |    67 +
 .../com/gemstone/gemfire/lang/Identifiable.java |    40 +
 .../management/AlreadyRunningException.java     |    46 +
 .../management/AsyncEventQueueMXBean.java       |   118 +
 .../gemfire/management/CacheServerMXBean.java   |   397 +
 .../gemfire/management/ClientHealthStatus.java  |   346 +
 .../gemfire/management/ClientQueueDetail.java   |   165 +
 .../DependenciesNotFoundException.java          |    58 +
 .../gemfire/management/DiskBackupResult.java    |    68 +
 .../gemfire/management/DiskBackupStatus.java    |    73 +
 .../gemfire/management/DiskMetrics.java         |   124 +
 .../gemfire/management/DiskStoreMXBean.java     |   212 +
 .../DistributedLockServiceMXBean.java           |    66 +
 .../management/DistributedRegionMXBean.java     |   317 +
 .../management/DistributedSystemMXBean.java     |   696 +
 .../management/EvictionAttributesData.java      |   112 +
 .../FixedPartitionAttributesData.java           |    95 +
 .../management/GatewayReceiverMXBean.java       |   211 +
 .../gemfire/management/GatewaySenderMXBean.java |   249 +
 .../gemfire/management/GemFireProperties.java   |  1589 ++
 .../gemfire/management/JMXNotificationType.java |   208 +
 .../management/JMXNotificationUserData.java     |    46 +
 .../gemstone/gemfire/management/JVMMetrics.java |   151 +
 .../gemfire/management/LocatorMXBean.java       |    76 +
 .../gemfire/management/LockServiceMXBean.java   |    85 +
 .../gemfire/management/ManagementException.java |    88 +
 .../gemfire/management/ManagementService.java   |   427 +
 .../gemfire/management/ManagerMXBean.java       |    83 +
 .../gemfire/management/MemberMXBean.java        |   855 +
 .../management/MembershipAttributesData.java    |   113 +
 .../gemfire/management/NetworkMetrics.java      |    59 +
 .../gemstone/gemfire/management/OSMetrics.java  |   231 +
 .../management/PartitionAttributesData.java     |   146 +
 .../management/PersistentMemberDetails.java     |    68 +
 .../management/RegionAttributesData.java        |   438 +
 .../gemfire/management/RegionMXBean.java        |   360 +
 .../gemfire/management/ServerLoadData.java      |    93 +
 .../gemfire/management/cli/CliMetaData.java     |   104 +
 .../cli/CommandProcessingException.java         |   125 +
 .../gemfire/management/cli/CommandService.java  |   205 +
 .../management/cli/CommandServiceException.java |    68 +
 .../management/cli/CommandStatement.java        |    58 +
 .../gemfire/management/cli/ConverterHint.java   |    52 +
 .../gemstone/gemfire/management/cli/Result.java |   130 +
 .../gemfire/management/cli/package.html         |    23 +
 .../gemfire/management/internal/AgentUtil.java  |   134 +
 .../management/internal/AlertDetails.java       |   162 +
 .../management/internal/ArrayConverter.java     |    82 +
 .../internal/BaseManagementService.java         |   185 +
 .../internal/CollectionConverter.java           |   110 +
 .../management/internal/CompositeConverter.java |   146 +
 .../management/internal/EnumConverter.java      |    50 +
 .../management/internal/FederatingManager.java  |   626 +
 .../internal/FederationComponent.java           |   306 +
 .../management/internal/FilterChain.java        |    59 +
 .../management/internal/FilterParam.java        |    71 +
 .../management/internal/IdentityConverter.java  |    47 +
 .../management/internal/JettyHelper.java        |   228 +
 .../management/internal/JmxManagerAdvisee.java  |   149 +
 .../management/internal/JmxManagerAdvisor.java  |   384 +
 .../management/internal/JmxManagerLocator.java  |   241 +
 .../internal/JmxManagerLocatorRequest.java      |   118 +
 .../internal/JmxManagerLocatorResponse.java     |   104 +
 .../management/internal/LocalFilterChain.java   |    63 +
 .../management/internal/LocalManager.java       |   466 +
 .../management/internal/MBeanJMXAdapter.java    |   621 +
 .../management/internal/MBeanProxyFactory.java  |   355 +
 .../internal/MBeanProxyInfoRepository.java      |   171 +
 .../internal/MBeanProxyInvocationHandler.java   |   546 +
 .../internal/MXBeanProxyInvocationHandler.java  |   260 +
 .../management/internal/ManagementAgent.java    |   516 +
 .../internal/ManagementCacheListener.java       |   122 +
 .../internal/ManagementConstants.java           |   187 +
 .../management/internal/ManagementFunction.java |   173 +
 .../internal/ManagementMembershipListener.java  |    94 +
 .../internal/ManagementResourceRepo.java        |   262 +
 .../management/internal/ManagementStrings.java  |   153 +
 .../gemfire/management/internal/Manager.java    |    90 +
 .../internal/ManagerStartupMessage.java         |    76 +
 .../management/internal/MemberMessenger.java    |   105 +
 .../internal/MonitoringRegionCacheListener.java |   116 +
 .../internal/NotificationBroadCasterProxy.java  |    38 +
 .../internal/NotificationCacheListener.java     |   120 +
 .../management/internal/NotificationHub.java    |   206 +
 .../internal/NotificationHubClient.java         |    77 +
 .../management/internal/NotificationKey.java    |    66 +
 .../gemfire/management/internal/OpenMethod.java |   190 +
 .../management/internal/OpenTypeConverter.java  |  1018 +
 .../management/internal/OpenTypeUtil.java       |   117 +
 .../gemfire/management/internal/ProxyInfo.java  |    83 +
 .../management/internal/ProxyInterface.java     |    40 +
 .../management/internal/ProxyListener.java      |   137 +
 .../management/internal/RemoteFilterChain.java  |    95 +
 .../gemfire/management/internal/RestAgent.java  |   217 +
 .../gemfire/management/internal/SSLUtil.java    |    82 +
 .../management/internal/StringBasedFilter.java  |   122 +
 .../internal/SystemManagementService.java       |   837 +
 .../management/internal/TableConverter.java     |   102 +
 .../internal/beans/AggregateHandler.java        |    92 +
 .../internal/beans/AsyncEventQueueMBean.java    |   113 +
 .../beans/AsyncEventQueueMBeanBridge.java       |   121 +
 .../internal/beans/BeanUtilFuncs.java           |   393 +
 .../internal/beans/CacheServerBridge.java       |   772 +
 .../internal/beans/CacheServerMBean.java        |   317 +
 .../internal/beans/DiskRegionBridge.java        |   138 +
 .../internal/beans/DiskStoreMBean.java          |   182 +
 .../internal/beans/DiskStoreMBeanBridge.java    |   288 +
 .../beans/DistributedLockServiceBridge.java     |   227 +
 .../beans/DistributedLockServiceMBean.java      |    68 +
 .../internal/beans/DistributedRegionBridge.java |   683 +
 .../internal/beans/DistributedRegionMBean.java  |   330 +
 .../internal/beans/DistributedSystemBridge.java |  1888 ++
 .../internal/beans/DistributedSystemMBean.java  |   461 +
 .../internal/beans/GatewayReceiverMBean.java    |   220 +
 .../beans/GatewayReceiverMBeanBridge.java       |   224 +
 .../internal/beans/GatewaySenderMBean.java      |   226 +
 .../beans/GatewaySenderMBeanBridge.java         |   293 +
 .../internal/beans/HDFSRegionBridge.java        |   174 +
 .../management/internal/beans/LocatorMBean.java |    79 +
 .../internal/beans/LocatorMBeanBridge.java      |   157 +
 .../internal/beans/LockServiceMBean.java        |    94 +
 .../internal/beans/LockServiceMBeanBridge.java  |   129 +
 .../internal/beans/MBeanAggregator.java         |   435 +
 .../internal/beans/ManagementAdapter.java       |  1134 ++
 .../internal/beans/ManagementListener.java      |   215 +
 .../management/internal/beans/ManagerMBean.java |    71 +
 .../internal/beans/ManagerMBeanBridge.java      |    80 +
 .../management/internal/beans/MemberMBean.java  |   685 +
 .../internal/beans/MemberMBeanBridge.java       |  1999 ++
 .../internal/beans/MetricsCalculator.java       |   138 +
 .../internal/beans/PartitionedRegionBridge.java |   317 +
 .../internal/beans/QueryDataFunction.java       |   613 +
 .../management/internal/beans/RegionMBean.java  |   323 +
 .../internal/beans/RegionMBeanBridge.java       |   599 +
 .../beans/RegionMBeanCompositeDataFactory.java  |   229 +
 .../internal/beans/SequenceNumber.java          |    50 +
 .../management/internal/beans/ServerBridge.java |   184 +
 .../stats/AggregateRegionStatsMonitor.java      |   298 +
 .../internal/beans/stats/GCStatsMonitor.java    |    94 +
 .../GatewayReceiverClusterStatsMonitor.java     |    80 +
 .../stats/GatewaySenderClusterStatsMonitor.java |    93 +
 .../stats/IntegerStatsDeltaAggregator.java      |    93 +
 .../beans/stats/LongStatsDeltaAggregator.java   |    92 +
 .../internal/beans/stats/MBeanStatsMonitor.java |   120 +
 .../beans/stats/MemberClusterStatsMonitor.java  |   255 +
 .../beans/stats/MemberLevelDiskMonitor.java     |   311 +
 .../beans/stats/RegionClusterStatsMonitor.java  |   475 +
 .../beans/stats/ServerClusterStatsMonitor.java  |    86 +
 .../internal/beans/stats/StatType.java          |    29 +
 .../internal/beans/stats/StatsAggregator.java   |   305 +
 .../beans/stats/StatsAverageLatency.java        |    55 +
 .../internal/beans/stats/StatsKey.java          |   355 +
 .../internal/beans/stats/StatsLatency.java      |    70 +
 .../internal/beans/stats/StatsRate.java         |    92 +
 .../internal/beans/stats/VMStatsMonitor.java    |   129 +
 .../cli/AbstractCliAroundInterceptor.java       |   133 +
 .../internal/cli/CliAroundInterceptor.java      |    36 +
 .../management/internal/cli/CliUtil.java        |   758 +
 .../management/internal/cli/CommandManager.java |   632 +
 .../management/internal/cli/CommandRequest.java |   134 +
 .../internal/cli/CommandResponse.java           |   350 +
 .../internal/cli/CommandResponseBuilder.java    |    88 +
 .../internal/cli/CommandResponseWriter.java     |    66 +
 .../internal/cli/GfshParseResult.java           |   102 +
 .../management/internal/cli/GfshParser.java     |  1520 ++
 .../management/internal/cli/Launcher.java       |   315 +
 .../management/internal/cli/LogWrapper.java     |   440 +
 .../internal/cli/MultipleValueAdapter.java      |    39 +
 .../internal/cli/MultipleValueConverter.java    |    60 +
 .../internal/cli/annotation/CliArgument.java    |    88 +
 .../cli/commands/AbstractCommandsSupport.java   |   197 +
 .../internal/cli/commands/ClientCommands.java   |   328 +
 .../internal/cli/commands/ConfigCommands.java   |   484 +
 .../CreateAlterDestroyRegionCommands.java       |  1200 ++
 .../internal/cli/commands/DataCommands.java     |  1402 ++
 .../internal/cli/commands/DeployCommands.java   |   345 +
 .../cli/commands/DiskStoreCommands.java         |  1450 ++
 .../cli/commands/DurableClientCommands.java     |   430 +
 ...ExportImportSharedConfigurationCommands.java |   292 +
 .../internal/cli/commands/FunctionCommands.java |   642 +
 .../internal/cli/commands/GfshHelpCommands.java |   106 +
 .../internal/cli/commands/IndexCommands.java    |   674 +
 .../cli/commands/LauncherLifecycleCommands.java |  2803 +++
 .../internal/cli/commands/MemberCommands.java   |   204 +
 .../cli/commands/MiscellaneousCommands.java     |  2128 ++
 .../internal/cli/commands/PDXCommands.java      |   286 +
 .../internal/cli/commands/QueueCommands.java    |   281 +
 .../internal/cli/commands/RegionCommands.java   |   493 +
 .../internal/cli/commands/ShellCommands.java    |  1081 ++
 .../internal/cli/commands/StatusCommands.java   |    92 +
 .../internal/cli/commands/WanCommands.java      |  1281 ++
 .../cli/commands/dto/RegionAttributesInfo.java  |   164 +
 .../cli/commands/dto/RegionDetails.java         |   231 +
 .../cli/commands/dto/RegionMemberDetails.java   |   199 +
 .../cli/converters/BooleanConverter.java        |    54 +
 .../ClusterMemberIdNameConverter.java           |    80 +
 .../converters/ConnectionEndpointConverter.java |   145 +
 .../internal/cli/converters/DirConverter.java   |   174 +
 .../cli/converters/DirPathConverter.java        |   143 +
 .../cli/converters/DiskStoreNameConverter.java  |    93 +
 .../internal/cli/converters/EnumConverter.java  |    67 +
 .../cli/converters/FilePathConverter.java       |   136 +
 .../cli/converters/FilePathStringConverter.java |   132 +
 .../converters/GatewayReceiverIdsConverter.java |    73 +
 .../converters/GatewaySenderIdConverter.java    |    81 +
 .../internal/cli/converters/HelpConverter.java  |    73 +
 .../cli/converters/HintTopicConverter.java      |    74 +
 .../cli/converters/IndexTypeConverter.java      |    57 +
 .../LocatorDiscoveryConfigConverter.java        |    80 +
 .../cli/converters/LocatorIdNameConverter.java  |    79 +
 .../cli/converters/LogLevelConverter.java       |    64 +
 .../cli/converters/MemberGroupConverter.java    |    83 +
 .../cli/converters/MemberIdNameConverter.java   |    82 +
 .../cli/converters/RegionPathConverter.java     |   100 +
 .../cli/converters/StringArrayConverter.java    |    59 +
 .../cli/converters/StringListConverter.java     |    60 +
 .../cli/domain/AsyncEventQueueDetails.java      |    77 +
 .../internal/cli/domain/CacheServerInfo.java    |    72 +
 .../cli/domain/ConnectToLocatorResult.java      |    56 +
 .../internal/cli/domain/DataCommandRequest.java |   214 +
 .../internal/cli/domain/DataCommandResult.java  |   904 +
 .../internal/cli/domain/DiskStoreDetails.java   |   692 +
 .../cli/domain/DurableCqNamesResult.java        |    64 +
 .../cli/domain/EvictionAttributesInfo.java      |   100 +
 .../domain/FixedPartitionAttributesInfo.java    |    70 +
 .../internal/cli/domain/IndexDetails.java       |   330 +
 .../internal/cli/domain/IndexInfo.java          |   103 +
 .../cli/domain/MemberConfigurationInfo.java     |   118 +
 .../internal/cli/domain/MemberInformation.java  |   202 +
 .../internal/cli/domain/MemberResult.java       |   114 +
 .../cli/domain/PartitionAttributesInfo.java     |   171 +
 .../cli/domain/RegionAttributesInfo.java        |   492 +
 .../internal/cli/domain/RegionDescription.java  |   247 +
 .../cli/domain/RegionDescriptionPerMember.java  |   137 +
 .../internal/cli/domain/RegionInformation.java  |   157 +
 .../cli/domain/StackTracesPerMember.java        |    39 +
 .../cli/domain/SubscriptionQueueSizeResult.java |    51 +
 .../cli/exceptions/CliCommandException.java     |    65 +
 .../exceptions/CliCommandInvalidException.java  |    33 +
 .../CliCommandMultiModeOptionException.java     |    48 +
 .../CliCommandNotAvailableException.java        |    33 +
 .../exceptions/CliCommandOptionException.java   |    53 +
 ...CommandOptionHasMultipleValuesException.java |    33 +
 .../CliCommandOptionInvalidException.java       |    34 +
 .../CliCommandOptionMissingException.java       |    35 +
 .../CliCommandOptionNotApplicableException.java |    36 +
 ...liCommandOptionValueConversionException.java |    36 +
 .../CliCommandOptionValueException.java         |    42 +
 .../CliCommandOptionValueMissingException.java  |    36 +
 .../internal/cli/exceptions/CliException.java   |    21 +
 .../exceptions/CreateSubregionException.java    |    41 +
 .../cli/exceptions/ExceptionGenerator.java      |    46 +
 .../cli/exceptions/ExceptionHandler.java        |   106 +
 .../cli/exceptions/IndexNotFoundException.java  |    35 +
 .../functions/AlterRuntimeConfigFunction.java   |    96 +
 .../cli/functions/ChangeLogLevelFunction.java   |    96 +
 .../cli/functions/CliFunctionResult.java        |   248 +
 .../functions/CloseDurableClientFunction.java   |    77 +
 .../cli/functions/CloseDurableCqFunction.java   |    79 +
 .../cli/functions/ContunuousQueryFunction.java  |   152 +
 .../CreateAsyncEventQueueFunction.java          |   183 +
 .../functions/CreateDefinedIndexesFunction.java |    91 +
 .../cli/functions/CreateDiskStoreFunction.java  |    91 +
 .../cli/functions/CreateIndexFunction.java      |   100 +
 .../cli/functions/DataCommandFunction.java      |  1048 +
 .../internal/cli/functions/DeployFunction.java  |   115 +
 .../functions/DescribeDiskStoreFunction.java    |   259 +
 .../functions/DescribeHDFSStoreFunction.java    |    87 +
 .../cli/functions/DestroyDiskStoreFunction.java |   103 +
 .../cli/functions/DestroyIndexFunction.java     |   122 +
 .../cli/functions/ExportConfigFunction.java     |   132 +
 .../cli/functions/ExportDataFunction.java       |    74 +
 .../ExportSharedConfigurationFunction.java      |    72 +
 .../FetchRegionAttributesFunction.java          |   144 +
 .../FetchSharedConfigurationStatusFunction.java |    54 +
 .../functions/GarbageCollectionFunction.java    |    93 +
 .../GatewayReceiverCreateFunction.java          |   226 +
 .../functions/GatewayReceiverFunctionArgs.java  |    80 +
 .../functions/GatewaySenderCreateFunction.java  |   219 +
 .../functions/GatewaySenderFunctionArgs.java    |   144 +
 .../GetMemberConfigInformationFunction.java     |   213 +
 .../functions/GetMemberInformationFunction.java |   150 +
 .../functions/GetRegionDescriptionFunction.java |    62 +
 .../cli/functions/GetRegionsFunction.java       |    75 +
 .../cli/functions/GetStackTracesFunction.java   |    54 +
 .../GetSubscriptionQueueSizeFunction.java       |   101 +
 .../cli/functions/ImportDataFunction.java       |    70 +
 ...ortSharedConfigurationArtifactsFunction.java |    77 +
 .../functions/ListAsyncEventQueuesFunction.java |   109 +
 .../cli/functions/ListDeployedFunction.java     |   106 +
 .../cli/functions/ListDiskStoresFunction.java   |    85 +
 .../functions/ListDurableCqNamesFunction.java   |    99 +
 .../cli/functions/ListFunctionFunction.java     |   115 +
 .../cli/functions/ListIndexFunction.java        |    74 +
 .../LoadSharedConfigurationFunction.java        |    65 +
 .../internal/cli/functions/LogFileFunction.java |   298 +
 .../cli/functions/MemberRegionFunction.java     |    85 +
 .../cli/functions/MembersForRegionFunction.java |    96 +
 .../internal/cli/functions/NetstatFunction.java |   272 +
 .../cli/functions/RebalanceFunction.java        |   124 +
 .../cli/functions/RegionAlterFunction.java      |   344 +
 .../cli/functions/RegionCreateFunction.java     |   415 +
 .../cli/functions/RegionDestroyFunction.java    |    85 +
 .../cli/functions/RegionFunctionArgs.java       |   764 +
 .../cli/functions/ShutDownFunction.java         |    87 +
 .../cli/functions/UndeployFunction.java         |   133 +
 .../cli/functions/UnregisterFunction.java       |    76 +
 .../cli/functions/UserFunctionExecution.java    |   227 +
 .../management/internal/cli/help/CliTopic.java  |   131 +
 .../internal/cli/help/format/Block.java         |    45 +
 .../internal/cli/help/format/DataNode.java      |    51 +
 .../internal/cli/help/format/Help.java          |    47 +
 .../internal/cli/help/format/NewHelp.java       |    55 +
 .../internal/cli/help/format/Row.java           |    30 +
 .../internal/cli/help/utils/FormatOutput.java   |    35 +
 .../internal/cli/help/utils/HelpUtils.java      |   418 +
 .../internal/cli/i18n/CliStrings.java           |  2231 +++
 .../internal/cli/json/GfJsonArray.java          |   242 +
 .../internal/cli/json/GfJsonException.java      |    37 +
 .../internal/cli/json/GfJsonObject.java         |   393 +
 .../management/internal/cli/json/TypedJson.java |   820 +
 .../internal/cli/modes/CommandModes.java        |   155 +
 .../cli/multistep/CLIMultiStepHelper.java       |   400 +
 .../internal/cli/multistep/CLIRemoteStep.java   |    35 +
 .../internal/cli/multistep/CLIStep.java         |    34 +
 .../cli/multistep/CLIStepExecption.java         |    38 +
 .../cli/multistep/MultiStepCommand.java         |    34 +
 .../internal/cli/parser/Argument.java           |    76 +
 .../internal/cli/parser/AvailabilityTarget.java |   107 +
 .../internal/cli/parser/CommandTarget.java      |   188 +
 .../internal/cli/parser/GfshMethodTarget.java   |   134 +
 .../internal/cli/parser/GfshOptionParser.java   |    40 +
 .../internal/cli/parser/MethodParameter.java    |    42 +
 .../management/internal/cli/parser/Option.java  |   223 +
 .../internal/cli/parser/OptionSet.java          |   132 +
 .../internal/cli/parser/Parameter.java          |   119 +
 .../internal/cli/parser/ParserUtils.java        |   190 +
 .../internal/cli/parser/SyntaxConstants.java    |    37 +
 .../cli/parser/jopt/JoptOptionParser.java       |   300 +
 .../preprocessor/EnclosingCharacters.java       |    35 +
 .../cli/parser/preprocessor/Preprocessor.java   |   140 +
 .../parser/preprocessor/PreprocessorUtils.java  |   338 +
 .../internal/cli/parser/preprocessor/Stack.java |    55 +
 .../cli/parser/preprocessor/TrimmedInput.java   |    47 +
 .../cli/remote/CommandExecutionContext.java     |   127 +
 .../internal/cli/remote/CommandProcessor.java   |   166 +
 .../cli/remote/CommandStatementImpl.java        |   100 +
 .../cli/remote/MemberCommandService.java        |    84 +
 .../cli/remote/RemoteExecutionStrategy.java     |   169 +
 .../internal/cli/remote/WrapperThreadLocal.java |    42 +
 .../internal/cli/result/AbstractResultData.java |   340 +
 .../cli/result/CliJsonSerializable.java         |    45 +
 .../cli/result/CliJsonSerializableFactory.java  |    48 +
 .../cli/result/CliJsonSerializableIds.java      |    34 +
 .../internal/cli/result/CommandResult.java      |   661 +
 .../cli/result/CommandResultException.java      |    39 +
 .../cli/result/CompositeResultData.java         |   361 +
 .../internal/cli/result/ErrorResultData.java    |   104 +
 .../internal/cli/result/FileResult.java         |   117 +
 .../internal/cli/result/InfoResultData.java     |    91 +
 .../internal/cli/result/ObjectResultData.java   |    88 +
 .../internal/cli/result/ResultBuilder.java      |   475 +
 .../internal/cli/result/ResultData.java         |    53 +
 .../cli/result/ResultDataException.java         |    35 +
 .../internal/cli/result/TableBuilder.java       |   475 +
 .../internal/cli/result/TableBuilderHelper.java |   176 +
 .../internal/cli/result/TabularResultData.java  |   174 +
 .../management/internal/cli/shell/Gfsh.java     |  1259 ++
 .../internal/cli/shell/GfshConfig.java          |   253 +
 .../cli/shell/GfshExecutionStrategy.java        |   294 +
 .../cli/shell/JMXConnectionException.java       |    56 +
 .../cli/shell/JMXInvocationException.java       |    42 +
 .../internal/cli/shell/JmxOperationInvoker.java |   416 +
 .../internal/cli/shell/MultiCommandHelper.java  |    70 +
 .../internal/cli/shell/OperationInvoker.java    |   135 +
 .../internal/cli/shell/jline/ANSIBuffer.java    |   433 +
 .../internal/cli/shell/jline/ANSIHandler.java   |   113 +
 .../cli/shell/jline/CygwinMinttyTerminal.java   |    56 +
 .../internal/cli/shell/jline/GfshHistory.java   |    63 +
 .../shell/jline/GfshUnsupportedTerminal.java    |    33 +
 .../cli/shell/unsafe/GfshSignalHandler.java     |    85 +
 .../internal/cli/util/CLIConsoleBufferUtil.java |    37 +
 .../internal/cli/util/CauseFinder.java          |   214 +
 .../cli/util/ClasspathScanLoadHelper.java       |   258 +
 .../internal/cli/util/CommandStringBuilder.java |   105 +
 .../internal/cli/util/CommentSkipHelper.java    |    78 +
 .../internal/cli/util/ConnectionEndpoint.java   |    73 +
 .../internal/cli/util/DiskStoreCompacter.java   |   134 +
 .../cli/util/DiskStoreNotFoundException.java    |    49 +
 .../internal/cli/util/DiskStoreUpgrader.java    |   130 +
 .../internal/cli/util/DiskStoreValidater.java   |    60 +
 .../cli/util/EvictionAttributesInfo.java        |    63 +
 .../cli/util/FixedPartitionAttributesInfo.java  |    65 +
 .../internal/cli/util/GfshConsoleReader.java    |    90 +
 .../cli/util/HDFSStoreNotFoundException.java    |    47 +
 .../cli/util/JConsoleNotFoundException.java     |    47 +
 .../management/internal/cli/util/JsonUtil.java  |   606 +
 .../internal/cli/util/MemberInformation.java    |   157 +
 .../cli/util/MemberNotFoundException.java       |    49 +
 .../management/internal/cli/util/MergeLogs.java |    87 +
 .../internal/cli/util/ReadWriteFile.java        |   232 +
 .../cli/util/RegionAttributesDefault.java       |    90 +
 .../cli/util/RegionAttributesNames.java         |    89 +
 .../internal/cli/util/RegionPath.java           |   128 +
 .../cli/util/VisualVmNotFoundException.java     |    48 +
 .../SharedConfigurationWriter.java              |   180 +
 .../callbacks/ConfigurationChangeListener.java  |    59 +
 .../configuration/domain/CacheElement.java      |   253 +
 .../configuration/domain/Configuration.java     |   207 +
 .../domain/ConfigurationChangeResult.java       |   126 +
 .../domain/SharedConfigurationStatus.java       |    26 +
 .../configuration/domain/XmlEntity.java         |   551 +
 .../configuration/functions/AddJarFunction.java |    67 +
 .../functions/AddXmlEntityFunction.java         |    60 +
 .../functions/DeleteJarFunction.java            |    68 +
 .../functions/DeleteXmlEntityFunction.java      |    65 +
 .../functions/GetAllJarsFunction.java           |    67 +
 .../functions/ModifyPropertiesFunction.java     |    65 +
 .../handlers/ConfigurationRequestHandler.java   |    85 +
 ...SharedConfigurationStatusRequestHandler.java |    65 +
 .../messages/ConfigurationRequest.java          |   128 +
 .../messages/ConfigurationResponse.java         |   174 +
 .../SharedConfigurationStatusRequest.java       |    44 +
 .../SharedConfigurationStatusResponse.java      |    78 +
 .../configuration/utils/DtdResolver.java        |    92 +
 .../configuration/utils/XmlConstants.java       |    56 +
 .../internal/configuration/utils/XmlUtils.java  |   685 +
 .../internal/configuration/utils/ZipUtils.java  |   122 +
 .../internal/messages/CompactRequest.java       |   174 +
 .../internal/messages/CompactResponse.java      |    70 +
 .../internal/security/AccessControl.java        |    51 +
 .../internal/security/AccessControlContext.java |    37 +
 .../internal/security/AccessControlMXBean.java  |    23 +
 .../internal/security/CLIOperationContext.java  |   138 +
 .../internal/security/JMXOperationContext.java  |   177 +
 .../internal/security/JSONAuthorization.java    |   308 +
 .../internal/security/MBeanServerWrapper.java   |   286 +
 .../security/ManagementInterceptor.java         |   271 +
 .../management/internal/security/Resource.java  |    26 +
 .../internal/security/ResourceConstants.java    |   115 +
 .../internal/security/ResourceOperation.java    |    34 +
 .../security/ResourceOperationContext.java      |   203 +
 .../unsafe/ReadOpFileAccessController.java      |    63 +
 .../controllers/AbstractCommandsController.java |   618 +
 .../AbstractMultiPartCommandsController.java    |    78 +
 .../controllers/ClientCommandsController.java   |    60 +
 .../controllers/ClusterCommandsController.java  |    49 +
 .../controllers/ConfigCommandsController.java   |   214 +
 .../web/controllers/DataCommandsController.java |   241 +
 .../controllers/DeployCommandsController.java   |   110 +
 .../DiskStoreCommandsController.java            |   177 +
 .../DurableClientCommandsController.java        |   158 +
 .../controllers/FunctionCommandsController.java |   142 +
 .../controllers/IndexCommandsController.java    |   172 +
 .../LauncherLifecycleCommandsController.java    |    55 +
 .../controllers/MemberCommandsController.java   |    78 +
 .../MiscellaneousCommandsController.java        |   271 +
 .../web/controllers/PdxCommandsController.java  |   122 +
 .../controllers/QueueCommandsController.java    |   133 +
 .../controllers/RegionCommandsController.java   |   332 +
 .../controllers/ShellCommandsController.java    |   286 +
 .../web/controllers/WanCommandsController.java  |   403 +
 .../EnvironmentVariablesHandlerInterceptor.java |    93 +
 .../support/MemberMXBeanAdapter.java            |   660 +
 .../management/internal/web/domain/Link.java    |   161 +
 .../internal/web/domain/LinkIndex.java          |   140 +
 .../web/domain/QueryParameterSource.java        |    63 +
 .../internal/web/http/ClientHttpRequest.java    |   451 +
 .../internal/web/http/HttpHeader.java           |   100 +
 .../internal/web/http/HttpMethod.java           |    36 +
 .../SerializableObjectHttpMessageConverter.java |   103 +
 .../web/http/support/SimpleHttpRequester.java   |   140 +
 .../internal/web/io/MultipartFileAdapter.java   |    68 +
 .../web/io/MultipartFileResourceAdapter.java    |    68 +
 .../web/shell/AbstractHttpOperationInvoker.java |   801 +
 .../web/shell/HttpOperationInvoker.java         |    31 +
 .../web/shell/MBeanAccessException.java         |    45 +
 .../RestApiCallForCommandNotFoundException.java |    44 +
 .../web/shell/RestHttpOperationInvoker.java     |   424 +
 .../web/shell/SimpleHttpOperationInvoker.java   |   161 +
 .../shell/support/HttpInvocationHandler.java    |    95 +
 .../shell/support/HttpMBeanProxyFactory.java    |    41 +
 .../internal/web/util/ConvertUtils.java         |   132 +
 .../management/internal/web/util/UriUtils.java  |   257 +
 .../management/membership/ClientMembership.java |    67 +
 .../membership/ClientMembershipEvent.java       |    51 +
 .../membership/ClientMembershipListener.java    |    48 +
 .../ClientMembershipListenerAdapter.java        |    52 +
 .../management/membership/MembershipEvent.java  |    42 +
 .../membership/MembershipListener.java          |    53 +
 .../UniversalMembershipListenerAdapter.java     |   384 +
 .../gemstone/gemfire/management/package.html    |    24 +
 .../memcached/GemFireMemcachedServer.java       |   284 +
 .../main/java/com/gemstone/gemfire/package.html |    86 +
 .../com/gemstone/gemfire/pdx/FieldType.java     |   158 +
 .../com/gemstone/gemfire/pdx/JSONFormatter.java |   630 +
 .../gemfire/pdx/JSONFormatterException.java     |    47 +
 .../gemfire/pdx/NonPortableClassException.java  |    34 +
 .../gemfire/pdx/PdxConfigurationException.java  |    41 +
 .../pdx/PdxFieldAlreadyExistsException.java     |    46 +
 .../pdx/PdxFieldDoesNotExistException.java      |    42 +
 .../pdx/PdxFieldTypeMismatchException.java      |    46 +
 .../gemfire/pdx/PdxInitializationException.java |    51 +
 .../com/gemstone/gemfire/pdx/PdxInstance.java   |   202 +
 .../gemfire/pdx/PdxInstanceFactory.java         |   472 +
 .../com/gemstone/gemfire/pdx/PdxReader.java     |   265 +
 .../pdx/PdxRegistryMismatchException.java       |    37 +
 .../gemstone/gemfire/pdx/PdxSerializable.java   |    71 +
 .../gemfire/pdx/PdxSerializationException.java  |    53 +
 .../com/gemstone/gemfire/pdx/PdxSerializer.java |    94 +
 .../gemstone/gemfire/pdx/PdxUnreadFields.java   |    42 +
 .../com/gemstone/gemfire/pdx/PdxWriter.java     |   479 +
 .../pdx/ReflectionBasedAutoSerializer.java      |   561 +
 .../gemfire/pdx/WritablePdxInstance.java        |    44 +
 .../pdx/internal/AutoSerializableManager.java   |  2304 +++
 .../pdx/internal/CheckTypeRegistryState.java    |   110 +
 .../pdx/internal/ClientTypeRegistration.java    |   418 +
 .../gemfire/pdx/internal/ComparableEnum.java    |    24 +
 .../pdx/internal/ConvertableToBytes.java        |    23 +
 .../gemstone/gemfire/pdx/internal/DataSize.java |    49 +
 .../gemfire/pdx/internal/DefaultPdxField.java   |    40 +
 .../gemstone/gemfire/pdx/internal/EnumId.java   |    96 +
 .../gemstone/gemfire/pdx/internal/EnumInfo.java |   333 +
 .../pdx/internal/FieldNotFoundInPdxVersion.java |    27 +
 .../gemfire/pdx/internal/InternalPdxReader.java |    85 +
 .../pdx/internal/LonerTypeRegistration.java     |   186 +
 .../pdx/internal/NullTypeRegistration.java      |   120 +
 .../gemstone/gemfire/pdx/internal/PdxField.java |   259 +
 .../gemfire/pdx/internal/PdxInputStream.java    |   439 +
 .../gemfire/pdx/internal/PdxInstanceEnum.java   |   183 +
 .../pdx/internal/PdxInstanceFactoryImpl.java    |   270 +
 .../gemfire/pdx/internal/PdxInstanceImpl.java   |   646 +
 .../pdx/internal/PdxInstanceInputStream.java    |   115 +
 .../gemfire/pdx/internal/PdxOutputStream.java   |   242 +
 .../gemfire/pdx/internal/PdxReaderImpl.java     |   904 +
 .../gemfire/pdx/internal/PdxString.java         |   210 +
 .../gemstone/gemfire/pdx/internal/PdxType.java  |   495 +
 .../gemfire/pdx/internal/PdxUnreadData.java     |   118 +
 .../gemfire/pdx/internal/PdxWriterImpl.java     |   910 +
 .../pdx/internal/PeerTypeRegistration.java      |   776 +
 .../pdx/internal/TrackingPdxReaderImpl.java     |   354 +
 .../gemfire/pdx/internal/TypeRegistration.java  |   102 +
 .../gemfire/pdx/internal/TypeRegistry.java      |   525 +
 .../gemfire/pdx/internal/UnreadPdxType.java     |    73 +
 .../internal/WeakConcurrentIdentityHashMap.java |   137 +
 .../pdx/internal/WritablePdxInstanceImpl.java   |   288 +
 .../gemfire/pdx/internal/json/JsonHelper.java   |   182 +
 .../pdx/internal/json/PdxInstanceHelper.java    |   195 +
 .../pdx/internal/json/PdxListHelper.java        |   190 +
 .../gemfire/pdx/internal/json/PdxToJSON.java    |   322 +
 .../pdx/internal/unsafe/UnsafeWrapper.java      |   188 +
 .../java/com/gemstone/gemfire/pdx/package.html  |   112 +
 .../com/gemstone/gemfire/ra/GFConnection.java   |    27 +
 .../gemfire/ra/GFConnectionFactory.java         |    29 +
 .../gemfire/redis/GemFireRedisServer.java       |   717 +
 .../gemfire/security/AccessControl.java         |    95 +
 .../gemfire/security/AuthInitialize.java        |    88 +
 .../security/AuthenticationFailedException.java |    54 +
 .../AuthenticationRequiredException.java        |    54 +
 .../gemfire/security/Authenticator.java         |    87 +
 .../security/GemFireSecurityException.java      |    55 +
 .../security/NotAuthorizedException.java        |    63 +
 .../com/gemstone/gemfire/security/package.html  |    39 +
 .../message/GemFireParameterizedMessage.java    |   554 +
 .../GemFireParameterizedMessageFactory.java     |    54 +
 geode-core/src/main/java/external-overview.html |    43 +
 geode-core/src/main/java/internal-overview.html |    26 +
 .../gemfire/cache/cache-8.1.xsd                 |  1512 ++
 .../gemfire/cache/cache-9.0.xsd                 |  1519 ++
 .../services/org.xml.sax.ext.EntityResolver2    |     2 +
 .../gemstone/gemfire/admin/doc-files/ds4_0.dtd  |   176 +
 .../gemstone/gemfire/admin/doc-files/ds5_0.dtd  |   168 +
 .../internal/doc-files/mbeans-descriptors.dtd   |   232 +
 .../gemfire/admin/jmx/mbeans-descriptors.xml    |  1435 ++
 .../gemfire/cache/doc-files/cache3_0.dtd        |   296 +
 .../gemfire/cache/doc-files/cache4_0.dtd        |   392 +
 .../gemfire/cache/doc-files/cache4_1.dtd        |   485 +
 .../gemfire/cache/doc-files/cache5_0.dtd        |   519 +
 .../gemfire/cache/doc-files/cache5_1.dtd        |   534 +
 .../gemfire/cache/doc-files/cache5_5.dtd        |   651 +
 .../gemfire/cache/doc-files/cache5_7.dtd        |   776 +
 .../gemfire/cache/doc-files/cache5_8.dtd        |   794 +
 .../gemfire/cache/doc-files/cache6_0.dtd        |   862 +
 .../gemfire/cache/doc-files/cache6_1.dtd        |   871 +
 .../gemfire/cache/doc-files/cache6_5.dtd        |   949 +
 .../gemfire/cache/doc-files/cache6_6.dtd        |  1006 +
 .../gemfire/cache/doc-files/cache7_0.dtd        |  1087 ++
 .../gemfire/cache/doc-files/cache8_0.dtd        |  1107 ++
 .../membership/gms/messenger/jgroups-config.xml |    72 +
 .../membership/gms/messenger/jgroups-mcast.xml  |    98 +
 .../internal/i18n/StringIdResourceBundle_ja.txt |  3811 ++++
 .../internal/logging/log4j/log4j2-legacy.xml    |    17 +
 .../gemstone/gemfire/internal/privatekey.ser    |   Bin 0 -> 756 bytes
 .../com/gemstone/gemfire/internal/publickey.ser |   Bin 0 -> 1029 bytes
 .../tools/gfsh/app/windowsbindings.properties   |    83 +
 .../internal/cli/commands/support/gfmon.html    |    28 +
 .../management/internal/cli/modes/commands.json |     3 +
 .../management/internal/cli/modes/connect.json  |    29 +
 .../internal/cli/modes/stopserver.json          |    29 +
 .../com/gemstone/gemfire/statisticsType.dtd     |    87 +
 geode-core/src/main/resources/log4j2-cli.xml    |    17 +
 geode-core/src/main/resources/log4j2.xml        |    23 +
 .../batterytest/greplogs/ExpectedStrings.java   |   188 +
 .../java/batterytest/greplogs/LogConsumer.java  |   290 +
 .../src/test/java/cacheRunner/Portfolio.java    |   129 +
 .../src/test/java/cacheRunner/Position.java     |    74 +
 .../src/test/java/com/company/app/Customer.java |    37 +
 .../src/test/java/com/company/app/DBLoader.java |    64 +
 .../com/company/app/OrdersCacheListener.java    |    52 +
 .../java/com/company/data/DatabaseLoader.java   |    43 +
 .../java/com/company/data/MyDeclarable.java     |    33 +
 .../src/test/java/com/company/data/MySizer.java |    40 +
 .../com/company/data/MyTransactionListener.java |    39 +
 .../src/test/java/com/examples/LinkNode.java    |    78 +
 .../src/test/java/com/examples/SuperClass.java  |    93 +
 .../src/test/java/com/examples/TestObject.java  |    55 +
 .../src/test/java/com/examples/ds/Address.java  |    23 +
 .../src/test/java/com/examples/ds/Company.java  |    43 +
 .../java/com/examples/ds/CompanySerializer.java |    67 +
 .../src/test/java/com/examples/ds/Employee.java |    53 +
 .../com/examples/ds/PutDataSerializables.java   |    55 +
 .../src/test/java/com/examples/ds/User.java     |    58 +
 .../com/examples/snapshot/MyDataSerializer.java |    63 +
 .../java/com/examples/snapshot/MyObject.java    |    69 +
 .../snapshot/MyObjectDataSerializable.java      |    45 +
 .../java/com/examples/snapshot/MyObjectPdx.java |    33 +
 .../snapshot/MyObjectPdxSerializable.java       |    42 +
 .../com/examples/snapshot/MyPdxSerializer.java  |    64 +
 .../java/com/gemstone/gemfire/AppObject.java    |    24 +
 .../com/gemstone/gemfire/CopyJUnitTest.java     |   575 +
 .../com/gemstone/gemfire/DeltaTestImpl.java     |   397 +
 .../gemfire/DiskInstantiatorsJUnitTest.java     |   183 +
 .../com/gemstone/gemfire/GemFireTestCase.java   |    92 +
 .../java/com/gemstone/gemfire/Invariant.java    |    32 +
 .../com/gemstone/gemfire/InvariantResult.java   |    28 +
 .../com/gemstone/gemfire/JUnitTestSetup.java    |   143 +
 .../gemfire/JtaNoninvolvementJUnitTest.java     |   180 +
 .../gemfire/LocalStatisticsJUnitTest.java       |    50 +
 .../com/gemstone/gemfire/LonerDMJUnitTest.java  |   196 +
 .../gemstone/gemfire/StatisticsTestCase.java    |   388 +
 .../gemfire/StatisticsTypeJUnitTest.java        |    77 +
 .../gemfire/SystemFailureJUnitTest.java         |    60 +
 .../com/gemstone/gemfire/TXExpiryJUnitTest.java |   420 +
 .../java/com/gemstone/gemfire/TXJUnitTest.java  |  6825 +++++++
 .../com/gemstone/gemfire/TXWriterJUnitTest.java |   241 +
 .../gemstone/gemfire/TXWriterOOMEJUnitTest.java |    78 +
 .../com/gemstone/gemfire/TXWriterTestCase.java  |   152 +
 .../gemstone/gemfire/TestDataSerializer.java    |   117 +
 .../com/gemstone/gemfire/TimingTestCase.java    |    77 +
 .../com/gemstone/gemfire/UnitTestDoclet.java    |   264 +
 .../gemstone/gemfire/admin/AdminTestHelper.java |    45 +
 .../BindDistributedSystemJUnitTest.java         |    97 +
 .../internal/CacheHealthEvaluatorJUnitTest.java |   208 +
 .../internal/DistributedSystemTestCase.java     |    67 +
 .../admin/internal/HealthEvaluatorTestCase.java |    76 +
 .../MemberHealthEvaluatorJUnitTest.java         |   102 +
 .../cache/AttributesFactoryJUnitTest.java       |   420 +
 .../gemfire/cache/Bug36619JUnitTest.java        |    77 +
 .../gemfire/cache/Bug42039JUnitTest.java        |    96 +
 .../gemfire/cache/Bug52289JUnitTest.java        |    89 +
 .../gemfire/cache/CacheListenerJUnitTest.java   |   336 +
 .../cache/CacheRegionClearStatsDUnitTest.java   |   248 +
 .../gemstone/gemfire/cache/ClientHelper.java    |    73 +
 .../cache/ClientServerTimeSyncDUnitTest.java    |   203 +
 .../cache/ConnectionPoolAndLoaderDUnitTest.java |   489 +
 .../cache/ConnectionPoolFactoryJUnitTest.java   |   424 +
 .../gemfire/cache/OperationJUnitTest.java       |   933 +
 .../gemfire/cache/PoolManagerJUnitTest.java     |   135 +
 .../gemstone/gemfire/cache/ProxyJUnitTest.java  |  1169 ++
 .../gemfire/cache/RegionFactoryJUnitTest.java   |  1195 ++
 .../gemfire/cache/RoleExceptionJUnitTest.java   |   139 +
 .../SerialAsyncEventQueueImplJUnitTest.java     |    62 +
 .../client/ClientCacheFactoryJUnitTest.java     |   343 +
 .../client/ClientRegionFactoryJUnitTest.java    |   532 +
 .../ClientServerRegisterInterestsDUnitTest.java |   256 +
 .../internal/AutoConnectionSourceDUnitTest.java |   598 +
 .../AutoConnectionSourceImplJUnitTest.java      |   398 +
 .../CacheServerSSLConnectionDUnitTest.java      |   424 +
 .../internal/ConnectionPoolImplJUnitTest.java   |   260 +
 .../internal/LocatorLoadBalancingDUnitTest.java |   499 +
 .../cache/client/internal/LocatorTestBase.java  |   365 +
 .../internal/OpExecutorImplJUnitTest.java       |   664 +
 .../client/internal/QueueManagerJUnitTest.java  |   674 +
 .../internal/SSLNoClientAuthDUnitTest.java      |   277 +
 .../internal/ServerBlackListJUnitTest.java      |   123 +
 .../locator/LocatorStatusResponseJUnitTest.java |    77 +
 .../pooling/ConnectionManagerJUnitTest.java     |   878 +
 .../SignalledFlushObserverJUnitTest.java        |    97 +
 .../SortedListForAsyncQueueJUnitTest.java       |   565 +
 .../management/MXMemoryPoolListenerExample.java |   206 +
 .../management/MemoryThresholdsDUnitTest.java   |  2333 +++
 .../MemoryThresholdsOffHeapDUnitTest.java       |  1826 ++
 .../management/ResourceManagerDUnitTest.java    |  1841 ++
 .../ExceptionHandlingJUnitTest.java             |   177 +
 .../mapInterface/MapFunctionalJUnitTest.java    |   170 +
 .../mapInterface/PutAllGlobalLockJUnitTest.java |   109 +
 .../PutOperationContextJUnitTest.java           |   264 +
 .../GetOperationContextImplJUnitTest.java       |   291 +
 .../PartitionRegionHelperDUnitTest.java         |   742 +
 .../BaseLineAndCompareQueryPerfJUnitTest.java   |   537 +
 .../query/Bug32947ValueConstraintJUnitTest.java |   127 +
 .../gemfire/cache/query/BugJUnitTest.java       |   570 +
 .../gemfire/cache/query/CacheUtils.java         |   398 +
 .../cache/query/MultithreadedTester.java        |    73 +
 .../cache/query/PdxStringQueryJUnitTest.java    |   727 +
 .../gemstone/gemfire/cache/query/PerfQuery.java |   330 +
 .../gemfire/cache/query/QueryJUnitTest.java     |   457 +
 .../cache/query/QueryServiceJUnitTest.java      |   252 +
 .../gemfire/cache/query/QueryTestUtils.java     |  1640 ++
 .../cache/query/QueryTestUtilsJUnitTest.java    |   134 +
 .../gemfire/cache/query/RegionJUnitTest.java    |   226 +
 .../cache/query/TypedIteratorJUnitTest.java     |   133 +
 .../com/gemstone/gemfire/cache/query/Utils.java |    57 +
 .../query/cq/dunit/CqQueryTestListener.java     |   398 +
 .../gemfire/cache/query/data/Address.java       |    51 +
 .../gemstone/gemfire/cache/query/data/City.java |    57 +
 .../cache/query/data/CollectionHolder.java      |    90 +
 .../cache/query/data/ComparableWrapper.java     |    70 +
 .../gemfire/cache/query/data/Country.java       |   100 +
 .../gemstone/gemfire/cache/query/data/Data.java |    47 +
 .../gemfire/cache/query/data/District.java      |    65 +
 .../gemfire/cache/query/data/Employee.java      |    72 +
 .../gemfire/cache/query/data/Inventory.java     |   127 +
 .../gemfire/cache/query/data/Keywords.java      |    90 +
 .../gemfire/cache/query/data/Manager.java       |    43 +
 .../gemfire/cache/query/data/Numbers.java       |    52 +
 .../gemfire/cache/query/data/PhoneNo.java       |    42 +
 .../gemfire/cache/query/data/Portfolio.java     |   314 +
 .../gemfire/cache/query/data/PortfolioData.java |   154 +
 .../gemfire/cache/query/data/PortfolioNoDS.java |   240 +
 .../gemfire/cache/query/data/PortfolioPdx.java  |   311 +
 .../gemfire/cache/query/data/Position.java      |   166 +
 .../gemfire/cache/query/data/PositionNoDS.java  |   130 +
 .../gemfire/cache/query/data/PositionPdx.java   |   182 +
 .../query/data/ProhibitedSecurityQuote.java     |    66 +
 .../gemfire/cache/query/data/Quote.java         |   114 +
 .../gemfire/cache/query/data/Restricted.java    |    80 +
 .../cache/query/data/SecurityMaster.java        |   262 +
 .../gemfire/cache/query/data/State.java         |    81 +
 .../gemfire/cache/query/data/Street.java        |    38 +
 .../gemfire/cache/query/data/Student.java       |    77 +
 .../gemfire/cache/query/data/Vehicle.java       |    39 +
 .../gemfire/cache/query/data/Village.java       |    55 +
 .../query/dunit/CloseCacheAuthorization.java    |    62 +
 .../query/dunit/CompactRangeIndexDUnitTest.java |   204 +
 .../cache/query/dunit/CqTimeTestListener.java   |   266 +
 .../cache/query/dunit/GroupByDUnitImpl.java     |   328 +
 .../dunit/GroupByPartitionedQueryDUnitTest.java |   110 +
 .../query/dunit/GroupByQueryDUnitTest.java      |   189 +
 .../cache/query/dunit/HashIndexDUnitTest.java   |   132 +
 .../cache/query/dunit/HelperTestCase.java       |   267 +
 .../dunit/NonDistinctOrderByDUnitImpl.java      |   266 +
 .../NonDistinctOrderByPartitionedDUnitTest.java |   154 +
 .../query/dunit/PdxStringQueryDUnitTest.java    |  1987 ++
 .../dunit/QueryAPITestPartitionResolver.java    |    44 +
 .../cache/query/dunit/QueryAuthorization.java   |    70 +
 .../dunit/QueryDataInconsistencyDUnitTest.java  |   580 +
 .../dunit/QueryIndexUsingXMLDUnitTest.java      |   993 +
 .../QueryParamsAuthorizationDUnitTest.java      |   111 +
 .../QueryUsingFunctionContextDUnitTest.java     |  1048 +
 .../query/dunit/QueryUsingPoolDUnitTest.java    |  2588 +++
 .../cache/query/dunit/RemoteQueryDUnitTest.java |  1502 ++
 ...esourceManagerWithQueryMonitorDUnitTest.java |  1166 ++
 .../query/dunit/SelectStarQueryDUnitTest.java   |  1625 ++
 .../cache/query/facets/lang/Address.java        |    60 +
 .../gemfire/cache/query/facets/lang/Course.java |    91 +
 .../cache/query/facets/lang/Department.java     |    96 +
 .../query/facets/lang/DerivedEmployee.java      |    29 +
 .../cache/query/facets/lang/Employee.java       |   140 +
 .../cache/query/facets/lang/Faculty.java        |   134 +
 .../cache/query/facets/lang/G_Student.java      |    66 +
 .../gemfire/cache/query/facets/lang/Person.java |    96 +
 .../cache/query/facets/lang/Student.java        |   103 +
 .../cache/query/facets/lang/UG_Student.java     |    66 +
 .../gemfire/cache/query/facets/lang/Utils.java  |   134 +
 .../ComparisonOperatorsJUnitTest.java           |   185 +
 .../query/functional/ConstantsJUnitTest.java    |   109 +
 .../query/functional/CountStarJUnitTest.java    |   686 +
 .../CustomerOptimizationsJUnitTest.java         |  1386 ++
 .../DistinctAndNonDistinctQueryJUnitTest.java   |   154 +
 ...ctResultsWithDupValuesInRegionJUnitTest.java |   481 +
 .../query/functional/FunctionJUnitTest.java     |   315 +
 .../functional/GroupByPartitionedJUnitTest.java |    50 +
 .../functional/GroupByReplicatedJUnitTest.java  |    39 +
 .../cache/query/functional/GroupByTestImpl.java |  1010 +
 .../query/functional/GroupByTestInterface.java  |    58 +
 .../query/functional/INOperatorJUnitTest.java   |   471 +
 .../functional/IUM6Bug32345ReJUnitTest.java     |   224 +
 .../cache/query/functional/IUMJUnitTest.java    |   237 +
 .../IUMRCompositeIteratorJUnitTest.java         |   251 +
 .../IUMRMultiIndexesMultiRegionJUnitTest.java   |  1274 ++
 .../IUMRShuffleIteratorsJUnitTest.java          |   489 +
 .../functional/IUMRSingleRegionJUnitTest.java   |   901 +
 ...ependentOperandsInWhereClause2JUnitTest.java |   200 +
 .../IndexCreationDeadLockJUnitTest.java         |   309 +
 .../functional/IndexCreationJUnitTest.java      |  1088 ++
 .../IndexMaintenanceAsynchJUnitTest.java        |   178 +
 .../functional/IndexOnEntrySetJUnitTest.java    |   335 +
 .../functional/IndexOperatorJUnitTest.java      |   225 +
 .../IndexPrimaryKeyUsageJUnitTest.java          |   335 +
 .../IndexUsageInNestedQueryJUnitTest.java       |   152 +
 .../IndexUsageWithAliasAsProjAtrbt.java         |   177 +
 ...IndexUsageWithAliasAsProjAtrbtJUnitTest.java |   185 +
 .../IndexUseMultFrmSnglCondJUnitTest.java       |   274 +
 ...ndexWithSngleFrmAndMultCondQryJUnitTest.java |  1354 ++
 .../functional/IteratorTypeDefEmpJUnitTest.java |    87 +
 .../functional/IteratorTypeDefJUnitTest.java    |   163 +
 .../IteratorTypeDefaultTypesJUnitTest.java      |   426 +
 .../functional/IumMultConditionJUnitTest.java   |   231 +
 .../functional/JavaSerializationJUnitTest.java  |    68 +
 .../functional/LikePredicateJUnitTest.java      |  2386 +++
 .../query/functional/LimitClauseJUnitTest.java  |  1850 ++
 .../functional/LogicalOperatorsJUnitTest.java   |   201 +
 .../cache/query/functional/MiscJUnitTest.java   |   726 +
 .../functional/MultiIndexCreationJUnitTest.java |   385 +
 .../MultiRegionIndexUsageJUnitTest.java         |   903 +
 .../functional/MultipleRegionsJUnitTest.java    |   109 +
 .../NegativeNumberQueriesJUnitTest.java         |   127 +
 .../query/functional/NestedQueryJUnitTest.java  |   511 +
 .../NonDistinctOrderByPartitionedJUnitTest.java |   260 +
 .../NonDistinctOrderByReplicatedJUnitTest.java  |   411 +
 .../NonDistinctOrderByTestImplementation.java   |  1545 ++
 .../query/functional/NumericQueryJUnitTest.java |   337 +
 .../functional/OrderByPartitionedJUnitTest.java |   667 +
 .../functional/OrderByReplicatedJUnitTest.java  |   836 +
 .../functional/OrderByTestImplementation.java   |  1184 ++
 .../functional/ParameterBindingJUnitTest.java   |   178 +
 .../PdxGroupByPartitionedJUnitTest.java         |    40 +
 .../PdxGroupByReplicatedJUnitTest.java          |    37 +
 .../query/functional/PdxGroupByTestImpl.java    |  1025 +
 .../query/functional/PdxOrderByJUnitTest.java   |   357 +
 .../functional/QRegionInterfaceJUnitTest.java   |   164 +
 .../QueryREUpdateInProgressJUnitTest.java       |   436 +
 .../functional/QueryUndefinedJUnitTest.java     |   286 +
 .../functional/ReservedKeywordsJUnitTest.java   |    82 +
 .../ResultsDataSerializabilityJUnitTest.java    |   144 +
 .../query/functional/SelectToDateJUnitTest.java |   263 +
 .../functional/StructMemberAccessJUnitTest.java |   287 +
 .../query/functional/StructSetOrResultsSet.java |   456 +
 .../query/functional/TestNewFunctionSSorRS.java |   129 +
 .../CompiledAggregateFunctionJUnitTest.java     |   200 +
 .../CompiledGroupBySelectJUnitTest.java         |   161 +
 .../query/internal/CompiledInJUnitTest.java     |   460 +
 .../CompiledJunctionInternalsJUnitTest.java     |  3481 ++++
 .../internal/CopyOnReadQueryJUnitTest.java      |   418 +
 .../internal/ExecutionContextJUnitTest.java     |   405 +
 .../query/internal/IndexManagerJUnitTest.java   |   182 +
 .../internal/NWayMergeResultsJUnitTest.java     |   551 +
 .../internal/OrderByComparatorJUnitTest.java    |   206 +
 .../internal/ProjectionAttributeJUnitTest.java  |   241 +
 .../query/internal/QCompilerJUnitTest.java      |   452 +
 .../QueryExecutionContextJUnitTest.java         |    67 +
 ...ueryFromClauseCanonicalizationJUnitTest.java |   264 +
 .../QueryObjectSerializationJUnitTest.java      |   151 +
 .../QueryObserverCallbackJUnitTest.java         |   424 +
 .../query/internal/QueryTraceJUnitTest.java     |   449 +
 .../query/internal/QueryUtilsJUnitTest.java     |   308 +
 .../query/internal/ResultsBagJUnitTest.java     |   314 +
 .../ResultsBagLimitBehaviourJUnitTest.java      |   585 +
 .../ResultsCollectionWrapperLimitJUnitTest.java |   367 +
 .../SelectResultsComparatorJUnitTest.java       |    91 +
 .../StructBagLimitBehaviourJUnitTest.java       |   129 +
 .../query/internal/StructSetJUnitTest.java      |    77 +
 .../internal/aggregate/AggregatorJUnitTest.java |   215 +
 ...syncIndexUpdaterThreadShutdownJUnitTest.java |   123 +
 .../index/AsynchIndexMaintenanceJUnitTest.java  |   261 +
 .../CompactRangeIndexIndexMapJUnitTest.java     |   187 +
 .../index/CompactRangeIndexJUnitTest.java       |   506 +
 ...rrentIndexInitOnOverflowRegionDUnitTest.java |   468 +
 ...ndexOperationsOnOverflowRegionDUnitTest.java |   724 +
 ...pdateWithInplaceObjectModFalseDUnitTest.java |   714 +
 ...ConcurrentIndexUpdateWithoutWLDUnitTest.java |   800 +
 .../index/CopyOnReadIndexDUnitTest.java         |   652 +
 .../index/CopyOnReadIndexJUnitTest.java         |   457 +
 .../DeclarativeIndexCreationJUnitTest.java      |   123 +
 .../query/internal/index/EquijoinDUnitTest.java |   437 +
 .../internal/index/HashIndexJUnitTest.java      |  1592 ++
 .../internal/index/HashIndexSetJUnitTest.java   |   504 +
 .../index/IndexCreationInternalsJUnitTest.java  |   214 +
 .../internal/index/IndexElemArrayJUnitTest.java |   137 +
 .../internal/index/IndexHintJUnitTest.java      |   506 +
 .../query/internal/index/IndexJUnitTest.java    |    97 +
 .../index/IndexMaintainceJUnitTest.java         |   513 +
 .../index/IndexMaintenanceJUnitTest.java        |  1439 ++
 .../index/IndexStatisticsJUnitTest.java         |   862 +
 .../IndexTrackingQueryObserverDUnitTest.java    |   329 +
 .../IndexTrackingQueryObserverJUnitTest.java    |   172 +
 .../query/internal/index/IndexUseJUnitTest.java |  1890 ++
 .../IndexedMergeEquiJoinScenariosJUnitTest.java |   604 +
 ...itializeIndexEntryDestroyQueryDUnitTest.java |   455 +
 .../internal/index/MapIndexStoreJUnitTest.java  |   339 +
 .../MapRangeIndexMaintenanceJUnitTest.java      |   389 +
 .../index/MemoryIndexStoreJUnitTest.java        |   396 +
 ...exStoreWithInplaceModificationJUnitTest.java |    54 +
 .../index/MultiIndexCreationDUnitTest.java      |   201 +
 .../NewDeclarativeIndexCreationJUnitTest.java   |   173 +
 .../PartitionedRegionEquijoinDUnitTest.java     |   130 +
 .../index/PdxCopyOnReadQueryJUnitTest.java      |    77 +
 ...gRegionCreationIndexUpdateTypeJUnitTest.java |    98 +
 .../index/PutAllWithIndexPerfDUnitTest.java     |   216 +
 .../internal/index/RangeIndexAPIJUnitTest.java  |   422 +
 .../PRBasicIndexCreationDUnitTest.java          |  1050 +
 .../PRBasicIndexCreationDeadlockDUnitTest.java  |   235 +
 .../PRBasicMultiIndexCreationDUnitTest.java     |  1065 +
 .../partitioned/PRBasicQueryDUnitTest.java      |   273 +
 .../PRBasicRemoveIndexDUnitTest.java            |   142 +
 .../PRColocatedEquiJoinDUnitTest.java           |  1722 ++
 .../partitioned/PRIndexStatisticsJUnitTest.java |   704 +
 .../partitioned/PRInvalidQueryDUnitTest.java    |   133 +
 .../partitioned/PRInvalidQueryJUnitTest.java    |   127 +
 .../partitioned/PRQueryCacheCloseDUnitTest.java |   341 +
 .../PRQueryCacheClosedJUnitTest.java            |   260 +
 .../query/partitioned/PRQueryDUnitHelper.java   |  3048 +++
 .../query/partitioned/PRQueryDUnitTest.java     |  1228 ++
 .../query/partitioned/PRQueryJUnitTest.java     |   188 +
 .../partitioned/PRQueryNumThreadsJUnitTest.java |   165 +
 .../query/partitioned/PRQueryPerfDUnitTest.java |   505 +
 .../PRQueryRegionCloseDUnitTest.java            |   211 +
 .../PRQueryRegionClosedJUnitTest.java           |   257 +
 .../PRQueryRegionDestroyedDUnitTest.java        |   225 +
 .../PRQueryRegionDestroyedJUnitTest.java        |   254 +
 .../PRQueryRemoteNodeExceptionDUnitTest.java    |   786 +
 .../gemfire/cache/query/transaction/Person.java |    57 +
 .../query/transaction/QueryAndJtaJUnitTest.java |   479 +
 .../internal/ConnectionCountProbeJUnitTest.java |    51 +
 .../cache/snapshot/CacheSnapshotJUnitTest.java  |   128 +
 .../snapshot/ParallelSnapshotDUnitTest.java     |   197 +
 .../gemfire/cache/snapshot/RegionGenerator.java |   125 +
 .../cache/snapshot/RegionSnapshotJUnitTest.java |   294 +
 .../snapshot/SnapshotByteArrayDUnitTest.java    |   138 +
 .../cache/snapshot/SnapshotDUnitTest.java       |   224 +
 .../snapshot/SnapshotPerformanceDUnitTest.java  |   167 +
 .../cache/snapshot/SnapshotTestCase.java        |    92 +
 .../cache/snapshot/WanSnapshotJUnitTest.java    |    98 +
 .../cache/util/PasswordUtilJUnitTest.java       |    41 +
 .../gemfire/cache30/Bug34387DUnitTest.java      |   174 +
 .../gemfire/cache30/Bug34948DUnitTest.java      |   148 +
 .../gemfire/cache30/Bug35214DUnitTest.java      |   214 +
 .../gemfire/cache30/Bug38013DUnitTest.java      |   141 +
 .../gemfire/cache30/Bug38741DUnitTest.java      |   414 +
 .../gemfire/cache30/Bug40255JUnitTest.java      |   143 +
 .../gemfire/cache30/Bug40662JUnitTest.java      |    90 +
 .../gemfire/cache30/Bug44418JUnitTest.java      |   173 +
 .../gemfire/cache30/CacheCloseDUnitTest.java    |   104 +
 .../gemfire/cache30/CacheListenerTestCase.java  |   428 +
 .../gemfire/cache30/CacheLoaderTestCase.java    |   330 +
 .../gemfire/cache30/CacheLogRollDUnitTest.java  |   455 +
 .../gemfire/cache30/CacheMapTxnDUnitTest.java   |   534 +
 ...cheRegionsReliablityStatsCheckDUnitTest.java |   136 +
 .../cache30/CacheSerializableRunnable.java      |   114 +
 .../cache30/CacheStatisticsDUnitTest.java       |   515 +
 .../gemstone/gemfire/cache30/CacheTestCase.java |   653 +
 .../gemfire/cache30/CacheWriterTestCase.java    |   507 +
 .../cache30/CacheXMLPartitionResolver.java      |    78 +
 .../gemfire/cache30/CacheXml30DUnitTest.java    |   827 +
 .../gemfire/cache30/CacheXml40DUnitTest.java    |   150 +
 .../gemfire/cache30/CacheXml41DUnitTest.java    |   643 +
 .../gemfire/cache30/CacheXml45DUnitTest.java    |   398 +
 .../gemfire/cache30/CacheXml51DUnitTest.java    |   351 +
 .../gemfire/cache30/CacheXml55DUnitTest.java    |    53 +
 .../gemfire/cache30/CacheXml57DUnitTest.java    |   658 +
 .../gemfire/cache30/CacheXml58DUnitTest.java    |   505 +
 .../gemfire/cache30/CacheXml60DUnitTest.java    |   336 +
 .../gemfire/cache30/CacheXml61DUnitTest.java    |   125 +
 .../gemfire/cache30/CacheXml65DUnitTest.java    |  1159 ++
 .../gemfire/cache30/CacheXml66DUnitTest.java    |   376 +
 .../gemfire/cache30/CacheXml70DUnitTest.java    |   289 +
 .../gemfire/cache30/CacheXml80DUnitTest.java    |   297 +
 .../gemfire/cache30/CacheXml81DUnitTest.java    |   158 +
 .../gemfire/cache30/CacheXml90DUnitTest.java    |   234 +
 .../gemfire/cache30/CacheXmlTestCase.java       |   157 +
 .../cache30/CachedAllEventsDUnitTest.java       |   111 +
 .../gemfire/cache30/CallbackArgDUnitTest.java   |   185 +
 .../cache30/CertifiableTestCacheListener.java   |   148 +
 .../cache30/ClearMultiVmCallBkDUnitTest.java    |   249 +
 .../gemfire/cache30/ClearMultiVmDUnitTest.java  |   469 +
 .../cache30/ClientMembershipDUnitTest.java      |  1669 ++
 .../ClientMembershipSelectorDUnitTest.java      |    32 +
 .../ClientRegisterInterestDUnitTest.java        |   429 +
 ...ClientRegisterInterestSelectorDUnitTest.java |    32 +
 .../cache30/ClientServerCCEDUnitTest.java       |   633 +
 .../gemfire/cache30/ClientServerTestCase.java   |   391 +
 .../ConcurrentLeaveDuringGIIDUnitTest.java      |   216 +
 ...ibutedNoAckAsyncOverflowRegionDUnitTest.java |    61 +
 ...iskDistributedNoAckAsyncRegionDUnitTest.java |    53 +
 .../DiskDistributedNoAckRegionTestCase.java     |    42 +
 ...ributedNoAckSyncOverflowRegionDUnitTest.java |    63 +
 .../gemfire/cache30/DiskRegionDUnitTest.java    |  1636 ++
 .../gemfire/cache30/DiskRegionTestImpl.java     |   247 +
 .../cache30/DistAckMapMethodsDUnitTest.java     |   707 +
 ...istributedAckOverflowRegionCCEDUnitTest.java |    82 +
 ...tedAckOverflowRegionCCEOffHeapDUnitTest.java |    82 +
 ...tributedAckPersistentRegionCCEDUnitTest.java |   228 +
 ...dAckPersistentRegionCCEOffHeapDUnitTest.java |    82 +
 .../DistributedAckRegionCCEDUnitTest.java       |   694 +
 ...DistributedAckRegionCCEOffHeapDUnitTest.java |    82 +
 ...istributedAckRegionCompressionDUnitTest.java |    72 +
 .../cache30/DistributedAckRegionDUnitTest.java  |   140 +
 .../DistributedAckRegionOffHeapDUnitTest.java   |    82 +
 .../DistributedMulticastRegionDUnitTest.java    |   212 +
 .../DistributedNoAckRegionCCEDUnitTest.java     |   586 +
 ...stributedNoAckRegionCCEOffHeapDUnitTest.java |    82 +
 .../DistributedNoAckRegionDUnitTest.java        |   311 +
 .../DistributedNoAckRegionOffHeapDUnitTest.java |    82 +
 .../gemfire/cache30/DynamicRegionDUnitTest.java |   288 +
 .../gemfire/cache30/GlobalLockingDUnitTest.java |   391 +
 .../cache30/GlobalRegionCCEDUnitTest.java       |   245 +
 .../GlobalRegionCCEOffHeapDUnitTest.java        |    82 +
 .../gemfire/cache30/GlobalRegionDUnitTest.java  |   417 +
 .../cache30/GlobalRegionOffHeapDUnitTest.java   |    89 +
 .../cache30/LRUEvictionControllerDUnitTest.java |   488 +
 .../gemfire/cache30/LocalRegionDUnitTest.java   |   264 +
 .../MemLRUEvictionControllerDUnitTest.java      |   276 +
 .../gemfire/cache30/MultiVMRegionTestCase.java  |  9177 +++++++++
 .../gemfire/cache30/MyGatewayEventFilter1.java  |    61 +
 .../gemfire/cache30/MyGatewayEventFilter2.java  |    66 +
 .../cache30/MyGatewayTransportFilter1.java      |    53 +
 .../cache30/MyGatewayTransportFilter2.java      |    55 +
 .../OffHeapLRUEvictionControllerDUnitTest.java  |    80 +
 .../PRBucketSynchronizationDUnitTest.java       |   306 +
 .../PartitionedRegionCompressionDUnitTest.java  |    70 +
 .../cache30/PartitionedRegionDUnitTest.java     |   554 +
 ...tionedRegionMembershipListenerDUnitTest.java |   150 +
 .../PartitionedRegionOffHeapDUnitTest.java      |    81 +
 .../cache30/PreloadedRegionTestCase.java        |   102 +
 .../gemfire/cache30/ProxyDUnitTest.java         |   546 +
 .../cache30/PutAllCallBkRemoteVMDUnitTest.java  |   401 +
 .../cache30/PutAllCallBkSingleVMDUnitTest.java  |   321 +
 .../gemfire/cache30/PutAllMultiVmDUnitTest.java |   366 +
 .../gemfire/cache30/QueueMsgDUnitTest.java      |   312 +
 .../cache30/RRSynchronizationDUnitTest.java     |   269 +
 .../gemfire/cache30/ReconnectDUnitTest.java     |  1173 ++
 .../ReconnectedCacheServerDUnitTest.java        |    68 +
 .../cache30/RegionAttributesTestCase.java       |   266 +
 .../cache30/RegionExpirationDUnitTest.java      |   276 +
 .../RegionMembershipListenerDUnitTest.java      |   420 +
 .../RegionReliabilityDistAckDUnitTest.java      |    39 +
 .../RegionReliabilityDistNoAckDUnitTest.java    |    39 +
 .../RegionReliabilityGlobalDUnitTest.java       |    39 +
 .../RegionReliabilityListenerDUnitTest.java     |   209 +
 .../cache30/RegionReliabilityTestCase.java      |  1450 ++
 .../gemfire/cache30/RegionTestCase.java         |  4101 ++++
 .../gemfire/cache30/ReliabilityTestCase.java    |    59 +
 .../cache30/RemoveAllMultiVmDUnitTest.java      |   300 +
 .../gemfire/cache30/RequiredRolesDUnitTest.java |   440 +
 .../cache30/RolePerformanceDUnitTest.java       |   189 +
 .../gemfire/cache30/SearchAndLoadDUnitTest.java |  1017 +
 .../gemfire/cache30/SlowRecDUnitTest.java       |  1467 ++
 .../gemfire/cache30/TXDistributedDUnitTest.java |  1527 ++
 .../gemfire/cache30/TXOrderDUnitTest.java       |   434 +
 .../cache30/TXRestrictionsDUnitTest.java        |   100 +
 .../gemfire/cache30/TestCacheCallback.java      |   102 +
 .../gemfire/cache30/TestCacheListener.java      |   222 +
 .../gemfire/cache30/TestCacheLoader.java        |    45 +
 .../gemfire/cache30/TestCacheWriter.java        |   131 +
 .../gemfire/cache30/TestDiskRegion.java         |   257 +
 .../gemstone/gemfire/cache30/TestHeapLRU.java   |    90 +
 .../gemfire/cache30/TestPdxSerializer.java      |    69 +
 .../cache30/TestTransactionListener.java        |    93 +
 .../gemfire/cache30/TestTransactionWriter.java  |    44 +
 .../AnalyzeSerializablesJUnitTest.java          |   325 +
 .../codeAnalysis/ClassAndMethodDetails.java     |   154 +
 .../gemfire/codeAnalysis/ClassAndMethods.java   |    50 +
 .../codeAnalysis/ClassAndVariableDetails.java   |   108 +
 .../gemfire/codeAnalysis/ClassAndVariables.java |    64 +
 .../codeAnalysis/CompiledClassUtils.java        |   433 +
 .../codeAnalysis/decode/CompiledAttribute.java  |    46 +
 .../codeAnalysis/decode/CompiledClass.java      |   276 +
 .../codeAnalysis/decode/CompiledCode.java       |    70 +
 .../codeAnalysis/decode/CompiledField.java      |   116 +
 .../codeAnalysis/decode/CompiledMethod.java     |   153 +
 .../gemfire/codeAnalysis/decode/cp/Cp.java      |    78 +
 .../gemfire/codeAnalysis/decode/cp/CpClass.java |    42 +
 .../codeAnalysis/decode/cp/CpDouble.java        |    40 +
 .../codeAnalysis/decode/cp/CpFieldref.java      |    33 +
 .../gemfire/codeAnalysis/decode/cp/CpFloat.java |    31 +
 .../codeAnalysis/decode/cp/CpInteger.java       |    31 +
 .../decode/cp/CpInterfaceMethodref.java         |    24 +
 .../codeAnalysis/decode/cp/CpInvokeDynamic.java |    33 +
 .../gemfire/codeAnalysis/decode/cp/CpLong.java  |    39 +
 .../codeAnalysis/decode/cp/CpMethodHandle.java  |    33 +
 .../codeAnalysis/decode/cp/CpMethodType.java    |    31 +
 .../codeAnalysis/decode/cp/CpMethodref.java     |    25 +
 .../codeAnalysis/decode/cp/CpNameAndType.java   |    27 +
 .../codeAnalysis/decode/cp/CpString.java        |    25 +
 .../gemfire/codeAnalysis/decode/cp/CpUtf8.java  |   133 +
 .../AbstractLauncherIntegrationJUnitTest.java   |    71 +
 .../distributed/AbstractLauncherJUnitTest.java  |   300 +
 .../AbstractLauncherJUnitTestCase.java          |   255 +
 .../AbstractLauncherServiceStatusJUnitTest.java |   265 +
 .../AbstractLocatorLauncherJUnitTestCase.java   |   106 +
 .../AbstractServerLauncherJUnitTestCase.java    |    94 +
 .../gemfire/distributed/AuthInitializer.java    |    45 +
 .../distributed/DistributedMemberDUnitTest.java |   432 +
 .../DistributedSystemConnectPerf.java           |   135 +
 .../distributed/DistributedSystemDUnitTest.java |   406 +
 .../DistributedSystemIntegrationJUnitTest.java  |    91 +
 .../distributed/DistributedSystemJUnitTest.java |    78 +
 .../distributed/DistributedTestSuite.java       |    36 +
 .../distributed/HostedLocatorsDUnitTest.java    |   195 +
 .../LauncherMemberMXBeanJUnitTest.java          |   153 +
 .../gemfire/distributed/LauncherTestSuite.java  |    48 +
 .../gemfire/distributed/LocatorDUnitTest.java   |  1910 ++
 .../gemfire/distributed/LocatorJUnitTest.java   |   200 +
 .../LocatorLauncherIntegrationJUnitTest.java    |   248 +
 .../distributed/LocatorLauncherJUnitTest.java   |   322 +
 .../LocatorLauncherLocalFileJUnitTest.java      |    52 +
 .../LocatorLauncherLocalJUnitTest.java          |   843 +
 .../LocatorLauncherRemoteFileJUnitTest.java     |   219 +
 .../LocatorLauncherRemoteJUnitTest.java         |  1005 +
 .../distributed/LocatorStateJUnitTest.java      |   208 +
 .../gemfire/distributed/MyAuthenticator.java    |    54 +
 .../gemfire/distributed/MyPrincipal.java        |    29 +
 .../gemfire/distributed/RoleDUnitTest.java      |   170 +
 .../ServerLauncherIntegrationJUnitTest.java     |   312 +
 .../distributed/ServerLauncherJUnitTest.java    |   809 +
 .../ServerLauncherLocalFileJUnitTest.java       |    55 +
 .../ServerLauncherLocalJUnitTest.java           |  1076 ++
 .../ServerLauncherRemoteFileJUnitTest.java      |   223 +
 .../ServerLauncherRemoteJUnitTest.java          |  1428 ++
 .../ServerLauncherWithSpringJUnitTest.java      |    99 +
 .../distributed/SystemAdminDUnitTest.java       |   125 +
 .../AtomicLongWithTerminalStateJUnitTest.java   |    41 +
 .../distributed/internal/Bug40751DUnitTest.java |   138 +
 .../ConsoleDistributionManagerDUnitTest.java    |   442 +
 .../distributed/internal/DateMessage.java       |    98 +
 .../internal/DistributionAdvisorDUnitTest.java  |    98 +
 .../internal/DistributionConfigJUnitTest.java   |   313 +
 .../internal/DistributionManagerDUnitTest.java  |   579 +
 .../InternalDistributedSystemJUnitTest.java     |   831 +
 .../gemfire/distributed/internal/LDM.java       |    71 +
 .../internal/LocatorLoadSnapshotJUnitTest.java  |   384 +
 .../internal/ProduceDateMessages.java           |    53 +
 .../internal/ProductUseLogDUnitTest.java        |   108 +
 .../internal/ProductUseLogJUnitTest.java        |    86 +
 .../internal/ServerLocatorJUnitTest.java        |    74 +
 .../internal/SharedConfigurationJUnitTest.java  |    57 +
 .../internal/StartupMessageDataJUnitTest.java   |   296 +
 .../deadlock/DeadlockDetectorJUnitTest.java     |   333 +
 .../deadlock/DependencyGraphJUnitTest.java      |    87 +
 .../GemFireDeadlockDetectorDUnitTest.java       |   243 +
 .../deadlock/UnsafeThreadLocalJUnitTest.java    |    61 +
 .../internal/locks/CollaborationJUnitTest.java  |   617 +
 .../internal/locks/DLockGrantorHelper.java      |    98 +
 .../locks/DLockReentrantLockJUnitTest.java      |    84 +
 .../membership/MembershipJUnitTest.java         |   364 +
 .../internal/membership/NetViewJUnitTest.java   |   269 +
 .../membership/gms/GMSMemberJUnitTest.java      |   164 +
 .../membership/gms/MembershipManagerHelper.java |   171 +
 .../gms/auth/GMSAuthenticatorJUnitTest.java     |   316 +
 .../gms/fd/GMSHealthMonitorJUnitTest.java       |   638 +
 .../locator/GMSLocatorRecoveryJUnitTest.java    |   186 +
 .../gms/membership/GMSJoinLeaveJUnitTest.java   |  1231 ++
 .../gms/membership/StatRecorderJUnitTest.java   |   227 +
 .../messenger/GMSQuorumCheckerJUnitTest.java    |   359 +
 .../membership/gms/messenger/InterceptUDP.java  |   109 +
 .../messenger/JGroupsMessengerJUnitTest.java    |   881 +
 .../gms/mgr/GMSMembershipManagerJUnitTest.java  |   436 +
 .../StreamingOperationManyDUnitTest.java        |   223 +
 .../StreamingOperationOneDUnitTest.java         |   182 +
 .../TcpServerBackwardCompatDUnitTest.java       |   257 +
 .../internal/tcpserver/TcpServerJUnitTest.java  |   221 +
 .../support/DistributedSystemAdapter.java       |   258 +
 .../gemfire/disttx/CacheMapDistTXDUnitTest.java |    65 +
 .../gemfire/disttx/DistTXDebugDUnitTest.java    |  1018 +
 .../disttx/DistTXDistributedTestSuite.java      |    42 +
 .../gemfire/disttx/DistTXExpiryJUnitTest.java   |    57 +
 .../gemfire/disttx/DistTXJUnitTest.java         |    96 +
 .../disttx/DistTXManagerImplJUnitTest.java      |    54 +
 .../gemfire/disttx/DistTXOrderDUnitTest.java    |    55 +
 .../disttx/DistTXPersistentDebugDUnitTest.java  |   132 +
 .../DistTXReleasesOffHeapOnCloseJUnitTest.java  |    53 +
 .../disttx/DistTXRestrictionsDUnitTest.java     |    46 +
 .../disttx/DistTXWithDeltaDUnitTest.java        |    38 +
 .../gemfire/disttx/DistTXWriterJUnitTest.java   |    56 +
 .../disttx/DistTXWriterOOMEJUnitTest.java       |    57 +
 .../disttx/DistributedTransactionDUnitTest.java |  2202 +++
 .../gemfire/disttx/PRDistTXDUnitTest.java       |    65 +
 .../gemfire/disttx/PRDistTXJUnitTest.java       |    92 +
 .../disttx/PRDistTXWithVersionsDUnitTest.java   |    66 +
 ...entPartitionedRegionWithDistTXDUnitTest.java |    46 +
 .../internal/AbstractConfigJUnitTest.java       |   114 +
 .../gemfire/internal/ArrayEqualsJUnitTest.java  |   193 +
 .../gemfire/internal/AvailablePortHelper.java   |   133 +
 .../internal/AvailablePortJUnitTest.java        |    75 +
 ...wardCompatibilitySerializationDUnitTest.java |   300 +
 .../gemfire/internal/Bug49856JUnitTest.java     |    85 +
 .../gemfire/internal/Bug51616JUnitTest.java     |    61 +
 .../gemfire/internal/ByteArrayData.java         |    73 +
 .../gemstone/gemfire/internal/ClassBuilder.java |   291 +
 .../ClassNotFoundExceptionDUnitTest.java        |   244 +
 .../internal/ClassPathLoaderJUnitTest.java      |  1262 ++
 .../gemfire/internal/ConfigSourceJUnitTest.java |    89 +
 .../internal/CopyOnWriteHashSetJUnitTest.java   |   103 +
 .../internal/DataSerializableJUnitTest.java     |  3671 ++++
 .../gemfire/internal/FileUtilJUnitTest.java     |    87 +
 .../internal/GemFireStatSamplerJUnitTest.java   |   618 +
 .../GemFireVersionIntegrationJUnitTest.java     |    54 +
 .../internal/GemFireVersionJUnitTest.java       |   102 +
 .../internal/HeapDataOutputStreamJUnitTest.java |   154 +
 .../gemfire/internal/InlineKeyJUnitTest.java    |   173 +
 .../gemfire/internal/JSSESocketJUnitTest.java   |   247 +
 .../internal/JarClassLoaderJUnitTest.java       |   828 +
 .../gemfire/internal/JarDeployerDUnitTest.java  |   747 +
 .../com/gemstone/gemfire/internal/JavaExec.java |    69 +
 .../gemfire/internal/LineWrapUnitJUnitTest.java |    52 +
 .../gemstone/gemfire/internal/LongBuffer.java   |    96 +
 .../gemfire/internal/NanoTimerJUnitTest.java    |   134 +
 .../gemfire/internal/ObjIdMapJUnitTest.java     |   256 +
 .../internal/OneTaskOnlyDecoratorJUnitTest.java |   165 +
 .../internal/PdxDeleteFieldDUnitTest.java       |   213 +
 .../internal/PdxDeleteFieldJUnitTest.java       |   214 +
 .../gemfire/internal/PdxRenameDUnitTest.java    |   217 +
 .../gemfire/internal/PdxRenameJUnitTest.java    |   164 +
 .../PutAllOperationContextJUnitTest.java        |   197 +
 .../internal/SSLConfigIntegrationJUnitTest.java |    51 +
 .../gemfire/internal/SSLConfigJUnitTest.java    |  1233 ++
 ...hreadPoolExecutorWithKeepAliveJUnitTest.java |   342 +
 .../internal/SimpleStatSamplerJUnitTest.java    |   358 +
 .../gemfire/internal/SocketCloserJUnitTest.java |   195 +
 .../internal/SocketCloserWithWaitJUnitTest.java |    38 +
 .../StatArchiveWriterReaderJUnitTest.java       |  1735 ++
 .../gemfire/internal/StatSamplerJUnitTest.java  |   361 +
 .../gemfire/internal/StatSamplerTestCase.java   |   185 +
 .../internal/UniqueIdGeneratorJUnitTest.java    |    68 +
 .../internal/cache/AbstractRegionJUnitTest.java |   513 +
 .../internal/cache/AbstractRegionMapTest.java   |   186 +
 .../gemfire/internal/cache/BackupDUnitTest.java |   800 +
 .../gemfire/internal/cache/BackupJUnitTest.java |   435 +
 .../internal/cache/Bug33359DUnitTest.java       |   160 +
 .../internal/cache/Bug33726DUnitTest.java       |   161 +
 .../internal/cache/Bug33726JUnitTest.java       |   134 +
 .../Bug34179TooManyFilesOpenJUnitTest.java      |   130 +
 .../internal/cache/Bug34583JUnitTest.java       |   101 +
 .../internal/cache/Bug37241DUnitTest.java       |   233 +
 .../internal/cache/Bug37244JUnitTest.java       |   279 +
 .../internal/cache/Bug37377DUnitTest.java       |   380 +
 .../internal/cache/Bug37500JUnitTest.java       |   184 +
 .../internal/cache/Bug39079DUnitTest.java       |   411 +
 .../internal/cache/Bug40299DUnitTest.java       |   304 +
 .../internal/cache/Bug40632DUnitTest.java       |   148 +
 .../internal/cache/Bug41091DUnitTest.java       |   174 +
 .../internal/cache/Bug41733DUnitTest.java       |   216 +
 .../internal/cache/Bug41957DUnitTest.java       |   161 +
 .../internal/cache/Bug42055DUnitTest.java       |    88 +
 .../internal/cache/Bug45164DUnitTest.java       |   104 +
 .../internal/cache/Bug45934DUnitTest.java       |   134 +
 .../internal/cache/Bug47667DUnitTest.java       |    87 +
 .../internal/cache/Bug48182JUnitTest.java       |   200 +
 .../internal/cache/CacheAdvisorDUnitTest.java   |   281 +
 .../cache/CacheLifecycleListenerJUnitTest.java  |   324 +
 .../internal/cache/CacheServiceJUnitTest.java   |    59 +
 .../cache/ChunkValueWrapperJUnitTest.java       |   188 +
 .../internal/cache/ClearDAckDUnitTest.java      |   286 +
 .../internal/cache/ClearGlobalDUnitTest.java    |   214 +
 ...ssagesRegionCreationAndDestroyJUnitTest.java |   173 +
 .../cache/ClientServerGetAllDUnitTest.java      |   817 +
 ...ServerInvalidAndDestroyedEntryDUnitTest.java |   514 +
 .../ClientServerTransactionCCEDUnitTest.java    |   108 +
 .../cache/ClientServerTransactionDUnitTest.java |  3389 ++++
 .../cache/ComplexDiskRegionJUnitTest.java       |   169 +
 .../ConcurrentDestroySubRegionDUnitTest.java    |   173 +
 ...entFlushingAndRegionOperationsJUnitTest.java |   641 +
 .../cache/ConcurrentMapLocalJUnitTest.java      |   105 +
 .../cache/ConcurrentMapOpsDUnitTest.java        |  1238 ++
 .../ConcurrentRegionOperationsJUnitTest.java    |   925 +
 ...rentRollingAndRegionOperationsJUnitTest.java |   996 +
 .../internal/cache/ConflationJUnitTest.java     |   409 +
 .../cache/ConnectDisconnectDUnitTest.java       |   185 +
 .../cache/CustomerIDPartitionResolver.java      |    86 +
 .../internal/cache/DeltaFaultInDUnitTest.java   |   145 +
 .../cache/DeltaPropagationDUnitTest.java        |  1515 ++
 .../cache/DeltaPropagationStatsDUnitTest.java   |   626 +
 .../internal/cache/DeltaSizingDUnitTest.java    |   265 +
 .../gemfire/internal/cache/DiskIFJUnitTest.java |   796 +
 .../gemfire/internal/cache/DiskIdJUnitTest.java |   238 +
 .../internal/cache/DiskInitFileJUnitTest.java   |   113 +
 .../cache/DiskOfflineCompactionJUnitTest.java   |   826 +
 .../internal/cache/DiskOldAPIsJUnitTest.java    |   437 +
 ...iskRandomOperationsAndRecoveryJUnitTest.java |   715 +
 .../cache/DiskRegByteArrayDUnitTest.java        |   270 +
 .../cache/DiskRegCacheXmlJUnitTest.java         |   299 +
 .../DiskRegCachexmlGeneratorJUnitTest.java      |   302 +
 .../internal/cache/DiskRegCbkChkJUnitTest.java  |   118 +
 .../DiskRegOplogSwtchingAndRollerJUnitTest.java |  1021 +
 .../cache/DiskRegRecoveryJUnitTest.java         |  1495 ++
 .../cache/DiskRegionAsyncRecoveryJUnitTest.java |   538 +
 ...RegionChangingRegionAttributesJUnitTest.java |   143 +
 .../cache/DiskRegionClearJUnitTest.java         |   288 +
 .../internal/cache/DiskRegionHelperFactory.java |   263 +
 .../DiskRegionIllegalArguementsJUnitTest.java   |   281 +
 ...iskRegionIllegalCacheXMLvaluesJUnitTest.java |   146 +
 .../internal/cache/DiskRegionJUnitTest.java     |  3141 +++
 .../internal/cache/DiskRegionProperties.java    |   222 +
 .../internal/cache/DiskRegionTestingBase.java   |   404 +
 .../cache/DiskStoreFactoryJUnitTest.java        |   450 +
 .../cache/DiskWriteAttributesJUnitTest.java     |   223 +
 ...DistrbutedRegionProfileOffHeapDUnitTest.java |   252 +
 .../cache/DistributedCacheTestCase.java         |   473 +
 .../cache/EnumListenerEventJUnitTest.java       |    73 +
 .../internal/cache/EventTrackerDUnitTest.java   |   418 +
 .../internal/cache/EvictionDUnitTest.java       |   247 +
 .../cache/EvictionObjectSizerDUnitTest.java     |   358 +
 .../internal/cache/EvictionStatsDUnitTest.java  |   557 +
 .../internal/cache/EvictionTestBase.java        |   578 +
 .../internal/cache/FaultingInJUnitTest.java     |   236 +
 .../cache/FixedPRSinglehopDUnitTest.java        |   896 +
 .../internal/cache/GIIDeltaDUnitTest.java       |  2632 +++
 .../internal/cache/GIIFlowControlDUnitTest.java |   455 +
 .../internal/cache/GridAdvisorDUnitTest.java    |  1081 ++
 .../internal/cache/HABug36773DUnitTest.java     |   370 +
 .../HAOverflowMemObjectSizerDUnitTest.java      |   302 +
 .../cache/IncrementalBackupDUnitTest.java       |  1104 ++
 .../cache/InterruptClientServerDUnitTest.java   |   252 +
 .../internal/cache/InterruptDiskJUnitTest.java  |   135 +
 ...InterruptsConserveSocketsFalseDUnitTest.java |    37 +
 .../internal/cache/InterruptsDUnitTest.java     |   213 +
 .../internal/cache/IteratorDUnitTest.java       |   104 +
 .../LIFOEvictionAlgoEnabledRegionJUnitTest.java |   343 +
 ...victionAlgoMemoryEnabledRegionJUnitTest.java |   436 +
 .../internal/cache/MapClearGIIDUnitTest.java    |   286 +
 .../internal/cache/MapInterface2JUnitTest.java  |   281 +
 .../internal/cache/MapInterfaceJUnitTest.java   |   301 +
 .../internal/cache/MockCacheService.java        |    24 +
 .../internal/cache/MockCacheServiceImpl.java    |    39 +
 .../MultipleOplogsRollingFeatureJUnitTest.java  |   257 +
 .../cache/NetSearchMessagingDUnitTest.java      |   442 +
 .../cache/OffHeapEvictionDUnitTest.java         |   135 +
 .../cache/OffHeapEvictionStatsDUnitTest.java    |    88 +
 .../gemfire/internal/cache/OffHeapTestUtil.java |    64 +
 .../cache/OfflineSnapshotJUnitTest.java         |   137 +
 .../gemfire/internal/cache/OldVLJUnitTest.java  |    92 +
 .../cache/OldValueImporterTestBase.java         |   181 +
 .../cache/OplogEntryIdMapJUnitTest.java         |    99 +
 .../cache/OplogEntryIdSetJUnitTest.java         |    83 +
 .../gemfire/internal/cache/OplogJUnitTest.java  |  4034 ++++
 .../internal/cache/OplogRVVJUnitTest.java       |   173 +
 .../cache/OrderedTombstoneMapJUnitTest.java     |    59 +
 .../cache/P2PDeltaPropagationDUnitTest.java     |   614 +
 .../internal/cache/PRBadToDataDUnitTest.java    |   109 +
 .../cache/PRConcurrentMapOpsJUnitTest.java      |   231 +
 .../cache/PRDataStoreMemoryJUnitTest.java       |   154 +
 .../PRDataStoreMemoryOffHeapJUnitTest.java      |    51 +
 .../gemfire/internal/cache/PRTXJUnitTest.java   |   150 +
 .../cache/PartitionAttributesImplJUnitTest.java |   543 +
 .../cache/PartitionListenerDUnitTest.java       |   203 +
 ...dRegionAPIConserveSocketsFalseDUnitTest.java |    45 +
 .../cache/PartitionedRegionAPIDUnitTest.java    |  1512 ++
 .../PartitionedRegionAsSubRegionDUnitTest.java  |   337 +
 ...gionBucketCreationDistributionDUnitTest.java |  1543 ++
 .../PartitionedRegionCacheCloseDUnitTest.java   |   297 +
 ...rtitionedRegionCacheLoaderForRootRegion.java |    62 +
 ...artitionedRegionCacheLoaderForSubRegion.java |    65 +
 ...rtitionedRegionCacheXMLExampleDUnitTest.java |   134 +
 .../PartitionedRegionCreationDUnitTest.java     |   914 +
 .../PartitionedRegionCreationJUnitTest.java     |   548 +
 .../cache/PartitionedRegionDUnitTestCase.java   |   531 +
 .../PartitionedRegionDataStoreJUnitTest.java    |   260 +
 ...rtitionedRegionDelayedRecoveryDUnitTest.java |   310 +
 .../PartitionedRegionDestroyDUnitTest.java      |   309 +
 .../PartitionedRegionEntryCountDUnitTest.java   |   149 +
 .../PartitionedRegionEvictionDUnitTest.java     |  1762 ++
 .../cache/PartitionedRegionHADUnitTest.java     |   506 +
 ...onedRegionHAFailureAndRecoveryDUnitTest.java |   535 +
 .../cache/PartitionedRegionHelperJUnitTest.java |    48 +
 .../PartitionedRegionInvalidateDUnitTest.java   |   212 +
 ...artitionedRegionLocalMaxMemoryDUnitTest.java |   318 +
 ...nedRegionLocalMaxMemoryOffHeapDUnitTest.java |    73 +
 .../PartitionedRegionMultipleDUnitTest.java     |   600 +
 ...rtitionedRegionOffHeapEvictionDUnitTest.java |    94 +
 .../cache/PartitionedRegionPRIDDUnitTest.java   |   270 +
 .../cache/PartitionedRegionQueryDUnitTest.java  |  1160 ++
 ...artitionedRegionQueryEvaluatorJUnitTest.java |   307 +
 ...artitionedRegionRedundancyZoneDUnitTest.java |   165 +
 ...tionedRegionSerializableObjectJUnitTest.java |   178 +
 .../PartitionedRegionSingleHopDUnitTest.java    |  2386 +++
 ...RegionSingleHopWithServerGroupDUnitTest.java |  1738 ++
 ...onedRegionSingleNodeOperationsJUnitTest.java |  1542 ++
 .../cache/PartitionedRegionSizeDUnitTest.java   |   609 +
 .../cache/PartitionedRegionStatsDUnitTest.java  |   649 +
 .../cache/PartitionedRegionStatsJUnitTest.java  |   534 +
 .../cache/PartitionedRegionTestHelper.java      |   337 +
 .../PartitionedRegionTestUtilsDUnitTest.java    |   576 +
 .../PartitionedRegionWithSameNameDUnitTest.java |   924 +
 .../PersistentPartitionedRegionJUnitTest.java   |   225 +
 .../internal/cache/PutAllDAckDUnitTest.java     |   228 +
 .../internal/cache/PutAllGlobalDUnitTest.java   |   296 +
 .../cache/RegionEntryFlagsJUnitTest.java        |    97 +
 .../internal/cache/RegionListenerJUnitTest.java |    63 +
 .../cache/RemotePutReplyMessageJUnitTest.java   |    53 +
 .../cache/RemoteTransactionCCEDUnitTest.java    |    35 +
 .../cache/RemoteTransactionDUnitTest.java       |  4322 +++++
 .../internal/cache/RemoveAllDAckDUnitTest.java  |   173 +
 .../internal/cache/RemoveDAckDUnitTest.java     |   201 +
 .../internal/cache/RemoveGlobalDUnitTest.java   |   250 +
 .../internal/cache/RunCacheInOldGemfire.java    |   188 +
 .../cache/SimpleDiskRegionJUnitTest.java        |   390 +
 .../internal/cache/SingleHopStatsDUnitTest.java |   549 +
 .../internal/cache/SizingFlagDUnitTest.java     |  1039 +
 .../internal/cache/SnapshotTestUtil.java        |    47 +
 .../internal/cache/SystemFailureDUnitTest.java  |   877 +
 .../internal/cache/TXManagerImplJUnitTest.java  |   334 +
 .../cache/TXReservationMgrJUnitTest.java        |   150 +
 .../gemfire/internal/cache/TestDelta.java       |    96 +
 .../internal/cache/TestHelperForHydraTests.java |    32 +
 .../internal/cache/TestNonSizerObject.java      |    63 +
 .../internal/cache/TestObjectSizerImpl.java     |    72 +
 .../gemfire/internal/cache/TestUtils.java       |    32 +
 .../cache/TombstoneCreationJUnitTest.java       |   231 +
 .../cache/TransactionsWithDeltaDUnitTest.java   |   376 +
 .../internal/cache/UnitTestValueHolder.java     |    43 +
 .../gemfire/internal/cache/UnzipUtil.java       |    84 +
 .../internal/cache/UpdateVersionJUnitTest.java  |   407 +
 .../gemfire/internal/cache/VLJUnitTest.java     |   130 +
 .../cache/control/FilterByPathJUnitTest.java    |    96 +
 .../cache/control/MemoryMonitorJUnitTest.java   |   762 +
 .../control/MemoryMonitorOffHeapJUnitTest.java  |   338 +
 .../control/MemoryThresholdsJUnitTest.java      |   152 +
 .../control/RebalanceOperationDUnitTest.java    |  3269 ++++
 .../control/TestMemoryThresholdListener.java    |   169 +
 ...skRegOverflowAsyncGetInMemPerfJUnitTest.java |   136 +
 ...iskRegOverflowAsyncJUnitPerformanceTest.java |   167 +
 ...lowSyncGetInMemPerfJUnitPerformanceTest.java |   129 +
 ...DiskRegOverflowSyncJUnitPerformanceTest.java |   169 +
 ...egionOverflowAsyncRollingOpLogJUnitTest.java |   225 +
 ...RegionOverflowSyncRollingOpLogJUnitTest.java |   223 +
 .../DiskRegionPerfJUnitPerformanceTest.java     |   570 +
 .../DiskRegionPersistOnlySyncJUnitTest.java     |   234 +
 ...DiskRegionRollOpLogJUnitPerformanceTest.java |   638 +
 ...ltiThreadedOplogPerJUnitPerformanceTest.java |   216 +
 .../cache/execute/Bug51193DUnitTest.java        |   247 +
 .../ClientServerFunctionExecutionDUnitTest.java |   952 +
 .../execute/ColocationFailoverDUnitTest.java    |   531 +
 .../cache/execute/CustomResultCollector.java    |    50 +
 .../execute/CustomerIDPartitionResolver.java    |    82 +
 ...ributedRegionFunctionExecutionDUnitTest.java |  1657 ++
 .../FunctionExecution_ExceptionDUnitTest.java   |   646 +
 .../execute/FunctionServiceStatsDUnitTest.java  |  1364 ++
 .../cache/execute/LocalDataSetDUnitTest.java    |   390 +
 .../cache/execute/LocalDataSetFunction.java     |    90 +
 .../execute/LocalDataSetIndexingDUnitTest.java  |   303 +
 .../LocalFunctionExecutionDUnitTest.java        |   185 +
 .../MemberFunctionExecutionDUnitTest.java       |   682 +
 .../MultiRegionFunctionExecutionDUnitTest.java  |   298 +
 .../execute/MyFunctionExecutionException.java   |    59 +
 .../cache/execute/MyTransactionFunction.java    |   517 +
 .../OnGroupsFunctionExecutionDUnitTest.java     |  1246 ++
 ...ntServerFunctionExecutionNoAckDUnitTest.java |   254 +
 ...tServerRegionFunctionExecutionDUnitTest.java |  1672 ++
 ...egionFunctionExecutionFailoverDUnitTest.java |   579 +
 ...onFunctionExecutionNoSingleHopDUnitTest.java |  1273 ++
 ...onExecutionSelectorNoSingleHopDUnitTest.java |  1231 ++
 ...gionFunctionExecutionSingleHopDUnitTest.java |  1219 ++
 .../cache/execute/PRClientServerTestBase.java   |   872 +
 .../cache/execute/PRColocationDUnitTest.java    |  2737 +++
 .../execute/PRCustomPartitioningDUnitTest.java  |   575 +
 .../execute/PRFunctionExecutionDUnitTest.java   |  3215 +++
 .../PRFunctionExecutionTimeOutDUnitTest.java    |   885 +
 ...ctionExecutionWithResultSenderDUnitTest.java |   663 +
 .../execute/PRPerformanceTestDUnitTest.java     |   425 +
 .../cache/execute/PRTransactionDUnitTest.java   |   765 +
 .../PRTransactionWithVersionsDUnitTest.java     |    29 +
 .../internal/cache/execute/PerfFunction.java    |    69 +
 .../internal/cache/execute/PerfTxFunction.java  |    74 +
 .../cache/execute/PerformanceTestFunction.java  |    74 +
 .../execute/SingleHopGetAllPutAllDUnitTest.java |   200 +
 .../internal/cache/execute/TestFunction.java    |   150 +
 .../internal/cache/execute/data/CustId.java     |    72 +
 .../internal/cache/execute/data/Customer.java   |    77 +
 .../internal/cache/execute/data/Order.java      |    65 +
 .../internal/cache/execute/data/OrderId.java    |    82 +
 .../internal/cache/execute/data/Shipment.java   |    65 +
 .../internal/cache/execute/data/ShipmentId.java |    89 +
 .../SimpleExtensionPointJUnitTest.java          |   215 +
 .../extension/mock/AbstractMockExtension.java   |    61 +
 .../mock/AbstractMockExtensionXmlGenerator.java |    41 +
 .../mock/AlterMockCacheExtensionFunction.java   |    90 +
 .../mock/AlterMockRegionExtensionFunction.java  |   104 +
 .../mock/CreateMockCacheExtensionFunction.java  |    86 +
 .../mock/CreateMockRegionExtensionFunction.java |   101 +
 .../mock/DestroyMockCacheExtensionFunction.java |    89 +
 .../DestroyMockRegionExtensionFunction.java     |    99 +
 .../extension/mock/MockCacheExtension.java      |    53 +
 .../mock/MockCacheExtensionXmlGenerator.java    |    57 +
 .../extension/mock/MockExtensionCommands.java   |   219 +
 .../extension/mock/MockExtensionXmlParser.java  |   102 +
 .../extension/mock/MockRegionExtension.java     |    47 +
 .../mock/MockRegionExtensionXmlGenerator.java   |    57 +
 ...gionFunctionFunctionInvocationException.java |    60 +
 .../functions/DistributedRegionFunction.java    |    97 +
 .../cache/functions/LocalDataSetFunction.java   |    89 +
 .../internal/cache/functions/TestFunction.java  |  1148 ++
 .../ha/BlockingHARQAddOperationJUnitTest.java   |   239 +
 .../cache/ha/BlockingHARQStatsJUnitTest.java    |    77 +
 .../cache/ha/BlockingHARegionJUnitTest.java     |   480 +
 .../ha/BlockingHARegionQueueJUnitTest.java      |   213 +
 .../cache/ha/Bug36853EventsExpiryDUnitTest.java |   307 +
 .../internal/cache/ha/Bug48571DUnitTest.java    |   262 +
 .../internal/cache/ha/Bug48879DUnitTest.java    |   221 +
 .../internal/cache/ha/ConflatableObject.java    |   221 +
 .../cache/ha/EventIdOptimizationDUnitTest.java  |   595 +
 .../cache/ha/EventIdOptimizationJUnitTest.java  |   253 +
 .../internal/cache/ha/FailoverDUnitTest.java    |   345 +
 .../internal/cache/ha/HABugInPutDUnitTest.java  |   185 +
 .../internal/cache/ha/HAClearDUnitTest.java     |   662 +
 .../cache/ha/HAConflationDUnitTest.java         |   447 +
 .../internal/cache/ha/HADuplicateDUnitTest.java |   333 +
 .../cache/ha/HAEventIdPropagationDUnitTest.java |   880 +
 .../internal/cache/ha/HAExpiryDUnitTest.java    |   285 +
 .../internal/cache/ha/HAGIIBugDUnitTest.java    |   418 +
 .../internal/cache/ha/HAGIIDUnitTest.java       |   473 +
 .../gemfire/internal/cache/ha/HAHelper.java     |    51 +
 .../cache/ha/HARQAddOperationJUnitTest.java     |  1203 ++
 .../cache/ha/HARQueueNewImplDUnitTest.java      |  1372 ++
 .../internal/cache/ha/HARegionDUnitTest.java    |   406 +
 .../internal/cache/ha/HARegionJUnitTest.java    |   222 +
 .../cache/ha/HARegionQueueDUnitTest.java        |  1150 ++
 .../cache/ha/HARegionQueueJUnitTest.java        |  2153 +++
 .../ha/HARegionQueueStartStopJUnitTest.java     |   133 +
 .../cache/ha/HARegionQueueStatsJUnitTest.java   |   504 +
 .../cache/ha/HASlowReceiverDUnitTest.java       |   294 +
 .../ha/OperationsPropagationDUnitTest.java      |   504 +
 .../internal/cache/ha/PutAllDUnitTest.java      |   598 +
 .../internal/cache/ha/StatsBugDUnitTest.java    |   375 +
 .../cache/ha/TestBlockingHARegionQueue.java     |   129 +
 .../cache/ha/ThreadIdentifierJUnitTest.java     |   116 +
 .../cache/locks/TXLockServiceDUnitTest.java     |   736 +
 .../internal/cache/lru/LRUClockJUnitTest.java   |   519 +
 .../cache/partitioned/Bug39356DUnitTest.java    |   236 +
 .../cache/partitioned/Bug43684DUnitTest.java    |   343 +
 .../cache/partitioned/Bug47388DUnitTest.java    |   292 +
 .../cache/partitioned/Bug51400DUnitTest.java    |   208 +
 .../partitioned/ElidedPutAllDUnitTest.java      |   123 +
 .../OfflineMembersDetailsJUnitTest.java         |    59 +
 .../partitioned/PartitionResolverDUnitTest.java |   411 +
 .../PartitionedRegionLoadModelJUnitTest.java    |  1560 ++
 .../PartitionedRegionLoaderWriterDUnitTest.java |   228 +
 ...rtitionedRegionMetaDataCleanupDUnitTest.java |   193 +
 .../partitioned/PersistPRKRFDUnitTest.java      |   234 +
 ...tentColocatedPartitionedRegionDUnitTest.java |  1597 ++
 .../PersistentPartitionedRegionDUnitTest.java   |  2227 +++
 ...tentPartitionedRegionOldConfigDUnitTest.java |    51 +
 .../PersistentPartitionedRegionTestBase.java    |   807 +
 ...rtitionedRegionWithTransactionDUnitTest.java |   185 +
 .../PutPutReplyMessageJUnitTest.java            |    54 +
 .../cache/partitioned/ShutdownAllDUnitTest.java |   847 +
 ...treamingPartitionOperationManyDUnitTest.java |   250 +
 ...StreamingPartitionOperationOneDUnitTest.java |   233 +
 .../fixed/CustomerFixedPartitionResolver.java   |   113 +
 .../fixed/FixedPartitioningDUnitTest.java       |  1695 ++
 .../fixed/FixedPartitioningTestBase.java        |  1407 ++
 ...ngWithColocationAndPersistenceDUnitTest.java |  1436 ++
 .../cache/partitioned/fixed/MyDate1.java        |    72 +
 .../cache/partitioned/fixed/MyDate2.java        |    52 +
 .../cache/partitioned/fixed/MyDate3.java        |    72 +
 .../fixed/QuarterPartitionResolver.java         |   142 +
 .../SingleHopQuarterPartitionResolver.java      |   173 +
 .../persistence/BackupInspectorJUnitTest.java   |   236 +
 .../PersistentRVVRecoveryDUnitTest.java         |  1006 +
 .../PersistentRecoveryOrderDUnitTest.java       |  1843 ++
 ...rsistentRecoveryOrderOldConfigDUnitTest.java |    66 +
 .../PersistentReplicatedTestBase.java           |   240 +
 .../TemporaryResultSetFactoryJUnitTest.java     |   136 +
 .../RegionEntryFactoryBuilderJUnitTest.java     |    85 +
 .../GFSnapshotJUnitPerformanceTest.java         |   158 +
 .../internal/cache/tier/Bug40396DUnitTest.java  |   214 +
 .../tier/sockets/AcceptorImplJUnitTest.java     |   276 +
 ...mpatibilityHigherVersionClientDUnitTest.java |   258 +
 .../cache/tier/sockets/Bug36269DUnitTest.java   |   228 +
 .../cache/tier/sockets/Bug36457DUnitTest.java   |   216 +
 .../cache/tier/sockets/Bug36805DUnitTest.java   |   248 +
 .../cache/tier/sockets/Bug36829DUnitTest.java   |   175 +
 .../cache/tier/sockets/Bug36995DUnitTest.java   |   265 +
 .../cache/tier/sockets/Bug37210DUnitTest.java   |   296 +
 .../cache/tier/sockets/Bug37805DUnitTest.java   |   141 +
 .../CacheServerMaxConnectionsJUnitTest.java     |   225 +
 ...heServerSelectorMaxConnectionsJUnitTest.java |    35 +
 .../cache/tier/sockets/CacheServerTestUtil.java |   646 +
 .../CacheServerTransactionsDUnitTest.java       |   855 +
 ...acheServerTransactionsSelectorDUnitTest.java |    35 +
 .../tier/sockets/ClearPropagationDUnitTest.java |   488 +
 .../tier/sockets/ClientConflationDUnitTest.java |   540 +
 .../sockets/ClientHealthMonitorJUnitTest.java   |   261 +
 .../ClientHealthMonitorSelectorJUnitTest.java   |    35 +
 .../sockets/ClientInterestNotifyDUnitTest.java  |   651 +
 .../tier/sockets/ClientServerMiscDUnitTest.java |  1394 ++
 .../ClientServerMiscSelectorDUnitTest.java      |    36 +
 .../cache/tier/sockets/ConflationDUnitTest.java |   920 +
 .../tier/sockets/ConnectionProxyJUnitTest.java  |   857 +
 .../DataSerializerPropogationDUnitTest.java     |  1394 ++
 .../cache/tier/sockets/DeltaEOFException.java   |   113 +
 .../DestroyEntryPropagationDUnitTest.java       |   511 +
 .../sockets/DurableClientBug39997DUnitTest.java |   126 +
 .../DurableClientQueueSizeDUnitTest.java        |   434 +
 .../DurableClientReconnectAutoDUnitTest.java    |    59 +
 .../DurableClientReconnectDUnitTest.java        |   763 +
 .../sockets/DurableClientStatsDUnitTest.java    |   395 +
 .../sockets/DurableRegistrationDUnitTest.java   |   870 +
 .../sockets/DurableResponseMatrixDUnitTest.java |   526 +
 .../sockets/EventIDVerificationDUnitTest.java   |   508 +
 .../EventIDVerificationInP2PDUnitTest.java      |   334 +
 .../cache/tier/sockets/FaultyDelta.java         |   162 +
 .../FilterProfileIntegrationJUnitTest.java      |   110 +
 .../tier/sockets/FilterProfileJUnitTest.java    |   412 +
 .../ForceInvalidateEvictionDUnitTest.java       |   401 +
 ...ForceInvalidateOffHeapEvictionDUnitTest.java |    65 +
 .../cache/tier/sockets/HABug36738DUnitTest.java |   196 +
 .../sockets/HAInterestDistributedTestCase.java  |    31 +
 .../tier/sockets/HAInterestPart1DUnitTest.java  |   213 +
 .../tier/sockets/HAInterestPart2DUnitTest.java  |   376 +
 .../cache/tier/sockets/HAInterestTestCase.java  |  1021 +
 .../sockets/HAStartupAndFailoverDUnitTest.java  |   742 +
 .../internal/cache/tier/sockets/HaHelper.java   |    33 +
 .../InstantiatorPropagationDUnitTest.java       |  1775 ++
 .../tier/sockets/InterestListDUnitTest.java     |  1215 ++
 .../sockets/InterestListEndpointDUnitTest.java  |   503 +
 .../InterestListEndpointPRDUnitTest.java        |    42 +
 .../InterestListEndpointSelectorDUnitTest.java  |    35 +
 .../sockets/InterestListFailoverDUnitTest.java  |   322 +
 .../sockets/InterestListRecoveryDUnitTest.java  |   517 +
 .../sockets/InterestRegrListenerDUnitTest.java  |   469 +
 .../sockets/InterestResultPolicyDUnitTest.java  |   395 +
 .../sockets/NewRegionAttributesDUnitTest.java   |   491 +
 .../tier/sockets/ObjectPartListJUnitTest.java   |   130 +
 .../tier/sockets/RedundancyLevelJUnitTest.java  |   130 +
 .../sockets/RedundancyLevelPart1DUnitTest.java  |   542 +
 .../sockets/RedundancyLevelPart2DUnitTest.java  |   540 +
 .../sockets/RedundancyLevelPart3DUnitTest.java  |   249 +
 .../tier/sockets/RedundancyLevelTestBase.java   |   657 +
 .../tier/sockets/RegionCloseDUnitTest.java      |   246 +
 ...erInterestBeforeRegionCreationDUnitTest.java |   280 +
 .../sockets/RegisterInterestKeysDUnitTest.java  |   248 +
 .../RegisterInterestKeysPRDUnitTest.java        |    41 +
 .../sockets/ReliableMessagingDUnitTest.java     |   440 +
 .../internal/cache/tier/sockets/TestFilter.java |    58 +
 .../sockets/UnregisterInterestDUnitTest.java    |   342 +
 .../sockets/UpdatePropagationDUnitTest.java     |   603 +
 .../sockets/UpdatePropagationPRDUnitTest.java   |    40 +
 .../VerifyEventIDGenerationInP2PDUnitTest.java  |   188 +
 ...UpdatesFromNonInterestEndPointDUnitTest.java |   257 +
 .../tier/sockets/command/CommitCommandTest.java |    61 +
 .../cache/versions/RVVExceptionJUnitTest.java   |    48 +
 .../versions/RegionVersionHolder2JUnitTest.java |   178 +
 .../versions/RegionVersionHolderJUnitTest.java  |  1894 ++
 .../RegionVersionHolderRandomJUnitTest.java     |   191 +
 ...RegionVersionHolderSmallBitSetJUnitTest.java |    46 +
 .../versions/RegionVersionVectorJUnitTest.java  |   546 +
 .../cache/wan/AsyncEventQueueTestBase.java      |  1671 ++
 .../cache/wan/CustomAsyncEventListener.java     |    57 +
 .../gemfire/internal/cache/wan/Filter70.java    |    63 +
 .../cache/wan/MyAsyncEventListener.java         |    53 +
 .../cache/wan/MyAsyncEventListener2.java        |    98 +
 .../cache/wan/MyDistributedSystemListener.java  |    65 +
 .../cache/wan/MyGatewaySenderEventListener.java |    77 +
 .../wan/MyGatewaySenderEventListener2.java      |    77 +
 .../cache/wan/MyGatewayTransportFilter1.java    |    57 +
 .../cache/wan/MyGatewayTransportFilter2.java    |    56 +
 .../cache/wan/MyGatewayTransportFilter3.java    |    56 +
 .../cache/wan/MyGatewayTransportFilter4.java    |    56 +
 .../internal/cache/wan/QueueListener.java       |    79 +
 .../asyncqueue/AsyncEventListenerDUnitTest.java |  1922 ++
 .../AsyncEventListenerOffHeapDUnitTest.java     |    33 +
 .../AsyncEventQueueStatsDUnitTest.java          |   320 +
 .../AsyncEventQueueValidationsJUnitTest.java    |    82 +
 .../ConcurrentAsyncEventQueueDUnitTest.java     |   336 +
 ...ncurrentAsyncEventQueueOffHeapDUnitTest.java |    32 +
 .../CommonParallelAsyncEventQueueDUnitTest.java |    61 +
 ...ParallelAsyncEventQueueOffHeapDUnitTest.java |    32 +
 .../ParallelGatewaySenderQueueJUnitTest.java    |    87 +
 ...ialGatewaySenderEventProcessorJUnitTest.java |    42 +
 .../xmlcache/AbstractXmlParserJUnitTest.java    |   168 +
 .../cache/xmlcache/CacheCreationJUnitTest.java  |   209 +
 .../cache/xmlcache/CacheXmlParserJUnitTest.java |   169 +
 .../xmlcache/CacheXmlVersionJUnitTest.java      |    75 +
 .../PivotalEntityResolverJUnitTest.java         |   145 +
 .../cache/xmlcache/RegionCreationJUnitTest.java |    57 +
 .../xmlcache/XmlGeneratorUtilsJUnitTest.java    |   250 +
 .../classpathloaderjunittest/DoesExist.java     |    21 +
 .../CompressionCacheConfigDUnitTest.java        |   190 +
 .../CompressionCacheListenerDUnitTest.java      |   362 +
 ...ompressionCacheListenerOffHeapDUnitTest.java |    76 +
 .../CompressionRegionConfigDUnitTest.java       |   527 +
 .../CompressionRegionFactoryDUnitTest.java      |   148 +
 .../CompressionRegionOperationsDUnitTest.java   |   541 +
 ...ressionRegionOperationsOffHeapDUnitTest.java |    69 +
 .../compression/CompressionStatsDUnitTest.java  |   681 +
 .../compression/SnappyCompressorJUnitTest.java  |    76 +
 .../datasource/AbstractPoolCacheJUnitTest.java  |   251 +
 .../internal/datasource/CleanUpJUnitTest.java   |   126 +
 .../ConnectionPoolCacheImplJUnitTest.java       |   213 +
 .../datasource/ConnectionPoolingJUnitTest.java  |   339 +
 .../datasource/DataSourceFactoryJUnitTest.java  |   115 +
 .../internal/datasource/RestartJUnitTest.java   |    82 +
 .../internal/i18n/BasicI18nJUnitTest.java       |   407 +
 .../io/CompositeOutputStreamJUnitTest.java      |   453 +
 .../gemfire/internal/jndi/ContextJUnitTest.java |   440 +
 .../internal/jta/BlockingTimeOutJUnitTest.java  |   311 +
 .../gemfire/internal/jta/CacheUtils.java        |   226 +
 .../internal/jta/DataSourceJTAJUnitTest.java    |  1024 +
 .../internal/jta/ExceptionJUnitTest.java        |   126 +
 .../jta/GlobalTransactionJUnitTest.java         |   254 +
 .../gemstone/gemfire/internal/jta/JTAUtils.java |   386 +
 .../internal/jta/JtaIntegrationJUnitTest.java   |   134 +
 .../gemstone/gemfire/internal/jta/SyncImpl.java |    39 +
 .../internal/jta/TransactionImplJUnitTest.java  |   109 +
 .../jta/TransactionManagerImplJUnitTest.java    |   298 +
 .../jta/TransactionTimeOutJUnitTest.java        |   333 +
 .../jta/UserTransactionImplJUnitTest.java       |   130 +
 .../internal/jta/dunit/CommitThread.java        |   176 +
 .../internal/jta/dunit/ExceptionsDUnitTest.java |   316 +
 .../jta/dunit/IdleTimeOutDUnitTest.java         |   345 +
 .../jta/dunit/LoginTimeOutDUnitTest.java        |   348 +
 .../jta/dunit/MaxPoolSizeDUnitTest.java         |   315 +
 .../internal/jta/dunit/RollbackThread.java      |   176 +
 .../jta/dunit/TransactionTimeOutDUnitTest.java  |   502 +
 .../dunit/TxnManagerMultiThreadDUnitTest.java   |   522 +
 .../internal/jta/dunit/TxnTimeOutDUnitTest.java |   311 +
 .../internal/jta/functional/CacheJUnitTest.java |  1199 ++
 .../jta/functional/TestXACacheLoader.java       |   104 +
 .../internal/lang/ClassUtilsJUnitTest.java      |   165 +
 .../internal/lang/InOutParameterJUnitTest.java  |    74 +
 .../internal/lang/InitializerJUnitTest.java     |    75 +
 .../internal/lang/ObjectUtilsJUnitTest.java     |   189 +
 .../internal/lang/StringUtilsJUnitTest.java     |   351 +
 .../internal/lang/SystemUtilsJUnitTest.java     |   101 +
 .../internal/lang/ThreadUtilsJUnitTest.java     |   214 +
 .../DistributedSystemLogFileJUnitTest.java      |  1505 ++
 .../logging/LocatorLogFileJUnitTest.java        |   125 +
 .../logging/LogServiceIntegrationJUnitTest.java |   223 +
 .../LogServiceIntegrationTestSupport.java       |    40 +
 .../internal/logging/LogServiceJUnitTest.java   |   120 +
 .../LogWriterDisabledPerformanceTest.java       |    64 +
 .../logging/LogWriterImplJUnitTest.java         |    83 +
 .../logging/LogWriterPerformanceTest.java       |   127 +
 .../logging/LoggingIntegrationTestSuite.java    |    35 +
 .../logging/LoggingPerformanceTestCase.java     |   200 +
 .../internal/logging/LoggingUnitTestSuite.java  |    42 +
 .../logging/MergeLogFilesJUnitTest.java         |   247 +
 .../gemfire/internal/logging/NullLogWriter.java |   146 +
 .../internal/logging/SortLogFileJUnitTest.java  |   115 +
 .../internal/logging/TestLogWriterFactory.java  |   134 +
 .../logging/log4j/AlertAppenderJUnitTest.java   |   257 +
 .../logging/log4j/ConfigLocatorJUnitTest.java   |   222 +
 .../log4j/FastLoggerIntegrationJUnitTest.java   |   575 +
 .../logging/log4j/FastLoggerJUnitTest.java      |   178 +
 .../FastLoggerWithDefaultConfigJUnitTest.java   |    90 +
 .../log4j/LocalizedMessageJUnitTest.java        |    64 +
 .../log4j/Log4J2DisabledPerformanceTest.java    |    73 +
 .../logging/log4j/Log4J2PerformanceTest.java    |   151 +
 .../log4j/Log4jIntegrationTestSuite.java        |    28 +
 .../logging/log4j/Log4jUnitTestSuite.java       |    32 +
 .../log4j/LogWriterAppenderJUnitTest.java       |   224 +
 .../LogWriterLoggerDisabledPerformanceTest.java |    72 +
 .../log4j/LogWriterLoggerPerformanceTest.java   |   150 +
 .../internal/net/SocketUtilsJUnitTest.java      |   130 +
 .../offheap/AbstractStoredObjectTestBase.java   |   203 +
 .../offheap/ByteArrayMemoryChunkJUnitTest.java  |    30 +
 .../offheap/ChunkWithHeapFormJUnitTest.java     |    64 +
 .../offheap/DataAsAddressJUnitTest.java         |   368 +
 .../internal/offheap/DataTypeJUnitTest.java     |   913 +
 .../DirectByteBufferMemoryChunkJUnitTest.java   |    33 +
 ...tingOutOfOffHeapMemoryListenerJUnitTest.java |   100 +
 .../offheap/FreeListOffHeapRegionJUnitTest.java |    46 +
 .../offheap/GemFireChunkFactoryJUnitTest.java   |   129 +
 .../internal/offheap/GemFireChunkJUnitTest.java |   921 +
 .../offheap/GemFireChunkSliceJUnitTest.java     |    72 +
 .../HeapByteBufferMemoryChunkJUnitTest.java     |    33 +
 .../internal/offheap/InlineKeyJUnitTest.java    |   185 +
 .../offheap/LifecycleListenerJUnitTest.java     |   230 +
 .../offheap/MemoryChunkJUnitTestBase.java       |   290 +
 .../internal/offheap/MemoryChunkTestSuite.java  |    32 +
 .../offheap/MemoryInspectorImplJUnitTest.java   |   142 +
 .../offheap/NullOffHeapMemoryStats.java         |   114 +
 .../offheap/NullOutOfOffHeapMemoryListener.java |    39 +
 .../offheap/OffHeapHelperJUnitTest.java         |   314 +
 .../internal/offheap/OffHeapIndexJUnitTest.java |    92 +
 .../internal/offheap/OffHeapRegionBase.java     |   593 +
 .../OffHeapRegionEntryHelperJUnitTest.java      |   870 +
 .../offheap/OffHeapStorageJUnitTest.java        |   285 +
 .../offheap/OffHeapValidationJUnitTest.java     |   540 +
 .../OffHeapWriteObjectAsByteArrayJUnitTest.java |   115 +
 .../OldFreeListOffHeapRegionJUnitTest.java      |    47 +
 .../offheap/OutOfOffHeapMemoryDUnitTest.java    |   304 +
 .../offheap/RefCountChangeInfoJUnitTest.java    |   207 +
 ...moryAllocatorFillPatternIntegrationTest.java |   246 +
 ...mpleMemoryAllocatorFillPatternJUnitTest.java |   183 +
 .../offheap/SimpleMemoryAllocatorJUnitTest.java |   675 +
 .../internal/offheap/StoredObjectTestSuite.java |    33 +
 .../offheap/SyncChunkStackJUnitTest.java        |   289 +
 .../TxReleasesOffHeapOnCloseJUnitTest.java      |    63 +
 .../offheap/UnsafeMemoryChunkJUnitTest.java     |    87 +
 .../BlockingProcessStreamReaderJUnitTest.java   |   480 +
 ...leProcessControllerIntegrationJUnitTest.java |   155 +
 .../LocalProcessControllerJUnitTest.java        |   119 +
 .../process/LocalProcessLauncherDUnitTest.java  |   148 +
 .../process/LocalProcessLauncherJUnitTest.java  |   182 +
 ...NonBlockingProcessStreamReaderJUnitTest.java |   411 +
 .../internal/process/PidFileJUnitTest.java      |   274 +
 .../ProcessControllerFactoryJUnitTest.java      |   159 +
 .../process/ProcessStreamReaderTestCase.java    |   238 +
 .../gemfire/internal/process/mbean/Process.java |    60 +
 .../internal/process/mbean/ProcessMBean.java    |    28 +
 ...tractSignalNotificationHandlerJUnitTest.java |   460 +
 .../internal/size/ObjectSizerJUnitTest.java     |    89 +
 .../internal/size/ObjectTraverserJUnitTest.java |   122 +
 .../internal/size/ObjectTraverserPerf.java      |   100 +
 .../size/SizeClassOnceObjectSizerJUnitTest.java |    70 +
 .../gemfire/internal/size/SizeTestUtil.java     |    33 +
 .../size/WellKnownClassSizerJUnitTest.java      |    62 +
 .../internal/statistics/DummyStatistics.java    |   209 +
 .../statistics/SampleCollectorJUnitTest.java    |   347 +
 .../statistics/StatMonitorHandlerJUnitTest.java |   256 +
 .../statistics/StatisticsDUnitTest.java         |   949 +
 .../statistics/StatisticsMonitorJUnitTest.java  |   227 +
 .../internal/statistics/TestSampleHandler.java  |   177 +
 .../statistics/TestStatArchiveWriter.java       |    60 +
 .../statistics/TestStatisticsManager.java       |    42 +
 .../statistics/TestStatisticsSampler.java       |    59 +
 .../statistics/ValueMonitorJUnitTest.java       |   374 +
 .../internal/stats50/AtomicStatsJUnitTest.java  |   128 +
 .../internal/tcp/ConnectionJUnitTest.java       |    88 +
 .../util/AbortableTaskServiceJUnitTest.java     |   199 +
 .../internal/util/ArrayUtilsJUnitTest.java      |   179 +
 .../gemfire/internal/util/BytesJUnitTest.java   |   116 +
 .../internal/util/CollectionUtilsJUnitTest.java |   487 +
 .../internal/util/DelayedActionJUnitTest.java   |    56 +
 .../gemfire/internal/util/IOUtilsJUnitTest.java |   315 +
 .../gemfire/internal/util/SerializableImpl.java |    38 +
 .../util/SerializableImplWithValue.java         |    57 +
 .../gemfire/internal/util/Valuable.java         |    40 +
 .../CompactConcurrentHashSetJUnitTest.java      |   103 +
 .../ConcurrentHashMapIteratorJUnitTest.java     |   124 +
 .../concurrent/CopyOnWriteHashMapJUnitTest.java |   505 +
 .../concurrent/ReentrantSemaphoreJUnitTest.java |   112 +
 .../SemaphoreReadWriteLockJUnitTest.java        |   185 +
 .../cm/ConcurrentHashMapJUnitTest.java          |   631 +
 .../concurrent/cm/CountedMapLoopsJUnitTest.java |   225 +
 .../concurrent/cm/IntMapCheckJUnitTest.java     |   618 +
 .../util/concurrent/cm/LoopHelpers.java         |   219 +
 .../util/concurrent/cm/MapCheckJUnitTest.java   |   631 +
 .../util/concurrent/cm/MapLoopsJUnitTest.java   |   230 +
 .../util/concurrent/cm/RLJBarJUnitTest.java     |   197 +
 .../concurrent/cm/StringMapLoopsJUnitTest.java  |   240 +
 .../management/CacheManagementDUnitTest.java    |   949 +
 .../management/ClientHealthStatsDUnitTest.java  |   446 +
 .../gemfire/management/CompositeStats.java      |   103 +
 .../gemfire/management/CompositeTestMBean.java  |    65 +
 .../gemfire/management/CompositeTestMXBean.java |    33 +
 .../management/CompositeTypeTestDUnitTest.java  |   170 +
 .../gemfire/management/CustomMBean.java         |    76 +
 .../gemfire/management/CustomMXBean.java        |    36 +
 .../management/DLockManagementDUnitTest.java    |   473 +
 .../DataBrowserJSONValidationJUnitTest.java     |   350 +
 .../management/DiskManagementDUnitTest.java     |   728 +
 .../management/DistributedSystemDUnitTest.java  |   894 +
 .../management/LocatorManagementDUnitTest.java  |   353 +
 .../gemstone/gemfire/management/MBeanUtil.java  |   550 +
 .../gemfire/management/ManagementTestBase.java  |   760 +
 .../MemberMBeanAttributesDUnitTest.java         |   270 +
 .../management/OffHeapManagementDUnitTest.java  |   978 +
 .../gemfire/management/QueryDataDUnitTest.java  |   873 +
 .../management/RegionManagementDUnitTest.java   |  1450 ++
 .../gemfire/management/TypedJsonJUnitTest.java  |   288 +
 ...ersalMembershipListenerAdapterDUnitTest.java |  2171 +++
 .../stats/AsyncEventQueueStatsJUnitTest.java    |    66 +
 .../bean/stats/CacheServerStatsJUnitTest.java   |   167 +
 .../bean/stats/DiskStatsJUnitTest.java          |   122 +
 .../stats/DistributedSystemStatsDUnitTest.java  |   108 +
 .../stats/DistributedSystemStatsJUnitTest.java  |   122 +
 .../bean/stats/GatewayMBeanBridgeJUnitTest.java |   108 +
 .../stats/GatewayReceiverStatsJUnitTest.java    |   207 +
 .../bean/stats/MBeanStatsTestCase.java          |    86 +
 .../bean/stats/MemberLevelStatsJUnitTest.java   |   581 +
 .../bean/stats/RegionStatsJUnitTest.java        |   271 +
 .../bean/stats/StatsRateJUnitTest.java          |   191 +
 .../internal/JettyHelperJUnitTest.java          |    80 +
 .../gemstone/gemfire/management/internal/beans  |   106 +
 .../cli/ClasspathScanLoadHelperJUnitTest.java   |    92 +
 .../internal/cli/CliUtilDUnitTest.java          |   435 +
 .../internal/cli/CommandManagerJUnitTest.java   |   330 +
 .../cli/CommandSeparatorEscapeJUnitTest.java    |   138 +
 .../internal/cli/DataCommandJsonJUnitTest.java  |    61 +
 .../internal/cli/GfshParserJUnitTest.java       |  1154 ++
 .../management/internal/cli/HeadlessGfsh.java   |   374 +
 .../internal/cli/HeadlessGfshJUnitTest.java     |    86 +
 .../management/internal/cli/ResultHandler.java  |    23 +
 .../internal/cli/TableBuilderJUnitTest.java     |   314 +
 .../cli/annotations/CliArgumentJUnitTest.java   |   214 +
 .../AbstractCommandsSupportJUnitTest.java       |   404 +
 .../cli/commands/CliCommandTestBase.java        |   565 +
 .../cli/commands/ConfigCommandsDUnitTest.java   |   502 +
 ...eateAlterDestroyRegionCommandsDUnitTest.java |  1150 ++
 .../cli/commands/DeployCommandsDUnitTest.java   |   480 +
 .../commands/DiskStoreCommandsDUnitTest.java    |  1157 ++
 .../commands/DiskStoreCommandsJUnitTest.java    |   405 +
 .../cli/commands/FunctionCommandsDUnitTest.java |   595 +
 .../commands/GemfireDataCommandsDUnitTest.java  |  2088 ++
 ...WithCacheLoaderDuringCacheMissDUnitTest.java |   374 +
 .../HTTPServiceSSLSupportJUnitTest.java         |   158 +
 .../cli/commands/IndexCommandsDUnitTest.java    |   815 +
 .../cli/commands/IndexCommandsJUnitTest.java    |   208 +
 ...stAndDescribeDiskStoreCommandsDUnitTest.java |   194 +
 .../ListAndDescribeRegionDUnitTest.java         |   321 +
 .../cli/commands/ListIndexCommandDUnitTest.java |   669 +
 .../cli/commands/MemberCommandsDUnitTest.java   |   288 +
 .../MiscellaneousCommandsDUnitTest.java         |   498 +
 ...laneousCommandsExportLogsPart1DUnitTest.java |   140 +
 ...laneousCommandsExportLogsPart2DUnitTest.java |   144 +
 ...laneousCommandsExportLogsPart3DUnitTest.java |   151 +
 ...laneousCommandsExportLogsPart4DUnitTest.java |   137 +
 .../cli/commands/QueueCommandsDUnitTest.java    |   392 +
 .../SharedConfigurationCommandsDUnitTest.java   |   341 +
 .../cli/commands/ShellCommandsDUnitTest.java    |   367 +
 .../cli/commands/ShowDeadlockDUnitTest.java     |   274 +
 .../cli/commands/ShowMetricsDUnitTest.java      |   345 +
 .../cli/commands/ShowStackTraceDUnitTest.java   |   150 +
 .../cli/commands/UserCommandsDUnitTest.java     |   164 +
 .../RegionPathConverterJUnitTest.java           |    82 +
 .../internal/cli/domain/AbstractImpl.java       |    21 +
 .../management/internal/cli/domain/Impl1.java   |    21 +
 .../management/internal/cli/domain/Impl12.java  |    21 +
 .../internal/cli/domain/Interface1.java         |    21 +
 .../internal/cli/domain/Interface2.java         |    21 +
 .../management/internal/cli/domain/Stock.java   |    37 +
 .../management/internal/cli/dto/Car.java        |    75 +
 .../management/internal/cli/dto/Key1.java       |    67 +
 .../management/internal/cli/dto/Key2.java       |    64 +
 .../internal/cli/dto/ObjectWithCharAttr.java    |    60 +
 .../management/internal/cli/dto/Value1.java     |    97 +
 .../management/internal/cli/dto/Value2.java     |    90 +
 .../functions/DataCommandFunctionJUnitTest.java |   132 +
 .../DescribeDiskStoreFunctionJUnitTest.java     |  1676 ++
 .../ListDiskStoresFunctionJUnitTest.java        |   328 +
 .../functions/ListIndexFunctionJUnitTest.java   |   435 +
 .../cli/parser/ParserUtilsJUnitTest.java        |    82 +
 .../preprocessor/PreprocessorJUnitTest.java     |   302 +
 .../PreprocessorUtilsJUnitTest.java             |   127 +
 .../cli/shell/GfshConfigInitFileJUnitTest.java  |   186 +
 .../shell/GfshExecutionStrategyJUnitTest.java   |   137 +
 .../cli/shell/GfshHistoryJUnitTest.java         |    89 +
 .../cli/shell/GfshInitFileJUnitTest.java        |   476 +
 .../SharedConfigurationDUnitTest.java           |   443 +
 .../configuration/ZipUtilsJUnitTest.java        |    96 +
 .../domain/CacheElementJUnitTest.java           |   144 +
 .../utils/XmlUtilsAddNewNodeJUnitTest.java      |   415 +
 .../configuration/utils/XmlUtilsJUnitTest.java  |   248 +
 .../internal/pulse/TestClientIdsDUnitTest.java  |   301 +
 .../internal/pulse/TestFunctionsDUnitTest.java  |   113 +
 .../internal/pulse/TestHeapDUnitTest.java       |   109 +
 .../internal/pulse/TestLocatorsDUnitTest.java   |    88 +
 .../pulse/TestSubscriptionsDUnitTest.java       |   307 +
 ...rDistributedSystemMXBeanIntegrationTest.java |    50 +
 ...horizeOperationForMBeansIntegrationTest.java |   323 +
 ...erationForRegionCommandsIntegrationTest.java |   136 +
 ...JSONAuthorizationDetailsIntegrationTest.java |   163 +
 ...tionCodesForDataCommandsIntegrationTest.java |   101 +
 ...tionCodesForDistributedSystemMXBeanTest.java |    76 +
 .../ReadOpFileAccessControllerJUnitTest.java    |   201 +
 .../WanCommandsControllerJUnitTest.java         |   140 +
 .../gemfire/management/model/EmptyObject.java   |    24 +
 .../gemstone/gemfire/management/model/Item.java |    95 +
 .../gemfire/management/model/Order.java         |    88 +
 .../gemfire/management/model/SubOrder.java      |    30 +
 .../DomainObjectsAsValuesJUnitTest.java         |   129 +
 .../GemcachedBinaryClientJUnitTest.java         |   148 +
 .../GemcachedDevelopmentJUnitTest.java          |   265 +
 .../gemfire/memcached/IntegrationJUnitTest.java |    94 +
 .../gemfire/pdx/AutoSerializableJUnitTest.java  |  1401 ++
 .../gemfire/pdx/ByteSourceJUnitTest.java        |   752 +
 .../ClientsWithVersioningRetryDUnitTest.java    |   513 +
 .../com/gemstone/gemfire/pdx/DSInsidePdx.java   |   109 +
 .../pdx/DistributedSystemIdDUnitTest.java       |   157 +
 .../com/gemstone/gemfire/pdx/DomainObject.java  |   106 +
 .../gemstone/gemfire/pdx/DomainObjectBad.java   |    25 +
 .../gemfire/pdx/DomainObjectClassLoadable.java  |    27 +
 .../gemfire/pdx/DomainObjectPdxAuto.java        |   192 +
 ...DomainObjectPdxAutoNoDefaultConstructor.java |    63 +
 .../java/com/gemstone/gemfire/pdx/Employee.java |    92 +
 .../pdx/JSONPdxClientServerDUnitTest.java       |   629 +
 .../com/gemstone/gemfire/pdx/NestedPdx.java     |   114 +
 .../gemfire/pdx/NonDelegatingLoader.java        |    66 +
 .../OffHeapByteBufferByteSourceJUnitTest.java   |    52 +
 .../gemfire/pdx/OffHeapByteSourceJUnitTest.java |    65 +
 .../pdx/PDXAsyncEventQueueDUnitTest.java        |   154 +
 .../gemfire/pdx/PdxAttributesJUnitTest.java     |   250 +
 .../gemfire/pdx/PdxClientServerDUnitTest.java   |   799 +
 .../pdx/PdxDeserializationDUnitTest.java        |   413 +
 .../pdx/PdxFormatterPutGetJUnitTest.java        |   208 +
 .../com/gemstone/gemfire/pdx/PdxInsideDS.java   |   107 +
 .../pdx/PdxInstanceFactoryJUnitTest.java        |  1210 ++
 .../gemfire/pdx/PdxInstanceJUnitTest.java       |   396 +
 .../gemfire/pdx/PdxSerializableDUnitTest.java   |   196 +
 .../gemfire/pdx/PdxSerializableJUnitTest.java   |  2171 +++
 .../gemfire/pdx/PdxStringJUnitTest.java         |   167 +
 .../gemfire/pdx/PdxTypeExportDUnitTest.java     |   130 +
 .../gemfire/pdx/SeparateClassloaderPdx.java     |    43 +
 .../com/gemstone/gemfire/pdx/SimpleClass.java   |    83 +
 .../com/gemstone/gemfire/pdx/SimpleClass1.java  |   151 +
 .../com/gemstone/gemfire/pdx/SimpleClass2.java  |    32 +
 .../gemfire/pdx/TestObjectForPdxFormatter.java  |  1003 +
 .../gemfire/pdx/VersionClassLoader.java         |    98 +
 .../gemstone/gemfire/redis/AuthJUnitTest.java   |   160 +
 .../gemfire/redis/ConcurrentStartTest.java      |    98 +
 .../gemstone/gemfire/redis/HashesJUnitTest.java |   191 +
 .../gemstone/gemfire/redis/ListsJUnitTest.java  |   254 +
 .../gemfire/redis/RedisDistDUnitTest.java       |   258 +
 .../gemstone/gemfire/redis/SetsJUnitTest.java   |   258 +
 .../gemfire/redis/SortedSetsJUnitTest.java      |   430 +
 .../gemfire/redis/StringsJunitTest.java         |   312 +
 .../web/controllers/AddFreeItemToOrders.java    |   153 +
 .../rest/internal/web/controllers/Customer.java |   109 +
 .../internal/web/controllers/DateTimeUtils.java |    40 +
 .../rest/internal/web/controllers/Gender.java   |    30 +
 .../internal/web/controllers/GetAllEntries.java |    68 +
 .../web/controllers/GetDeliveredOrders.java     |   106 +
 .../internal/web/controllers/GetRegions.java    |    76 +
 .../web/controllers/GetValueForKey.java         |    77 +
 .../rest/internal/web/controllers/Item.java     |   160 +
 .../rest/internal/web/controllers/Order.java    |   189 +
 .../rest/internal/web/controllers/Person.java   |   185 +
 .../web/controllers/PutKeyFunction.java         |    63 +
 .../web/controllers/RestAPITestBase.java        |   123 +
 .../internal/web/controllers/RestTestUtils.java |   110 +
 .../security/ClientAuthenticationDUnitTest.java |   967 +
 .../ClientAuthenticationPart2DUnitTest.java     |    88 +
 .../security/ClientAuthorizationDUnitTest.java  |   797 +
 .../security/ClientAuthorizationTestBase.java   |  1388 ++
 .../security/ClientMultiUserAuthzDUnitTest.java |   535 +
 .../DeltaClientAuthorizationDUnitTest.java      |   337 +
 .../DeltaClientPostAuthorizationDUnitTest.java  |   542 +
 .../security/P2PAuthenticationDUnitTest.java    |   623 +
 .../gemfire/security/SecurityTestUtil.java      |  1875 ++
 .../com/gemstone/gemfire/test/dunit/Assert.java |    66 +
 .../gemfire/test/dunit/AsyncInvocation.java     |   216 +
 .../gemstone/gemfire/test/dunit/DUnitEnv.java   |    78 +
 .../gemfire/test/dunit/DebuggerUtils.java       |    52 +
 .../gemfire/test/dunit/DistributedTestCase.java |   532 +
 .../test/dunit/DistributedTestUtils.java        |   167 +
 .../com/gemstone/gemfire/test/dunit/Host.java   |   213 +
 .../gemfire/test/dunit/IgnoredException.java    |   200 +
 .../com/gemstone/gemfire/test/dunit/Invoke.java |   160 +
 .../com/gemstone/gemfire/test/dunit/Jitter.java |    87 +
 .../gemfire/test/dunit/LogWriterUtils.java      |   111 +
 .../gemfire/test/dunit/NetworkUtils.java        |    69 +
 .../gemfire/test/dunit/RMIException.java        |   170 +
 .../gemfire/test/dunit/RepeatableRunnable.java  |    31 +
 .../test/dunit/SerializableCallable.java        |    70 +
 .../test/dunit/SerializableCallableIF.java      |    26 +
 .../test/dunit/SerializableRunnable.java        |    91 +
 .../test/dunit/SerializableRunnableIF.java      |    25 +
 .../test/dunit/StoppableWaitCriterion.java      |    35 +
 .../gemfire/test/dunit/ThreadUtils.java         |   155 +
 .../com/gemstone/gemfire/test/dunit/VM.java     |  1357 ++
 .../com/gemstone/gemfire/test/dunit/Wait.java   |   204 +
 .../gemfire/test/dunit/WaitCriterion.java       |    33 +
 .../dunit/rules/DistributedDisconnectRule.java  |   121 +
 .../rules/DistributedExternalResource.java      |    58 +
 .../DistributedRestoreSystemProperties.java     |    74 +
 .../gemfire/test/dunit/rules/RemoteInvoker.java |    39 +
 .../test/dunit/standalone/BounceResult.java     |    36 +
 .../gemfire/test/dunit/standalone/ChildVM.java  |    81 +
 .../test/dunit/standalone/DUnitLauncher.java    |   464 +
 .../test/dunit/standalone/ProcessManager.java   |   259 +
 .../test/dunit/standalone/RemoteDUnitVM.java    |   143 +
 .../test/dunit/standalone/RemoteDUnitVMIF.java  |    36 +
 .../dunit/standalone/StandAloneDUnitEnv.java    |    74 +
 .../test/dunit/tests/BasicDUnitTest.java        |   158 +
 .../gemfire/test/dunit/tests/VMDUnitTest.java   |   241 +
 .../tests/GetDefaultDiskStoreNameDUnitTest.java |    67 +
 .../tests/tests/GetTestMethodNameDUnitTest.java |    54 +
 .../test/java/com/gemstone/gemfire/test/fake    |    99 +
 .../gemfire/test/golden/ExecutableProcess.java  |    24 +
 .../gemfire/test/golden/FailOutputTestCase.java |    52 +
 .../golden/FailWithErrorInOutputJUnitTest.java  |    47 +
 .../FailWithExtraLineInOutputJUnitTest.java     |    76 +
 ...WithLineMissingFromEndOfOutputJUnitTest.java |    75 +
 ...hLineMissingFromMiddleOfOutputJUnitTest.java |    74 +
 .../FailWithLoggerErrorInOutputJUnitTest.java   |    46 +
 .../FailWithLoggerFatalInOutputJUnitTest.java   |    46 +
 .../FailWithLoggerWarnInOutputJUnitTest.java    |    46 +
 .../golden/FailWithProblemInOutputTestCase.java |    61 +
 .../golden/FailWithSevereInOutputJUnitTest.java |    47 +
 ...hTimeoutOfWaitForOutputToMatchJUnitTest.java |    68 +
 .../FailWithWarningInOutputJUnitTest.java       |    47 +
 .../gemfire/test/golden/GoldenComparator.java   |   142 +
 .../test/golden/GoldenStringComparator.java     |    39 +
 .../gemfire/test/golden/GoldenTestCase.java     |   157 +
 .../golden/GoldenTestFrameworkTestSuite.java    |    43 +
 .../gemfire/test/golden/PassJUnitTest.java      |    86 +
 .../golden/PassWithExpectedErrorJUnitTest.java  |    47 +
 .../golden/PassWithExpectedProblemTestCase.java |    91 +
 .../golden/PassWithExpectedSevereJUnitTest.java |    47 +
 .../PassWithExpectedWarningJUnitTest.java       |    47 +
 .../test/golden/RegexGoldenComparator.java      |    37 +
 .../test/golden/StringGoldenComparator.java     |    37 +
 .../gemfire/test/golden/log4j2-test.xml         |    18 +
 .../gemfire/test/process/MainLauncher.java      |    48 +
 .../test/process/MainLauncherJUnitTest.java     |   159 +
 .../gemfire/test/process/OutputFormatter.java   |    37 +
 .../test/process/ProcessOutputReader.java       |    89 +
 .../test/process/ProcessStreamReader.java       |    74 +
 .../process/ProcessTestFrameworkTestSuite.java  |    28 +
 .../gemfire/test/process/ProcessWrapper.java    |   464 +
 .../test/process/ProcessWrapperJUnitTest.java   |    72 +
 .../gemstone/gemfire/util/JSR166TestCase.java   |   482 +
 .../gemstone/gemfire/util/test/TestUtil.java    |    65 +
 .../com/gemstone/persistence/admin/Logger.java  |   278 +
 .../gemstone/persistence/logging/Formatter.java |    41 +
 .../gemstone/persistence/logging/Handler.java   |    98 +
 .../com/gemstone/persistence/logging/Level.java |   128 +
 .../gemstone/persistence/logging/LogRecord.java |   185 +
 .../gemstone/persistence/logging/Logger.java    |   566 +
 .../persistence/logging/SimpleFormatter.java    |    77 +
 .../persistence/logging/StreamHandler.java      |    61 +
 .../test/java/com/gemstone/sequence/Arrow.java  |   124 +
 .../java/com/gemstone/sequence/Lifeline.java    |    98 +
 .../com/gemstone/sequence/LifelineState.java    |   114 +
 .../java/com/gemstone/sequence/LineMapper.java  |    36 +
 .../com/gemstone/sequence/SequenceDiagram.java  |   315 +
 .../com/gemstone/sequence/SequencePanel.java    |    83 +
 .../com/gemstone/sequence/StateColorMap.java    |    66 +
 .../java/com/gemstone/sequence/TimeAxis.java    |   122 +
 .../com/gemstone/sequence/ZoomingPanel.java     |   188 +
 .../sequence/gemfire/DefaultLineMapper.java     |    42 +
 .../gemfire/GemfireSequenceDisplay.java         |   336 +
 .../sequence/gemfire/HydraLineMapper.java       |   135 +
 .../sequence/gemfire/SelectGraphDialog.java     |   155 +
 .../com/main/MyDistributedSystemListener.java   |   115 +
 .../com/main/WANBootStrapping_Site1_Add.java    |   122 +
 .../com/main/WANBootStrapping_Site1_Remove.java |    75 +
 .../com/main/WANBootStrapping_Site2_Add.java    |   107 +
 .../com/main/WANBootStrapping_Site2_Remove.java |    73 +
 geode-core/src/test/java/hydra/GsRandom.java    |   311 +
 .../test/java/hydra/HydraRuntimeException.java  |    33 +
 geode-core/src/test/java/hydra/Log.java         |   219 +
 .../src/test/java/hydra/LogVersionHelper.java   |    45 +
 .../src/test/java/hydra/MethExecutor.java       |   393 +
 .../src/test/java/hydra/MethExecutorResult.java |   186 +
 .../src/test/java/hydra/SchedulingOrder.java    |    36 +
 .../src/test/java/hydra/log/AnyLogWriter.java   |   555 +
 .../java/hydra/log/CircularOutputStream.java    |   131 +
 .../parReg/query/unittest/NewPortfolio.java     |   272 +
 .../java/parReg/query/unittest/Position.java    |   162 +
 .../src/test/java/perffmwk/Formatter.java       |   147 +
 .../java/security/AuthzCredentialGenerator.java |   462 +
 .../test/java/security/CredentialGenerator.java |   343 +
 .../security/DummyAuthzCredentialGenerator.java |   145 +
 .../java/security/DummyCredentialGenerator.java |    94 +
 .../security/LdapUserCredentialGenerator.java   |   160 +
 .../java/security/PKCSCredentialGenerator.java  |   112 +
 .../java/security/SSLCredentialGenerator.java   |   117 +
 .../UserPasswordWithExtraPropsAuthInit.java     |    77 +
 .../security/XmlAuthzCredentialGenerator.java   |   264 +
 .../templates/security/DummyAuthenticator.java  |    87 +
 .../templates/security/DummyAuthorization.java  |   118 +
 .../security/FunctionSecurityPrmsHolder.java    |    55 +
 .../security/LdapUserAuthenticator.java         |   117 +
 .../java/templates/security/PKCSAuthInit.java   |   133 +
 .../templates/security/PKCSAuthenticator.java   |   167 +
 .../java/templates/security/PKCSPrincipal.java  |    42 +
 .../security/UserPasswordAuthInit.java          |    84 +
 .../templates/security/UsernamePrincipal.java   |    46 +
 .../templates/security/XmlAuthorization.java    |   675 +
 .../templates/security/XmlErrorHandler.java     |    82 +
 .../src/test/java/util/TestException.java       |    35 +
 ...gemstone.gemfire.internal.cache.CacheService |     1 +
 ...ne.gemfire.internal.cache.xmlcache.XmlParser |     5 +
 ...org.springframework.shell.core.CommandMarker |     8 +
 .../ClientCacheFactoryJUnitTest_single_pool.xml |    30 +
 .../cache/client/internal/cacheserver.cer       |   Bin 0 -> 782 bytes
 .../cache/client/internal/cacheserver.keystore  |   Bin 0 -> 1253 bytes
 .../client/internal/cacheserver.truststore      |   Bin 0 -> 844 bytes
 .../gemfire/cache/client/internal/client.cer    |   Bin 0 -> 782 bytes
 .../cache/client/internal/client.keystore       |   Bin 0 -> 1251 bytes
 .../cache/client/internal/client.truststore     |   Bin 0 -> 846 bytes
 .../cache/client/internal/default.keystore      |   Bin 0 -> 1115 bytes
 .../cache/client/internal/trusted.keystore      |   Bin 0 -> 1078 bytes
 .../gemfire/cache/query/dunit/IndexCreation.xml |   131 +
 .../functional/index-creation-with-eviction.xml |    56 +
 .../index-creation-without-eviction.xml         |    67 +
 .../functional/index-recovery-overflow.xml      |    57 +
 .../query/internal/index/cachequeryindex.xml    |   125 +
 .../internal/index/cachequeryindexwitherror.xml |   134 +
 .../cache/query/partitioned/PRIndexCreation.xml |    44 +
 .../gemfire/cache30/attributesUnordered.xml     |    39 +
 .../com/gemstone/gemfire/cache30/badFloat.xml   |    30 +
 .../com/gemstone/gemfire/cache30/badInt.xml     |    33 +
 .../gemfire/cache30/badKeyConstraintClass.xml   |    31 +
 .../com/gemstone/gemfire/cache30/badScope.xml   |    30 +
 .../com/gemstone/gemfire/cache30/bug44710.xml   |    31 +
 .../gemfire/cache30/callbackNotDeclarable.xml   |    34 +
 .../gemfire/cache30/callbackWithException.xml   |    34 +
 .../com/gemstone/gemfire/cache30/coLocation.xml |    31 +
 .../gemstone/gemfire/cache30/coLocation3.xml    |    31 +
 .../com/gemstone/gemfire/cache30/ewtest.xml     |    68 +
 .../cache30/examples_3_0/example-cache.xml      |    87 +
 .../cache30/examples_4_0/example-cache.xml      |    94 +
 .../gemfire/cache30/loaderNotLoader.xml         |    33 +
 .../com/gemstone/gemfire/cache30/malformed.xml  |    29 +
 .../gemfire/cache30/namedAttributes.xml         |    59 +
 .../gemfire/cache30/partitionedRegion.xml       |    39 +
 .../gemfire/cache30/partitionedRegion51.xml     |    31 +
 .../gemstone/gemfire/cache30/sameRootRegion.xml |    37 +
 .../gemstone/gemfire/cache30/sameSubregion.xml  |    42 +
 .../gemfire/cache30/unknownNamedAttributes.xml  |    30 +
 .../gemfire/codeAnalysis/excludedClasses.txt    |   115 +
 .../gemstone/gemfire/codeAnalysis/openBugs.txt  |    23 +
 .../sanctionedDataSerializables.txt             |  2172 +++
 .../codeAnalysis/sanctionedSerializables.txt    |   829 +
 .../internal/SharedConfigurationJUnitTest.xml   |    23 +
 ...st_testWriteAfterSamplingBegins_expected.gfs |   Bin 0 -> 1970 bytes
 ...est_testWriteWhenSamplingBegins_expected.gfs |   Bin 0 -> 1933 bytes
 .../internal/cache/BackupJUnitTest.cache.xml    |    23 +
 .../internal/cache/DiskRegCacheXmlJUnitTest.xml |   233 +
 .../cache/PartitionRegionCacheExample1.xml      |    43 +
 .../cache/PartitionRegionCacheExample2.xml      |    42 +
 .../incorrect_bytes_threshold.xml               |    35 +
 .../faultyDiskXMLsForTesting/incorrect_dir.xml  |    35 +
 .../incorrect_dir_size.xml                      |    35 +
 .../incorrect_max_oplog_size.xml                |    35 +
 .../incorrect_roll_oplogs_value.xml             |    35 +
 .../incorrect_sync_value.xml                    |    35 +
 .../incorrect_time_interval.xml                 |    35 +
 .../mixed_diskstore_diskdir.xml                 |    38 +
 .../mixed_diskstore_diskwriteattrs.xml          |    38 +
 .../tier/sockets/RedundancyLevelJUnitTest.xml   |    38 +
 ...testDTDFallbackWithNonEnglishLocal.cache.xml |    23 +
 .../gemstone/gemfire/internal/jta/cachejta.xml  |   273 +
 .../domain/CacheElementJUnitTest.xml            |     7 +
 ...dNewNodeJUnitTest.testAddNewNodeNewNamed.xml |    25 +
 ...ewNodeJUnitTest.testAddNewNodeNewUnnamed.xml |    27 +
 ...itTest.testAddNewNodeNewUnnamedExtension.xml |    25 +
 ...NodeJUnitTest.testAddNewNodeReplaceNamed.xml |    22 +
 ...deJUnitTest.testAddNewNodeReplaceUnnamed.xml |    24 +
 ...st.testAddNewNodeReplaceUnnamedExtension.xml |    24 +
 ...sAddNewNodeJUnitTest.testDeleteNodeNamed.xml |    21 +
 ...ddNewNodeJUnitTest.testDeleteNodeUnnamed.xml |    23 +
 ...JUnitTest.testDeleteNodeUnnamedExtension.xml |    23 +
 .../utils/XmlUtilsAddNewNodeJUnitTest.xml       |    24 +
 ...Test.testBuildSchemaLocationMapAttribute.xml |    10 +
 ...testBuildSchemaLocationMapEmptyAttribute.xml |     8 +
 ...ationMapMapOfStringListOfStringAttribute.xml |    10 +
 ....testBuildSchemaLocationMapNullAttribute.xml |     7 +
 ...XmlUtilsJUnitTest.testQuerySingleElement.xml |    24 +
 .../management/internal/security/auth1.json     |    14 +
 .../management/internal/security/auth2.json     |    21 +
 .../management/internal/security/auth3.json     |    25 +
 .../internal/security/testInheritRole.json      |    40 +
 .../security/testSimpleUserAndRole.json         |    14 +
 .../testUserAndRoleRegionServerGroup.json       |    16 +
 .../internal/security/testUserMultipleRole.json |    20 +
 .../gemstone/gemfire/pdx/jsonStrings/array.txt  |    22 +
 .../gemfire/pdx/jsonStrings/attachment.txt      |    11 +
 .../gemfire/pdx/jsonStrings/attachment2.txt     |    13 +
 .../gemstone/gemfire/pdx/jsonStrings/book.txt   |    17 +
 .../gemstone/gemfire/pdx/jsonStrings/image.txt  |    13 +
 .../gemstone/gemfire/pdx/jsonStrings/json1.txt  |    22 +
 .../gemstone/gemfire/pdx/jsonStrings/json10.txt |    20 +
 .../gemstone/gemfire/pdx/jsonStrings/json11.txt |    33 +
 .../gemstone/gemfire/pdx/jsonStrings/json12.txt |    32 +
 .../gemstone/gemfire/pdx/jsonStrings/json13.txt |    42 +
 .../gemstone/gemfire/pdx/jsonStrings/json14.txt |    15 +
 .../gemstone/gemfire/pdx/jsonStrings/json15.txt |     1 +
 .../gemstone/gemfire/pdx/jsonStrings/json16.txt |    31 +
 .../gemfire/pdx/jsonStrings/json16_2.txt        |    31 +
 .../gemstone/gemfire/pdx/jsonStrings/json17.txt |    27 +
 .../gemstone/gemfire/pdx/jsonStrings/json18.txt |    71 +
 .../gemstone/gemfire/pdx/jsonStrings/json19.txt |    18 +
 .../gemstone/gemfire/pdx/jsonStrings/json2.txt  |    11 +
 .../gemstone/gemfire/pdx/jsonStrings/json20.txt |    36 +
 .../gemstone/gemfire/pdx/jsonStrings/json21.txt |    36 +
 .../gemstone/gemfire/pdx/jsonStrings/json22.txt |    36 +
 .../gemstone/gemfire/pdx/jsonStrings/json23.txt |    23 +
 .../gemstone/gemfire/pdx/jsonStrings/json24.txt |    15 +
 .../gemstone/gemfire/pdx/jsonStrings/json25.txt |    33 +
 .../gemstone/gemfire/pdx/jsonStrings/json26.txt |    13 +
 .../gemstone/gemfire/pdx/jsonStrings/json27.txt |    25 +
 .../gemstone/gemfire/pdx/jsonStrings/json28.txt |    84 +
 .../gemstone/gemfire/pdx/jsonStrings/json29.txt |    11 +
 .../gemstone/gemfire/pdx/jsonStrings/json3.txt  |    26 +
 .../gemstone/gemfire/pdx/jsonStrings/json31.txt |     9 +
 .../gemstone/gemfire/pdx/jsonStrings/json4.txt  |    88 +
 .../gemstone/gemfire/pdx/jsonStrings/json5.txt  |    27 +
 .../gemstone/gemfire/pdx/jsonStrings/json6.txt  |    11 +
 .../gemstone/gemfire/pdx/jsonStrings/json7.txt  |    32 +
 .../gemstone/gemfire/pdx/jsonStrings/json8.txt  |    53 +
 .../gemstone/gemfire/pdx/jsonStrings/json9.txt  |    77 +
 .../gemfire/pdx/jsonStrings/jsonMongo.txt       |    10 +
 .../pdx/jsonStrings/jsonMongoSingleQuote.tx0    |    10 +
 .../gemfire/pdx/jsonStrings/jsonProductdb.txt   |    33 +
 .../gemfire/pdx/jsonStrings/json_google.txt     |    33 +
 .../gemfire/pdx/jsonStrings/jsoncustomer.txt    |    24 +
 .../gemfire/pdx/jsonStrings/jsonemptyobject.txo |    44 +
 .../gemfire/pdx/jsonStrings/jsonemptyobject.txt |    23 +
 .../gemfire/pdx/jsonStrings/jsonfacebook.txt    |    45 +
 .../gemfire/pdx/jsonStrings/jsonfeed.txt        |    33 +
 .../gemfire/pdx/jsonStrings/jsonfeed2.txt       |    47 +
 .../gemfire/pdx/jsonStrings/jsonflicker.txt     |    21 +
 .../gemfire/pdx/jsonStrings/jsoniphone.txt      |    78 +
 .../pdx/jsonStrings/jsonsolrwithcomment.tx0     |    29 +
 .../pdx/jsonStrings/jsonsolrwithcomment.txt     |    29 +
 .../gemfire/pdx/jsonStrings/jsontwitter1.txt    |   430 +
 .../gemfire/pdx/jsonStrings/jsontwitter2.txt    |   574 +
 .../gemfire/pdx/jsonStrings/jsontwitter3.txt    |    70 +
 .../gemfire/pdx/jsonStrings/jsonutf.tx0         |     2 +
 .../gemfire/pdx/jsonStrings/jsonyahoo.txt       |    11 +
 .../gemfire/pdx/jsonStrings/jsonyoutube.txt     |    54 +
 .../gemfire/pdx/jsonStrings/linkden1.txt        |    16 +
 .../gemstone/gemfire/pdx/jsonStrings/odata.txt  |    16 +
 .../gemstone/gemfire/pdx/jsonStrings/odata2.txt |    18 +
 .../jsonStrings/unquoteJsonStrings/json1.txt    |    31 +
 .../gemfire/pdx/jsonStrings/weather.txt         |     1 +
 .../gemfire/test/golden/log4j2-test.xml         |    18 +
 geode-core/src/test/resources/jta/cachejta.xml  |   273 +
 .../src/test/resources/lib/authz-dummy.xml      |   126 +
 .../src/test/resources/lib/authz-ldap.xml       |    85 +
 .../resources/lib/authz-multiUser-dummy.xml     |   106 +
 .../test/resources/lib/authz-multiUser-ldap.xml |    83 +
 .../test/resources/lib/keys/gemfire1.keystore   |   Bin 0 -> 1536 bytes
 .../test/resources/lib/keys/gemfire10.keystore  |   Bin 0 -> 1546 bytes
 .../test/resources/lib/keys/gemfire11.keystore  |   Bin 0 -> 1546 bytes
 .../test/resources/lib/keys/gemfire2.keystore   |   Bin 0 -> 1536 bytes
 .../test/resources/lib/keys/gemfire3.keystore   |   Bin 0 -> 1536 bytes
 .../test/resources/lib/keys/gemfire4.keystore   |   Bin 0 -> 1536 bytes
 .../test/resources/lib/keys/gemfire5.keystore   |   Bin 0 -> 1536 bytes
 .../test/resources/lib/keys/gemfire6.keystore   |   Bin 0 -> 1536 bytes
 .../test/resources/lib/keys/gemfire7.keystore   |   Bin 0 -> 1536 bytes
 .../test/resources/lib/keys/gemfire8.keystore   |   Bin 0 -> 1536 bytes
 .../test/resources/lib/keys/gemfire9.keystore   |   Bin 0 -> 1536 bytes
 .../resources/lib/keys/ibm/gemfire1.keystore    |   Bin 0 -> 1426 bytes
 .../resources/lib/keys/ibm/gemfire10.keystore   |   Bin 0 -> 1434 bytes
 .../resources/lib/keys/ibm/gemfire11.keystore   |   Bin 0 -> 1434 bytes
 .../resources/lib/keys/ibm/gemfire2.keystore    |   Bin 0 -> 1434 bytes
 .../resources/lib/keys/ibm/gemfire3.keystore    |   Bin 0 -> 1426 bytes
 .../resources/lib/keys/ibm/gemfire4.keystore    |   Bin 0 -> 1434 bytes
 .../resources/lib/keys/ibm/gemfire5.keystore    |   Bin 0 -> 1434 bytes
 .../resources/lib/keys/ibm/gemfire6.keystore    |   Bin 0 -> 1434 bytes
 .../resources/lib/keys/ibm/gemfire7.keystore    |   Bin 0 -> 1426 bytes
 .../resources/lib/keys/ibm/gemfire8.keystore    |   Bin 0 -> 1434 bytes
 .../resources/lib/keys/ibm/gemfire9.keystore    |   Bin 0 -> 1426 bytes
 .../test/resources/lib/keys/ibm/publickeyfile   |   Bin 0 -> 4535 bytes
 .../src/test/resources/lib/keys/publickeyfile   |   Bin 0 -> 4535 bytes
 .../resources/spring/spring-gemfire-context.xml |    42 +
 .../src/test/resources/ssl/trusted.keystore     |   Bin 0 -> 1176 bytes
 .../src/test/resources/ssl/untrusted.keystore   |   Bin 0 -> 1181 bytes
 .../resources/templates/security/authz5_5.dtd   |   105 +
 .../resources/templates/security/authz6_0.dtd   |   110 +
 geode-cq/build.gradle                           |    23 +
 .../cache/client/internal/CloseCQOp.java        |    72 +
 .../cache/client/internal/CreateCQOp.java       |   163 +
 .../cache/client/internal/CreateCQWithIROp.java |    92 +
 .../cache/client/internal/GetDurableCQsOp.java  |   135 +
 .../client/internal/ServerCQProxyImpl.java      |   111 +
 .../gemfire/cache/client/internal/StopCQOp.java |    72 +
 .../cache/query/internal/cq/ClientCQImpl.java   |   615 +
 .../internal/cq/CqAttributesMutatorImpl.java    |    68 +
 .../cache/query/internal/cq/CqConflatable.java  |   223 +
 .../cache/query/internal/cq/CqEventImpl.java    |   162 +
 .../cache/query/internal/cq/CqListenerImpl.java |    56 +
 .../cache/query/internal/cq/CqQueryImpl.java    |   383 +
 .../query/internal/cq/CqServiceFactoryImpl.java |    69 +
 .../cache/query/internal/cq/CqServiceImpl.java  |  2087 ++
 .../internal/cq/CqServiceStatisticsImpl.java    |   100 +
 .../query/internal/cq/CqServiceVsdStats.java    |   411 +
 .../query/internal/cq/CqStatisticsImpl.java     |    75 +
 .../cache/query/internal/cq/ServerCQImpl.java   |   655 +
 .../tier/sockets/command/BaseCQCommand.java     |    59 +
 .../cache/tier/sockets/command/CloseCQ.java     |   131 +
 .../cache/tier/sockets/command/ExecuteCQ.java   |   168 +
 .../cache/tier/sockets/command/ExecuteCQ61.java |   220 +
 .../cache/tier/sockets/command/GetCQStats.java  |   100 +
 .../tier/sockets/command/GetDurableCQs.java     |   143 +
 .../cache/tier/sockets/command/MonitorCQ.java   |   100 +
 .../cache/tier/sockets/command/StopCQ.java      |   135 +
 ...cache.query.internal.cq.spi.CqServiceFactory |    15 +
 .../gemfire/cache/query/cq/CQJUnitTest.java     |   150 +
 .../cache/query/cq/dunit/CqDataDUnitTest.java   |  1168 ++
 .../dunit/CqDataOptimizedExecuteDUnitTest.java  |    55 +
 .../cq/dunit/CqDataUsingPoolDUnitTest.java      |  1574 ++
 ...qDataUsingPoolOptimizedExecuteDUnitTest.java |    54 +
 .../cache/query/cq/dunit/CqPerfDUnitTest.java   |  1049 +
 .../cq/dunit/CqPerfUsingPoolDUnitTest.java      |  1009 +
 .../cache/query/cq/dunit/CqQueryDUnitTest.java  |  4009 ++++
 .../dunit/CqQueryOptimizedExecuteDUnitTest.java |   314 +
 .../cq/dunit/CqQueryUsingPoolDUnitTest.java     |  3328 ++++
 ...QueryUsingPoolOptimizedExecuteDUnitTest.java |    50 +
 .../cq/dunit/CqResultSetUsingPoolDUnitTest.java |  1144 ++
 ...ltSetUsingPoolOptimizedExecuteDUnitTest.java |   235 +
 .../cache/query/cq/dunit/CqStateDUnitTest.java  |   138 +
 .../cache/query/cq/dunit/CqStatsDUnitTest.java  |   445 +
 .../dunit/CqStatsOptimizedExecuteDUnitTest.java |    50 +
 .../cq/dunit/CqStatsUsingPoolDUnitTest.java     |   456 +
 ...StatsUsingPoolOptimizedExecuteDUnitTest.java |    50 +
 .../query/cq/dunit/CqTimeTestListener.java      |   266 +
 .../PartitionedRegionCqQueryDUnitTest.java      |  1792 ++
 ...dRegionCqQueryOptimizedExecuteDUnitTest.java |   248 +
 .../query/cq/dunit/PrCqUsingPoolDUnitTest.java  |  2033 ++
 .../PrCqUsingPoolOptimizedExecuteDUnitTest.java |    50 +
 .../cache/query/dunit/PdxQueryCQDUnitTest.java  |   706 +
 .../cache/query/dunit/PdxQueryCQTestBase.java   |   496 +
 .../dunit/QueryIndexUpdateRIDUnitTest.java      |   823 +
 .../query/dunit/QueryMonitorDUnitTest.java      |  1300 ++
 .../cache/snapshot/ClientSnapshotDUnitTest.java |   286 +
 .../AnalyzeCQSerializablesJUnitTest.java        |    79 +
 .../cache/PRDeltaPropagationDUnitTest.java      |  1215 ++
 .../internal/cache/PutAllCSDUnitTest.java       |  4426 +++++
 .../cache/RemoteCQTransactionDUnitTest.java     |  1119 ++
 .../internal/cache/ha/CQListGIIDUnitTest.java   |   821 +
 .../cache/ha/HADispatcherDUnitTest.java         |   696 +
 .../sockets/ClientToServerDeltaDUnitTest.java   |  1040 +
 .../DeltaPropagationWithCQDUnitTest.java        |   344 +
 ...ToRegionRelationCQRegistrationDUnitTest.java |   784 +
 .../sockets/DurableClientCrashDUnitTest.java    |    99 +
 .../sockets/DurableClientNetDownDUnitTest.java  |    79 +
 .../sockets/DurableClientSimpleDUnitTest.java   |  3409 ++++
 .../tier/sockets/DurableClientTestCase.java     |  2100 ++
 .../CacheServerManagementDUnitTest.java         |   575 +
 .../cli/commands/ClientCommandsDUnitTest.java   |  1446 ++
 .../DurableClientCommandsDUnitTest.java         |   436 +
 .../internal/pulse/TestCQDUnitTest.java         |   147 +
 .../internal/pulse/TestClientsDUnitTest.java    |   108 +
 .../internal/pulse/TestServerDUnitTest.java     |    98 +
 .../ClientAuthorizationTwoDUnitTest.java        |   243 +
 .../security/ClientAuthzObjectModDUnitTest.java |   417 +
 .../ClientCQPostAuthorizationDUnitTest.java     |   525 +
 .../ClientPostAuthorizationDUnitTest.java       |   397 +
 .../gemfire/security/MultiuserAPIDUnitTest.java |   392 +
 .../MultiuserDurableCQAuthzDUnitTest.java       |   491 +
 .../gemfire/codeAnalysis/excludedClasses.txt    |     2 +
 .../gemstone/gemfire/codeAnalysis/openBugs.txt  |    21 +
 .../sanctionedDataSerializables.txt             |     4 +
 .../codeAnalysis/sanctionedSerializables.txt    |     1 +
 .../tier/sockets/durablecq-client-cache.xml     |    37 +
 .../tier/sockets/durablecq-server-cache.xml     |    32 +
 .../java/joptsimple/AbstractOptionSpec.java     |   127 +
 .../joptsimple/AlternativeLongOptionSpec.java   |    54 +
 .../joptsimple/ArgumentAcceptingOptionSpec.java |   349 +
 .../src/main/java/joptsimple/ArgumentList.java  |    59 +
 .../java/joptsimple/BuiltinHelpFormatter.java   |   149 +
 .../src/main/java/joptsimple/HelpFormatter.java |    45 +
 .../IllegalOptionSpecificationException.java    |    52 +
 .../MissingRequiredOptionException.java         |    52 +
 .../MultipleArgumentsForOptionException.java    |    52 +
 .../java/joptsimple/NoArgumentOptionSpec.java   |    82 +
 .../OptionArgumentConversionException.java      |    63 +
 .../main/java/joptsimple/OptionDescriptor.java  |    94 +
 .../main/java/joptsimple/OptionException.java   |   111 +
 .../OptionMissingRequiredArgumentException.java |    52 +
 .../src/main/java/joptsimple/OptionParser.java  |   568 +
 .../main/java/joptsimple/OptionParserState.java |    81 +
 .../src/main/java/joptsimple/OptionSet.java     |   309 +
 .../src/main/java/joptsimple/OptionSpec.java    |    98 +
 .../main/java/joptsimple/OptionSpecBuilder.java |    96 +
 .../java/joptsimple/OptionSpecTokenizer.java    |   127 +
 .../joptsimple/OptionalArgumentOptionSpec.java  |    69 +
 .../src/main/java/joptsimple/ParserRules.java   |    84 +
 .../joptsimple/RequiredArgumentOptionSpec.java  |    54 +
 .../joptsimple/UnrecognizedOptionException.java |    52 +
 .../joptsimple/ValueConversionException.java    |    54 +
 .../main/java/joptsimple/ValueConverter.java    |    58 +
 .../joptsimple/internal/AbbreviationMap.java    |   233 +
 .../main/java/joptsimple/internal/Classes.java  |    74 +
 .../main/java/joptsimple/internal/Column.java   |   133 +
 .../internal/ColumnWidthCalculator.java         |    41 +
 .../java/joptsimple/internal/ColumnarData.java  |   163 +
 .../ConstructorInvokingValueConverter.java      |    58 +
 .../internal/MethodInvokingValueConverter.java  |    60 +
 .../main/java/joptsimple/internal/Objects.java  |    46 +
 .../java/joptsimple/internal/Reflection.java    |   143 +
 .../internal/ReflectionException.java           |    39 +
 .../main/java/joptsimple/internal/Strings.java  |   117 +
 .../java/joptsimple/util/DateConverter.java     |   104 +
 .../main/java/joptsimple/util/KeyValuePair.java |    83 +
 .../main/java/joptsimple/util/RegexMatcher.java |    88 +
 geode-json/src/main/java/org/json/CDL.java      |   279 +
 geode-json/src/main/java/org/json/Cookie.java   |   169 +
 .../src/main/java/org/json/CookieList.java      |    90 +
 geode-json/src/main/java/org/json/HTTP.java     |   163 +
 .../src/main/java/org/json/HTTPTokener.java     |    77 +
 .../src/main/java/org/json/JSONArray.java       |   906 +
 .../src/main/java/org/json/JSONException.java   |    28 +
 geode-json/src/main/java/org/json/JSONML.java   |   467 +
 .../src/main/java/org/json/JSONObject.java      |  1611 ++
 .../src/main/java/org/json/JSONString.java      |    18 +
 .../src/main/java/org/json/JSONStringer.java    |    78 +
 .../src/main/java/org/json/JSONTokener.java     |   446 +
 .../src/main/java/org/json/JSONWriter.java      |   327 +
 geode-json/src/main/java/org/json/XML.java      |   508 +
 .../src/main/java/org/json/XMLTokener.java      |   365 +
 geode-junit/build.gradle                        |    21 +
 .../gemfire/test/junit/ConditionalIgnore.java   |    49 +
 .../gemfire/test/junit/IgnoreCondition.java     |    32 +
 .../gemfire/test/junit/IgnoreUntil.java         |    49 +
 .../com/gemstone/gemfire/test/junit/Repeat.java |    43 +
 .../com/gemstone/gemfire/test/junit/Retry.java  |    38 +
 .../test/junit/categories/ContainerTest.java    |    25 +
 .../test/junit/categories/DistributedTest.java  |    25 +
 .../categories/DistributedTransactionsTest.java |    26 +
 .../test/junit/categories/HydraTest.java        |    24 +
 .../test/junit/categories/IntegrationTest.java  |    25 +
 .../test/junit/categories/PerformanceTest.java  |    25 +
 .../gemfire/test/junit/categories/UITest.java   |    24 +
 .../gemfire/test/junit/categories/UnitTest.java |    25 +
 .../gemfire/test/junit/categories/WanTest.java  |    24 +
 .../test/junit/rules/ConditionalIgnoreRule.java |   123 +
 .../test/junit/rules/ExpectedTimeout.java       |   180 +
 .../test/junit/rules/ExpectedTimeoutRule.java   |   180 +
 .../test/junit/rules/IgnoreUntilRule.java       |   123 +
 .../gemfire/test/junit/rules/RepeatRule.java    |    81 +
 .../gemfire/test/junit/rules/RetryRule.java     |   181 +
 .../rules/SerializableExternalResource.java     |   107 +
 .../test/junit/rules/SerializableRuleChain.java |   119 +
 .../rules/SerializableTemporaryFolder.java      |    70 +
 .../test/junit/rules/SerializableTestName.java  |    54 +
 .../test/junit/rules/SerializableTestRule.java  |    33 +
 .../junit/rules/SerializableTestWatcher.java    |    29 +
 .../test/junit/rules/SerializableTimeout.java   |   119 +
 .../junit/support/DefaultIgnoreCondition.java   |    57 +
 .../IgnoreConditionEvaluationException.java     |    43 +
 .../junit/rules/ExpectedTimeoutJUnitTest.java   |   204 +
 .../examples/RepeatingTestCasesExampleTest.java |    94 +
 .../rules/examples/RetryRuleExampleTest.java    |    43 +
 .../rules/tests/ExpectedTimeoutRuleTest.java    |   214 +
 .../junit/rules/tests/IgnoreUntilRuleTest.java  |   121 +
 .../junit/rules/tests/JUnitRuleTestSuite.java   |    33 +
 .../test/junit/rules/tests/RepeatRuleTest.java  |   304 +
 .../tests/RetryRuleGlobalWithErrorTest.java     |   250 +
 .../tests/RetryRuleGlobalWithExceptionTest.java |   254 +
 .../tests/RetryRuleLocalWithErrorTest.java      |   207 +
 .../tests/RetryRuleLocalWithExceptionTest.java  |   213 +
 .../junit/rules/tests/RuleAndClassRuleTest.java |   138 +
 .../test/junit/rules/tests/TestRunner.java      |    37 +
 geode-lucene/build.gradle                       |    40 +
 .../gemfire/cache/lucene/LuceneIndex.java       |    60 +
 .../gemfire/cache/lucene/LuceneQuery.java       |    48 +
 .../cache/lucene/LuceneQueryFactory.java        |   100 +
 .../cache/lucene/LuceneQueryProvider.java       |    45 +
 .../cache/lucene/LuceneQueryResults.java        |    58 +
 .../cache/lucene/LuceneResultStruct.java        |    62 +
 .../gemfire/cache/lucene/LuceneService.java     |   118 +
 .../cache/lucene/LuceneServiceProvider.java     |    46 +
 .../lucene/internal/InternalLuceneIndex.java    |    29 +
 .../lucene/internal/InternalLuceneService.java  |    29 +
 .../lucene/internal/LuceneEventListener.java    |    99 +
 .../LuceneIndexForPartitionedRegion.java        |   136 +
 .../LuceneIndexForReplicatedRegion.java         |    48 +
 .../cache/lucene/internal/LuceneIndexImpl.java  |   107 +
 .../lucene/internal/LuceneQueryFactoryImpl.java |    67 +
 .../cache/lucene/internal/LuceneQueryImpl.java  |    87 +
 .../lucene/internal/LuceneQueryResultsImpl.java |   120 +
 .../lucene/internal/LuceneResultStructImpl.java |    94 +
 .../lucene/internal/LuceneServiceImpl.java      |   273 +
 .../internal/PartitionedRepositoryManager.java  |   163 +
 .../lucene/internal/StringQueryProvider.java    |   106 +
 .../internal/directory/FileIndexInput.java      |   131 +
 .../internal/directory/RegionDirectory.java     |   119 +
 .../internal/distributed/CollectorManager.java  |    55 +
 .../lucene/internal/distributed/EntryScore.java |    82 +
 .../internal/distributed/LuceneFunction.java    |   137 +
 .../distributed/LuceneFunctionContext.java      |   115 +
 .../lucene/internal/distributed/TopEntries.java |   133 +
 .../distributed/TopEntriesCollector.java        |   102 +
 .../distributed/TopEntriesCollectorManager.java |   178 +
 .../TopEntriesFunctionCollector.java            |   163 +
 .../lucene/internal/filesystem/ChunkKey.java    |   123 +
 .../cache/lucene/internal/filesystem/File.java  |   155 +
 .../internal/filesystem/FileInputStream.java    |   166 +
 .../internal/filesystem/FileOutputStream.java   |   103 +
 .../lucene/internal/filesystem/FileSystem.java  |   156 +
 .../filesystem/SeekableInputStream.java         |    43 +
 .../internal/repository/IndexRepository.java    |    74 +
 .../repository/IndexRepositoryImpl.java         |   113 +
 .../repository/IndexResultCollector.java        |    47 +
 .../internal/repository/RepositoryManager.java  |    44 +
 .../HeterogenousLuceneSerializer.java           |    83 +
 .../repository/serializer/LuceneSerializer.java |    35 +
 .../serializer/PdxLuceneSerializer.java         |    47 +
 .../serializer/ReflectionLuceneSerializer.java  |    74 +
 .../repository/serializer/SerializerUtil.java   |   168 +
 .../internal/xml/LuceneIndexCreation.java       |   111 +
 .../internal/xml/LuceneIndexXmlGenerator.java   |    65 +
 .../internal/xml/LuceneServiceXmlGenerator.java |    39 +
 .../lucene/internal/xml/LuceneXmlConstants.java |    31 +
 .../lucene/internal/xml/LuceneXmlParser.java    |    97 +
 .../geode.apache.org/lucene/lucene-1.0.xsd      |    57 +
 ...gemstone.gemfire.internal.cache.CacheService |     1 +
 ...ne.gemfire.internal.cache.xmlcache.XmlParser |     1 +
 .../internal/LuceneEventListenerJUnitTest.java  |   109 +
 .../LuceneIndexRecoveryHAJUnitTest.java         |   201 +
 .../LuceneQueryFactoryImplJUnitTest.java        |    50 +
 .../internal/LuceneQueryImplJUnitTest.java      |   123 +
 .../LuceneQueryResultsImplJUnitTest.java        |   126 +
 .../LuceneResultStructImpJUnitTest.java         |    51 +
 .../internal/LuceneServiceImplJUnitTest.java    |   226 +
 .../PartitionedRepositoryManagerJUnitTest.java  |   230 +
 .../internal/StringQueryProviderJUnitTest.java  |    90 +
 .../directory/RegionDirectoryJUnitTest.java     |    56 +
 .../DistributedScoringJUnitTest.java            |   155 +
 .../distributed/EntryScoreJUnitTest.java        |    40 +
 .../LuceneFunctionContextJUnitTest.java         |    64 +
 .../distributed/LuceneFunctionJUnitTest.java    |   423 +
 .../LuceneFunctionReadPathDUnitTest.java        |   240 +
 .../TopEntriesCollectorJUnitTest.java           |   139 +
 .../TopEntriesFunctionCollectorJUnitTest.java   |   323 +
 .../distributed/TopEntriesJUnitTest.java        |   146 +
 .../internal/filesystem/ChunkKeyJUnitTest.java  |    48 +
 .../internal/filesystem/FileJUnitTest.java      |    53 +
 .../filesystem/FileSystemJUnitTest.java         |   578 +
 .../IndexRepositoryImplJUnitTest.java           |   208 +
 .../IndexRepositoryImplPerformanceTest.java     |   439 +
 .../HeterogenousLuceneSerializerJUnitTest.java  |    90 +
 .../serializer/PdxFieldMapperJUnitTest.java     |    85 +
 .../ReflectionFieldMapperJUnitTest.java         |    85 +
 .../internal/repository/serializer/Type1.java   |    48 +
 .../internal/repository/serializer/Type2.java   |    34 +
 ...neIndexXmlGeneratorIntegrationJUnitTest.java |    78 +
 .../xml/LuceneIndexXmlGeneratorJUnitTest.java   |    80 +
 ...uceneIndexXmlParserIntegrationJUnitTest.java |   107 +
 .../xml/LuceneIndexXmlParserJUnitTest.java      |    72 +
 ...erIntegrationJUnitTest.createIndex.cache.xml |    41 +
 ...serIntegrationJUnitTest.parseIndex.cache.xml |    41 +
 geode-pulse/build.gradle                        |   116 +
 .../tools/pulse/internal/PulseAppListener.java  |   703 +
 .../controllers/ExceptionHandlingAdvice.java    |    52 +
 .../internal/controllers/PulseController.java   |   587 +
 .../tools/pulse/internal/data/Cluster.java      |  3826 ++++
 .../tools/pulse/internal/data/DataBrowser.java  |   281 +
 .../pulse/internal/data/IClusterUpdater.java    |    37 +
 .../pulse/internal/data/JMXDataUpdater.java     |  2455 +++
 .../pulse/internal/data/JmxManagerFinder.java   |   171 +
 .../tools/pulse/internal/data/PulseConfig.java  |   126 +
 .../pulse/internal/data/PulseConstants.java     |   421 +
 .../tools/pulse/internal/data/PulseVersion.java |   104 +
 .../tools/pulse/internal/data/Repository.java   |   215 +
 .../gemfire/tools/pulse/internal/json/CDL.java  |   274 +
 .../tools/pulse/internal/json/Cookie.java       |   164 +
 .../tools/pulse/internal/json/CookieList.java   |    85 +
 .../gemfire/tools/pulse/internal/json/HTTP.java |   158 +
 .../tools/pulse/internal/json/HTTPTokener.java  |    72 +
 .../tools/pulse/internal/json/JSONArray.java    |   901 +
 .../pulse/internal/json/JSONException.java      |    47 +
 .../tools/pulse/internal/json/JSONML.java       |   462 +
 .../tools/pulse/internal/json/JSONObject.java   |  1585 ++
 .../tools/pulse/internal/json/JSONString.java   |    37 +
 .../tools/pulse/internal/json/JSONStringer.java |    73 +
 .../tools/pulse/internal/json/JSONTokener.java  |   441 +
 .../tools/pulse/internal/json/JSONWriter.java   |   322 +
 .../gemfire/tools/pulse/internal/json/README    |    68 +
 .../gemfire/tools/pulse/internal/json/XML.java  |   503 +
 .../tools/pulse/internal/json/XMLTokener.java   |   360 +
 .../tools/pulse/internal/log/LogWriter.java     |   266 +
 .../pulse/internal/log/MessageFormatter.java    |   103 +
 .../pulse/internal/log/PulseLogWriter.java      |   306 +
 .../tools/pulse/internal/log/PulseLogger.java   |   144 +
 .../internal/service/ClusterDetailsService.java |   109 +
 .../service/ClusterDiskThroughputService.java   |    79 +
 .../service/ClusterGCPausesService.java         |    71 +
 .../service/ClusterKeyStatisticsService.java    |    79 +
 .../internal/service/ClusterMemberService.java  |   132 +
 .../service/ClusterMembersRGraphService.java    |   372 +
 .../service/ClusterMemoryUsageService.java      |    70 +
 .../internal/service/ClusterRegionService.java  |   241 +
 .../internal/service/ClusterRegionsService.java |   243 +
 .../service/ClusterSelectedRegionService.java   |   278 +
 .../ClusterSelectedRegionsMemberService.java    |   146 +
 .../internal/service/ClusterWANInfoService.java |    82 +
 .../service/MemberAsynchEventQueuesService.java |   107 +
 .../internal/service/MemberClientsService.java  |   123 +
 .../internal/service/MemberDetailsService.java  |   128 +
 .../service/MemberDiskThroughputService.java    |    93 +
 .../internal/service/MemberGCPausesService.java |    85 +
 .../service/MemberGatewayHubService.java        |   163 +
 .../service/MemberHeapUsageService.java         |    85 +
 .../service/MemberKeyStatisticsService.java     |    98 +
 .../internal/service/MemberRegionsService.java  |   140 +
 .../internal/service/MembersListService.java    |    77 +
 .../pulse/internal/service/PulseService.java    |    42 +
 .../internal/service/PulseServiceFactory.java   |    56 +
 .../internal/service/PulseVersionService.java   |    74 +
 .../service/QueryStatisticsService.java         |   152 +
 .../internal/service/SystemAlertsService.java   |   134 +
 .../pulse/internal/util/ConnectionUtil.java     |    47 +
 .../pulse/internal/util/IPAddressUtil.java      |    66 +
 .../tools/pulse/internal/util/StringUtils.java  |    86 +
 .../tools/pulse/internal/util/TimeUtils.java    |   121 +
 .../main/resources/LogMessages_en_US.properties |    97 +
 .../main/resources/LogMessages_fr_FR.properties |    91 +
 .../src/main/resources/default.properties       |    23 +
 .../src/main/resources/gemfire.properties       |    47 +
 .../src/main/resources/pulse-users.properties   |    30 +
 geode-pulse/src/main/resources/pulse.properties |    54 +
 .../src/main/resources/pulsesecurity.properties |    26 +
 .../src/main/resources/sqlfire.properties       |    47 +
 geode-pulse/src/main/webapp/DataBrowser.html    |   367 +
 geode-pulse/src/main/webapp/Login.html          |   142 +
 .../src/main/webapp/META-INF/MANIFEST.MF        |     3 +
 geode-pulse/src/main/webapp/MemberDetails.html  |   618 +
 .../src/main/webapp/QueryStatistics.html        |   323 +
 .../webapp/WEB-INF/mvc-dispatcher-servlet.xml   |    35 +
 .../src/main/webapp/WEB-INF/spring-security.xml |    83 +
 geode-pulse/src/main/webapp/WEB-INF/web.xml     |    62 +
 geode-pulse/src/main/webapp/clusterDetail.html  |   676 +
 .../src/main/webapp/css/ForceDirected.css       |    46 +
 geode-pulse/src/main/webapp/css/Treemap.css     |   134 +
 geode-pulse/src/main/webapp/css/base.css        |    74 +
 geode-pulse/src/main/webapp/css/common.css      |   240 +
 .../webapp/css/fonts/DroidSans-Bold-webfont.eot |   Bin 0 -> 43462 bytes
 .../webapp/css/fonts/DroidSans-Bold-webfont.svg |   271 +
 .../webapp/css/fonts/DroidSans-Bold-webfont.ttf |   Bin 0 -> 43260 bytes
 .../css/fonts/DroidSans-Bold-webfont.woff       |   Bin 0 -> 27120 bytes
 .../main/webapp/css/fonts/DroidSans-webfont.eot |   Bin 0 -> 44926 bytes
 .../main/webapp/css/fonts/DroidSans-webfont.svg |   271 +
 .../main/webapp/css/fonts/DroidSans-webfont.ttf |   Bin 0 -> 44712 bytes
 .../webapp/css/fonts/DroidSans-webfont.woff     |   Bin 0 -> 27672 bytes
 .../src/main/webapp/css/grid/ui.jqgrid.css      |   850 +
 geode-pulse/src/main/webapp/css/ie/ie.css       |    19 +
 geode-pulse/src/main/webapp/css/ie/ie7.css      |    21 +
 geode-pulse/src/main/webapp/css/ie/ie8.css      |    20 +
 geode-pulse/src/main/webapp/css/ie/ie9.css      |    20 +
 geode-pulse/src/main/webapp/css/jquery-ui.css   |   566 +
 .../src/main/webapp/css/jquery.jscrollpane.css  |   121 +
 .../src/main/webapp/css/jquery.ui.all.css       |    11 +
 .../src/main/webapp/css/jquery.ui.core.css      |    41 +
 .../src/main/webapp/css/jquery.ui.theme.css     |   248 +
 .../src/main/webapp/css/jquery.ztreestyle.css   |    90 +
 .../css/multiselect/jquery.multiselect.css      |   301 +
 .../main/webapp/css/multiselect/prettify.css    |    46 +
 .../src/main/webapp/css/multiselect/style.css   |    35 +
 geode-pulse/src/main/webapp/css/popup.css       |    55 +
 geode-pulse/src/main/webapp/css/style.css       |  3067 +++
 .../src/main/webapp/css/treeView/Treemap.css    |   134 +
 .../src/main/webapp/images/about-gemfirexd.png  |   Bin 0 -> 4440 bytes
 .../src/main/webapp/images/about-sqlfire.png    |   Bin 0 -> 6277 bytes
 geode-pulse/src/main/webapp/images/about.png    |   Bin 0 -> 4421 bytes
 .../src/main/webapp/images/acc-minus.png        |   Bin 0 -> 1049 bytes
 .../src/main/webapp/images/acc-n-minus.png      |   Bin 0 -> 961 bytes
 .../src/main/webapp/images/acc-n-plus.png       |   Bin 0 -> 988 bytes
 geode-pulse/src/main/webapp/images/acc-plus.png |   Bin 0 -> 1047 bytes
 .../src/main/webapp/images/activeServer.png     |   Bin 0 -> 2846 bytes
 .../src/main/webapp/images/arrow-down.png       |   Bin 0 -> 986 bytes
 geode-pulse/src/main/webapp/images/arrow-up.png |   Bin 0 -> 988 bytes
 geode-pulse/src/main/webapp/images/bg-image.png |   Bin 0 -> 948 bytes
 .../src/main/webapp/images/bg-imageLogin.png    |   Bin 0 -> 946 bytes
 .../src/main/webapp/images/blue-msg-icon.png    |   Bin 0 -> 1194 bytes
 .../src/main/webapp/images/border-left-grid.png |   Bin 0 -> 927 bytes
 .../src/main/webapp/images/bread-crumb.png      |   Bin 0 -> 1182 bytes
 .../src/main/webapp/images/bubble_arrow.png     |   Bin 0 -> 1168 bytes
 .../src/main/webapp/images/chart-active.png     |   Bin 0 -> 1096 bytes
 geode-pulse/src/main/webapp/images/chart.png    |   Bin 0 -> 1095 bytes
 geode-pulse/src/main/webapp/images/checkbox.png |   Bin 0 -> 1630 bytes
 geode-pulse/src/main/webapp/images/chkbox.png   |   Bin 0 -> 1313 bytes
 .../src/main/webapp/images/copy_icon.png        |   Bin 0 -> 1172 bytes
 .../src/main/webapp/images/correct_icon.png     |   Bin 0 -> 1143 bytes
 .../main/webapp/images/correct_small_icon.png   |   Bin 0 -> 1065 bytes
 .../main/webapp/images/correct_white_icon.png   |   Bin 0 -> 1122 bytes
 geode-pulse/src/main/webapp/images/cross.png    |   Bin 0 -> 2954 bytes
 .../main/webapp/images/dataViewWanEnabled.png   |   Bin 0 -> 1204 bytes
 .../src/main/webapp/images/dd_active.png        |   Bin 0 -> 1065 bytes
 geode-pulse/src/main/webapp/images/dd_arrow.png |   Bin 0 -> 1058 bytes
 .../webapp/images/error-locators-others.png     |   Bin 0 -> 2052 bytes
 .../src/main/webapp/images/error-locators.png   |   Bin 0 -> 2023 bytes
 .../images/error-manager-locator-others.png     |   Bin 0 -> 2067 bytes
 .../webapp/images/error-manager-locator.png     |   Bin 0 -> 2047 bytes
 .../webapp/images/error-managers-others.png     |   Bin 0 -> 2051 bytes
 .../src/main/webapp/images/error-managers.png   |   Bin 0 -> 2025 bytes
 .../main/webapp/images/error-message-icon.png   |   Bin 0 -> 1193 bytes
 .../src/main/webapp/images/error-msg-icon.png   |   Bin 0 -> 1194 bytes
 .../src/main/webapp/images/error-others.png     |   Bin 0 -> 2066 bytes
 .../src/main/webapp/images/error-otheruser.png  |   Bin 0 -> 2002 bytes
 .../main/webapp/images/error-status-icon.png    |   Bin 0 -> 2024 bytes
 geode-pulse/src/main/webapp/images/error.png    |   Bin 0 -> 1110 bytes
 .../src/main/webapp/images/graph-active.png     |   Bin 0 -> 1360 bytes
 geode-pulse/src/main/webapp/images/graph.png    |   Bin 0 -> 1374 bytes
 .../images/graph/key-statistics-graph.png       |   Bin 0 -> 1617 bytes
 .../webapp/images/graph/memory-usage-graph.png  |   Bin 0 -> 4366 bytes
 .../src/main/webapp/images/graph/reads.png      |   Bin 0 -> 3423 bytes
 .../images/graph/throughput-writes-graph.png    |   Bin 0 -> 4340 bytes
 .../src/main/webapp/images/graph/topology.png   |   Bin 0 -> 14997 bytes
 .../src/main/webapp/images/graph/treeview.png   |   Bin 0 -> 3386 bytes
 .../src/main/webapp/images/graph/writes.png     |   Bin 0 -> 3527 bytes
 .../src/main/webapp/images/grid-active.png      |   Bin 0 -> 1095 bytes
 geode-pulse/src/main/webapp/images/grid.png     |   Bin 0 -> 1094 bytes
 .../webapp/images/header-bg-bottom-border.png   |   Bin 0 -> 924 bytes
 geode-pulse/src/main/webapp/images/hide_ico.png |   Bin 0 -> 3281 bytes
 .../src/main/webapp/images/history-icon.png     |   Bin 0 -> 3533 bytes
 .../src/main/webapp/images/history-remove.png   |   Bin 0 -> 1185 bytes
 .../src/main/webapp/images/hor-spiltter-dot.png |   Bin 0 -> 990 bytes
 .../webapp/images/icons members/locators.png    |   Bin 0 -> 3106 bytes
 .../images/icons members/locators_others.png    |   Bin 0 -> 3118 bytes
 .../webapp/images/icons members/managers.png    |   Bin 0 -> 3103 bytes
 .../images/icons members/managers_locators.png  |   Bin 0 -> 3120 bytes
 .../images/icons members/managers_others.png    |   Bin 0 -> 3117 bytes
 .../main/webapp/images/icons members/others.png |   Bin 0 -> 3102 bytes
 .../src/main/webapp/images/info-msg-icon.png    |   Bin 0 -> 1194 bytes
 geode-pulse/src/main/webapp/images/lastLine.png |   Bin 0 -> 948 bytes
 geode-pulse/src/main/webapp/images/line.png     |   Bin 0 -> 929 bytes
 geode-pulse/src/main/webapp/images/mask-bg.png  |   Bin 0 -> 940 bytes
 .../webapp/images/membersName_arror-off.png     |   Bin 0 -> 1148 bytes
 .../main/webapp/images/membersName_arror-on.png |   Bin 0 -> 1170 bytes
 geode-pulse/src/main/webapp/images/minus.png    |   Bin 0 -> 2959 bytes
 .../webapp/images/normal-locators-others.png    |   Bin 0 -> 2025 bytes
 .../src/main/webapp/images/normal-locators.png  |   Bin 0 -> 1995 bytes
 .../images/normal-manager-locator-others.png    |   Bin 0 -> 2037 bytes
 .../webapp/images/normal-manager-locator.png    |   Bin 0 -> 2029 bytes
 .../webapp/images/normal-managers-others.png    |   Bin 0 -> 2027 bytes
 .../src/main/webapp/images/normal-managers.png  |   Bin 0 -> 1997 bytes
 .../src/main/webapp/images/normal-others.png    |   Bin 0 -> 1988 bytes
 .../src/main/webapp/images/normal-otheruser.png |   Bin 0 -> 1968 bytes
 .../main/webapp/images/normal-status-icon.png   |   Bin 0 -> 1955 bytes
 geode-pulse/src/main/webapp/images/normal.png   |   Bin 0 -> 1110 bytes
 .../src/main/webapp/images/orange-msg-icon.png  |   Bin 0 -> 1194 bytes
 .../src/main/webapp/images/pivotal-logo.png     |   Bin 0 -> 4302 bytes
 geode-pulse/src/main/webapp/images/plus.png     |   Bin 0 -> 1178 bytes
 .../src/main/webapp/images/plusMinusIcon.png    |   Bin 0 -> 1192 bytes
 .../src/main/webapp/images/popup-arrow.png      |   Bin 0 -> 1075 bytes
 .../main/webapp/images/popup-close-button.png   |   Bin 0 -> 1026 bytes
 .../images/pulse-monitoring-gemfirexd-old.png   |   Bin 0 -> 6606 bytes
 .../images/pulse-monitoring-gemfirexd.png       |   Bin 0 -> 4440 bytes
 .../webapp/images/pulse-monitoring-sqlfire.png  |   Bin 0 -> 6467 bytes
 .../src/main/webapp/images/pulse-monitoring.png |   Bin 0 -> 4741 bytes
 .../src/main/webapp/images/radio-off.png        |   Bin 0 -> 1252 bytes
 geode-pulse/src/main/webapp/images/radio-on.png |   Bin 0 -> 1306 bytes
 geode-pulse/src/main/webapp/images/radio.png    |   Bin 0 -> 2476 bytes
 .../src/main/webapp/images/regionIcons.png      |   Bin 0 -> 1495 bytes
 .../src/main/webapp/images/rightBorder.png      |   Bin 0 -> 927 bytes
 .../src/main/webapp/images/searchIcon.png       |   Bin 0 -> 1592 bytes
 .../src/main/webapp/images/seperator.png        |   Bin 0 -> 929 bytes
 geode-pulse/src/main/webapp/images/server.png   |   Bin 0 -> 1233 bytes
 .../webapp/images/severe-locators-others.png    |   Bin 0 -> 2026 bytes
 .../src/main/webapp/images/severe-locators.png  |   Bin 0 -> 1980 bytes
 .../images/severe-manager-locator-others.png    |   Bin 0 -> 2032 bytes
 .../webapp/images/severe-manager-locator.png    |   Bin 0 -> 2026 bytes
 .../webapp/images/severe-managers-others.png    |   Bin 0 -> 2026 bytes
 .../src/main/webapp/images/severe-managers.png  |   Bin 0 -> 1985 bytes
 .../src/main/webapp/images/severe-msg-icon.png  |   Bin 0 -> 1194 bytes
 .../src/main/webapp/images/severe-others.png    |   Bin 0 -> 2007 bytes
 .../src/main/webapp/images/severe-otheruser.png |   Bin 0 -> 1959 bytes
 .../main/webapp/images/severe-status-icon.png   |   Bin 0 -> 2218 bytes
 geode-pulse/src/main/webapp/images/severe.png   |   Bin 0 -> 1110 bytes
 geode-pulse/src/main/webapp/images/show_ico.png |   Bin 0 -> 3296 bytes
 geode-pulse/src/main/webapp/images/spacer.png   |   Bin 0 -> 922 bytes
 geode-pulse/src/main/webapp/images/sqlfire.png  |   Bin 0 -> 6467 bytes
 .../src/main/webapp/images/status-down.png      |   Bin 0 -> 1125 bytes
 .../src/main/webapp/images/status-up.png        |   Bin 0 -> 1104 bytes
 .../src/main/webapp/images/subServer.png        |   Bin 0 -> 2201 bytes
 .../src/main/webapp/images/tab-bottom-bg.png    |   Bin 0 -> 929 bytes
 .../src/main/webapp/images/treeView-img.png     |   Bin 0 -> 962 bytes
 .../main/webapp/images/ui-anim_basic_16x16.gif  |   Bin 0 -> 1459 bytes
 .../src/main/webapp/images/ver-spiltter-dot.png |   Bin 0 -> 979 bytes
 .../webapp/images/warning-locators-others.png   |   Bin 0 -> 2048 bytes
 .../src/main/webapp/images/warning-locators.png |   Bin 0 -> 2032 bytes
 .../images/warning-manager-locator-others.png   |   Bin 0 -> 2071 bytes
 .../webapp/images/warning-manager-locator.png   |   Bin 0 -> 2052 bytes
 .../webapp/images/warning-managers-others.png   |   Bin 0 -> 2023 bytes
 .../src/main/webapp/images/warning-managers.png |   Bin 0 -> 2030 bytes
 .../src/main/webapp/images/warning-msg-icon.png |   Bin 0 -> 1194 bytes
 .../src/main/webapp/images/warning-others.png   |   Bin 0 -> 2027 bytes
 .../main/webapp/images/warning-otheruser.png    |   Bin 0 -> 2010 bytes
 .../main/webapp/images/warning-status-icon.png  |   Bin 0 -> 1714 bytes
 geode-pulse/src/main/webapp/images/warning.png  |   Bin 0 -> 1107 bytes
 .../src/main/webapp/images/yellow-msg-icon.png  |   Bin 0 -> 1194 bytes
 geode-pulse/src/main/webapp/index.html          |    67 +
 .../main/webapp/properties/default.properties   |    21 +
 .../webapp/properties/default_en.properties     |    21 +
 .../main/webapp/properties/gemfire.properties   |    45 +
 .../webapp/properties/gemfire_en.properties     |    45 +
 .../main/webapp/properties/gemfirexd.properties |    45 +
 .../webapp/properties/gemfirexd_en.properties   |    45 +
 .../src/main/webapp/properties/index.properties |    18 +
 .../main/webapp/properties/index_fr.properties  |    19 +
 .../main/webapp/properties/sqlfire.properties   |    45 +
 geode-pulse/src/main/webapp/regionDetail.html   |   567 +
 .../src/main/webapp/scripts/lib/common.js       |   536 +
 .../src/main/webapp/scripts/lib/excanvas.js     |  1416 ++
 .../main/webapp/scripts/lib/grid.locale-en.js   |   169 +
 .../src/main/webapp/scripts/lib/html5.js        |     3 +
 geode-pulse/src/main/webapp/scripts/lib/jit.js  | 17208 +++++++++++++++++
 .../src/main/webapp/scripts/lib/jquery-1.7.2.js |  9404 +++++++++
 .../webapp/scripts/lib/jquery.generateFile.js   |    77 +
 .../scripts/lib/jquery.i18n.properties.js       |   336 +
 .../webapp/scripts/lib/jquery.jqGrid.src.js     | 12182 ++++++++++++
 .../webapp/scripts/lib/jquery.jscrollpane.js    |  1340 ++
 .../webapp/scripts/lib/jquery.mousewheel.js     |    84 +
 .../webapp/scripts/lib/jquery.placeholder.js    |   106 +
 .../main/webapp/scripts/lib/jquery.sparkline.js |  3001 +++
 .../main/webapp/scripts/lib/jquery.tablednd.js  |   383 +
 .../main/webapp/scripts/lib/jquery.timeago.js   |   193 +
 .../webapp/scripts/lib/jquery.ztree.core-3.5.js |  1650 ++
 .../scripts/lib/jquery.ztree.excheck-3.5.js     |   624 +
 .../src/main/webapp/scripts/lib/tooltip.js      |   357 +
 .../webapp/scripts/multiselect/jquery-ui.js     | 14988 ++++++++++++++
 .../scripts/multiselect/jquery.multiselect.js   |   816 +
 .../main/webapp/scripts/multiselect/prettify.js |  1522 ++
 .../webapp/scripts/pulsescript/MemberDetails.js |  1045 +
 .../scripts/pulsescript/PulseCallbacks.js       |  1735 ++
 .../scripts/pulsescript/PulseFunctions.js       |   227 +
 .../webapp/scripts/pulsescript/clusterDetail.js |  2370 +++
 .../scripts/pulsescript/clusterRGraphMembers.js |  1515 ++
 .../main/webapp/scripts/pulsescript/common.js   |  1626 ++
 .../scripts/pulsescript/pages/DataBrowser.js    |   662 +
 .../pulsescript/pages/DataBrowserQuery.js       |   964 +
 .../pages/DataBrowserQueryHistory.js            |    95 +
 .../webapp/scripts/pulsescript/pages/Login.js   |   170 +
 .../webapp/scripts/pulsescript/pages/index.js   |    26 +
 .../scripts/pulsescript/queryStatistics.js      |   315 +
 .../webapp/scripts/pulsescript/regionView.js    |   757 +
 .../pulse/testbed/GemFireDistributedSystem.java |   323 +
 .../tools/pulse/testbed/GemfireTopology.java    |    24 +
 .../tools/pulse/testbed/PropFileHelper.java     |   115 +
 .../pulse/testbed/PropMockDataUpdater.java      |   515 +
 .../gemfire/tools/pulse/testbed/TestBed.java    |    84 +
 .../tools/pulse/testbed/driver/PulseUITest.java |   284 +
 .../pulse/testbed/driver/TomcatHelper.java      |    77 +
 .../tools/pulse/tests/AggregateStatement.java   |   217 +
 .../pulse/tests/AggregateStatementMBean.java    |   168 +
 .../pulse/tests/DataBrowserResultLoader.java    |    84 +
 .../pulse/tests/GemFireXDAggregateTable.java    |    46 +
 .../tests/GemFireXDAggregateTableMBean.java     |    28 +
 .../tools/pulse/tests/GemFireXDCluster.java     |    95 +
 .../pulse/tests/GemFireXDClusterMBean.java      |    32 +
 .../tools/pulse/tests/GemFireXDMember.java      |    80 +
 .../tools/pulse/tests/GemFireXDMemberMBean.java |    31 +
 .../gemfire/tools/pulse/tests/JMXBaseBean.java  |    67 +
 .../tools/pulse/tests/JMXProperties.java        |    47 +
 .../gemfire/tools/pulse/tests/Member.java       |   193 +
 .../gemfire/tools/pulse/tests/MemberMBean.java  |    86 +
 .../tools/pulse/tests/PulseAutomatedTest.java   |   785 +
 .../tools/pulse/tests/PulseBaseTest.java        |   686 +
 .../gemfire/tools/pulse/tests/PulseTest.java    |  1056 +
 .../tools/pulse/tests/PulseTestData.java        |   106 +
 .../tools/pulse/tests/PulseTestLocators.java    |   225 +
 .../gemfire/tools/pulse/tests/Region.java       |   192 +
 .../gemfire/tools/pulse/tests/RegionMBean.java  |    59 +
 .../tools/pulse/tests/RegionOnMember.java       |    96 +
 .../tools/pulse/tests/RegionOnMemberMBean.java  |    50 +
 .../gemfire/tools/pulse/tests/Server.java       |   253 +
 .../gemfire/tools/pulse/tests/ServerObject.java |   264 +
 .../tools/pulse/tests/ServerObjectMBean.java    |    79 +
 .../gemfire/tools/pulse/tests/TomcatHelper.java |    97 +
 .../pulse/tests/junit/BaseServiceTest.java      |   250 +
 .../junit/ClusterSelectedRegionServiceTest.java |   350 +
 ...ClusterSelectedRegionsMemberServiceTest.java |   362 +
 .../junit/MemberGatewayHubServiceTest.java      |   423 +
 geode-pulse/src/test/resources/NoDataFound1.txt |     1 +
 geode-pulse/src/test/resources/NoDataFound2.txt |    35 +
 geode-pulse/src/test/resources/NoDataFound3.txt |     6 +
 geode-pulse/src/test/resources/message.txt      |     1 +
 geode-pulse/src/test/resources/test.properties  |   326 +
 geode-pulse/src/test/resources/test1.txt        |     5 +
 geode-pulse/src/test/resources/test2.txt        |     7 +
 geode-pulse/src/test/resources/test3.txt        |     5 +
 geode-pulse/src/test/resources/test4.txt        |     4 +
 geode-pulse/src/test/resources/test5.txt        |     7 +
 geode-pulse/src/test/resources/test6.txt        |    11 +
 geode-pulse/src/test/resources/test7.txt        |    13 +
 .../resources/testNullObjectsAtRootLevel1.txt   |    25 +
 .../resources/testNullObjectsAtRootLevel2.txt   |    30 +
 .../src/test/resources/testQueryResult.txt      |   198 +
 .../src/test/resources/testQueryResult1000.txt  |  1023 +
 .../testQueryResultArrayAndArrayList.txt        |     8 +
 .../test/resources/testQueryResultArrayList.txt |     6 +
 .../resources/testQueryResultArrayOfList.txt    |    15 +
 .../resources/testQueryResultClusterSmall.txt   |    23 +
 .../testQueryResultClusterWithStruct.txt        |    10 +
 .../test/resources/testQueryResultHashMap.txt   |     8 +
 .../resources/testQueryResultHashMapSmall.txt   |    12 +
 .../src/test/resources/testQueryResultSmall.txt |    12 +
 .../resources/testQueryResultWithStruct.txt     |  1744 ++
 .../testQueryResultWithStructSmall.txt          |    15 +
 geode-pulse/src/test/resources/test_pp.txt      |     7 +
 .../src/test/resources/testbed.properties       |   157 +
 geode-rebalancer/build.gradle                   |    28 +
 .../gemfire/cache/util/AutoBalancer.java        |   554 +
 .../util/AutoBalancerIntegrationJUnitTest.java  |   206 +
 .../cache/util/AutoBalancerJUnitTest.java       |   604 +
 geode-site/.gitignore                           |     1 +
 geode-site/website/.gitignore                   |     1 +
 geode-site/website/README.md                    |    54 +
 geode-site/website/Rules                        |    69 +
 geode-site/website/build.sh                     |    18 +
 .../website/content/bootstrap/bootstrap.min.css |     9 +
 geode-site/website/content/community/index.html |   291 +
 .../website/content/css/bootflat-extensions.css |   356 +
 .../website/content/css/bootflat-square.css     |    69 +
 geode-site/website/content/css/bootflat.css     |  1559 ++
 .../website/content/css/font-awesome.min.css    |   405 +
 geode-site/website/content/css/geode-site.css   |  1617 ++
 geode-site/website/content/favicon.ico          |   Bin 0 -> 20805 bytes
 geode-site/website/content/font/FontAwesome.otf |   Bin 0 -> 61896 bytes
 .../content/font/fontawesome-webfont-eot.eot    |   Bin 0 -> 37405 bytes
 .../content/font/fontawesome-webfont-svg.svg    |   399 +
 .../content/font/fontawesome-webfont-ttf.ttf    |   Bin 0 -> 79076 bytes
 .../content/font/fontawesome-webfont-woff.woff  |   Bin 0 -> 43572 bytes
 .../website/content/img/apache_geode_logo.png   |   Bin 0 -> 23616 bytes
 .../content/img/apache_geode_logo_white.png     |   Bin 0 -> 22695 bytes
 .../img/apache_geode_logo_white_small.png       |   Bin 0 -> 52948 bytes
 .../website/content/img/check_flat/default.png  |   Bin 0 -> 25851 bytes
 geode-site/website/content/img/egg-logo.png     |   Bin 0 -> 9938 bytes
 geode-site/website/content/img/github.png       |   Bin 0 -> 8936 bytes
 geode-site/website/content/index.html           |   142 +
 geode-site/website/content/js/bootstrap.min.js  |     8 +
 geode-site/website/content/js/head.js           |   708 +
 geode-site/website/content/js/html5shiv.js      |     8 +
 .../website/content/js/jquery-1.10.1.min.js     |     6 +
 geode-site/website/content/js/jquery.icheck.js  |   397 +
 geode-site/website/content/js/respond.min.js    |     6 +
 geode-site/website/content/js/usergrid-site.js  |    66 +
 geode-site/website/content/releases/index.html  |   129 +
 geode-site/website/layouts/community.html       |     1 +
 geode-site/website/layouts/default.html         |    44 +
 geode-site/website/layouts/docs.html            |     1 +
 geode-site/website/layouts/footer.html          |    96 +
 geode-site/website/layouts/header.html          |   248 +
 geode-site/website/lib/default.rb               |    60 +
 geode-site/website/lib/helpers_.rb              |    16 +
 geode-site/website/lib/pandoc.template          |     4 +
 geode-site/website/nanoc.yaml                   |    94 +
 geode-site/website/run.sh                       |    18 +
 geode-site/website/utilities/map-markers.rb     |    75 +
 geode-site/website/utilities/markers.txt        |   440 +
 geode-site/website/utilities/snapshot-apigee.rb |    88 +
 geode-spark-connector/.gitignore                |     1 +
 geode-spark-connector/README.md                 |    32 +
 geode-spark-connector/doc/10_demos.md           |    84 +
 geode-spark-connector/doc/1_building.md         |    36 +
 geode-spark-connector/doc/2_quick.md            |   178 +
 geode-spark-connector/doc/3_connecting.md       |    55 +
 geode-spark-connector/doc/4_loading.md          |   108 +
 geode-spark-connector/doc/5_rdd_join.md         |   237 +
 geode-spark-connector/doc/6_save_rdd.md         |    81 +
 geode-spark-connector/doc/7_save_dstream.md     |    68 +
 geode-spark-connector/doc/8_oql.md              |    58 +
 geode-spark-connector/doc/9_java_api.md         |   129 +
 .../connector/internal/RegionMetadata.java      |    93 +
 .../gemfirefunctions/QueryFunction.java         |    99 +
 .../RetrieveRegionFunction.java                 |   208 +
 .../RetrieveRegionMetadataFunction.java         |   118 +
 .../StructStreamingResultSender.java            |   219 +
 .../gemfire/spark/connector/Employee.java       |    54 +
 .../spark/connector/JavaApiIntegrationTest.java |   424 +
 .../gemfire/spark/connector/Portfolio.java      |   109 +
 .../gemfire/spark/connector/Position.java       |    73 +
 .../src/it/resources/test-regions.xml           |    49 +
 .../src/it/resources/test-retrieve-regions.xml  |    57 +
 .../spark/connector/BasicIntegrationTest.scala  |   598 +
 .../RDDJoinRegionIntegrationTest.scala          |   300 +
 .../RetrieveRegionIntegrationTest.scala         |   253 +
 .../gemfire/spark/connector/package.scala       |    29 +
 .../connector/testkit/GemFireCluster.scala      |    47 +
 .../spark/connector/testkit/GemFireRunner.scala |   148 +
 .../spark/connector/testkit/IOUtils.scala       |    94 +
 .../spark/streaming/ManualClockHelper.scala     |    28 +
 .../spark/streaming/TestInputDStream.scala      |    44 +
 .../javaapi/GemFireJavaDStreamFunctions.java    |    86 +
 .../GemFireJavaPairDStreamFunctions.java        |    77 +
 .../javaapi/GemFireJavaPairRDDFunctions.java    |   238 +
 .../javaapi/GemFireJavaRDDFunctions.java        |   178 +
 .../javaapi/GemFireJavaSQLContextFunctions.java |    49 +
 .../GemFireJavaSparkContextFunctions.java       |    87 +
 .../connector/javaapi/GemFireJavaUtil.java      |   122 +
 .../spark/connector/GemFireConnection.scala     |    67 +
 .../spark/connector/GemFireConnectionConf.scala |    73 +
 .../connector/GemFireConnectionManager.scala    |    31 +
 .../connector/GemFireFunctionDeployer.scala     |    81 +
 .../connector/GemFireKryoRegistrator.scala      |    29 +
 .../connector/GemFirePairRDDFunctions.scala     |   140 +
 .../spark/connector/GemFireRDDFunctions.scala   |   120 +
 .../connector/GemFireSQLContextFunctions.scala  |    42 +
 .../GemFireSparkContextFunctions.scala          |    39 +
 .../internal/DefaultGemFireConnection.scala     |   164 +
 .../DefaultGemFireConnectionManager.scala       |    77 +
 .../connector/internal/LocatorHelper.scala      |   135 +
 .../StructStreamingResultCollector.scala        |   152 +
 .../connector/internal/oql/QueryParser.scala    |    58 +
 .../spark/connector/internal/oql/QueryRDD.scala |    83 +
 .../internal/oql/QueryResultCollector.scala     |    69 +
 .../connector/internal/oql/RDDConverter.scala   |    40 +
 .../connector/internal/oql/RowBuilder.scala     |    38 +
 .../connector/internal/oql/SchemaBuilder.scala  |    73 +
 .../internal/oql/UndefinedSerializer.scala      |    46 +
 .../connector/internal/rdd/GemFireJoinRDD.scala |    67 +
 .../internal/rdd/GemFireOuterJoinRDD.scala      |    69 +
 .../internal/rdd/GemFireRDDPartition.scala      |    36 +
 .../internal/rdd/GemFireRDDPartitioner.scala    |    59 +
 .../rdd/GemFireRDDPartitionerImpl.scala         |    89 +
 .../internal/rdd/GemFireRDDWriter.scala         |    82 +
 .../internal/rdd/GemFireRegionRDD.scala         |   138 +
 .../javaapi/GemFireJavaRegionRDD.scala          |    26 +
 .../spark/connector/javaapi/JavaAPIHelper.scala |    53 +
 .../gemfire/spark/connector/package.scala       |    69 +
 .../streaming/GemFireDStreamFunctions.scala     |    89 +
 .../spark/connector/streaming/package.scala     |    32 +
 .../gemfire/spark/connector/JavaAPITest.java    |   163 +
 .../connector/GemFireFunctionDeployerTest.scala |    58 +
 .../DefaultGemFireConnectionManagerTest.scala   |    82 +
 ...tStreamingResultSenderAndCollectorTest.scala |   254 +
 .../internal/oql/QueryParserTest.scala          |    83 +
 .../connector/ConnectorImplicitsTest.scala      |    50 +
 .../connector/GemFireConnectionConfTest.scala   |   100 +
 .../connector/GemFireDStreamFunctionsTest.scala |    79 +
 .../connector/GemFireRDDFunctionsTest.scala     |   139 +
 .../spark/connector/LocatorHelperTest.scala     |   168 +
 .../rdd/GemFireRDDPartitionerTest.scala         |   190 +
 .../connector/rdd/GemFireRegionRDDTest.scala    |   117 +
 .../basic-demos/src/main/java/demo/Emp.java     |    95 +
 .../src/main/java/demo/OQLJavaDemo.java         |    59 +
 .../src/main/java/demo/PairRDDSaveJavaDemo.java |    86 +
 .../src/main/java/demo/RDDSaveJavaDemo.java     |    85 +
 .../src/main/java/demo/RegionToRDDJavaDemo.java |    57 +
 .../src/main/scala/demo/NetworkWordCount.scala  |    75 +
 .../project/Dependencies.scala                  |    45 +
 .../project/GemFireSparkBuild.scala             |    76 +
 geode-spark-connector/project/Settings.scala    |    57 +
 geode-spark-connector/project/build.properties  |     1 +
 geode-spark-connector/project/plugins.sbt       |     8 +
 geode-spark-connector/scalastyle-config.xml     |   117 +
 geode-wan/build.gradle                          |    23 +
 .../client/internal/GatewaySenderBatchOp.java   |   313 +
 .../cache/client/internal/SenderProxy.java      |    43 +
 .../internal/locator/wan/LocatorDiscovery.java  |   227 +
 .../internal/locator/wan/LocatorHelper.java     |   143 +
 .../locator/wan/LocatorJoinMessage.java         |   105 +
 .../wan/LocatorMembershipListenerImpl.java      |   230 +
 .../locator/wan/RemoteLocatorJoinRequest.java   |    87 +
 .../locator/wan/RemoteLocatorJoinResponse.java  |    89 +
 .../locator/wan/RemoteLocatorPingRequest.java   |    56 +
 .../locator/wan/RemoteLocatorPingResponse.java  |    55 +
 .../locator/wan/RemoteLocatorRequest.java       |    66 +
 .../locator/wan/RemoteLocatorResponse.java      |    74 +
 .../internal/locator/wan/WANFactoryImpl.java    |    74 +
 .../locator/wan/WanLocatorDiscovererImpl.java   |   138 +
 .../cache/wan/AbstractRemoteGatewaySender.java  |   169 +
 .../cache/wan/GatewayReceiverFactoryImpl.java   |   147 +
 .../internal/cache/wan/GatewayReceiverImpl.java |   253 +
 .../wan/GatewaySenderEventRemoteDispatcher.java |   766 +
 .../cache/wan/GatewaySenderFactoryImpl.java     |   389 +
 .../wan/parallel/ParallelGatewaySenderImpl.java |   267 +
 ...rentParallelGatewaySenderEventProcessor.java |    67 +
 ...moteParallelGatewaySenderEventProcessor.java |   122 +
 ...urrentSerialGatewaySenderEventProcessor.java |    45 +
 ...RemoteSerialGatewaySenderEventProcessor.java |    50 +
 .../wan/serial/SerialGatewaySenderImpl.java     |   260 +
 ...ternal.locator.wan.LocatorMembershipListener |    15 +
 ...ne.gemfire.internal.cache.wan.spi.WANFactory |    15 +
 .../cache/CacheXml70GatewayDUnitTest.java       |   243 +
 .../cache/CacheXml80GatewayDUnitTest.java       |    77 +
 .../AnalyzeWANSerializablesJUnitTest.java       |    91 +
 .../internal/cache/UpdateVersionDUnitTest.java  |   965 +
 .../gemfire/internal/cache/wan/WANTestBase.java |  5187 +++++
 ...oncurrentParallelGatewaySenderDUnitTest.java |   863 +
 ...ntParallelGatewaySenderOffHeapDUnitTest.java |    32 +
 ...allelGatewaySenderOperation_1_DUnitTest.java |   851 +
 ...allelGatewaySenderOperation_2_DUnitTest.java |   541 +
 ...tSerialGatewaySenderOperationsDUnitTest.java |   111 +
 ...GatewaySenderOperationsOffHeapDUnitTest.java |    32 +
 .../ConcurrentWANPropogation_1_DUnitTest.java   |   610 +
 .../ConcurrentWANPropogation_2_DUnitTest.java   |   487 +
 .../cache/wan/disttx/DistTXWANDUnitTest.java    |   211 +
 .../CommonParallelGatewaySenderDUnitTest.java   |   485 +
 ...onParallelGatewaySenderOffHeapDUnitTest.java |    32 +
 ...wWANConcurrencyCheckForDestroyDUnitTest.java |   528 +
 .../cache/wan/misc/PDXNewWanDUnitTest.java      |   789 +
 ...dRegion_ParallelWANPersistenceDUnitTest.java |   753 +
 ...dRegion_ParallelWANPropogationDUnitTest.java |  1134 ++
 .../SenderWithTransportFilterDUnitTest.java     |   241 +
 ...downAllPersistentGatewaySenderDUnitTest.java |   209 +
 .../wan/misc/WANConfigurationJUnitTest.java     |   609 +
 .../wan/misc/WANLocatorServerDUnitTest.java     |   195 +
 .../cache/wan/misc/WANSSLDUnitTest.java         |   153 +
 .../wan/misc/WanAutoDiscoveryDUnitTest.java     |   559 +
 .../cache/wan/misc/WanValidationsDUnitTest.java |  1680 ++
 ...tewaySenderOperation_2_OffHeapDUnitTest.java |    32 +
 ...tewaySenderOperation_2_OffHeapDUnitTest.java |    32 +
 ...GatewaySenderOperationsOffHeapDUnitTest.java |    34 +
 ...ewaySenderQueueOverflowOffHeapDUnitTest.java |    34 +
 .../ParallelWANConflationOffHeapDUnitTest.java  |    34 +
 ...nceEnabledGatewaySenderOffHeapDUnitTest.java |    34 +
 ...ropogationConcurrentOpsOffHeapDUnitTest.java |    34 +
 .../ParallelWANPropogationOffHeapDUnitTest.java |    34 +
 ...erialGatewaySenderQueueOffHeapDUnitTest.java |    34 +
 ...nceEnabledGatewaySenderOffHeapDUnitTest.java |    34 +
 .../SerialWANPropogationOffHeapDUnitTest.java   |    34 +
 ...ation_PartitionedRegionOffHeapDUnitTest.java |    34 +
 ...allelGatewaySenderOperation_2_DUnitTest.java |    38 +
 ...arallelGatewaySenderOperationsDUnitTest.java |   639 +
 ...llelGatewaySenderQueueOverflowDUnitTest.java |   534 +
 .../ParallelWANConflationDUnitTest.java         |   497 +
 ...ersistenceEnabledGatewaySenderDUnitTest.java |  1824 ++
 ...llelWANPropagationClientServerDUnitTest.java |   114 +
 ...lelWANPropagationConcurrentOpsDUnitTest.java |   291 +
 .../ParallelWANPropagationDUnitTest.java        |  1451 ++
 ...ParallelWANPropagationLoopBackDUnitTest.java |   426 +
 .../wan/parallel/ParallelWANStatsDUnitTest.java |   532 +
 ...tewaySenderDistributedDeadlockDUnitTest.java |   408 +
 ...rialGatewaySenderEventListenerDUnitTest.java |   391 +
 .../SerialGatewaySenderOperationsDUnitTest.java |   656 +
 .../SerialGatewaySenderQueueDUnitTest.java      |   339 +
 ...ersistenceEnabledGatewaySenderDUnitTest.java |   604 +
 .../SerialWANPropagationLoopBackDUnitTest.java  |   539 +
 .../serial/SerialWANPropogationDUnitTest.java   |  1605 ++
 ...NPropogation_PartitionedRegionDUnitTest.java |   440 +
 .../SerialWANPropogationsFeatureDUnitTest.java  |   373 +
 .../wan/serial/SerialWANStatsDUnitTest.java     |   597 +
 .../wan/wancommand/WANCommandTestBase.java      |   513 +
 ...anCommandCreateGatewayReceiverDUnitTest.java |   699 +
 .../WanCommandCreateGatewaySenderDUnitTest.java |   764 +
 ...WanCommandGatewayReceiverStartDUnitTest.java |   328 +
 .../WanCommandGatewayReceiverStopDUnitTest.java |   333 +
 .../WanCommandGatewaySenderStartDUnitTest.java  |   418 +
 .../WanCommandGatewaySenderStopDUnitTest.java   |   369 +
 .../wan/wancommand/WanCommandListDUnitTest.java |   404 +
 .../WanCommandPauseResumeDUnitTest.java         |   717 +
 .../wancommand/WanCommandStatusDUnitTest.java   |   583 +
 .../management/WANManagementDUnitTest.java      |   521 +
 .../ClusterConfigurationDUnitTest.java          |  1057 +
 .../pulse/TestRemoteClusterDUnitTest.java       |   272 +
 .../gemfire/codeAnalysis/excludedClasses.txt    |     2 +
 .../gemstone/gemfire/codeAnalysis/openBugs.txt  |    21 +
 .../sanctionedDataSerializables.txt             |    28 +
 .../codeAnalysis/sanctionedSerializables.txt    |     0
 geode-web-api/build.gradle                      |    55 +
 .../web/controllers/AbstractBaseController.java |   841 +
 .../web/controllers/BaseControllerAdvice.java   |   147 +
 .../web/controllers/CommonCrudController.java   |   249 +
 .../controllers/FunctionAccessController.java   |   246 +
 .../web/controllers/PdxBasedCrudController.java |   354 +
 .../web/controllers/QueryAccessController.java  |   354 +
 .../web/controllers/support/JSONTypes.java      |    25 +
 .../controllers/support/QueryResultTypes.java   |    32 +
 .../web/controllers/support/RegionData.java     |   170 +
 .../controllers/support/RegionEntryData.java    |   105 +
 .../support/RestServersResultCollector.java     |    55 +
 .../web/controllers/support/UpdateOp.java       |    31 +
 .../DataTypeNotSupportedException.java          |    50 +
 .../web/exception/GemfireRestException.java     |    48 +
 .../web/exception/MalformedJsonException.java   |    51 +
 .../web/exception/RegionNotFoundException.java  |    44 +
 .../exception/ResourceNotFoundException.java    |    45 +
 ...stomMappingJackson2HttpMessageConverter.java |   161 +
 .../web/swagger/config/RestApiPathProvider.java |    77 +
 .../web/swagger/config/SwaggerConfig.java       |   181 +
 .../rest/internal/web/util/ArrayUtils.java      |    60 +
 .../rest/internal/web/util/DateTimeUtils.java   |    54 +
 .../internal/web/util/IdentifiableUtils.java    |   109 +
 .../rest/internal/web/util/JSONUtils.java       |   253 +
 .../rest/internal/web/util/JsonWriter.java      |   597 +
 .../rest/internal/web/util/NumberUtils.java     |   146 +
 .../rest/internal/web/util/ValidationUtils.java |    41 +
 .../main/webapp/WEB-INF/gemfire-api-servlet.xml |    85 +
 geode-web-api/src/main/webapp/WEB-INF/web.xml   |    65 +
 .../src/main/webapp/docs/css/reset.css          |   125 +
 .../src/main/webapp/docs/css/screen.css         |  1221 ++
 .../main/webapp/docs/images/explorer_icons.png  |   Bin 0 -> 5763 bytes
 .../src/main/webapp/docs/images/logo_small.png  |   Bin 0 -> 770 bytes
 .../main/webapp/docs/images/pet_store_api.png   |   Bin 0 -> 824 bytes
 .../src/main/webapp/docs/images/throbber.gif    |   Bin 0 -> 9257 bytes
 .../src/main/webapp/docs/images/wordnik_api.png |   Bin 0 -> 980 bytes
 geode-web-api/src/main/webapp/docs/index.html   |    81 +
 .../src/main/webapp/docs/lib/backbone-min.js    |    38 +
 .../main/webapp/docs/lib/handlebars-1.0.0.js    |  2278 +++
 .../main/webapp/docs/lib/highlight.7.3.pack.js  |     1 +
 .../main/webapp/docs/lib/jquery-1.8.0.min.js    |     2 +
 .../main/webapp/docs/lib/jquery.ba-bbq.min.js   |    18 +
 .../main/webapp/docs/lib/jquery.slideto.min.js  |     1 +
 .../main/webapp/docs/lib/jquery.wiggle.min.js   |     8 +
 .../src/main/webapp/docs/lib/shred.bundle.js    |  2765 +++
 .../src/main/webapp/docs/lib/shred/content.js   |   193 +
 .../src/main/webapp/docs/lib/swagger-oauth.js   |   211 +
 .../src/main/webapp/docs/lib/swagger.js         |  1527 ++
 .../src/main/webapp/docs/lib/underscore-min.js  |    32 +
 geode-web-api/src/main/webapp/docs/o2c.html     |    15 +
 .../src/main/webapp/docs/swagger-ui.js          |  2269 +++
 .../src/main/webapp/docs/swagger-ui.min.js      |     1 +
 geode-web/build.gradle                          |    55 +
 .../src/main/webapp/WEB-INF/gemfire-servlet.xml |    59 +
 geode-web/src/main/webapp/WEB-INF/web.xml       |    56 +
 .../internal/web/AbstractWebTestCase.java       |    97 +
 .../ShellCommandsControllerJUnitTest.java       |   240 +
 ...entVariablesHandlerInterceptorJUnitTest.java |   268 +
 .../internal/web/domain/LinkIndexJUnitTest.java |   237 +
 .../internal/web/domain/LinkJUnitTest.java      |   124 +
 .../domain/QueryParameterSourceJUnitTest.java   |    93 +
 .../web/http/ClientHttpRequestJUnitTest.java    |   510 +
 ...ableObjectHttpMessageConverterJUnitTest.java |   166 +
 .../RestHttpOperationInvokerJUnitTest.java      |   454 +
 .../SimpleHttpOperationInvokerJUnitTest.java    |   199 +
 .../web/util/ConvertUtilsJUnitTest.java         |   171 +
 .../internal/web/util/UriUtilsJUnitTest.java    |   119 +
 gradle/rat.gradle                               |   194 +-
 settings.gradle                                 |    38 +-
 12802 files changed, 1822966 insertions(+), 1822972 deletions(-)
----------------------------------------------------------------------



[41/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheWriter.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheWriter.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheWriter.java
deleted file mode 100644
index 0385ebf..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheWriter.java
+++ /dev/null
@@ -1,59 +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.catalina.callback;
-
-import com.gemstone.gemfire.cache.CacheWriterException;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.EntryNotFoundException;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.util.CacheWriterAdapter;
-
-import javax.servlet.http.HttpSession;
-import java.util.Properties;
-
-public class LocalSessionCacheWriter extends CacheWriterAdapter<String, HttpSession> implements Declarable {
-
-  private final Region<String, HttpSession> backingRegion;
-
-  public LocalSessionCacheWriter(Region<String, HttpSession> backingRegion) {
-    this.backingRegion = backingRegion;
-  }
-
-  public void beforeCreate(EntryEvent<String, HttpSession> event) throws CacheWriterException {
-    this.backingRegion.put(event.getKey(), event.getNewValue(), event.getCallbackArgument());
-  }
-
-  public void beforeUpdate(EntryEvent<String, HttpSession> event) throws CacheWriterException {
-    this.backingRegion.put(event.getKey(), event.getNewValue(), event.getCallbackArgument());
-  }
-
-  public void beforeDestroy(EntryEvent<String, HttpSession> event) throws CacheWriterException {
-    try {
-      this.backingRegion.destroy(event.getKey(), event.getCallbackArgument());
-    } catch (EntryNotFoundException e) {
-      // I think it is safe to ignore this exception. The entry could have
-      // expired already in the backing region.
-    }
-  }
-
-  public void close() {
-  }
-
-  public void init(Properties p) {
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/SessionExpirationCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/SessionExpirationCacheListener.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/SessionExpirationCacheListener.java
deleted file mode 100644
index dff6d58..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/SessionExpirationCacheListener.java
+++ /dev/null
@@ -1,77 +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.catalina.callback;
-
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.Operation;
-import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
-import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
-import com.gemstone.gemfire.modules.session.catalina.DeltaSessionManager;
-import com.gemstone.gemfire.modules.util.ContextMapper;
-
-import javax.servlet.http.HttpSession;
-import java.util.Properties;
-
-public class SessionExpirationCacheListener extends CacheListenerAdapter<String, HttpSession> implements Declarable {
-
-  public void afterDestroy(EntryEvent<String, HttpSession> event) {
-    // A Session expired. If it was destroyed by GemFire expiration, process it.
-    // If it was destroyed via Session.invalidate, ignore it since it has
-    // already been processed.
-    DeltaSession session = null;
-    if (event.getOperation() == Operation.EXPIRE_DESTROY) {
-      session = (DeltaSession) event.getOldValue();
-    } else {
-      /*
-       * This comes into play when we're dealing with an empty client proxy. We
-       * need the actual destroyed object to come back from the server so that
-       * any associated listeners can fire correctly. Having the destroyed
-       * object come back as the callback arg depends on setting the property
-       * gemfire.EXPIRE_SENDS_ENTRY_AS_CALLBACK.
-       */
-      Object callback = event.getCallbackArgument();
-      if (callback != null && callback instanceof DeltaSession) {
-        session = (DeltaSession) callback;
-        DeltaSessionManager m = ContextMapper.getContext(session.getContextName());
-        if (m != null) {
-          session.setOwner(m);
-        }
-      }
-    }
-    if (session != null) {
-      session.processExpired();
-    }
-  }
-
-  public void init(Properties p) {
-  }
-
-  public boolean equals(Object obj) {
-    // This method is only implemented so that RegionAttributesCreation.sameAs
-    // works properly.
-    if (this == obj) {
-      return true;
-    }
-
-    if (obj == null || !(obj instanceof SessionExpirationCacheListener)) {
-      return false;
-    }
-
-    return true;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEvent.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEvent.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEvent.java
deleted file mode 100644
index 90b6f28..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEvent.java
+++ /dev/null
@@ -1,25 +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.catalina.internal;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
-
-public interface DeltaSessionAttributeEvent extends DataSerializable {
-
-  public void apply(DeltaSession session);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEventBatch.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEventBatch.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEventBatch.java
deleted file mode 100644
index 47df071..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEventBatch.java
+++ /dev/null
@@ -1,88 +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.catalina.internal;
-
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.modules.gatewaydelta.AbstractGatewayDeltaEvent;
-import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-@SuppressWarnings("serial")
-public class DeltaSessionAttributeEventBatch extends AbstractGatewayDeltaEvent {
-
-  private List<DeltaSessionAttributeEvent> eventQueue;
-
-  public DeltaSessionAttributeEventBatch() {
-  }
-
-  public DeltaSessionAttributeEventBatch(String regionName, String sessionId,
-      List<DeltaSessionAttributeEvent> eventQueue) {
-    super(regionName, sessionId);
-    this.eventQueue = eventQueue;
-  }
-
-  public List<DeltaSessionAttributeEvent> getEventQueue() {
-    return this.eventQueue;
-  }
-
-  public void apply(Cache cache) {
-    Region<String, DeltaSession> region = getRegion(cache);
-    DeltaSession session = region.get(this.key);
-    if (session == null) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("Session ").append(this.key).append(" was not found while attempting to apply ").append(this);
-      cache.getLogger().warning(builder.toString());
-    } else {
-      session.applyAttributeEvents(region, this.eventQueue);
-      if (cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("Applied ").append(this);
-        cache.getLogger().fine(builder.toString());
-      }
-    }
-  }
-
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    super.fromData(in);
-    this.eventQueue = DataSerializer.readArrayList(in);
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    super.toData(out);
-    DataSerializer.writeArrayList((ArrayList) this.eventQueue, out);
-  }
-
-  public String toString() {
-    return new StringBuilder().append("DeltaSessionAttributeEventBatch[")
-        .append("regionName=")
-        .append(this.regionName)
-        .append("; sessionId=")
-        .append(this.key)
-        .append("; numberOfEvents=")
-        .append(this.eventQueue.size())
-        .append("]")
-        .toString();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
deleted file mode 100644
index 989474f..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
+++ /dev/null
@@ -1,73 +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.catalina.internal;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.Instantiator;
-import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-
-@SuppressWarnings("serial")
-public class DeltaSessionDestroyAttributeEvent implements DeltaSessionAttributeEvent {
-
-  private String attributeName;
-
-  public DeltaSessionDestroyAttributeEvent() {
-  }
-
-  public DeltaSessionDestroyAttributeEvent(String attributeName) {
-    this.attributeName = attributeName;
-  }
-
-  public String getAttributeName() {
-    return this.attributeName;
-  }
-
-  public void apply(DeltaSession session) {
-    session.localDestroyAttribute(this.attributeName);
-  }
-
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    this.attributeName = DataSerializer.readString(in);
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    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();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionStatistics.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionStatistics.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionStatistics.java
deleted file mode 100644
index 2d59103..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionStatistics.java
+++ /dev/null
@@ -1,88 +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.catalina.internal;
-
-import com.gemstone.gemfire.StatisticDescriptor;
-import com.gemstone.gemfire.Statistics;
-import com.gemstone.gemfire.StatisticsFactory;
-import com.gemstone.gemfire.StatisticsType;
-import com.gemstone.gemfire.StatisticsTypeFactory;
-import com.gemstone.gemfire.internal.StatisticsTypeFactoryImpl;
-
-public class DeltaSessionStatistics {
-
-  public static final String typeName = "SessionStatistics";
-
-  private static final StatisticsType type;
-
-  private static final String SESSIONS_CREATED = "sessionsCreated";
-  private static final String SESSIONS_INVALIDATED = "sessionsInvalidated";
-  private static final String SESSIONS_EXPIRED = "sessionsExpired";
-
-  private static final int sessionsCreatedId;
-  private static final int sessionsInvalidatedId;
-  private static final int sessionsExpiredId;
-
-  static {
-    // Initialize type
-    StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
-    type = f.createType(typeName, typeName,
-        new StatisticDescriptor[]{f.createIntCounter(SESSIONS_CREATED, "The number of sessions created",
-            "operations"), f.createIntCounter(SESSIONS_INVALIDATED,
-            "The number of sessions invalidated by invoking invalidate", "operations"), f.createIntCounter(
-            SESSIONS_EXPIRED, "The number of sessions invalidated by timeout", "operations"),});
-
-    // Initialize id fields
-    sessionsCreatedId = type.nameToId(SESSIONS_CREATED);
-    sessionsInvalidatedId = type.nameToId(SESSIONS_INVALIDATED);
-    sessionsExpiredId = type.nameToId(SESSIONS_EXPIRED);
-  }
-
-  private final Statistics stats;
-
-  public DeltaSessionStatistics(StatisticsFactory factory, String applicationName) {
-    this.stats = factory.createAtomicStatistics(type, typeName + "_" + applicationName);
-  }
-
-  public void close() {
-    this.stats.close();
-  }
-
-  public int getSessionsCreated() {
-    return this.stats.getInt(sessionsCreatedId);
-  }
-
-  public void incSessionsCreated() {
-    this.stats.incInt(sessionsCreatedId, 1);
-  }
-
-  public int getSessionsInvalidated() {
-    return this.stats.getInt(sessionsInvalidatedId);
-  }
-
-  public void incSessionsInvalidated() {
-    this.stats.incInt(sessionsInvalidatedId, 1);
-  }
-
-  public int getSessionsExpired() {
-    return this.stats.getInt(sessionsExpiredId);
-  }
-
-  public void incSessionsExpired() {
-    this.stats.incInt(sessionsExpiredId, 1);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionUpdateAttributeEvent.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionUpdateAttributeEvent.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionUpdateAttributeEvent.java
deleted file mode 100644
index 6678e55..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionUpdateAttributeEvent.java
+++ /dev/null
@@ -1,83 +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.catalina.internal;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.Instantiator;
-import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-@SuppressWarnings("serial")
-public class DeltaSessionUpdateAttributeEvent implements DeltaSessionAttributeEvent {
-
-  private String attributeName;
-
-  private Object attributeValue;
-
-  public DeltaSessionUpdateAttributeEvent() {
-  }
-
-  public DeltaSessionUpdateAttributeEvent(String attributeName, Object attributeValue) {
-    this.attributeName = attributeName;
-    this.attributeValue = attributeValue;
-  }
-
-  public String getAttributeName() {
-    return this.attributeName;
-  }
-
-  public Object getAttributeValue() {
-    return this.attributeValue;
-  }
-
-  public void apply(DeltaSession session) {
-    session.localUpdateAttribute(this.attributeName, this.attributeValue);
-  }
-
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    this.attributeName = DataSerializer.readString(in);
-    this.attributeValue = DataSerializer.readObject(in);
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    DataSerializer.writeString(this.attributeName, out);
-    DataSerializer.writeObject(this.attributeValue, out);
-  }
-
-  public static void registerInstantiator(int id) {
-    Instantiator.register(new Instantiator(DeltaSessionUpdateAttributeEvent.class, id) {
-      public DataSerializable newInstance() {
-        return new DeltaSessionUpdateAttributeEvent();
-      }
-    });
-  }
-
-  public String toString() {
-    return new StringBuilder().append("DeltaSessionUpdateAttributeEvent[")
-        .append("attributeName=")
-        .append(this.attributeName)
-        .append("; attributeValue=")
-        .append(this.attributeValue)
-        .append("]")
-        .toString();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/Banner.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/Banner.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/Banner.java
deleted file mode 100644
index dbe8e05..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/Banner.java
+++ /dev/null
@@ -1,59 +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.util;
-
-import com.gemstone.gemfire.internal.GemFireVersion;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Properties;
-
-public class Banner {
-
-  private static String VERSION = "unknown";
-
-  private static Properties props = new Properties();
-
-  static {
-    InputStream is = Banner.class.getResourceAsStream("/modules-version.properties");
-    try {
-      props.load(is);
-      VERSION = props.getProperty("version");
-    } catch (IOException e) {
-    }
-  }
-
-  public static String getString() {
-    StringWriter sw = new StringWriter();
-    PrintWriter pw = new PrintWriter(sw);
-    print(pw);
-    pw.close();
-    return sw.toString();
-  }
-
-  private static void print(PrintWriter pw) {
-    pw.println("GemFire Modules");
-    pw.print("Modules version: ");
-    pw.println(VERSION);
-    GemFireVersion.print(pw);
-  }
-
-  private Banner() {
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/BootstrappingFunction.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/BootstrappingFunction.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/BootstrappingFunction.java
deleted file mode 100644
index 827c6f7..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/BootstrappingFunction.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.util;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.execute.Execution;
-import com.gemstone.gemfire.cache.execute.Function;
-import com.gemstone.gemfire.cache.execute.FunctionContext;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.cache.execute.ResultCollector;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
-import com.gemstone.gemfire.distributed.internal.MembershipListener;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-
-import java.util.List;
-import java.util.Set;
-
-public class BootstrappingFunction implements Function, MembershipListener {
-
-  private static final long serialVersionUID = 1856043174458190605L;
-
-  public static final String ID = "bootstrapping-function";
-
-  private static final int TIME_TO_WAIT_FOR_CACHE = Integer.getInteger("gemfiremodules.timeToWaitForCache", 30000);
-
-  @Override
-  public void execute(FunctionContext context) {
-    // Verify that the cache exists before continuing.
-    // When this function is executed by a remote membership listener, it is
-    // being invoked before the cache is started.
-    Cache cache = verifyCacheExists();
-
-    // Register as membership listener
-    registerAsMembershipListener(cache);
-
-    // Register functions
-    registerFunctions();
-
-    // Return status
-    context.getResultSender().lastResult(Boolean.TRUE);
-  }
-
-  private Cache verifyCacheExists() {
-    int timeToWait = 0;
-    Cache cache = null;
-    while (timeToWait < TIME_TO_WAIT_FOR_CACHE) {
-      try {
-        cache = CacheFactory.getAnyInstance();
-        break;
-      } catch (Exception ignore) {
-        //keep trying and hope for the best
-      }
-      try {
-        Thread.sleep(250);
-      } catch (InterruptedException ie) {
-        Thread.currentThread().interrupt();
-        break;
-      }
-      timeToWait += 250;
-    }
-
-    if (cache == null) {
-      cache = new CacheFactory().create();
-    }
-
-    return cache;
-  }
-
-  private void registerAsMembershipListener(Cache cache) {
-    DM dm = ((InternalDistributedSystem) cache.getDistributedSystem()).getDistributionManager();
-    dm.addMembershipListener(this);
-  }
-
-  private void registerFunctions() {
-    // Synchronize so that these functions aren't registered twice. The
-    // constructor for the CreateRegionFunction creates a meta region.
-    synchronized (ID) {
-      // Register the create region function if it is not already registered
-      if (!FunctionService.isRegistered(CreateRegionFunction.ID)) {
-        FunctionService.registerFunction(new CreateRegionFunction());
-      }
-
-      // Register the touch partitioned region entries function if it is not already registered
-      if (!FunctionService.isRegistered(TouchPartitionedRegionEntriesFunction.ID)) {
-        FunctionService.registerFunction(new TouchPartitionedRegionEntriesFunction());
-      }
-
-      // Register the touch replicated region entries function if it is not already registered
-      if (!FunctionService.isRegistered(TouchReplicatedRegionEntriesFunction.ID)) {
-        FunctionService.registerFunction(new TouchReplicatedRegionEntriesFunction());
-      }
-
-      // Register the region size function if it is not already registered
-      if (!FunctionService.isRegistered(RegionSizeFunction.ID)) {
-        FunctionService.registerFunction(new RegionSizeFunction());
-      }
-    }
-  }
-
-  private void bootstrapMember(InternalDistributedMember member) {
-    // Create and execute the function
-    Cache cache = CacheFactory.getAnyInstance();
-    Execution execution = FunctionService.onMember(cache.getDistributedSystem(), member);
-    ResultCollector collector = execution.execute(this);
-
-    // Get the result. Nothing is being done with it.
-    try {
-      collector.getResult();
-    } catch (Exception e) {
-      // If an exception occurs in the function, log it.
-      cache.getLogger().warning("Caught unexpected exception:", e);
-    }
-  }
-
-  @Override
-  public String getId() {
-    return ID;
-  }
-
-  @Override
-  public boolean hasResult() {
-    return true;
-  }
-
-  @Override
-  public boolean isHA() {
-    return false;
-  }
-
-  @Override
-  public boolean optimizeForWrite() {
-    return false;
-  }
-
-  public int hashCode() {
-    // This method is only implemented so that multiple instances of this class
-    // don't get added as membership listeners.
-    return ID.hashCode();
-  }
-
-  public boolean equals(Object obj) {
-    // This method is only implemented so that multiple instances of this class
-    // don't get added as membership listeners.
-    if (this == obj) {
-      return true;
-    }
-
-    if (obj == null || !(obj instanceof BootstrappingFunction)) {
-      return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public void memberDeparted(InternalDistributedMember id, boolean crashed) {
-  }
-
-  @Override
-  public void memberJoined(InternalDistributedMember id) {
-    bootstrapMember(id);
-  }
-
-  @Override
-  public void memberSuspect(InternalDistributedMember id, InternalDistributedMember whoSuspected, String reason) {
-  }
-
-  @Override
-  public void quorumLost(Set<InternalDistributedMember> internalDistributedMembers,
-      List<InternalDistributedMember> internalDistributedMembers2) {
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ClassLoaderObjectInputStream.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ClassLoaderObjectInputStream.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ClassLoaderObjectInputStream.java
deleted file mode 100644
index 8cd600e..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ClassLoaderObjectInputStream.java
+++ /dev/null
@@ -1,40 +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.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectStreamClass;
-
-/**
- * This class is used when session attributes need to be reconstructed with a new classloader.
- */
-public class ClassLoaderObjectInputStream extends ObjectInputStream {
-
-  private final ClassLoader loader;
-
-  public ClassLoaderObjectInputStream(InputStream in, ClassLoader loader) throws IOException {
-    super(in);
-    this.loader = loader;
-  }
-
-  @Override
-  public Class<?> resolveClass(ObjectStreamClass desc) throws ClassNotFoundException {
-    return Class.forName(desc.getName(), false, loader);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ContextMapper.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ContextMapper.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ContextMapper.java
deleted file mode 100644
index 3b7b2de..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ContextMapper.java
+++ /dev/null
@@ -1,53 +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.util;
-
-import com.gemstone.gemfire.modules.session.catalina.DeltaSessionManager;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * This basic singleton class maps context paths to manager instances.
- * <p>
- * This class exists for a particular corner case described here. Consider a client-server environment with empty client
- * regions *and* the need to fire HttpSessionListener destroy events. When a session expires, in this scenario, the
- * Gemfire destroy events originate on the server and, with some Gemfire hackery, the destroyed object ends up as the
- * event's callback argument. At the point that the CacheListener then gets the event, the re-constituted session object
- * has no manager associated and so we need to re-attach a manager to it so that events can be fired correctly.
- */
-
-public class ContextMapper {
-
-  private static Map<String, DeltaSessionManager> managers = new HashMap<String, DeltaSessionManager>();
-
-  private ContextMapper() {
-    // This is a singleton
-  }
-
-  public static void addContext(String path, DeltaSessionManager manager) {
-    managers.put(path, manager);
-  }
-
-  public static DeltaSessionManager getContext(String path) {
-    return managers.get(path);
-  }
-
-  public static DeltaSessionManager removeContext(String path) {
-    return managers.remove(path);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
deleted file mode 100644
index 564ccb7..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
+++ /dev/null
@@ -1,245 +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.util;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionFactory;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.client.ClientCache;
-import com.gemstone.gemfire.cache.execute.Function;
-import com.gemstone.gemfire.cache.execute.FunctionContext;
-import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;
-import com.gemstone.gemfire.distributed.DistributedLockService;
-import com.gemstone.gemfire.distributed.internal.locks.DistributedMemberLock;
-import com.gemstone.gemfire.internal.cache.PartitionedRegion;
-import com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlGenerator;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Properties;
-
-public class CreateRegionFunction implements Function, Declarable {
-
-  private static final long serialVersionUID = -9210226844302128969L;
-
-  private final Cache cache;
-
-  private final Region<String, RegionConfiguration> regionConfigurationsRegion;
-
-  public static final String ID = "create-region-function";
-
-  private static final boolean DUMP_SESSION_CACHE_XML = Boolean.getBoolean("gemfiremodules.dumpSessionCacheXml");
-
-  private static final String REGION_CONFIGURATION_METADATA_REGION = "__regionConfigurationMetadata";
-
-  public CreateRegionFunction() {
-    this(CacheFactory.getAnyInstance());
-  }
-
-  public CreateRegionFunction(Cache cache) {
-    this.cache = cache;
-    this.regionConfigurationsRegion = createRegionConfigurationMetadataRegion();
-  }
-
-  public CreateRegionFunction(ClientCache cache) {
-    this.cache = null;
-    this.regionConfigurationsRegion = null;
-  }
-
-  public void execute(FunctionContext context) {
-    RegionConfiguration configuration = (RegionConfiguration) context.getArguments();
-    if (this.cache.getLogger().fineEnabled()) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("Function ").append(ID).append(" received request: ").append(configuration);
-      this.cache.getLogger().fine(builder.toString());
-    }
-
-    // Create or retrieve region
-    RegionStatus status = createOrRetrieveRegion(configuration);
-
-    // Dump XML
-    if (DUMP_SESSION_CACHE_XML) {
-      writeCacheXml();
-    }
-    // Return status
-    context.getResultSender().lastResult(status);
-  }
-
-  private RegionStatus createOrRetrieveRegion(RegionConfiguration configuration) {
-    RegionStatus status = null;
-    String regionName = configuration.getRegionName();
-    if (this.cache.getLogger().fineEnabled()) {
-      this.cache.getLogger().fine("Function " + ID + " retrieving region named: " + regionName);
-    }
-    Region region = this.cache.getRegion(regionName);
-    if (region == null) {
-      status = createRegion(configuration);
-    } else {
-      status = RegionStatus.VALID;
-      try {
-        RegionHelper.validateRegion(this.cache, configuration, region);
-      } catch (Exception e) {
-        if (!e.getMessage()
-            .equals(LocalizedStrings.RegionAttributesCreation_CACHELISTENERS_ARE_NOT_THE_SAME.toLocalizedString())) {
-          this.cache.getLogger().warning(e);
-        }
-        status = RegionStatus.INVALID;
-      }
-    }
-    return status;
-  }
-
-  public String getId() {
-    return ID;
-  }
-
-  public boolean optimizeForWrite() {
-    return false;
-  }
-
-  public boolean isHA() {
-    return true;
-  }
-
-  public boolean hasResult() {
-    return true;
-  }
-
-  public void init(Properties properties) {
-  }
-
-  private RegionStatus createRegion(RegionConfiguration configuration) {
-    // Get a distributed lock
-    DistributedMemberLock dml = getDistributedLock();
-    if (this.cache.getLogger().fineEnabled()) {
-      this.cache.getLogger().fine(this + ": Attempting to lock " + dml);
-    }
-    long start = 0, end = 0;
-    RegionStatus status = null;
-    try {
-      if (this.cache.getLogger().fineEnabled()) {
-        start = System.currentTimeMillis();
-      }
-      // Obtain a lock on the distributed lock
-      dml.lockInterruptibly();
-      if (this.cache.getLogger().fineEnabled()) {
-        end = System.currentTimeMillis();
-        this.cache.getLogger().fine(this + ": Obtained lock on " + dml + " in " + (end - start) + " ms");
-      }
-
-      // Attempt to get the region again after the lock has been obtained
-      String regionName = configuration.getRegionName();
-      Region region = this.cache.getRegion(regionName);
-
-      // If it exists now, validate it.
-      // Else put an entry into the sessionRegionConfigurationsRegion
-      // while holding the lock. This will create the region in all VMs.
-      if (region == null) {
-        this.regionConfigurationsRegion.put(regionName, configuration);
-
-        // Retrieve the region after creating it
-        region = this.cache.getRegion(regionName);
-        // If the region is null now, it wasn't created for some reason
-        // (e.g. the region attributes id were invalid)
-        if (region == null) {
-          status = RegionStatus.INVALID;
-        } else {
-          // Create the PR buckets if necessary)
-          if (region instanceof PartitionedRegion) {
-            PartitionedRegion pr = (PartitionedRegion) region;
-            createBuckets(pr);
-          }
-          status = RegionStatus.VALID;
-        }
-      } else {
-        status = RegionStatus.VALID;
-        try {
-          RegionHelper.validateRegion(this.cache, configuration, region);
-        } catch (Exception e) {
-          if (!e.getMessage()
-              .equals(LocalizedStrings.RegionAttributesCreation_CACHELISTENERS_ARE_NOT_THE_SAME.toLocalizedString())) {
-            this.cache.getLogger().warning(e);
-          }
-          status = RegionStatus.INVALID;
-        }
-      }
-    } catch (Exception e) {
-      StringBuilder builder = new StringBuilder();
-      builder.append(this)
-          .append(": Caught Exception attempting to create region named ")
-          .append(configuration.getRegionName())
-          .append(":");
-      this.cache.getLogger().warning(builder.toString(), e);
-      status = RegionStatus.INVALID;
-    } finally {
-      // Unlock the distributed lock
-      try {
-        dml.unlock();
-      } catch (Exception e) {
-      }
-    }
-    return status;
-  }
-
-  private void createBuckets(PartitionedRegion region) {
-    PartitionRegionHelper.assignBucketsToPartitions(region);
-  }
-
-  private Region<String, RegionConfiguration> createRegionConfigurationMetadataRegion() {
-    // a sessionFactory in hibernate could have been re-started
-    // so, it is possible that this region exists already
-    Region<String, RegionConfiguration> r = this.cache.getRegion(REGION_CONFIGURATION_METADATA_REGION);
-    if (r != null) {
-      return r;
-    }
-    RegionFactory<String, RegionConfiguration> factory = this.cache.createRegionFactory(RegionShortcut.REPLICATE);
-    factory.addCacheListener(new RegionConfigurationCacheListener());
-    return factory.create(REGION_CONFIGURATION_METADATA_REGION);
-  }
-
-  private void writeCacheXml() {
-    File file = new File("cache-" + System.currentTimeMillis() + ".xml");
-    try {
-      PrintWriter pw = new PrintWriter(new FileWriter(file), true);
-      CacheXmlGenerator.generate(this.cache, pw);
-      pw.close();
-    } catch (IOException e) {
-    }
-  }
-
-  private DistributedMemberLock getDistributedLock() {
-    String dlsName = this.regionConfigurationsRegion.getName();
-    DistributedLockService lockService = initializeDistributedLockService(dlsName);
-    String lockToken = dlsName + "_token";
-    return new DistributedMemberLock(lockService, lockToken);
-  }
-
-  private DistributedLockService initializeDistributedLockService(String dlsName) {
-    DistributedLockService lockService = DistributedLockService.getServiceNamed(dlsName);
-    if (lockService == null) {
-      lockService = DistributedLockService.create(dlsName, this.cache.getDistributedSystem());
-    }
-    return lockService;
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/DebugCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/DebugCacheListener.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/DebugCacheListener.java
deleted file mode 100644
index baca5b8..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/DebugCacheListener.java
+++ /dev/null
@@ -1,72 +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.util;
-
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
-
-import java.util.Properties;
-
-@SuppressWarnings("unchecked")
-public class DebugCacheListener extends CacheListenerAdapter implements Declarable {
-
-  public void afterCreate(EntryEvent event) {
-    log(event);
-  }
-
-  public void afterUpdate(EntryEvent event) {
-    log(event);
-  }
-
-  public void afterInvalidate(EntryEvent event) {
-    log(event);
-  }
-
-  public void afterDestroy(EntryEvent event) {
-    log(event);
-  }
-
-  private void log(EntryEvent event) {
-    StringBuilder builder = new StringBuilder();
-    builder.append("DebugCacheListener: Received ")
-        .append(event.getOperation())
-        .append(" for key=")
-        .append(event.getKey());
-    if (event.getNewValue() != null) {
-      builder.append("; value=").append(event.getNewValue());
-    }
-    event.getRegion().getCache().getLogger().info(builder.toString());
-  }
-
-  public void init(Properties p) {
-  }
-
-  public boolean equals(Object obj) {
-    // This method is only implemented so that RegionCreator.validateRegion works properly.
-    // The CacheListener comparison fails because two of these instances are not equal.
-    if (this == obj) {
-      return true;
-    }
-
-    if (obj == null || !(obj instanceof DebugCacheListener)) {
-      return false;
-    }
-
-    return true;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ModuleStatistics.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ModuleStatistics.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ModuleStatistics.java
deleted file mode 100644
index dff5b95..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ModuleStatistics.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.util;
-
-import com.gemstone.gemfire.StatisticDescriptor;
-import com.gemstone.gemfire.Statistics;
-import com.gemstone.gemfire.StatisticsFactory;
-import com.gemstone.gemfire.StatisticsType;
-import com.gemstone.gemfire.StatisticsTypeFactory;
-import com.gemstone.gemfire.distributed.DistributedSystem;
-import com.gemstone.gemfire.internal.StatisticsTypeFactoryImpl;
-
-/**
- * Statistics for modules.
- *
- * @author sbawaska
- */
-public class ModuleStatistics {
-
-  private static final StatisticsType type;
-
-  private static final int cacheHitsId;
-
-  private static final int cacheMissesId;
-
-  private static final int hibernateEntityDestroyJobsScheduledId;
-
-  static {
-    StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
-    type = f.createType("pluginStats", "statistics for hibernate plugin and hibernate L2 cache",
-        new StatisticDescriptor[]{f.createLongCounter("cacheHits", "number of times an entity was found in L2 cache",
-            "count"), f.createLongCounter("cacheMisses", "number of times an entity was NOT found in l2 cache",
-            "count"), f.createLongCounter("hibernateEntityDestroyJobsScheduled",
-            "number of entities scheduled for destroy because of version conflict with a remote member", "jobs")});
-
-    cacheHitsId = type.nameToId("cacheHits");
-    cacheMissesId = type.nameToId("cacheMisses");
-    hibernateEntityDestroyJobsScheduledId = type.nameToId("hibernateEntityDestroyJobsScheduled");
-  }
-
-  private final Statistics stats;
-
-  private static ModuleStatistics instance;
-
-  private ModuleStatistics(StatisticsFactory factory) {
-    this.stats = factory.createAtomicStatistics(type, "PluginStatistics");
-  }
-
-  public static ModuleStatistics getInstance(DistributedSystem system) {
-    synchronized (ModuleStatistics.class) {
-      if (instance == null) {
-        instance = new ModuleStatistics(system);
-      }
-    }
-    return instance;
-  }
-
-  public void incCacheHit() {
-    stats.incLong(cacheHitsId, 1);
-  }
-
-  public long getCacheHits() {
-    return stats.getLong(cacheHitsId);
-  }
-
-  public void incCacheMiss() {
-    stats.incLong(cacheMissesId, 1);
-  }
-
-  public long getCacheMiss() {
-    return stats.getLong(cacheMissesId);
-  }
-
-  public void incHibernateDestroyJobsScheduled() {
-    stats.incLong(hibernateEntityDestroyJobsScheduledId, 1);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfiguration.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfiguration.java
deleted file mode 100644
index 5b025bc..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfiguration.java
+++ /dev/null
@@ -1,308 +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.util;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.Instantiator;
-import com.gemstone.gemfire.cache.CacheWriter;
-import com.gemstone.gemfire.cache.CustomExpiry;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Class <code>RegionConfiguration</code> encapsulates the configuration attributes for a <code>Region</code> to be
- * created on the server.
- *
- * @author Barry Oglesby
- * @since 6.5
- */
-@SuppressWarnings({"serial", "unchecked"})
-public class RegionConfiguration implements DataSerializable {
-
-  /**
-   * The name of the <code>Region</code> to be created
-   */
-  private String regionName;
-
-  /**
-   * The id of the <code>RegionAttributes</code> to be used
-   */
-  private String regionAttributesId;
-
-  /**
-   * The default max inactive interval. The default value is -1.
-   */
-  public static final int DEFAULT_MAX_INACTIVE_INTERVAL = -1;
-
-  /**
-   * The maximum time interval in seconds before entries are expired
-   */
-  private int maxInactiveInterval = DEFAULT_MAX_INACTIVE_INTERVAL;
-
-  /**
-   * The <code>CustomExpiry</code> to be used
-   */
-  private CustomExpiry customExpiry;
-
-  /**
-   * Whether delta replication across a <code>Gateway</code> is enabled.
-   */
-  private boolean enableGatewayDeltaReplication = false;
-
-  /**
-   * Whether replication across a <code>Gateway</code> is enabled.
-   */
-  private boolean enableGatewayReplication = false;
-
-  /**
-   * Whether to add a <code>DebugCacheListener</code> to the <code>Region</code>.
-   */
-  private boolean enableDebugListener = false;
-
-  /**
-   * Whether to add a cache listener for session expiration events
-   */
-  private boolean enableSessionExpirationCacheListener = false;
-
-  /**
-   * name for the CacheWriter to be associated with this region. This cache writer must have a zero arg constructor and
-   * must be present on the classpath on the server.
-   */
-  private String cacheWriterName;
-
-  /**
-   * Default constructor used by the <code>DataSerialiable</code> interface
-   */
-  public RegionConfiguration() {
-  }
-
-  /**
-   * Sets the name of the <code>Region</code> to be created
-   *
-   * @param regionName The name of the <code>Region</code> to be created
-   */
-  public void setRegionName(String regionName) {
-    this.regionName = regionName;
-  }
-
-  /**
-   * Returns the name of the <code>Region</code> to be created
-   *
-   * @return the name of the <code>Region</code> to be created
-   */
-  public String getRegionName() {
-    return this.regionName;
-  }
-
-  /**
-   * Sets the id of the <code>RegionAttributes</code> to be used
-   *
-   * @param regionAttributesId The id of the <code>RegionAttributes</code> to be used
-   */
-  public void setRegionAttributesId(String regionAttributesId) {
-    this.regionAttributesId = regionAttributesId;
-  }
-
-  /**
-   * Returns the id of the <code>RegionAttributes</code> to be used
-   *
-   * @return the id of the <code>RegionAttributes</code> to be used
-   */
-  public String getRegionAttributesId() {
-    return this.regionAttributesId;
-  }
-
-  /**
-   * Sets the maximum time interval in seconds before entries are expired
-   *
-   * @param maxInactiveInterval The maximum time interval in seconds before entries are expired
-   */
-  public void setMaxInactiveInterval(int maxInactiveInterval) {
-    this.maxInactiveInterval = maxInactiveInterval;
-  }
-
-  /**
-   * Returns the maximum time interval in seconds entries are expired
-   *
-   * @return the maximum time interval in seconds before entries are expired
-   */
-  public int getMaxInactiveInterval() {
-    return this.maxInactiveInterval;
-  }
-
-  /**
-   * Sets the <code>CustomExpiry</code> to be used
-   *
-   * @param customExpiry The <code>CustomExpiry</code> to be used
-   */
-  public void setCustomExpiry(CustomExpiry customExpiry) {
-    this.customExpiry = customExpiry;
-  }
-
-  /**
-   * Returns the <code>CustomExpiry</code> to be used
-   *
-   * @return the <code>CustomExpiry</code> to be used
-   */
-  public CustomExpiry getCustomExpiry() {
-    return this.customExpiry;
-  }
-
-  /**
-   * Enables/disables delta replication across a <code>Gateway</code>.
-   *
-   * @param enableGatewayDeltaReplication true to enable, false to disable gateway delta replication.
-   */
-  public void setEnableGatewayDeltaReplication(boolean enableGatewayDeltaReplication) {
-    this.enableGatewayDeltaReplication = enableGatewayDeltaReplication;
-  }
-
-  /**
-   * Returns whether delta replication across a <code>Gateway</code> is enabled.
-   *
-   * @return whether delta replication across a <code>Gateway</code> is enabled
-   */
-  public boolean getEnableGatewayDeltaReplication() {
-    return this.enableGatewayDeltaReplication;
-  }
-
-  /**
-   * Enables/disables replication across a <code>Gateway</code>.
-   *
-   * @param enableGatewayReplication true to enable, false to disable gateway replication.
-   */
-  public void setEnableGatewayReplication(boolean enableGatewayReplication) {
-    this.enableGatewayReplication = enableGatewayReplication;
-  }
-
-  /**
-   * Returns whether replication across a <code>Gateway</code> is enabled.
-   *
-   * @return whether replication across a <code>Gateway</code> is enabled
-   */
-  public boolean getEnableGatewayReplication() {
-    return this.enableGatewayReplication;
-  }
-
-  /**
-   * Enables/disables a debug <code>CacheListener</code>.
-   *
-   * @param enableDebugListener true to enable, false to disable debug <code>CacheListener</code>.
-   */
-  public void setEnableDebugListener(boolean enableDebugListener) {
-    this.enableDebugListener = enableDebugListener;
-  }
-
-  /**
-   * Returns whether a debug <code>CacheListener</code> is enabled.
-   *
-   * @return whether a debug <code>CacheListener</code> is enabled
-   */
-  public boolean getEnableDebugListener() {
-    return this.enableDebugListener;
-  }
-
-  public void setSessionExpirationCacheListener(boolean enableSessionExpirationCacheListener) {
-    this.enableSessionExpirationCacheListener = enableSessionExpirationCacheListener;
-  }
-
-  public boolean getSessionExpirationCacheListener() {
-    return this.enableSessionExpirationCacheListener;
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    DataSerializer.writeString(this.regionName, out);
-    DataSerializer.writeString(this.regionAttributesId, out);
-    DataSerializer.writePrimitiveInt(this.maxInactiveInterval, out);
-    DataSerializer.writeObject(this.customExpiry, out);
-    DataSerializer.writeBoolean(this.enableGatewayDeltaReplication, out);
-    DataSerializer.writeBoolean(this.enableGatewayReplication, out);
-    DataSerializer.writeBoolean(this.enableDebugListener, out);
-    DataSerializer.writeString(this.cacheWriterName, out);
-    DataSerializer.writeBoolean(this.enableSessionExpirationCacheListener, out);
-  }
-
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    this.regionName = DataSerializer.readString(in);
-    this.regionAttributesId = DataSerializer.readString(in);
-    this.maxInactiveInterval = DataSerializer.readPrimitiveInt(in);
-    this.customExpiry = DataSerializer.readObject(in);
-    this.enableGatewayDeltaReplication = DataSerializer.readBoolean(in);
-    this.enableGatewayReplication = DataSerializer.readBoolean(in);
-    this.enableDebugListener = DataSerializer.readBoolean(in);
-    this.cacheWriterName = DataSerializer.readString(in);
-
-    // This allows for backwards compatibility with 2.1 clients
-    if (((InputStream) in).available() > 0) {
-      this.enableSessionExpirationCacheListener = DataSerializer.readBoolean(in);
-    } else {
-      this.enableSessionExpirationCacheListener = false;
-    }
-  }
-
-  /**
-   * Registers an <code>Instantiator</code> for the <code>SessionConfiguration</code> class
-   */
-  public static void registerInstantiator(int id) {
-    Instantiator.register(new Instantiator(RegionConfiguration.class, id) {
-      public DataSerializable newInstance() {
-        return new RegionConfiguration();
-      }
-    });
-  }
-
-  public String toString() {
-    return new StringBuilder().append("RegionConfiguration[")
-        .append("regionName=")
-        .append(this.regionName)
-        .append("; regionAttributesId=")
-        .append(this.regionAttributesId)
-        .append("; maxInactiveInterval=")
-        .append(this.maxInactiveInterval)
-        .append("; enableGatewayDeltaReplication=")
-        .append(this.enableGatewayDeltaReplication)
-        .append("; enableGatewayReplication=")
-        .append(this.enableGatewayReplication)
-        .append("; enableDebugListener=")
-        .append(this.enableDebugListener)
-        .append("; enableSessionExpirationCacheListener=")
-        .append(this.enableSessionExpirationCacheListener)
-        .append("; cacheWriter=")
-        .append(this.cacheWriterName)
-        .append("]")
-        .toString();
-  }
-
-  /**
-   * set the fully qualified name of the {@link CacheWriter} to be created on the server. The cacheWriter must have a
-   * zero arg constructor, and must be present on the classpath on the server.
-   *
-   * @param cacheWriterName fully qualified class name of the cacheWriter
-   */
-  public void setCacheWriterName(String cacheWriterName) {
-    this.cacheWriterName = cacheWriterName;
-  }
-
-  public String getCacheWriterName() {
-    return cacheWriterName;
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfigurationCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfigurationCacheListener.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfigurationCacheListener.java
deleted file mode 100644
index c25082b..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfigurationCacheListener.java
+++ /dev/null
@@ -1,114 +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.util;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionEvent;
-import com.gemstone.gemfire.cache.RegionExistsException;
-import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
-
-import java.util.Properties;
-
-public class RegionConfigurationCacheListener extends CacheListenerAdapter<String, RegionConfiguration> implements Declarable {
-
-  private Cache cache;
-
-  public RegionConfigurationCacheListener() {
-    this.cache = CacheFactory.getAnyInstance();
-  }
-
-  public void afterCreate(EntryEvent<String, RegionConfiguration> event) {
-    RegionConfiguration configuration = event.getNewValue();
-    if (this.cache.getLogger().fineEnabled()) {
-      this.cache.getLogger().fine("RegionConfigurationCacheListener received afterCreate for region " + event.getKey());
-    }
-    // Create region
-    // this is a replicate region, and many VMs can be doing create region
-    // simultaneously, so ignore the RegionExistsException
-    try {
-      Region region = RegionHelper.createRegion(this.cache, configuration);
-      if (this.cache.getLogger().fineEnabled()) {
-        this.cache.getLogger().fine("RegionConfigurationCacheListener created region: " + region);
-      }
-    } catch (RegionExistsException exists) {
-      // ignore
-      this.cache.getLogger().fine("Region with configuration " + configuration + " existed");
-    }
-  }
-
-  @Override
-  public void afterUpdate(EntryEvent<String, RegionConfiguration> event) {
-    // a region could have been destroyed and then
-    // re-created, we want to create region again
-    // on remote nodes
-    afterCreate(event);
-  }
-
-  public void afterRegionCreate(RegionEvent<String, RegionConfiguration> event) {
-    StringBuilder builder1 = null, builder2 = null;
-    Region<String, RegionConfiguration> region = event.getRegion();
-    if (this.cache.getLogger().fineEnabled()) {
-      builder1 = new StringBuilder();
-      int regionSize = region.size();
-      if (regionSize > 0) {
-        builder1.append("RegionConfigurationCacheListener region ")
-            .append(region.getName())
-            .append(" has been initialized with the following ")
-            .append(regionSize)
-            .append(" region configurations:\n");
-        builder2 = new StringBuilder();
-        builder2.append("RegionConfigurationCacheListener created the following ")
-            .append(regionSize)
-            .append(" regions:\n");
-      } else {
-        builder1.append("RegionConfigurationCacheListener region ")
-            .append(region.getName())
-            .append(" has been initialized with no region configurations");
-      }
-    }
-    for (RegionConfiguration configuration : region.values()) {
-      if (this.cache.getLogger().fineEnabled()) {
-        builder1.append("\t").append(configuration);
-      }
-      try {
-        Region createRegion = RegionHelper.createRegion(this.cache, configuration);
-        if (this.cache.getLogger().fineEnabled()) {
-          builder2.append("\t").append(createRegion);
-        }
-      } catch (RegionExistsException exists) {
-        // could have been concurrently created by another function
-        if (this.cache.getLogger().fineEnabled()) {
-          builder2.append("\t").append(" region existed");
-        }
-      }
-
-    }
-    if (this.cache.getLogger().fineEnabled()) {
-      this.cache.getLogger().fine(builder1.toString());
-      if (builder2 != null) {
-        this.cache.getLogger().fine(builder2.toString());
-      }
-    }
-  }
-
-  public void init(Properties p) {
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionHelper.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionHelper.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionHelper.java
deleted file mode 100644
index 78e4423..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionHelper.java
+++ /dev/null
@@ -1,241 +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.util;
-
-import com.gemstone.gemfire.cache.AttributesFactory;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheWriter;
-import com.gemstone.gemfire.cache.ExpirationAction;
-import com.gemstone.gemfire.cache.ExpirationAttributes;
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionAttributes;
-import com.gemstone.gemfire.cache.control.RebalanceFactory;
-import com.gemstone.gemfire.cache.control.RebalanceOperation;
-import com.gemstone.gemfire.cache.control.RebalanceResults;
-import com.gemstone.gemfire.cache.control.ResourceManager;
-import com.gemstone.gemfire.cache.partition.PartitionMemberInfo;
-import com.gemstone.gemfire.cache.partition.PartitionRebalanceInfo;
-import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;
-import com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlGenerator;
-import com.gemstone.gemfire.internal.cache.xmlcache.RegionAttributesCreation;
-import com.gemstone.gemfire.modules.gatewaydelta.GatewayDeltaForwarderCacheListener;
-import com.gemstone.gemfire.modules.session.catalina.callback.SessionExpirationCacheListener;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.concurrent.CancellationException;
-
-@SuppressWarnings({"deprecation", "unchecked"})
-public class RegionHelper {
-
-  public static final String NAME = "gemfire_modules";
-
-  public static Region createRegion(Cache cache, RegionConfiguration configuration) {
-    // Use the createRegion method so that the RegionAttributes creation can be reused by validate.
-    RegionAttributes requestedRegionAttributes = getRegionAttributes(cache, configuration);
-    Region region = cache.createRegion(configuration.getRegionName(), requestedRegionAttributes);
-
-    // Log the cache xml if debugging is enabled. I'd like to be able to just
-    // log the region, but that API is not available.
-    if (configuration.getEnableDebugListener()) {
-      cache.getLogger().info("Created new session region: " + region);
-      cache.getLogger().info(generateCacheXml(cache));
-    }
-    return region;
-  }
-
-  public static void validateRegion(Cache cache, RegionConfiguration configuration, Region region) {
-    // Get the attributes of the existing region
-    RegionAttributes existingAttributes = region.getAttributes();
-
-    // Create region attributes creation on existing region attributes.
-    // The RAC is created to execute the sameAs method.
-    RegionAttributesCreation existingRACreation = new RegionAttributesCreation(existingAttributes, false);
-
-    // Create requested region attributes
-    RegionAttributes requestedRegionAttributes = getRegionAttributes(cache, configuration);
-
-    // Compare the two region attributes. This method either returns true or throws a RuntimeException.
-    existingRACreation.sameAs(requestedRegionAttributes);
-  }
-
-  public static RebalanceResults rebalanceRegion(Region region) throws CancellationException, InterruptedException {
-    String regionName = region.getName(); // FilterByName only looks at name and not full path
-    if (!PartitionRegionHelper.isPartitionedRegion(region)) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("Region ")
-          .append(regionName)
-          .append(" is not partitioned. Instead, it is ")
-          .append(region.getAttributes().getDataPolicy())
-          .append(". It can't be rebalanced.");
-      throw new IllegalArgumentException(builder.toString());
-    }
-
-    // Rebalance the region
-    ResourceManager resourceManager = region.getCache().getResourceManager();
-    RebalanceFactory rebalanceFactory = resourceManager.createRebalanceFactory();
-    Set<String> regionsToRebalance = new HashSet<String>();
-    regionsToRebalance.add(regionName);
-    rebalanceFactory.includeRegions(regionsToRebalance);
-    RebalanceOperation rebalanceOperation = rebalanceFactory.start();
-
-    // Return the results
-    return rebalanceOperation.getResults();
-  }
-
-  public static RebalanceResults rebalanceCache(GemFireCache cache) throws CancellationException, InterruptedException {
-    ResourceManager resourceManager = cache.getResourceManager();
-    RebalanceFactory rebalanceFactory = resourceManager.createRebalanceFactory();
-    RebalanceOperation rebalanceOperation = rebalanceFactory.start();
-    return rebalanceOperation.getResults();
-  }
-
-  public static String generateCacheXml(Cache cache) {
-    try {
-      StringWriter sw = new StringWriter();
-      PrintWriter pw = new PrintWriter(sw, true);
-      CacheXmlGenerator.generate(cache, pw);
-      pw.close();
-      return sw.toString();
-    } catch (Exception ex) {
-      return "";
-    }
-  }
-
-  private static RegionAttributes getRegionAttributes(Cache cache, RegionConfiguration configuration) {
-    // Create the requested attributes
-    RegionAttributes baseRequestedAttributes = cache.getRegionAttributes(configuration.getRegionAttributesId());
-    if (baseRequestedAttributes == null) {
-      throw new IllegalArgumentException(
-          "No region attributes named " + configuration.getRegionAttributesId() + " are defined.");
-    }
-    AttributesFactory requestedFactory = new AttributesFactory(baseRequestedAttributes);
-
-    // Set the expiration time and action if necessary
-    int maxInactiveInterval = configuration.getMaxInactiveInterval();
-    if (maxInactiveInterval != RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
-      requestedFactory.setStatisticsEnabled(true);
-      if (configuration.getCustomExpiry() == null) {
-        requestedFactory.setEntryIdleTimeout(new ExpirationAttributes(maxInactiveInterval, ExpirationAction.DESTROY));
-      } else {
-        requestedFactory.setCustomEntryIdleTimeout(configuration.getCustomExpiry());
-      }
-    }
-
-    // Add the gateway delta region cache listener if necessary
-    if (configuration.getEnableGatewayDeltaReplication()) {
-      // Add the listener that forwards created/destroyed deltas to the gateway
-      requestedFactory.addCacheListener(new GatewayDeltaForwarderCacheListener(cache));
-    }
-
-    // Enable gateway replication if necessary
-    // TODO: Disabled for WAN
-//    requestedFactory.setEnableGateway(configuration.getEnableGatewayReplication());
-
-    // Add the debug cache listener if necessary
-    if (configuration.getEnableDebugListener()) {
-      requestedFactory.addCacheListener(new DebugCacheListener());
-    }
-
-    if (configuration.getSessionExpirationCacheListener()) {
-      requestedFactory.addCacheListener(new SessionExpirationCacheListener());
-    }
-
-    // Add the cacheWriter if necessary
-    if (configuration.getCacheWriterName() != null) {
-      try {
-        CacheWriter writer = (CacheWriter) Class.forName(configuration.getCacheWriterName()).newInstance();
-        requestedFactory.setCacheWriter(writer);
-      } catch (InstantiationException e) {
-        throw new RuntimeException("Could not set a cacheWriter for the region", e);
-      } catch (IllegalAccessException e) {
-        throw new RuntimeException("Could not set a cacheWriter for the region", e);
-      } catch (ClassNotFoundException e) {
-        throw new RuntimeException("Could not set a cacheWriter for the region", e);
-      }
-    }
-    return requestedFactory.create();
-  }
-
-  private RegionHelper() {
-  }
-
-  public static String getRebalanceResultsMessage(RebalanceResults results) {
-    StringBuilder builder = new StringBuilder();
-    for (PartitionRebalanceInfo rebalanceInfo : results.getPartitionRebalanceDetails()) {
-      // Log the overall results
-      fillInRebalanceResultsSummary(builder, rebalanceInfo);
-
-      // Log the 'Before' results
-      fillInRebalanceResultsMemberDetails(builder, rebalanceInfo.getPartitionMemberDetailsBefore(), "Before");
-
-      // Log the 'After' results
-      fillInRebalanceResultsMemberDetails(builder, rebalanceInfo.getPartitionMemberDetailsAfter(), "After");
-    }
-    return builder.toString();
-  }
-
-  private static void fillInRebalanceResultsSummary(StringBuilder builder, PartitionRebalanceInfo rebalanceInfo) {
-    builder.append("\nRebalanced region ")
-        .append(rebalanceInfo.getRegionPath())
-        .append(" in ")
-        .append(rebalanceInfo.getTime())
-        .append(" ms")
-
-        .append("\nCreated ")
-        .append(rebalanceInfo.getBucketCreatesCompleted())
-        .append(" buckets containing ")
-        .append(rebalanceInfo.getBucketCreateBytes())
-        .append(" bytes in ")
-        .append(rebalanceInfo.getBucketCreateTime())
-        .append(" ms")
-
-        .append("\nTransferred ")
-        .append(rebalanceInfo.getBucketTransfersCompleted())
-        .append(" buckets containing ")
-        .append(rebalanceInfo.getBucketTransferBytes())
-        .append(" bytes in ")
-        .append(rebalanceInfo.getBucketTransferTime())
-        .append(" ms")
-
-        .append("\nTransferred ")
-        .append(rebalanceInfo.getPrimaryTransfersCompleted())
-        .append(" primary buckets in ")
-        .append(rebalanceInfo.getPrimaryTransferTime())
-        .append(" ms");
-  }
-
-  private static void fillInRebalanceResultsMemberDetails(StringBuilder builder, Set<PartitionMemberInfo> memberInfoSet,
-      String when) {
-    builder.append("\nMember Info ").append(when).append(" Rebalance:\n");
-    for (PartitionMemberInfo info : memberInfoSet) {
-      builder.append("\tdistributedMember=")
-          .append(info.getDistributedMember())
-          .append(", configuredMaxMemory=")
-          .append(info.getConfiguredMaxMemory())
-          .append(", size=")
-          .append(info.getSize())
-          .append(", bucketCount=")
-          .append(info.getBucketCount())
-          .append(", primaryCount=")
-          .append(info.getPrimaryCount());
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionSizeFunction.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionSizeFunction.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionSizeFunction.java
deleted file mode 100644
index 13791a3..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionSizeFunction.java
+++ /dev/null
@@ -1,56 +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.util;
-
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.execute.Function;
-import com.gemstone.gemfire.cache.execute.FunctionContext;
-import com.gemstone.gemfire.cache.execute.RegionFunctionContext;
-
-import java.util.Properties;
-
-public class RegionSizeFunction implements Function, Declarable {
-
-  private static final long serialVersionUID = -2791590491585777990L;
-
-  public static final String ID = "region-size-function";
-
-  public void execute(FunctionContext context) {
-    RegionFunctionContext rfc = (RegionFunctionContext) context;
-    context.getResultSender().lastResult(rfc.getDataSet().size());
-  }
-
-  public String getId() {
-    return ID;
-  }
-
-  public boolean hasResult() {
-    return true;
-  }
-
-  public boolean optimizeForWrite() {
-    return true;
-  }
-
-  public boolean isHA() {
-    return true;
-  }
-
-  @Override
-  public void init(Properties arg0) {
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionStatus.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionStatus.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionStatus.java
deleted file mode 100644
index fec1fc1..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionStatus.java
+++ /dev/null
@@ -1,21 +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.util;
-
-public enum RegionStatus {
-  VALID, INVALID
-}


[23/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/Statistics.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/Statistics.java b/gemfire-core/src/main/java/com/gemstone/gemfire/Statistics.java
deleted file mode 100644
index 97a679c..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/Statistics.java
+++ /dev/null
@@ -1,446 +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;
-
-//import com.gemstone.gemfire.distributed.DistributedSystem;
-
-/**
- * Instances of this interface maintain the values of various application-defined
- * statistics.  The statistics themselves are described by an instance
- * of {@link StatisticsType}.
- *
- * <P>
- * To get an instance of this interface use an instance of
- * {@link StatisticsFactory}.
- * <P>
- *
- * For improved performance, each statistic may be referred to by
- * its {@link #nameToDescriptor descriptor}.
- * <P>
- * For optimal performance, each statistic may be referred to by
- * its {@link #nameToId id} in the statistics object. Note that
- * ids can not be mapped back to their name and methods that take ids
- * are unsafe. It is important to call the correct type of method
- * for the given id. For example if your stat is a long then incLong
- * must be called instead of incInt.
- * <p>Note that as of the 5.1 release the <code>incInt</code>,
- * <code>incLong</code>, and <code>incDouble</code> methods no longer
- * return the new value of the statistic. They now return <code>void</code>.
- * This incompatible change was made
- * to allow for a more efficient concurrent increment implementation.
- * <P>
- *
- * @see <A href="package-summary.html#statistics">Package introduction</A>
- *
- * @author David Whitlock
- * @author Darrel Schneider
- *
- * @since 3.0
- *
- */
-public interface Statistics {
-
-  /**
-   * Closes these statistics.  After statistics have been closed, they
-   * are no longer archived.
-   * A value access on a closed statistics always results in zero.
-   * A value modification on a closed statistics is ignored.
-   */
-  public void close();
-
-  ////////////////////////  accessor Methods  ///////////////////////
-
-  /**
-   * Returns the id of the statistic with the given name in this
-   * statistics instance.
-   *
-   * @throws IllegalArgumentException
-   *         No statistic named <code>name</code> exists in this
-   *         statistics instance.
-   *
-   * @see StatisticsType#nameToId
-   */
-  public int nameToId(String name);
-
-  
-  /**
-   * Returns the descriptor of the statistic with the given name in this
-   * statistics instance.
-   *
-   * @throws IllegalArgumentException
-   *         No statistic named <code>name</code> exists in this
-   *         statistics instance.
-   *
-   * @see StatisticsType#nameToDescriptor
-   */
-  public StatisticDescriptor nameToDescriptor(String name);
-
-  /**
-   * Gets a value that uniquely identifies this statistics.
-   */
-  public long getUniqueId();
-
-  /**
-   * Gets the {@link StatisticsType} of this instance.
-   */
-  public StatisticsType getType();
-  /**
-   * Gets the text associated with this instance that helps identify it.
-   */
-  public String getTextId();
-  /**
-   * Gets the number associated with this instance that helps identify it.
-   */
-  public long getNumericId();
-  /**
-   * Returns true if modifications are atomic. This means that multiple threads,
-   * can safely modify this instance without extra synchronization.
-   * <p>
-   * Returns false if modifications are not atomic. This means that modifications
-   * to this instance are cheaper but not thread safe.
-   */
-  public boolean isAtomic();
-  /**
-   * Returns true if the instance has been {@link #close closed}.
-   */
-  public boolean isClosed();
-  
-  ////////////////////////  set() Methods  ///////////////////////
-
-  /**
-   * Sets the value of a statistic with the given <code>id</code>
-   * whose type is <code>int</code>.
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   *
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public void setInt(int id, int value);
-
-  /**
-   * Sets the value of a named statistic of type <code>int</code>
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists named <code>name</code> or
-   *         if the statistic with name <code>name</code> is not of
-   *         type <code>int</code>.
-   */
-  public void setInt(String name, int value);
-
-  /**
-   * Sets the value of a described statistic of type <code>int</code>
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists for the given <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>int</code>.
-   */
-  public void setInt(StatisticDescriptor descriptor, int value);
-
-  /**
-   * Sets the value of a statistic with the given <code>id</code>
-   * whose type is <code>long</code>.
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   *
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public void setLong(int id, long value);
-
-  /**
-   * Sets the value of a described statistic of type <code>long</code>
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists for the given <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>long</code>.
-   */
-  public void setLong(StatisticDescriptor descriptor, long value);
-
-  /**
-   * Sets the value of a named statistic of type <code>long</code>.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists named <code>name</code> or
-   *         if the statistic with name <code>name</code> is not of
-   *         type <code>long</code>.
-   */
-  public void setLong(String name, long value);
-
-  /**
-   * Sets the value of a statistic with the given <code>id</code>
-   * whose type is <code>double</code>.
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   *
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public void setDouble(int id, double value);
-
-  /**
-   * Sets the value of a described statistic of type <code>double</code>
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists for the given <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>double</code>.
-   */
-  public void setDouble(StatisticDescriptor descriptor, double value);
-  /**
-   * Sets the value of a named statistic of type <code>double</code>.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists named <code>name</code> or
-   *         if the statistic with name <code>name</code> is not of
-   *         type <code>double</code>.
-   */
-  public void setDouble(String name, double value);
-
-  ///////////////////////  get() Methods  ///////////////////////
-
-  /**
-   * Returns the value of the identified statistic of type <code>int</code>.
-   *
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public int getInt(int id);
-
-  /**
-   * Returns the value of the described statistic of type <code>int</code>.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with the specified <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>int</code>.
-   */
-  public int getInt(StatisticDescriptor descriptor);
-  /**
-   * Returns the value of the statistic of type <code>int</code> at
-   * the given name.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with name <code>name</code> or
-   *         if the statistic named <code>name</code> is not of
-   *         type <code>int</code>.
-   */
-  public int getInt(String name);
-
-  /**
-   * Returns the value of the identified statistic of type <code>long</code>.
-   *
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public long getLong(int id);
-
-
-  /**
-   * Returns the value of the described statistic of type <code>long</code>.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with the specified <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>long</code>.
-   */
-  public long getLong(StatisticDescriptor descriptor);
-  /**
-   * Returns the value of the statistic of type <code>long</code> at
-   * the given name.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with name <code>name</code> or
-   *         if the statistic named <code>name</code> is not of
-   *         type <code>long</code>.
-   */
-  public long getLong(String name);
-
-  /**
-   * Returns the value of the identified statistic of type <code>double</code>.
-   *
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public double getDouble(int id);
-
-  /**
-   * Returns the value of the described statistic of type <code>double</code>.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with the specified <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>double</code>.
-   */
-  public double getDouble(StatisticDescriptor descriptor);
-  /**
-   * Returns the value of the statistic of type <code>double</code> at
-   * the given name.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with name <code>name</code> or
-   *         if the statistic named <code>name</code> is not of
-   *         type <code>double</code>.
-   */
-  public double getDouble(String name);
-
-  /**
-   * Returns the value of the identified statistic.
-   *
-   * @param descriptor a statistic descriptor obtained with {@link #nameToDescriptor}
-   * or {@link StatisticsType#nameToDescriptor}.
-   * @throws IllegalArgumentException
-   *         If the described statistic does not exist
-   */
-  public Number get(StatisticDescriptor descriptor);
-
-  /**
-   * Returns the value of the named statistic.
-   *
-   * @throws IllegalArgumentException
-   *         If the named statistic does not exist
-   */
-  public Number get(String name);
-
-  /**
-   * Returns the bits that represent the raw value of the described statistic.
-   *
-   * @param descriptor a statistic descriptor obtained with {@link #nameToDescriptor}
-   * or {@link StatisticsType#nameToDescriptor}.
-   * @throws IllegalArgumentException
-   *         If the described statistic does not exist
-   */
-  public long getRawBits(StatisticDescriptor descriptor);
-
-  /**
-   * Returns the bits that represent the raw value of the named statistic.
-   *
-   * @throws IllegalArgumentException
-   *         If the named statistic does not exist
-   */
-  public long getRawBits(String name);
-
-  ////////////////////////  inc() Methods  ////////////////////////
-
-  /**
-   * Increments the value of the identified statistic of type <code>int</code>
-   * by the given amount.
-   *
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   *
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public void incInt(int id, int delta);
-
-  /**
-   * Increments the value of the described statistic of type <code>int</code>
-   * by the given amount.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with the given <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>int</code>.
-   */
-  public void incInt(StatisticDescriptor descriptor, int delta);
-
-  /**
-   * Increments the value of the statistic of type <code>int</code> with
-   * the given name by a given amount.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with name <code>name</code> or
-   *         if the statistic named <code>name</code> is not of
-   *         type <code>int</code>.
-   */
-  public void incInt(String name, int delta);
-
-  /**
-   * Increments the value of the identified statistic of type <code>long</code>
-   * by the given amount.
-   *
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   *
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public void incLong(int id, long delta);
-
-  /**
-   * Increments the value of the described statistic of type <code>long</code>
-   * by the given amount.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with the given <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>long</code>.
-   */
-  public void incLong(StatisticDescriptor descriptor, long delta);
-  /**
-   * Increments the value of the statistic of type <code>long</code> with
-   * the given name by a given amount.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with name <code>name</code> or
-   *         if the statistic named <code>name</code> is not of
-   *         type <code>long</code>.
-   */
-  public void incLong(String name, long delta);
-
-  /**
-   * Increments the value of the identified statistic of type <code>double</code>
-   * by the given amount.
-   *
-   * @param id a statistic id obtained with {@link #nameToId}
-   * or {@link StatisticsType#nameToId}.
-   *
-   * @throws ArrayIndexOutOfBoundsException
-   *         If the id is invalid.
-   */
-  public void incDouble(int id, double delta);
-
-  /**
-   * Increments the value of the described statistic of type <code>double</code>
-   * by the given amount.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with the given <code>descriptor</code> or
-   *         if the described statistic is not of
-   *         type <code>double</code>.
-   */
-  public void incDouble(StatisticDescriptor descriptor, double delta);
-  /**
-   * Increments the value of the statistic of type <code>double</code> with
-   * the given name by a given amount.
-   *
-   * @throws IllegalArgumentException
-   *         If no statistic exists with name <code>name</code> or
-   *         if the statistic named <code>name</code> is not of
-   *         type <code>double</code>.
-   */
-  public void incDouble(String name, double delta);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsFactory.java
deleted file mode 100644
index 57b5a11..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsFactory.java
+++ /dev/null
@@ -1,154 +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;
-
-//import com.gemstone.gemfire.distributed.DistributedSystem;
-//import com.gemstone.gemfire.internal.StatArchiveFormat;
-//import java.io.IOException;
-//import java.io.Reader;
-
-/**
- * Instances of this interface provide methods that create instances
- * of {@link Statistics}.
- * It can also be used to create instances of {@link StatisticDescriptor}
- * and {@link StatisticsType} because it implements {@link StatisticsTypeFactory}.
- * {@link
- * com.gemstone.gemfire.distributed.DistributedSystem} is the only
- * instance of this interface.
- *
- * <P>
- *
- * A <code>StatisticsFactory</code> can create a {@link
- * StatisticDescriptor statistic} of three numeric types:
- * <code>int</code>, <code>long</code>, and <code>double</code>.  A
- * statistic (<code>StatisticDescriptor</code>) can either be a
- * <I>gauge</I> meaning that its value can increase and decrease or a
- * <I>counter</I> meaning that its value is strictly increasing.
- * Marking a statistic as a counter allows statistic display tools
- * to properly display a statistics whose value "wraps around" (that
- * is, exceeds its maximum value).
- * 
- * <P>The following code is an example of how to create a type using the api.
- * In this example the type has two stats whose values always increase:
- * <pre>
-    StatisticsFactory f = ...;
-    StatisticsType t = f.createType(
-        "StatSampler",
-        "Stats on the statistic sampler.",
-        new StatisticDescriptor[] {
-            f.createIntCounter("sampleCount",
-                               "Total number of samples taken by this sampler.",
-                               "samples"),
-            f.createLongCounter("sampleTime",
-                                "Total amount of time spent taking samples.",
-                                "milliseconds"),
-        }
-    );
-    this.samplerStats = f.createStatistics(t, "statSampler");
-    this.sampleCountId = this.samplerStats.nameToId("sampleCount");
-    this.sampleTimeId = this.samplerStats.nameToId("sampleTime");
- * </pre>
- * Later on the stat ids can be used to increment the stats:
- * <pre>
-    this.samplerStats.incInt(this.sampleCountId, 1);
-    this.samplerStats.incLong(this.sampleTimeId, nanosSpentWorking / 1000000);
- * </pre>
- * <P>The following is an example of how to create the same type using XML.
- * The XML data:
- * <pre>
-    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
-    &lt;!DOCTYPE statistics PUBLIC
-      "-//GemStone Systems, Inc.//GemFire Statistics Type//EN"
-      "http://www.gemstone.com/dtd/statisticsType.dtd"&gt;
-    &lt;statistics&gt;
-      &lt;type name="StatSampler"&gt;
-        &lt;description&gt;Stats on the statistic sampler.&lt;/description&gt;
-        &lt;stat name="sampleCount" storage="int" counter="true"&gt;
-          &lt;description&gt;Total number of samples taken by this sampler.&lt;/description&gt;
-          &lt;unit&gt;samples&lt;/unit&gt;
-        &lt;/stat&gt;
-        &lt;stat name="sampleTime" storage="long" counter="true"&gt;
-          &lt;description&gt;Total amount of time spent taking samples.&lt;/description&gt;
-          &lt;unit&gt;milliseconds&lt;/unit&gt;
-        &lt;/stat&gt;
-      &lt;/type&gt;
-    &lt;/statistics&gt;
- * </pre>
- * The code to create the type:
- * <pre>
-      StatisticsFactory f = ...;
-      Reader r = new InputStreamReader("fileContainingXmlData"));
-      StatisticsType type = f.createTypesFromXml(r)[0];
- * </pre>
- * <P>
- * @see <A href="package-summary.html#statistics">Package introduction</A>
- *
- * @author Darrel Schneider
- *
- * @since 3.0
- */
-public interface StatisticsFactory extends StatisticsTypeFactory {
-  /**
-   * Creates and returns a {@link Statistics} instance of the given {@link StatisticsType type} with default ids.
-   * <p>
-   * The created instance may not be {@link Statistics#isAtomic atomic}.
-   */
-  public Statistics createStatistics(StatisticsType type);
-  /**
-   * Creates and returns a {@link Statistics} instance of the given {@link StatisticsType type}, <code>textId</code>, and with a default numeric id.
-   * <p>
-   * The created instance may not be {@link Statistics#isAtomic atomic}.
-   */
-  public Statistics createStatistics(StatisticsType type, String textId);
-  /**
-   * Creates and returns a {@link Statistics} instance of the given {@link StatisticsType type}, <code>textId</code>, and <code>numericId</code>.
-   * <p>
-   * The created instance may not be {@link Statistics#isAtomic atomic}.
-   */
-  public Statistics createStatistics(StatisticsType type, String textId, long numericId);
-
-  /**
-   * Creates and returns a {@link Statistics} instance of the given {@link StatisticsType type} with default ids.
-   * <p>
-   * The created instance will be {@link Statistics#isAtomic atomic}.
-   */
-  public Statistics createAtomicStatistics(StatisticsType type);
-  /**
-   * Creates and returns a {@link Statistics} instance of the given {@link StatisticsType type}, <code>textId</code>, and with a default numeric id.
-   * <p>
-   * The created instance will be {@link Statistics#isAtomic atomic}.
-   */
-  public Statistics createAtomicStatistics(StatisticsType type, String textId);
-  /**
-   * Creates and returns a {@link Statistics} instance of the given {@link StatisticsType type}, <code>textId</code>, and <code>numericId</code>.
-   * <p>
-   * The created instance will be {@link Statistics#isAtomic atomic}.
-   */
-  public Statistics createAtomicStatistics(StatisticsType type, String textId, long numericId);
-  /**
-   * Returns an array of all the existing statistics of the given type.
-   */
-  public Statistics[] findStatisticsByType(StatisticsType type);
-  /**
-   * Returns an array of all the existing statistics with the given textId.
-   */
-  public Statistics[] findStatisticsByTextId(String textId);
-  /**
-   * Returns an array of all the existing statistics with the given numericId.
-   */
-  public Statistics[] findStatisticsByNumericId(long numericId);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsType.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsType.java b/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsType.java
deleted file mode 100644
index a372e14..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsType.java
+++ /dev/null
@@ -1,72 +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;
-
-//import com.gemstone.gemfire.internal.Assert;
-//import java.io.*;
-//import java.util.*;
-
-/**
- * Used to describe a logical collection of statistics. These descriptions
- * are used to create an instance of {@link Statistics}.
- *
- * <P>
- * To get an instance of this interface use an instance of
- * {@link StatisticsFactory}.
- *
- * @author Darrel Schneider
- *
- * @since 3.0
- */
-public interface StatisticsType {
-
-  /**
-   * Returns the name of this statistics type
-   */
-  public String getName();
-
-  /**
-   * Returns a description of this statistics type
-   */
-  public String getDescription();
-
-  /**
-   * Returns descriptions of the statistics that this statistics type
-   * gathers together
-   */
-  public StatisticDescriptor[] getStatistics();
-
-  /**
-   * Returns the id of the statistic with the given name in this
-   * statistics instance.
-   *
-   * @throws IllegalArgumentException
-   *         No statistic named <code>name</code> exists in this
-   *         statistics instance.
-   */
-  public int nameToId(String name);
-  /**
-   * Returns the descriptor of the statistic with the given name in this
-   * statistics instance.
-   *
-   * @throws IllegalArgumentException
-   *         No statistic named <code>name</code> exists in this
-   *         statistics instance.
-   */
-  public StatisticDescriptor nameToDescriptor(String name);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsTypeFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsTypeFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsTypeFactory.java
deleted file mode 100644
index fabe9b1..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticsTypeFactory.java
+++ /dev/null
@@ -1,197 +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;
-
-//import com.gemstone.gemfire.distributed.DistributedSystem;
-import com.gemstone.gemfire.internal.StatArchiveFormat;
-import java.io.IOException;
-import java.io.Reader;
-
-/**
- * Instances of this interface provide methods that create instances
- * of {@link StatisticDescriptor} and {@link StatisticsType}.
- * Every {@link StatisticsFactory} is also a type factory.
- *
- * <P>
- *
- * A <code>StatisticsTypeFactory</code> can create a {@link
- * StatisticDescriptor statistic} of three numeric types:
- * <code>int</code>, <code>long</code>, and <code>double</code>.  A
- * statistic (<code>StatisticDescriptor</code>) can either be a
- * <I>gauge</I> meaning that its value can increase and decrease or a
- * <I>counter</I> meaning that its value is strictly increasing.
- * Marking a statistic as a counter allows statistic display tools
- * to properly display a statistics whose value "wraps around" (that
- * is, exceeds its maximum value).
- * 
- * <P>The following code is an example of how to create a type using XML.
- * In this example the type has two stats whose values always increase:
- * <pre>
-    StatisticsTypeFactory f = ...;
-    StatisticsType t = f.createType(
-        "StatSampler",
-        "Stats on the statistic sampler.",
-        new StatisticDescriptor[] {
-            f.createIntCounter("sampleCount",
-                               "Total number of samples taken by this sampler.",
-                               "samples"),
-            f.createLongCounter("sampleTime",
-                                "Total amount of time spent taking samples.",
-                                "milliseconds"),
-        }
-    );
- * </pre>
- * <P>The following is an example of how to create the same type using XML.
- * The XML data:
- * <pre>
-    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
-    &lt;!DOCTYPE statistics PUBLIC
-      "-//GemStone Systems, Inc.//GemFire Statistics Type//EN"
-      "http://www.gemstone.com/dtd/statisticsType.dtd"&gt;
-    &lt;statistics&gt;
-      &lt;type name="StatSampler"&gt;
-        &lt;description&gt;Stats on the statistic sampler.&lt;/description&gt;
-        &lt;stat name="sampleCount" storage="int" counter="true"&gt;
-          &lt;description&gt;Total number of samples taken by this sampler.&lt;/description&gt;
-          &lt;unit&gt;samples&lt;/unit&gt;
-        &lt;/stat&gt;
-        &lt;stat name="sampleTime" storage="long" counter="true"&gt;
-          &lt;description&gt;Total amount of time spent taking samples.&lt;/description&gt;
-          &lt;unit&gt;milliseconds&lt;/unit&gt;
-        &lt;/stat&gt;
-      &lt;/type&gt;
-    &lt;/statistics&gt;
- * </pre>
- * The code to create the type:
- * <pre>
-      StatisticsTypeFactory f = ...;
-      Reader r = new InputStreamReader("fileContainingXmlData"));
-      StatisticsType type = f.createTypesFromXml(r)[0];
- * </pre>
- * <P>
- * @see <A href="package-summary.html#statistics">Package introduction</A>
- *
- * @author Darrel Schneider
- *
- * @since 3.0
- */
-public interface StatisticsTypeFactory {
-
-  /**
-   * Creates and returns an int counter {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>units</code>,
-   * and with larger values indicating better performance.
-   */
-  public StatisticDescriptor createIntCounter(String name, String description,
-                                              String units);
-  /**
-   * Creates and returns a long counter {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>units</code>,
-   * and with larger values indicating better performance.
-   */
-  public StatisticDescriptor createLongCounter(String name, String description,
-                                               String units);
-  /**
-   * Creates and returns a double counter {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>units</code>,
-   * and with larger values indicating better performance.
-   */
-  public StatisticDescriptor createDoubleCounter(String name, String description,
-                                               String units);
-  /**
-   * Creates and returns an int gauge {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>units</code>,
-   * and with smaller values indicating better performance.
-   */
-  public StatisticDescriptor createIntGauge(String name, String description,
-                                              String units);
-  /**
-   * Creates and returns a long gauge {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>units</code>,
-   * and with smaller values indicating better performance.
-   */
-  public StatisticDescriptor createLongGauge(String name, String description,
-                                               String units);
-  /**
-   * Creates and returns a double gauge {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>units</code>,
-   * and with smaller values indicating better performance.
-   */
-  public StatisticDescriptor createDoubleGauge(String name, String description,
-                                               String units);
-
-  /**
-   * Creates and returns an int counter {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>largerBetter</code>, and <code>units</code>.
-   */
-  public StatisticDescriptor createIntCounter(String name, String description,
-                                              String units, boolean largerBetter);
-  /**
-   * Creates and returns a long counter {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>largerBetter</code>, and <code>units</code>.
-   */
-  public StatisticDescriptor createLongCounter(String name, String description,
-                                               String units, boolean largerBetter);
-  /**
-   * Creates and returns a double counter {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>largerBetter</code>, and <code>units</code>.
-   */
-  public StatisticDescriptor createDoubleCounter(String name, String description,
-                                               String units, boolean largerBetter);
-  /**
-   * Creates and returns an int gauge {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>largerBetter</code>, and <code>units</code>.
-   */
-  public StatisticDescriptor createIntGauge(String name, String description,
-                                              String units, boolean largerBetter);
-  /**
-   * Creates and returns a long gauge {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>largerBetter</code>, and <code>units</code>.
-   */
-  public StatisticDescriptor createLongGauge(String name, String description,
-                                               String units, boolean largerBetter);
-  /**
-   * Creates and returns a double gauge {@link StatisticDescriptor} with the given <code>name</code>, <code>description</code>, <code>largerBetter</code>, and <code>units</code>.
-   */
-  public StatisticDescriptor createDoubleGauge(String name, String description,
-                                               String units, boolean largerBetter);
-
-
-  /**
-   * The maximum number of descriptors a single statistics type can have.
-   * <P> Current value is: <code>254</code>
-   */
-  public final int MAX_DESCRIPTORS_PER_TYPE = StatArchiveFormat.ILLEGAL_STAT_OFFSET-1;
-
-  /**
-   * Creates or finds and returns a {@link StatisticsType} with the given <code>name</code>, <code>description</code>, and {@link StatisticDescriptor statistic descriptions}.
-   * @throws IllegalArgumentException if a type with the given <code>name</code> already exists and it differs from the given parameters.
-   */
-  public StatisticsType createType(String name, String description,
-                                   StatisticDescriptor[] stats);
-  /**
-   * Finds and returns an already created {@link StatisticsType} with the given <code>name</code>. Returns <code>null</code> if the type does not exist.
-   */
-  public StatisticsType findType(String name);
-
-  /**
-   * Creates one or more {@link StatisticsType} from the contents of the
-   * given <code>reader</code>. The created types can be found by calling
-   * {@link #findType}.
-   *
-   * @param reader
-   *        The source of the XML data which must comply with the
-   *        <code>statisticsType.dtd</code>.
-   *
-   * @throws IllegalArgumentException if a type defined in the reader
-   *  already exists
-   * @throws IOException
-   *         Something went wrong while reading from
-   *         <code>reader</code> 
-   */
-  public StatisticsType[] createTypesFromXml(Reader reader)
-    throws IOException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/SystemConnectException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/SystemConnectException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/SystemConnectException.java
deleted file mode 100644
index 01636d3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/SystemConnectException.java
+++ /dev/null
@@ -1,42 +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;
-
-/**
- * An <code>SystemConnectException</code> is thrown when a
- * GemFire application tries to connect to an
- * existing distributed system and is unable to contact all members of
- * the distributed system to announce its presence.  This is usually due
- * to resource depletion problems (low memory or too few file descriptors)
- * in other processes.
- */
-public class SystemConnectException extends GemFireException {
-private static final long serialVersionUID = -7378174428634468238L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>SystemConnectException</code>.
-   */
-  public SystemConnectException(String message) {
-    super(message);
-  }
-  
-  public SystemConnectException(String message, Throwable cause) {
-    super(message, cause);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/SystemFailure.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/SystemFailure.java b/gemfire-core/src/main/java/com/gemstone/gemfire/SystemFailure.java
deleted file mode 100644
index 1775063..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/SystemFailure.java
+++ /dev/null
@@ -1,1239 +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;
-
-import com.gemstone.gemfire.internal.SystemFailureTestHook;
-import com.gemstone.gemfire.internal.admin.remote.RemoteGfManagerAgent;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * Catches and responds to JVM failure
- * <p>
- * This class represents a catastrophic failure of the system,
- * especially the Java virtual machine.  Any class may,
- * at any time, indicate that a system failure has occurred by calling
- * {@link #initiateFailure(Error)} (or, less commonly,
- * {@link #setFailure(Error)}).
- * <p>
- * In practice, the most common type of failure that is likely to be
- * reported by an otherwise healthy JVM is {@link OutOfMemoryError}.  However,
- * GemFire will report any occurrence of {@link VirtualMachineError} as
- * a JVM failure.
- * <p>
- * When a failure is reported, you must assume that the JVM has <em>broken 
- * its fundamental execution contract</em> with your application. 
- * No programming invariant can be assumed to be true, and your 
- * entire application must be regarded as corrupted.
- * <h1>Failure Hooks</h1>
- * GemFire uses this class to disable its distributed system (group
- * communication) and any open caches.  It also provides a hook for you
- * to respond to after GemFire disables itself.
- * <h1>Failure WatchDog</h1>
- * When {@link #startThreads()} is called, a "watchdog" {@link Thread} is started that 
- * periodically checks to see if system corruption has been reported.  When 
- * system corruption is detected, this thread proceeds to:
- * <p>
- * <ol>
- * <li>
- * <em>Close GemFire</em> -- Group communication is ceased (this cache
- * member recuses itself from the distributed system) and the cache
- * is further poisoned (it is pointless to try to cleanly close it at this
- * point.).
- * <p>
- * After this has successfully ended, we launch a
- * </li>
- * <li>
- * <em>failure action</em>, a user-defined Runnable
- * {@link #setFailureAction(Runnable)}.
- * By default, this Runnable performs nothing.  If you feel you need to perform
- * an action before exiting the JVM, this hook gives you a
- * means of attempting some action.  Whatever you attempt should be extremely
- * simple, since your Java execution environment has been corrupted.
- * <p>
- * GemStone recommends that you employ 
- * <a href="http://wrapper.tanukisoftware.org/doc/english/introduction.html">
- * Java Service Wrapper</a> to detect when your JVM exits and to perform
- * appropriate failure and restart actions.
- * </li>
- * <li>
- * Finally, if the application has granted the watchdog permission to exit the JVM
- * (via {@link #setExitOK(boolean)}), the watchdog calls {@link System#exit(int)} with
- * an argument of 1.  If you have not granted this class permission to
- * close the JVM, you are <em>strongly</em>  advised to call it in your
- * failure action (in the previous step).
- * </li>
- * </ol>
- * <p> 
- * Each of these actions will be run exactly once in the above described
- * order.  However, if either step throws any type of error ({@link Throwable}), 
- * the watchdog will assume that the JVM is still under duress (esp. an 
- * {@link OutOfMemoryError}), will wait a bit, and then retry the failed action.
- * <p>
- * It bears repeating that you should be very cautious of any Runnables you
- * ask this class to run.  By definition the JVM is <em>very sick</em>
- * when failure has been signalled.  
- * <p>
- * <h1>Failure Proctor</h1>
- * In addition to the failure watchdog, {@link #startThreads()} creates a second
- * thread (the "proctor") that monitors free memory. It does this by examining
- * {@link Runtime#freeMemory() free memory},  
- * {@link Runtime#totalMemory() total memory} and 
- * {@link Runtime#maxMemory() maximum memory}.  If the amount of available 
- * memory stays below a given 
- * {@link #setFailureMemoryThreshold(long) threshold}, for
- * more than {@link #WATCHDOG_WAIT} seconds, the watchdog is notified.
- * <p>
- * Note that the proctor can be effectively disabled by
- * {@link SystemFailure#setFailureMemoryThreshold(long) setting} the failure memory threshold
- * to a negative value.
- * <p>
- * The proctor is a second line of defense, attempting to detect 
- * OutOfMemoryError conditions in circumstances where nothing alerted the
- * watchdog.  For instance, a third-party jar might incorrectly handle this
- * error and leave your virtual machine in a "stuck" state.
- * <p>
- * Note that the proctor does not relieve you of the obligation to
- * follow the best practices in the next section.
- * <h1>Best Practices</h1>
- * <h2>Catch and Handle VirtualMachineError</h2>
- * If you feel obliged to catch <em>either</em> {@link Error}, or 
- * {@link Throwable}, you <em>must</em>also check for 
- * {@link VirtualMachineError} like so:
- * <p>
- * <pre>
-        catch (VirtualMachineError err) {
-          SystemFailure.{@link #initiateFailure(Error) initiateFailure}(err);
-          // If this ever returns, rethrow the error.  We're poisoned
-          // now, so don't let this thread continue.
-          throw err;
-        }
- * </pre>
- * <h2>Periodically Check For Errors</h2>
- * Check for serious system errors at
- * appropriate points in your algorithms.  You may elect to use
- * the {@link #checkFailure()} utility function, but you are
- * not required to (you could just see if {@link SystemFailure#getFailure()}
- * returns a non-null result).  
- * <p>
- * A job processing loop is a good candidate, for
- * instance, in com.gemstone.org.jgroups.protocols.UDP#run(), 
- * which implements {@link Thread#run}:
- * <p>
- * <pre>
-         for (;;)  {
-           SystemFailure.{@link #checkFailure() checkFailure}();
-           if (mcast_recv_sock == null || mcast_recv_sock.isClosed()) break;
-           if (Thread.currentThread().isInterrupted()) break;
-          ...
- * </pre>
- * <h2>Create Logging ThreadGroups</h2>
- * If you create any Thread, a best practice is to catch severe errors
- * and signal failure appropriately.  One trick to do this is to create a 
- * ThreadGroup that handles uncaught exceptions by overriding 
- * {@link ThreadGroup#uncaughtException(Thread, Throwable)} and to declare 
- * your thread as a member of that {@link ThreadGroup}.  This also has a 
- * significant side-benefit in that most uncaught exceptions 
- * can be detected:
- * <p>
- * <pre>
-    ThreadGroup tg = new ThreadGroup("Worker Threads") {
-        public void uncaughtException(Thread t, Throwable e) {
-          // Do this *before* any object allocation in case of
-          // OutOfMemoryError (for instance)
-          if (e instanceof VirtualMachineError) {
-            SystemFailure.{@link #setFailure(Error) setFailure}((VirtualMachineError)e); // don't throw
-          }
-          String s = "Uncaught exception in thread " + t;
-          system.getLogWriter().severe(s, e);
-        }
-        Thread t = new Thread(myRunnable, tg, "My Thread");
-        t.start();
-      }; * </pre>
- * <p>
-  * <h2>Catches of Error and Throwable Should Check for Failure</h2>
-  * Keep in mind that peculiar or flat-out<em>impossible</em>  exceptions may 
-  * ensue after a VirtualMachineError has been thrown <em>anywhere</em> in
-  * your virtual machine. Whenever you catch {@link Error} or {@link Throwable}, 
-  * you should also make sure that you aren't dealing with a corrupted JVM:
-  * <p>
-  * <pre>
-        catch (Throwable t) {
-          // Whenever you catch Error or Throwable, you must also
-          // catch VirtualMachineError (see above).  However, there is
-          // _still_ a possibility that you are dealing with a cascading
-          // error condition, so you also need to check to see if the JVM
-          // is still usable:
-          SystemFailure.{@link #checkFailure() checkFailure}();
-          ...
-        }
- * </pre>
- * @author jpenney
- * @since 5.1
- */
-@edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DM_GC", justification="This class performs System.gc as last ditch effort during out-of-memory condition.") 
-public final class SystemFailure {
-
-  /**
-   * Time to wait during stopWatchdog and stopProctor. Not final
-   * for tests
-   */
-  static int SHUTDOWN_WAIT = 1000;
-  /**
-   * Preallocated error messages\
-   * LocalizedStrings may use memory (in the form of an iterator)
-   * so we must get the translated messages in advance.
-   **/
-   static final String JVM_CORRUPTION = LocalizedStrings.SystemFailure_JVM_CORRUPTION_HAS_BEEN_DETECTED.toLocalizedString();
-   static final String CALLING_SYSTEM_EXIT = LocalizedStrings.SystemFailure_SINCE_THIS_IS_A_DEDICATED_CACHE_SERVER_AND_THE_JVM_HAS_BEEN_CORRUPTED_THIS_PROCESS_WILL_NOW_TERMINATE_PERMISSION_TO_CALL_SYSTEM_EXIT_INT_WAS_GIVEN_IN_THE_FOLLOWING_CONTEXT.toLocalizedString();
-   public static final String DISTRIBUTION_HALTED_MESSAGE = LocalizedStrings.SystemFailure_DISTRIBUTION_HALTED_DUE_TO_JVM_CORRUPTION.toLocalizedString();
-   public static final String DISTRIBUTED_SYSTEM_DISCONNECTED_MESSAGE = LocalizedStrings.SystemFailure_DISTRIBUTED_SYSTEM_DISCONNECTED_DUE_TO_JVM_CORRUPTION.toLocalizedString();
-
-  /**
-   * the underlying failure
-   * 
-   * This is usually an instance of {@link VirtualMachineError}, but it
-   * is not required to be such.
-   * 
-   * @see #getFailure()
-   * @see #initiateFailure(Error)
-   */
-  protected static volatile Error failure = null;
-  
-  /**
-   * user-defined runnable to run last
-   * 
-   * @see #setFailureAction(Runnable)
-   */
-  private static volatile Runnable failureAction = new Runnable() {
-    public void run() {
-      System.err.println(JVM_CORRUPTION);
-      failure.printStackTrace();
-    }
-  };
-  
-  /**
-   * @see #setExitOK(boolean)
-   */
-  private static volatile boolean exitOK = false;
-  
-  /**
-   * If we're going to exit the JVM, I want to be accountable for who
-   * told us it was OK.
-   */
-  private static volatile Throwable exitExcuse;
-  
-  /**
-   * Indicate whether it is acceptable to call {@link System#exit(int)} after
-   * failure processing has completed.
-   * <p>
-   * This may be dynamically modified while the system is running.
-   * 
-   * @param newVal true if it is OK to exit the process
-   * @return the previous value
-   */
-  public static boolean setExitOK(boolean newVal) {
-    boolean result = exitOK;
-    exitOK = newVal;
-    if (exitOK) {
-      exitExcuse = new Throwable("SystemFailure exitOK set");
-    }
-    else {
-      exitExcuse = null;
-    }
-    return result;
-  }
-  
-  //merge42180: Added this method while merging 42180. It should have already be here through different merges or will come later
-  /**
-   * Returns true if the given Error is a fatal to the JVM and it should be shut
-   * down. Code should call {@link #initiateFailure(Error)} or
-   * {@link #setFailure(Error)} if this returns true.
-   */
-  public static boolean isJVMFailureError(Error err) {
-    // all VirtualMachineErrors are not fatal to the JVM, in particular
-    // StackOverflowError is not
-    return err instanceof OutOfMemoryError || err instanceof UnknownError;
-  }
-  /**
-   * Disallow instance creation
-   */
-  private SystemFailure() {
-    
-  }
-  
-  /**
-   * Synchronizes access to state variables, used to notify the watchdog
-   * when to run
-   * 
-   * @see #notifyWatchDog()
-   * @see #startProctor()
-   * @see #startWatchDog()
-   */
-  private static final Object failureSync = new Object();
-  
-  /**
-   * True if we have closed GemFire
-   * 
-   * @see #emergencyClose()
-   */
-  private static volatile boolean gemfireCloseCompleted = false;
-
-  /**
-   * True if we have completed the user-defined failure action
-   * 
-   * @see #setFailureAction(Runnable)
-   */
-  private static volatile  boolean failureActionCompleted = false;
-
-  /**
-   * This is a logging ThreadGroup, created only once.
-   */
-  private final static ThreadGroup tg;
-  static {
-    tg = new ThreadGroup("SystemFailure Watchdog Threads") {
-      // If the watchdog is correctly written, this will never get executed.
-      // However, there's no reason for us not to eat our own dog food
-      // (har, har) -- see the javadoc above.
-      @Override
-      public void uncaughtException(Thread t, Throwable e) {
-        // Uhhh...if the watchdog is running, we *know* there's some
-        // sort of serious error, no need to check for it here.
-        System.err.println("Internal error in SystemFailure watchdog:" + e);
-        e.printStackTrace();
-      }
-      };  
-    }
-  
-  /**
-   * This is the amount of time, in seconds, the watchdog periodically awakens
-   * to see if the system has been corrupted.
-   * <p>
-   * The watchdog will be explicitly awakened by calls to
-   * {@link #setFailure(Error)} or {@link #initiateFailure(Error)}, but
-   * it will awaken of its own accord periodically to check for failure even
-   * if the above calls do not occur.
-   * <p>
-   * This can be set with the system property 
-   * <code>gemfire.WATCHDOG_WAIT</code>. The default is 15 sec.
-   */
-  static public final int WATCHDOG_WAIT = Integer
-      .getInteger("gemfire.WATCHDOG_WAIT", 15).intValue();
-  
-  /**
-   * This is the watchdog thread
-   * 
-   * @guarded.By {@link #failureSync}
-   */
-  private static Thread watchDog;
-  
-  private static boolean isCacheClosing = false;
-
-  /**
-   * Should be invoked when GemFire cache is being created. 
-   */
-  public static void signalCacheCreate() {
-    isCacheClosing = false;
-  }
-
-  /**
-   * Should be invoked when GemFire cache is closing or closed. 
-   */
-  public static void signalCacheClose() {
-    isCacheClosing = true;
-    if (proctor != null) {
-      proctor.interrupt();
-    }
-    if (watchDog != null) {
-      watchDog.interrupt();
-    }
-  }
-
-  /**
-   * Start the watchdog thread, if it isn't already running.
-   */
-  private static void startWatchDog() {
-    if (failureActionCompleted) {
-      // Our work is done, don't restart
-      return;
-    }
-    synchronized (failureSync) {
-      if (watchDog != null && watchDog.isAlive()) {
-        return;
-      }
-      watchDog = new Thread(tg, new Runnable() {
-        public void run() {
-          runWatchDog();
-        }
-      }, "SystemFailure WatchDog");
-      watchDog.setDaemon(true);
-      watchDog.start();
-    }
-  }
-  
-  private static void stopWatchDog() {
-    Thread watchDogSnapshot = null;
-    synchronized (failureSync) {
-      stopping = true;
-      if (watchDog != null && watchDog.isAlive()) {
-        failureSync.notifyAll();
-        watchDogSnapshot = watchDog;
-      }
-    }
-    if(watchDogSnapshot != null) {
-      try {
-        watchDogSnapshot.join(100);
-      } catch (InterruptedException ignore) {
-      }
-      if (watchDogSnapshot.isAlive()) {
-        watchDogSnapshot.interrupt();
-        try {
-          watchDogSnapshot.join(SHUTDOWN_WAIT);
-        } catch (InterruptedException ignore) {
-        }
-      }
-    }
-  }
-  
-  /**
-   * This is the run loop for the watchdog thread.
-   */
-  static protected void runWatchDog() {
-    
-    boolean warned = false;
-    
-    logFine(WATCHDOG_NAME, "Starting");
-    try {
-      basicLoadEmergencyClasses();
-    }
-    catch (ExceptionInInitializerError e) {
-      // Uhhh...are we shutting down?
-      boolean noSurprise = false;
-      Throwable cause = e.getCause();
-      if (cause != null) {
-        if (cause instanceof IllegalStateException) {
-          String msg = cause.getMessage();
-          if (msg.indexOf("Shutdown in progress") >= 0) {
-            noSurprise = true;
-          }
-        }
-      }
-      if (!noSurprise) {
-        logWarning(WATCHDOG_NAME, "Unable to load GemFire classes: ", e);
-      }
-      // In any event, we're toast
-      return;
-    }
-    catch (CancelException e) {
-      // ignore this because we are shutting down anyway
-    }
-    catch (Throwable t) {
-      logWarning(WATCHDOG_NAME, "Unable to initialize watchdog", t);
-      return;
-    }
-    for (;;) {
-      if (stopping) {
-        return;
-      }
-      try {
-        if (isCacheClosing) {
-          break;
-        }
-        // Sleep or get notified...
-        synchronized (failureSync) {
-          if (stopping) {
-            return;
-          }
-         logFine(WATCHDOG_NAME, "Waiting for disaster");
-          try {
-            failureSync.wait(WATCHDOG_WAIT * 1000); 
-          }
-          catch (InterruptedException e) {
-            // Ignore
-          }
-          if (stopping) {
-            return;
-          }
-        }
-        // Poke nose in the air, take a sniff...
-        
-        if (failureActionCompleted) {
-          // early out, for testing
-          logInfo(WATCHDOG_NAME, "all actions completed; exiting");
-        }
-        if (failure == null) {
-          // Tail wag.  Go back to sleep.
-          logFine(WATCHDOG_NAME, "no failure detected");
-          continue;
-        }
-        // BOW WOW WOW WOW WOW!  Corrupted system.
-        if (!warned ) {
-          warned = logWarning(WATCHDOG_NAME, "failure detected", failure);
-        }
-        
-        // If any of the following fail, we will go back to sleep and
-        // retry.
-        if (!gemfireCloseCompleted) {
-          logInfo(WATCHDOG_NAME, "closing GemFire");
-          try {
-            emergencyClose();
-          }
-          catch (Throwable t) {
-            logWarning(WATCHDOG_NAME, "trouble closing GemFire", t);
-            continue; // go back to sleep
-          }
-          gemfireCloseCompleted = true;
-        }
-        
-        if (!failureActionCompleted) {
-          // avoid potential race condition setting the runnable
-          Runnable r = failureAction;
-          if (r != null) {
-            logInfo(WATCHDOG_NAME, "running user's runnable");
-            try {
-              r.run();
-            }
-            catch (Throwable t) {
-              logWarning(WATCHDOG_NAME, "trouble running user's runnable", t);
-              continue; // go back to sleep
-            }
-          }
-          failureActionCompleted = true;
-        }
-        
-        stopping = true;
-        stopProctor();
-        
-        if (exitOK) {
-          logWarning(WATCHDOG_NAME,
-              // No "+" in this long message, we're out of memory!
-              CALLING_SYSTEM_EXIT,
-              exitExcuse);
-          
-          // ATTENTION: there are VERY FEW places in GemFire where it is
-          // acceptable to call System.exit.  This is one of those
-          // places...
-          System.exit(1);
-        }
-
-
-        // Our job here is done
-        logInfo(WATCHDOG_NAME, "exiting");
-        return;
-      }
-      catch (Throwable t) {
-        // We *never* give up. NEVER EVER!
-        logWarning(WATCHDOG_NAME, "thread encountered a problem: " + t, t);
-      }
-    } // for
-  }
-  
-  /**
-   * Spies on system statistics looking for low memory threshold
-   * 
-   * Well, if you're gonna have a watchdog, why not a watch CAT????
-   * 
-   * @guarded.By {@link #failureSync}
-   * @see #minimumMemoryThreshold
-   */
-  private static Thread proctor;
-
-  /**
-   * This mutex controls access to {@link #firstStarveTime} and
-   * {@link #minimumMemoryThreshold}.
-   * <p>
-   * I'm hoping that a fat lock is never created here, so that
-   * an object allocation isn't necessary to acquire this
-   * mutex.  You'd have to have A LOT of contention on this mutex
-   * in order for a fat lock to be created, which indicates IMHO
-   * a serious problem in your applications.
-   */
-  private static final Object memorySync = new Object();
-  
-  /**
-   * This is the minimum amount of memory that the proctor will
-   * tolerate before declaring a system failure.
-   * 
-   * @see #setFailureMemoryThreshold(long)
-   * @guarded.By {@link #memorySync}
-   */
-  static long minimumMemoryThreshold = Long.getLong(
-      "gemfire.SystemFailure.chronic_memory_threshold", 1048576).longValue();
-  
-  /**
-   * This is the interval, in seconds, that the proctor
-   * thread will awaken and poll system free memory.
-   * 
-   * The default is 1 sec.  This can be set using the system property
-   * <code>gemfire.SystemFailure.MEMORY_POLL_INTERVAL</code>.
-   * 
-   * @see #setFailureMemoryThreshold(long)
-   */
-  static final public long MEMORY_POLL_INTERVAL = Long.getLong(
-      "gemfire.SystemFailure.MEMORY_POLL_INTERVAL", 1).longValue();
-  
-  /**
-   * This is the maximum amount of time, in seconds, that the proctor thread
-   * will tolerate seeing free memory stay below
-   * {@link #setFailureMemoryThreshold(long)}, after which point it will 
-   * declare a system failure.
-   * 
-   * The default is 15 sec.  This can be set using the system property
-   * <code>gemfire.SystemFailure.MEMORY_MAX_WAIT</code>.
-   * 
-   * @see #setFailureMemoryThreshold(long)
-   */
-  static final public long MEMORY_MAX_WAIT = Long.getLong(
-      "gemfire.SystemFailure.MEMORY_MAX_WAIT", 15).longValue();
-  
-  /**
-   * Flag that determines whether or not we monitor memory on our own.
-   * If this flag is set, we will check freeMemory, invoke GC if free memory 
-   * gets low, and start throwing our own OutOfMemoryException if 
-   * 
-   * The default is false, so this monitoring is turned off. This monitoring has been found 
-   * to be unreliable in non-Sun VMs when the VM is under stress or behaves in unpredictable ways.
-   *
-   * @since 6.5
-   */
-  static final public boolean MONITOR_MEMORY = Boolean.getBoolean(
-      "gemfire.SystemFailure.MONITOR_MEMORY");
-  
-  /**
-   * Start the proctor thread, if it isn't already running.
-   * 
-   * @see #proctor
-   */
-  private static void startProctor() {
-    if (failure != null) {
-      // no point!
-      notifyWatchDog();
-      return;
-    }
-    synchronized (failureSync) {
-      if (proctor != null && proctor.isAlive()) {
-        return;
-      }
-      proctor = new Thread(tg, new Runnable() {
-        public void run() {
-          runProctor();
-        }
-      }, "SystemFailure Proctor");
-      proctor.setDaemon(true);
-      proctor.start();
-    }
-  }
-  
-  private static void stopProctor() {
-    Thread proctorSnapshot = null;
-    synchronized (failureSync) {
-      stopping = true;
-      proctorSnapshot = proctor;
-    }
-    if (proctorSnapshot != null && proctorSnapshot.isAlive()) {
-      proctorSnapshot.interrupt();
-      try {
-        proctorSnapshot.join(SHUTDOWN_WAIT);
-      } catch (InterruptedException ignore) {
-      }
-    }
-  }
-  
-  /**
-   * Symbolic representation of an invalid starve time
-   */
-  static private final long NEVER_STARVED = Long.MAX_VALUE;
-  
-  /**
-   * this is the last time we saw memory starvation
-   * 
-   * @guarded.By {@link #memorySync}}}
-   */
-  static private long firstStarveTime = NEVER_STARVED;
-  
-  /**
-   * This is the previous measure of total memory.  If it changes,
-   * we reset the proctor's starve statistic.
-   */
-  static private long lastTotalMemory = 0;
-  
-  /**
-   * This is the run loop for the proctor thread (formally known
-   * as the "watchcat" (grin)
-   */
-  static protected void runProctor() {
-    // Note that the javadocs say this can return Long.MAX_VALUE.
-    // If it does, the proctor will never do its job...
-    final long maxMemory = Runtime.getRuntime().maxMemory();
-    
-    // Allocate this error in advance, since it's too late once
-    // it's been detected!
-    final OutOfMemoryError oome = new OutOfMemoryError(LocalizedStrings.SystemFailure_0_MEMORY_HAS_REMAINED_CHRONICALLY_BELOW_1_BYTES_OUT_OF_A_MAXIMUM_OF_2_FOR_3_SEC.toLocalizedString(new Object[] {PROCTOR_NAME, Long.valueOf(minimumMemoryThreshold), Long.valueOf(maxMemory), Integer.valueOf(WATCHDOG_WAIT)}));
-    
-    // Catenation, but should be OK when starting up
-    logFine(PROCTOR_NAME, "Starting, threshold = " + minimumMemoryThreshold 
-        + "; max = " + maxMemory);
-    for (;;) {
-      if (isCacheClosing) {
-        break;
-      }
-      if (stopping) {
-        return;
-      }
-
-      try {
-        //*** catnap...
-        try {
-          Thread.sleep(MEMORY_POLL_INTERVAL * 1000);
-        }
-        catch (InterruptedException e) {
-          // ignore
-        }
-        
-        if (stopping) {
-          return;
-        }
-
-        //*** Twitch ear, take a bath...
-        if (failureActionCompleted) {
-          // it's all over, we're late
-          return;
-        }
-        if (failure != null) {
-          notifyWatchDog(); // wake the dog, just in case
-          logFine(PROCTOR_NAME, "Failure has been reported, exiting");
-          return;
-        }
-        
-        if(!MONITOR_MEMORY) {
-          continue;
-        }
-
-        //*** Sit up, stretch...
-        long totalMemory = Runtime.getRuntime().totalMemory();
-        if (totalMemory < maxMemory) {
-          // We haven't finished growing the heap, so no worries...yet
-          if (DEBUG) {
-            // This message has catenation, we don't want this in
-            // production code :-)
-            logFine(PROCTOR_NAME, "totalMemory (" + totalMemory 
-                + ") < maxMemory (" + maxMemory + ")");
-          }
-          firstStarveTime = NEVER_STARVED;
-          continue;
-        }
-        if (lastTotalMemory < totalMemory) {
-          // Don't get too impatient if the heap just now grew
-          lastTotalMemory = totalMemory; // now we're maxed
-          firstStarveTime = NEVER_STARVED; // reset the clock
-          continue;
-        }
-        lastTotalMemory = totalMemory; // make a note of this
-
-        //*** Hey, is that the food bowl?
-        
-        // At this point, freeMemory really indicates how much
-        // trouble we're in.
-        long freeMemory = Runtime.getRuntime().freeMemory();
-        if(freeMemory==0) {
-          /*
-           * This is to workaround X bug #41821 in JRockit.
-           * Often, Jrockit returns 0 from Runtime.getRuntime().freeMemory()
-           * Allocating this one object and calling again seems to workaround the problem.
-           */
-          new Object();
-          freeMemory = Runtime.getRuntime().freeMemory();
-        }
-        // Grab the threshold and starve time once, under mutex, because
-        // it's publicly modifiable.
-        long curThreshold;
-        long lastStarveTime;
-        synchronized (memorySync) {
-          curThreshold = minimumMemoryThreshold;
-          lastStarveTime = firstStarveTime;
-        }
-        
-        if (freeMemory >= curThreshold /* enough memory */
-            || curThreshold == 0 /* disabled */) {
-          // Memory is FINE, reset everything
-          if (DEBUG) {
-            // This message has catenation, we don't want this in
-            // production code :-)
-            logFine(PROCTOR_NAME, "Current free memory is: " + freeMemory);
-          }
-          
-          if (lastStarveTime != NEVER_STARVED) {
-            logFine(PROCTOR_NAME, "...low memory has self-corrected.");
-          }
-          synchronized (memorySync) {
-            firstStarveTime = NEVER_STARVED;
-          }
-          continue;
-        }
-        // Memory is low
-        
-        //*** Leap to feet, nose down, tail switching...
-        long now = System.currentTimeMillis();
-        if (lastStarveTime == NEVER_STARVED) {
-          // first sighting
-          if (DEBUG) {
-            // Catenation in this message, don't put in production
-            logFine(PROCTOR_NAME, "Noting current memory " + freeMemory 
-                + " is less than threshold " + curThreshold);
-          }
-          else {
-            logWarning(
-                PROCTOR_NAME,
-                "Noting that current memory available is less than the currently designated threshold", null);
-          }
-
-          synchronized (memorySync) {
-            firstStarveTime = now;
-          }
-          System.gc(); // at least TRY...
-          continue;
-        }
-        
-        //*** squirm, wait for the right moment...wait...wait...
-        if (now - lastStarveTime < MEMORY_MAX_WAIT * 1000) {
-          // Very recent; problem may correct itself.
-          if (DEBUG) {
-            // catenation
-            logFine(PROCTOR_NAME, "...memory is still below threshold: "
-                + freeMemory);
-          }
-          else {
-            logWarning(
-                PROCTOR_NAME,
-                "Noting that current memory available is still below currently designated threshold", null);
-
-          }
-          continue;
-        }
-        
-        //*** Meow! Meow! MEOWWWW!!!!!
-        
-        // Like any smart cat, let the Dog do all the work.
-        logWarning(PROCTOR_NAME, "Memory is chronically low; setting failure!", null);
-        SystemFailure.setFailure(oome);
-        notifyWatchDog();
-        return; // we're done!
-      }
-      catch (Throwable t) {
-        logWarning(PROCTOR_NAME, "thread encountered a problem", t);
-        // We *never* give up. NEVER EVER!
-      }
-    } // for
-  }
-  
-  /**
-   * Enables some fine logging
-   */
-  static private final boolean DEBUG = false;
-  
-  /**
-   * If true, we track the progress of emergencyClose
-   * on System.err
-   */
-  static public final boolean TRACE_CLOSE = false;
-  
-  static protected final String WATCHDOG_NAME = "SystemFailure Watchdog";
-  
-  static protected final String PROCTOR_NAME = "SystemFailure Proctor";
-  
-  /**
-   * break any potential circularity in {@link #loadEmergencyClasses()}
-   */
-  private static volatile boolean emergencyClassesLoaded = false;
-  
-  /**
-   * Since it requires object memory to unpack a jar file,
-   * make sure this JVM has loaded the classes necessary for
-   * closure <em>before</em> it becomes necessary to use them.
-   * <p>
-   * Note that just touching the class in order to load it
-   * is usually sufficient, so all an implementation needs
-   * to do is to reference the same classes used in
-   * {@link #emergencyClose()}.  Just make sure to do it while
-   * you still have memory to succeed!
-   */
-  public static void loadEmergencyClasses() {
-    // This method was called to basically load this class
-    // and invoke its static initializers. Now that we don't
-    // use statics to start the threads all we need to do is
-    // call startThreads. The watchdog thread will call basicLoadEmergencyClasses.
-    startThreads();
-  }
-  private static void basicLoadEmergencyClasses() {
-    if (emergencyClassesLoaded) return;
-    emergencyClassesLoaded = true;
-    SystemFailureTestHook.loadEmergencyClasses(); // bug 50516
-    GemFireCacheImpl.loadEmergencyClasses();
-    RemoteGfManagerAgent.loadEmergencyClasses();
-  }
-  
-  /**
-   * Attempt to close any and all GemFire resources.
-   * 
-   * The contract of this method is that it should not
-   * acquire any synchronization mutexes nor create any objects.
-   * <p>
-   * The former is because the system is in an undefined state and
-   * attempting to acquire the mutex may cause a hang.
-   * <p>
-   * The latter is because the likelihood is that we are invoking
-   * this method due to memory exhaustion, so any attempt to create
-   * an object will also cause a hang.
-   * <p>
-   * This method is not meant to be called directly (but, well, I
-   * guess it could).  It is public to document the contract
-   * that is implemented by <code>emergencyClose</code> in other
-   * parts of the system.
-   */
-  public static void emergencyClose() {
-    // Make the cache (more) useless and inaccessible...
-    if (TRACE_CLOSE) {
-      System.err.println("SystemFailure: closing GemFireCache");
-    }
-    GemFireCacheImpl.emergencyClose();
-    
-    // Arcane strange DS's exist in this class:
-    if  (TRACE_CLOSE) {
-      System.err.println("SystemFailure: closing admins");
-    }
-    RemoteGfManagerAgent.emergencyClose();
-    
-    // If memory was the problem, make an explicit attempt at
-    // this point to clean up.
-    
-    System.gc(); //  This will fail if we're out of memory?/
-
-    if (TRACE_CLOSE)  {
-      System.err.println("SystemFailure: end of emergencyClose");
-    }
-  }
-
-  /**
-   * Throw the system failure.
-   * 
-   * This method does not return normally.
-   * <p>
-   * Unfortunately, attempting to create a new Throwable at this
-   * point may cause the thread to hang (instead of generating
-   * another OutOfMemoryError), so we have to make do with whatever
-   * Error we have, instead of wrapping it with one pertinent
-   * to the current context.  See bug 38394.
-   *
-   * @throws Error
-   */
-  static private void throwFailure() throws InternalGemFireError, Error {
-    // Do not return normally...
-    if (failure != null) throw failure;
-  }
-  
-  /**
-   * Notifies the watchdog thread (assumes that {@link #failure} has been set)
-   */
-  private static void notifyWatchDog() {
-    startWatchDog(); // just in case
-    synchronized (failureSync) {
-      failureSync.notifyAll();
-    }
-  }
-  
-  /**
-   * Utility function to check for failures.  If a failure is
-   * detected, this methods throws an AssertionFailure.
-   * 
-   * @see #initiateFailure(Error)
-   * @throws InternalGemFireError if the system has been corrupted
-   * @throws Error if the system has been corrupted and a thread-specific 
-   * AssertionError cannot be allocated
-   */
-  public static void checkFailure() throws InternalGemFireError, Error {
-    if (failure == null) {
-      return;
-    }
-    notifyWatchDog();
-    throwFailure();
-  }
-
-  /**
-   * Signals that a system failure has occurred and then throws an
-   * AssertionError.
-   * 
-   * @param f the failure to set
-   * @throws IllegalArgumentException if f is null
-   * @throws InternalGemFireError always; this method does not return normally.
-   * @throws Error if a thread-specific AssertionError cannot be allocated.
-   */
-  public static void initiateFailure(Error f) throws InternalGemFireError, Error {
-    SystemFailure.setFailure(f);
-    throwFailure();
-  }
-
-  /**
-   * Set the underlying system failure, if not already set.
-   * <p>
-   * This method does not generate an error, and should only be used
-   * in circumstances where execution needs to continue, such as when
-   * re-implementing {@link ThreadGroup#uncaughtException(Thread, Throwable)}.
-   * 
-   * @param failure the system failure
-   * @throws IllegalArgumentException if you attempt to set the failure to null
-   */
-  public static void setFailure(Error failure) {
-    if (failure == null) {
-      throw new IllegalArgumentException(LocalizedStrings.SystemFailure_YOU_ARE_NOT_PERMITTED_TO_UNSET_A_SYSTEM_FAILURE.toLocalizedString());
-    }
-    if (SystemFailureTestHook.errorIsExpected(failure)) {
-      return;
-    }
-    // created (OutOfMemoryError), and no stack frames are created
-    // (StackOverflowError).  There is a slight chance that the
-    // very first error may get overwritten, but this avoids the
-    // potential of object creation via a fat lock
-    SystemFailure.failure = failure;
-    notifyWatchDog();
-  }
-  
-  /**
-   * Returns the catastrophic system failure, if any.
-   * <p>
-   * This is usually (though not necessarily) an instance of
-   * {@link VirtualMachineError}.
-   * <p>
-   * A return value of null indicates that no system failure has yet been
-   * detected.
-   * <p>
-   * Object synchronization can implicitly require object creation (fat locks 
-   * in JRockit for instance), so the underlying value is not synchronized
-   * (it is a volatile). This means the return value from this call is not 
-   * necessarily the <em>first</em> failure reported by the JVM.
-   * <p>
-   * Note that even if it <em>were</em> synchronized, it would only be a 
-   * proximal indicator near the time that the JVM crashed, and may not 
-   * actually reflect the underlying root cause that generated the failure.  
-   * For instance, if your JVM is running short of memory, this Throwable is 
-   * probably an innocent victim and <em>not</em> the actual allocation (or 
-   * series of allocations) that caused your JVM to exhaust memory.
-   * <p>
-   * If this function returns a non-null value, keep in mind that the JVM is
-   * very limited.  In particular, any attempt to allocate objects may fail
-   * if the original failure was an OutOfMemoryError.  
-   * 
-   * @return the failure, if any
-   */
-  public static Error getFailure() {
-    return failure;
-  }
-
-  /**
-   * Sets a user-defined action that is run in the event
-   * that failure has been detected.
-   * <p> 
-   * This action is run <em>after</em> the GemFire cache has been shut down.
-   * If it throws any error, it will be reattempted indefinitely until it
-   * succeeds. This action may be dynamically modified while the system
-   * is running.
-   * <p>
-   * The default action prints the failure stack trace to System.err.
-   * 
-   * @see #initiateFailure(Error)
-   * @param action the Runnable to use
-   * @return the previous action
-   */
-  public static Runnable setFailureAction(Runnable action) {
-    Runnable old = SystemFailure.failureAction;
-    SystemFailure.failureAction = action;
-    return old;
-  }
-
-  /**
-   * Set the memory threshold under which system failure will be
-   * notified. 
-   * 
-   * This value may be dynamically  modified while the system
-   * is running.  The default is 1048576 bytes.  This can be set using the 
-   * system property <code>gemfire.SystemFailure.chronic_memory_threshold</code>.
-   * 
-   * @param newVal threshold in bytes
-   * @return the old threshold
-   * @see Runtime#freeMemory()
-   */
-  public static long setFailureMemoryThreshold(long newVal) {
-    long result;
-    synchronized (memorySync) {
-      result = minimumMemoryThreshold;
-      minimumMemoryThreshold = newVal;
-      firstStarveTime = NEVER_STARVED; // reset
-    }
-    startProctor(); // just in case
-    return result;
-  }
-  
-//  /**
-//   * For use by GemStone Quality Assurance Only
-//   * 
-//   * @deprecated TODO remove this
-//   */
-//  public static void reset() {
-//    System.gc();
-//    logWarning("DJP", "do not commit SystemFailure#reset", null);
-//    failure = null;
-//    failureAction = new Runnable() {
-//      public void run() {
-//        System.err.println("(SystemFailure) JVM corruption has been detected!");
-//        failure.printStackTrace();
-//      }
-//    };
-//    gemfireCloseCompleted = false;
-//    failureActionCompleted = false;
-//    synchronized (failureSync) {
-//      if (watchDog != null) {
-//        watchDog.interrupt();
-//      }
-//      watchDog = null;
-//      if (watchCat != null) {
-//        watchCat.interrupt();
-//      }
-//      watchCat = null;
-//    }
-//
-//    startWatchDog();
-//    startWatchCat();
-//  }
-  
-  static private boolean logStdErr(String kind, String name, String s, Throwable t) {
-    // As far as I can tell, this code path doesn't allocate
-    // any objects!!!!
-    try {
-      System.err.print(name);
-      System.err.print(": [");
-      System.err.print(kind);
-      System.err.print("] ");
-      System.err.println(s);
-      if (t != null) {
-        t.printStackTrace();
-      }
-      return true;
-    }
-    catch (Throwable t2) {
-      // out of luck
-      return false;
-    }
-  }
-  
-  /**
-   * Logging can require allocation of objects, so we wrap the
-   * logger so that failures are silently ignored.
-   * 
-   * @param s string to print
-   * @param t the call stack, if any
-   * @return true if the warning got printed
-   */
-  static protected boolean logWarning(String name, String s, Throwable t) {
-    return logStdErr("warning", name, s, t);
-//    if (PREFER_STDERR) {
-//      return logStdErr("warning", name, s, t);
-//    }
-//    try {
-//      log.warning(name + ": " + s, t);
-//      return true;
-//    }
-//    catch (Throwable t2) {
-//      return logStdErr("warning", name, s, t);
-//    }
-  }
-  
-  /**
-   * Logging can require allocation of objects, so we wrap the
-   * logger so that failures are silently ignored.
-   * 
-   * @param s string to print
-   */
-  static protected void logInfo(String name, String s) {
-    logStdErr("info", name, s, null);
-//    if (PREFER_STDERR) {
-//      logStdErr("info", name, s, null);
-//      return;
-//    }
-//    try {
-//      log.info(name + ": " + s);
-//    }
-//    catch (Throwable t) {
-//      logStdErr("info", name, s, t);
-//    }
-  }
-  
-  /**
-   * Logging can require allocation of objects, so we wrap the
-   * logger so that failures are silently ignored.
-   * 
-   * @param s string to print
-   */
-  static protected void logFine(String name, String s) {
-    if (DEBUG) {
-      logStdErr("fine", name, s, null);
-    }
-//    if (DEBUG && PREFER_STDERR) {
-//      logStdErr("fine", name, s, null);
-//      return;
-//    }
-//    try {
-//      log.fine(name + ": " + s);
-//    }
-//    catch (Throwable t) {
-//      if (DEBUG) {
-//        logStdErr("fine", name, s, null);
-//      }
-//    }
-  }
-  
-  private static volatile boolean stopping;
-  
-  /**
-   * This starts up the watchdog and proctor threads.
-   * This method is called when a Cache is created.
-   */
-  public static void startThreads() {
-    stopping = false;
-    startWatchDog();
-    startProctor();
-  }
-  /**
-   * This stops the threads that implement this service.
-   * This method is called when a Cache is closed.
-   */
-  public static void stopThreads() {
-    // this method fixes bug 45409
-    stopping = true;
-    stopProctor();
-    stopWatchDog();
-  }
-  
-  static Thread getWatchDogForTest() {
-    return watchDog;
-  }
-  
-  static Thread getProctorForTest() {
-    return proctor;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/SystemIsRunningException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/SystemIsRunningException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/SystemIsRunningException.java
deleted file mode 100644
index e96ddf4..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/SystemIsRunningException.java
+++ /dev/null
@@ -1,46 +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;
-
-/**
- * A <code>SystemIsRunningException</code> is thrown when an operation
- * is attempted that requires that the locator is stopped.
- * <p>
- * In some cases this exception may be thrown and the locator will
- * not be running. This will happen if the locator was not stopped
- * cleanly.
- * <p>As of GemFire 5.0 this exception should be named LocatorIsRunningException.
- */
-public class SystemIsRunningException extends GemFireException {
-private static final long serialVersionUID = 3516268055878767189L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>SystemIsRunningException</code>.
-   */
-  public SystemIsRunningException() {
-    super();
-  }
-
-  /**
-   * Creates a new <code>SystemIsRunningException</code>.
-   */
-  public SystemIsRunningException(String message) {
-    super(message);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/ThreadInterruptedException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/ThreadInterruptedException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/ThreadInterruptedException.java
deleted file mode 100644
index 6c459d3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/ThreadInterruptedException.java
+++ /dev/null
@@ -1,31 +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;
-
-/**
- * @deprecated this class is no longer used
- */
-
-@Deprecated
-public final class ThreadInterruptedException extends CancelException {
-private static final long serialVersionUID = 6169940883541267514L;
-  /**
-   * Do not create instances of this class
-   */
-  private ThreadInterruptedException() { }
- 
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/ToDataException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/ToDataException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/ToDataException.java
deleted file mode 100644
index 7618e32..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/ToDataException.java
+++ /dev/null
@@ -1,42 +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;
-
-/**
- * A <code>ToDataException</code> is thrown during serialization if
- * {@link DataSerializable#toData} throws an exception or if
- * {@link DataSerializer#toData} is called and returns false.
- * 
- * @since 6.5
- * @author darrel
- */
-public class ToDataException extends SerializationException {
-  private static final long serialVersionUID = -2329606027453879918L;
-  /**
-   * Creates a new <code>ToDataException</code> with the given message
-   */
-  public ToDataException(String message) {
-      super(message);
-  }
-  /**
-   * Creates a new <code>ToDataException</code> with the given message
-   * and cause.
-   */
-  public ToDataException(String message, Throwable cause) {
-      super(message, cause);
-  }
-}



[48/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadOnlyAccess.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadOnlyAccess.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadOnlyAccess.java
deleted file mode 100644
index 6f54067..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadOnlyAccess.java
+++ /dev/null
@@ -1,55 +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.hibernate.internal;
-
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.access.SoftLock;
-
-public class ReadOnlyAccess extends Access {
-
-  public ReadOnlyAccess(GemFireEntityRegion region) {
-    super(region);
-  }
-
-  @Override
-  public boolean insert(Object key, Object value, Object version)
-      throws CacheException {
-    throw new UnsupportedOperationException(
-        "insert not supported on read only access");
-  }
-
-  @Override
-  public boolean update(Object key, Object value, Object currentVersion,
-      Object previousVersion) throws CacheException {
-    throw new UnsupportedOperationException(
-        "update not supported on read only access");
-  }
-
-  @Override
-  public boolean afterInsert(Object key, Object value, Object version)
-      throws CacheException {
-    throw new UnsupportedOperationException(
-        "insert not supported on read only access");
-  }
-
-  @Override
-  public boolean afterUpdate(Object key, Object value, Object currentVersion,
-      Object previousVersion, SoftLock lock) throws CacheException {
-    throw new UnsupportedOperationException(
-        "update not supported on read only access");
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadWriteAccess.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadWriteAccess.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadWriteAccess.java
deleted file mode 100644
index 3c80174..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadWriteAccess.java
+++ /dev/null
@@ -1,36 +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.hibernate.internal;
-
-import org.hibernate.cache.CacheException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ReadWriteAccess extends Access {
-
-  private Logger log = LoggerFactory.getLogger(getClass());
-
-  public ReadWriteAccess(GemFireEntityRegion region) {
-    super(region);
-  }
-
-  @Override
-  public boolean update(Object key, Object value, Object currentVersion,
-      Object previousVersion) throws CacheException {
-    return super.update(key, value, currentVersion, previousVersion);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/RegionFactoryDelegate.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/RegionFactoryDelegate.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/RegionFactoryDelegate.java
deleted file mode 100644
index 76fdf77..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/RegionFactoryDelegate.java
+++ /dev/null
@@ -1,153 +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.hibernate.internal;
-
-import java.util.Iterator;
-import java.util.Properties;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.DataPolicy;
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.modules.hibernate.GemFireCacheProvider;
-import com.gemstone.gemfire.modules.util.BootstrappingFunction;
-import com.gemstone.gemfire.modules.util.CreateRegionFunction;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-
-public class RegionFactoryDelegate  {
-
-  private static final String LOG_FILE = "log-file";
-
-  private static final String CACHE_XML_FILE = "cache-xml-file";
-
-  private static final String DEFAULT_REGION_TYPE = RegionShortcut.REPLICATE_HEAP_LRU.name();
-
-  private static final String CLIENT_DEFAULT_REGION_TYPE = ClientRegionShortcut.PROXY.name();
-
-  protected final Properties gemfireProperties;
-  protected final Properties regionProperties;
-
-  protected Logger log = LoggerFactory.getLogger(getClass());
-  
-  private Cache cache;
-  
-  public RegionFactoryDelegate(Properties gemfireProperties, Properties regionProperties) {
-    this.gemfireProperties = gemfireProperties;
-    this.regionProperties = regionProperties;
-  }
-  
-  public GemFireCache startCache() {
-    log.info("Creating a GemFire cache");
-    checkExistingCache();
-    cache = new CacheFactory(gemfireProperties).create();
-    log.debug("GemFire cache creation completed");
-    FunctionService.onMembers(this.cache.getDistributedSystem()).execute(new BootstrappingFunction()).getResult();
-    FunctionService.registerFunction(new CreateRegionFunction(cache));
-    return cache;
-  }
-
-  /**
-   * When hibernate module is running within servlet container, we should
-   * check if http module is being used and make sure that we use 
-   * same cache-xml and log-file properties.
-   */
-  protected void checkExistingCache() {
-    Cache existingCache = GemFireCacheImpl.getInstance();
-    if (existingCache == null) {
-      return;
-    }
-    Properties existingProps = existingCache.getDistributedSystem().getProperties();
-    String cacheXML = existingProps.getProperty(CACHE_XML_FILE);
-    String logFile = existingProps.getProperty(LOG_FILE, "");
-    this.gemfireProperties.setProperty(CACHE_XML_FILE, cacheXML);
-    this.gemfireProperties.setProperty(LOG_FILE, logFile);
-    log.info("Existing GemFire cache detected. Using same "+CACHE_XML_FILE+":"+cacheXML+
-    " and "+LOG_FILE+":"+logFile+" as existing cache");
-  }
-  
-  public Region<Object, EntityWrapper> createRegion(String regionName) {
-    Region<Object, EntityWrapper> r = cache.getRegion(regionName);
-    if (r != null) {
-      // for  the peer-to-peer case, for now we assume that
-      // cache.xml will be the same for all peers
-      // TODO validate regions without this assumption
-      return r;
-    }
-    String regionType = getRegionType(regionName);
-    boolean isLocalRegion = regionType.contains("LOCAL") ? true : false;
-    RegionConfiguration regionConfig = new RegionConfiguration();
-    regionConfig.setRegionName(regionName);
-    regionConfig.setRegionAttributesId(regionType);
-    regionConfig.setCacheWriterName(EntityRegionWriter.class.getCanonicalName());
-    com.gemstone.gemfire.cache.RegionFactory<Object, EntityWrapper> rFactory = this.cache
-        .createRegionFactory(RegionShortcut.valueOf(regionType));
-    rFactory.setCacheWriter(new EntityRegionWriter());
-    if (isLocalRegion) {
-      rFactory.setDataPolicy(DataPolicy.REPLICATE);
-    }
-    r = rFactory.create(regionName);
-    // create same region on peers
-    if (!isLocalRegion) {
-      FunctionService.onMembers(this.cache.getDistributedSystem())
-          .withArgs(regionConfig).execute(CreateRegionFunction.ID).getResult();
-    }
-    return r;
-  }
-
-  /**
-   * returns the type of region to create by consulting the properties specified
-   * in hibernate.cfg.xml
-   * 
-   * @see #createRegion(String)
-   * @param regionName
-   * @return string representation of {@link RegionShortcut}
-   * @see GemFireCacheProvider
-   */
-  protected String getRegionType(String regionName) {
-    String rType = getOverridenRegionType(regionName);
-    if (rType != null) {
-      return rType.toUpperCase();
-    }
-    rType = regionProperties
-        .getProperty("gemfire.default-region-attributes-id");
-    if (rType == null) {
-      rType =  DEFAULT_REGION_TYPE;
-    }
-    return rType.toUpperCase();
-  }
-
-  private String getOverridenRegionType(String regionName) {
-    String rType = null;
-    Iterator<Object> it = regionProperties.keySet().iterator();
-    while (it.hasNext()) {
-      String current = (String)it.next();
-      if (current.contains(regionName)) {
-        rType = regionProperties.getProperty(current);
-        break;
-      }
-    }
-    return rType;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/TransactionalAccess.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/TransactionalAccess.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/TransactionalAccess.java
deleted file mode 100644
index f12eab9..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/TransactionalAccess.java
+++ /dev/null
@@ -1,25 +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.hibernate.internal;
-
-public class TransactionalAccess extends Access {
-
-  public TransactionalAccess(GemFireEntityRegion region) {
-    super(region);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Event.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Event.java b/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Event.java
deleted file mode 100644
index 962c083..0000000
--- a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Event.java
+++ /dev/null
@@ -1,67 +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;
-
-import java.util.Date;
-
-public class Event {
-    private Long id;
-
-    private String title;
-    private Date date;
-    private int i;
-
-    public Event() {}
-
-    public Long getId() {
-        return id;
-    }
-
-    private void setId(Long id) {
-        this.id = id;
-    }
-
-    public Date getDate() {
-        return date;
-    }
-
-    public Integer getVersion() {
-    	return i;
-    }
-    
-    public void setVersion(int i) {
-    	this.i = i;
-    }
-    
-    public void setDate(Date date) {
-        this.date = date;
-    }
-
-    public String getTitle() {
-        return title;
-    }
-
-    public void setTitle(String title) {
-        this.title = title;
-    }
-    @Override
-    public String toString() {
-    	StringBuilder b = new StringBuilder();
-    	b.append("Event:id:"+id+" title:"+title+" date:"+date);
-    	return b.toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/HibernateJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/HibernateJUnitTest.java b/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/HibernateJUnitTest.java
deleted file mode 100644
index 9a86f10..0000000
--- a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/HibernateJUnitTest.java
+++ /dev/null
@@ -1,410 +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;
-
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.Region.Entry;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.modules.Owner.Status;
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
-import org.hibernate.cfg.AnnotationConfiguration;
-import org.hibernate.cfg.Configuration;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import java.util.logging.Level;
-
-import static org.junit.Assert.assertEquals;
-
-@Category(IntegrationTest.class)
-public class HibernateJUnitTest {
-
-  private Logger log = LoggerFactory.getLogger(getClass());
-
-  //private static final String jdbcURL = "jdbc:hsqldb:hsql://localhost/test";
-  private static final String jdbcURL = "jdbc:hsqldb:mem:test";
-
-  static File tmpDir;
-
-  static String gemfireLog;
-
-  @Before
-  public void setUp() throws Exception {
-    // Create a per-user scratch directory
-    tmpDir = new File(System.getProperty("java.io.tmpdir"),
-            "gemfire_modules-" + System.getProperty("user.name"));
-    tmpDir.mkdirs();
-    tmpDir.deleteOnExit();
-
-    gemfireLog = tmpDir.getPath() +
-            System.getProperty("file.separator") + "gemfire_modules.log";
-  }
-
-  public static SessionFactory getSessionFactory(Properties overrideProps) {
-    System.setProperty("gemfire.home", "GEMFIREHOME");
-    Configuration cfg = new Configuration();
-    cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
-    cfg.setProperty("hibernate.connection.driver_class",
-        "org.hsqldb.jdbcDriver");
-    // cfg.setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:test");
-    cfg.setProperty("hibernate.connection.url", jdbcURL);
-    cfg.setProperty("hibernate.connection.username", "sa");
-    cfg.setProperty("hibernate.connection.password", "");
-    cfg.setProperty("hibernate.connection.pool_size", "1");
-    cfg.setProperty("hibernate.connection.autocommit", "true");
-    cfg.setProperty("hibernate.hbm2ddl.auto", "update");
-
-    cfg.setProperty("hibernate.cache.region.factory_class",
-        "com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory");
-    cfg.setProperty("hibernate.show_sql", "true");
-    cfg.setProperty("hibernate.cache.use_query_cache", "true");
-    //cfg.setProperty("gemfire.mcast-port", AvailablePort.getRandomAvailablePort(AvailablePort.JGROUPS)+"");
-    cfg.setProperty("gemfire.mcast-port", "0");
-    cfg.setProperty("gemfire.statistic-sampling-enabled", "true");
-    cfg.setProperty("gemfire.log-file", gemfireLog);
-    cfg.setProperty("gemfire.writable-working-dir", tmpDir.getPath());
-    //cfg.setProperty("gemfire.statistic-archive-file", "plugin-stats-file.gfs");
-    //cfg.setProperty("gemfire.default-client-region-attributes-id", "CACHING_PROXY");
-    //cfg.setProperty("gemfire.cache-topology", "client-server");
-    //cfg.setProperty("gemfire.locators", "localhost[5432]");
-    //cfg.setProperty("gemfire.log-level", "fine");
-    // cfg.setProperty("", "");
-    cfg.addClass(Person.class);
-    cfg.addClass(Event.class);
-    if (overrideProps != null) {
-      Iterator it = overrideProps.keySet().iterator();
-      while (it.hasNext()) {
-        String key = (String)it.next();
-        cfg.setProperty(key, overrideProps.getProperty(key));
-      }
-    }
-    return cfg.buildSessionFactory();
-  }
-
-  @Test
-  public void testpreload() {
-    log.info("SWAP:creating session factory In hibernateTestCase");
-
-    Session session = getSessionFactory(null).openSession();
-    log.info("SWAP:session opened");
-    session.beginTransaction();
-    Event theEvent = new Event();
-    theEvent.setTitle("title");
-    theEvent.setDate(new Date());
-    session.save(theEvent);
-    Long id = theEvent.getId();
-    session.getTransaction().commit();
-    session.beginTransaction();
-    Event ev = (Event)session.get(Event.class, id);
-    log.info("SWAP:load complete: " + ev);
-    session.getTransaction().commit();
-  }
-
-  @Test
-  public void testNothing() throws Exception {
-    java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL);
-    log.info("SWAP:creating session factory In hibernateTestCase");
-
-    Session session = getSessionFactory(null).openSession();
-    log.info("SWAP:session opened");
-    // session.setFlushMode(FlushMode.COMMIT);
-    session.beginTransaction();
-    Event theEvent = new Event();
-    theEvent.setTitle("title");
-    theEvent.setDate(new Date());
-    //session.save(theEvent);
-    session.persist(theEvent);
-    Long id = theEvent.getId();
-    session.getTransaction().commit();
-    log.info("commit complete...doing load");
-    session.beginTransaction();
-    Event ev = (Event)session.load(Event.class, id);
-    log.info("load complete: " + ev);
-    log.trace("SWAP");
-    ev.setTitle("newTitle");
-    session.save(ev);
-    log.info("commit");
-    session.getTransaction().commit();
-    log.info("save complete " + ev);
-
-    session.beginTransaction();
-    ev = (Event)session.load(Event.class, id);
-    log.info("load complete: " + ev);
-    ev.setTitle("newTitle2");
-    session.save(ev);
-    log.info("commit");
-    session.getTransaction().commit();
-    log.info("save complete " + ev);
-
-    ev = (Event)session.load(Event.class, id);
-    log.info("second load " + ev);
-    session.flush();
-    session.close();
-    log.info("flush complete session:" + session);
-
-    for (int i=0; i<5; i++) {
-      session = getSessionFactory(null).openSession();
-      log.info("doing get "+id);
-      // ev = (Event) session.load(Event.class, id);
-      ev = (Event)session.get(Event.class, id);
-      log.info("third load " + ev);
-    }
-    printExistingDB();
-    Iterator it = GemFireCacheImpl.getInstance().rootRegions().iterator();
-    while (it.hasNext()) {
-      Region r = (Region)it.next();
-      System.out.println("Region:"+r);
-      Iterator enIt = r.entrySet().iterator();
-      while (enIt.hasNext()) {
-        Region.Entry re = (Entry)enIt.next();
-        System.out.println("key:"+re.getKey()+" value:"+re.getValue());
-      }
-    }
-    Thread.sleep(3000);
-     //System.in.read();
-    // try direct data
-
-  }
-
-  public void _testInvalidation() {
-    Session s = getSessionFactory(null).openSession();
-  }
-
-  static Long personId;
-
-  @Test
-  public void testRelationship() throws Exception {
-    //java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL);
-    Properties props = new Properties();
-    props.put("gemfire.topology", "client-server");
-    Session session = getSessionFactory(null).openSession();
-    session.beginTransaction();
-
-    Person thePerson = new Person();
-    thePerson.setFirstname("foo");
-    thePerson.setLastname("bar");
-    thePerson.setAge(1);
-    thePerson.setId(99L);
-    session.save(thePerson);
-    personId = thePerson.getId();
-    log.info("person saved");
-    
-    Event theEvent = new Event();
-    theEvent.setTitle("title");
-    theEvent.setDate(new Date());
-    session.save(theEvent);
-    Long eventId = theEvent.getId();
-    log.info("event saved");
-    
-    Event theEvent2 = new Event();
-    theEvent2.setTitle("title2");
-    theEvent2.setDate(new Date());
-    session.save(theEvent2);
-    Long eventId2 = theEvent2.getId();
-    log.info("event2 saved");
-    session.getTransaction().commit();
-    
-    session.beginTransaction();
-    Person aPerson = (Person) session.load(Person.class, personId);
-    Event anEvent = (Event) session.load(Event.class, eventId);
-    Event anEvent2 = (Event) session.load(Event.class, eventId2);
-    log.info("adding event to person");
-    aPerson.getE().add(anEvent);
-    aPerson.getE().add(anEvent2);
-    log.info("calling commit");
-
-    session.getTransaction().commit();
-    log.info("commit complete");
-    session.close();
-    log.info("opening new session");
-    session = getSessionFactory(null).openSession();
-    log.info("SWAP:loading person");
-    aPerson = (Person)session.load(Person.class, personId);
-    log.info("loading events");
-    Iterator<Event> e = aPerson.getE().iterator();
-    while (e.hasNext()) {
-      e.next();
-    }
-    session.close();
-    log.info("opening new session");
-    session = getSessionFactory(null).openSession();
-    log.info("SWAP:loading person");
-    aPerson = (Person)session.load(Person.class, personId);
-    log.info("loading events");
-    e = aPerson.getE().iterator();
-    while (e.hasNext()) {
-      e.next();
-    }
-
-    log.info(aPerson.getE()+"");
-    session.close();
-    //System.in.read();
-//    log.info("opening third session");
-//    session = getSessionFactory().openSession();
-//    log.info("loading person");
-//    aPerson = (Person)session.load(Person.class, personId);
-//    log.info("loading events");
-//    log.info(aPerson.getEvents()+"");
-  }
-  
-  public void _testQueryCache() throws Exception {
-    Session session = getSessionFactory(null).openSession();
-    Query q = session.createQuery("from Event");
-    q.setCacheable(true);
-    List l = q.list();
-    log.info("list:"+l);
-//    log.info("Sleeping for 10 seconds");
-//    Thread.sleep(10000);
-    l = q.list();
-    log.info("list2:"+l);
-    log.info("updating an event");
-    session.beginTransaction();
-    Event e = (Event)l.get(0);
-    e.setDate(new Date());
-    session.saveOrUpdate(e);
-    session.getTransaction().commit();
-    l = q.list();
-    log.info("list3:"+l);
-  }
-
-  @Test
-  public void testInsert() {
-    Session session = getSessionFactory(null).openSession();
-    Region r = GemFireCacheImpl.getExisting().getRegion(Person.class.getCanonicalName());
-    int initSize = r.size();
-    session.beginTransaction();
-    log.info("SWAP: Saving Person");
-    Person p = new Person();
-    p.setId(10L);
-    p.setFirstname("foo");
-    p.setLastname("bar");
-    session.saveOrUpdate("Person", p);
-    session.getTransaction().commit();
-    assertEquals(1, session.getStatistics().getEntityCount());
-    assertEquals(initSize+1, r.size());
-
-    session.beginTransaction();
-    p.setAge(1);
-    session.saveOrUpdate(p);
-    session.getTransaction().commit();
-    assertEquals(1, session.getStatistics().getEntityCount());
-  }
-
-  @Test
-  public void testNormalRegion() {
-    Properties props = new Properties();
-    props.setProperty("gemfire.default-region-attributes-id", "LOCAL");
-    Session session = getSessionFactory(props).openSession();
-    session.beginTransaction();
-    Event theEvent = new Event();
-    theEvent.setTitle("title");
-    theEvent.setDate(new Date());
-    session.save(theEvent);
-    Long id = theEvent.getId();
-    session.getTransaction().commit();
-    session.beginTransaction();
-    Event ev = (Event)session.load(Event.class, id);
-    ev.setTitle("newTitle");
-    session.save(ev);
-    session.getTransaction().commit();
-  }
-  
-  private void printExistingDB() throws SQLException {
-    try {
-      Class.forName("org.hsqldb.jdbc.JDBCDriver");
-    }
-    catch (Exception e) {
-      System.err.println("ERROR: failed to load HSQLDB JDBC driver.");
-      e.printStackTrace();
-      return;
-    }
-
-    Connection c = DriverManager.getConnection(jdbcURL, "SA", "");
-    log.info("issuing query...");
-    ResultSet rs = c.createStatement().executeQuery("select * from events");
-    int col = rs.getMetaData().getColumnCount();
-    while (rs.next()) {
-      StringBuilder b = new StringBuilder();
-      for (int i = 1; i <= col; i++) {
-        b.append(" col:" + i + ":" + rs.getString(i));
-      }
-      log.info("Query result:" + b.toString());
-    }
-  }
-
-  @Test
-  public void testEnum() {
-    AnnotationConfiguration cfg = new AnnotationConfiguration();
-    cfg.addAnnotatedClass(Owner.class);
-    cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
-    cfg.setProperty("hibernate.connection.driver_class",
-        "org.hsqldb.jdbcDriver");
-    cfg.setProperty("hibernate.connection.url", jdbcURL);
-    cfg.setProperty("hibernate.connection.username", "sa");
-    cfg.setProperty("hibernate.connection.password", "");
-    cfg.setProperty("hibernate.connection.pool_size", "1");
-    cfg.setProperty("hibernate.connection.autocommit", "true");
-    cfg.setProperty("hibernate.hbm2ddl.auto", "update");
-
-    cfg.setProperty("hibernate.cache.region.factory_class",
-        "com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory");
-    cfg.setProperty("hibernate.show_sql", "true");
-    cfg.setProperty("hibernate.cache.use_query_cache", "true");
-    cfg.setProperty("gemfire.statistic-sampling-enabled", "true");
-    cfg.setProperty("gemfire.log-file", gemfireLog);
-    cfg.setProperty("gemfire.writable-working-dir", tmpDir.getPath());
-    cfg.setProperty("gemfire.mcast-port", "0");
-    //cfg.setProperty("gemfire.cache-topology", "client-server");
-
-    SessionFactory sf = cfg.buildSessionFactory();
-    Session session = sf.openSession();
-    session.beginTransaction();
-    Owner o = new Owner();
-    o.setAddress("addr");
-    o.setCity("pdx");
-    o.setStatus(Status.PREMIUM);
-    session.save(o);
-    long id = o.getId();
-    log.info("testEnum:commiting tx");
-    session.getTransaction().commit();
-    session.close();
-    
-    session = sf.openSession();
-    Owner o1 = (Owner) session.load(Owner.class, id);
-    log.info("loaded:"+o);
-    assertEquals(o.getAddress(), o1.getAddress());
-    assertEquals(o.getCity(), o1.getCity());
-    assertEquals(o.getStatus(), o1.getStatus());
-    o1.setAddress("address2");
-    session.save(o1);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Owner.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Owner.java b/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Owner.java
deleted file mode 100644
index 92ef56f..0000000
--- a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Owner.java
+++ /dev/null
@@ -1,186 +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;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.persistence.Column;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-
-import org.hibernate.annotations.Entity;
-
-
-/**
- * Simple JavaBean domain object representing an owner.
- * 
- * @author Ken Krebs
- * @author Juergen Hoeller
- * @author Sam Brannen
- */
-@javax.persistence.Entity
-@Entity
-public class Owner {
-	private static final long serialVersionUID = 4315791692556052565L;
-
-	@Column(name="address")
-	private String address;
-
-	private String city;
-
-	private String telephone;
-
-//	private Set<Pet> pets;
-	@Id
-	@GeneratedValue
-	private Long id;
-	
-	private long versionNum = -1;
-
-	public enum Status {
-		NORMAL, PREMIUM
-	};
-
-	@Enumerated
-	private Status status = Status.NORMAL;
-
-	  private void setId(Long id) {
-	    this.id = id;
-	  }
-
-	  public Long getId() {
-	    return id;
-	  }
-	  
-	public String getAddress() {
-		return this.address;
-	}
-
-	public void setAddress(String address) {
-		this.address = address;
-	}
-
-	public String getCity() {
-		return this.city;
-	}
-
-	public void setCity(String city) {
-		this.city = city;
-	}
-
-	public String getTelephone() {
-		return this.telephone;
-	}
-
-	public void setTelephone(String telephone) {
-		this.telephone = telephone;
-	}
-
-	public long getVersionNum() {
-		return versionNum;
-	}
-
-	public void setVersionNum(long versionNum) {
-		this.versionNum = versionNum;
-	}
-
-	public Status getStatus() {
-		return this.status;
-	}
-
-	public void setStatus(Status state) {
-		if (state != null) {
-			this.status = state;
-		}
-	}
-
-//	protected void setPetsInternal(Set<Pet> pets) {
-//		this.pets = pets;
-//	}
-//
-//	protected Set<Pet> getPetsInternal() {
-//		if (this.pets == null) {
-//			this.pets = new HashSet<Pet>();
-//		}
-//		return this.pets;
-//	}
-//
-//	public List<Pet> getPets() {
-//		List<Pet> sortedPets = new ArrayList<Pet>(getPetsInternal());
-//		PropertyComparator.sort(sortedPets, new MutableSortDefinition("name",
-//				true, true));
-//		return Collections.unmodifiableList(sortedPets);
-//	}
-//
-//	public void addPet(Pet pet) {
-//		getPetsInternal().add(pet);
-//		pet.setOwner(this);
-//	}
-//
-//	/**
-//	 * Return the Pet with the given name, or null if none found for this Owner.
-//	 * 
-//	 * @param name
-//	 *            to test
-//	 * @return true if pet name is already in use
-//	 */
-//	public Pet getPet(String name) {
-//		return getPet(name, false);
-//	}
-//
-//	/**
-//	 * Return the Pet with the given name, or null if none found for this Owner.
-//	 * 
-//	 * @param name
-//	 *            to test
-//	 * @return true if pet name is already in use
-//	 */
-//	public Pet getPet(String name, boolean ignoreNew) {
-//		name = name.toLowerCase();
-//		for (Pet pet : getPetsInternal()) {
-//			if (!ignoreNew || !pet.isNew()) {
-//				String compName = pet.getName();
-//				compName = compName.toLowerCase();
-//				if (compName.equals(name)) {
-//					return pet;
-//				}
-//			}
-//		}
-//		return null;
-//	}
-//
-//	@Override
-//	public String toString() {
-//		return new ToStringCreator(this).append("id", this.getId())
-//				.append("new", this.isNew())
-//				.append("lastName", this.getLastName())
-//				.append("firstName", this.getFirstName())
-//				.append("address", this.address).append("city", this.city)
-//				.append("telephone", this.telephone)
-//				.append("version", this.versionNum)
-//				.append("status", this.status)
-//
-//				.toString();
-//	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Person.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Person.java b/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Person.java
deleted file mode 100644
index 559363d..0000000
--- a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Person.java
+++ /dev/null
@@ -1,72 +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;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class Person {
-  private Long id;
-  private int age;
-  private String firstname;
-  private String lastname;
-
-  private Set<Event> e = new HashSet<Event>();
-  
-  public Person() {}
-
-  public void setId(Long id) {
-    this.id = id;
-  }
-
-  public Long getId() {
-    return id;
-  }
-
-  public void setAge(int age) {
-    this.age = age;
-  }
-
-  public int getAge() {
-    return age;
-  }
-
-  public void setFirstname(String firstname) {
-    this.firstname = firstname;
-  }
-
-  public String getFirstname() {
-    return firstname;
-  }
-
-  public void setLastname(String lastname) {
-    this.lastname = lastname;
-  }
-
-  public String getLastname() {
-    return lastname;
-  }
-
-  public void setE(Set<Event> events) {
-    this.e = events;
-  }
-
-  public Set<Event> getE() {
-    return e;
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/SecondVMTest.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/SecondVMTest.java b/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/SecondVMTest.java
deleted file mode 100644
index e3b6480..0000000
--- a/extensions/gemfire-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/SecondVMTest.java
+++ /dev/null
@@ -1,93 +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;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.logging.Level;
-
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
-import junit.framework.TestCase;
-
-import org.hibernate.Session;
-import org.junit.Ignore;
-import org.junit.experimental.categories.Category;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.Region.Entry;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-
-@Ignore("Can this test be deleted?")
-@Category(IntegrationTest.class)
-public class SecondVMTest extends TestCase {
-
-  private Logger log = LoggerFactory.getLogger(getClass());
-  
-  public void testNoop() {
-    
-  }
-  public void _testStartEmptyVM() throws IOException {
-    Properties gemfireProperties = new Properties();
-    gemfireProperties.setProperty("mcast-port", "5555");
-    gemfireProperties.setProperty("log-level", "fine");
-    Cache cache = new CacheFactory(gemfireProperties).create();
-    System.in.read();
-    Iterator it = cache.rootRegions().iterator();
-    while (it.hasNext()) {
-      Region r = (Region)it.next();
-      System.out.println("Region:"+r);
-      Iterator enIt = r.entrySet().iterator();
-      while (enIt.hasNext()) {
-        Region.Entry re = (Entry)enIt.next();
-        System.out.println("key:"+re.getKey()+" value:"+re.getValue());
-      }
-    }
-  }
-  
-  public void _testStartVM() throws Exception {
-    java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL);
-    Session session = HibernateJUnitTest.getSessionFactory(null).openSession();
-    log.info("SWAP:new session open");
-    long id = 1;
-    log.info("loading new person:"+(id));
-    GemFireCache cache = GemFireCacheImpl.getInstance();
-    Iterator<Region<?, ?>> rSet = cache.rootRegions().iterator();
-    while (rSet.hasNext()) {
-      Region<?, ?> r = rSet.next();
-      log.info("SWAP:Region "+r);
-      Iterator<?> keySet = r.keySet().iterator();
-      while (keySet.hasNext()) {
-        log.info("key:"+keySet.next());
-      }
-    }
-    log.info("loading new person:"+(id));
-    session.beginTransaction();
-    Person p = (Person)session.load(Person.class, id);
-    p.setFirstname("SecondVMfirstname"+id);
-    log.info("loading events");
-    log.info(p.getE()+"");
-    session.getTransaction().commit();
-    //System.in.read();
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml b/extensions/gemfire-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
deleted file mode 100644
index 3ec08c9..0000000
--- a/extensions/gemfire-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.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.
--->
-<!DOCTYPE hibernate-mapping PUBLIC
-        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
-<hibernate-mapping package="com.gemstone.gemfire.modules">
-	<class name="Event" table="EVENTS">
-		<cache usage="read-write"/>
-		<id name="id" column="EVENT_ID">
-			<generator class="native"/>
-		</id>
-		<version name="version"/>
-		<property name="date" type="timestamp" column="EVENT_DATE"/>
-        <property name="title"/>
-	</class>
-</hibernate-mapping>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml b/extensions/gemfire-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
deleted file mode 100644
index 7c28734..0000000
--- a/extensions/gemfire-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.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.
--->
-<!DOCTYPE hibernate-mapping PUBLIC
-        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
-<hibernate-mapping package="com.gemstone.gemfire.modules">
-    <class name="Person" table="PERSON">
-        <cache usage="read-write"/>
-        <id name="id" column="PERSON_ID">
-        </id>
-        <property name="age"/>
-        <property name="firstname"/>
-        <property name="lastname"/>
-        <set name="e" table="PERSON_EVENT">
-          <cache usage="read-write"/>
-          <key column="PERSON_ID"/>
-          <many-to-many column="EVENT_ID" class="Event"/>
-        </set>
-    </class>
-</hibernate-mapping>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/test/resources/log4j.properties b/extensions/gemfire-modules-hibernate/src/test/resources/log4j.properties
deleted file mode 100644
index c136990..0000000
--- a/extensions/gemfire-modules-hibernate/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
-# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
-#log4j.rootLogger=DEBUG, stdout, logfile
-log4j.rootLogger=DEBUG, stdout
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
-
-#log4j.appender.logfile=org.apache.log4j.RollingFileAppender
-#log4j.appender.logfile.MaxFileSize=512KB
-## Keep three backup files.
-#log4j.appender.logfile.MaxBackupIndex=3
-## Pattern to output: date priority [category] - message
-#log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
-#log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/build.gradle b/extensions/gemfire-modules-session/build.gradle
deleted file mode 100644
index 45c6445..0000000
--- a/extensions/gemfire-modules-session/build.gradle
+++ /dev/null
@@ -1,54 +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.
- */
-
-dependencies {
-  compile project(':extensions/gemfire-modules')
-  compile project(':gemfire-core')
-
-  testCompile 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version'
-  testCompile 'org.slf4j:slf4j-api:' + project.'slf4j-api.version'
-  testCompile('com.mockrunner:mockrunner-servlet:' + project.'mockrunner.version') {
-    exclude group: 'jboss'
-  }
-  testCompile(group: 'org.eclipse.jetty', name: 'jetty-http', version: project.'jetty.version', classifier: 'tests')
-  testCompile(group: 'org.eclipse.jetty', name: 'jetty-servlet', version: project.'jetty.version', classifier: 'tests')
-
-  testCompile project(path: ':gemfire-junit')
-}
-
-jar {
-  include '**/session/filter/**/*'
-  include '**/session/installer/**/*'
-  includeEmptyDirs = false
-
-  manifest {
-    attributes 'Main-Class': 'com.gemstone.gemfire.modules.session.installer.Installer'
-  }
-  baseName = 'gemfire-modules-session'
-}
-
-task internalJar(type: Jar) {
-  from sourceSets.main.output
-  include '**/internal/**/*'
-  includeEmptyDirs = false
-  baseName = 'gemfire-modules-session'
-  classifier = 'internal'
-}
-
-artifacts {
-  archives internalJar
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionCachingFilter.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionCachingFilter.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionCachingFilter.java
deleted file mode 100644
index 7490fdd..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionCachingFilter.java
+++ /dev/null
@@ -1,652 +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.filter;
-
-import com.gemstone.gemfire.modules.session.internal.filter.GemfireHttpSession;
-import com.gemstone.gemfire.modules.session.internal.filter.GemfireSessionManager;
-import com.gemstone.gemfire.modules.session.internal.filter.SessionManager;
-import com.gemstone.gemfire.modules.session.internal.filter.util.ThreadLocalSession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-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 java.io.IOException;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.security.Principal;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * Primary class which orchestrates everything. This is the class which gets
- * configured in the web.xml.
- */
-public class SessionCachingFilter implements Filter {
-
-  /**
-   * Logger instance
-   */
-  private static final Logger LOG =
-      LoggerFactory.getLogger(SessionCachingFilter.class.getName());
-
-  /**
-   * The filter configuration object we are associated with.  If this value is
-   * null, this filter instance is not currently configured.
-   */
-  private FilterConfig filterConfig = null;
-
-  /**
-   * Some containers will want to instantiate multiple instances of this filter,
-   * but we only need one SessionManager
-   */
-  private static SessionManager manager = null;
-
-  /**
-   * Can be overridden during testing.
-   */
-  private static AtomicInteger started =
-      new AtomicInteger(
-          Integer.getInteger("gemfire.override.session.manager.count", 1));
-
-  private static int percentInactiveTimeTriggerRebuild =
-      Integer.getInteger("gemfire.session.inactive.trigger.rebuild", 80);
-
-  /**
-   * This latch ensures that at least one thread/instance has fired up the
-   * session manager before any other threads complete the init method.
-   */
-  private static CountDownLatch startingLatch = new CountDownLatch(1);
-
-  /**
-   * This request wrapper class extends the support class
-   * HttpServletRequestWrapper, which implements all the methods in the
-   * HttpServletRequest interface, as delegations to the wrapped request. You
-   * only need to override the methods that you need to change. You can get
-   * access to the wrapped request using the method getRequest()
-   */
-  public static class RequestWrapper extends HttpServletRequestWrapper {
-
-    private static final String URL_SESSION_IDENTIFIER = ";jsessionid=";
-
-    private ResponseWrapper response;
-
-    private boolean sessionFromCookie = false;
-
-    private boolean sessionFromURL = false;
-
-    private String requestedSessionId = null;
-
-    private GemfireHttpSession session = null;
-
-    private SessionManager manager;
-
-    private HttpServletRequest outerRequest = null;
-
-    /**
-     * Need to save this in case we need the original {@code RequestDispatcher}
-     */
-    private HttpServletRequest originalRequest;
-
-    public RequestWrapper(SessionManager manager,
-        HttpServletRequest request,
-        ResponseWrapper response) {
-
-      super(request);
-      this.response = response;
-      this.manager = manager;
-      this.originalRequest = request;
-
-      final Cookie[] cookies = request.getCookies();
-      if (cookies != null) {
-        for (final Cookie cookie : cookies) {
-          if (cookie.getName().equalsIgnoreCase(
-              manager.getSessionCookieName()) &&
-              cookie.getValue().endsWith("-GF")) {
-            requestedSessionId = cookie.getValue();
-            sessionFromCookie = true;
-
-            LOG.debug("Cookie contains sessionId: {}",
-                requestedSessionId);
-          }
-        }
-      }
-
-      if (requestedSessionId == null) {
-        requestedSessionId = extractSessionId();
-        LOG.debug("Extracted sessionId from URL {}", requestedSessionId);
-        if (requestedSessionId != null) {
-          sessionFromURL = true;
-        }
-      }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public HttpSession getSession() {
-      return getSession(true);
-    }
-
-    /**
-     * Create our own sessions. TODO: Handle invalidated sessions
-     *
-     * @return a HttpSession
-     */
-    @Override
-    public HttpSession getSession(boolean create) {
-      if (session != null && session.isValid()) {
-        session.setIsNew(false);
-        session.updateAccessTime();
-                /*
-                 * This is a massively gross hack. Currently, there is no way
-                 * to actually update the last accessed time for a session, so
-                 * what we do here is once we're into X% of the session's TTL
-                 * we grab a new session from the container.
-                 *
-                 * (inactive * 1000) * (pct / 100) ==> (inactive * 10 * pct)
-                 */
-        if (session.getLastAccessedTime() - session.getCreationTime() >
-            (session.getMaxInactiveInterval() * 10 * percentInactiveTimeTriggerRebuild)) {
-          HttpSession nativeSession = super.getSession();
-          session.failoverSession(nativeSession);
-        }
-        return session;
-      }
-
-      if (requestedSessionId != null) {
-        session = (GemfireHttpSession) manager.getSession(
-            requestedSessionId);
-        if (session != null) {
-          session.setIsNew(false);
-          // This means we've failed over to another node
-          if (session.getNativeSession() == null) {
-            try {
-              ThreadLocalSession.set(session);
-              HttpSession nativeSession = super.getSession();
-              session.failoverSession(nativeSession);
-              session.putInRegion();
-            } finally {
-              ThreadLocalSession.remove();
-            }
-          }
-        }
-      }
-
-      if (session == null || !session.isValid()) {
-        if (create) {
-          try {
-            session = (GemfireHttpSession) manager.wrapSession(null);
-            ThreadLocalSession.set(session);
-            HttpSession nativeSession = super.getSession();
-            if (session.getNativeSession() == null) {
-              session.setNativeSession(nativeSession);
-            } else {
-              assert (session.getNativeSession() == nativeSession);
-            }
-            session.setIsNew(true);
-            manager.putSession(session);
-          } finally {
-            ThreadLocalSession.remove();
-          }
-        } else {
-          // create is false, and session is either null or not valid.
-          // The spec says return a null:
-          return null;
-        }
-      }
-
-      if (session != null) {
-        addSessionCookie(response);
-        session.updateAccessTime();
-      }
-
-      return session;
-    }
-
-    private void addSessionCookie(HttpServletResponse response) {
-      // Don't bother if the response is already committed
-      if (response.isCommitted()) {
-        return;
-      }
-
-      // Get the existing cookies
-      Cookie[] cookies = getCookies();
-
-      Cookie cookie = new Cookie(manager.getSessionCookieName(),
-          session.getId());
-      cookie.setPath("".equals(getContextPath()) ? "/" : getContextPath());
-      // Clear out all old cookies and just set ours
-      response.addCookie(cookie);
-
-      // Replace all other cookies which aren't JSESSIONIDs
-      if (cookies != null) {
-        for (Cookie c : cookies) {
-          if (manager.getSessionCookieName().equals(c.getName())) {
-            continue;
-          }
-          response.addCookie(c);
-        }
-      }
-
-    }
-
-    private String getCookieString(Cookie c) {
-      StringBuilder cookie = new StringBuilder();
-      cookie.append(c.getName()).append("=").append(c.getValue());
-
-      if (c.getPath() != null) {
-        cookie.append("; ").append("Path=").append(c.getPath());
-      }
-      if (c.getDomain() != null) {
-        cookie.append("; ").append("Domain=").append(c.getDomain());
-      }
-      if (c.getSecure()) {
-        cookie.append("; ").append("Secure");
-      }
-
-      cookie.append("; HttpOnly");
-
-      return cookie.toString();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean isRequestedSessionIdFromCookie() {
-      return sessionFromCookie;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean isRequestedSessionIdFromURL() {
-      return sessionFromURL;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public String getRequestedSessionId() {
-      if (requestedSessionId != null) {
-        return requestedSessionId;
-      } else {
-        return super.getRequestedSessionId();
-      }
-    }
-
-        /*
-         * Hmmm... not sure if this is right or even good to do. So, in some
-         * cases - for ex. using a Spring security filter, we have 3 possible
-         * wrappers to deal with - the original, this one and one created by
-         * Spring. When a servlet or JSP is forwarded to the original request
-         * is passed in, but then this (the wrapped) request is used by the JSP.
-         * In some cases, the outer wrapper also contains information relevant
-         * to the request - in this case security info. So here we allow access
-         * to that. There's probably a better way....
-         */
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public Principal getUserPrincipal() {
-      if (outerRequest != null) {
-        return outerRequest.getUserPrincipal();
-      } else {
-        return super.getUserPrincipal();
-      }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public String getRemoteUser() {
-      if (outerRequest != null) {
-        return outerRequest.getRemoteUser();
-      } else {
-        return super.getRemoteUser();
-      }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean isUserInRole(String role) {
-      if (outerRequest != null) {
-        return outerRequest.isUserInRole(role);
-      } else {
-        return super.isUserInRole(role);
-      }
-    }
-
-    //////////////////////////////////////////////////////////////
-    // Non-API methods
-
-    void setOuterWrapper(HttpServletRequest outer) {
-      this.outerRequest = outer;
-    }
-
-    //////////////////////////////////////////////////////////////
-    // Private methods
-    private String extractSessionId() {
-      final int prefix = getRequestURL().indexOf(URL_SESSION_IDENTIFIER);
-      if (prefix != -1) {
-        final int start = prefix + URL_SESSION_IDENTIFIER.length();
-        int suffix = getRequestURL().indexOf("?", start);
-        if (suffix < 0) {
-          suffix = getRequestURL().indexOf("#", start);
-        }
-        if (suffix <= prefix) {
-          return getRequestURL().substring(start);
-        }
-        return getRequestURL().substring(start, suffix);
-      }
-      return null;
-    }
-  }
-
-  /**
-   * This response wrapper class extends the support class
-   * HttpServletResponseWrapper, which implements all the methods in the
-   * HttpServletResponse interface, as delegations to the wrapped response. You
-   * only need to override the methods that you need to change. You can get
-   * access to the wrapped response using the method getResponse()
-   */
-  class ResponseWrapper extends HttpServletResponseWrapper {
-
-    HttpServletResponse originalResponse;
-
-    public ResponseWrapper(HttpServletResponse response) throws IOException {
-      super(response);
-      originalResponse = response;
-    }
-
-    public HttpServletResponse getOriginalResponse() {
-      return originalResponse;
-    }
-
-    @Override
-    public void setHeader(String name, String value) {
-      super.setHeader(name, value);
-    }
-
-    @Override
-    public void setIntHeader(String name, int value) {
-      super.setIntHeader(name, value);
-    }
-  }
-
-
-  public SessionCachingFilter() {
-  }
-
-  /**
-   * @param request  The servlet request we are processing
-   * @param response The servlet response we are creating
-   * @param chain    The filter chain we are processing
-   * @throws IOException      if an input/output error occurs
-   * @throws ServletException if a servlet error occurs
-   */
-  @Override
-  public void doFilter(ServletRequest request, ServletResponse response,
-      FilterChain chain)
-      throws IOException, ServletException {
-
-    HttpServletRequest httpReq = (HttpServletRequest) request;
-    HttpServletResponse httpResp = (HttpServletResponse) response;
-
-    /**
-     * Early out if this isn't the right kind of request. We might see a
-     * RequestWrapper instance during a forward or include request.
-     */
-    if (request instanceof RequestWrapper ||
-        !(request instanceof HttpServletRequest)) {
-      LOG.debug("Handling already-wrapped request");
-      chain.doFilter(request, response);
-      return;
-    }
-
-    // Create wrappers for the request and response objects.
-    // Using these, you can extend the capabilities of the
-    // request and response, for example, allow setting parameters
-    // on the request before sending the request to the rest of the filter chain,
-    // or keep track of the cookies that are set on the response.
-    //
-    // Caveat: some servers do not handle wrappers very well for forward or
-    // include requests.
-
-    ResponseWrapper wrappedResponse = new ResponseWrapper(httpResp);
-    final RequestWrapper wrappedRequest =
-        new RequestWrapper(manager, httpReq, wrappedResponse);
-
-    Throwable problem = null;
-
-    try {
-      chain.doFilter(wrappedRequest, wrappedResponse);
-    } catch (Throwable t) {
-      // If an exception is thrown somewhere down the filter chain,
-      // we still want to execute our after processing, and then
-      // rethrow the problem after that.
-      problem = t;
-      LOG.error("Exception processing filter chain", t);
-    }
-
-    GemfireHttpSession session =
-        (GemfireHttpSession) wrappedRequest.getSession(false);
-
-    // If there was a problem, we want to rethrow it if it is
-    // a known type, otherwise log it.
-    if (problem != null) {
-      if (problem instanceof ServletException) {
-        throw (ServletException) problem;
-      }
-      if (problem instanceof IOException) {
-        throw (IOException) problem;
-      }
-      sendProcessingError(problem, response);
-    }
-
-    /**
-     * Commit any updates. What actually happens at that point is
-     * dependent on the type of attributes defined for use by the sessions.
-     */
-    if (session != null) {
-      session.commit();
-    }
-  }
-
-  /**
-   * Return the filter configuration object for this filter.
-   */
-  public FilterConfig getFilterConfig() {
-    return (this.filterConfig);
-  }
-
-  /**
-   * Set the filter configuration object for this filter.
-   *
-   * @param filterConfig The filter configuration object
-   */
-  public void setFilterConfig(FilterConfig filterConfig) {
-    this.filterConfig = filterConfig;
-  }
-
-  /**
-   * Destroy method for this filter
-   */
-  @Override
-  public void destroy() {
-    if (manager != null) {
-      manager.stop();
-    }
-  }
-
-  /**
-   * This is where all the initialization happens.
-   *
-   * @param config
-   * @throws ServletException
-   */
-  @Override
-  public void init(final FilterConfig config) {
-    LOG.info("Starting Session Filter initialization");
-    this.filterConfig = config;
-
-    if (started.getAndDecrement() > 0) {
-      /**
-       * Allow override for testing purposes
-       */
-      String managerClassStr =
-          config.getInitParameter("session-manager-class");
-
-      // Otherwise default
-      if (managerClassStr == null) {
-        managerClassStr = GemfireSessionManager.class.getName();
-      }
-
-      try {
-        manager = (SessionManager) Class.forName(
-            managerClassStr).newInstance();
-        manager.start(config, this.getClass().getClassLoader());
-      } catch (Exception ex) {
-        LOG.error("Exception creating Session Manager", ex);
-      }
-
-      startingLatch.countDown();
-    } else {
-      try {
-        startingLatch.await();
-      } catch (InterruptedException iex) {
-      }
-
-      LOG.debug("SessionManager and listener initialization skipped - "
-          + "already done.");
-    }
-
-    LOG.info("Session Filter initialization complete");
-    LOG.debug("Filter class loader {}", this.getClass().getClassLoader());
-  }
-
-  /**
-   * Return a String representation of this object.
-   */
-  @Override
-  public String toString() {
-    if (filterConfig == null) {
-      return ("SessionCachingFilter()");
-    }
-    StringBuilder sb = new StringBuilder("SessionCachingFilter(");
-    sb.append(filterConfig);
-    sb.append(")");
-    return (sb.toString());
-
-  }
-
-
-  private void sendProcessingError(Throwable t, ServletResponse response) {
-    String stackTrace = getStackTrace(t);
-
-    if (stackTrace != null && !stackTrace.equals("")) {
-      try {
-        response.setContentType("text/html");
-        PrintStream ps = new PrintStream(response.getOutputStream());
-        PrintWriter pw = new PrintWriter(ps);
-        pw.print(
-            "<html>\n<head>\n<title>Error</title>\n</head>\n<body>\n"); //NOI18N
-
-        // PENDING! Localize this for next official release
-        pw.print("<h1>The resource did not process correctly</h1>\n<pre>\n");
-        pw.print(stackTrace);
-        pw.print("</pre></body>\n</html>"); //NOI18N
-        pw.close();
-        ps.close();
-        response.getOutputStream().close();
-      } catch (Exception ex) {
-      }
-    } else {
-      try {
-        PrintStream ps = new PrintStream(response.getOutputStream());
-        t.printStackTrace(ps);
-        ps.close();
-        response.getOutputStream().close();
-      } catch (Exception ex) {
-      }
-    }
-  }
-
-  public static String getStackTrace(Throwable t) {
-    String stackTrace = null;
-    try {
-      StringWriter sw = new StringWriter();
-      PrintWriter pw = new PrintWriter(sw);
-      t.printStackTrace(pw);
-      pw.close();
-      sw.close();
-      stackTrace = sw.getBuffer().toString();
-    } catch (Exception ex) {
-    }
-    return stackTrace;
-  }
-
-  /**
-   * Retrieve the SessionManager. This is only here so that tests can get access
-   * to the cache.
-   */
-  public static SessionManager getSessionManager() {
-    return manager;
-  }
-
-  /**
-   * Return the GemFire session which wraps a native session
-   *
-   * @param nativeSession the native session for which the corresponding GemFire
-   *                      session should be returned.
-   * @return the GemFire session or null if no session maps to the native
-   * session
-   */
-  public static HttpSession getWrappingSession(HttpSession nativeSession) {
-        /*
-         * This is a special case where the GemFire session has been set as a
-         * ThreadLocal during session creation.
-         */
-    GemfireHttpSession gemfireSession = (GemfireHttpSession) ThreadLocalSession.get();
-    if (gemfireSession != null) {
-      gemfireSession.setNativeSession(nativeSession);
-      return gemfireSession;
-    }
-    return getSessionManager().getWrappingSession(nativeSession.getId());
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionListener.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionListener.java
deleted file mode 100644
index 7973bc5..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionListener.java
+++ /dev/null
@@ -1,51 +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.filter;
-
-import com.gemstone.gemfire.distributed.DistributedSystemDisconnectedException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.servlet.http.HttpSessionEvent;
-import javax.servlet.http.HttpSessionListener;
-
-public class SessionListener implements HttpSessionListener {
-
-  private static final Logger LOG =
-      LoggerFactory.getLogger(SessionListener.class.getName());
-
-  public void sessionCreated(HttpSessionEvent httpSessionEvent) {
-  }
-
-  /**
-   * This will receive events from the container using the native sessions.
-   */
-  public void sessionDestroyed(HttpSessionEvent event) {
-    String nativeId = event.getSession().getId();
-    try {
-      String sessionId = SessionCachingFilter.getSessionManager().destroyNativeSession(
-          nativeId);
-      LOG.debug(
-          "Received sessionDestroyed event for native session {} (wrapped by {})",
-          nativeId, sessionId);
-    } catch (DistributedSystemDisconnectedException dex) {
-      LOG.debug("Cache disconnected - unable to destroy native session {0}",
-          nativeId);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/Installer.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/Installer.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/Installer.java
deleted file mode 100644
index 7ba5b34..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/Installer.java
+++ /dev/null
@@ -1,296 +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.installer;
-
-import com.gemstone.gemfire.modules.session.installer.args.Argument;
-import com.gemstone.gemfire.modules.session.installer.args.ArgumentProcessor;
-import com.gemstone.gemfire.modules.session.installer.args.ArgumentValues;
-import com.gemstone.gemfire.modules.session.installer.args.UnknownArgumentHandler;
-import com.gemstone.gemfire.modules.session.installer.args.UsageException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- *
- */
-public class Installer {
-
-  private static final String GEMFIRE_FILTER_CLASS =
-      "com.gemstone.gemfire.modules.session.filter.SessionCachingFilter";
-
-  private static final String GEMFIRE_LISTENER_CLASS =
-      "com.gemstone.gemfire.modules.session.filter.SessionListener";
-
-  private ArgumentValues argValues;
-
-  private static final Argument ARG_HELP =
-      new Argument("-h", false).
-          setDescription("Displays this help message.");
-
-  private static Argument ARG_GEMFIRE_PARAMETERS =
-      new Argument("-p", false, "param=value").
-          setDescription("Specific parameter for inclusion into the "
-              + "session filter definition as a regular "
-              + "init-param. Can be given multiple times.");
-
-  private static Argument ARG_CACHE_TYPE =
-      new Argument("-t", false, "cache-type").
-          setDescription(
-              "Type of cache. Must be one of 'peer-to-peer' or "
-                  + "'client-server'. Default is peer-to-peer.").
-          setDefaults("peer-to-peer");
-
-  private static Argument ARG_WEB_XML_FILE =
-      new Argument("-w", true, "web.xml file").
-          setDescription("The web.xml file to be modified.");
-
-
-  /**
-   * Class main method
-   *
-   * @param args Arguments passed in via the command line
-   * @throws Exception in the event of any errors
-   */
-  public static void main(final String[] args) throws Exception {
-    new Installer(args).process();
-  }
-
-  public static void log(String message) {
-    System.err.println(message);
-  }
-
-
-  public Installer(String[] args) throws Exception {
-    final ArgumentProcessor processor = new ArgumentProcessor("Installer");
-
-    argValues = null;
-    try {
-      // These are ordered so as to keep the options alphabetical
-      processor.addArgument(ARG_HELP);
-      processor.addArgument(ARG_GEMFIRE_PARAMETERS);
-      processor.addArgument(ARG_CACHE_TYPE);
-      processor.addArgument(ARG_WEB_XML_FILE);
-
-      processor.setUnknownArgumentHandler(new UnknownArgumentHandler() {
-        @Override
-        public void handleUnknownArgument(
-            final String form, final String[] params) {
-          log("Unknown argument being ignored: "
-              + form + " (" + params.length + " params)");
-          log("Use '-h' argument to display usage");
-        }
-      });
-      argValues = processor.process(args);
-
-      if (argValues.isDefined(ARG_HELP)) {
-        final UsageException usageException =
-            new UsageException("Usage requested by user");
-        usageException.setUsage(processor.getUsage());
-        throw (usageException);
-      }
-
-    } catch (UsageException ux) {
-      final StringBuilder error = new StringBuilder();
-      error.append("\nERROR: ");
-      error.append(ux.getMessage());
-      error.append("\n");
-      if (ux.getUsage() != null) {
-        error.append(ux.getUsage());
-      }
-      log(error.toString());
-      System.exit(2);
-    }
-
-  }
-
-
-  /**
-   * The main entry point for processing
-   *
-   * @throws Exception if any errors occur.
-   */
-  public void process() throws Exception {
-    String argInputFile = argValues.getFirstResult(ARG_WEB_XML_FILE);
-
-    ByteArrayOutputStream output = new ByteArrayOutputStream();
-    InputStream input = new FileInputStream(argInputFile);
-
-    processWebXml(input, output);
-    input.close();
-
-    System.out.println(output.toString());
-  }
-
-
-  private void processWebXml(final InputStream webXml,
-      final OutputStream out) throws Exception {
-
-    Document doc = createWebXmlDoc(webXml);
-    mangleWebXml(doc);
-
-    streamXML(doc, out);
-  }
-
-
-  private Document createWebXmlDoc(final InputStream webXml)
-      throws Exception {
-    Document doc;
-    final DocumentBuilderFactory factory =
-        DocumentBuilderFactory.newInstance();
-    final DocumentBuilder builder = factory.newDocumentBuilder();
-    doc = builder.parse(webXml);
-
-    return doc;
-  }
-
-
-  private Document mangleWebXml(final Document doc) {
-    final Element docElement = doc.getDocumentElement();
-    final NodeList nodelist = docElement.getChildNodes();
-    Node firstFilter = null;
-    Node displayElement = null;
-    Node afterDisplayElement = null;
-
-    for (int i = 0; i < nodelist.getLength(); i++) {
-      final Node node = nodelist.item(i);
-      final String name = node.getNodeName();
-      if ("display-name".equals(name)) {
-        displayElement = node;
-      } else {
-        if ("filter".equals(name)) {
-          if (firstFilter == null) {
-            firstFilter = node;
-          }
-        }
-        if (displayElement != null && afterDisplayElement == null) {
-          afterDisplayElement = node;
-        }
-      }
-    }
-
-    Node initParam;
-    final Element filter = doc.createElement("filter");
-    append(doc, filter, "filter-name", "gemfire-session-filter");
-    append(doc, filter, "filter-class", GEMFIRE_FILTER_CLASS);
-
-    // Set the type of cache
-    initParam = append(doc, filter, "init-param", null);
-    append(doc, initParam, "param-name", "cache-type");
-    append(doc, initParam, "param-value",
-        argValues.getFirstResult(ARG_CACHE_TYPE));
-
-
-    if (argValues.isDefined(ARG_GEMFIRE_PARAMETERS)) {
-      for (String[] val : argValues.getAllResults(ARG_GEMFIRE_PARAMETERS)) {
-        String gfParam = val[0];
-        int idx = gfParam.indexOf("=");
-        initParam = append(doc, filter, "init-param", null);
-        append(doc, initParam, "param-name", gfParam.substring(0, idx));
-        append(doc, initParam, "param-value", gfParam.substring(idx + 1));
-      }
-    }
-
-    Node first = firstFilter;
-    if (first == null) {
-      if (afterDisplayElement != null) {
-        first = afterDisplayElement;
-      }
-    }
-    if (first == null) {
-      first = docElement.getFirstChild();
-    }
-    docElement.insertBefore(filter, first);
-    final Element filterMapping = doc.createElement("filter-mapping");
-    append(doc, filterMapping, "filter-name", "gemfire-session-filter");
-    append(doc, filterMapping, "url-pattern", "/*");
-    append(doc, filterMapping, "dispatcher", "FORWARD");
-    append(doc, filterMapping, "dispatcher", "INCLUDE");
-    append(doc, filterMapping, "dispatcher", "REQUEST");
-    append(doc, filterMapping, "dispatcher", "ERROR");
-    final Element contextListener = doc.createElement("listener");
-    append(doc, contextListener, "listener-class", GEMFIRE_LISTENER_CLASS);
-    docElement.insertBefore(filterMapping, after(docElement, "filter"));
-    docElement.insertBefore(contextListener,
-        after(docElement, "filter-mapping"));
-    return doc;
-  }
-
-  private Node after(final Node parent, final String nodeName) {
-    final NodeList nodelist = parent.getChildNodes();
-    int index = -1;
-    for (int i = 0; i < nodelist.getLength(); i++) {
-      final Node node = nodelist.item(i);
-      final String name = node.getNodeName();
-      if (nodeName.equals(name)) {
-        index = i;
-      }
-    }
-    if (index == -1)
-      return null;
-    if (nodelist.getLength() > (index + 1)) {
-      return nodelist.item(index + 1);
-    }
-    return null;
-  }
-
-  private Node append(final Document doc, final Node parent,
-      final String element,
-      final String value) {
-    final Element child = doc.createElement(element);
-    if (value != null)
-      child.setTextContent(value);
-    parent.appendChild(child);
-    return child;
-  }
-
-  private void streamXML(final Document doc, final OutputStream out) {
-    try {// Use a Transformer for output
-      final TransformerFactory tFactory = TransformerFactory.newInstance();
-      final Transformer transformer = tFactory.newTransformer();
-      if (doc.getDoctype() != null) {
-        final String systemId = doc.getDoctype().getSystemId();
-        final String publicId = doc.getDoctype().getPublicId();
-        transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, publicId);
-        transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, systemId);
-      }
-      transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-      transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount",
-          "4");
-      final DOMSource source = new DOMSource(doc);
-      final StreamResult result = new StreamResult(out);
-      transformer.transform(source, result);
-    } catch (final Exception e) {
-      e.printStackTrace();
-    }
-  }
-
-}


[11/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AdminDistributedSystemJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AdminDistributedSystemJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AdminDistributedSystemJmxImpl.java
deleted file mode 100755
index 19b0b04..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AdminDistributedSystemJmxImpl.java
+++ /dev/null
@@ -1,2341 +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.admin.jmx.internal;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TimerTask;
-import java.util.UUID;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import javax.management.MBeanException;
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.ObjectName;
-import javax.management.RuntimeMBeanException;
-import javax.management.RuntimeOperationsException;
-import javax.management.modelmbean.ModelMBean;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenDataException;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
-import javax.management.openmbean.TabularData;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.CacheServer;
-import com.gemstone.gemfire.admin.CacheServerConfig;
-import com.gemstone.gemfire.admin.CacheVm;
-import com.gemstone.gemfire.admin.CacheVmConfig;
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-import com.gemstone.gemfire.admin.DistributionLocator;
-import com.gemstone.gemfire.admin.DistributionLocatorConfig;
-import com.gemstone.gemfire.admin.GemFireHealth;
-import com.gemstone.gemfire.admin.SystemMember;
-import com.gemstone.gemfire.admin.SystemMemberCacheEvent;
-import com.gemstone.gemfire.admin.SystemMemberCacheListener;
-import com.gemstone.gemfire.admin.SystemMemberRegionEvent;
-import com.gemstone.gemfire.admin.SystemMemberType;
-import com.gemstone.gemfire.admin.internal.AdminDistributedSystemImpl;
-import com.gemstone.gemfire.admin.internal.CacheServerConfigImpl;
-import com.gemstone.gemfire.admin.internal.DistributionLocatorImpl;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.admin.Alert;
-import com.gemstone.gemfire.internal.admin.ApplicationVM;
-import com.gemstone.gemfire.internal.admin.ClientMembershipMessage;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.GfManagerAgent;
-import com.gemstone.gemfire.internal.admin.StatAlert;
-import com.gemstone.gemfire.internal.admin.StatAlertDefinition;
-import com.gemstone.gemfire.internal.admin.remote.UpdateAlertDefinitionMessage;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * Provides MBean support for managing a GemFire distributed system.
- * <p>
- * TODO: refactor to implement DistributedSystem and delegate to instance of
- * DistributedSystemImpl. Wrap all delegate calls w/ e.printStackTrace() since 
- * the HttpAdaptor devours them (what to do w/ template methods then?)
- *
- * @author    Kirk Lund
- * @since     3.5
- */
-public class AdminDistributedSystemJmxImpl 
-              extends AdminDistributedSystemImpl
-              implements ManagedResource, DistributedSystemConfig, StatAlertsAggregator {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  private Properties mailProps;
-
-  // The file name where the StatAlertDefinitions would be serialized
-  private String statAlertDefnSerFile = System.getProperty("user.dir");
-  
-  /** 
-   * Simple counter incrementing on each notification.  This this currently 
-   * resets at every restart of Agent
-   */
-  private final AtomicInteger notificationSequenceNumber = new AtomicInteger();
-
-  /**
-   * Variable to indicate if there are no Rmi clients connected.
-   */
-  private volatile boolean isRmiClientCountZero;
-
-  /**
-   * Variable to indicate if Statistics Alert definitions could be persisted 
-   * across runs/sessions.
-   */
-  private volatile boolean canPersistStatAlertDefs = true;
-
-  /** Cache Listener to listen to Cache & Region create/destroy events */
-  private CacheAndRegionListenerImpl cacheRegionListener;
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Constructs new DistributedSystemJmxImpl and registers an MBean to represent
-   * it.
-   * 
-   * @param config
-   *          configuration defining the JMX agent.
-   */
-  public AdminDistributedSystemJmxImpl(AgentConfigImpl config)
-      throws com.gemstone.gemfire.admin.AdminException {
-    super(config);
-    this.mbeanName = "GemFire:type=AdminDistributedSystem,id="
-        + MBeanUtil.makeCompliantMBeanNameProperty(getId());
-    this.objectName = MBeanUtil.createMBean(this);
-    isEmailNotificationEnabled = config.isEmailNotificationEnabled();
-    if (isEmailNotificationEnabled) {
-      initMailProps(config);
-    }
-    // Init file name for StatAlertDefns
-    initStateSaveFile(config);
-    Assert.assertTrue(this.objectName != null);
-
-    cacheRegionListener = new CacheAndRegionListenerImpl(this);
-  }
-
-  private void initMailProps(AgentConfigImpl config) {
-    mailProps = new Properties();
-    mailProps.put(MailManager.PROPERTY_MAIL_FROM, 
-                    config.getEmailNotificationFrom());
-    mailProps.put(MailManager.PROPERTY_MAIL_HOST, 
-                    config.getEmailNotificationHost());
-    mailProps.put(MailManager.PROPERTY_MAIL_TO_LIST, 
-                    config.getEmailNotificationToList());
-  }
-
-  private void initStateSaveFile(AgentConfigImpl agentConfig) {
-    // Init file name for StatAlertDefns
-    AgentConfigImpl impl = (AgentConfigImpl) agentConfig;
-    File propFile = impl.getPropertyFile();
-
-    if (propFile!=null) {
-     if (propFile.isDirectory()) {
-       statAlertDefnSerFile = propFile.getAbsolutePath();
-     } else if (propFile.getParentFile()!=null) {
-       statAlertDefnSerFile = propFile.getParentFile().getAbsolutePath();
-     }
-    }
-
-    statAlertDefnSerFile = statAlertDefnSerFile + File.separator + agentConfig.getStateSaveFile();
-  }
-  
-  // -------------------------------------------------------------------------
-  //   MBean operations
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Registers the MBeans for monitoring the health of GemFire 
-   *
-   * @see com.gemstone.gemfire.admin.internal.AdminDistributedSystemImpl#getGemFireHealth
-   */
-  public ObjectName monitorGemFireHealth() throws MalformedObjectNameException {
-    GemFireHealthJmxImpl health = (GemFireHealthJmxImpl) getGemFireHealth();
-    health.ensureMBeansAreRegistered();
-    return health.getObjectName();
-  }
-
-  /**
-   * Creates a new DistributionLocator for this system and registers an MBean
-   * for managing it.
-   * <p>
-   * If the Locator already exists, then this will simply register an MBean
-   * for it.
-   *
-   * @param host              the host name or IP address of the locator
-   * @param port              the port the locator service listens on
-   * @param workingDirectory  directory path for the locator and its log
-   * @param productDirectory  directory path to the GemFire product to use 
-   */
-  public ObjectName createDistributionLocator(String host,
-                                              int port,
-                                              String workingDirectory,
-                                              String productDirectory) 
-                                       throws MalformedObjectNameException {
-    return createDistributionLocator(
-        host, port, workingDirectory, productDirectory, getRemoteCommand());
-  }
-  
-  /**
-   * Creates a new DistributionLocator for this system and registers an MBean
-   * for managing it.
-   * <p>
-   * If the Locator already exists, then this will simply register an MBean
-   * for it.
-   *
-   * @param host              the host name or IP address of the locator
-   * @param port              the port the locator service listens on
-   * @param workingDirectory  directory path for the locator and its log
-   * @param productDirectory  directory path to the GemFire product to use 
-   * @param remoteCommand     formatted remote command to control remotely
-   */
-  public ObjectName createDistributionLocator(String host,
-                                              int port,
-                                              String workingDirectory,
-                                              String productDirectory,
-                                              String remoteCommand) 
-                                       throws MalformedObjectNameException {
-    try {
-      DistributionLocatorJmxImpl locator =
-        (DistributionLocatorJmxImpl) addDistributionLocator();
-      
-      DistributionLocatorConfig config = locator.getConfig();
-      config.setHost(host);
-      config.setPort(port);
-      config.setWorkingDirectory(workingDirectory);
-      config.setProductDirectory(productDirectory);
-      config.setRemoteCommand(remoteCommand);
-
-      return new ObjectName(locator.getMBeanName());
-    } catch (RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Template methods overriden from superclass...
-  // -------------------------------------------------------------------------
-  
-  /** Override createSystemMember by instantiating SystemMemberJmxImpl */
-  @Override
-  protected SystemMember createSystemMember(ApplicationVM app)
-  throws com.gemstone.gemfire.admin.AdminException {
-    return new SystemMemberJmxImpl(this, app);
-  }
-
-  /**
-   * Constructs & returns a SystemMember instance using the corresponding
-   * InternalDistributedMember object.
-   * 
-   * @param member
-   *          InternalDistributedMember instance for which a SystemMember
-   *          instance is to be constructed.
-   * @return constructed SystemMember instance
-   * @throws com.gemstone.gemfire.admin.AdminException
-   *           if construction of SystemMember instance fails
-   *
-   * @since 6.5
-   */
-  protected SystemMember createSystemMember(InternalDistributedMember member)
-      throws com.gemstone.gemfire.admin.AdminException {
-    return new SystemMemberJmxImpl(this, member);
-  }
-  
-
-  @Override
-  protected CacheServer createCacheServer(ApplicationVM member) 
-    throws AdminException {
-
-    return new CacheServerJmxImpl(this, member);
-  }
-
-  @Override
-  protected CacheServer createCacheServer(CacheServerConfigImpl config) 
-    throws AdminException {
-
-    return new CacheServerJmxImpl(this, config);
-  }
-
-  /** Override createGemFireHealth by instantiating GemFireHealthJmxImpl */
-  @Override
-  protected GemFireHealth createGemFireHealth(GfManagerAgent system) 
-    throws com.gemstone.gemfire.admin.AdminException {
-    if (system == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemJmxImpl_GFMANAGERAGENT_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    return new GemFireHealthJmxImpl(system, this);
-  }
-  
-  /** Template-method for creating a DistributionLocatorImpl instance. */
-  @Override
-  protected DistributionLocatorImpl 
-    createDistributionLocatorImpl(DistributionLocatorConfig config) {
-    return new DistributionLocatorJmxImpl(config, this);
-  }
-
-  // -------------------------------------------------------------------------
-  //   Internal Admin listeners and JMX Notifications
-  // -------------------------------------------------------------------------
-  
-  /** Notification type for indicating system member joined */
-  public static final String NOTIF_MEMBER_JOINED = 
-                             "gemfire.distributedsystem.member.joined";
-  /** Notification type for indicating system member left */
-  public static final String NOTIF_MEMBER_LEFT = 
-                             "gemfire.distributedsystem.member.left";
-  /** Notification type for indicating system member crashed */
-  public static final String NOTIF_MEMBER_CRASHED = 
-                             "gemfire.distributedsystem.member.crashed";
-  /** Notification type for sending GemFire alerts as JMX notifications */
-  public static final String NOTIF_ALERT = 
-                             "gemfire.distributedsystem.alert";
-  /** Notification type for sending GemFire StatAlerts as JMX notifications */
-  public static final String NOTIF_STAT_ALERT = 
-    "gemfire.distributedsystem.statalert";
-  /** Notification type for indicating abnormal disconnection from the distributed system */
-  public static final String NOTIF_ADMIN_SYSTEM_DISCONNECT = 
-    "gemfire.distributedsystem.disconnect";
-  
-  
-  private static final String EML_SUBJ_PRFX_GFE_ALERT = "[GemFire Alert] ";
-  private static final String EML_SUBJ_PRFX_GFE_NOTFY = "[GemFire Notification] ";
-  private static final String EML_SUBJ_ITEM_GFE_DS = "Distributed System: ";
-
-  // --------- com.gemstone.gemfire.internal.admin.JoinLeaveListener ---------
-  /** 
-   * Listener callback for when a member has joined this DistributedSystem.
-   * <p>
-   * React by creating an MBean for managing the SystemMember and then fire
-   * a Notification with the internal Id of the member VM.
-   *
-   * @param source  the distributed system that fired nodeJoined
-   * @param joined  the VM that joined
-   * @see com.gemstone.gemfire.internal.admin.JoinLeaveListener#nodeJoined
-   */
-  @Override
-  public void nodeJoined(GfManagerAgent source, GemFireVM joined) {
-    try {
-      super.nodeJoined(source, joined);
-      
-      /* super.nodeJoined results in creation of a new SystemMember which 
-       * registers itself as an MBean, so now we try to find it...
-       */
-      SystemMember member = findSystemMember(joined);
-      
-      if(null == member) {
-        if (logger.isDebugEnabled()) {
-          logger.debug("AdminDistributedSystemJmxImpl.nodeJoined(), Could not find SystemMember for VM {}", joined);
-        }
-        return;
-      }
-      
-      try {
-        if (logger.isDebugEnabled()) {
-          logger.debug("Processing node joined for: {}", member);
-          logger.debug("RemoteGemFireVM.nodeJoined(), setting alerts manager *************");
-        }
-        setAlertsManager(joined);
-        
-        this.modelMBean.sendNotification(new Notification(
-            NOTIF_MEMBER_JOINED,
-            ((ManagedResource)member).getObjectName(), // Pass the ObjName of the Source Member
-            notificationSequenceNumber.addAndGet(1),
-            joined.getId().toString()));
-
-//      String mess = "Gemfire AlertNotification: System Member Joined, System member Id: " + joined.getId().toString();
-//      sendEmail("Gemfire AlertNotification: Member Joined, ID: " + joined.getId().toString(), mess);
-        if (isEmailNotificationEnabled) {
-          String mess = LocalizedStrings.AdminDistributedSystemJmxImpl_MEMBER_JOINED_THE_DISTRIBUTED_SYSTEM_MEMBER_ID_0.toLocalizedString(new Object[] {joined.getId().toString()} );
-        	sendEmail(
-        	    EML_SUBJ_PRFX_GFE_NOTFY + EML_SUBJ_ITEM_GFE_DS + getName() + " <" 
-        	    + LocalizedStrings.AdminDistributedSystemJmxImpl_MEMBER_JOINED.toLocalizedString() +">", 
-        	    mess);
-        }
-      } catch (javax.management.MBeanException e) {
-        logger.warn(e.getMessage(), e);
-      }
-    } catch (RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-  
-  /** 
-   * Listener callback for when a member has left this DistributedSystem.
-   * <p>
-   * React by removing the member's MBean.
-   * Also fire a Notification with the internal Id of the member VM.
-   *
-   * @param source  the distributed system that fired nodeLeft
-   * @param left    the VM that left
-   * @see com.gemstone.gemfire.internal.admin.JoinLeaveListener#nodeLeft
-   */
-  @Override
-  public void nodeLeft(GfManagerAgent source, GemFireVM left) {
-    try {
-      SystemMember member = findSystemMember(left, false);
-      super.nodeLeft(source, left);
-      if (logger.isDebugEnabled()) {
-        logger.debug("Processing node left for: {}", member);
-      }
-      try {
-        this.modelMBean.sendNotification(new Notification(
-            NOTIF_MEMBER_LEFT,
-            ((ManagedResource)member).getObjectName(), // Pass the ObjName of the Source Member
-            notificationSequenceNumber.addAndGet(1),
-            left.getId().toString()));
-
-//        String mess = "Gemfire AlertNotification: System Member Left the system, System member Id: " + left.getId().toString();
-//        sendEmail("Gemfire AlertNotification: Member Left, ID: " + left.getId().toString(), mess);
-        if (isEmailNotificationEnabled) {
-          String mess = LocalizedStrings.AdminDistributedSystemJmxImpl_MEMBER_LEFT_THE_DISTRIBUTED_SYSTEM_MEMBER_ID_0.toLocalizedString(new Object[] {left.getId().toString()} );
-        	sendEmail( 
-        	    EML_SUBJ_PRFX_GFE_NOTFY + EML_SUBJ_ITEM_GFE_DS + getName() + " <" 
-        	    + LocalizedStrings.AdminDistributedSystemJmxImpl_MEMBER_LEFT.toLocalizedString() +">", 
-        	    mess);
-        }
-      } catch (javax.management.MBeanException e) { 
-        logger.warn(e.getMessage(), e);
-      }
-      
-      SystemMemberType memberType = member.getType();  
-      if (/* member != null && */ memberType.isApplication() || memberType.isCacheVm()) {
-        // automatically unregister the MBean...
-        MBeanUtil.unregisterMBean((ManagedResource) member);
-      }
-    } catch (RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-  
-  /** 
-   * Listener callback for when a member of this DistributedSystem has crashed.
-   * <p>
-   * Also fires a Notification with the internal Id of the member VM.
-   *
-   * @param source  the distributed system that fired nodeCrashed
-   * @param crashed the VM that crashed
-   * @see com.gemstone.gemfire.internal.admin.JoinLeaveListener#nodeCrashed
-   */
-  @Override
-  public void nodeCrashed(GfManagerAgent source, GemFireVM crashed) {
-    try {
-      // SystemMember application has left...
-      SystemMember member = findSystemMember(crashed, false);
-      super.nodeCrashed(source, crashed);
-      if (logger.isDebugEnabled()) {
-        logger.debug("Processing node crash for: {}", member);
-      }
-      
-      try {
-        this.modelMBean.sendNotification(new Notification(
-            NOTIF_MEMBER_CRASHED,
-            ((ManagedResource)member).getObjectName(), // Pass the ObjName of the Source Member
-            notificationSequenceNumber.addAndGet(1),
-            crashed.getId().toString()));
-        
-//        String mess = "Gemfire AlertNotification: System Member Crashed, System member Id: " + crashed.getId().toString();
-//        sendEmail("Gemfire AlertNotification: Member Crashed, ID: " + crashed.getId().toString(), mess);
-        if (isEmailNotificationEnabled) {
-          String mess = LocalizedStrings.AdminDistributedSystemJmxImpl_MEMBER_CRASHED_IN_THE_DISTRIBUTED_SYSTEM_MEMBER_ID_0.toLocalizedString(new Object[] {crashed.getId().toString()} );
-        	sendEmail(
-        	    EML_SUBJ_PRFX_GFE_ALERT + EML_SUBJ_ITEM_GFE_DS + getName() + " <" 
-        	    + LocalizedStrings.AdminDistributedSystemJmxImpl_MEMBER_CRASHED.toLocalizedString() +">", 
-        	    mess);
-        }
-      } catch (javax.management.MBeanException e) {
-        logger.warn(e.getMessage(), e);
-      }
-
-      SystemMemberType memberType = member.getType();
-      if (/* member != null && */ memberType.isApplication() || memberType.isCacheVm()) {
-        // automatically unregister the MBean...
-        MBeanUtil.unregisterMBean((ManagedResource) member);
-      }
-    } catch (RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-
-  // ----------- com.gemstone.gemfire.internal.admin.AlertListener -----------
-  /** 
-   * Listener callback for when a SystemMember of this DistributedSystem has 
-   * crashed.
-   * <p>
-   * Fires a Notification with the information from the alert.
-   *
-   * @param alert the gemfire alert to broadcast as a notification
-   * @see com.gemstone.gemfire.internal.admin.AlertListener#alert
-   */
-  @Override
-  public void alert(Alert alert) {
-    try {
-      super.alert(alert);
-      try {
-        String strAlert = alert.toString();
-        this.modelMBean.sendNotification(new Notification(
-            NOTIF_ALERT,
-            this.mbeanName,
-            notificationSequenceNumber.addAndGet(1),
-            strAlert));
-        
-//        String mess = "Gemfire AlertNotification: System Alert :" + alert.toString();
-//        sendEmail("Gemfire AlertNotification: System Alert", mess);
-        if (isEmailNotificationEnabled) {
-          String mess = LocalizedStrings.AdminDistributedSystemJmxImpl_SYSTEM_ALERT_FROM_DISTRIBUTED_SYSTEM_0.toLocalizedString(strAlert);
-        	sendEmail( EML_SUBJ_PRFX_GFE_ALERT + EML_SUBJ_ITEM_GFE_DS + getName() + " <System Alert>", mess);
-        }
-      } catch (javax.management.MBeanException e) {
-        logger.warn(e.getMessage(), e);
-      }
-    } catch (RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-  
-  @Override
-  public void onDisconnect(InternalDistributedSystem sys) {
-    if (logger.isDebugEnabled()) {
-      this.logger.debug("Calling AdminDistributedSystemJmxImpl#onDisconnect");
-    }
-  	try {
-  		super.onDisconnect(sys);
-  		
-  		try {
-  			this.modelMBean.sendNotification(new Notification(
-  			        NOTIF_ADMIN_SYSTEM_DISCONNECT,
-  			        this.mbeanName,
-  			        notificationSequenceNumber.addAndGet(1),
-  			        null));
-  		} catch (MBeanException e) {
-  		  logger.warn(e.getMessage(), e);	
-  		}
-  	} catch (RuntimeException e) {
-  	  logger.warn(e.getMessage(), e);
-  	  throw e;
-  	} catch (VirtualMachineError err) {
-  	  SystemFailure.initiateFailure(err);
-  	  // If this ever returns, rethrow the error. We're poisoned
-  	  // now, so don't let this thread continue.
-  	  throw err;
-  	} catch (Error e) {
-  	  // Whenever you catch Error or Throwable, you must also
-  	  // catch VirtualMachineError (see above). However, there is
-  	  // _still_ a possibility that you are dealing with a cascading
-  	  // error condition, so you also need to check to see if the JVM
-  	  // is still usable:
-  	  SystemFailure.checkFailure();
-  	  logger.error(e.getMessage(), e);
-  	  throw e;
-  	}
-  	if (logger.isDebugEnabled()) {
-  	  this.logger.debug("Completed AdminDistributedSystemJmxImpl#onDisconnect");
-  	}
-  }
-  
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The remotable ObjectName that the  MBean is registered under */
-  final private ObjectName objectName;
-  
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-	public String getMBeanName() {
-		return this.mbeanName;
-	}
-  
-	public ModelMBean getModelMBean() {
-		return this.modelMBean;
-	}
-	public void setModelMBean(ModelMBean modelMBean) {
-		this.modelMBean = modelMBean;
-	}
-
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.DISTRIBUTED_SYSTEM;
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Error traps added to overridden methods...
-  // -------------------------------------------------------------------------
-  
-  @Override
-  public boolean isRunning() {
-    try {
-      return super.isRunning();
-    } catch (java.lang.RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (java.lang.Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-
-  @Override
-  public void start() throws AdminException {
-    try {
-      super.start();
-    } catch (java.lang.RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (java.lang.Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-  
-  @Override
-  public void stop() throws AdminException {
-    try {
-      super.stop();
-    } catch (java.lang.RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (java.lang.Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-
-  @Override
-  public boolean waitToBeConnected(long timeout)
-    throws InterruptedException {
-
-    if (Thread.interrupted()) throw new InterruptedException();
-    try {
-      return super.waitToBeConnected(timeout);
-    } catch (java.lang.RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (java.lang.Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-
-  @Override
-  public String displayMergedLogs() {
-    try {
-      return super.displayMergedLogs();
-    } catch (java.lang.RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (java.lang.Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-
-  public ObjectName manageDistributionLocator()
-    throws MalformedObjectNameException {
-
-    try {
-      return new ObjectName(((ManagedResource) addDistributionLocator()).getMBeanName());
-    }
-//     catch (AdminException e) { logger.warn(e.getMessage(), e); throw e; }
-    catch (RuntimeException e) {
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-
-  public ObjectName[] manageDistributionLocators() 
-  throws MalformedObjectNameException {
-    try {
-      DistributionLocator[] locs = getDistributionLocators();
-      ObjectName[] onames = new javax.management.ObjectName[locs.length];
-      for (int i = 0; i < locs.length; i++) {
-        DistributionLocatorJmxImpl loc = (DistributionLocatorJmxImpl) locs[i];
-        onames[i] = new ObjectName(loc.getMBeanName());
-      }
-      return onames;
-    }
-    //catch (AdminException e) { logger.warn(e.getMessage(), e); throw e; }
-    catch (RuntimeException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e); 
-      throw e; 
-    }
-  }
-    
-  /**
-   * @deprecated as of 5.7 use {@link #manageCacheVm} instead.
-   */
-  @Deprecated
-  public ObjectName manageCacheServer()
-  throws AdminException, MalformedObjectNameException {
-    return manageCacheVm();
-  }
-  public ObjectName manageCacheVm()
-  throws AdminException, MalformedObjectNameException {
-    try {
-      return new ObjectName(((ManagedResource) addCacheVm()).getMBeanName());
-    } catch (AdminException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (RuntimeException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.warn(e.getMessage(), e);
-      throw e; 
-    }
-  }
-
-  /**
-   * @deprecated as of 5.7 use {@link #manageCacheVms} instead.
-   */
-  @Deprecated
-  public ObjectName[] manageCacheServers()
-  throws AdminException, MalformedObjectNameException {
-    return manageCacheVms();
-  }
-
-  public ObjectName[] manageCacheVms()
-  throws AdminException, MalformedObjectNameException {
-    try {
-      CacheVm[] mgrs = getCacheVms();
-      ObjectName[] onames = new javax.management.ObjectName[mgrs.length];
-      for (int i = 0; i < mgrs.length; i++) {
-        CacheServerJmxImpl mgr = (CacheServerJmxImpl) mgrs[i];
-        onames[i] = new ObjectName(mgr.getMBeanName());
-      }
-      return onames;
-    } catch (AdminException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (RuntimeException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e; 
-    }
-  }
-
-  public ObjectName[] manageSystemMemberApplications()
-  throws AdminException, MalformedObjectNameException {
-    try {
-      SystemMember[] apps = getSystemMemberApplications();
-      ObjectName[] onames = new javax.management.ObjectName[apps.length];
-      for (int i = 0; i < apps.length; i++) {
-        SystemMemberJmxImpl app = (SystemMemberJmxImpl) apps[i];
-        onames[i] = new ObjectName(app.getMBeanName());
-      }
-      return onames;
-    } catch (AdminException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (RuntimeException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e; 
-    }
-  }
-  
-  /**
-   * Return the ObjectName for the SystemMemberMBean representing the
-   * specified distributed member or null if the member is not found.
-   *
-   * @param distributedMember the distributed member to manage
-   * @return the ObjectName for the SystemMemberMBean
-   */
-  public ObjectName manageSystemMember(DistributedMember distributedMember)
-  throws AdminException, MalformedObjectNameException {
-    try {
-      SystemMember member = lookupSystemMember(distributedMember);
-      if (member == null) return null;
-      SystemMemberJmxImpl jmx = (SystemMemberJmxImpl) member;
-      ObjectName oname = new ObjectName(jmx.getMBeanName());
-      return oname;
-    } catch (AdminException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (RuntimeException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e; 
-    }
-  }
-  
-  @Override
-  public void connect(InternalLogWriter logWriter) {
-    try {
-      // LOG: passes the AdminDistributedSystemImpl LogWriterLogger into GfManagerAgentConfig
-      super.connect(logWriter);
-      
-      // Load existing StatAlert Definitions
-      readAlertDefinitionsAsSerializedObjects();
-
-      /* Add Cache Listener to listen to Cache & Region create/destroy events */
-      if (logger.isDebugEnabled()) {
-        logger.debug("Adding CacheAndRegionListener .... ");
-      }
-      addCacheListener(cacheRegionListener);
-    } catch (RuntimeException e) { 
-      logger.warn(e.getMessage(), e);
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e; 
-    }
-  }
-  
-  @Override
-  public void disconnect() {
-    try {
-      super.disconnect();
-      
-      // Save existing StatAlert Definitions
-      saveAlertDefinitionsAsSerializedObjects();
-
-      /* Remove Cache Listener to listen to Cache & Region create/destroy events */
-      if (logger.isDebugEnabled()) {
-        logger.debug("Removing CacheAndRegionListener .... ");
-      }
-      removeCacheListener(cacheRegionListener);      
-    } catch (RuntimeException e) { 
-      logger.warn(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, re-throw the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-
-  public void cleanupResource() {
-    disconnect();
-  }
-  
-  /**
-   * @return the isRmiClientCountZero
-   * @since 6.0
-   */
-  public boolean isRmiClientCountZero() {
-    return isRmiClientCountZero;
-  }
-
-  /**
-   * @param isRmiClientCountZero the isJmxClientCountZero to set
-   * @since 6.0
-   */
-  void setRmiClientCountZero(boolean isRmiClientCountZero) {
-    this.isRmiClientCountZero = isRmiClientCountZero;
-    
-    if (isRmiClientCountZero) {
-      logger.info(LocalizedStrings.AdminDistributedSystemJmxImpl_JMX_CLIENT_COUNT_HAS_DROPPED_TO_ZERO);
-    }
-  }
-
-
-  ///////////////////////  Configuration  ///////////////////////
-
-  public String getEntityConfigXMLFile() {
-    return this.getConfig().getEntityConfigXMLFile();
-  }
-
-  public void setEntityConfigXMLFile(String xmlFile) {
-    this.getConfig().setEntityConfigXMLFile(xmlFile);
-  }
-
-  public String getSystemId() {
-    return this.getConfig().getSystemId();
-  }
-
-  public void setSystemId(String systemId) {
-    this.getConfig().setSystemId(systemId);
-  }
-
-  @Override
-  public String getSystemName() {
-    return this.getConfig().getSystemName();
-  }
-
-  public void setSystemName(final String name) {
-    this.getConfig().setSystemName(name);
-  }
-    
-  @Override
-  public boolean getDisableTcp() {
-    return this.getConfig().getDisableTcp();
-  }
-
-  public void setEnableNetworkPartitionDetection(boolean newValue) {
-    getConfig().setEnableNetworkPartitionDetection(newValue);
-  }
-  public boolean getEnableNetworkPartitionDetection() {
-    return getConfig().getEnableNetworkPartitionDetection();
-  }
-  public int getMemberTimeout() {
-   return getConfig().getMemberTimeout();
-  }
-  public void setMemberTimeout(int value) {
-    getConfig().setMemberTimeout(value);
-  }
-  
-  @Override
-  public String getMcastAddress() {
-    return this.getConfig().getMcastAddress();
-  }
-
-  public void setMcastAddress(String mcastAddress) {
-    this.getConfig().setMcastAddress(mcastAddress);
-  }
-
-  @Override
-  public int getMcastPort() {
-    return this.getConfig().getMcastPort();
-  }
-  
-  public void setMcastPort(int mcastPort) {
-    this.getConfig().setMcastPort(mcastPort);
-  }
-
-  public int getAckWaitThreshold() {
-    return getConfig().getAckWaitThreshold();
-  }
-  
-  public void setAckWaitThreshold(int seconds) {
-    getConfig().setAckWaitThreshold(seconds);
-  }
-
-  public int getAckSevereAlertThreshold() {
-    return getConfig().getAckSevereAlertThreshold();
-  }
-  
-  public void setAckSevereAlertThreshold(int seconds) {
-    getConfig().setAckSevereAlertThreshold(seconds);
-  }
-
-  @Override
-  public String getLocators() {
-    return this.getConfig().getLocators();
-  }
-
-  @Override
-  public void setLocators(String locators) {
-    this.getConfig().setLocators(locators);
-  }
-  
-  /* Note that the getter & setter for membership port range are referred from 
-   * the super class AdminDistributedSystemImpl */
-
-  public String getBindAddress() {
-    return this.getConfig().getBindAddress();
-  }
-
-  public void setBindAddress(String bindAddress) {
-    this.getConfig().setBindAddress(bindAddress);
-  }
-  
-  public String getServerBindAddress() {
-    return this.getConfig().getServerBindAddress();
-  }
-
-  public void setServerBindAddress(String bindAddress) {
-    this.getConfig().setServerBindAddress(bindAddress);
-  }
-
-  @Override
-  public String getRemoteCommand() {
-    return this.getConfig().getRemoteCommand();
-  }
-
-  @Override
-  public void setRemoteCommand(String command) {
-    this.getConfig().setRemoteCommand(command);
-  }
-
-  public boolean isSSLEnabled() {
-    return this.getConfig().isSSLEnabled();
-  }
-
-  public void setSSLEnabled(boolean enabled) {
-    this.getConfig().setSSLEnabled(enabled);
-  }
-
-  public String getSSLProtocols() {
-    return this.getConfig().getSSLProtocols();
-  }
-
-  public void setSSLProtocols(String protocols) {
-    this.getConfig().setSSLProtocols(protocols);
-  }
-
-  public String getSSLCiphers() {
-    return this.getConfig().getSSLCiphers();
-  }
-
-  public void setSSLCiphers(String ciphers) {
-    this.getConfig().setSSLCiphers(ciphers);
-  }
-
-  public boolean isSSLAuthenticationRequired() {
-    return this.getConfig().isSSLAuthenticationRequired();
-  }
-
-  public void setSSLAuthenticationRequired(boolean authRequired) {
-    this.getConfig().setSSLAuthenticationRequired(authRequired);
-  }
-  
-  public Properties getSSLProperties() {
-    return this.getConfig().getSSLProperties();
-  }
-
-  public void setSSLProperties(Properties sslProperties) {
-    this.getConfig().setSSLProperties(sslProperties);
-  }
-
-  public void addSSLProperty(String key, String value) {
-    this.getConfig().addSSLProperty(key, value);
-  }
-
-  public void removeSSLProperty(String key) {
-    this.getConfig().removeSSLProperty(key);
-  }
-  
-  public String getLogFile() {
-    return this.getConfig().getLogFile();
-  }
-
-  public void setLogFile(String logFile) {
-    this.getConfig().setLogFile(logFile);
-  }
-
-  public String getLogLevel() {
-    return this.getConfig().getLogLevel();
-  }
-
-  public void setLogLevel(String logLevel) {
-    this.getConfig().setLogLevel(logLevel);
-  }
-
-  public int getLogDiskSpaceLimit() {
-    return this.getConfig().getLogDiskSpaceLimit();
-  }
-
-  public void setLogDiskSpaceLimit(int limit) {
-    this.getConfig().setLogDiskSpaceLimit(limit);
-  }
-
-  public int getLogFileSizeLimit() {
-    return this.getConfig().getLogFileSizeLimit();
-  }
-
-  public void setLogFileSizeLimit(int limit) {
-    this.getConfig().setLogFileSizeLimit(limit);
-  }
-
-  public void setDisableTcp(boolean flag) {
-    this.getConfig().setDisableTcp(flag);
-  }
-
-  public int getRefreshInterval() {
-    return this.getConfig().getRefreshInterval();
-  }
-
-  /*
-   * The interval (in seconds) between auto-polling for updating
-   * AdminDistributedSystem constituents including SystemMember,
-   * SystemMemberCache and StatisticResource. This applies only to the default
-   * interval set when the resource is created. Changes to this interval will
-   * not get propagated to existing resources but will apply to all new
-   * resources
-   */
-  public void setRefreshInterval(int interval) {
-    this.getConfig().setRefreshInterval(interval);
-  }
-
-  public CacheServerConfig[] getCacheServerConfigs() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public CacheServerConfig createCacheServerConfig() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public void removeCacheServerConfig(CacheServerConfig config) {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public CacheVmConfig[] getCacheVmConfigs() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public CacheVmConfig createCacheVmConfig() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public void removeCacheVmConfig(CacheVmConfig config) {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public DistributionLocatorConfig[] getDistributionLocatorConfigs() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-  
-  public DistributionLocatorConfig createDistributionLocatorConfig() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public void removeDistributionLocatorConfig(DistributionLocatorConfig config) 
-{
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public void addListener(ConfigListener listener) {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public void removeListener(ConfigListener listener) {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public void validate() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  @Override
-  public Object clone() throws CloneNotSupportedException {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-  
-
-  private static final String[] PERSISTENT_ID_FIELDS = new String[] {"host", "directory", "uuid"};
-  private static final String[] PERSISTENT_ID_DESCRIPTIONS = new String[] {"The host that was persisting the missing files", "The directory where the files were persisted", "The unique id for the persistent files"};
-  private final CompositeType PERSISTENT_ID_TYPE;
-  private final TabularType PERSISTENT_ID_TABLE_TYPE;
-  
-  { 
-    try {
-      PERSISTENT_ID_TYPE = new CompositeType(PersistentID.class.getCanonicalName(), "A single member's a set of persistent files for a region", PERSISTENT_ID_FIELDS, PERSISTENT_ID_DESCRIPTIONS, new OpenType[] {SimpleType.STRING, SimpleType.STRING, SimpleType.STRING});
-      PERSISTENT_ID_TABLE_TYPE = new TabularType("TABLE_" + PERSISTENT_ID_TYPE.getTypeName(), "A table of persistent member ids", PERSISTENT_ID_TYPE, PERSISTENT_ID_FIELDS);
-    } catch (OpenDataException e) {
-      throw new ExceptionInInitializerError(e);
-    }
-  }
-  
-  public TabularData getMissingPersistentMembersJMX() throws AdminException {
-    
-    try {
-      Set<PersistentID> members = super.getMissingPersistentMembers();
-      TabularData results = new TabularDataSupport(PERSISTENT_ID_TABLE_TYPE);
-      int index = 0;
-      for(PersistentID id : members) {
-        CompositeData idData = new CompositeDataSupport(PERSISTENT_ID_TYPE, PERSISTENT_ID_FIELDS, new Object[] {id.getHost().toString(), id.getDirectory(), id.getUUID().toString()});
-        results.put(idData);
-        index++;
-      }
-      return results;
-    } catch( OpenDataException e) {
-      logger.warn("Exception occurred while getting missing persistent members.", e);
-      throw new AdminException(e);
-    }
-  }
-
-  public void revokePersistentMember(String host,
-      String directory) throws AdminException, UnknownHostException {
-    super.revokePersistentMember(InetAddress.getByName(host), directory);
-  }
-  
-  public void revokePersistentMember(String uuid) throws AdminException, UnknownHostException {
-    super.revokePersistentMember(UUID.fromString(uuid));
-  }
-
-  /* ********************************************************************* */
-  /* ************** Implementing StatAlertsAggregator interface ********** */
-  /* ********************************************************************* */
-  
-  /* Map to store admin stat alert definitions */
-  private final Map ALERT_DEFINITIONS = new Hashtable();
-  
-  /* Refresh interval for all stat alerts managers in seconds */
-  private int refreshIntervalForStatAlerts = 20;
-
-  /* 
-   * This map contains list of stat alerts as a value for alert def ID as a key  
-   */
-  private final HashMap alertsStore = new HashMap();
-  
-  //TODO: yet to set the timer task
-//  private SystemTimer systemwideAlertNotificationScheduler = new SystemTimer();
-  
-  private MailManager mailManager = null;
-  private final boolean isEmailNotificationEnabled;
-  
-  /**
-   * Convenience method to retrieve admin stat alert definition.
-   * 
-   * @param alertDefinitionId id of a stat alert definition 
-   * @return StatAlertDefinition reference to an instance of StatAlertDefinition
-   * @since 5.7
-   */
-  private StatAlertDefinition getAlertDefinition(int alertDefinitionId) {
-    synchronized(ALERT_DEFINITIONS) {
-      return (StatAlertDefinition)ALERT_DEFINITIONS.get(Integer.valueOf(alertDefinitionId));
-    }
-  }
-  
-/*  private void setAlertDefinition(StatAlertDefinition alertDefinition) {
-    ALERT_DEFINITIONS.put(Integer.valueOf(alertDefinition.getId()), alertDefinition);
-  }*/
-
-  /** 
-   * This method can be used to get an alert definition. 
-   * 
-   * @param alertDefinition StatAlertDefinition to retrieve
-   * @return StatAlertDefinition 
-   * @since 5.7
-   */
-  public StatAlertDefinition getAlertDefinition(StatAlertDefinition alertDefinition) {
-    return getAlertDefinition(alertDefinition.getId());
-  }
-  
-  /**
-   * This method is used to write existing StatAlertDefinitions 
-   * to a file
-   */
-  protected void readAlertDefinitionsAsSerializedObjects() {
-    StatAlertDefinition[] defns = new StatAlertDefinition[0];
-
-    File serFile = null;
-    FileInputStream foStr = null;
-    DataInputStream ooStr = null;
-
-    try {
-      serFile = new File(statAlertDefnSerFile);
-      
-      if (!canWriteToFile(serFile)) {/* can not write a file */
-        canPersistStatAlertDefs = false;
-      }
-      if (!serFile.exists()) {/* file does not exist */
-        return;
-      }
-      
-      if (logger.isDebugEnabled()) {
-        logger.debug("AdminDistributedSystemJmxImpl.readAlertDefinitionsAsSerializedObjects: File: {}", serFile.getPath());
-      }
-
-      foStr = new FileInputStream(serFile);
-      ooStr = new DataInputStream(foStr);
-      defns = (StatAlertDefinition[])DataSerializer.readObjectArray(ooStr);
-    } catch (ClassNotFoundException cnfEx) {
-      logger.error(LocalizedMessage.create(
-          LocalizedStrings.AdminDistributedSystem_ENCOUNTERED_A_0_WHILE_LOADING_STATALERTDEFINITIONS_1,
-          new Object[] {cnfEx.getClass().getName(), statAlertDefnSerFile}), cnfEx);
-      canPersistStatAlertDefs = false;
-    } catch (IOException ex) {
-      logger.error(LocalizedMessage.create(
-          LocalizedStrings.AdminDistributedSystem_ENCOUNTERED_A_0_WHILE_LOADING_STATALERTDEFINITIONS_1_LOADING_ABORTED,
-          new Object[] {ex.getClass().getName(), statAlertDefnSerFile}), ex);
-      canPersistStatAlertDefs = false;
-    } finally {
-      if (foStr!=null) {
-        try {
-          foStr.close();
-        } catch (IOException ex) {
-          ;
-        }
-      }
-      if (ooStr!=null) { 
-        try {
-          ooStr.close();
-        } catch (IOException ex) {
-          ;
-        }
-      }
-    }
-    
-    for (int i=0; i<defns.length; i++) {
-      updateAlertDefinition(defns[i]);
-    }
-  }
-
-  /**
-   * This method is used to write existing StatAlertDefinitions 
-   * to a file
-   */
-  public void saveAlertDefinitionsAsSerializedObjects() {
-    File serFile = null;
-    FileOutputStream foStr = null;
-    DataOutputStream ooStr = null;
-    try {
-      serFile = new File(statAlertDefnSerFile);
-      
-  
-      if (logger.isDebugEnabled()) {
-        logger.debug("AdminDistributedSystemJmxImpl.saveAlertDefinitionsAsSerializedObjects: File: {}", serFile.getPath());
-      }
-      
-      if (!canWriteToFile(serFile)) {
-        return;
-      }
-      
-      foStr = new FileOutputStream(serFile);
-      ooStr = new DataOutputStream(foStr);
-      
-      int numOfAlerts = 0;
-      StatAlertDefinition[] defs = null;
-
-      synchronized (ALERT_DEFINITIONS) {
-        numOfAlerts = ALERT_DEFINITIONS.size();
-        defs = new StatAlertDefinition[numOfAlerts];
-        
-        int i = 0;
-        for (Iterator iter=ALERT_DEFINITIONS.keySet().iterator(); iter.hasNext() ;) {
-          Integer key = (Integer) iter.next();
-          StatAlertDefinition readDefn = (StatAlertDefinition) ALERT_DEFINITIONS.get(key);
-          defs[i] = readDefn;
-          i++; 
-        }
-      }
-
-      DataSerializer.writeObjectArray(defs, ooStr);
-    } catch (IOException ex) {
-      logger.error(LocalizedMessage.create(
-          LocalizedStrings.AdminDistributedSystem_ENCOUNTERED_A_0_WHILE_SAVING_STATALERTDEFINITIONS_1,
-          new Object[] {ex.getClass().getName(), statAlertDefnSerFile}), ex);
-    } finally {
-      if (foStr!=null) 
-        try {
-          foStr.close();
-        } catch (IOException ex) {
-          ;
-        }
-      if (ooStr!=null) 
-        try {
-          ooStr.close();
-        } catch (IOException ex) {
-          ;
-        }
-    }
-  }
-
-  /**
-   * Checks if the given file is writable.
-   * 
-   * @param file
-   *          file to check write permissions for
-   * @return true if file is writable, false otherwise
-   */
-  private boolean canWriteToFile(File file) {
-    boolean fileIsWritable = true;
-    // Fix for BUG40360 : When the user does not have write permissions for
-    // saving the stat-alert definitions, then appropriate warning message is 
-    // logged and the operation is aborted. In case the file doesn't exist, then 
-    // it attempts to create a file. If the attempt fails then it logs 
-    // appropriate warning and the operation is aborted. File.canWrite check for
-    // a directory sometimes fails on Windows platform. Hence file creation is 
-    // necessary.
-    if (file.exists()) {
-      if (!file.canWrite()) {
-        logger.warn(LocalizedMessage.create(
-            LocalizedStrings.AdminDistributedSystemJmxImpl_READONLY_STAT_ALERT_DEF_FILE_0,
-            new Object[] { file }));
-        fileIsWritable = false;
-      }
-    } else {
-      try {
-        file.createNewFile();
-      } catch (IOException e) {
-        logger.warn(LocalizedMessage.create(
-            LocalizedStrings.AdminDistributedSystemJmxImpl_FAILED_TO_CREATE_STAT_ALERT_DEF_FILE_0,
-            new Object[] { file }), e);
-        fileIsWritable = false;
-      } finally {
-        // Since we had created this file only for testing purpose, delete the
-        // same.
-        if ((file.exists() && !file.delete()) && logger.isDebugEnabled()) {
-          logger.debug("Could not delete file :'{}' which is created for checking permissions.", file.getAbsolutePath());
-        }
-      }
-    }
-    return fileIsWritable;
-  }
-
-  /** 
-   * This method can be used to update alert definition for the Stat mentioned.
-   * This method should update the collection maintained at the aggregator and 
-   * should notify members for the newly added alert definitions.
-   * A new alert definition will be created if matching one not found.
-   * 
-   * @param alertDefinition alertDefinition to be updated 
-   * @since 5.7
-   */  
-  public void updateAlertDefinition(StatAlertDefinition alertDefinition) {
-    if (logger.isDebugEnabled()) {
-      logger.debug("Entered AdminDistributedSystemJmxImpl.updateAlertDefinition(StatAlertDefinition) *****");
-    }
-    /*
-     * What to update in the alert definition? There should be another argument 
-     * or arguments in a map.
-     * 1. Need to update the list/map of alert definitions across members.   
-     */
-    synchronized (ALERT_DEFINITIONS) {
-      ALERT_DEFINITIONS.put(Integer.valueOf(alertDefinition.getId()), alertDefinition);
-      
-      if (logger.isDebugEnabled()) {
-        logger.debug("AdminDistributedSystemJmxImpl.updateAlertDefinition : alertDefinition :: id={} :: {}", alertDefinition.getId(), alertDefinition.getStringRepresentation());
-      }
-      
-      /* TODO: add code to retry on failure */
-      notifyMembersForAlertDefinitionChange(alertDefinition);
-    }
-    if (logger.isDebugEnabled()) {
-      logger.debug("Exiting AdminDistributedSystemJmxImpl.updateAlertDefinition(StatAlertDefinition) *****");
-    }
-  }
-
-  /** 
-   * This method can be used to remove alert definition for the Stat 
-   * mentioned. 
-   * This method should update the collection maintained at the aggregator and 
-   * should notify members for the newly added alert definitions. 
-   * 
-   * @param defId id of the alert definition to be removed
-   * @since 5.7
-   */  
-  public void removeAlertDefinition(Integer defId) {
-    if (logger.isDebugEnabled()) {
-      logger.debug("Entered AdminDistributedSystemJmxImpl.removeAlertDefinition id *****");
-    }
-    /*
-     * alert passed to be deleted from the list/map of alerts on JMX MBean 
-     * & all Member MBeans
-     */
-    synchronized (ALERT_DEFINITIONS) {
-      StatAlertDefinition alertDefinition = (StatAlertDefinition)ALERT_DEFINITIONS.get(defId);
-  	  if (alertDefinition != null) {
-    		ALERT_DEFINITIONS.remove(defId);
-    		synchronized (alertsStore) {
-    		  alertsStore.remove(defId);
-    		}
-    		/* TODO: add code to retry on failure */
-    		notifyMembersForAlertDefinitionRemoval(alertDefinition);
-  	  }      
-    }
-    if (logger.isDebugEnabled()) {
-      logger.debug("Exiting AdminDistributedSystemJmxImpl.removeAlertDefinition() *****");
-    }
-  }
-
-  /** 
-   * Convenience method to check whether an alert definition is created.
-   * 
-   * @param alertDefinition alert definition to check whether already created
-   * @return true if the alert definition is already created, false 
-   *         otherwise 
-   * @since 5.7
-   */
-  public boolean isAlertDefinitionCreated(StatAlertDefinition alertDefinition) {
-    /*
-     * Need to maintain a map of stat against the StatAlertDefinitions.
-     * check in that map whether the alert definition is there for the given 
-     * alert
-     * 
-     * TODO: optimize to use Map.containsKey - DONE
-     */
-    synchronized(ALERT_DEFINITIONS) {
-      return ALERT_DEFINITIONS.containsKey(Integer.valueOf(alertDefinition.getId()));
-    }
-  }
-
-  /**
-   * Returns the refresh interval for the Stats in seconds.
-   * 
-   * @return refresh interval for the Stats(in seconds)
-   * @since 5.7
-   */
-  public synchronized int getRefreshIntervalForStatAlerts() {
-    /*
-     * state to store the refresh interval set by the user/GFMon client 
-     */
-    return refreshIntervalForStatAlerts;
-  }
-
-  /**
-   * This method is used to set the refresh interval for the Stats in 
-   * seconds 
-   * 
-   * @param refreshIntervalForStatAlerts refresh interval for the Stats(in seconds)
-   * @since 5.7
-   */
-  public synchronized void setRefreshIntervalForStatAlerts(int refreshIntervalForStatAlerts) {
-    /*
-     * change the state refresh interval here. 
-     */
-    this.refreshIntervalForStatAlerts = refreshIntervalForStatAlerts;
-    notifyMembersForRefreshIntervalChange(this.refreshIntervalForStatAlerts*1000l);
-  }
-
-  /**
-   * Returns whether Statistics Alert definitions could be persisted across 
-   * runs/sessions
-   * 
-   * @return value of canPersistStatAlertDefs.
-   * @since 6.5
-   */
-  public boolean canPersistStatAlertDefs() {
-    return canPersistStatAlertDefs;
-  }
-
-  /**
-   * An intermediate method to notify all members for change in refresh interval.
-   * 
-   * @param newInterval refresh interval to be set for members(in milliseconds)
-   */
-  private void notifyMembersForRefreshIntervalChange(long newInterval) {
-    GfManagerAgent  agent = getGfManagerAgent();
-    ApplicationVM[] VMs   = agent.listApplications();    
-    //TODO: is there any other way to get all VMs?
-    
-    for (int i = 0; i < VMs.length; i++) {
-      VMs[i].setRefreshInterval(newInterval);
-    }
-  }
-  
-  /**
-   * An intermediate method to notify all members for change in stat alert 
-   * definition.
-   * 
-   * @param alertDef stat alert definition that got changed
-   */  
-  private void notifyMembersForAlertDefinitionChange(StatAlertDefinition alertDef) {
-    if (logger.isDebugEnabled()) {
-      logger.debug("Entered AdminDistributedSystemJmxImpl.notifyMembersForAlertDefinitionChange(StatAlertDefinition) *****");
-    }
-    GfManagerAgent        agent     = getGfManagerAgent();
-    StatAlertDefinition[] alertDefs = new StatAlertDefinition[] {alertDef};
-    ApplicationVM[]       VMs       = agent.listApplications();
-    
-    for (int i = 0; i < VMs.length; i++) {
-      VMs[i].updateAlertDefinitions(alertDefs, 
-          UpdateAlertDefinitionMessage.UPDATE_ALERT_DEFINITION);
-    }
-
-    if (logger.isDebugEnabled()) {
-      logger.debug("Exiting AdminDistributedSystemJmxImpl.notifyMembersForAlertDefinitionChange(StatAlertDefinition) "
-    		    + VMs.length+" members notified.*****");
-    }
-  }
-
-  /**
-   * An intermediate method to notify all members for removal of stat alert 
-   * definition.
-   * 
-   * @param alertDef stat alert definition to be removed
-   */
-  private void notifyMembersForAlertDefinitionRemoval(StatAlertDefinition alertDef) {
-    GfManagerAgent        agent     = getGfManagerAgent();
-    StatAlertDefinition[] alertDefs = new StatAlertDefinition[] {alertDef};
-    ApplicationVM[]       VMs       = agent.listApplications();
-    
-    for (int i = 0; i < VMs.length; i++) {
-      VMs[i].updateAlertDefinitions(alertDefs, 
-          UpdateAlertDefinitionMessage.REMOVE_ALERT_DEFINITION);
-    }
-  }
-
-  /**
-   * This method can be used to set the AlertsManager for the newly joined     
-   * member VM.
-   * 
-   * @param memberVM Member VM to set AlertsManager for
-   * @since 5.7
-   */
-  public synchronized void setAlertsManager(GemFireVM memberVM) {
-    /*
-     * 1. Who'll call this method? Who gets notified when a member joins? 
-     *    I think that's AdminDistributedSystemJmxImpl.nodeCreated()
-     * 2. Is the argument GemFireVM correct? Need to modify this interface to 
-     *    add method to set an interface. Need to see how it can be passed to 
-     *    the RemoteGemFireVM implementation. Also need to check whetherother 
-     *    implementors (like DistributedSystemHealthMonitor) of GemFireVM even 
-     *    need to have the AlertsManager
-     * 3. Would the alerts manager be set by aggregator or a JMXAgent i.e. AdminDistributedSystemJmxImpl
-     * 4. Setting the list of available alert definitions & refresh interval at 
-     *    this moment only would be better/easier.
-     * 5. Need to know Alerts Manager creation/construction. Need to decide how 
-     *    the object would be set & sent across to the Agent VM.
-     */
-    if (logger.isDebugEnabled()) {
-      logger.debug("Entered AdminDistributedSystemJmxImpl.setAlertsManager(GemFireVM) *****");
-    }
-    
-    // creating an array of stat alert definition objects
-    StatAlertDefinition[] alertDefs = new StatAlertDefinition[0];
-    
-    Collection alertDefsCollection = null;
-    synchronized(ALERT_DEFINITIONS) {
-      alertDefsCollection = ALERT_DEFINITIONS.values();
-    }
-    
-    alertDefs = (StatAlertDefinition[])alertDefsCollection.toArray(alertDefs);
-    
-    memberVM.setAlertsManager(alertDefs, getRefreshIntervalForStatAlerts()*1000l, true);
-    
-    if (logger.isDebugEnabled()) {
-      logger.debug("Exiting AdminDistributedSystemJmxImpl.setAlertsManager(GemFireVM) *****");
-    }
-  }
-
-  /** 
-   * This method can be used to retrieve all available stat alert definitions. 
-   * Returns empty array if there are no stat alert definitions defined.
-   * 
-   * @return An array of all available StatAlertDefinition objects 
-   * @since 5.7
-   */
-  public StatAlertDefinition[] getAllStatAlertDefinitions() {
-    if (logger.isDebugEnabled()) {
-      logger.debug("Entered AdminDistributedSystemJmxImpl.getAllStatAlertDefinitions() *****");
-    }
-    
-    Collection alertDefs = null;
-    synchronized(ALERT_DEFINITIONS) {
-      alertDefs = ALERT_DEFINITIONS.values();
-    }
-    
-    StatAlertDefinition[] alertDefsArr = null;
-    
-    if (alertDefs != null) {
-      alertDefsArr = new StatAlertDefinition[alertDefs.size()];
-      alertDefsArr = (StatAlertDefinition[])alertDefs.toArray(alertDefsArr);
-    } else {
-      alertDefsArr = new StatAlertDefinition[0];
-    }
-    
-    if (logger.isDebugEnabled()) {
-      logger.debug("Exiting AdminDistributedSystemJmxImpl.getAllStatAlertDefinitions() *****");
-    }
-    
-    return alertDefsArr;
-  }
-
-
-  /**
-   * This method can be used to process the notifications sent by the 
-   * member(s). Actual aggregation of stats can occur here. The array contains 
-   * alert objects with alert def. ID & value. AlertHelper class can be used to 
-   * retrieve the corresponding alert definition.
-   * 
-   * @param alerts array of Alert class(contains alert def. ID & value)
-   * @param remoteVM Remote Member VM that sent Stat Alerts for processing the
-   *                 notifications to the clients
-   */  
-  public void processNotifications(StatAlert[] alerts, GemFireVM remoteVM) {
-    if (logger.isDebugEnabled()) {
-      logger.debug("Entered AdminDistributedSystemJmxImpl.processNotifications(StatAlert[{}], GemFireVM) *************", alerts.length);
-    }
-    
-    /* 
-     * Notifications can not be processed if the remote VM is not available.
-     * NOTE: Should this method get the required GemFireVM information instead 
-     * of its reference so that even if the member leaves we still have the 
-     * information collected earlier to process the notification?
-     */
-    if (remoteVM == null) {
-      if (logger.isDebugEnabled()) {
-        logger.debug("Could not process stat alert notifications as given GemFireVM is null.");
-      }
-      return;
-    }
-    
-    /*
-     * 1. The implementation idea is yet not clear.
-     * 2. The StatAlert array would received directly or from a request object. 
-     */
-    ArrayList notificationObjects = new ArrayList();
-    
-    String memberId = remoteVM.getId().getId();
-
-    final boolean isSystemWide = false;
-    
-    StatAlert alert = null;
-    Integer   defId = null;
-//    Number[]  values = null;
-    for (int i = 0; i < alerts.length; i++) {
-      alert = alerts[i];
-      
-//      defId = Integer.valueOf(alert.getDefinitionId());
-      if (getAlertDefinition(alert.getDefinitionId())==null)
-        continue; // Ignore any removed AlertDefns 
-//      values = alert.getValues();
-      
-//      StatAlertDefinition statAlertDef = (StatAlertDefinition)ALERT_DEFINITIONS.get(defId);
-      
-      /*
-       * 1. check if it's system-wide.
-       * 2. if system-wide keep, it in a collection (that should get cleared on 
-       *    timeout). Process all alerts when notifications from all members are 
-       *    received. Need to check if the member leaves meanwhile. 
-       * 
-       * 1. Check if function evaluation is required?
-       * 2. If it's not required, the notification should directly be sent to 
-       *    clients.
-       */
-      
-      //if (statAlertDef.getFunctionId() != 0) {
-        /*
-         * StatAlert with alert definitions having functions
-         * assigned will get evaluated at manager side only.
-         * 
-         * Is combination of systemwide alerts with function valid? It should 
-         * be & hence such evaluation should be skipped on manager side. Or is 
-         * it to be evaluated at manager as well as aggragator?
-         */
-      //}
-      
-      //TODO: is this object required? Or earlier canbe resused?
-      StatAlertNotification alertNotification = new StatAlertNotification(alert, memberId);
-      
-      /*
-       * variable isSystemWide is created only for convienience, there
-       * should be an indication for the same in the alert definition. 
-       * Currently there is no systemWide definition
-       * 
-       * Evaluating system wide alerts:
-       *   1. It'll take time for aggregator to gather alerts from all members.
-       *      Member might keep joining & leaving in between. The member for whom 
-       *      the stat-alert value was taken might have left & new ones might 
-       *      have joined leave until all the calculations are complete. 
-       *      A disclaimer to be put that these are not exact values.
-       *   2. How would the aggregator know that it has received alerts from all 
-       *      the managers? Is the concept of system-wide alerts valid? 
-       *      System-wide stats might be!
-       *      
-       */
-      if (!isSystemWide) {
-        notificationObjects.add(alertNotification);
-        continue;
-      }
-      HashSet accumulatedAlertValues;
-      synchronized (alertsStore) {
-        accumulatedAlertValues = (HashSet)alertsStore.get(defId);
-        
-        if (accumulatedAlertValues == null) {
-          accumulatedAlertValues = new HashSet();
-          alertsStore.put(defId, accumulatedAlertValues);
-        }
-      }
-      synchronized (accumulatedAlertValues) {
-        accumulatedAlertValues.add(alertNotification);
-      }
-    } //for ends
-    
-    if (!notificationObjects.isEmpty()) {
-      /* TODO: should ths method send & forget or be fail-safe? */
-      sendNotifications(notificationObjects, getObjectName());
-    }
-    
-    if (logger.isDebugEnabled()) {
-      logger.debug("Exiting AdminDistributedSystemJmxImpl.processNotifications(StatAlert[], GemFireVM) *************");
-    }
-  }
-
-  private byte[] convertNotificationsDataToByteArray(ArrayList notificationObjects) {
-    if (logger.isDebugEnabled()) {
-      logger.debug("AdminDistributedSystemJmxImpl#convertNotificationsDataToByteArray: {} notifications", notificationObjects.size());
-    }
-
-    byte[] arr = null;
-
-    try {
-      ByteArrayOutputStream byteArrStr = new ByteArrayOutputStream();
-      DataOutputStream str = new DataOutputStream(byteArrStr);
-      DataSerializer.writeArrayList(notificationObjects, str);
-      str.flush();
-      arr = byteArrStr.toByteArray();
-    } catch(IOException ex) {
-      logger.warn(LocalizedMessage.create(
-          LocalizedStrings.AdminDistributedSystem_ENCOUNTERED_AN_IOEXCEPTION_0,
-          ex.getLocalizedMessage()));
-    }
-
-    return arr;
-  }
-
-  /**
-   * An intermediate method to send notifications to the clients.
-   * 
-   * @param notificationObjects list of StatAlertNotification objects
-   */
-  private void sendNotifications(ArrayList notificationObjects, 
-      ObjectName objName) {
-    try {
-      if (logger.isDebugEnabled()) {
-        logger.debug("AdminDistributedSystemJmxImpl#sendNotifications: sending {} notifications", notificationObjects.size());
-      }
-      
-      byte[] notifBytes = convertNotificationsDataToByteArray(notificationObjects);
-      if (notifBytes!=null) {
-        Notification notif = new Notification(NOTIF_STAT_ALERT,  
-            objName, // Pass the StatNotifications
-            notificationSequenceNumber.addAndGet(1), "StatAlert Notifications");
-        notif.setUserData(notifBytes);
-        this.modelMBean.sendNotification(notif);
-      } // IOException handled and logged in convertNotificationsDataToByteArray
-
-      StringBuffer buf = new StringBuffer();
-      for (int i = 0; i < notificationObjects.size(); i ++) {
-        StatAlertNotification not = (StatAlertNotification)
-            notificationObjects.get(i);
-        buf.append(not.toString(getAlertDefinition(not.getDefinitionId())));
-      }
-//      sendEmail("Gemfire AlertNotification on Member:" + objName, buf.toString());
-      if (isEmailNotificationEnabled) {
-        String mess = LocalizedStrings.AdminDistributedSystemJmxImpl_STATISTICS_ALERT_FROM_DISTRIBUTED_SYSTEM_MEMBER_0_STATISTICS_1.toLocalizedString(new Object[] {objName.getCanonicalName(), buf.toString()} );
-        sendEmail(
-            EML_SUBJ_PRFX_GFE_ALERT + EML_SUBJ_ITEM_GFE_DS + getName() 
-            + " <"+LocalizedStrings.AdminDistributedSystemJmxImpl_STATISTICS_ALERT_FOR_MEMBER.toLocalizedString()+">", 
-            mess);
-      }
-    } catch (javax.management.MBeanException e) {
-      logger.error(e.getMessage(), e);
-    } catch (RuntimeException e) {
-      logger.error(e.getMessage(), e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error. We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above). However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-  
-  /**
-   * Sends an email to the configured recipients using configured email server.
-   * The given message will be the email body. NOTE: the check whether email
-   * notfication is enabled or not should done using
-   * {@link #isEmailNotificationEnabled} before calling this method.
-   * 
-   * @param subject
-   *          subject of the email
-   * @param message
-   *          message body of the email
-   */
-  private void sendEmail(String subject, String message) {
-	  if (mailManager == null) {
-	    mailManager = new MailManager(mailProps);
-	  }
-    this.mailManager.sendEmail(subject, message);
-  }
-
-  public void processSystemwideNotifications() {
-  }
-
-  public String getId() {
-    String myId = super.getId();
-    return MBeanUtil.makeCompliantMBeanNameProperty(myId);
-  }
-
-  /**
-   * This method is used to process ClientMembership events sent for
-   * BridgeMembership by bridge servers to all admin members.
-   * 
-   * @param senderId
-   *          id of the member that sent the ClientMembership changes for
-   *          processing (could be null)
-   * @param clientId
-   *          id of a client for which the notification was sent
-   * @param clientHost
-   *          host on which the client is/was running
-   * @param eventType
-   *          denotes whether the client Joined/Left/Crashed should be one of
-   *          ClientMembershipMessage#JOINED, ClientMembershipMessage#LEFT,
-   *          ClientMembershipMessage#CRASHED
-   */
-  @Override
-  public void processClientMembership(String senderId, String clientId,
-      String clientHost, int eventType) {
-    logger.info(LocalizedMessage.create(LocalizedStrings.AdminDistributedSystemJmxImpl_PROCESSING_CLIENT_MEMBERSHIP_EVENT_0_FROM_1_FOR_2_RUNNING_ON_3, new String[] {ClientMembershipMessage.getEventTypeString(eventType), senderId, clientId, clientHost}));
-    try {
-      SystemMemberJmx systemMemberJmx = null;
-      CacheVm[] cacheVms = getCacheVms();
-      
-      for (CacheVm cacheVm : cacheVms) {
-        if (cacheVm.getId().equals(senderId) && 
-            cacheVm instanceof CacheServerJmxImpl) {
-          systemMemberJmx = (CacheServerJmxImpl) cacheVm;
-          break;
-        }
-      }
-      
-      if (systemMemberJmx == null) {
-        SystemMember[] appVms = getSystemMemberApplications();
-        
-        for (SystemMember appVm : appVms) {
-          if (appVm.getId().equals(senderId) && 
-              appVm instanceof SystemMemberJmxImpl) {
-            systemMemberJmx = (SystemMemberJmxImpl) appVm;
-            break;
-          }
-        }
-        
-      }
-
-      if (systemMemberJmx != null) {
-        systemMemberJmx.handleClientMembership(clientId, eventType);
-      }
-    } catch (AdminException e) {
-      logger.error(LocalizedMessage.create(
-          LocalizedStrings.AdminDistributedSystemJmxImpl_FAILED_TO_PROCESS_CLIENT_MEMBERSHIP_FROM_0_FOR_1,
-              new Object[] { senderId, clientId }), e);
-      return;
-    } catch (RuntimeOperationsException e) {
-      logger.warn(e.getMessage(), e);//failed to send notification
-    }
-  }
-
-  public String getAlertLevelAsString() {
-    return super.getAlertLevelAsString();
-  }
-  
-  public void setAlertLevelAsString(String level) {
-    String newLevel = level != null ? level.trim() : null;
-    try {
-      super.setAlertLevelAsString(newLevel);
-    } catch (IllegalArgumentException e) {
-      throw new RuntimeMBeanException(e, e.getMessage());
-    }
-  }
-
-  /**
-   * Finds the member as per details in the given event object and passes on
-   * this event for handling the cache creation.
-   * 
-   * @param event
-   *          event object corresponding to the creation of the cache
-   */
-  public void handleCacheCreateEvent(SystemMemberCacheEvent event) {
-    String memberId = event.getMemberId();
-    SystemMemberJmx systemMemberJmx = (SystemMemberJmx) findCacheOrAppVmById(memberId);
-    
-    if (systemMemberJmx != null) {
-      systemMemberJmx.handleCacheCreate(event);
-    }
-    
-  }
-
-  /**
-   * Finds the member as per details in the given event object and passes on
-   * this event for handling the cache closure.
-   * 
-   * @param event
-   *          event object corresponding to the closure of the cache
-   */
-  public void handleCacheCloseEvent(SystemMemberCacheEvent event) {
-    String memberId = event.getMemberId();
-    SystemMemberJmx systemMemberJmx = (SystemMemberJmx) findCacheOrAppVmById(memberId);
-    
-    if (systemMemberJmx != null) {
-      systemMemberJmx.handleCacheClose(event);
-    }
-    
-  }
-
-  /**
-   * Finds the member as per details in the given event object and passes on
-   * this event for handling the region creation.
-   * 
-   * @param event
-   *          event object corresponding to the creation of a region
-   */
-  public void handleRegionCreateEvent(SystemMemberRegionEvent event) {
-    String memberId = event.getMemberId();
-    SystemMemberJmx systemMemberJmx = (SystemMemberJmx) findCacheOrAppVmById(memberId);
-    
-    if (systemMemberJmx != null) {
-      systemMemberJmx.handleRegionCreate(event);
-    }
-  }  
-  
-  /**
-   * Finds the member as per details in the given event object and passes on 
-   * this event for handling the region loss.
-   * 
-   * @param event
-   *          event object corresponding to the loss of a region
-   */
-  public void handleRegionLossEvent(SystemMemberRegionEvent event) {
-    String memberId = event.getMemberId();
-    SystemMemberJmx systemMemberJmx = (SystemMemberJmx) findCacheOrAppVmById(memberId);
-    
-    if (systemMemberJmx != null) {
-      systemMemberJmx.handleRegionLoss(event);
-    }
-  }
-
-  @Override
-  public void setDisableAutoReconnect(boolean newValue) {
-    getConfig().setDisableAutoReconnect(newValue);
-  }
-
-  @Override
-  public boolean getDisableAutoReconnect() {
-    return getConfig().getDisableAutoReconnect();
-  }  
-  
-}
-
-class ProcessSystemwideStatAlertsNotification extends TimerTask {
-  private StatAlertsAggregator aggregator;
-  
-  ProcessSystemwideStatAlertsNotification(StatAlertsAggregator aggregator) {
-    this.aggregator = aggregator;
-  }
-  
-  @Override
-  public void run() {
-    aggregator.processSystemwideNotifications();
-  }
-  
-}
-
-/**
- * Implementation of SystemMemberCacheListener used for listening to events:
- * <ol> <li> Cache Created </li>
- * <li> Cache Closed </li>
- * <li> Region Created </li>
- * <li> Region Loss </li>
- * </ol>
- * 
- * @author abhishek
- */
-class CacheAndRegionListenerImpl implements SystemMemberCacheListener {
-  private AdminDistributedSystemJmxImpl adminDS;
-
-  /**
-   * Csontructor to create CacheAndRegionListenerImpl
-   * 
-   * @param adminDSResource
-   *          instance of AdminDistributedSystemJmxImpl
-   */
-  CacheAndRegionListenerImpl(AdminDistributedSystemJmxImpl adminDSResource) {
-    this.adminDS = adminDSResource;
-  }
-  
-  /**
-   * See SystemMemberCacheListener#afterCacheClose(SystemMemberCacheEvent)
-   */
-  public void afterCacheClose(SystemMemberCacheEvent event) {
-    adminDS.handleCacheCloseEvent(event);
-  }
-  
-  /**
-   * See SystemMemberCacheListener#afterCacheCreate(SystemMemberCacheEvent)
-   */
-  public void afterCacheCreate(SystemMemberCacheEvent event) {
-    adminDS.handleCacheCreateEvent(event);
-  }
-  
-  /**
-   * See SystemMemberCacheListener#afterRegionCreate(SystemMemberCacheEvent)
-   */
-  public void afterRegionCreate(SystemMemberRegionEvent event) {
-    adminDS.handleRegionCreateEvent(event);    
-  }
-  
-  /**
-   * See SystemMemberCacheListener#afterRegionLoss(SystemMemberCacheEvent)
-   */
-  public void afterRegionLoss(SystemMemberRegionEvent event) {
-    adminDS.handleRegionLossEvent(event);
-  }  
-}
-



[29/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/main/dist/LICENSE
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/main/dist/LICENSE b/gemfire-assembly/src/main/dist/LICENSE
deleted file mode 100644
index 12ffb42..0000000
--- a/gemfire-assembly/src/main/dist/LICENSE
+++ /dev/null
@@ -1,429 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
-
-===========================================================================
-
-Apache Geode includes a number of components and libraries with separate 
-copyright notices and license terms. Your use of those components are 
-subject to the terms and conditions of the following licenses. 
-
-
----------------------------------------------------------------------------
-Antlr (http://www.antlr.org/) antlr:antlr:2.7.7
----------------------------------------------------------------------------
-This product bundles Antlr which is available under a BSD license.  
-For details see http://www.antlr.org/license.html.
-
----------------------------------------------------------------------------
-Backbone (http://backbonejs.org)
----------------------------------------------------------------------------
-This product bundles Backbone which is available under an MIT license.  
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-CompactConcurrentHashSet2 (http://gee.cs.oswego.edu/dl/concurrency-interest)
----------------------------------------------------------------------------
-This product bundles CompactConcurrentHashSet2 derived from JSR-166 
-ConcurrentHashMap v1.43 which is available in the public domain.  
-
----------------------------------------------------------------------------
-Handlebars (http://handlebarsjs.com)
----------------------------------------------------------------------------
-This product bundles Handlebars which is available under an MIT license.  
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-highlight.js (https://highlightjs.org)
----------------------------------------------------------------------------
-This product bundles highlight.js which is available under a BSD 3 clauses license.  
-For details see http://opensource.org/licenses/BSD-3-Clause.
-
----------------------------------------------------------------------------
-javax.activation (http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp) javax.activation:activation:1.1.1
----------------------------------------------------------------------------
-This product bundles javax.activation which is available under a CDDL license.  
-For details see https://glassfish.dev.java.net/public/CDDLv1.0.html.
-
----------------------------------------------------------------------------
-javax.mail (http://www.oracle.com/) javax.mail:javax.mail-api:1.4.5
----------------------------------------------------------------------------
-This product bundles javax.mail which is available under a CDDL or GPLv2+CE license.  
-For details see http://www.sun.com/cddl or https://glassfish.dev.java.net/public/CDDL+GPL.html.
-
----------------------------------------------------------------------------
-javax.resource (https://glassfish.java.net/) javax.resource:javax.resource-api:1.7
----------------------------------------------------------------------------
-This product bundles javax.resource which is available under a CDDL or GPLv2+CE license.  
-For details see https://glassfish.dev.java.net/public/CDDL+GPL.html.
-
----------------------------------------------------------------------------
-javax.servlet (https://glassfish.java.net/) javax.servlet:javax.servlet-api:3.1.0
----------------------------------------------------------------------------
-This product bundles javax.servlet which is available under a CDDL or GPLv2+CE license.  
-For details see https://glassfish.dev.java.net/public/CDDL+GPL.html.
-
----------------------------------------------------------------------------
-javax.transaction (https://glassfish.java.net/) javax.transaction:javax.transaction-api:1.2
----------------------------------------------------------------------------
-This product bundles javax.transaction which is available under a CDDL or GPLv2+CE license.  
-For details see https://glassfish.dev.java.net/public/CDDL+GPL.html.
-
----------------------------------------------------------------------------
-JLine (http://jline.sourceforge.net) jline:jline:2.12
----------------------------------------------------------------------------
-This product bundles JLine which is available under a BSD license.  
-For details see http://www.opensource.org/licenses/bsd-license.php.
-
----------------------------------------------------------------------------
-JOpt Simple (http://pholser.github.io/jopt-simple/)
----------------------------------------------------------------------------
-This product bundles JOpt Simple which is available under an MIT license.  
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jQuery (https://jquery.com)
----------------------------------------------------------------------------
-This product bundles jQuery which is available under an MIT license.  
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jQuery BBQ (http://benalman.com/projects/jquery-bbq-plugin/)
----------------------------------------------------------------------------
-This product bundles jQuery BBQ which is available under an MIT and GPL dual license.  
-For details see http://benalman.com/about/license.
-
----------------------------------------------------------------------------
-jQuery-slideto (https://github.com/Sleavely/jQuery-slideto)
----------------------------------------------------------------------------
-This product bundles jQuery-slideto which is available under an MIT license.  
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jQuery Wiggle (https://github.com/wilhelm-murdoch/jQuery-Wiggle)
----------------------------------------------------------------------------
-This product bundles jQuery Wiggle which is available under an MIT license.  
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-JSON (http://json.org)
----------------------------------------------------------------------------
-This product bundles JSON which is available under a BSD-like license.  
-For details see http://json.org/license.html.
-
----------------------------------------------------------------------------
-Paranamer (https://github.com/paul-hammant/paranamer) com.thoughtworks.paranamer:paranamer:2.3
----------------------------------------------------------------------------
-This product bundles Paranamer which is available under a BSD license.  
-For details see http://www.opensource.org/licenses/bsd-license.php.
-
----------------------------------------------------------------------------
-reset.css (http://meyerweb.com/eric/tools/css/reset/)
----------------------------------------------------------------------------
-This product bundles reset.css which is available in the public domain.
-
----------------------------------------------------------------------------
-tooltip.js (http://flowplayer.org/tools/tooltip/)
----------------------------------------------------------------------------
-This product bundles tooltip.css which is available in the public domain.
-
----------------------------------------------------------------------------
-scala-reflect (http://www.scala-lang.org/) org.scala-lang:scala-reflect:2.10.0
----------------------------------------------------------------------------
-This product bundles scala-reflect which is available under a BSD-like license.  
-For details see http://www.scala-lang.org/downloads/license.html.
-
----------------------------------------------------------------------------
-scala-library (http://www.scala-lang.org/) org.scala-lang:scala-library:2.10.0
----------------------------------------------------------------------------
-This product bundles scala-library which is available under a BSD-like license.  
-For details see http://www.scala-lang.org/downloads/license.html.
-
----------------------------------------------------------------------------
-shred (https://github.com/pandastrike/shred)
----------------------------------------------------------------------------
-This product bundles shred which is available under an MIT or ISC license.  
-For details see https://github.com/pandastrike/shred/blob/master/LICENSE.
-
----------------------------------------------------------------------------
-SLF4J API (http://www.slf4j.org) org.slf4j:slf4j-api:jar:1.7.7
----------------------------------------------------------------------------
-This product bundles SLF4J API which is available under an MIT license.  
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-underscore (http://underscorejs.org)
----------------------------------------------------------------------------
-This product bundles underscore which is available under an MIT license.  
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery jqGrid (https://plugins.jquery.com/jqGrid/)
----------------------------------------------------------------------------
-This product bundles jqGrid which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-html5.js (https://github.com/aFarkas/html5shiv)
----------------------------------------------------------------------------
-This product bundles html5 which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.i18n.properties (https://github.com/jquery-i18n-properties/jquery-i18n-properties)
----------------------------------------------------------------------------
-This product bundles jQuery i18n which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.jscrollpane (http://jscrollpane.kelvinluck.com/)
----------------------------------------------------------------------------
-This product bundles jquery.jscrollpane which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.mousewheel (http://brandonaaron.net)
----------------------------------------------------------------------------
-This product bundles jquery.mousewheel which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.placeholder (http://webcloud.se)
----------------------------------------------------------------------------
-This product bundles jquery.placeholder which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.tablednd (https://github.com/isocra/TableDnD)
----------------------------------------------------------------------------
-This product bundles jquery.tablednd which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.timeago (http://timeago.yarp.com/)
----------------------------------------------------------------------------
-This product bundles jquery.timeago which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.ztree (http://zTree.me/)
----------------------------------------------------------------------------
-This product bundles jquery.ztree which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.multiselect (http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/)
----------------------------------------------------------------------------
-This product bundles jQuery.multiselect which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.ui (http://jqueryui.com/about)
----------------------------------------------------------------------------
-This product bundles jquery UI which is available under an MIT license.
-For details see http://www.opensource.org/licenses/mit-license.php.
-
----------------------------------------------------------------------------
-jquery.sparkline.js (http://omnipotent.net/jquery.sparkline/)
----------------------------------------------------------------------------
-This product bundles jquery.sparkline which is available under a BSD-like license.
-For details see http://opensource.org/licenses/BSD-3-Clause.
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/main/dist/NOTICE
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/main/dist/NOTICE b/gemfire-assembly/src/main/dist/NOTICE
deleted file mode 100644
index b429715..0000000
--- a/gemfire-assembly/src/main/dist/NOTICE
+++ /dev/null
@@ -1,467 +0,0 @@
-Apache Geode (incubating) 
-Copyright 2016 The Apache Software Foundation.
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-
-The following NOTICEs pertain to software distributed with this project.
-
-Apache Commons FileUpload
-Copyright 2002-2014 The Apache Software Foundation
-
-Apache Commons IO
-Copyright 2002-2012 The Apache Software Foundation
-
-Apache Commons Lang
-Copyright 2001-2010 The Apache Software Foundation
-
-// ------------------------------------------------------------------
-// NOTICE file corresponding to the section 4d of The Apache License,
-// Version 2.0, in this case for Commons Logging
-// ------------------------------------------------------------------
-
-Commons Logging
-Copyright 2001-2007 The Apache Software Foundation
-
-This product includes/uses software(s) developed by 'an unknown organization'
-  - Unnamed - avalon-framework:avalon-framework:jar:4.1.3
-  - Unnamed - log4j:log4j:jar:1.2.12
-  - Unnamed - logkit:logkit:jar:1.0.1
-
-HBase
-Copyright 2015 The Apache Software Foundation
-
-# Jackson JSON processor
-
-Jackson is a high-performance, Free/Open Source JSON processing library.
-It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has
-been in development since 2007.
-It is currently developed by a community of developers, as well as supported
-commercially by FasterXML.com.
-
-## Licensing
-
-Jackson core and extension components may licensed under different licenses.
-To find the details that apply to this artifact see the accompanying LICENSE file.
-For more information, including possible other licensing options, contact
-FasterXML.com (http://fasterxml.com).
-
-## Credits
-
-A list of contributors may be found from CREDITS file, which is included
-in some artifacts (usually source distributions); but is always available
-from the source code management (SCM) system project uses.
-
-Java ClassMate library was originally written by Tatu Saloranta (tatu.saloranta@iki.fi)
-
-Other developers who have contributed code are:
-
-* Brian Langel
-
-Apache Log4j API
-Copyright 1999-2015 Apache Software Foundation
-
-Apache Log4j Core
-Copyright 1999-2012 Apache Software Foundation
-
-ResolverUtil.java
-Copyright 2005-2006 Tim Fennell
-
-Apache Log4j Commons Logging Bridge
-Copyright 1999-2015 Apache Software Foundation
-
-Apache Log4j JUL Adapter
-Copyright 1999-2015 Apache Software Foundation
-
-Apache Log4j SLF4J Binding
-Copyright 1999-2015 Apache Software Foundation
-
-Apache Lucene
-Copyright 2014 The Apache Software Foundation
-
-Includes software from other Apache Software Foundation projects,
-including, but not limited to:
- - Apache Ant
- - Apache Jakarta Regexp
- - Apache Commons
- - Apache Xerces
-
-ICU4J, (under analysis/icu) is licensed under an MIT styles license
-and Copyright (c) 1995-2008 International Business Machines Corporation and others
-
-Some data files (under analysis/icu/src/data) are derived from Unicode data such
-as the Unicode Character Database. See http://unicode.org/copyright.html for more
-details.
-
-Brics Automaton (under core/src/java/org/apache/lucene/util/automaton) is 
-BSD-licensed, created by Anders Møller. See http://www.brics.dk/automaton/
-
-The levenshtein automata tables (under core/src/java/org/apache/lucene/util/automaton) were
-automatically generated with the moman/finenight FSA library, created by
-Jean-Philippe Barrette-LaPierre. This library is available under an MIT license,
-see http://sites.google.com/site/rrettesite/moman and 
-http://bitbucket.org/jpbarrette/moman/overview/
-
-The class org.apache.lucene.util.WeakIdentityMap was derived from
-the Apache CXF project and is Apache License 2.0.
-
-The Google Code Prettify is Apache License 2.0.
-See http://code.google.com/p/google-code-prettify/
-
-JUnit (junit-4.10) is licensed under the Common Public License v. 1.0
-See http://junit.sourceforge.net/cpl-v10.html
-
-This product includes code (JaspellTernarySearchTrie) from Java Spelling Checkin
-g Package (jaspell): http://jaspell.sourceforge.net/
-License: The BSD License (http://www.opensource.org/licenses/bsd-license.php)
-
-The snowball stemmers in
-  analysis/common/src/java/net/sf/snowball
-were developed by Martin Porter and Richard Boulton.
-The snowball stopword lists in
-  analysis/common/src/resources/org/apache/lucene/analysis/snowball
-were developed by Martin Porter and Richard Boulton.
-The full snowball package is available from
-  http://snowball.tartarus.org/
-
-The KStem stemmer in
-  analysis/common/src/org/apache/lucene/analysis/en
-was developed by Bob Krovetz and Sergio Guzman-Lara (CIIR-UMass Amherst)
-under the BSD-license.
-
-The Arabic,Persian,Romanian,Bulgarian, and Hindi analyzers (common) come with a default
-stopword list that is BSD-licensed created by Jacques Savoy.  These files reside in:
-analysis/common/src/resources/org/apache/lucene/analysis/ar/stopwords.txt,
-analysis/common/src/resources/org/apache/lucene/analysis/fa/stopwords.txt,
-analysis/common/src/resources/org/apache/lucene/analysis/ro/stopwords.txt,
-analysis/common/src/resources/org/apache/lucene/analysis/bg/stopwords.txt,
-analysis/common/src/resources/org/apache/lucene/analysis/hi/stopwords.txt
-See http://members.unine.ch/jacques.savoy/clef/index.html.
-
-The German,Spanish,Finnish,French,Hungarian,Italian,Portuguese,Russian and Swedish light stemmers
-(common) are based on BSD-licensed reference implementations created by Jacques Savoy and
-Ljiljana Dolamic. These files reside in:
-analysis/common/src/java/org/apache/lucene/analysis/de/GermanLightStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/de/GermanMinimalStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/es/SpanishLightStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/fi/FinnishLightStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchLightStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/fr/FrenchMinimalStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/hu/HungarianLightStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/it/ItalianLightStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/pt/PortugueseLightStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/ru/RussianLightStemmer.java
-analysis/common/src/java/org/apache/lucene/analysis/sv/SwedishLightStemmer.java
-
-The Stempel analyzer (stempel) includes BSD-licensed software developed 
-by the Egothor project http://egothor.sf.net/, created by Leo Galambos, Martin Kvapil,
-and Edmond Nolan.
-
-The Polish analyzer (stempel) comes with a default
-stopword list that is BSD-licensed created by the Carrot2 project. The file resides
-in stempel/src/resources/org/apache/lucene/analysis/pl/stopwords.txt.
-See http://project.carrot2.org/license.html.
-
-The SmartChineseAnalyzer source code (smartcn) was
-provided by Xiaoping Gao and copyright 2009 by www.imdict.net.
-
-WordBreakTestUnicode_*.java (under modules/analysis/common/src/test/) 
-is derived from Unicode data such as the Unicode Character Database. 
-See http://unicode.org/copyright.html for more details.
-
-The Morfologik analyzer (morfologik) includes BSD-licensed software
-developed by Dawid Weiss and Marcin Miłkowski (http://morfologik.blogspot.com/).
-
-Morfologik uses data from Polish ispell/myspell dictionary
-(http://www.sjp.pl/slownik/en/) licenced on the terms of (inter alia)
-LGPL and Creative Commons ShareAlike.
-
-Morfologic includes data from BSD-licensed dictionary of Polish (SGJP)
-(http://sgjp.pl/morfeusz/)
-
-Servlet-api.jar and javax.servlet-*.jar are under the CDDL license, the original
-source code for this can be found at http://www.eclipse.org/jetty/downloads.php
-
-===========================================================================
-Kuromoji Japanese Morphological Analyzer - Apache Lucene Integration
-===========================================================================
-
-This software includes a binary and/or source version of data from
-
-  mecab-ipadic-2.7.0-20070801
-
-which can be obtained from
-
-  http://atilika.com/releases/mecab-ipadic/mecab-ipadic-2.7.0-20070801.tar.gz
-
-or
-
-  http://jaist.dl.sourceforge.net/project/mecab/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz
-
-===========================================================================
-mecab-ipadic-2.7.0-20070801 Notice
-===========================================================================
-
-Nara Institute of Science and Technology (NAIST),
-the copyright holders, disclaims all warranties with regard to this
-software, including all implied warranties of merchantability and
-fitness, in no event shall NAIST be liable for
-any special, indirect or consequential damages or any damages
-whatsoever resulting from loss of use, data or profits, whether in an
-action of contract, negligence or other tortuous action, arising out
-of or in connection with the use or performance of this software.
-
-A large portion of the dictionary entries
-originate from ICOT Free Software.  The following conditions for ICOT
-Free Software applies to the current dictionary as well.
-
-Each User may also freely distribute the Program, whether in its
-original form or modified, to any third party or parties, PROVIDED
-that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear
-on, or be attached to, the Program, which is distributed substantially
-in the same form as set out herein and that such intended
-distribution, if actually made, will neither violate or otherwise
-contravene any of the laws and regulations of the countries having
-jurisdiction over the User or the intended distribution itself.
-
-NO WARRANTY
-
-The program was produced on an experimental basis in the course of the
-research and development conducted during the project and is provided
-to users as so produced on an experimental basis.  Accordingly, the
-program is provided without any warranty whatsoever, whether express,
-implied, statutory or otherwise.  The term "warranty" used herein
-includes, but is not limited to, any warranty of the quality,
-performance, merchantability and fitness for a particular purpose of
-the program and the nonexistence of any infringement or violation of
-any right of any third party.
-
-Each user of the program will agree and understand, and be deemed to
-have agreed and understood, that there is no warranty whatsoever for
-the program and, accordingly, the entire risk arising from or
-otherwise connected with the program is assumed by the user.
-
-Therefore, neither ICOT, the copyright holder, or any other
-organization that participated in or was otherwise related to the
-development of the program and their respective officials, directors,
-officers and other employees shall be held liable for any and all
-damages, including, without limitation, general, special, incidental
-and consequential damages, arising out of or otherwise in connection
-with the use or inability to use the program or any product, material
-or result produced or otherwise obtained by using the program,
-regardless of whether they have been advised of, or otherwise had
-knowledge of, the possibility of such damages at any time during the
-project or thereafter.  Each user will be deemed to have agreed to the
-foregoing by his or her commencement of use of the program.  The term
-"use" as used herein includes, but is not limited to, the use,
-modification, copying and distribution of the program and the
-production of secondary products from the program.
-
-In the case where the program, whether in its original form or
-modified, was distributed or delivered to or received by a user from
-any person, organization or entity other than ICOT, unless it makes or
-grants independently of ICOT any specific warranty to the user in
-writing, such person, organization or entity, will also be exempted
-from and not be held liable to the user for any such damages as noted
-above as far as the program is concerned.
-
-
-                            The Netty Project
-                            =================
-
-Please visit the Netty web site for more information:
-
-  * http://netty.io/
-
-Copyright 2011 The Netty Project
-
-The Netty Project 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.
-
-Also, please refer to each LICENSE.<component>.txt file, which is located in
-the 'license' directory of the distribution file, for the license terms of the
-components that this product depends on.
-
--------------------------------------------------------------------------------
-This product contains the extensions to Java Collections Framework which has
-been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
-
-  * LICENSE:
-    * license/LICENSE.jsr166y.txt (Public Domain)
-  * HOMEPAGE:
-    * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
-    * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
-
-This product contains a modified version of Robert Harder's Public Domain
-Base64 Encoder and Decoder, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.base64.txt (Public Domain)
-  * HOMEPAGE:
-    * http://iharder.sourceforge.net/current/java/base64/
-
-This product contains a modified portion of 'Webbit', an event based  
-WebSocket and HTTP server, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.webbit.txt (BSD License)
-  * HOMEPAGE:
-    * https://github.com/joewalnes/webbit
-
-This product contains a modified portion of 'SLF4J', a simple logging
-facade for Java, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.slf4j.txt (MIT License)
-  * HOMEPAGE:
-    * http://www.slf4j.org/
-
-
-This product contains a modified version of Roland Kuhn's ASL2
-AbstractNodeQueue, which is based on Dmitriy Vyukov's non-intrusive MPSC queue.
-It can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.abstractnodequeue.txt (Public Domain)
-  * HOMEPAGE:
-    * https://github.com/akka/akka/blob/wip-2.2.3-for-scala-2.11/akka-actor/src/main/java/akka/dispatch/AbstractNodeQueue.java
-
-This product contains a modified portion of Nitsan Wakart's 'JCTools', Java Concurrency Tools for the JVM,
- which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.jctools.txt (ASL2 License)
-  * HOMEPAGE:
-    * https://github.com/JCTools/JCTools
-
-
-This product optionally depends on 'JZlib', a re-implementation of zlib in
-pure Java, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.jzlib.txt (BSD style License)
-  * HOMEPAGE:
-    * http://www.jcraft.com/jzlib/
-
-This product optionally depends on 'Protocol Buffers', Google's data
-interchange format, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.protobuf.txt (New BSD License)
-  * HOMEPAGE:
-    * http://code.google.com/p/protobuf/
-
-This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
-a temporary self-signed X.509 certificate when the JVM does not provide the
-equivalent functionality.  It can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.bouncycastle.txt (MIT License)
-  * HOMEPAGE:
-    * http://www.bouncycastle.org/
-
-This product optionally depends on 'Snappy', a compression library produced
-by Google Inc, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.snappy.txt (New BSD License)
-  * HOMEPAGE:
-    * http://code.google.com/p/snappy/
-
-This product optionally depends on 'JBoss Marshalling', an alternative Java
-serialization API, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.jboss-marshalling.txt (GNU LGPL 2.1)
-  * HOMEPAGE:
-    * http://www.jboss.org/jbossmarshalling
-
-This product optionally depends on 'Caliper', Google's micro-
-benchmarking framework, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.caliper.txt (Apache License 2.0)
-  * HOMEPAGE:
-    * http://code.google.com/p/caliper/
-
-This product optionally depends on 'Apache Commons Logging', a logging
-framework, which can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.commons-logging.txt (Apache License 2.0)
-  * HOMEPAGE:
-    * http://commons.apache.org/logging/
-
-This product optionally depends on 'Apache Log4J', a logging framework, which
-can be obtained at:
-
-  * LICENSE:
-    * license/LICENSE.log4j.txt (Apache License 2.0)
-  * HOMEPAGE:
-    * http://logging.apache.org/log4j/
-
-Spring Framework 3.2.12.RELEASE
-Copyright (c) 2002-2014 Pivotal, Inc.
-
-This product is licensed to you under the Apache License, Version 2.0
-(the "License"). You may not use this product except in compliance with
-the License.
-
-This product may include a number of subcomponents with separate
-copyright notices and license terms. Your use of the source code for
-these subcomponents is subject to the terms and conditions of the
-subcomponent's license, as noted in the license.txt file.
-
-   ======================================================================
-   == NOTICE file corresponding to section 4 d of the Apache License,  ==
-   == Version 2.0, for the Spring Framework distribution.              ==
-   ======================================================================
-
-   This product includes software developed by
-   the Apache Software Foundation (http://www.apache.org).
-
-   The end-user documentation included with a redistribution, if any,
-   must include the following acknowledgement:
-
-     "This product includes software developed by the Spring Framework
-      Project (http://www.springframework.org)."
-
-   Alternately, this acknowledgement may appear in the software itself,
-   if and wherever such third-party acknowledgements normally appear.
-
-   The names "Spring", "Spring Framework", and "Spring GemFire" must
-   not be used to endorse or promote products derived from this
-   software without prior written permission. For written permission,
-   please contact enquiries@springsource.com.
-
-   ======================================================================
-   == NOTICE file corresponding to section 4 d of the Apache License,  ==
-   == Version 2.0, for the Spring Framework distribution.              ==
-   ======================================================================
-
-   This product includes software developed by
-   the Apache Software Foundation (http://www.apache.org).
-
-   The end-user documentation included with a redistribution, if any,
-   must include the following acknowledgement:
-
-     "This product includes software developed by the Spring Framework
-      Project (http://www.springframework.org)."
-
-   Alternately, this acknowledgement may appear in the software itself,
-   if and wherever such third-party acknowledgements normally appear.
-
-   The names "Spring", "Spring Framework", and "Spring Shell" must
-   not be used to endorse or promote products derived from this
-   software without prior written permission. For written permission,
-   please contact enquiries@springsource.com.

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/main/dist/bin/gfsh
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/main/dist/bin/gfsh b/gemfire-assembly/src/main/dist/bin/gfsh
deleted file mode 100755
index d08e0d4..0000000
--- a/gemfire-assembly/src/main/dist/bin/gfsh
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/bin/bash
-# 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.
-
-#
-# Environment variables:
-#
-# GF_JAVA - java executable path. 
-#
-# JAVA_ARGS - java arguments, i.e., -Xms1024m -Xmx1024m ...
-#
-# GEMFIRE - GemFire product directory  
-#
-#
-
-if [ -t 0 -a -t 1 ]; then
-  export COLUMNS=`tput cols`
-fi
-
-# Is the file a symbolic link?
-if [ -L $0 ]; then
-    LINK=$( ls -la $0 | awk '{print $NF}' )
-    # Is the link an absolute path?
-    if [[ $(echo $LINK | grep '^/') ]]; then
-        GFSCRIPT=$LINK
-    else
-        GFSCRIPT=$( dirname $0 )/$LINK
-    fi
-    GFPATH=$( cd $(dirname $GFSCRIPT)/..; pwd )
-else
-    GFPATH=$( cd $(dirname $0)/..; pwd )
-fi
-
-# Set GEMFIRE to the product toplevel directory
-GEMFIRE=$GFPATH
-
-UNAME=$( uname )
-if [[ "$UNAME" == CYGWIN* ]]; then
-  UNAME="cygwin"
-else
-  if [[ "$UNAME" == Darwin* ]]; then
-    UNAME="darwin"
-  fi
-fi
-
-if [ "x$WINDIR" != "x" ]; then
-  if [ "${UNAME}" = "cygwin" ]; then
-#	Added for making backspace work under cygwin
-	JLINE_TERMINAL="-Djline.terminal=com.gemstone.gemfire.management.internal.cli.shell.jline.CygwinMinttyTerminal"
-  else
-    echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
-    exit 1
-  fi
-fi
-
-if [ ! -f $GEMFIRE/lib/gemfire-core-dependencies.jar ]; then
-  echo "ERROR: Could not determine GEMFIRE location."
-  exit 1
-fi
-export GEMFIRE
-
-GEMFIRE_JARS=$GEMFIRE/lib/gfsh-dependencies.jar
-if [ "x$CLASSPATH" != "x" ]; then
-  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
-fi
-CLASSPATH=$GEMFIRE_JARS
-
-#
-# Copy default .gfshrc to the home directory. Uncomment if needed.
-#
-#if [ ! -f $HOME/.gemfire/.gfsh2rc ]; then
-#  cp $GEMFIRE/defaultConfigs/.gemfire/.gfsh2rc $HOME
-#fi
-
-#
-# Make dirs and copy etc files if .gemfire does not exist. Uncomment if needed.
-#
-#if [ ! -d $HOME/.gemfire ]; then
-#  mkdir -p $HOME/.gemfire/gfsh
-#fi
-
-LAUNCHER=com.gemstone.gemfire.management.internal.cli.Launcher
-
-if [ "x$JAVA_ARGS" != "x" ]; then
-  JAVA_ARGS="$JAVA_ARGS"
-fi
-
-if [ "x$GF_JAVA" == "x" ]; then 
-    if [ "x$JAVA_HOME" != "x" ]; then
-        GF_JAVA=$JAVA_HOME/bin/java
-    fi
-fi
-
-GF_JAVA=${GF_JAVA:-java}
-
-GF_JAVA_PATH=`which "$GF_JAVA"`
-if [ "x$GF_JAVA_PATH" == "x" ]; then
-  echo "ERROR: Could not find java executable in the path. Please set JAVA_HOME to point to the JDK directory or point GF_JAVA to java executable from JDK."
-  exit 1
-fi
-GF_JAVA_PARENT=`dirname "$GF_JAVA_PATH"`
-GF_JAVA_PARENT=`dirname "$GF_JAVA_PARENT"`
-TOOLS_JAR="$GF_JAVA_PARENT/lib/tools.jar"
-if [ ! -f "$TOOLS_JAR" ]; then
-    # Now consider java is from JRE in JDK 
-    TOOLS_JAR="$GF_JAVA_PARENT/../lib/tools.jar"
-    if [ ! -f "$TOOLS_JAR" ]; then
-        TOOLS_JAR=
-        if [ "${UNAME}" = "darwin" ]; then
-            # For MacOS, try default path
-            TOOLS_JAR="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes/classes.jar"
-            if [ ! -f "$TOOLS_JAR" ]; then
-              TOOLS_JAR=
-            fi
-        fi
-    fi
-fi
-
-if [ "x$TOOLS_JAR" != "x" ]; then
-  CLASSPATH="$CLASSPATH:$TOOLS_JAR"
-fi
-
-if [ "${UNAME}" = "cygwin" ]; then
-  CLASSPATH=$( cygpath -w -p "$CLASSPATH" )
-  if [ -t 0 -a -t 1 ]; then
-    stty -icanon min 1 -echo
-  fi
-fi
-
-# Set our trap handler to clean up the terminal in case bad things happen
-# Only when running attached to terminal
-if [ -t 0 -a -t 1 ]; then
-  trap "stty icanon echo" SIGCHLD
-fi
-
-# This enables job control and monitoring, effectively switching on the trap
-# handler to run when the java exe exits, regardless of how (even if killed).
-set -bm
-"$GF_JAVA" -Dgfsh=true -Dlog4j.configurationFile=classpath:log4j2-cli.xml ${JLINE_TERMINAL} -classpath "${CLASSPATH}" $JAVA_ARGS $LAUNCHER  "$@"
-exit $?

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/main/dist/bin/gfsh-completion.bash
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/main/dist/bin/gfsh-completion.bash b/gemfire-assembly/src/main/dist/bin/gfsh-completion.bash
deleted file mode 100755
index d81e5f3..0000000
--- a/gemfire-assembly/src/main/dist/bin/gfsh-completion.bash
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-#
-# Auto completion script for GemFire's gfsh script
-#
-# Either explicitly source it into your shell enviroment, set it up in your
-# .bashrc or .bash_profile or copy it to /etc/bash_completion.d
-#
-
-_gfsh() {
-    # The main verbs gfsh understands
-    declare -r VERBS="compact describe encrypt help run start status stop validate version"
-
-    # The nouns relevant to the verbs
-    declare -r N_compact="offline-disk-store"
-    declare -r N_describe="offline-disk-store"
-    declare -r N_encrypt="password"
-    declare -r N_help="$VERBS"
-    declare -r N_start="jconsole jvisualvm locator pulse server vsd"
-    declare -r N_status="locator server"
-    declare -r N_stop="locator server"
-    declare -r N_validate="offline-disk-store"
-
-    # The options relevant to each verb-noun combination
-    declare -r OPT_compact_offline_disk_store="--name --disk-dirs --max-oplog-size --J"
-    declare -r OPT_describe_offline_disk_store="--name=value --disk-dirs --region"
-    declare -r OPT_encrypt_password="--password"
-    declare -r OPT_run="--file --quiet --continue-on-error"
-    declare -r OPT_start_jconsole="--interval --notile --pluginpath --version --J"
-    declare -r OPT_start_jvisualvm="--J"
-    declare -r OPT_start_locator="--name --bind-address --force --group \
-        --hostname-for-clients --locators --log-level --mcast-address \
-        --mcast-port --port --dir --properties-file --security-properties-file \
-        --initial-heap --max-heap --J --connect --enable-cluster-configuration \
-        --load-cluster-configuration-from-dir"
-    declare -r OPT_start_pulse="--url"
-    declare -r OPT_start_server="--name --assign-buckets --bind-address \
-        --cache-xml-file --classpath --disable-default-server \
-        --disable-exit-when-out-of-memory --enable-time-statistics --force \
-        --properties-file --security-properties-file --group \
-        --locators \
-        --log-level --mcast-address --mcast-port --name --memcached-port \
-        --memcached-protocol --rebalance --server-bind-address --server-port \
-        --spring-xml-location --statistic-archive-file --dir --initial-heap \
-        --max-heap --use-cluster-configuration --J --critical-heap-percentage \
-        --eviction-heap-percentage --hostname-for-clients --max-connections \
-        --message-time-to-live --max-message-count --max-threads --socket-buffer-size"
-    declare -r OPT_start_vsd="--file"
-    declare -r OPT_status_locator="--name --host --port --pid --dir"
-    declare -r OPT_status_server="--name --pid --dir"
-    declare -r OPT_stop_locator="--name --pid --dir"
-    declare -r OPT_stop_server="--name --pid --dir"
-    declare -r OPT_validate_offline_disk_store="--name --disk-dirs"
-    declare -r OPT_version="--full"
-
-    local cur=${COMP_WORDS[COMP_CWORD]}
-    local use="VERBS"
-
-    local verb=${COMP_WORDS[1]}
-    local noun=${COMP_WORDS[2]}
-
-    # Ignore potential options
-    noun=${noun##-*}
-
-    # Because variable names can't have dashes
-    noun=${noun//-/_}
-
-    if [[ -n "$noun" ]]; then
-        use="OPT_${verb}_${noun}"
-        if [[ -z "${!use}" ]]; then
-            use="N_$verb"
-        fi
-    elif [[ -n "$verb" ]]; then
-        # Special handling for these as they don't have associated nouns
-        if [[ "$verb" = "run" || "$verb" = "version" ]]; then
-            use="OPT_$verb"
-        else
-            use="N_$verb"
-            if [[ -z "${!use}" ]]; then
-                use="VERBS"
-            fi
-        fi
-    fi
-
-    COMPREPLY=( $( compgen -W "${!use}" -- "$cur" ) )
-}
-
-complete -F _gfsh gfsh
-    

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/main/dist/bin/gfsh.bat
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/main/dist/bin/gfsh.bat b/gemfire-assembly/src/main/dist/bin/gfsh.bat
deleted file mode 100755
index 770e0b9..0000000
--- a/gemfire-assembly/src/main/dist/bin/gfsh.bat
+++ /dev/null
@@ -1,87 +0,0 @@
-@echo off
-REM Licensed to the Apache Software Foundation (ASF) under one or more
-REM contributor license agreements.  See the NOTICE file distributed with
-REM this work for additional information regarding copyright ownership.
-REM The ASF licenses this file to You under the Apache License, Version 2.0
-REM (the "License"); you may not use this file except in compliance with
-REM the License.  You may obtain a copy of the License at
-REM
-REM      http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing, software
-REM distributed under the License is distributed on an "AS IS" BASIS,
-REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM See the License for the specific language governing permissions and
-REM limitations under the License.
-
-REM
-REM Environment variables:
-REM
-REM GF_JAVA - java executable path. 
-REM
-REM JAVA_ARGS - java arguments, i.e., -Xms1024m -Xmx1024m ... 
-REM
-REM GEMFIRE - GemFire product Directory
-REM
-REM
-
-@setlocal enableextensions
-@set scriptdir=%~dp0
-@set gf=%scriptdir:\bin\=%
-REM echo %gf%
-REM echo %scriptdir%
-@if exist "%gf%\lib\gemfire-core-dependencies.jar" @goto gfok
-@echo Could not determine GEMFIRE location
-@verify other 2>nul
-@goto done
-:gfok
-@set GEMFIRE=%gf%
-
-@set GEMFIRE_JARS=%GEMFIRE%\lib\gfsh-dependencies.jar
-@if defined CLASSPATH (
-@set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
-)
-
-@if not defined GF_JAVA (
-@REM %GF_JAVA% is not defined, assume it is on the PATH
-@if defined JAVA_HOME (
-@set GF_JAVA=%JAVA_HOME%\bin\java.exe
-) else (
-@set GF_JAVA=java
-)
-) 
-
-REM
-REM GFSH_JARS
-REM
-@set GFSH_JARS=;%GEMFIRE%\lib\gfsh-dependencies.jar
-@set CLASSPATH=%GFSH_JARS%;%GEMFIRE_JARS%
-
-REM
-REM Copy default .gfshrc to the home directory. Uncomment if needed.
-REM
-REM @if not exist "%USERPROFILE%\.gemfire\.gfsh2rc" (
-REM @xcopy /q "%GEMFIRE%\defaultConfigs\.gfsh2rc" "%USERPROFILE%\.gemfire"
-REM )
-
-REM
-REM Make dir if .gemfire does not exist. Uncomment if needed.
-REM
-REM @if not exist "%USERPROFILE%\.gemfire" (
-REM @mkdir "%USERPROFILE%\.gemfire"
-REM )
-
-REM  Consider java is from JDK
-@set TOOLS_JAR=%JAVA_HOME%\lib\tools.jar
-@IF EXIST "%TOOLS_JAR%" (
-    @set CLASSPATH=%CLASSPATH%;%TOOLS_JAR%
-) ELSE (
-    set TOOLS_JAR=
-)
-
-@set LAUNCHER=com.gemstone.gemfire.management.internal.cli.Launcher
-@if defined JAVA_ARGS (
-@set JAVA_ARGS="%JAVA_ARGS%"
-)
-@"%GF_JAVA%" -Dgfsh=true -Dlog4j.configurationFile=classpath:log4j2-cli.xml %JAVA_ARGS% %LAUNCHER% %*
-:done

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherAssemblyJUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherAssemblyJUnitTest.java b/gemfire-assembly/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherAssemblyJUnitTest.java
deleted file mode 100644
index 1deff22..0000000
--- a/gemfire-assembly/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherAssemblyJUnitTest.java
+++ /dev/null
@@ -1,157 +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.distributed;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.distributed.AbstractLauncher.Status;
-import com.gemstone.gemfire.distributed.LocatorLauncher.Builder;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.AvailablePortHelper;
-import com.gemstone.gemfire.internal.process.ProcessType;
-import com.gemstone.gemfire.internal.process.ProcessUtils;
-import com.gemstone.gemfire.management.ManagementService;
-import com.gemstone.gemfire.management.ManagerMXBean;
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.File;
-
-import static org.junit.Assert.*;
-
-/**
- * These tests are part of assembly as they require the REST war file to be present.
- *
- * @author Jens Deppe
- */
-@Category(IntegrationTest.class)
-public class LocatorLauncherAssemblyJUnitTest extends AbstractLocatorLauncherJUnitTestCase {
-
-  @Before
-  public final void setUpLocatorLauncherLocalTest() throws Exception {
-    disconnectFromDS();
-    System.setProperty(ProcessType.TEST_PREFIX_PROPERTY, getUniqueName() + "-");
-  }
-
-  @After
-  public final void tearDownLocatorLauncherLocalTest() throws Exception {
-    disconnectFromDS();
-  }
-
-  /*
-   * This test addresses GEODE-528
-   */
-  @Test
-  public void testLocatorStopsWhenJmxPortIsZero() throws Throwable {
-    String rootFolder = this.temporaryFolder.getRoot().getCanonicalPath();
-
-    final Builder builder = new Builder()
-        .setMemberName(getUniqueName())
-        .setPort(this.locatorPort)
-        .setRedirectOutput(false)
-        .setWorkingDirectory(rootFolder)
-        .set(DistributionConfig.LOG_LEVEL_NAME, "config")
-        .set(DistributionConfig.ENABLE_CLUSTER_CONFIGURATION_NAME, "false")
-        .set(DistributionConfig.JMX_MANAGER_NAME, "true")
-        .set(DistributionConfig.JMX_MANAGER_START_NAME, "true")
-        .set(DistributionConfig.JMX_MANAGER_PORT_NAME, "0");
-
-    performTest(builder);
-  }
-
-  /*
-   * This test addresses GEODE-528
-   */
-  @Test
-  public void testLocatorStopsWhenJmxPortIsNonZero() throws Throwable {
-    String rootFolder = this.temporaryFolder.getRoot().getCanonicalPath();
-    final int jmxPort = AvailablePortHelper.getRandomAvailableTCPPorts(1)[0];
-
-    final Builder builder = new Builder().setMemberName(getUniqueName())
-        .setPort(this.locatorPort)
-        .setRedirectOutput(false)
-        .setWorkingDirectory(rootFolder)
-        .set(DistributionConfig.LOG_LEVEL_NAME, "config")
-        .set(DistributionConfig.ENABLE_CLUSTER_CONFIGURATION_NAME, "false")
-        .set(DistributionConfig.JMX_MANAGER_NAME, "true")
-        .set(DistributionConfig.JMX_MANAGER_START_NAME, "true")
-        .set(DistributionConfig.JMX_MANAGER_PORT_NAME, Integer.toString(jmxPort));
-
-    performTest(builder);
-  }
-
-  private void performTest(Builder builder) {
-    assertFalse(builder.getForce());
-    this.launcher = builder.build();
-    assertFalse(this.launcher.isForcing());
-
-    LocatorLauncher dirLauncher = null;
-    int initialThreadCount = Thread.activeCount();
-
-    try {
-      this.launcher.start();
-      waitForLocatorToStart(this.launcher);
-
-      // validate the pid file and its contents
-      this.pidFile = new File(this.temporaryFolder.getRoot(), ProcessType.LOCATOR.getPidFileName());
-      assertTrue("Pid file " + this.pidFile.getCanonicalPath().toString() + " should exist", this.pidFile.exists());
-      final int pid = readPid(this.pidFile);
-      assertTrue(pid > 0);
-      assertEquals(ProcessUtils.identifyPid(), pid);
-
-      dirLauncher = new Builder().setWorkingDirectory(builder.getWorkingDirectory()).build();
-      assertNotNull(dirLauncher);
-      assertFalse(dirLauncher.isRunning());
-
-      // Stop the manager
-      Cache cache = CacheFactory.getAnyInstance();
-      ManagerMXBean managerBean = ManagementService.getManagementService(cache).getManagerMXBean();
-      managerBean.stop();
-
-      // stop the locator
-      final LocatorLauncher.LocatorState locatorState = dirLauncher.stop();
-      assertNotNull(locatorState);
-      assertEquals(Status.STOPPED, locatorState.getStatus());
-    } catch (Throwable e) {
-      this.errorCollector.addError(e);
-    }
-
-    try {
-      // verify the PID file was deleted
-      waitForFileToDelete(this.pidFile);
-    } catch (Throwable e) {
-      this.errorCollector.addError(e);
-    }
-
-    int finalThreadCount = Integer.MAX_VALUE;
-
-    // Spin for up to 5 seconds waiting for threads to finish
-    for (int i = 0; i < 50 && finalThreadCount > initialThreadCount; i++) {
-      try {
-        Thread.sleep(100);
-      } catch (InterruptedException ex) {
-        // ignored
-      }
-      finalThreadCount = Thread.activeCount();
-    }
-
-    assertEquals(initialThreadCount, finalThreadCount);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/AgentUtilJUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/AgentUtilJUnitTest.java b/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/AgentUtilJUnitTest.java
deleted file mode 100644
index 90bda65..0000000
--- a/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/AgentUtilJUnitTest.java
+++ /dev/null
@@ -1,98 +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.management.internal;
-
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-import static org.junit.Assert.assertNotNull;
-
-@Category(IntegrationTest.class)
-public class AgentUtilJUnitTest {
-
-  private AgentUtil agentUtil;
-  private String version;
-
-  @Before
-  public void setUp() {
-    version = getGemfireVersion();
-    agentUtil = new AgentUtil(version);
-  }
-
-  @Test
-  public void testRESTApiExists() {
-    String gemFireWarLocation = agentUtil.findWarLocation("gemfire-web-api");
-    assertNotNull("GemFire REST API WAR File was not found", gemFireWarLocation);
-  }
-
-  @Test
-  public void testPulseWarExists() {
-    String gemFireWarLocation = agentUtil.findWarLocation("gemfire-pulse");
-    assertNotNull("Pulse WAR File was not found", gemFireWarLocation);
-  }
-
-  private String getGemfireVersion() {
-    String version = null;
-
-    Properties prop = new Properties();
-    InputStream inputStream = null;
-    String pathPrefix = null;
-    try {
-      pathPrefix = calculatePathPrefixToProjectRoot("gemfire-assembly/");
-      inputStream = new FileInputStream(pathPrefix + "gradle.properties");
-    } catch (FileNotFoundException e1) {
-      try {
-        pathPrefix = calculatePathPrefixToProjectRoot("gemfire-core/");
-        inputStream = new FileInputStream(pathPrefix + "gradle.properties");
-      } catch (FileNotFoundException e) {
-      }
-    }
-
-    if (inputStream != null) {
-      try {
-        prop.load(inputStream);
-        version = prop.getProperty("versionNumber") + prop.getProperty("releaseType");
-      } catch (FileNotFoundException e) {
-      } catch (IOException e) {
-      }
-    }
-    return version;
-  }
-
-  private String calculatePathPrefixToProjectRoot(String subDirectory) {
-    String pathPrefix = "";
-
-    String currentDirectoryPath = new File(".").getAbsolutePath();
-    int gemfireCoreLocationIx = currentDirectoryPath.indexOf(subDirectory);
-    if (gemfireCoreLocationIx < 0) {
-      return pathPrefix;
-    }
-
-    return currentDirectoryPath.substring(0, gemfireCoreLocationIx);
-  }
-
-
-}


[32/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSession.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSession.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSession.java
new file mode 100644
index 0000000..c81a232
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSession.java
@@ -0,0 +1,597 @@
+/*
+* 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.catalina;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.Delta;
+import com.gemstone.gemfire.InvalidDeltaException;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.internal.cache.lru.Sizeable;
+import com.gemstone.gemfire.internal.util.BlobHelper;
+import com.gemstone.gemfire.modules.gatewaydelta.GatewayDelta;
+import com.gemstone.gemfire.modules.gatewaydelta.GatewayDeltaEvent;
+import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionAttributeEvent;
+import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionAttributeEventBatch;
+import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionDestroyAttributeEvent;
+import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionUpdateAttributeEvent;
+import org.apache.catalina.Manager;
+import org.apache.catalina.ha.session.SerializablePrincipal;
+import org.apache.catalina.realm.GenericPrincipal;
+import org.apache.catalina.security.SecurityUtil;
+import org.apache.catalina.session.StandardSession;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+
+import javax.servlet.http.HttpSession;
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.AccessController;
+import java.security.Principal;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@SuppressWarnings("serial")
+public class DeltaSession extends StandardSession implements DataSerializable, Delta, GatewayDelta, Sizeable {
+
+  private transient Region<String, HttpSession> operatingRegion;
+
+  private String sessionRegionName;
+
+  private String contextName;
+
+  private boolean hasDelta;
+
+  private boolean applyRemotely;
+
+  private boolean enableGatewayDeltaReplication;
+
+  private transient final Object changeLock = new Object();
+
+  private final List<DeltaSessionAttributeEvent> eventQueue = new ArrayList<DeltaSessionAttributeEvent>();
+
+  private transient GatewayDeltaEvent currentGatewayDeltaEvent;
+
+  private transient boolean expired = false;
+
+  private transient boolean preferDeserializedForm = true;
+
+  private byte[] serializedPrincipal;
+
+  private final Log LOG = LogFactory.getLog(DeltaSession.class.getName());
+
+  /**
+   * The string manager for this package.
+   */
+//  protected static StringManager STRING_MANAGER =
+//    StringManager.getManager("com.gemstone.gemfire.modules.session.catalina");
+
+  /**
+   * Construct a new <code>Session</code> associated with no <code>Manager</code>. The <code>Manager</code> will be
+   * assigned later using {@link #setOwner(Object)}.
+   */
+  public DeltaSession() {
+    super(null);
+  }
+
+  /**
+   * Construct a new Session associated with the specified Manager.
+   *
+   * @param manager The manager with which this Session is associated
+   */
+  public DeltaSession(Manager manager) {
+    super(manager);
+    setOwner(manager);
+  }
+
+  /**
+   * Return the <code>HttpSession</code> for which this object is the facade.
+   */
+  @SuppressWarnings("unchecked")
+  public HttpSession getSession() {
+    if (facade == null) {
+      if (SecurityUtil.isPackageProtectionEnabled()) {
+        final DeltaSession fsession = this;
+        facade = (DeltaSessionFacade) AccessController.doPrivileged(new PrivilegedAction() {
+          public Object run() {
+            return new DeltaSessionFacade(fsession);
+          }
+        });
+      } else {
+        facade = new DeltaSessionFacade(this);
+      }
+    }
+    return (facade);
+  }
+
+  public Principal getPrincipal() {
+    if (this.principal == null && this.serializedPrincipal != null) {
+      SerializablePrincipal sp = null;
+      try {
+        sp = (SerializablePrincipal) BlobHelper.deserializeBlob(this.serializedPrincipal);
+      } catch (Exception e) {
+        StringBuilder builder = new StringBuilder();
+        builder.append(this)
+            .append(
+                ": Serialized principal contains a byte[] that cannot be deserialized due to the following exception");
+        ((DeltaSessionManager) getManager()).getLogger().warn(builder.toString(), e);
+        return null;
+      }
+      this.principal = sp.getPrincipal(this.manager.getContainer().getRealm());
+      if (getManager() != null) {
+        DeltaSessionManager mgr = (DeltaSessionManager) getManager();
+        if (mgr.getLogger().isDebugEnabled()) {
+          mgr.getLogger().debug(this + ": Deserialized principal: " + this.principal);
+          //mgr.logCurrentStack();
+        }
+      }
+    }
+    return this.principal;
+  }
+
+  public void setPrincipal(Principal principal) {
+    super.setPrincipal(principal);
+
+    // Put the session into the region to serialize the principal
+    if (getManager() != null) {
+      // TODO convert this to a delta
+      getManager().add(this);
+      DeltaSessionManager mgr = (DeltaSessionManager) getManager();
+      if (mgr.getLogger().isDebugEnabled()) {
+        mgr.getLogger().debug(this + ": Cached principal: " + principal);
+        //mgr.logCurrentStack();
+      }
+    }
+  }
+
+  private byte[] getSerializedPrincipal() {
+    if (this.serializedPrincipal == null) {
+      if (this.principal != null && this.principal instanceof GenericPrincipal) {
+        GenericPrincipal gp = (GenericPrincipal) this.principal;
+        SerializablePrincipal sp = SerializablePrincipal.createPrincipal(gp);
+        this.serializedPrincipal = serialize(sp);
+        if (manager != null) {
+          DeltaSessionManager mgr = (DeltaSessionManager) getManager();
+          if (mgr.getLogger().isDebugEnabled()) {
+            mgr.getLogger().debug(this + ": Serialized principal: " + sp);
+            //mgr.logCurrentStack();
+          }
+        }
+      }
+    }
+    return this.serializedPrincipal;
+  }
+
+  protected Region<String, HttpSession> getOperatingRegion() {
+    // This region shouldn't be null when it is needed.
+    // It should have been set by the setOwner method.
+    return this.operatingRegion;
+  }
+
+  public boolean isCommitEnabled() {
+    DeltaSessionManager mgr = (DeltaSessionManager) getManager();
+    return mgr.isCommitValveEnabled();
+  }
+
+  public GatewayDeltaEvent getCurrentGatewayDeltaEvent() {
+    return this.currentGatewayDeltaEvent;
+  }
+
+  public void setCurrentGatewayDeltaEvent(GatewayDeltaEvent currentGatewayDeltaEvent) {
+    this.currentGatewayDeltaEvent = currentGatewayDeltaEvent;
+  }
+
+  @SuppressWarnings("unchecked")
+  public void setOwner(Object manager) {
+    if (manager instanceof DeltaSessionManager) {
+      DeltaSessionManager sessionManager = (DeltaSessionManager) manager;
+      this.manager = sessionManager;
+      initializeRegion(sessionManager);
+      this.hasDelta = false;
+      this.applyRemotely = false;
+      this.enableGatewayDeltaReplication = sessionManager.getEnableGatewayDeltaReplication();
+      this.preferDeserializedForm = sessionManager.getPreferDeserializedForm();
+
+      // Initialize transient variables
+      if (this.listeners == null) {
+        this.listeners = new ArrayList();
+      }
+
+      if (this.notes == null) {
+        this.notes = new Hashtable();
+      }
+
+      contextName = ((DeltaSessionManager) manager).getContainer().getName();
+    } else {
+      throw new IllegalArgumentException(this + ": The Manager must be an AbstractManager");
+    }
+  }
+
+  private void checkBackingCacheAvailable() {
+    if (!((SessionManager) getManager()).isBackingCacheAvailable()) {
+      throw new IllegalStateException("No backing cache server is available.");
+    }
+  }
+
+  public void setAttribute(String name, Object value, boolean notify) {
+    checkBackingCacheAvailable();
+    synchronized (this.changeLock) {
+      // Serialize the value
+      byte[] serializedValue = serialize(value);
+
+      // Store the attribute locally
+      if (this.preferDeserializedForm) {
+        super.setAttribute(name, value, true);
+      } else {
+        super.setAttribute(name, serializedValue, true);
+      }
+
+      if (serializedValue == null) {
+        return;
+      }
+
+      // Create the update attribute message
+      DeltaSessionAttributeEvent event = new DeltaSessionUpdateAttributeEvent(name, serializedValue);
+      queueAttributeEvent(event, true);
+
+      // Distribute the update
+      if (!isCommitEnabled()) {
+        putInRegion(getOperatingRegion(), true, null);
+      }
+    }
+  }
+
+  public void removeAttribute(String name, boolean notify) {
+    checkBackingCacheAvailable();
+    synchronized (this.changeLock) {
+      // Remove the attribute locally
+      super.removeAttribute(name, true);
+
+      // Create the destroy attribute message
+      DeltaSessionAttributeEvent event = new DeltaSessionDestroyAttributeEvent(name);
+      queueAttributeEvent(event, true);
+
+      // Distribute the update
+      if (!isCommitEnabled()) {
+        putInRegion(getOperatingRegion(), true, null);
+      }
+    }
+  }
+
+  public Object getAttribute(String name) {
+    checkBackingCacheAvailable();
+    Object value = super.getAttribute(name);
+
+    // If the attribute is a byte[] (meaning it came from the server),
+    // deserialize it and add it to attributes map before returning it.
+    if (value instanceof byte[]) {
+      try {
+        value = BlobHelper.deserializeBlob((byte[]) value);
+      } catch (Exception e) {
+        StringBuilder builder = new StringBuilder();
+        builder.append(this)
+            .append(": Attribute named ")
+            .append(name)
+            .append(" contains a byte[] that cannot be deserialized due to the following exception");
+        ((DeltaSessionManager) getManager()).getLogger().warn(builder.toString(), e);
+      }
+      if (this.preferDeserializedForm) {
+        localUpdateAttribute(name, value);
+      }
+    }
+
+    // Touch the session region if necessary. This is an asynchronous operation
+    // that prevents the session region from prematurely expiring a session that
+    // is only getting attributes.
+    ((DeltaSessionManager) getManager()).addSessionToTouch(getId());
+
+    return value;
+  }
+
+  public void invalidate() {
+    super.invalidate();
+    //getOperatingRegion().destroy(this.id, true); // already done in super (remove)
+    ((DeltaSessionManager) getManager()).getStatistics().incSessionsInvalidated();
+  }
+
+  public void processExpired() {
+    if (((DeltaSessionManager) getManager()).getLogger().isDebugEnabled()) {
+      ((DeltaSessionManager) getManager()).getLogger().debug(this + ": Expired");
+    }
+    // Set expired (so region.destroy is not called again)
+    setExpired(true);
+
+    // Do expire processing
+    expire();
+
+    // Update statistics
+    DeltaSessionManager manager = (DeltaSessionManager) getManager();
+    if (manager != null) {
+      manager.getStatistics().incSessionsExpired();
+    }
+  }
+
+  public void setMaxInactiveInterval(int interval) {
+    super.setMaxInactiveInterval(interval);
+  }
+
+  public void localUpdateAttribute(String name, Object value) {
+    super.setAttribute(name, value, false); // don't do notification since this is a replication
+  }
+
+  public void localDestroyAttribute(String name) {
+    super.removeAttribute(name, false); // don't do notification since this is a replication
+  }
+
+  public void applyAttributeEvents(Region<String, DeltaSession> region, List<DeltaSessionAttributeEvent> events) {
+    for (DeltaSessionAttributeEvent event : events) {
+      event.apply(this);
+      queueAttributeEvent(event, false);
+    }
+
+    putInRegion(region, false, true);
+  }
+
+  private void initializeRegion(DeltaSessionManager sessionManager) {
+    // Get the session region name
+    this.sessionRegionName = sessionManager.getRegionName();
+
+    // Get the operating region.
+    // If a P2P manager is used, then this will be a local region fronting the
+    // session region if local cache is enabled; otherwise, it will be the
+    // session region itself.
+    // If a CS manager is used, it will be the session proxy region.
+    this.operatingRegion = sessionManager.getSessionCache().getOperatingRegion();
+    if (sessionManager.getLogger().isDebugEnabled()) {
+      sessionManager.getLogger().debug(this + ": Set operating region: " + this.operatingRegion);
+    }
+  }
+
+  private void queueAttributeEvent(DeltaSessionAttributeEvent event, boolean checkAddToCurrentGatewayDelta) {
+    // Add to current gateway delta if necessary
+    if (checkAddToCurrentGatewayDelta) {
+      // If the manager has enabled gateway delta replication and is a P2P
+      // manager, the GatewayDeltaForwardCacheListener will be invoked in this
+      // VM. Add the event to the currentDelta.
+      DeltaSessionManager mgr = (DeltaSessionManager) this.manager;
+      if (this.enableGatewayDeltaReplication && mgr.isPeerToPeer()) {
+        // If commit is not enabled, add the event to the current batch; else,
+        // the current batch will be initialized to the events in the queue will
+        // be added at commit time.
+        if (!isCommitEnabled()) {
+          List<DeltaSessionAttributeEvent> events = new ArrayList<DeltaSessionAttributeEvent>();
+          events.add(event);
+          this.currentGatewayDeltaEvent = new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, events);
+        }
+      }
+    }
+    this.eventQueue.add(event);
+  }
+
+  @SuppressWarnings("unchecked")
+  private void putInRegion(Region region, boolean applyRemotely, Object callbackArgument) {
+    this.hasDelta = true;
+    this.applyRemotely = applyRemotely;
+    region.put(this.id, this, callbackArgument);
+    this.eventQueue.clear();
+  }
+
+  public void commit() {
+    if (!isValidInternal()) throw new IllegalStateException("commit: Session " + getId() +
+        " already invalidated");
+//          (STRING_MANAGER.getString("deltaSession.commit.ise", getId()));
+
+    synchronized (this.changeLock) {
+      // Jens - there used to be a check to only perform this if the queue is
+      // empty, but we want this to always run so that the lastAccessedTime
+      // will be updated even when no attributes have been changed.
+      DeltaSessionManager mgr = (DeltaSessionManager) this.manager;
+      if (this.enableGatewayDeltaReplication && mgr.isPeerToPeer()) {
+        setCurrentGatewayDeltaEvent(
+            new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, this.eventQueue));
+      }
+      this.hasDelta = true;
+      this.applyRemotely = true;
+      putInRegion(getOperatingRegion(), true, null);
+      this.eventQueue.clear();
+    }
+  }
+
+  public void abort() {
+    synchronized (this.changeLock) {
+      this.eventQueue.clear();
+    }
+  }
+
+  private void setExpired(boolean expired) {
+    this.expired = expired;
+  }
+
+  protected boolean getExpired() {
+    return this.expired;
+  }
+
+  public String getContextName() {
+    return contextName;
+  }
+
+  public boolean hasDelta() {
+    return this.hasDelta;
+  }
+
+  public void toDelta(DataOutput out) throws IOException {
+    // Write whether to apply the changes to another DS if necessary
+    out.writeBoolean(this.applyRemotely);
+
+    // Write the events
+    DataSerializer.writeArrayList((ArrayList) this.eventQueue, out);
+
+    out.writeLong(this.lastAccessedTime);
+    out.writeInt(this.maxInactiveInterval);
+  }
+
+  public void fromDelta(DataInput in) throws IOException, InvalidDeltaException {
+    // Read whether to apply the changes to another DS if necessary
+    this.applyRemotely = in.readBoolean();
+
+    // Read the events
+    List<DeltaSessionAttributeEvent> events = null;
+    try {
+      events = DataSerializer.readArrayList(in);
+    } catch (ClassNotFoundException e) {
+      throw new InvalidDeltaException(e);
+    }
+
+    // This allows for backwards compatibility with 2.1 clients
+    if (((InputStream) in).available() > 0) {
+      this.lastAccessedTime = in.readLong();
+      this.maxInactiveInterval = in.readInt();
+    }
+
+    // Iterate and apply the events
+    for (DeltaSessionAttributeEvent event : events) {
+      event.apply(this);
+    }
+
+    // Add the events to the gateway delta region if necessary
+    if (this.enableGatewayDeltaReplication && this.applyRemotely) {
+      setCurrentGatewayDeltaEvent(new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, events));
+    }
+
+    // Access it to set the last accessed time. End access it to set not new.
+    access();
+    endAccess();
+  }
+
+  @Override
+  public void toData(DataOutput out) throws IOException {
+    // Write the StandardSession state
+    DataSerializer.writeString(this.id, out);
+    out.writeLong(this.creationTime);
+    out.writeLong(this.lastAccessedTime);
+    out.writeLong(this.thisAccessedTime);
+    out.writeInt(this.maxInactiveInterval);
+    out.writeBoolean(this.isNew);
+    out.writeBoolean(this.isValid);
+    DataSerializer.writeObject(getSerializedAttributes(), out);
+    DataSerializer.writeByteArray(getSerializedPrincipal(), out);
+
+    // Write the DeltaSession state
+    out.writeBoolean(this.enableGatewayDeltaReplication);
+    DataSerializer.writeString(this.sessionRegionName, out);
+
+    DataSerializer.writeString(this.contextName, out);
+  }
+
+  @Override
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    // Read the StandardSession state
+    this.id = DataSerializer.readString(in);
+    this.creationTime = in.readLong();
+    this.lastAccessedTime = in.readLong();
+    this.thisAccessedTime = in.readLong();
+    this.maxInactiveInterval = in.readInt();
+    this.isNew = in.readBoolean();
+    this.isValid = in.readBoolean();
+    this.attributes = DataSerializer.readObject(in);
+    this.serializedPrincipal = DataSerializer.readByteArray(in);
+
+    // Read the DeltaSession state
+    this.enableGatewayDeltaReplication = in.readBoolean();
+    this.sessionRegionName = DataSerializer.readString(in);
+
+    // This allows for backwards compatibility with 2.1 clients
+    if (((InputStream) in).available() > 0) {
+      this.contextName = DataSerializer.readString(in);
+    }
+
+    // Initialize the transients if necessary
+    if (this.listeners == null) {
+      this.listeners = new ArrayList();
+    }
+
+    if (this.notes == null) {
+      this.notes = new Hashtable();
+    }
+  }
+
+  @Override
+  public int getSizeInBytes() {
+    int size = 0;
+    for (Enumeration<String> e = getAttributeNames(); e.hasMoreElements(); ) {
+      // Don't use this.getAttribute() because we don't want to deserialize
+      // the value.
+      Object value = super.getAttribute(e.nextElement());
+      if (value instanceof byte[]) {
+        size += ((byte[]) value).length;
+      }
+    }
+
+    return size;
+  }
+
+  @SuppressWarnings({"unchecked", "rawtypes"})
+  private Map<String, byte[]> getSerializedAttributes() {
+    // Iterate the values and serialize them if necessary before sending them to the server. This makes the application classes unnecessary on the server.
+    Map<String, byte[]> serializedAttributes = new ConcurrentHashMap<String, byte[]>();
+    for (Iterator i = this.attributes.entrySet().iterator(); i.hasNext(); ) {
+      Map.Entry<String, Object> entry = (Map.Entry<String, Object>) i.next();
+      Object value = entry.getValue();
+      byte[] serializedValue = value instanceof byte[] ? (byte[]) value : serialize(value);
+      serializedAttributes.put(entry.getKey(), serializedValue);
+    }
+    return serializedAttributes;
+  }
+
+  private byte[] serialize(Object obj) {
+    byte[] serializedValue = null;
+    try {
+      serializedValue = BlobHelper.serializeToBlob(obj);
+    } catch (IOException e) {
+      StringBuilder builder = new StringBuilder();
+      builder.append(this)
+          .append(": Object ")
+          .append(obj)
+          .append(" cannot be serialized due to the following exception");
+      ((DeltaSessionManager) getManager()).getLogger().warn(builder.toString(), e);
+    }
+    return serializedValue;
+  }
+
+  @Override
+  public String toString() {
+    return new StringBuilder().append("DeltaSession[")
+        .append("id=")
+        .append(getId())
+        .append("; context=")
+        .append(this.contextName)
+        .append("; sessionRegionName=")
+        .append(this.sessionRegionName)
+        .append("; operatingRegionName=")
+        .append(getOperatingRegion() == null ? "unset" : getOperatingRegion().getFullPath())
+        .append("]")
+        .toString();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionFacade.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionFacade.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionFacade.java
new file mode 100644
index 0000000..1ac4da2
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionFacade.java
@@ -0,0 +1,49 @@
+/*
+* 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.catalina;
+
+import org.apache.catalina.session.StandardSessionFacade;
+
+import javax.servlet.http.HttpSession;
+
+public class DeltaSessionFacade extends StandardSessionFacade {
+
+  private DeltaSession session;
+
+  /**
+   * Construct a new session facade.
+   */
+  public DeltaSessionFacade(DeltaSession session) {
+    super((HttpSession) session);
+    // Store session locally since the super session is private and provides no accessor.
+    this.session = session;
+  }
+
+  // ----------- DeltaSession Methods
+
+  public void commit() {
+    this.session.commit();
+  }
+
+  public void abort() {
+    this.session.abort();
+  }
+
+  boolean isValid() {
+    return this.session.isValid();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionManager.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionManager.java
new file mode 100644
index 0000000..92d9ef6
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionManager.java
@@ -0,0 +1,992 @@
+/*
+* 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.catalina;
+
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.query.Query;
+import com.gemstone.gemfire.cache.query.QueryService;
+import com.gemstone.gemfire.cache.query.SelectResults;
+import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
+import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionStatistics;
+import com.gemstone.gemfire.modules.util.ContextMapper;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+import com.gemstone.gemfire.modules.util.RegionHelper;
+import org.apache.catalina.Container;
+import org.apache.catalina.Context;
+import org.apache.catalina.Lifecycle;
+import org.apache.catalina.LifecycleListener;
+import org.apache.catalina.Loader;
+import org.apache.catalina.Session;
+import org.apache.catalina.Valve;
+import org.apache.catalina.session.ManagerBase;
+import org.apache.catalina.session.StandardSession;
+import org.apache.catalina.util.CustomObjectInputStream;
+import org.apache.catalina.util.LifecycleSupport;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+
+abstract public class DeltaSessionManager extends ManagerBase implements Lifecycle, PropertyChangeListener, SessionManager {
+
+  /**
+   * The <code>LifecycleSupport</code> for this component.
+   */
+  protected LifecycleSupport lifecycle = new LifecycleSupport(this);
+
+  /**
+   * The number of rejected sessions.
+   */
+  private AtomicInteger rejectedSessions;
+
+  /**
+   * The maximum number of active Sessions allowed, or -1 for no limit.
+   */
+  protected int maxActiveSessions = -1;
+
+  /**
+   * Has this <code>Manager</code> been started?
+   */
+  protected AtomicBoolean started = new AtomicBoolean(false);
+
+  /**
+   * The name of this <code>Manager</code>
+   */
+  protected String name;
+
+  protected Valve jvmRouteBinderValve;
+
+  protected Valve commitSessionValve;
+
+  protected SessionCache sessionCache;
+
+  protected static final String DEFAULT_REGION_NAME = RegionHelper.NAME + "_sessions";
+
+  protected static final boolean DEFAULT_ENABLE_GATEWAY_DELTA_REPLICATION = false;
+
+  protected static final boolean DEFAULT_ENABLE_GATEWAY_REPLICATION = false;
+
+  protected static final boolean DEFAULT_ENABLE_DEBUG_LISTENER = false;
+
+  protected static final boolean DEFAULT_ENABLE_COMMIT_VALVE = true;
+
+  protected static final boolean DEFAULT_ENABLE_COMMIT_VALVE_FAILFAST = false;
+
+  protected static final boolean DEFAULT_PREFER_DESERIALIZED_FORM = true;
+
+  /*
+   * This *MUST* only be assigned during start/startInternal otherwise it will be associated
+   * with the incorrect context class loader.
+   */
+  protected Log LOGGER;
+
+  protected String regionName = DEFAULT_REGION_NAME;
+
+  protected String regionAttributesId; // the default is different for client-server and peer-to-peer
+
+  protected Boolean enableLocalCache; // the default is different for client-server and peer-to-peer
+
+  protected boolean enableCommitValve = DEFAULT_ENABLE_COMMIT_VALVE;
+
+  protected boolean enableCommitValveFailfast = DEFAULT_ENABLE_COMMIT_VALVE_FAILFAST;
+
+  protected boolean enableGatewayDeltaReplication = DEFAULT_ENABLE_GATEWAY_DELTA_REPLICATION;
+
+  protected boolean enableGatewayReplication = DEFAULT_ENABLE_GATEWAY_REPLICATION;
+
+  protected boolean enableDebugListener = DEFAULT_ENABLE_DEBUG_LISTENER;
+
+  protected boolean preferDeserializedForm = DEFAULT_PREFER_DESERIALIZED_FORM;
+
+  private Timer timer;
+
+  private final Set<String> sessionsToTouch;
+
+  private static final long TIMER_TASK_PERIOD = Long.getLong("gemfiremodules.sessionTimerTaskPeriod", 10000);
+
+  private static final long TIMER_TASK_DELAY = Long.getLong("gemfiremodules.sessionTimerTaskDelay", 10000);
+
+  public DeltaSessionManager() {
+    // Create the set to store sessions to be touched after get attribute requests
+    this.sessionsToTouch = Collections.newSetFromMap(new ConcurrentHashMap<String, Boolean>());
+  }
+
+  @Override
+  public String getRegionName() {
+    return this.regionName;
+  }
+
+  public void setRegionName(String regionName) {
+    this.regionName = regionName;
+  }
+
+  @Override
+  public String getRegionAttributesId() {
+    // This property will be null if it hasn't been set in the context.xml file.
+    // Since its default is dependent on the session cache, get the default from
+    // the session cache.
+    if (this.regionAttributesId == null) {
+      this.regionAttributesId = getSessionCache().getDefaultRegionAttributesId();
+    }
+    return this.regionAttributesId;
+  }
+
+  public void setRegionAttributesId(String regionType) {
+    this.regionAttributesId = regionType;
+  }
+
+  @Override
+  public boolean getEnableLocalCache() {
+    // This property will be null if it hasn't been set in the context.xml file.
+    // Since its default is dependent on the session cache, get the default from
+    // the session cache.
+    if (this.enableLocalCache == null) {
+      this.enableLocalCache = getSessionCache().getDefaultEnableLocalCache();
+    }
+    return this.enableLocalCache;
+  }
+
+  public void setEnableLocalCache(boolean enableLocalCache) {
+    this.enableLocalCache = enableLocalCache;
+  }
+
+  public int getMaxActiveSessions() {
+    return this.maxActiveSessions;
+  }
+
+  public void setMaxActiveSessions(int maxActiveSessions) {
+    int oldMaxActiveSessions = this.maxActiveSessions;
+    this.maxActiveSessions = maxActiveSessions;
+    support.firePropertyChange("maxActiveSessions", new Integer(oldMaxActiveSessions),
+        new Integer(this.maxActiveSessions));
+  }
+
+  @Override
+  public boolean getEnableGatewayDeltaReplication() {
+    //return this.enableGatewayDeltaReplication;
+    return false; // disabled
+  }
+
+  public void setEnableGatewayDeltaReplication(boolean enableGatewayDeltaReplication) {
+    this.enableGatewayDeltaReplication = enableGatewayDeltaReplication;
+  }
+
+  @Override
+  public boolean getEnableGatewayReplication() {
+    return this.enableGatewayReplication;
+  }
+
+  public void setEnableGatewayReplication(boolean enableGatewayReplication) {
+    this.enableGatewayReplication = enableGatewayReplication;
+  }
+
+  @Override
+  public boolean getEnableDebugListener() {
+    return this.enableDebugListener;
+  }
+
+  public void setEnableDebugListener(boolean enableDebugListener) {
+    this.enableDebugListener = enableDebugListener;
+  }
+
+  @Override
+  public boolean isCommitValveEnabled() {
+    return this.enableCommitValve;
+  }
+
+  public void setEnableCommitValve(boolean enable) {
+    this.enableCommitValve = enable;
+  }
+
+  @Override
+  public boolean isCommitValveFailfastEnabled() {
+    return this.enableCommitValveFailfast;
+  }
+
+  public void setEnableCommitValveFailfast(boolean enable) {
+    this.enableCommitValveFailfast = enable;
+  }
+
+  @Override
+  public boolean isBackingCacheAvailable() {
+    return sessionCache.isBackingCacheAvailable();
+  }
+
+  public void setPreferDeserializedForm(boolean enable) {
+    this.preferDeserializedForm = enable;
+  }
+
+  @Override
+  public boolean getPreferDeserializedForm() {
+    return this.preferDeserializedForm;
+  }
+
+  @Override
+  public String getStatisticsName() {
+    return getContainer().getName().replace("/", "");
+  }
+
+  @Override
+  public Log getLogger() {
+    if (LOGGER == null) {
+      LOGGER = LogFactory.getLog(DeltaSessionManager.class);
+    }
+    return LOGGER;
+  }
+
+  public SessionCache getSessionCache() {
+    return this.sessionCache;
+  }
+
+  public DeltaSessionStatistics getStatistics() {
+    return getSessionCache().getStatistics();
+  }
+
+  public boolean isPeerToPeer() {
+    return getSessionCache().isPeerToPeer();
+  }
+
+  public boolean isClientServer() {
+    return getSessionCache().isClientServer();
+  }
+
+  /**
+   * This method was taken from StandardManager to set the default maxInactiveInterval based on the container (to 30
+   * minutes).
+   * <p>
+   * Set the Container with which this Manager has been associated. If it is a Context (the usual case), listen for
+   * changes to the session timeout property.
+   *
+   * @param container The associated Container
+   */
+  @Override
+  public void setContainer(Container container) {
+    // De-register from the old Container (if any)
+    if ((this.container != null) && (this.container instanceof Context)) {
+      ((Context) this.container).removePropertyChangeListener(this);
+    }
+
+    // Default processing provided by our superclass
+    super.setContainer(container);
+
+    // Register with the new Container (if any)
+    if ((this.container != null) && (this.container instanceof Context)) {
+      // Overwrite the max inactive interval with the context's session timeout.
+      setMaxInactiveInterval(((Context) this.container).getSessionTimeout() * 60);
+      ((Context) this.container).addPropertyChangeListener(this);
+    }
+  }
+
+  @Override
+  public Session findSession(String id) throws IOException {
+    if (id == null) {
+      return null;
+    }
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Finding session " + id + " in " + getSessionCache().getOperatingRegionName());
+    }
+    DeltaSession session = (DeltaSession) getSessionCache().getSession(id);
+    /*
+     * Check that the context name for this session is the same as this manager's.
+     * This comes into play when multiple versions of a webapp are deployed and
+     * active at the same time; the context name will contain an embedded
+     * version number; something like /test###2.
+     */
+    if (session != null &&
+        !session.getContextName().isEmpty() &&
+        !getContainer().getName().equals(session.getContextName())) {
+      getLogger().info(this + ": Session " + id +
+          " rejected as container name and context do not match: " +
+          getContainer().getName() + " != " + session.getContextName());
+      session = null;
+    }
+
+    if (session == null) {
+      if (getLogger().isDebugEnabled()) {
+        getLogger().debug(this + ": Did not find session " + id + " in " + getSessionCache().getOperatingRegionName());
+      }
+    } else {
+      if (getLogger().isDebugEnabled()) {
+        getLogger().debug(
+            this + ": Found session " + id + " in " + getSessionCache().getOperatingRegionName() + ": " + session);
+      }
+      // The session was previously stored. Set new to false.
+      session.setNew(false);
+
+      // Check the manager.
+      // If the manager is null, the session was replicated and this is a
+      // failover situation. Reset the manager and activate the session.
+      if (session.getManager() == null) {
+        DeltaSession ds = (DeltaSession) session;
+        ds.setOwner(this);
+        ds.activate();
+      }
+    }
+    return session;
+  }
+
+  protected void initializeSessionCache() {
+    // Retrieve the cache
+    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.");
+    }
+
+    // Create the appropriate session cache
+    this.sessionCache = cache.isClient() ? new ClientServerSessionCache(this, cache) : new PeerToPeerSessionCache(this,
+        cache);
+
+    // Initialize the session cache
+    this.sessionCache.initialize();
+  }
+
+  @Override
+  protected StandardSession getNewSession() {
+    return new DeltaSession(this);
+  }
+
+  @Override
+  public void remove(Session session) {
+    remove(session, false);
+  }
+
+  public void remove(Session session, boolean update) {
+    //super.remove(session);
+    // Remove the session from the region if necessary.
+    // It will have already been removed if it expired implicitly.
+    DeltaSession ds = (DeltaSession) session;
+    if (ds.getExpired()) {
+      if (getLogger().isDebugEnabled()) {
+        getLogger().debug(
+            this + ": Expired session " + session.getId() + " from " + getSessionCache().getOperatingRegionName());
+      }
+    } else {
+      if (getLogger().isDebugEnabled()) {
+        getLogger().debug(
+            this + ": Destroying session " + session.getId() + " from " + getSessionCache().getOperatingRegionName());
+      }
+      getSessionCache().destroySession(session.getId());
+      if (getLogger().isDebugEnabled()) {
+        getLogger().debug(
+            this + ": Destroyed session " + session.getId() + " from " + getSessionCache().getOperatingRegionName());
+      }
+    }
+  }
+
+  @Override
+  public void add(Session session) {
+    //super.add(session);
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(
+          this + ": Storing session " + session.getId() + " into " + getSessionCache().getOperatingRegionName());
+    }
+    getSessionCache().putSession(session);
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(
+          this + ": Stored session " + session.getId() + " into " + getSessionCache().getOperatingRegionName());
+    }
+    getSessionCache().getStatistics().incSessionsCreated();
+  }
+
+  @Override
+  public int getRejectedSessions() {
+    return this.rejectedSessions.get();
+  }
+
+  public void setRejectedSessions(int rejectedSessions) {
+    this.rejectedSessions.set(rejectedSessions);
+  }
+
+  private void incrementRejectedSessions() {
+    this.rejectedSessions.incrementAndGet();
+  }
+
+  /**
+   * Returns the number of active sessions
+   *
+   * @return number of sessions active
+   */
+  @Override
+  public int getActiveSessions() {
+    return getSessionCache().size();
+  }
+
+  /**
+   * For debugging: return a list of all session ids currently active
+   */
+  @Override
+  public String listSessionIds() {
+    StringBuilder builder = new StringBuilder();
+    Iterator<String> sessionIds = getSessionCache().keySet().iterator();
+    while (sessionIds.hasNext()) {
+      builder.append(sessionIds.next());
+      if (sessionIds.hasNext()) {
+        builder.append(" ");
+      }
+    }
+    return builder.toString();
+  }
+
+  /*
+   * If local caching is enabled, add the session to the set of sessions to be
+   * touched. A timer task will be periodically invoked to get the session in
+   * the session region to update its last accessed time. This prevents the
+   * session from expiring in the case where the application is only getting
+   * attributes from the session and never putting attributes into the
+   * session. If local caching is disabled. the session's last accessed time
+   * would already have been updated properly in the sessions region.
+   *
+   * Note: Due to issues in GemFire expiry, sessions are always asynchronously
+   * touched using a function regardless whether or not local caching is
+   * enabled. This prevents premature expiration.
+   */
+  protected void addSessionToTouch(String sessionId) {
+    this.sessionsToTouch.add(sessionId);
+  }
+
+  protected Set<String> getSessionsToTouch() {
+    return this.sessionsToTouch;
+  }
+
+  protected boolean removeTouchedSession(String sessionId) {
+    return this.sessionsToTouch.remove(sessionId);
+  }
+
+  protected void scheduleTimerTasks() {
+    // Create the timer
+    this.timer = new Timer("Timer for " + toString(), true);
+
+    // Schedule the task to handle sessions to be touched
+    scheduleTouchSessionsTask();
+
+    // Schedule the task to maintain the maxActive sessions
+    scheduleDetermineMaxActiveSessionsTask();
+  }
+
+  private void scheduleTouchSessionsTask() {
+    TimerTask task = new TimerTask() {
+      @Override
+      public void run() {
+        // Get the sessionIds to touch and clear the set inside synchronization
+        Set<String> sessionIds = null;
+        sessionIds = new HashSet<String>(getSessionsToTouch());
+        getSessionsToTouch().clear();
+
+        // Touch the sessions we currently have
+        if (sessionIds != null && (!sessionIds.isEmpty())) {
+          getSessionCache().touchSessions(sessionIds);
+          if (getLogger().isDebugEnabled()) {
+            getLogger().debug(DeltaSessionManager.this + ": Touched sessions: " + sessionIds);
+          }
+        }
+      }
+    };
+    this.timer.schedule(task, TIMER_TASK_DELAY, TIMER_TASK_PERIOD);
+  }
+
+  protected void cancelTimer() {
+    if (timer != null) {
+      this.timer.cancel();
+    }
+  }
+
+  private void scheduleDetermineMaxActiveSessionsTask() {
+    TimerTask task = new TimerTask() {
+      @Override
+      public void run() {
+        int currentActiveSessions = getSessionCache().size();
+        if (currentActiveSessions > getMaxActive()) {
+          setMaxActive(currentActiveSessions);
+          if (getLogger().isDebugEnabled()) {
+            getLogger().debug(DeltaSessionManager.this + ": Set max active sessions: " + currentActiveSessions);
+          }
+        }
+      }
+    };
+    this.timer.schedule(task, TIMER_TASK_DELAY, TIMER_TASK_PERIOD);
+  }
+
+  @Override
+  public void load() throws ClassNotFoundException, IOException {
+    doLoad();
+    ContextMapper.addContext(getContainer().getName(), this);
+  }
+
+  @Override
+  public void unload() throws IOException {
+    doUnload();
+    ContextMapper.removeContext(getContainer().getName());
+  }
+
+  protected void registerJvmRouteBinderValve() {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Registering JVM route binder valve");
+    }
+    jvmRouteBinderValve = new JvmRouteBinderValve();
+    getContainer().getPipeline().addValve(jvmRouteBinderValve);
+  }
+
+  protected void unregisterJvmRouteBinderValve() {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Unregistering JVM route binder valve");
+    }
+    if (jvmRouteBinderValve != null) {
+      getContainer().getPipeline().removeValve(jvmRouteBinderValve);
+    }
+  }
+
+  protected void registerCommitSessionValve() {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Registering CommitSessionValve");
+    }
+    commitSessionValve = new CommitSessionValve();
+    getContainer().getPipeline().addValve(commitSessionValve);
+  }
+
+  protected void unregisterCommitSessionValve() {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Unregistering CommitSessionValve");
+    }
+    if (commitSessionValve != null) {
+      getContainer().getPipeline().removeValve(commitSessionValve);
+    }
+  }
+
+  // ------------------------------ Lifecycle Methods
+
+  /**
+   * Add a lifecycle event listener to this component.
+   *
+   * @param listener The listener to add
+   */
+  @Override
+  public void addLifecycleListener(LifecycleListener listener) {
+    this.lifecycle.addLifecycleListener(listener);
+  }
+
+  /**
+   * Get the lifecycle listeners associated with this lifecycle. If this Lifecycle has no listeners registered, a
+   * zero-length array is returned.
+   */
+  @Override
+  public LifecycleListener[] findLifecycleListeners() {
+    return this.lifecycle.findLifecycleListeners();
+  }
+
+  /**
+   * Remove a lifecycle event listener from this component.
+   *
+   * @param listener The listener to remove
+   */
+  @Override
+  public void removeLifecycleListener(LifecycleListener listener) {
+    this.lifecycle.removeLifecycleListener(listener);
+  }
+
+  /**
+   * Process property change events from our associated Context.
+   * <p>
+   * Part of this method implementation was taken from StandardManager. The sessionTimeout can be changed in the web.xml
+   * which is processed after the context.xml. The context (and the default session timeout) would already have been set
+   * in this Manager. This is the way to get the new session timeout value specified in the web.xml.
+   * <p>
+   * The precedence order for setting the session timeout value is:
+   * <p>
+   * <ol> <li>the max inactive interval is set based on the Manager defined in the context.xml <li>the max inactive
+   * interval is then overwritten by the value of the Context's session timeout when setContainer is called <li>the max
+   * inactive interval is then overwritten by the value of the session-timeout specified in the web.xml (if any) </ol>
+   *
+   * @param event The property change event that has occurred
+   */
+  @Override
+  public void propertyChange(PropertyChangeEvent event) {
+
+    // Validate the source of this event
+    if (!(event.getSource() instanceof Context)) {
+      return;
+    }
+    Context context = (Context) event.getSource();
+
+    // Process a relevant property change
+    if (event.getPropertyName().equals("sessionTimeout")) {
+      try {
+        int interval = ((Integer) event.getNewValue()).intValue();
+        if (interval < RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
+          getLogger().warn(
+              "The configured session timeout of " + interval + " minutes is invalid. Using the original value of " + event
+                  .getOldValue() + " minutes.");
+          interval = ((Integer) event.getOldValue()).intValue();
+          ;
+        }
+        // StandardContext.setSessionTimeout passes -1 if the configured timeout
+        // is 0; otherwise it passes the value set in web.xml. If the interval
+        // parameter equals the default, set the max inactive interval to the
+        // default (no expiration); otherwise set it in seconds.
+        setMaxInactiveInterval(
+            interval == RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL ? RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL : interval * 60);
+      } catch (NumberFormatException e) {
+        getLogger().error(sm.getString("standardManager.sessionTimeout", event.getNewValue().toString()));
+      }
+    }
+  }
+
+  /**
+   * Save any currently active sessions in the appropriate persistence mechanism, if any.  If persistence is not
+   * supported, this method returns without doing anything.
+   *
+   * @throws IOException if an input/output error occurs
+   */
+  protected void doUnload() throws IOException {
+    QueryService querySvc = sessionCache.getCache().getQueryService();
+    Context context;
+    if (getContainer() instanceof Context) {
+      context = (Context) getContainer();
+    } else {
+      getLogger().error("Unable to unload sessions - container is of type " +
+          getContainer().getClass().getName() + " instead of StandardContext");
+      return;
+    }
+    String regionName;
+    if (getRegionName().startsWith("/")) {
+      regionName = getRegionName();
+    } else {
+      regionName = "/" + getRegionName();
+    }
+    Query query = querySvc.newQuery("select s.id from " + regionName +
+        " as s where s.contextName = '" + context.getPath() + "'");
+    getLogger().debug("Query: " + query.getQueryString());
+
+    SelectResults results;
+    try {
+      results = (SelectResults) query.execute();
+    } catch (Exception ex) {
+      getLogger().error("Unable to perform query during doUnload", ex);
+      return;
+    }
+
+    if (results.isEmpty()) {
+      getLogger().debug("No sessions to unload for context " + context.getPath());
+      return; // nothing to do
+    }
+
+    // Open an output stream to the specified pathname, if any
+    File store = sessionStore(context.getPath());
+    if (store == null) {
+      return;
+    }
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug("Unloading sessions to " + store.getAbsolutePath());
+    }
+    FileOutputStream fos = null;
+    BufferedOutputStream bos = null;
+    ObjectOutputStream oos = null;
+    boolean error = false;
+    try {
+      fos = new FileOutputStream(store.getAbsolutePath());
+      bos = new BufferedOutputStream(fos);
+      oos = new ObjectOutputStream(bos);
+    } catch (IOException e) {
+      error = true;
+      getLogger().error("Exception unloading sessions", e);
+      throw e;
+    } finally {
+      if (error) {
+        if (oos != null) {
+          try {
+            oos.close();
+          } catch (IOException ioe) {
+            // Ignore
+          }
+        }
+        if (bos != null) {
+          try {
+            bos.close();
+          } catch (IOException ioe) {
+            // Ignore
+          }
+        }
+        if (fos != null) {
+          try {
+            fos.close();
+          } catch (IOException ioe) {
+            // Ignore
+          }
+        }
+      }
+    }
+
+    ArrayList<StandardSession> list = new ArrayList<StandardSession>();
+    Iterator<String> elements = results.iterator();
+    while (elements.hasNext()) {
+      String id = elements.next();
+      DeltaSession session = (DeltaSession) findSession(id);
+      if (session != null) {
+        list.add(session);
+      }
+    }
+
+    // Write the number of active sessions, followed by the details
+    if (getLogger().isDebugEnabled()) getLogger().debug("Unloading " + list.size() + " sessions");
+    try {
+      oos.writeObject(new Integer(list.size()));
+      for (StandardSession session : list) {
+        session.passivate();
+        session.writeObjectData(oos);
+      }
+    } catch (IOException e) {
+      getLogger().error("Exception unloading sessions", e);
+      try {
+        oos.close();
+      } catch (IOException f) {
+        // Ignore
+      }
+      throw e;
+    }
+
+    // Flush and close the output stream
+    try {
+      oos.flush();
+    } finally {
+      try {
+        oos.close();
+      } catch (IOException f) {
+        // Ignore
+      }
+    }
+
+    // Locally destroy the sessions we just wrote
+    if (getSessionCache().isClientServer()) {
+      for (StandardSession session : list) {
+        if (getLogger().isDebugEnabled()) {
+          getLogger().debug("Locally destroying session " + session.getId());
+        }
+        getSessionCache().getOperatingRegion().localDestroy(session.getId());
+      }
+    }
+
+//    // Expire all the sessions we just wrote
+//    if (getLogger().isDebugEnabled()) {
+//      getLogger().debug("Expiring " + list.size() + " persisted sessions");
+//    }
+//    Iterator<StandardSession> expires = list.iterator();
+//    while (expires.hasNext()) {
+//      StandardSession session = expires.next();
+//      try {
+//        session.expire(false);
+//      } catch (Throwable t) {
+////        ExceptionUtils.handleThrowable(t);
+//      } finally {
+//        session.recycle();
+//      }
+//    }
+
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug("Unloading complete");
+    }
+  }
+
+  /**
+   * Load any currently active sessions that were previously unloaded to the appropriate persistence mechanism, if any.
+   * If persistence is not supported, this method returns without doing anything.
+   *
+   * @throws ClassNotFoundException if a serialized class cannot be found during the reload
+   * @throws IOException            if an input/output error occurs
+   */
+  protected void doLoad() throws ClassNotFoundException, IOException {
+    Context context;
+    if (getContainer() instanceof Context) {
+      context = (Context) getContainer();
+    } else {
+      getLogger().error("Unable to unload sessions - container is of type " +
+          getContainer().getClass().getName() + " instead of StandardContext");
+      return;
+    }
+
+    // Open an input stream to the specified pathname, if any
+    File store = sessionStore(context.getPath());
+    if (store == null) {
+      getLogger().debug("No session store file found");
+      return;
+    }
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug("Loading sessions from " + store.getAbsolutePath());
+    }
+    FileInputStream fis = null;
+    BufferedInputStream bis = null;
+    ObjectInputStream ois = null;
+    Loader loader = null;
+    ClassLoader classLoader = null;
+    try {
+      fis = new FileInputStream(store.getAbsolutePath());
+      bis = new BufferedInputStream(fis);
+      if (container != null) {
+        loader = container.getLoader();
+      }
+      if (loader != null) {
+        classLoader = loader.getClassLoader();
+      }
+      if (classLoader != null) {
+        if (getLogger().isDebugEnabled()) {
+          getLogger().debug("Creating custom object input stream for class loader");
+        }
+        ois = new CustomObjectInputStream(bis, classLoader);
+      } else {
+        if (getLogger().isDebugEnabled()) {
+          getLogger().debug("Creating standard object input stream");
+        }
+        ois = new ObjectInputStream(bis);
+      }
+    } catch (FileNotFoundException e) {
+      if (getLogger().isDebugEnabled()) {
+        getLogger().debug("No persisted data file found");
+      }
+      return;
+    } catch (IOException e) {
+      getLogger().error("Exception loading sessions", e);
+      if (fis != null) {
+        try {
+          fis.close();
+        } catch (IOException f) {
+          // Ignore
+        }
+      }
+      if (bis != null) {
+        try {
+          bis.close();
+        } catch (IOException f) {
+          // Ignore
+        }
+      }
+      throw e;
+    }
+
+    // Load the previously unloaded active sessions
+    try {
+      Integer count = (Integer) ois.readObject();
+      int n = count.intValue();
+      if (getLogger().isDebugEnabled()) {
+        getLogger().debug("Loading " + n + " persisted sessions");
+      }
+      for (int i = 0; i < n; i++) {
+        StandardSession session = getNewSession();
+        session.readObjectData(ois);
+        session.setManager(this);
+
+        Region region = getSessionCache().getOperatingRegion();
+        DeltaSession existingSession = (DeltaSession) region.get(session.getId());
+        // Check whether the existing session is newer
+        if (existingSession != null && existingSession.getLastAccessedTime() > session.getLastAccessedTime()) {
+          if (getLogger().isDebugEnabled()) {
+            getLogger().debug("Loaded session " + session.getId() + " is older than cached copy");
+          }
+          continue;
+        }
+
+        // Check whether the new session has already expired
+        if (!session.isValid()) {
+          if (getLogger().isDebugEnabled()) {
+            getLogger().debug("Loaded session " + session.getId() + " is invalid");
+          }
+          continue;
+        }
+
+        getLogger().debug("Loading session " + session.getId());
+        session.activate();
+        add(session);
+      }
+    } catch (ClassNotFoundException e) {
+      getLogger().error(e);
+      try {
+        ois.close();
+      } catch (IOException f) {
+        // Ignore
+      }
+      throw e;
+    } catch (IOException e) {
+      getLogger().error(e);
+      try {
+        ois.close();
+      } catch (IOException f) {
+        // Ignore
+      }
+      throw e;
+    } finally {
+      // Close the input stream
+      try {
+        ois.close();
+      } catch (IOException f) {
+        // ignored
+      }
+
+      // Delete the persistent storage file
+      if (store.exists()) {
+        store.delete();
+      }
+    }
+  }
+
+  /**
+   * Return a File object representing the pathname to our persistence file, if any.
+   */
+  private File sessionStore(String ctxPath) {
+    String storeDir = System.getProperty("catalina.base");
+    if (storeDir == null || storeDir.isEmpty()) {
+      storeDir = System.getProperty("java.io.tmpdir");
+    } else {
+      storeDir += System.getProperty("file.separator") + "temp";
+    }
+    File file = new File(storeDir, ctxPath.replaceAll("/", "_") + ".sessions.ser");
+
+    return (file);
+  }
+
+  @Override
+  public String toString() {
+    return new StringBuilder().append(getClass().getSimpleName())
+        .append("[")
+        .append("container=")
+        .append(getContainer())
+        .append("; regionName=")
+        .append(this.regionName)
+        .append("; regionAttributesId=")
+        .append(this.regionAttributesId)
+        .append("]")
+        .toString();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/JvmRouteBinderValve.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/JvmRouteBinderValve.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/JvmRouteBinderValve.java
new file mode 100644
index 0000000..98481c7
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/JvmRouteBinderValve.java
@@ -0,0 +1,108 @@
+/*
+* 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.catalina;
+
+import org.apache.catalina.Manager;
+import org.apache.catalina.Session;
+import org.apache.catalina.connector.Request;
+import org.apache.catalina.connector.Response;
+import org.apache.catalina.valves.ValveBase;
+
+import javax.servlet.ServletException;
+import java.io.IOException;
+
+public class JvmRouteBinderValve extends ValveBase {
+
+  protected static final String info = "com.gemstone.gemfire.modules.session.JvmRouteBinderValve/1.0";
+
+  @Override
+  public void invoke(Request request, Response response) throws IOException, ServletException {
+
+    // Get the Manager
+    Manager manager = request.getContext().getManager();
+
+    // If it is an AbstractManager, handle possible failover
+    if (manager instanceof DeltaSessionManager) {
+      DeltaSessionManager absMgr = (DeltaSessionManager) manager;
+      String localJvmRoute = absMgr.getJvmRoute();
+      if (localJvmRoute != null) {
+        handlePossibleFailover(request, absMgr, localJvmRoute);
+      }
+    }
+
+    // Invoke the next Valve
+    getNext().invoke(request, response);
+  }
+
+  private void handlePossibleFailover(Request request, DeltaSessionManager manager, String localJvmRoute) {
+    String sessionId = request.getRequestedSessionId();
+    if (sessionId != null) {
+      // Get request JVM route
+      String requestJvmRoute = null;
+      int index = sessionId.indexOf(".");
+      if (index > 0) {
+        requestJvmRoute = sessionId.substring(index + 1, sessionId.length());
+      }
+
+      // If the requested JVM route doesn't equal the session's JVM route, handle failover
+      if (requestJvmRoute != null && !requestJvmRoute.equals(localJvmRoute)) {
+        if (manager.getLogger().isDebugEnabled()) {
+          StringBuilder builder = new StringBuilder();
+          builder.append(this)
+              .append(": Handling failover of session ")
+              .append(sessionId)
+              .append(" from ")
+              .append(requestJvmRoute)
+              .append(" to ")
+              .append(localJvmRoute);
+          manager.getLogger().debug(builder.toString());
+        }
+        // Get the original session
+        Session session = null;
+        try {
+          session = manager.findSession(sessionId);
+        } catch (IOException e) {
+          StringBuilder builder = new StringBuilder();
+          builder.append(this)
+              .append(": Caught exception attempting to find session ")
+              .append(sessionId)
+              .append(" in ")
+              .append(manager);
+          manager.getLogger().warn(builder.toString(), e);
+        }
+
+        if (session == null) {
+          StringBuilder builder = new StringBuilder();
+          builder.append(this)
+              .append(": Did not find session ")
+              .append(sessionId)
+              .append(" to failover in ")
+              .append(manager);
+          manager.getLogger().warn(builder.toString());
+        } else {
+          // Change its session id. This removes the previous session and creates the new one.
+          String baseSessionId = sessionId.substring(0, index);
+          String newSessionId = baseSessionId + "." + localJvmRoute;
+          session.setId(newSessionId);
+
+          // Change the request's session id
+          request.changeSessionId(newSessionId);
+        }
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/LocalStrings.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/LocalStrings.properties b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/LocalStrings.properties
new file mode 100644
index 0000000..679cad3
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/LocalStrings.properties
@@ -0,0 +1,16 @@
+# 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.
+
+deltaSession.commit.ise=commit: Session {0} already invalidated

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerCacheLifecycleListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerCacheLifecycleListener.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerCacheLifecycleListener.java
new file mode 100644
index 0000000..a86486c
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerCacheLifecycleListener.java
@@ -0,0 +1,29 @@
+/*
+* 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.catalina;
+
+import com.gemstone.gemfire.modules.session.bootstrap.PeerToPeerCache;
+
+/**
+ * This is a thin wrapper around a peer-to-peer cache.
+ */
+public class PeerToPeerCacheLifecycleListener extends AbstractCacheLifecycleListener {
+
+  public PeerToPeerCacheLifecycleListener() {
+    cache = PeerToPeerCache.getInstance();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerSessionCache.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerSessionCache.java
new file mode 100644
index 0000000..2c76ca5
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerSessionCache.java
@@ -0,0 +1,215 @@
+/*
+* 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.catalina;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionFactory;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.execute.Execution;
+import com.gemstone.gemfire.cache.execute.FunctionService;
+import com.gemstone.gemfire.cache.execute.ResultCollector;
+import com.gemstone.gemfire.modules.session.catalina.callback.LocalSessionCacheLoader;
+import com.gemstone.gemfire.modules.session.catalina.callback.LocalSessionCacheWriter;
+import com.gemstone.gemfire.modules.session.catalina.callback.SessionExpirationCacheListener;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+import com.gemstone.gemfire.modules.util.RegionHelper;
+import com.gemstone.gemfire.modules.util.SessionCustomExpiry;
+import com.gemstone.gemfire.modules.util.TouchPartitionedRegionEntriesFunction;
+import com.gemstone.gemfire.modules.util.TouchReplicatedRegionEntriesFunction;
+
+import javax.servlet.http.HttpSession;
+import java.util.Set;
+
+public class PeerToPeerSessionCache extends AbstractSessionCache {
+
+  private Cache cache;
+
+  protected static final String DEFAULT_REGION_ATTRIBUTES_ID = RegionShortcut.REPLICATE.toString();
+
+  protected static final boolean DEFAULT_ENABLE_LOCAL_CACHE = false;
+
+  public PeerToPeerSessionCache(SessionManager sessionManager, Cache cache) {
+    super(sessionManager);
+    this.cache = cache;
+  }
+
+  @Override
+  public void initialize() {
+    // Register Functions
+    registerFunctions();
+
+    // Create or retrieve the region
+    createOrRetrieveRegion();
+
+    // If local cache is enabled, create the local region fronting the session region
+    // and set it as the operating region; otherwise, use the session region directly
+    // as the operating region.
+    this.operatingRegion = getSessionManager().getEnableLocalCache() ? createOrRetrieveLocalRegion() : this.sessionRegion;
+
+    // Create or retrieve the statistics
+    createStatistics();
+  }
+
+  @Override
+  public String getDefaultRegionAttributesId() {
+    return DEFAULT_REGION_ATTRIBUTES_ID;
+  }
+
+  @Override
+  public boolean getDefaultEnableLocalCache() {
+    return DEFAULT_ENABLE_LOCAL_CACHE;
+  }
+
+  @Override
+  public void touchSessions(Set<String> sessionIds) {
+    // Get the region attributes id to determine the region type. This is
+    // problematic since the region attributes id doesn't really define the
+    // region type. This should look at the actual session region.
+    String regionAttributesID = getSessionManager().getRegionAttributesId().toLowerCase();
+
+    // Invoke the appropriate function depending on the type of region
+    ResultCollector collector = null;
+    if (regionAttributesID.startsWith("partition")) {
+      // Execute the partitioned touch function on the primary server(s)
+      Execution execution = FunctionService.onRegion(getSessionRegion()).withFilter(sessionIds);
+      collector = execution.execute(TouchPartitionedRegionEntriesFunction.ID, true, false, true);
+    } else {
+      // Execute the member touch function on all the server(s)
+      Execution execution = FunctionService.onMembers(getCache().getDistributedSystem())
+          .withArgs(new Object[]{this.sessionRegion.getFullPath(), sessionIds});
+      collector = execution.execute(TouchReplicatedRegionEntriesFunction.ID, true, false, false);
+    }
+
+    // Get the result
+    try {
+      collector.getResult();
+    } catch (Exception e) {
+      // If an exception occurs in the function, log it.
+      getSessionManager().getLogger().warn("Caught unexpected exception:", e);
+    }
+  }
+
+  @Override
+  public boolean isPeerToPeer() {
+    return true;
+  }
+
+  @Override
+  public boolean isClientServer() {
+    return false;
+  }
+
+  @Override
+  public Set<String> keySet() {
+    return getSessionRegion().keySet();
+  }
+
+  @Override
+  public int size() {
+    return getSessionRegion().size();
+  }
+
+  @Override
+  public GemFireCache getCache() {
+    return this.cache;
+  }
+
+  /**
+   * For peer-to-peer the backing cache *is* what's embedded in tomcat so it's always available
+   *
+   * @return boolean indicating whether a backing cache is available
+   */
+  @Override
+  public boolean isBackingCacheAvailable() {
+    return true;
+  }
+
+  private void registerFunctions() {
+    // Register the touch partitioned region entries function if it is not already registered
+    if (!FunctionService.isRegistered(TouchPartitionedRegionEntriesFunction.ID)) {
+      FunctionService.registerFunction(new TouchPartitionedRegionEntriesFunction());
+    }
+
+    // Register the touch replicated region entries function if it is not already registered
+    if (!FunctionService.isRegistered(TouchReplicatedRegionEntriesFunction.ID)) {
+      FunctionService.registerFunction(new TouchReplicatedRegionEntriesFunction());
+    }
+  }
+
+  @SuppressWarnings("unchecked")
+  protected void createOrRetrieveRegion() {
+    // Create the RegionConfiguration
+    RegionConfiguration configuration = createRegionConfiguration();
+    configuration.setSessionExpirationCacheListener(true);
+
+    // Attempt to retrieve the region
+    // If it already exists, validate it
+    // If it doesn't already exist, create it
+    Region region = this.cache.getRegion(getSessionManager().getRegionName());
+    if (region == null) {
+      // Create the region
+      region = RegionHelper.createRegion((Cache) getCache(), configuration);
+      if (getSessionManager().getLogger().isDebugEnabled()) {
+        getSessionManager().getLogger().debug("Created new session region: " + region);
+      }
+    } else {
+      // Validate the existing region
+      if (getSessionManager().getLogger().isDebugEnabled()) {
+        getSessionManager().getLogger().debug("Retrieved existing session region: " + region);
+      }
+      RegionHelper.validateRegion((Cache) getCache(), configuration, region);
+    }
+
+    // Set the session region
+    this.sessionRegion = region;
+  }
+
+  private Region<String, HttpSession> createOrRetrieveLocalRegion() {
+    // Attempt to retrieve the fronting region
+    String frontingRegionName = this.sessionRegion.getName() + "_local";
+    Region<String, HttpSession> frontingRegion = this.cache.getRegion(frontingRegionName);
+    if (frontingRegion == null) {
+      // Create the region factory
+      RegionFactory<String, HttpSession> factory = this.cache.createRegionFactory(RegionShortcut.LOCAL_HEAP_LRU);
+
+      // Add the cache loader and writer
+      factory.setCacheLoader(new LocalSessionCacheLoader(this.sessionRegion));
+      factory.setCacheWriter(new LocalSessionCacheWriter(this.sessionRegion));
+
+      // Set the expiration time, action and listener if necessary
+      int maxInactiveInterval = getSessionManager().getMaxInactiveInterval();
+      if (maxInactiveInterval != RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
+        factory.setStatisticsEnabled(true);
+        factory.setCustomEntryIdleTimeout(new SessionCustomExpiry());
+        factory.addCacheListener(new SessionExpirationCacheListener());
+      }
+
+      // Create the region
+      frontingRegion = factory.create(frontingRegionName);
+      if (getSessionManager().getLogger().isDebugEnabled()) {
+        getSessionManager().getLogger().debug("Created new local session region: " + frontingRegion);
+      }
+    } else {
+      if (getSessionManager().getLogger().isDebugEnabled()) {
+        getSessionManager().getLogger().debug("Retrieved existing local session region: " + frontingRegion);
+      }
+    }
+    return frontingRegion;
+  }
+}  

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionCache.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionCache.java
new file mode 100644
index 0000000..b1128e7
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionCache.java
@@ -0,0 +1,64 @@
+/*
+* 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.catalina;
+
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionStatistics;
+import org.apache.catalina.Session;
+
+import javax.servlet.http.HttpSession;
+import java.util.Set;
+
+public interface SessionCache {
+
+  public void initialize();
+
+  public String getDefaultRegionAttributesId();
+
+  public boolean getDefaultEnableLocalCache();
+
+  public String getSessionRegionName();
+
+  public String getOperatingRegionName();
+
+  public void putSession(Session session);
+
+  public HttpSession getSession(String sessionId);
+
+  public void destroySession(String sessionId);
+
+  public void touchSessions(Set<String> sessionIds);
+
+  public DeltaSessionStatistics getStatistics();
+
+  public GemFireCache getCache();
+
+  public Region<String, HttpSession> getSessionRegion();
+
+  public Region<String, HttpSession> getOperatingRegion();
+
+  public boolean isPeerToPeer();
+
+  public boolean isClientServer();
+
+  public Set<String> keySet();
+
+  public int size();
+
+  public boolean isBackingCacheAvailable();
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionManager.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionManager.java
new file mode 100644
index 0000000..e3d6c7e
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionManager.java
@@ -0,0 +1,48 @@
+/*
+* 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.catalina;
+
+import org.apache.juli.logging.Log;
+
+public interface SessionManager {
+
+  public String getRegionName();
+
+  public String getRegionAttributesId();
+
+  public int getMaxInactiveInterval();
+
+  public boolean getEnableGatewayReplication();
+
+  public boolean getEnableGatewayDeltaReplication();
+
+  public boolean getEnableDebugListener();
+
+  public boolean getEnableLocalCache();
+
+  public boolean isCommitValveEnabled();
+
+  public boolean isCommitValveFailfastEnabled();
+
+  public boolean isBackingCacheAvailable();
+
+  public boolean getPreferDeserializedForm();
+
+  public String getStatisticsName();
+
+  public Log getLogger();
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat6DeltaSessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat6DeltaSessionManager.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat6DeltaSessionManager.java
new file mode 100644
index 0000000..d5b5991
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat6DeltaSessionManager.java
@@ -0,0 +1,98 @@
+/*
+* 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.catalina;
+
+import org.apache.catalina.LifecycleException;
+
+public class Tomcat6DeltaSessionManager extends DeltaSessionManager {
+
+  /**
+   * Prepare for the beginning of active use of the public methods of this component.  This method should be called
+   * after <code>configure()</code>, and before any of the public methods of the component are utilized.
+   *
+   * @throws LifecycleException if this component detects a fatal error that prevents this component from being used
+   */
+  @Override
+  public void start() throws LifecycleException {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Starting");
+    }
+    if (this.started.get()) {
+      return;
+    }
+    this.lifecycle.fireLifecycleEvent(START_EVENT, null);
+    try {
+      init();
+    } catch (Throwable t) {
+      getLogger().error(t.getMessage(), t);
+    }
+
+    // Register our various valves
+    registerJvmRouteBinderValve();
+
+    if (isCommitValveEnabled()) {
+      registerCommitSessionValve();
+    }
+
+    // Initialize the appropriate session cache interface
+    initializeSessionCache();
+
+    // Create the timer and schedule tasks
+    scheduleTimerTasks();
+
+    this.started.set(true);
+  }
+
+  /**
+   * Gracefully terminate the active use of the public methods of this component.  This method should be the last one
+   * called on a given instance of this component.
+   *
+   * @throws LifecycleException if this component detects a fatal error that needs to be reported
+   */
+  @Override
+  public void stop() throws LifecycleException {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Stopping");
+    }
+    this.started.set(false);
+    this.lifecycle.fireLifecycleEvent(STOP_EVENT, null);
+
+    // StandardManager expires all Sessions here.
+    // All Sessions are not known by this Manager.
+
+    // Require a new random number generator if we are restarted
+    this.random = null;
+
+    // Remove from RMI registry
+    if (this.initialized) {
+      destroy();
+    }
+
+    // Clear any sessions to be touched
+    getSessionsToTouch().clear();
+
+    // Cancel the timer
+    cancelTimer();
+
+    // Unregister the JVM route valve
+    unregisterJvmRouteBinderValve();
+
+    if (isCommitValveEnabled()) {
+      unregisterCommitSessionValve();
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheLoader.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheLoader.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheLoader.java
new file mode 100644
index 0000000..a4afad4
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheLoader.java
@@ -0,0 +1,45 @@
+/*
+* 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.catalina.callback;
+
+import com.gemstone.gemfire.cache.CacheLoader;
+import com.gemstone.gemfire.cache.CacheLoaderException;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.LoaderHelper;
+import com.gemstone.gemfire.cache.Region;
+
+import javax.servlet.http.HttpSession;
+import java.util.Properties;
+
+public class LocalSessionCacheLoader implements CacheLoader<String, HttpSession>, Declarable {
+
+  private final Region<String, HttpSession> backingRegion;
+
+  public LocalSessionCacheLoader(Region<String, HttpSession> backingRegion) {
+    this.backingRegion = backingRegion;
+  }
+
+  public HttpSession load(LoaderHelper<String, HttpSession> helper) throws CacheLoaderException {
+    return this.backingRegion.get(helper.getKey());
+  }
+
+  public void close() {
+  }
+
+  public void init(Properties p) {
+  }
+}


[37/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Owner.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Owner.java b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Owner.java
new file mode 100644
index 0000000..92ef56f
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Owner.java
@@ -0,0 +1,186 @@
+/*
+* 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;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.persistence.Column;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.annotations.Entity;
+
+
+/**
+ * Simple JavaBean domain object representing an owner.
+ * 
+ * @author Ken Krebs
+ * @author Juergen Hoeller
+ * @author Sam Brannen
+ */
+@javax.persistence.Entity
+@Entity
+public class Owner {
+	private static final long serialVersionUID = 4315791692556052565L;
+
+	@Column(name="address")
+	private String address;
+
+	private String city;
+
+	private String telephone;
+
+//	private Set<Pet> pets;
+	@Id
+	@GeneratedValue
+	private Long id;
+	
+	private long versionNum = -1;
+
+	public enum Status {
+		NORMAL, PREMIUM
+	};
+
+	@Enumerated
+	private Status status = Status.NORMAL;
+
+	  private void setId(Long id) {
+	    this.id = id;
+	  }
+
+	  public Long getId() {
+	    return id;
+	  }
+	  
+	public String getAddress() {
+		return this.address;
+	}
+
+	public void setAddress(String address) {
+		this.address = address;
+	}
+
+	public String getCity() {
+		return this.city;
+	}
+
+	public void setCity(String city) {
+		this.city = city;
+	}
+
+	public String getTelephone() {
+		return this.telephone;
+	}
+
+	public void setTelephone(String telephone) {
+		this.telephone = telephone;
+	}
+
+	public long getVersionNum() {
+		return versionNum;
+	}
+
+	public void setVersionNum(long versionNum) {
+		this.versionNum = versionNum;
+	}
+
+	public Status getStatus() {
+		return this.status;
+	}
+
+	public void setStatus(Status state) {
+		if (state != null) {
+			this.status = state;
+		}
+	}
+
+//	protected void setPetsInternal(Set<Pet> pets) {
+//		this.pets = pets;
+//	}
+//
+//	protected Set<Pet> getPetsInternal() {
+//		if (this.pets == null) {
+//			this.pets = new HashSet<Pet>();
+//		}
+//		return this.pets;
+//	}
+//
+//	public List<Pet> getPets() {
+//		List<Pet> sortedPets = new ArrayList<Pet>(getPetsInternal());
+//		PropertyComparator.sort(sortedPets, new MutableSortDefinition("name",
+//				true, true));
+//		return Collections.unmodifiableList(sortedPets);
+//	}
+//
+//	public void addPet(Pet pet) {
+//		getPetsInternal().add(pet);
+//		pet.setOwner(this);
+//	}
+//
+//	/**
+//	 * Return the Pet with the given name, or null if none found for this Owner.
+//	 * 
+//	 * @param name
+//	 *            to test
+//	 * @return true if pet name is already in use
+//	 */
+//	public Pet getPet(String name) {
+//		return getPet(name, false);
+//	}
+//
+//	/**
+//	 * Return the Pet with the given name, or null if none found for this Owner.
+//	 * 
+//	 * @param name
+//	 *            to test
+//	 * @return true if pet name is already in use
+//	 */
+//	public Pet getPet(String name, boolean ignoreNew) {
+//		name = name.toLowerCase();
+//		for (Pet pet : getPetsInternal()) {
+//			if (!ignoreNew || !pet.isNew()) {
+//				String compName = pet.getName();
+//				compName = compName.toLowerCase();
+//				if (compName.equals(name)) {
+//					return pet;
+//				}
+//			}
+//		}
+//		return null;
+//	}
+//
+//	@Override
+//	public String toString() {
+//		return new ToStringCreator(this).append("id", this.getId())
+//				.append("new", this.isNew())
+//				.append("lastName", this.getLastName())
+//				.append("firstName", this.getFirstName())
+//				.append("address", this.address).append("city", this.city)
+//				.append("telephone", this.telephone)
+//				.append("version", this.versionNum)
+//				.append("status", this.status)
+//
+//				.toString();
+//	}
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Person.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Person.java b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Person.java
new file mode 100644
index 0000000..559363d
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Person.java
@@ -0,0 +1,72 @@
+/*
+* 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;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class Person {
+  private Long id;
+  private int age;
+  private String firstname;
+  private String lastname;
+
+  private Set<Event> e = new HashSet<Event>();
+  
+  public Person() {}
+
+  public void setId(Long id) {
+    this.id = id;
+  }
+
+  public Long getId() {
+    return id;
+  }
+
+  public void setAge(int age) {
+    this.age = age;
+  }
+
+  public int getAge() {
+    return age;
+  }
+
+  public void setFirstname(String firstname) {
+    this.firstname = firstname;
+  }
+
+  public String getFirstname() {
+    return firstname;
+  }
+
+  public void setLastname(String lastname) {
+    this.lastname = lastname;
+  }
+
+  public String getLastname() {
+    return lastname;
+  }
+
+  public void setE(Set<Event> events) {
+    this.e = events;
+  }
+
+  public Set<Event> getE() {
+    return e;
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/SecondVMTest.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/SecondVMTest.java b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/SecondVMTest.java
new file mode 100644
index 0000000..e3b6480
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/SecondVMTest.java
@@ -0,0 +1,93 @@
+/*
+* 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;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.logging.Level;
+
+import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import junit.framework.TestCase;
+
+import org.hibernate.Session;
+import org.junit.Ignore;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.Region.Entry;
+import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
+
+@Ignore("Can this test be deleted?")
+@Category(IntegrationTest.class)
+public class SecondVMTest extends TestCase {
+
+  private Logger log = LoggerFactory.getLogger(getClass());
+  
+  public void testNoop() {
+    
+  }
+  public void _testStartEmptyVM() throws IOException {
+    Properties gemfireProperties = new Properties();
+    gemfireProperties.setProperty("mcast-port", "5555");
+    gemfireProperties.setProperty("log-level", "fine");
+    Cache cache = new CacheFactory(gemfireProperties).create();
+    System.in.read();
+    Iterator it = cache.rootRegions().iterator();
+    while (it.hasNext()) {
+      Region r = (Region)it.next();
+      System.out.println("Region:"+r);
+      Iterator enIt = r.entrySet().iterator();
+      while (enIt.hasNext()) {
+        Region.Entry re = (Entry)enIt.next();
+        System.out.println("key:"+re.getKey()+" value:"+re.getValue());
+      }
+    }
+  }
+  
+  public void _testStartVM() throws Exception {
+    java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL);
+    Session session = HibernateJUnitTest.getSessionFactory(null).openSession();
+    log.info("SWAP:new session open");
+    long id = 1;
+    log.info("loading new person:"+(id));
+    GemFireCache cache = GemFireCacheImpl.getInstance();
+    Iterator<Region<?, ?>> rSet = cache.rootRegions().iterator();
+    while (rSet.hasNext()) {
+      Region<?, ?> r = rSet.next();
+      log.info("SWAP:Region "+r);
+      Iterator<?> keySet = r.keySet().iterator();
+      while (keySet.hasNext()) {
+        log.info("key:"+keySet.next());
+      }
+    }
+    log.info("loading new person:"+(id));
+    session.beginTransaction();
+    Person p = (Person)session.load(Person.class, id);
+    p.setFirstname("SecondVMfirstname"+id);
+    log.info("loading events");
+    log.info(p.getE()+"");
+    session.getTransaction().commit();
+    //System.in.read();
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml b/extensions/geode-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
new file mode 100644
index 0000000..3ec08c9
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
@@ -0,0 +1,32 @@
+<?xml version="1.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.
+-->
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="com.gemstone.gemfire.modules">
+	<class name="Event" table="EVENTS">
+		<cache usage="read-write"/>
+		<id name="id" column="EVENT_ID">
+			<generator class="native"/>
+		</id>
+		<version name="version"/>
+		<property name="date" type="timestamp" column="EVENT_DATE"/>
+        <property name="title"/>
+	</class>
+</hibernate-mapping>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml b/extensions/geode-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
new file mode 100644
index 0000000..7c28734
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
@@ -0,0 +1,36 @@
+<?xml version="1.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.
+-->
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="com.gemstone.gemfire.modules">
+    <class name="Person" table="PERSON">
+        <cache usage="read-write"/>
+        <id name="id" column="PERSON_ID">
+        </id>
+        <property name="age"/>
+        <property name="firstname"/>
+        <property name="lastname"/>
+        <set name="e" table="PERSON_EVENT">
+          <cache usage="read-write"/>
+          <key column="PERSON_ID"/>
+          <many-to-many column="EVENT_ID" class="Event"/>
+        </set>
+    </class>
+</hibernate-mapping>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/test/resources/log4j.properties b/extensions/geode-modules-hibernate/src/test/resources/log4j.properties
new file mode 100644
index 0000000..c136990
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/test/resources/log4j.properties
@@ -0,0 +1,16 @@
+# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
+# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
+#log4j.rootLogger=DEBUG, stdout, logfile
+log4j.rootLogger=DEBUG, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
+
+#log4j.appender.logfile=org.apache.log4j.RollingFileAppender
+#log4j.appender.logfile.MaxFileSize=512KB
+## Keep three backup files.
+#log4j.appender.logfile.MaxBackupIndex=3
+## Pattern to output: date priority [category] - message
+#log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
+#log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/build.gradle b/extensions/geode-modules-session/build.gradle
new file mode 100644
index 0000000..e301a6a
--- /dev/null
+++ b/extensions/geode-modules-session/build.gradle
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+dependencies {
+  compile project(':extensions/geode-modules')
+  compile project(':geode-core')
+
+  testCompile 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version'
+  testCompile 'org.slf4j:slf4j-api:' + project.'slf4j-api.version'
+  testCompile('com.mockrunner:mockrunner-servlet:' + project.'mockrunner.version') {
+    exclude group: 'jboss'
+  }
+  testCompile(group: 'org.eclipse.jetty', name: 'jetty-http', version: project.'jetty.version', classifier: 'tests')
+  testCompile(group: 'org.eclipse.jetty', name: 'jetty-servlet', version: project.'jetty.version', classifier: 'tests')
+
+  testCompile project(path: ':geode-junit')
+}
+
+jar {
+  include '**/session/filter/**/*'
+  include '**/session/installer/**/*'
+  includeEmptyDirs = false
+
+  manifest {
+    attributes 'Main-Class': 'com.gemstone.gemfire.modules.session.installer.Installer'
+  }
+  baseName = 'geode-modules-session'
+}
+
+task internalJar(type: Jar) {
+  from sourceSets.main.output
+  include '**/internal/**/*'
+  includeEmptyDirs = false
+  baseName = 'geode-modules-session'
+  classifier = 'internal'
+}
+
+artifacts {
+  archives internalJar
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionCachingFilter.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionCachingFilter.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionCachingFilter.java
new file mode 100644
index 0000000..7490fdd
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionCachingFilter.java
@@ -0,0 +1,652 @@
+/*
+* 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.filter;
+
+import com.gemstone.gemfire.modules.session.internal.filter.GemfireHttpSession;
+import com.gemstone.gemfire.modules.session.internal.filter.GemfireSessionManager;
+import com.gemstone.gemfire.modules.session.internal.filter.SessionManager;
+import com.gemstone.gemfire.modules.session.internal.filter.util.ThreadLocalSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+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 java.io.IOException;
+import java.io.PrintStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.security.Principal;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Primary class which orchestrates everything. This is the class which gets
+ * configured in the web.xml.
+ */
+public class SessionCachingFilter implements Filter {
+
+  /**
+   * Logger instance
+   */
+  private static final Logger LOG =
+      LoggerFactory.getLogger(SessionCachingFilter.class.getName());
+
+  /**
+   * The filter configuration object we are associated with.  If this value is
+   * null, this filter instance is not currently configured.
+   */
+  private FilterConfig filterConfig = null;
+
+  /**
+   * Some containers will want to instantiate multiple instances of this filter,
+   * but we only need one SessionManager
+   */
+  private static SessionManager manager = null;
+
+  /**
+   * Can be overridden during testing.
+   */
+  private static AtomicInteger started =
+      new AtomicInteger(
+          Integer.getInteger("gemfire.override.session.manager.count", 1));
+
+  private static int percentInactiveTimeTriggerRebuild =
+      Integer.getInteger("gemfire.session.inactive.trigger.rebuild", 80);
+
+  /**
+   * This latch ensures that at least one thread/instance has fired up the
+   * session manager before any other threads complete the init method.
+   */
+  private static CountDownLatch startingLatch = new CountDownLatch(1);
+
+  /**
+   * This request wrapper class extends the support class
+   * HttpServletRequestWrapper, which implements all the methods in the
+   * HttpServletRequest interface, as delegations to the wrapped request. You
+   * only need to override the methods that you need to change. You can get
+   * access to the wrapped request using the method getRequest()
+   */
+  public static class RequestWrapper extends HttpServletRequestWrapper {
+
+    private static final String URL_SESSION_IDENTIFIER = ";jsessionid=";
+
+    private ResponseWrapper response;
+
+    private boolean sessionFromCookie = false;
+
+    private boolean sessionFromURL = false;
+
+    private String requestedSessionId = null;
+
+    private GemfireHttpSession session = null;
+
+    private SessionManager manager;
+
+    private HttpServletRequest outerRequest = null;
+
+    /**
+     * Need to save this in case we need the original {@code RequestDispatcher}
+     */
+    private HttpServletRequest originalRequest;
+
+    public RequestWrapper(SessionManager manager,
+        HttpServletRequest request,
+        ResponseWrapper response) {
+
+      super(request);
+      this.response = response;
+      this.manager = manager;
+      this.originalRequest = request;
+
+      final Cookie[] cookies = request.getCookies();
+      if (cookies != null) {
+        for (final Cookie cookie : cookies) {
+          if (cookie.getName().equalsIgnoreCase(
+              manager.getSessionCookieName()) &&
+              cookie.getValue().endsWith("-GF")) {
+            requestedSessionId = cookie.getValue();
+            sessionFromCookie = true;
+
+            LOG.debug("Cookie contains sessionId: {}",
+                requestedSessionId);
+          }
+        }
+      }
+
+      if (requestedSessionId == null) {
+        requestedSessionId = extractSessionId();
+        LOG.debug("Extracted sessionId from URL {}", requestedSessionId);
+        if (requestedSessionId != null) {
+          sessionFromURL = true;
+        }
+      }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public HttpSession getSession() {
+      return getSession(true);
+    }
+
+    /**
+     * Create our own sessions. TODO: Handle invalidated sessions
+     *
+     * @return a HttpSession
+     */
+    @Override
+    public HttpSession getSession(boolean create) {
+      if (session != null && session.isValid()) {
+        session.setIsNew(false);
+        session.updateAccessTime();
+                /*
+                 * This is a massively gross hack. Currently, there is no way
+                 * to actually update the last accessed time for a session, so
+                 * what we do here is once we're into X% of the session's TTL
+                 * we grab a new session from the container.
+                 *
+                 * (inactive * 1000) * (pct / 100) ==> (inactive * 10 * pct)
+                 */
+        if (session.getLastAccessedTime() - session.getCreationTime() >
+            (session.getMaxInactiveInterval() * 10 * percentInactiveTimeTriggerRebuild)) {
+          HttpSession nativeSession = super.getSession();
+          session.failoverSession(nativeSession);
+        }
+        return session;
+      }
+
+      if (requestedSessionId != null) {
+        session = (GemfireHttpSession) manager.getSession(
+            requestedSessionId);
+        if (session != null) {
+          session.setIsNew(false);
+          // This means we've failed over to another node
+          if (session.getNativeSession() == null) {
+            try {
+              ThreadLocalSession.set(session);
+              HttpSession nativeSession = super.getSession();
+              session.failoverSession(nativeSession);
+              session.putInRegion();
+            } finally {
+              ThreadLocalSession.remove();
+            }
+          }
+        }
+      }
+
+      if (session == null || !session.isValid()) {
+        if (create) {
+          try {
+            session = (GemfireHttpSession) manager.wrapSession(null);
+            ThreadLocalSession.set(session);
+            HttpSession nativeSession = super.getSession();
+            if (session.getNativeSession() == null) {
+              session.setNativeSession(nativeSession);
+            } else {
+              assert (session.getNativeSession() == nativeSession);
+            }
+            session.setIsNew(true);
+            manager.putSession(session);
+          } finally {
+            ThreadLocalSession.remove();
+          }
+        } else {
+          // create is false, and session is either null or not valid.
+          // The spec says return a null:
+          return null;
+        }
+      }
+
+      if (session != null) {
+        addSessionCookie(response);
+        session.updateAccessTime();
+      }
+
+      return session;
+    }
+
+    private void addSessionCookie(HttpServletResponse response) {
+      // Don't bother if the response is already committed
+      if (response.isCommitted()) {
+        return;
+      }
+
+      // Get the existing cookies
+      Cookie[] cookies = getCookies();
+
+      Cookie cookie = new Cookie(manager.getSessionCookieName(),
+          session.getId());
+      cookie.setPath("".equals(getContextPath()) ? "/" : getContextPath());
+      // Clear out all old cookies and just set ours
+      response.addCookie(cookie);
+
+      // Replace all other cookies which aren't JSESSIONIDs
+      if (cookies != null) {
+        for (Cookie c : cookies) {
+          if (manager.getSessionCookieName().equals(c.getName())) {
+            continue;
+          }
+          response.addCookie(c);
+        }
+      }
+
+    }
+
+    private String getCookieString(Cookie c) {
+      StringBuilder cookie = new StringBuilder();
+      cookie.append(c.getName()).append("=").append(c.getValue());
+
+      if (c.getPath() != null) {
+        cookie.append("; ").append("Path=").append(c.getPath());
+      }
+      if (c.getDomain() != null) {
+        cookie.append("; ").append("Domain=").append(c.getDomain());
+      }
+      if (c.getSecure()) {
+        cookie.append("; ").append("Secure");
+      }
+
+      cookie.append("; HttpOnly");
+
+      return cookie.toString();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean isRequestedSessionIdFromCookie() {
+      return sessionFromCookie;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean isRequestedSessionIdFromURL() {
+      return sessionFromURL;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String getRequestedSessionId() {
+      if (requestedSessionId != null) {
+        return requestedSessionId;
+      } else {
+        return super.getRequestedSessionId();
+      }
+    }
+
+        /*
+         * Hmmm... not sure if this is right or even good to do. So, in some
+         * cases - for ex. using a Spring security filter, we have 3 possible
+         * wrappers to deal with - the original, this one and one created by
+         * Spring. When a servlet or JSP is forwarded to the original request
+         * is passed in, but then this (the wrapped) request is used by the JSP.
+         * In some cases, the outer wrapper also contains information relevant
+         * to the request - in this case security info. So here we allow access
+         * to that. There's probably a better way....
+         */
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Principal getUserPrincipal() {
+      if (outerRequest != null) {
+        return outerRequest.getUserPrincipal();
+      } else {
+        return super.getUserPrincipal();
+      }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String getRemoteUser() {
+      if (outerRequest != null) {
+        return outerRequest.getRemoteUser();
+      } else {
+        return super.getRemoteUser();
+      }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean isUserInRole(String role) {
+      if (outerRequest != null) {
+        return outerRequest.isUserInRole(role);
+      } else {
+        return super.isUserInRole(role);
+      }
+    }
+
+    //////////////////////////////////////////////////////////////
+    // Non-API methods
+
+    void setOuterWrapper(HttpServletRequest outer) {
+      this.outerRequest = outer;
+    }
+
+    //////////////////////////////////////////////////////////////
+    // Private methods
+    private String extractSessionId() {
+      final int prefix = getRequestURL().indexOf(URL_SESSION_IDENTIFIER);
+      if (prefix != -1) {
+        final int start = prefix + URL_SESSION_IDENTIFIER.length();
+        int suffix = getRequestURL().indexOf("?", start);
+        if (suffix < 0) {
+          suffix = getRequestURL().indexOf("#", start);
+        }
+        if (suffix <= prefix) {
+          return getRequestURL().substring(start);
+        }
+        return getRequestURL().substring(start, suffix);
+      }
+      return null;
+    }
+  }
+
+  /**
+   * This response wrapper class extends the support class
+   * HttpServletResponseWrapper, which implements all the methods in the
+   * HttpServletResponse interface, as delegations to the wrapped response. You
+   * only need to override the methods that you need to change. You can get
+   * access to the wrapped response using the method getResponse()
+   */
+  class ResponseWrapper extends HttpServletResponseWrapper {
+
+    HttpServletResponse originalResponse;
+
+    public ResponseWrapper(HttpServletResponse response) throws IOException {
+      super(response);
+      originalResponse = response;
+    }
+
+    public HttpServletResponse getOriginalResponse() {
+      return originalResponse;
+    }
+
+    @Override
+    public void setHeader(String name, String value) {
+      super.setHeader(name, value);
+    }
+
+    @Override
+    public void setIntHeader(String name, int value) {
+      super.setIntHeader(name, value);
+    }
+  }
+
+
+  public SessionCachingFilter() {
+  }
+
+  /**
+   * @param request  The servlet request we are processing
+   * @param response The servlet response we are creating
+   * @param chain    The filter chain we are processing
+   * @throws IOException      if an input/output error occurs
+   * @throws ServletException if a servlet error occurs
+   */
+  @Override
+  public void doFilter(ServletRequest request, ServletResponse response,
+      FilterChain chain)
+      throws IOException, ServletException {
+
+    HttpServletRequest httpReq = (HttpServletRequest) request;
+    HttpServletResponse httpResp = (HttpServletResponse) response;
+
+    /**
+     * Early out if this isn't the right kind of request. We might see a
+     * RequestWrapper instance during a forward or include request.
+     */
+    if (request instanceof RequestWrapper ||
+        !(request instanceof HttpServletRequest)) {
+      LOG.debug("Handling already-wrapped request");
+      chain.doFilter(request, response);
+      return;
+    }
+
+    // Create wrappers for the request and response objects.
+    // Using these, you can extend the capabilities of the
+    // request and response, for example, allow setting parameters
+    // on the request before sending the request to the rest of the filter chain,
+    // or keep track of the cookies that are set on the response.
+    //
+    // Caveat: some servers do not handle wrappers very well for forward or
+    // include requests.
+
+    ResponseWrapper wrappedResponse = new ResponseWrapper(httpResp);
+    final RequestWrapper wrappedRequest =
+        new RequestWrapper(manager, httpReq, wrappedResponse);
+
+    Throwable problem = null;
+
+    try {
+      chain.doFilter(wrappedRequest, wrappedResponse);
+    } catch (Throwable t) {
+      // If an exception is thrown somewhere down the filter chain,
+      // we still want to execute our after processing, and then
+      // rethrow the problem after that.
+      problem = t;
+      LOG.error("Exception processing filter chain", t);
+    }
+
+    GemfireHttpSession session =
+        (GemfireHttpSession) wrappedRequest.getSession(false);
+
+    // If there was a problem, we want to rethrow it if it is
+    // a known type, otherwise log it.
+    if (problem != null) {
+      if (problem instanceof ServletException) {
+        throw (ServletException) problem;
+      }
+      if (problem instanceof IOException) {
+        throw (IOException) problem;
+      }
+      sendProcessingError(problem, response);
+    }
+
+    /**
+     * Commit any updates. What actually happens at that point is
+     * dependent on the type of attributes defined for use by the sessions.
+     */
+    if (session != null) {
+      session.commit();
+    }
+  }
+
+  /**
+   * Return the filter configuration object for this filter.
+   */
+  public FilterConfig getFilterConfig() {
+    return (this.filterConfig);
+  }
+
+  /**
+   * Set the filter configuration object for this filter.
+   *
+   * @param filterConfig The filter configuration object
+   */
+  public void setFilterConfig(FilterConfig filterConfig) {
+    this.filterConfig = filterConfig;
+  }
+
+  /**
+   * Destroy method for this filter
+   */
+  @Override
+  public void destroy() {
+    if (manager != null) {
+      manager.stop();
+    }
+  }
+
+  /**
+   * This is where all the initialization happens.
+   *
+   * @param config
+   * @throws ServletException
+   */
+  @Override
+  public void init(final FilterConfig config) {
+    LOG.info("Starting Session Filter initialization");
+    this.filterConfig = config;
+
+    if (started.getAndDecrement() > 0) {
+      /**
+       * Allow override for testing purposes
+       */
+      String managerClassStr =
+          config.getInitParameter("session-manager-class");
+
+      // Otherwise default
+      if (managerClassStr == null) {
+        managerClassStr = GemfireSessionManager.class.getName();
+      }
+
+      try {
+        manager = (SessionManager) Class.forName(
+            managerClassStr).newInstance();
+        manager.start(config, this.getClass().getClassLoader());
+      } catch (Exception ex) {
+        LOG.error("Exception creating Session Manager", ex);
+      }
+
+      startingLatch.countDown();
+    } else {
+      try {
+        startingLatch.await();
+      } catch (InterruptedException iex) {
+      }
+
+      LOG.debug("SessionManager and listener initialization skipped - "
+          + "already done.");
+    }
+
+    LOG.info("Session Filter initialization complete");
+    LOG.debug("Filter class loader {}", this.getClass().getClassLoader());
+  }
+
+  /**
+   * Return a String representation of this object.
+   */
+  @Override
+  public String toString() {
+    if (filterConfig == null) {
+      return ("SessionCachingFilter()");
+    }
+    StringBuilder sb = new StringBuilder("SessionCachingFilter(");
+    sb.append(filterConfig);
+    sb.append(")");
+    return (sb.toString());
+
+  }
+
+
+  private void sendProcessingError(Throwable t, ServletResponse response) {
+    String stackTrace = getStackTrace(t);
+
+    if (stackTrace != null && !stackTrace.equals("")) {
+      try {
+        response.setContentType("text/html");
+        PrintStream ps = new PrintStream(response.getOutputStream());
+        PrintWriter pw = new PrintWriter(ps);
+        pw.print(
+            "<html>\n<head>\n<title>Error</title>\n</head>\n<body>\n"); //NOI18N
+
+        // PENDING! Localize this for next official release
+        pw.print("<h1>The resource did not process correctly</h1>\n<pre>\n");
+        pw.print(stackTrace);
+        pw.print("</pre></body>\n</html>"); //NOI18N
+        pw.close();
+        ps.close();
+        response.getOutputStream().close();
+      } catch (Exception ex) {
+      }
+    } else {
+      try {
+        PrintStream ps = new PrintStream(response.getOutputStream());
+        t.printStackTrace(ps);
+        ps.close();
+        response.getOutputStream().close();
+      } catch (Exception ex) {
+      }
+    }
+  }
+
+  public static String getStackTrace(Throwable t) {
+    String stackTrace = null;
+    try {
+      StringWriter sw = new StringWriter();
+      PrintWriter pw = new PrintWriter(sw);
+      t.printStackTrace(pw);
+      pw.close();
+      sw.close();
+      stackTrace = sw.getBuffer().toString();
+    } catch (Exception ex) {
+    }
+    return stackTrace;
+  }
+
+  /**
+   * Retrieve the SessionManager. This is only here so that tests can get access
+   * to the cache.
+   */
+  public static SessionManager getSessionManager() {
+    return manager;
+  }
+
+  /**
+   * Return the GemFire session which wraps a native session
+   *
+   * @param nativeSession the native session for which the corresponding GemFire
+   *                      session should be returned.
+   * @return the GemFire session or null if no session maps to the native
+   * session
+   */
+  public static HttpSession getWrappingSession(HttpSession nativeSession) {
+        /*
+         * This is a special case where the GemFire session has been set as a
+         * ThreadLocal during session creation.
+         */
+    GemfireHttpSession gemfireSession = (GemfireHttpSession) ThreadLocalSession.get();
+    if (gemfireSession != null) {
+      gemfireSession.setNativeSession(nativeSession);
+      return gemfireSession;
+    }
+    return getSessionManager().getWrappingSession(nativeSession.getId());
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionListener.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionListener.java
new file mode 100644
index 0000000..7973bc5
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/filter/SessionListener.java
@@ -0,0 +1,51 @@
+/*
+* 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.filter;
+
+import com.gemstone.gemfire.distributed.DistributedSystemDisconnectedException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
+
+public class SessionListener implements HttpSessionListener {
+
+  private static final Logger LOG =
+      LoggerFactory.getLogger(SessionListener.class.getName());
+
+  public void sessionCreated(HttpSessionEvent httpSessionEvent) {
+  }
+
+  /**
+   * This will receive events from the container using the native sessions.
+   */
+  public void sessionDestroyed(HttpSessionEvent event) {
+    String nativeId = event.getSession().getId();
+    try {
+      String sessionId = SessionCachingFilter.getSessionManager().destroyNativeSession(
+          nativeId);
+      LOG.debug(
+          "Received sessionDestroyed event for native session {} (wrapped by {})",
+          nativeId, sessionId);
+    } catch (DistributedSystemDisconnectedException dex) {
+      LOG.debug("Cache disconnected - unable to destroy native session {0}",
+          nativeId);
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/Installer.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/Installer.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/Installer.java
new file mode 100644
index 0000000..7ba5b34
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/Installer.java
@@ -0,0 +1,296 @@
+/*
+* 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.installer;
+
+import com.gemstone.gemfire.modules.session.installer.args.Argument;
+import com.gemstone.gemfire.modules.session.installer.args.ArgumentProcessor;
+import com.gemstone.gemfire.modules.session.installer.args.ArgumentValues;
+import com.gemstone.gemfire.modules.session.installer.args.UnknownArgumentHandler;
+import com.gemstone.gemfire.modules.session.installer.args.UsageException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ *
+ */
+public class Installer {
+
+  private static final String GEMFIRE_FILTER_CLASS =
+      "com.gemstone.gemfire.modules.session.filter.SessionCachingFilter";
+
+  private static final String GEMFIRE_LISTENER_CLASS =
+      "com.gemstone.gemfire.modules.session.filter.SessionListener";
+
+  private ArgumentValues argValues;
+
+  private static final Argument ARG_HELP =
+      new Argument("-h", false).
+          setDescription("Displays this help message.");
+
+  private static Argument ARG_GEMFIRE_PARAMETERS =
+      new Argument("-p", false, "param=value").
+          setDescription("Specific parameter for inclusion into the "
+              + "session filter definition as a regular "
+              + "init-param. Can be given multiple times.");
+
+  private static Argument ARG_CACHE_TYPE =
+      new Argument("-t", false, "cache-type").
+          setDescription(
+              "Type of cache. Must be one of 'peer-to-peer' or "
+                  + "'client-server'. Default is peer-to-peer.").
+          setDefaults("peer-to-peer");
+
+  private static Argument ARG_WEB_XML_FILE =
+      new Argument("-w", true, "web.xml file").
+          setDescription("The web.xml file to be modified.");
+
+
+  /**
+   * Class main method
+   *
+   * @param args Arguments passed in via the command line
+   * @throws Exception in the event of any errors
+   */
+  public static void main(final String[] args) throws Exception {
+    new Installer(args).process();
+  }
+
+  public static void log(String message) {
+    System.err.println(message);
+  }
+
+
+  public Installer(String[] args) throws Exception {
+    final ArgumentProcessor processor = new ArgumentProcessor("Installer");
+
+    argValues = null;
+    try {
+      // These are ordered so as to keep the options alphabetical
+      processor.addArgument(ARG_HELP);
+      processor.addArgument(ARG_GEMFIRE_PARAMETERS);
+      processor.addArgument(ARG_CACHE_TYPE);
+      processor.addArgument(ARG_WEB_XML_FILE);
+
+      processor.setUnknownArgumentHandler(new UnknownArgumentHandler() {
+        @Override
+        public void handleUnknownArgument(
+            final String form, final String[] params) {
+          log("Unknown argument being ignored: "
+              + form + " (" + params.length + " params)");
+          log("Use '-h' argument to display usage");
+        }
+      });
+      argValues = processor.process(args);
+
+      if (argValues.isDefined(ARG_HELP)) {
+        final UsageException usageException =
+            new UsageException("Usage requested by user");
+        usageException.setUsage(processor.getUsage());
+        throw (usageException);
+      }
+
+    } catch (UsageException ux) {
+      final StringBuilder error = new StringBuilder();
+      error.append("\nERROR: ");
+      error.append(ux.getMessage());
+      error.append("\n");
+      if (ux.getUsage() != null) {
+        error.append(ux.getUsage());
+      }
+      log(error.toString());
+      System.exit(2);
+    }
+
+  }
+
+
+  /**
+   * The main entry point for processing
+   *
+   * @throws Exception if any errors occur.
+   */
+  public void process() throws Exception {
+    String argInputFile = argValues.getFirstResult(ARG_WEB_XML_FILE);
+
+    ByteArrayOutputStream output = new ByteArrayOutputStream();
+    InputStream input = new FileInputStream(argInputFile);
+
+    processWebXml(input, output);
+    input.close();
+
+    System.out.println(output.toString());
+  }
+
+
+  private void processWebXml(final InputStream webXml,
+      final OutputStream out) throws Exception {
+
+    Document doc = createWebXmlDoc(webXml);
+    mangleWebXml(doc);
+
+    streamXML(doc, out);
+  }
+
+
+  private Document createWebXmlDoc(final InputStream webXml)
+      throws Exception {
+    Document doc;
+    final DocumentBuilderFactory factory =
+        DocumentBuilderFactory.newInstance();
+    final DocumentBuilder builder = factory.newDocumentBuilder();
+    doc = builder.parse(webXml);
+
+    return doc;
+  }
+
+
+  private Document mangleWebXml(final Document doc) {
+    final Element docElement = doc.getDocumentElement();
+    final NodeList nodelist = docElement.getChildNodes();
+    Node firstFilter = null;
+    Node displayElement = null;
+    Node afterDisplayElement = null;
+
+    for (int i = 0; i < nodelist.getLength(); i++) {
+      final Node node = nodelist.item(i);
+      final String name = node.getNodeName();
+      if ("display-name".equals(name)) {
+        displayElement = node;
+      } else {
+        if ("filter".equals(name)) {
+          if (firstFilter == null) {
+            firstFilter = node;
+          }
+        }
+        if (displayElement != null && afterDisplayElement == null) {
+          afterDisplayElement = node;
+        }
+      }
+    }
+
+    Node initParam;
+    final Element filter = doc.createElement("filter");
+    append(doc, filter, "filter-name", "gemfire-session-filter");
+    append(doc, filter, "filter-class", GEMFIRE_FILTER_CLASS);
+
+    // Set the type of cache
+    initParam = append(doc, filter, "init-param", null);
+    append(doc, initParam, "param-name", "cache-type");
+    append(doc, initParam, "param-value",
+        argValues.getFirstResult(ARG_CACHE_TYPE));
+
+
+    if (argValues.isDefined(ARG_GEMFIRE_PARAMETERS)) {
+      for (String[] val : argValues.getAllResults(ARG_GEMFIRE_PARAMETERS)) {
+        String gfParam = val[0];
+        int idx = gfParam.indexOf("=");
+        initParam = append(doc, filter, "init-param", null);
+        append(doc, initParam, "param-name", gfParam.substring(0, idx));
+        append(doc, initParam, "param-value", gfParam.substring(idx + 1));
+      }
+    }
+
+    Node first = firstFilter;
+    if (first == null) {
+      if (afterDisplayElement != null) {
+        first = afterDisplayElement;
+      }
+    }
+    if (first == null) {
+      first = docElement.getFirstChild();
+    }
+    docElement.insertBefore(filter, first);
+    final Element filterMapping = doc.createElement("filter-mapping");
+    append(doc, filterMapping, "filter-name", "gemfire-session-filter");
+    append(doc, filterMapping, "url-pattern", "/*");
+    append(doc, filterMapping, "dispatcher", "FORWARD");
+    append(doc, filterMapping, "dispatcher", "INCLUDE");
+    append(doc, filterMapping, "dispatcher", "REQUEST");
+    append(doc, filterMapping, "dispatcher", "ERROR");
+    final Element contextListener = doc.createElement("listener");
+    append(doc, contextListener, "listener-class", GEMFIRE_LISTENER_CLASS);
+    docElement.insertBefore(filterMapping, after(docElement, "filter"));
+    docElement.insertBefore(contextListener,
+        after(docElement, "filter-mapping"));
+    return doc;
+  }
+
+  private Node after(final Node parent, final String nodeName) {
+    final NodeList nodelist = parent.getChildNodes();
+    int index = -1;
+    for (int i = 0; i < nodelist.getLength(); i++) {
+      final Node node = nodelist.item(i);
+      final String name = node.getNodeName();
+      if (nodeName.equals(name)) {
+        index = i;
+      }
+    }
+    if (index == -1)
+      return null;
+    if (nodelist.getLength() > (index + 1)) {
+      return nodelist.item(index + 1);
+    }
+    return null;
+  }
+
+  private Node append(final Document doc, final Node parent,
+      final String element,
+      final String value) {
+    final Element child = doc.createElement(element);
+    if (value != null)
+      child.setTextContent(value);
+    parent.appendChild(child);
+    return child;
+  }
+
+  private void streamXML(final Document doc, final OutputStream out) {
+    try {// Use a Transformer for output
+      final TransformerFactory tFactory = TransformerFactory.newInstance();
+      final Transformer transformer = tFactory.newTransformer();
+      if (doc.getDoctype() != null) {
+        final String systemId = doc.getDoctype().getSystemId();
+        final String publicId = doc.getDoctype().getPublicId();
+        transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, publicId);
+        transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, systemId);
+      }
+      transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+      transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount",
+          "4");
+      final DOMSource source = new DOMSource(doc);
+      final StreamResult result = new StreamResult(out);
+      transformer.transform(source, result);
+    } catch (final Exception e) {
+      e.printStackTrace();
+    }
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/JarClassLoader.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/JarClassLoader.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/JarClassLoader.java
new file mode 100644
index 0000000..ba528ce
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/JarClassLoader.java
@@ -0,0 +1,123 @@
+/*
+* 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.installer;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Enumeration;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+/**
+ * Classloader, which allows finding classes in jars  within jars. This is used to check
+ * whether a listener, as found in web.xml, is a ServletContextListener
+ */
+public class JarClassLoader extends URLClassLoader {
+
+  public JarClassLoader(URL[] urls, ClassLoader parent) {
+    super(urls, parent);
+
+    try {
+      for (URL url : urls) {
+        if (isJar(url.getFile())) {
+          addJarResource(new File(url.getPath()));
+        }
+      }
+    } catch (IOException e) {
+      e.printStackTrace();
+    }
+  }
+
+  private void addJarResource(File file) throws IOException {
+    JarFile jarFile = new JarFile(file);
+    addURL(file.toURL());
+    Enumeration<JarEntry> jarEntries = jarFile.entries();
+    while (jarEntries.hasMoreElements()) {
+      JarEntry jarEntry = jarEntries.nextElement();
+      if (!jarEntry.isDirectory() && isJar(jarEntry.getName())) {
+        addJarResource(jarEntryAsFile(jarFile, jarEntry));
+      }
+    }
+  }
+
+  @Override
+  protected synchronized Class<?> loadClass(String name, boolean resolve)
+      throws ClassNotFoundException {
+    try {
+      Class<?> clazz = findLoadedClass(name);
+      if (clazz == null) {
+        clazz = findClass(name);
+        if (resolve) {
+          resolveClass(clazz);
+        }
+      }
+      return clazz;
+    } catch (ClassNotFoundException e) {
+      return super.loadClass(name, resolve);
+    }
+  }
+
+  private static void close(Closeable closeable) {
+    if (closeable != null) {
+      try {
+        closeable.close();
+      } catch (IOException e) {
+        e.printStackTrace();
+      }
+    }
+  }
+
+  private static boolean isJar(String fileName) {
+    return fileName != null && (fileName.toLowerCase().endsWith(".jar") ||
+        fileName.toLowerCase().endsWith(".war") ||
+        fileName.toLowerCase().endsWith(".ear"));
+  }
+
+  private static File jarEntryAsFile(JarFile jarFile,
+      JarEntry jarEntry) throws IOException {
+    InputStream input = null;
+    OutputStream output = null;
+    try {
+      String name = jarEntry.getName().replace('/', '_');
+      int i = name.lastIndexOf(".");
+      String extension = i > -1 ? name.substring(i) : "";
+      File file = File.createTempFile(
+          name.substring(0, name.length() - extension.length()) + ".",
+          extension);
+      file.deleteOnExit();
+      input = jarFile.getInputStream(jarEntry);
+      output = new FileOutputStream(file);
+      int readCount;
+      byte[] buffer = new byte[4096];
+      while ((readCount = input.read(buffer)) != -1) {
+        output.write(buffer, 0, readCount);
+      }
+      return file;
+    } finally {
+      close(input);
+      close(output);
+    }
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/Argument.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/Argument.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/Argument.java
new file mode 100644
index 0000000..1125c1b
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/Argument.java
@@ -0,0 +1,275 @@
+/*
+* 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.installer.args;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Class representing a single command line argument.
+ */
+public class Argument {
+
+  /**
+   * Parameter names.
+   */
+  private final String[] paramNames;
+
+  /**
+   * Default values for the parameters when not explicitly set.
+   */
+  private String[] defaults;
+
+  /**
+   * Environment variable names forfor each parameter where values will be
+   * pulled in, if not explicitly provided and if the environment variable
+   * exists.
+   */
+  private String[] envVars;
+
+  /**
+   * Flag indicating whether this argument is required on the command line.
+   */
+  private final boolean required;
+
+  /**
+   * Handler used to hook into processing.
+   */
+  private ArgumentHandler handler;
+
+  /**
+   * List of all representation forms.
+   */
+  private final List<String> forms = new ArrayList<String>();
+
+  /**
+   * Usage description.
+   */
+  private String description;
+
+  ///////////////////////////////////////////////////////////////////////////
+  // Constructor:
+
+  /**
+   * Contructor to create an argument definition.
+   *
+   * @param primaryForm    the form of the argument (e.g., --foo).  Should start
+   *                       with a dash.
+   * @param argRequired    flag indicating whether or not the argument is
+   *                       required to be onthe command line
+   * @param parameterNames names of the parameters to this argument for use in
+   *                       the usage generation
+   */
+  public Argument(
+      final String primaryForm,
+      final boolean argRequired,
+      final String... parameterNames) {
+    forms.add(primaryForm);
+    paramNames = parameterNames;
+    required = argRequired;
+  }
+
+  /**
+   * Returns the number of parameters that this argument takes.
+   *
+   * @return parameter count
+   */
+  public int getParameterCount() {
+    return paramNames.length;
+  }
+
+  /**
+   * Returns the name of the parameter position requested.
+   *
+   * @param idx parameter index
+   * @return parameter name
+   */
+  public String getParameterName(final int idx) {
+    return paramNames[idx];
+  }
+
+  /**
+   * Returns whether or not this argument is required to be defined.
+   *
+   * @return true if required, false if optional
+   */
+  public boolean isRequired() {
+    return required;
+  }
+
+  /**
+   * Determines if the argument provisioning has been done via the environment.
+   */
+  public boolean isDefinedInEnv() {
+    if (envVars == null || paramNames.length == 0) {
+      return false;
+    }
+    for (String var : envVars) {
+      if (System.getenv(var) == null) {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  /**
+   * Sets the argument handler.
+   *
+   * @param aHandler argument handler
+   * @return this argument (for chained calls)
+   */
+  public Argument setArgumentHandler(final ArgumentHandler aHandler) {
+    handler = aHandler;
+    return this;
+  }
+
+  /**
+   * Returns the argument handler.
+   *
+   * @return argument handler
+   */
+  public ArgumentHandler getArgumentHandler() {
+    return handler;
+  }
+
+  /**
+   * Adds a possible representation of the command line argument.
+   *
+   * @param aliasName additional form to accept
+   * @return this argument (for chained calls)
+   */
+  public Argument addForm(final String aliasName) {
+    forms.add(aliasName);
+    return this;
+  }
+
+  /**
+   * Returns the primary form of the argument.
+   *
+   * @return primary form
+   */
+  public String getPrimaryForm() {
+    if (forms.isEmpty()) {
+      return null;
+    } else {
+      return forms.get(0);
+    }
+  }
+
+  /**
+   * Returns a list of all valid representations of this command line argument.
+   *
+   * @return list of all registered forms
+   */
+  public List<String> getForms() {
+    return forms;
+  }
+
+  /**
+   * Sets a usage description for this argument.
+   *
+   * @param str usage description
+   * @return this argument (for chained calls)
+   */
+  public Argument setDescription(final String str) {
+    description = str;
+    return this;
+  }
+
+  /**
+   * Returns a usage description of this argument.
+   *
+   * @return description
+   */
+  public String getDescription() {
+    return description;
+  }
+
+  /**
+   * Sets the default values when no explicit values were provided.
+   *
+   * @param newDefaults default values for all argument parameters
+   * @return this argument (for chained calls)
+   */
+  public Argument setDefaults(final String... newDefaults) {
+    if (newDefaults.length != paramNames.length) {
+      throw (new IllegalArgumentException(
+          "Defaults array length provided is not the correct size"));
+    }
+    defaults = newDefaults;
+    return this;
+  }
+
+  /**
+   * Returns the defaults.
+   *
+   * @return default parameter values
+   */
+  public String[] getDefaults() {
+    return defaults;
+  }
+
+  /**
+   * Sets the environment variables which will be checked for values before
+   * falling back on the default values.
+   *
+   * @param newEnvVars environment variable name array
+   * @return this argument (for chained calls)
+   */
+  public Argument setEnvVars(final String... newEnvVars) {
+    if (newEnvVars.length != paramNames.length) {
+      throw (new IllegalArgumentException(
+          "Environment variables array length provided is not "
+              + "the correct size"));
+    }
+    envVars = newEnvVars;
+    return this;
+  }
+
+  /**
+   * Returns the environment variable names for each parameter.
+   *
+   * @return environment variable names
+   */
+  public String[] getEnvVars() {
+    return envVars;
+  }
+
+  /**
+   * Returns a human readable form.
+   *
+   * @return human readable string
+   */
+  @Override
+  public String toString() {
+    final StringBuilder builder = new StringBuilder();
+    builder.append("[Argument '");
+    builder.append(forms.get(0));
+    builder.append("'");
+    if (paramNames.length > 0) {
+      for (int i = 0; i < paramNames.length; i++) {
+        builder.append(" <");
+        builder.append(paramNames[i]);
+        builder.append(">");
+      }
+    }
+    builder.append("]");
+    return builder.toString();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentHandler.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentHandler.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentHandler.java
new file mode 100644
index 0000000..97c8108
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentHandler.java
@@ -0,0 +1,38 @@
+/*
+* 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.installer.args;
+
+/**
+ * Interface specifying the requirements for objects wiching to be able to
+ * examine arguments (potentially tweaking parameters) at the time of parsing,
+ * thereby allowing for usage display to occur automatically.
+ */
+public interface ArgumentHandler {
+
+  /**
+   * Process the argument values specified.
+   *
+   * @param arg    argument definition
+   * @param form   form which was used on the command line
+   * @param params parameters supplied to the argument
+   * @throws UsageException when usage was suboptimal
+   */
+  void handleArgument(Argument arg, String form, String[] params)
+      throws UsageException;
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentProcessor.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentProcessor.java
new file mode 100644
index 0000000..04ecfab
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentProcessor.java
@@ -0,0 +1,397 @@
+/*
+* 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.installer.args;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Logger;
+
+/**
+ * This class is used to process command line arguments for Java programs in a
+ * flexible and powerful manner.
+ */
+public class ArgumentProcessor {
+  /**
+   * Logger.
+   */
+  private static final Logger LOG =
+      Logger.getLogger(ArgumentProcessor.class.getName());
+
+  /**
+   * Description line length.
+   */
+  private static final int LINE_LENGTH = 60;
+
+  /**
+   * Map containing all arguments defined, indexed by their unique IDs.
+   */
+  private final List<Argument> args = new ArrayList<Argument>();
+
+  /**
+   * Unknown argument handler.
+   */
+  private UnknownArgumentHandler handler;
+
+  /**
+   * Program name to display in usage.
+   */
+  private String programName;
+
+  ///////////////////////////////////////////////////////////////////////////
+  // Classes:
+
+  /**
+   * Structure used to represent an argument match.
+   */
+  private static class Match {
+    /**
+     * The argument which matched.
+     */
+    private final Argument arg;
+
+    /**
+     * The specific form which matched.
+     */
+    private final String form;
+
+    /**
+     * The parameters to the argument form.
+     */
+    private final String[] params;
+
+    /**
+     * Constructor.
+     *
+     * @param theArgument the argument which matched
+     * @param theForm     the form used
+     * @param theParams   the parameters supplied
+     */
+    public Match(
+        final Argument theArgument,
+        final String theForm, final String[] theParams) {
+      arg = theArgument;
+      form = theForm;
+      params = theParams;
+    }
+
+    /**
+     * Accessor.
+     *
+     * @return argument which matched
+     */
+    public Argument getArgument() {
+      return arg;
+    }
+
+    /**
+     * Accessor.
+     *
+     * @return form which was used
+     */
+    public String getForm() {
+      return form;
+    }
+
+    /**
+     * Accessor.
+     *
+     * @return parameters supplied
+     */
+    public String[] getParams() {
+      return params;
+    }
+  }
+
+  ///////////////////////////////////////////////////////////////////////////
+  // Constructors:
+
+  /**
+   * Creates a new Argument processor instance for te program name given.
+   *
+   * @param progName program name used in usage
+   */
+  public ArgumentProcessor(final String progName) {
+    programName = progName;
+  }
+
+
+  ///////////////////////////////////////////////////////////////////////////
+  // Public methods:
+
+  /**
+   * Adds a new argument.
+   *
+   * @param arg argument to add
+   */
+  public void addArgument(final Argument arg) {
+    args.add(arg);
+  }
+
+  /**
+   * Sets the handler to call when an unknown argument is encountered.
+   *
+   * @param aHandler unknown arg handler, or null to unset
+   */
+  public void setUnknownArgumentHandler(
+      final UnknownArgumentHandler aHandler) {
+    handler = aHandler;
+  }
+
+  /**
+   * Process the command line arguments provided.
+   *
+   * @param programArgs command line arguments supplied to program
+   * @return argument values parsed out of command line
+   * @throws UsageException when usge sucked
+   */
+  public ArgumentValues process(final String[] programArgs)
+      throws UsageException {
+    ArgumentHandler argHandler;
+    final ArgumentValues result = new ArgumentValues();
+    List<Argument> unmatched;
+    List<Match> matches;
+
+    // Find all argument matches and set postArgs
+    matches = checkMatches(programArgs, result);
+
+    // Find arguments which didnt match
+    unmatched = new ArrayList<Argument>();
+    unmatched.addAll(args);
+    for (Match match : matches) {
+      unmatched.remove(match.getArgument());
+    }
+
+    // Error on unmatched yet required args
+    for (Argument arg : unmatched) {
+      if (arg.isRequired() && !arg.isDefinedInEnv()) {
+        final UsageException usageException = new UsageException(
+            "Required argument not provided: " + arg);
+        usageException.setUsage(getUsage());
+        throw usageException;
+      }
+    }
+
+    // Handle the arguments
+    for (Match match : matches) {
+      final Argument arg = match.getArgument();
+      argHandler = arg.getArgumentHandler();
+      if (argHandler != null) {
+        argHandler.handleArgument(
+            arg, match.getForm(), match.getParams());
+      }
+      result.addResult(arg, match.getParams());
+    }
+
+    return result;
+  }
+
+
+  /**
+   * Generates command line usage text for display to user.
+   *
+   * @return usage to dusplay to user
+   */
+  public String getUsage() {
+    final StringBuilder builder = new StringBuilder();
+    List<String> descriptionLines;
+    final String blank20 = "                    ";
+
+    builder.append("\nUSAGE: ");
+    if (programName == null) {
+      builder.append("<program>");
+    } else {
+      builder.append(programName);
+    }
+    if (args.isEmpty()) {
+      builder.append("\nNo arguments supported.\n");
+    } else {
+      builder.append(" <args>\nWHERE <args>:\n\n");
+      for (Argument arg : args) {
+        for (String form : arg.getForms()) {
+          builder.append("    ");
+          builder.append(form);
+
+          for (int i = 0; i < arg.getParameterCount(); i++) {
+            builder.append(" <");
+            builder.append(arg.getParameterName(i));
+            builder.append(">");
+          }
+          builder.append("\n");
+        }
+
+        descriptionLines =
+            breakupString(arg.getDescription(), LINE_LENGTH);
+        if (descriptionLines.isEmpty()) {
+          builder.append(blank20);
+          builder.append("No argument description provided.");
+          builder.append("\n\n");
+        } else {
+          for (String line : descriptionLines) {
+            builder.append(blank20);
+            builder.append(line.trim());
+            builder.append("\n");
+          }
+          builder.append("\n");
+        }
+      }
+    }
+    builder.append("\n");
+
+    return builder.toString();
+  }
+
+
+  ///////////////////////////////////////////////////////////////////////////
+  // Private methods:
+
+  /**
+   * Builds a listof all argument matches and sets the postArgs array.
+   *
+   * @param programArgs command line arguments to search through
+   * @param values      values object in which to store results
+   * @return list of matches
+   * @throws UsageException when there is EBKAC
+   */
+  private List<Match> checkMatches(
+      final String[] programArgs, final ArgumentValues values)
+      throws UsageException {
+    final List<Match> result = new ArrayList<Match>();
+    Match match;
+    String[] params;
+    String[] postArgs;
+    int idx = 0;
+    int idx2;
+
+    while (idx < programArgs.length) {
+      // Check for end-of-parameters arg
+      if ("--".equals(programArgs[idx])) {
+        if (++idx < programArgs.length) {
+          postArgs = new String[programArgs.length - idx];
+          System.arraycopy(programArgs, idx,
+              postArgs, 0, postArgs.length);
+          values.setPostArgs(postArgs);
+        }
+        // We're done processing args'
+        break;
+      }
+
+      // Determine parameter count
+      idx2 = idx;
+      while ((idx2 + 1) < programArgs.length
+          && programArgs[idx2 + 1].charAt(0) != '-') {
+        idx2++;
+      }
+
+      // Generate parameter array
+      params = new String[idx2 - idx];
+      System.arraycopy(programArgs, idx + 1, params, 0, params.length);
+
+      LOG.fine("Arg: " + programArgs[idx]);
+      LOG.fine("Params: " + params.length);
+
+      // Find first argument matches
+      match = null;
+      for (Argument arg : args) {
+        match = checkMatch(programArgs[idx], arg, params);
+        if (match != null) {
+          result.add(match);
+          LOG.fine("Match found: ");
+          LOG.fine("     ID: " + arg);
+          LOG.fine("   Form: " + match.getForm());
+          break;
+        }
+      }
+      if (match == null) {
+        if (handler == null) {
+          final UsageException usageException = new UsageException(
+              "Unknown argument: " + programArgs[idx]
+                  + " with " + params.length + " parameters.");
+          usageException.setUsage(getUsage());
+          throw (usageException);
+        } else {
+          handler.handleUnknownArgument(programArgs[idx], params);
+        }
+      }
+
+      idx += params.length + 1;
+    }
+
+    return result;
+  }
+
+  /**
+   * Checks to see if an rgument form matches the suppies parameter list.
+   *
+   * @param argName argument name
+   * @param arg     argument
+   * @param params  parameters supplied
+   * @return match object on match, null otherwise
+   */
+  private Match checkMatch(
+      final String argName, final Argument arg, final String[] params) {
+    // Look for a matching form
+    for (String form : arg.getForms()) {
+      if (
+          form.equals(argName)
+              && arg.getParameterCount() == params.length) {
+        return new Match(arg, form, params);
+      }
+    }
+
+    return null;
+  }
+
+  /**
+   * Breaks up a string into sub-strings, each with a length equal to or less
+   * than the max length specified.
+   *
+   * @param str       string to break up
+   * @param maxLength maximum line length to use
+   * @return broken up string
+   */
+  private List<String> breakupString(
+      final String str, final int maxLength) {
+    final List<String> result = new ArrayList<String>();
+    int startIdx = -1;
+    int lastIdx;
+    int idx;
+
+    if (str == null) {
+      return result;
+    }
+
+    do {
+      idx = startIdx;
+      do {
+        lastIdx = idx;
+        idx = str.indexOf(' ', lastIdx + 1);
+        LOG.fine("startIdx=" + startIdx + "  lastIdx=" + lastIdx
+            + "  idx=" + idx);
+        if (idx < 0) {
+          // Canot break line up any further
+          result.add(str.substring(startIdx + 1));
+          return result;
+        }
+      } while ((idx - startIdx) <= maxLength);
+
+      result.add(str.substring(startIdx + 1, lastIdx));
+      startIdx = lastIdx;
+    } while (true);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentValues.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentValues.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentValues.java
new file mode 100644
index 0000000..cd412da
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentValues.java
@@ -0,0 +1,222 @@
+/*
+* 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.installer.args;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Result object capturing the result of processing command line arguments.
+ */
+public class ArgumentValues {
+
+  /**
+   * Storage location for all arguments found after the "--" pseudo-arg.
+   */
+  private String[] postArgs = new String[]{};
+
+  /**
+   * Storage location for the command line argument values.
+   */
+  private final Map<Argument, List<String[]>> values =
+      new LinkedHashMap<Argument, List<String[]>>();
+
+  /**
+   * Constructor.
+   */
+  ArgumentValues() {
+    // Empty.
+  }
+
+  /**
+   * Sets the post-arguments found after the "--" pseudo-argument.
+   *
+   * @param newPostArgs arguments defined after the special "--" argument
+   */
+  void setPostArgs(final String[] newPostArgs) {
+    postArgs = newPostArgs;
+  }
+
+  /**
+   * After processing the command line arguments, this method may be used to
+   * return all arguments which were excluded from processing by their placement
+   * after the "<code>--</code>" psuedo-argument.
+   *
+   * @return all unprocess arguments
+   */
+  public String[] getPostArgs() {
+    return postArgs;
+  }
+
+  /**
+   * Sets the data values found for a specific argument.
+   *
+   * @param arg         argument
+   * @param paramValues parameter values for the argument
+   */
+  public void addResult(final Argument arg, final String[] paramValues) {
+    List<String[]> list = values.get(arg);
+    if (list == null) {
+      list = new ArrayList<String[]>();
+      list.add(paramValues);
+      values.put(arg, list);
+    } else {
+      list.add(paramValues);
+    }
+  }
+
+  /**
+   * Returns a list of all defined arguments.
+   *
+   * @return set of arguments
+   */
+  public Set<Argument> getDefinedArguments() {
+    return values.keySet();
+  }
+
+  /**
+   * Counts the number of arguments defined on the command line which are in the
+   * list provided.
+   *
+   * @param ofThese the arguments to search for, or null to count all supplied
+   *                arguments
+   * @return count of the defined arguments
+   */
+  public int getDefinedCount(Argument... ofThese) {
+    if (ofThese.length == 0) {
+      return values.keySet().size();
+    }
+
+    int count = 0;
+    for (Argument arg : values.keySet()) {
+      boolean found = false;
+      for (int i = 0; !found && i < ofThese.length; i++) {
+        if (ofThese[i].equals(arg)) {
+          count++;
+          found = true;
+        }
+      }
+    }
+    return count;
+  }
+
+  /**
+   * Returns whetheror not the command line argument was actually provided on
+   * the command line.
+   *
+   * @param arg argument to query
+   * @return true if the argument is defined by the command line, false
+   * otherwise
+   */
+  public boolean isDefined(final Argument arg) {
+    final List<String[]> result = values.get(arg);
+    return (result != null);
+  }
+
+  /**
+   * Returns all results for the specified argument.  If a command line option
+   * is specified more than once, this is the method to use to get all values.
+   *
+   * @param arg argument to query
+   * @return list of all parameter lists defined for this argument
+   */
+  public List<String[]> getAllResults(final Argument arg) {
+    List<String[]> result = values.get(arg);
+
+    if (result == null) {
+      final String[] envVars = arg.getEnvVars();
+      final String[] defaults = arg.getDefaults();
+      final String[] vals = new String[arg.getParameterCount()];
+      boolean found = defaults != null;
+
+      for (int i = 0; i < arg.getParameterCount(); i++) {
+        if (defaults != null) {
+          vals[i] = defaults[i];
+        }
+        if (envVars != null) {
+          String val = System.getenv(envVars[i]);
+          if (val != null) {
+            found = true;
+            vals[i] = val;
+          }
+        }
+      }
+
+      if (found) {
+        result = new ArrayList<String[]>();
+        result.add(vals);
+      }
+    }
+    return result;
+  }
+
+  /**
+   * Convenience method to retrieve the first instance of the command line
+   * argument's values.
+   *
+   * @param arg argument to query
+   * @return first parameter list defined for this argument
+   */
+  public String[] getResult(final Argument arg) {
+    final List<String[]> all = getAllResults(arg);
+    if (all == null) {
+      return null;
+    } else {
+      return all.get(0);
+    }
+  }
+
+  /**
+   * Convenience method to return the first value of the first instance of the
+   * command line argument values for the specified argument.
+   *
+   * @param arg argument to query
+   * @return first parameter of the first list of parameters supplied
+   */
+  public String getFirstResult(final Argument arg) {
+    final String[] all = getResult(arg);
+    if (all == null) {
+      return null;
+    } else {
+      return all[0];
+    }
+  }
+
+  /**
+   * Convenience method to return the result of getFirstResult method as an
+   * integer.
+   *
+   * @param arg            argument to query
+   * @param undefinedValue value to return when argument is not defined or is
+   *                       illegally defined
+   * @return value specified, or default value provided
+   */
+  public int getFirstResultAsInt(
+      final Argument arg, final int undefinedValue) {
+    final String value = getFirstResult(arg);
+    if (value == null) {
+      return undefinedValue;
+    } else {
+      return Integer.parseInt(value);
+    }
+  }
+
+}



[28/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java b/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java
deleted file mode 100644
index 7c6929c..0000000
--- a/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsDUnitTest.java
+++ /dev/null
@@ -1,1007 +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.management.internal.cli.commands;
-
-import static com.gemstone.gemfire.test.dunit.Wait.*;
-
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.client.ClientCache;
-import com.gemstone.gemfire.cache.client.ClientCacheFactory;
-import com.gemstone.gemfire.cache.client.ClientRegionFactory;
-import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
-import com.gemstone.gemfire.cache.client.Pool;
-import com.gemstone.gemfire.cache.client.PoolFactory;
-import com.gemstone.gemfire.cache.client.PoolManager;
-import com.gemstone.gemfire.distributed.AbstractLauncher.ServiceState;
-import com.gemstone.gemfire.distributed.AbstractLauncher.Status;
-import com.gemstone.gemfire.distributed.LocatorLauncher;
-import com.gemstone.gemfire.distributed.LocatorLauncher.Builder;
-import com.gemstone.gemfire.distributed.LocatorLauncher.Command;
-import com.gemstone.gemfire.distributed.LocatorLauncher.LocatorState;
-import com.gemstone.gemfire.distributed.ServerLauncher;
-import com.gemstone.gemfire.distributed.ServerLauncher.ServerState;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.AvailablePortHelper;
-import com.gemstone.gemfire.internal.lang.ObjectUtils;
-import com.gemstone.gemfire.internal.lang.StringUtils;
-import com.gemstone.gemfire.internal.lang.SystemUtils;
-import com.gemstone.gemfire.internal.process.ProcessType;
-import com.gemstone.gemfire.internal.util.IOUtils;
-import com.gemstone.gemfire.management.cli.Result;
-import com.gemstone.gemfire.management.internal.cli.i18n.CliStrings;
-import com.gemstone.gemfire.management.internal.cli.result.CommandResult;
-import com.gemstone.gemfire.management.internal.cli.util.CommandStringBuilder;
-import com.gemstone.gemfire.test.dunit.WaitCriterion;
-
-import org.junit.FixMethodOrder;
-import org.junit.runners.MethodSorters;
-
-import javax.management.MBeanServerConnection;
-import javax.management.ObjectName;
-import javax.management.Query;
-import javax.management.QueryExp;
-import javax.management.remote.JMXConnector;
-import javax.management.remote.JMXConnectorFactory;
-import javax.management.remote.JMXServiceURL;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.lang.management.ManagementFactory;
-import java.net.InetAddress;
-import java.nio.charset.Charset;
-import java.text.DateFormat;
-import java.text.MessageFormat;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Queue;
-import java.util.Set;
-import java.util.concurrent.ConcurrentLinkedDeque;
-import java.util.concurrent.TimeUnit;
-
-/**
- * The LauncherLifecycleCommandsDUnitTest class is a test suite of integration tests testing the contract and
- * functionality of the GemFire launcher lifecycle commands inside Gfsh.
- *
- * @author John Blum
- * @see javax.management.MBeanServerConnection
- * @see javax.management.remote.JMXConnector
- * @see com.gemstone.gemfire.distributed.AbstractLauncher
- * @see com.gemstone.gemfire.distributed.LocatorLauncher
- * @see com.gemstone.gemfire.distributed.ServerLauncher
- * @see com.gemstone.gemfire.internal.AvailablePortHelper
- * @see com.gemstone.gemfire.management.internal.cli.shell.Gfsh
- * @see com.gemstone.gemfire.management.internal.cli.commands.CliCommandTestBase
- * @see com.gemstone.gemfire.management.internal.cli.commands.LauncherLifecycleCommands
- * @see com.gemstone.gemfire.management.internal.cli.util.CommandStringBuilder
- * @since 7.0
- */
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class LauncherLifecycleCommandsDUnitTest extends CliCommandTestBase {
-
-  protected static final long COMMAND_EXECUTION_TIMEOUT = TimeUnit.MINUTES.toSeconds(2);
-
-  protected static final DateFormat TIMESTAMP = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-
-  private final Queue<Integer> processIds = new ConcurrentLinkedDeque<>();
-
-  public LauncherLifecycleCommandsDUnitTest(final String testName) {
-    super(testName);
-  }
-
-  protected static String getMemberId(final int jmxManagerPort, final String memberName) throws Exception {
-    return getMemberId(InetAddress.getLocalHost().getHostName(), jmxManagerPort, memberName);
-  }
-
-  protected static String getMemberId(final String jmxManagerHost, final int jmxManagerPort,
-      final String memberName) throws Exception {
-    JMXConnector connector = null;
-
-    try {
-      connector = JMXConnectorFactory.connect(new JMXServiceURL(
-          String.format("service:jmx:rmi://%1$s/jndi/rmi://%1$s:%2$d/jmxrmi", jmxManagerHost, jmxManagerPort)));
-
-      MBeanServerConnection connection = connector.getMBeanServerConnection();
-
-      ObjectName objectNamePattern = ObjectName.getInstance("GemFire:type=Member,*");
-
-      QueryExp query = Query.eq(Query.attr("Name"), Query.value(memberName));
-
-      Set<ObjectName> objectNames = connection.queryNames(objectNamePattern, query);
-
-      assertNotNull(objectNames);
-      assertFalse(objectNames.isEmpty());
-      assertEquals(1, objectNames.size());
-
-      //final ObjectName objectName = ObjectName.getInstance("GemFire:type=Member,Name=" + memberName);
-      ObjectName objectName = objectNames.iterator().next();
-
-      //System.err.printf("ObjectName for Member with Name (%1$s) is %2$s%n", memberName, objectName);
-
-      return ObjectUtils.toString(connection.getAttribute(objectName, "Id"));
-    } finally {
-      IOUtils.close(connector);
-    }
-  }
-
-  @Override
-  public void setUp() throws Exception {
-    super.setUp();
-  }
-
-  @Override
-  protected final void postTearDown() throws Exception {
-    LauncherLifecycleCommands launcherLifecycleCommands = new LauncherLifecycleCommands();
-    Integer pid;
-
-    while ((pid = processIds.poll()) != null) {
-      if (launcherLifecycleCommands.isVmWithProcessIdRunning(pid)) {
-        try {
-          String killCommand = String.format("%1$s %2$d", SystemUtils.isWindows() ? "taskkill /F /PID" : "kill -9",
-              pid);
-          Runtime.getRuntime().exec(killCommand);
-        } catch (Throwable ignore) {
-        }
-      }
-    }
-  }
-
-  @SuppressWarnings("unused")
-  protected void assertStatus(final LocatorState expectedStatus, final LocatorState actualStatus) {
-    assertEquals(expectedStatus.getStatus(), actualStatus.getStatus());
-    assertEquals(expectedStatus.getTimestamp(), actualStatus.getTimestamp());
-    assertEquals(expectedStatus.getServiceLocation(), actualStatus.getServiceLocation());
-    assertTrue(ObjectUtils.equalsIgnoreNull(expectedStatus.getPid(), actualStatus.getPid()));
-    assertEquals(expectedStatus.getUptime(), actualStatus.getUptime());
-    assertEquals(expectedStatus.getWorkingDirectory(), actualStatus.getWorkingDirectory());
-    assertEquals(expectedStatus.getJvmArguments(), actualStatus.getJvmArguments());
-    assertEquals(expectedStatus.getClasspath(), actualStatus.getClasspath());
-    assertEquals(expectedStatus.getGemFireVersion(), actualStatus.getGemFireVersion());
-    assertEquals(expectedStatus.getJavaVersion(), actualStatus.getJavaVersion());
-  }
-
-  protected Integer readPid(final File workingDirectory) throws IOException {
-    assertTrue(String.format("The working directory (%1$s) must exist!", workingDirectory),
-        workingDirectory != null && workingDirectory.isDirectory());
-
-    File[] files = workingDirectory.listFiles(new FileFilter() {
-      @Override
-      public boolean accept(final File pathname) {
-        return (pathname != null && pathname.isFile() && pathname.getAbsolutePath().endsWith(".pid"));
-      }
-    });
-
-    assertNotNull(files);
-    assertTrue(files.length > 0);
-
-    File pidFile = files[0];
-
-    BufferedReader fileReader = null;
-
-    try {
-      fileReader = new BufferedReader(new FileReader(pidFile), 1024);
-      return Integer.parseInt(fileReader.readLine().trim());
-    } catch (Exception ignore) {
-      return null;
-    } finally {
-      IOUtils.close(fileReader);
-    }
-  }
-
-  protected String serviceStateStatusStringNormalized(final ServiceState serviceState) {
-    return serviceStateStatusStringNormalized(serviceState.toString());
-  }
-
-  protected String serviceStateStatusStringNormalized(final String serviceStateStatus) {
-    assertNotNull(serviceStateStatus);
-    assertTrue("serviceStateStatus is missing 'Uptime': " + serviceStateStatus, serviceStateStatus.contains("Uptime"));
-    assertTrue("serviceStateStatus is missing 'JVM Arguments': " + serviceStateStatus,
-        serviceStateStatus.contains("JVM Arguments"));
-
-    return serviceStateStatus.substring(0, serviceStateStatus.indexOf("Uptime")).concat(
-        serviceStateStatus.substring(serviceStateStatus.indexOf("JVM Arguments")));
-  }
-
-  protected Status stopLocator(final File workingDirectory) {
-    return stopLocator(IOUtils.tryGetCanonicalPathElseGetAbsolutePath(workingDirectory));
-  }
-
-  protected Status stopLocator(final String workingDirectory) {
-    return waitForGemFireProcessToStop(
-        new Builder().setCommand(Command.STOP).setWorkingDirectory(workingDirectory).build().stop(), workingDirectory);
-  }
-
-  protected Status stopServer(final File workingDirectory) {
-    return stopServer(IOUtils.tryGetCanonicalPathElseGetAbsolutePath(workingDirectory));
-  }
-
-  protected Status stopServer(final String workingDirectory) {
-    return waitForGemFireProcessToStop(
-        new ServerLauncher.Builder().setCommand(ServerLauncher.Command.STOP).setWorkingDirectory(
-            workingDirectory).build().stop(), workingDirectory);
-  }
-
-  protected String toString(final Result result) {
-    assert result != null : "The Result object from the command execution cannot be null!";
-
-    StringBuilder buffer = new StringBuilder(StringUtils.LINE_SEPARATOR);
-
-    while (result.hasNextLine()) {
-      buffer.append(result.nextLine());
-      buffer.append(StringUtils.LINE_SEPARATOR);
-    }
-
-    return buffer.toString();
-  }
-
-  protected Status waitForGemFireProcessToStop(final ServiceState serviceState, final String workingDirectory) {
-    if (!Status.STOPPED.equals(serviceState.getStatus())) {
-      try {
-        final Integer pid = readPid(new File(workingDirectory));
-
-        if (pid != null) {
-          WaitCriterion waitCriteria = new WaitCriterion() {
-            private LauncherLifecycleCommands launcherLifecycleCommands = new LauncherLifecycleCommands();
-
-            @Override
-            public boolean done() {
-              return !launcherLifecycleCommands.isVmWithProcessIdRunning(pid);
-            }
-
-            @Override
-            public String description() {
-              return String.format("Waiting for GemFire Process with PID (%1$d) to stop.", pid);
-            }
-          };
-
-          waitForCriterion(waitCriteria, TimeUnit.SECONDS.toMillis(15), TimeUnit.SECONDS.toMillis(5), false);
-
-          if (!waitCriteria.done()) {
-            processIds.offer(pid);
-          }
-        }
-      } catch (IOException ignore) {
-      }
-    }
-
-    return serviceState.getStatus();
-  }
-
-  protected void writePid(final File pidFile, final int pid) throws IOException {
-    assertTrue("The PID file must actually exist!", pidFile != null && pidFile.isFile());
-
-    FileWriter writer = null;
-
-    try {
-      writer = new FileWriter(pidFile, false);
-      writer.write(String.valueOf(pid));
-      writer.write(System.getProperty("line.separator"));
-      writer.flush();
-    } finally {
-      IOUtils.close(writer);
-    }
-  }
-
-  public void test000StartLocatorCapturesOutputOnError() throws IOException {
-    final int locatorPort = AvailablePortHelper.getRandomAvailableTCPPort();
-
-    String pathname = (getClass().getSimpleName() + "_" + getTestMethodName());
-    File workingDirectory = new File(pathname);
-
-    assertTrue(workingDirectory.isDirectory() || workingDirectory.mkdir());
-
-    File pidFile = new File(workingDirectory, ProcessType.LOCATOR.getPidFileName());
-
-    assertTrue(pidFile.createNewFile());
-
-    writePid(pidFile, getPidOrOne());
-    pidFile.deleteOnExit();
-
-    assertTrue(pidFile.isFile());
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_LOCATOR);
-
-    command.addOption(CliStrings.START_LOCATOR__MEMBER_NAME, pathname);
-    command.addOption(CliStrings.START_LOCATOR__DIR, pathname);
-    command.addOption(CliStrings.START_LOCATOR__PORT, String.valueOf(locatorPort));
-    command.addOption(CliStrings.START_LOCATOR__ENABLE__SHARED__CONFIGURATION, Boolean.FALSE.toString());
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.http-service-port=0");
-    command.addOption(CliStrings.START_LOCATOR__J,
-        "-Dgemfire.jmx-manager-port=" + AvailablePortHelper.getRandomAvailableTCPPort());
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-
-    String resultString = toString(result);
-
-    assertTrue(resultString, resultString.contains(
-        "Exception in thread \"main\" java.lang.RuntimeException: A PID file already exists and a Locator may be running in " + IOUtils.tryGetCanonicalFileElseGetAbsoluteFile(
-            workingDirectory)));
-    assertTrue(resultString, resultString.contains(
-        "Caused by: com.gemstone.gemfire.internal.process.FileAlreadyExistsException: Pid file already exists: " + IOUtils.tryGetCanonicalFileElseGetAbsoluteFile(
-            pidFile)));
-  }
-
-  /*
-   * This method makes an effort to get the PID of the running process. If it is unable to determine accurately, it
-   * simply returns 1.
-   */
-  private int getPidOrOne() {
-    int pid = 1;
-    String[] name = ManagementFactory.getRuntimeMXBean().getName().split("@");
-    if (name.length > 1) {
-      try {
-        pid = Integer.parseInt(name[0]);
-      } catch (NumberFormatException nex) {
-        // Ignored
-      }
-    }
-
-    return pid;
-  }
-
-  public void test001StartLocatorFailsFastOnMissingGemFirePropertiesFile() {
-    String gemfirePropertiesPathname = "/path/to/missing/gemfire.properties";
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_LOCATOR);
-
-    command.addOption(CliStrings.START_LOCATOR__MEMBER_NAME, getClass().getSimpleName().concat("_").concat(getTestMethodName()));
-    command.addOption(CliStrings.START_LOCATOR__PORT, "0");
-    command.addOption(CliStrings.START_LOCATOR__PROPERTIES, gemfirePropertiesPathname);
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.http-service-port=0");
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager=false");
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager-port=0");
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager-start=false");
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-
-    String resultString = toString(result);
-
-    assertTrue(resultString, resultString.contains(
-        MessageFormat.format(CliStrings.GEMFIRE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, StringUtils.EMPTY_STRING,
-            gemfirePropertiesPathname)));
-  }
-
-  public void test002StartLocatorFailsFastOnMissingGemFireSecurityPropertiesFile() {
-    String gemfireSecurityPropertiesPathname = "/path/to/missing/gemfire-security.properties";
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_LOCATOR);
-
-    command.addOption(CliStrings.START_LOCATOR__MEMBER_NAME, getClass().getSimpleName().concat("_").concat(getTestMethodName()));
-    command.addOption(CliStrings.START_LOCATOR__PORT, "0");
-    command.addOption(CliStrings.START_LOCATOR__SECURITY_PROPERTIES, gemfireSecurityPropertiesPathname);
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.http-service-port=0");
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager=false");
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager-port=0");
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager-start=false");
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-
-    String resultString = toString(result);
-
-    assertTrue(resultString, resultString.contains(
-        MessageFormat.format(CliStrings.GEMFIRE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, "Security ",
-            gemfireSecurityPropertiesPathname)));
-  }
-
-  public void test003StartServerFailsFastOnMissingCacheXmlFile() {
-    String cacheXmlPathname = "/path/to/missing/cache.xml";
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_SERVER);
-
-    command.addOption(CliStrings.START_SERVER__NAME, getClass().getSimpleName().concat("_").concat(getTestMethodName()));
-    command.addOption(CliStrings.START_SERVER__CACHE_XML_FILE, cacheXmlPathname);
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-
-    String resultString = toString(result);
-
-    assertTrue(resultString,
-        resultString.contains(MessageFormat.format(CliStrings.CACHE_XML_NOT_FOUND_MESSAGE, cacheXmlPathname)));
-  }
-
-  public void test004StartServerFailsFastOnMissingGemFirePropertiesFile() {
-    String gemfirePropertiesFile = "/path/to/missing/gemfire.properties";
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_SERVER);
-
-    command.addOption(CliStrings.START_SERVER__NAME, getClass().getSimpleName().concat("_").concat(getTestMethodName()));
-    command.addOption(CliStrings.START_SERVER__PROPERTIES, gemfirePropertiesFile);
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-
-    String resultString = toString(result);
-
-    assertTrue(resultString, resultString.contains(
-        MessageFormat.format(CliStrings.GEMFIRE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, StringUtils.EMPTY_STRING,
-            gemfirePropertiesFile)));
-  }
-
-  public void test005StartServerFailsFastOnMissingGemFireSecurityPropertiesFile() {
-    String gemfireSecuritiesPropertiesFile = "/path/to/missing/gemfire-securities.properties";
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_SERVER);
-
-    command.addOption(CliStrings.START_SERVER__NAME, getClass().getSimpleName().concat("_").concat(getTestMethodName()));
-    command.addOption(CliStrings.START_SERVER__SECURITY_PROPERTIES, gemfireSecuritiesPropertiesFile);
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-
-    String resultString = toString(result);
-
-    assertTrue(resultString, resultString.contains(
-        MessageFormat.format(CliStrings.GEMFIRE_0_PROPERTIES_1_NOT_FOUND_MESSAGE, "Security ",
-            gemfireSecuritiesPropertiesFile)));
-  }
-
-  public void test006StartLocatorInRelativeDirectory() {
-    final int locatorPort = AvailablePortHelper.getRandomAvailableTCPPort();
-
-    String pathname = (getClass().getSimpleName() + "_" + getTestMethodName());
-    File workingDirectory = new File(pathname);
-
-    assertTrue(workingDirectory.isDirectory() || workingDirectory.mkdir());
-
-    try {
-      CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_LOCATOR);
-
-      command.addOption(CliStrings.START_LOCATOR__MEMBER_NAME, pathname);
-      command.addOption(CliStrings.START_LOCATOR__CONNECT, Boolean.FALSE.toString());
-      command.addOption(CliStrings.START_LOCATOR__DIR, pathname);
-      command.addOption(CliStrings.START_LOCATOR__PORT, String.valueOf(locatorPort));
-      command.addOption(CliStrings.START_LOCATOR__ENABLE__SHARED__CONFIGURATION, Boolean.FALSE.toString());
-      command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.http-service-port=0");
-      command.addOption(CliStrings.START_LOCATOR__J,
-          "-Dgemfire.jmx-manager-port=" + AvailablePortHelper.getRandomAvailableTCPPort());
-
-      CommandResult result = executeCommand(command.toString());
-
-      assertNotNull(result);
-      assertEquals(Result.Status.OK, result.getStatus());
-
-      String locatorOutput = toString(result);
-
-      assertNotNull(locatorOutput);
-      assertTrue("Locator output was: " + locatorOutput,
-          locatorOutput.contains("Locator in " + IOUtils.tryGetCanonicalFileElseGetAbsoluteFile(workingDirectory)));
-    } finally {
-      stopLocator(workingDirectory);
-    }
-  }
-
-  public void test007StatusLocatorUsingMemberNameIDWhenGfshIsNotConnected() {
-    CommandResult result = executeCommand(CliStrings.STATUS_LOCATOR + " --name=" + getTestMethodName());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-    assertEquals(CliStrings.format(CliStrings.STATUS_SERVICE__GFSH_NOT_CONNECTED_ERROR_MESSAGE, "Locator"),
-        StringUtils.trim(toString(result)));
-  }
-
-  public void test008StatusLocatorUsingMemberName() {
-    final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
-
-    final int jmxManagerPort = ports[0];
-    final int locatorPort = ports[1];
-
-    String pathname = (getClass().getSimpleName() + "_" + getTestMethodName());
-    File workingDirectory = new File(pathname);
-
-    assertTrue(workingDirectory.isDirectory() || workingDirectory.mkdir());
-
-    try {
-      CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_LOCATOR);
-
-      command.addOption(CliStrings.START_LOCATOR__MEMBER_NAME, pathname);
-      command.addOption(CliStrings.START_LOCATOR__CONNECT, Boolean.FALSE.toString());
-      command.addOption(CliStrings.START_LOCATOR__DIR, pathname);
-      command.addOption(CliStrings.START_LOCATOR__PORT, String.valueOf(locatorPort));
-      command.addOption(CliStrings.START_LOCATOR__ENABLE__SHARED__CONFIGURATION, Boolean.FALSE.toString());
-      command.addOption(CliStrings.START_LOCATOR__FORCE, Boolean.TRUE.toString());
-      command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.http-service-port=0");
-      command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager-port=" + jmxManagerPort);
-
-      CommandResult result = executeCommand(command.toString());
-
-      assertNotNull(result);
-      assertEquals(Result.Status.OK, result.getStatus());
-
-      LocatorLauncher locatorLauncher = new LocatorLauncher.Builder().setCommand(
-          LocatorLauncher.Command.STATUS).setBindAddress(null).setPort(locatorPort).setWorkingDirectory(
-          workingDirectory.getPath()).build();
-
-      assertNotNull(locatorLauncher);
-
-      LocatorState expectedLocatorState = locatorLauncher.waitOnStatusResponse(60, 10, TimeUnit.SECONDS);
-
-      assertNotNull(expectedLocatorState);
-      assertEquals(Status.ONLINE, expectedLocatorState.getStatus());
-
-      result = executeCommand(String.format("%1$s --locator=localhost[%2$d]", CliStrings.CONNECT, locatorPort));
-
-      assertNotNull(result);
-      assertEquals(Result.Status.OK, result.getStatus());
-
-      result = executeCommand(String.format("%1$s --name=invalidLocatorMemberName", CliStrings.STATUS_LOCATOR));
-
-      assertNotNull(result);
-      assertEquals(Result.Status.ERROR, result.getStatus());
-      assertEquals(CliStrings.format(CliStrings.STATUS_LOCATOR__NO_LOCATOR_FOUND_FOR_MEMBER_ERROR_MESSAGE,
-          "invalidLocatorMemberName"), StringUtils.trim(toString(result)));
-
-      result = executeCommand(String.format("%1$s --name=%2$s", CliStrings.STATUS_LOCATOR, pathname));
-
-      assertNotNull(result);
-      assertEquals(Result.Status.OK, result.getStatus());
-      assertTrue(serviceStateStatusStringNormalized(toString(result)).contains(
-          serviceStateStatusStringNormalized(expectedLocatorState)));
-    } finally {
-      stopLocator(workingDirectory);
-    }
-  }
-
-  public void test009StatusLocatorUsingMemberId() throws Exception {
-    final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
-
-    final int jmxManagerPort = ports[0];
-    final int locatorPort = ports[1];
-
-    String pathname = (getClass().getSimpleName() + "_" + getTestMethodName());
-    File workingDirectory = new File(pathname);
-
-    assertTrue(workingDirectory.isDirectory() || workingDirectory.mkdir());
-
-    try {
-      CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_LOCATOR);
-
-      command.addOption(CliStrings.START_LOCATOR__MEMBER_NAME, pathname);
-      command.addOption(CliStrings.START_LOCATOR__CONNECT, Boolean.FALSE.toString());
-      command.addOption(CliStrings.START_LOCATOR__DIR, pathname);
-      command.addOption(CliStrings.START_LOCATOR__PORT, String.valueOf(locatorPort));
-      command.addOption(CliStrings.START_LOCATOR__ENABLE__SHARED__CONFIGURATION, Boolean.FALSE.toString());
-      command.addOption(CliStrings.START_LOCATOR__FORCE, Boolean.TRUE.toString());
-      command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.http-service-port=0");
-      command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager-port=" + jmxManagerPort);
-
-      CommandResult result = executeCommand(command.toString());
-
-      assertNotNull(result);
-      assertEquals(Result.Status.OK, result.getStatus());
-
-      LocatorLauncher locatorLauncher = new LocatorLauncher.Builder().setCommand(
-          LocatorLauncher.Command.STATUS).setBindAddress(null).setPort(locatorPort).setWorkingDirectory(
-          workingDirectory.getPath()).build();
-
-      assertNotNull(locatorLauncher);
-
-      LocatorState expectedLocatorState = locatorLauncher.waitOnStatusResponse(60, 10, TimeUnit.SECONDS);
-
-      assertNotNull(expectedLocatorState);
-      assertEquals(Status.ONLINE, expectedLocatorState.getStatus());
-
-      result = executeCommand(String.format("%1$s --locator=localhost[%2$d]", CliStrings.CONNECT, locatorPort));
-
-      assertNotNull(result);
-      assertEquals(Result.Status.OK, result.getStatus());
-
-      result = executeCommand(
-          String.format("%1$s --name=%2$s", CliStrings.STATUS_LOCATOR, getMemberId(jmxManagerPort, pathname)));
-
-      assertNotNull(result);
-      assertEquals(Result.Status.OK, result.getStatus());
-      assertTrue(serviceStateStatusStringNormalized(toString(result)).contains(
-          serviceStateStatusStringNormalized(expectedLocatorState)));
-    } finally {
-      stopLocator(workingDirectory);
-    }
-  }
-
-  public void test010StopLocatorUsingMemberNameIDWhenGfshIsNotConnected() {
-    CommandResult result = executeCommand(CliStrings.STOP_LOCATOR + " --name=" + getTestMethodName());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-    assertEquals(CliStrings.format(CliStrings.STOP_SERVICE__GFSH_NOT_CONNECTED_ERROR_MESSAGE, "Locator"),
-        StringUtils.trim(toString(result)));
-  }
-
-  public void test011StopLocatorUsingMemberName() {
-    final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
-
-    final int jmxManagerPort = ports[0];
-    final int locatorPort = ports[1];
-
-    String pathname = (getClass().getSimpleName() + "_" + getTestMethodName());
-    File workingDirectory = new File(pathname);
-
-    assertTrue(workingDirectory.isDirectory() || workingDirectory.mkdir());
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_LOCATOR);
-
-    command.addOption(CliStrings.START_LOCATOR__MEMBER_NAME, pathname);
-    command.addOption(CliStrings.START_LOCATOR__CONNECT, Boolean.FALSE.toString());
-    command.addOption(CliStrings.START_LOCATOR__DIR, pathname);
-    command.addOption(CliStrings.START_LOCATOR__PORT, String.valueOf(locatorPort));
-    command.addOption(CliStrings.START_LOCATOR__ENABLE__SHARED__CONFIGURATION, Boolean.FALSE.toString());
-    command.addOption(CliStrings.START_LOCATOR__FORCE, Boolean.TRUE.toString());
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.http-service-port=0");
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager-port=" + jmxManagerPort);
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.OK, result.getStatus());
-
-    final LocatorLauncher locatorLauncher = new LocatorLauncher.Builder().setCommand(
-        LocatorLauncher.Command.STOP).setBindAddress(null).setPort(locatorPort).setWorkingDirectory(
-        workingDirectory.getPath()).build();
-
-    assertNotNull(locatorLauncher);
-
-    LocatorState locatorStatus = locatorLauncher.waitOnStatusResponse(60, 10, TimeUnit.SECONDS);
-
-    assertNotNull(locatorStatus);
-    assertEquals(Status.ONLINE, locatorStatus.getStatus());
-
-    result = executeCommand(String.format("%1$s --locator=localhost[%2$d]", CliStrings.CONNECT, locatorPort));
-
-    assertNotNull(result);
-    assertEquals(Result.Status.OK, result.getStatus());
-
-    result = executeCommand(String.format("%1$s --name=invalidLocatorMemberName", CliStrings.STOP_LOCATOR));
-
-    assertNotNull(result);
-    assertEquals(Result.Status.ERROR, result.getStatus());
-    assertEquals(CliStrings.format(CliStrings.STOP_LOCATOR__NO_LOCATOR_FOUND_FOR_MEMBER_ERROR_MESSAGE,
-        "invalidLocatorMemberName"), StringUtils.trim(toString(result)));
-
-    locatorStatus = locatorLauncher.status();
-
-    assertNotNull(locatorStatus);
-    assertEquals(Status.ONLINE, locatorStatus.getStatus());
-
-    result = executeCommand(String.format("%1$s --name=%2$s", CliStrings.STOP_LOCATOR, pathname));
-
-    assertNotNull(result);
-    assertEquals(Result.Status.OK, result.getStatus());
-
-    // TODO figure out what output to assert and validate on now that 'stop locator' uses Gfsh's logger
-    // and standard err/out...
-    //assertEquals(CliStrings.format(CliStrings.STOP_LOCATOR__SHUTDOWN_MEMBER_MESSAGE, pathname),
-    //  StringUtils.trim(toString(result)));
-
-    WaitCriterion waitCriteria = new WaitCriterion() {
-      @Override
-      public boolean done() {
-        final LocatorState locatorStatus = locatorLauncher.status();
-        return (locatorStatus != null && Status.NOT_RESPONDING.equals(locatorStatus.getStatus()));
-      }
-
-      @Override
-      public String description() {
-        return "wait for the Locator to stop; the Locator will no longer respond after it stops";
-      }
-    };
-
-    waitForCriterion(waitCriteria, 15 * 1000, 5000, true);
-
-    locatorStatus = locatorLauncher.status();
-
-    assertNotNull(locatorStatus);
-    assertEquals(Status.NOT_RESPONDING, locatorStatus.getStatus());
-  }
-
-  // @see Trac Bug # 46760
-  public void test012StopLocatorUsingMemberId() throws Exception {
-    final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
-
-    final int jmxManagerPort = ports[0];
-    final int locatorPort = ports[1];
-
-    String pathname = (getClass().getSimpleName() + "_" + getTestMethodName());
-    File workingDirectory = new File(pathname);
-
-    assertTrue(workingDirectory.isDirectory() || workingDirectory.mkdir());
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_LOCATOR);
-
-    command.addOption(CliStrings.START_LOCATOR__MEMBER_NAME, pathname);
-    command.addOption(CliStrings.START_LOCATOR__CONNECT, Boolean.FALSE.toString());
-    command.addOption(CliStrings.START_LOCATOR__DIR, pathname);
-    command.addOption(CliStrings.START_LOCATOR__PORT, String.valueOf(locatorPort));
-    command.addOption(CliStrings.START_LOCATOR__ENABLE__SHARED__CONFIGURATION, Boolean.FALSE.toString());
-    command.addOption(CliStrings.START_LOCATOR__FORCE, Boolean.TRUE.toString());
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.http-service-port=0");
-    command.addOption(CliStrings.START_LOCATOR__J, "-Dgemfire.jmx-manager-port=" + jmxManagerPort);
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.OK, result.getStatus());
-
-    final LocatorLauncher locatorLauncher = new LocatorLauncher.Builder().setCommand(
-        LocatorLauncher.Command.STOP).setBindAddress(null).setPort(locatorPort).setWorkingDirectory(
-        workingDirectory.getPath()).build();
-
-    assertNotNull(locatorLauncher);
-
-    LocatorState locatorState = locatorLauncher.waitOnStatusResponse(60, 10, TimeUnit.SECONDS);
-
-    assertNotNull(locatorState);
-    assertEquals(Status.ONLINE, locatorState.getStatus());
-
-    result = executeCommand(String.format("%1$s --locator=localhost[%2$d]", CliStrings.CONNECT, locatorPort));
-
-    assertNotNull(result);
-    assertEquals(Result.Status.OK, result.getStatus());
-
-    String memberId = getMemberId(jmxManagerPort, pathname);
-
-    result = executeCommand(String.format("%1$s --name=%2$s", CliStrings.STOP_LOCATOR, memberId));
-
-    assertNotNull(result);
-    assertEquals(Result.Status.OK, result.getStatus());
-
-    // TODO figure out what output to assert and validate on now that 'stop locator' uses Gfsh's logger
-    // and standard err/out...
-    //assertEquals(CliStrings.format(CliStrings.STOP_LOCATOR__SHUTDOWN_MEMBER_MESSAGE, memberId),
-    //  StringUtils.trim(toString(result)));
-
-    WaitCriterion waitCriteria = new WaitCriterion() {
-      @Override
-      public boolean done() {
-        LocatorState locatorState = locatorLauncher.status();
-        return (locatorState != null && Status.NOT_RESPONDING.equals(locatorState.getStatus()));
-      }
-
-      @Override
-      public String description() {
-        return "wait for the Locator to stop; the Locator will no longer respond after it stops";
-      }
-    };
-
-    waitForCriterion(waitCriteria, 15 * 1000, 5000, true);
-
-    locatorState = locatorLauncher.status();
-
-    assertNotNull(locatorState);
-    assertEquals(Status.NOT_RESPONDING, locatorState.getStatus());
-  }
-
-  public void test013StartServerWithSpring() {
-    String pathname = (getClass().getSimpleName() + "_" + getTestMethodName());
-    File workingDirectory = new File(pathname);
-
-    assertTrue(workingDirectory.isDirectory() || workingDirectory.mkdir());
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_SERVER);
-
-    command.addOption(CliStrings.START_SERVER__NAME, getClass().getSimpleName().concat("_").concat(getTestMethodName()));
-    command.addOption(CliStrings.START_SERVER__USE_CLUSTER_CONFIGURATION, Boolean.FALSE.toString());
-    command.addOption(CliStrings.START_SERVER__LOG_LEVEL, "config");
-    command.addOption(CliStrings.START_SERVER__INCLUDE_SYSTEM_CLASSPATH);
-    command.addOption(CliStrings.START_SERVER__DISABLE_DEFAULT_SERVER);
-    command.addOption(CliStrings.START_SERVER__DIR, pathname);
-    command.addOption(CliStrings.START_SERVER__SPRING_XML_LOCATION, "spring/spring-gemfire-context.xml");
-
-    CommandResult result = executeCommand(command.toString());
-
-    assertNotNull(result);
-    assertEquals(Result.Status.OK, result.getStatus());
-
-    final ServerLauncher springGemFireServer = new ServerLauncher.Builder().setCommand(
-        ServerLauncher.Command.STATUS).setWorkingDirectory(
-        IOUtils.tryGetCanonicalPathElseGetAbsolutePath(workingDirectory)).build();
-
-    assertNotNull(springGemFireServer);
-
-    ServerState serverState = springGemFireServer.status();
-
-    assertNotNull(serverState);
-    assertEquals(Status.ONLINE, serverState.getStatus());
-
-    // Now that the GemFire Server bootstrapped with Spring started up OK, stop it!
-    stopServer(springGemFireServer.getWorkingDirectory());
-
-    WaitCriterion waitCriteria = new WaitCriterion() {
-      @Override
-      public boolean done() {
-        ServerState serverState = springGemFireServer.status();
-        return (serverState != null && Status.NOT_RESPONDING.equals(serverState.getStatus()));
-      }
-
-      @Override
-      public String description() {
-        return "wait for the Locator to stop; the Locator will no longer respond after it stops";
-      }
-    };
-
-    waitForCriterion(waitCriteria, TimeUnit.SECONDS.toMillis(15), TimeUnit.SECONDS.toMillis(5), true);
-
-    serverState = springGemFireServer.status();
-
-    assertNotNull(serverState);
-    assertEquals(Status.NOT_RESPONDING, serverState.getStatus());
-  }
-
-  public void test014GemFireServerJvmProcessTerminatesOnOutOfMemoryError() throws Exception {
-    int ports[] = AvailablePortHelper.getRandomAvailableTCPPorts(2);
-    final int serverPort = ports[0];
-    final int locatorPort = ports[1];
-
-    String pathname = getClass().getSimpleName().concat("_").concat(getTestMethodName());
-    File workingDirectory = new File(pathname);
-
-    assertTrue(workingDirectory.isDirectory() || workingDirectory.mkdir());
-
-    CommandStringBuilder command = new CommandStringBuilder(CliStrings.START_SERVER);
-
-    command.addOption(CliStrings.START_SERVER__NAME, pathname + TIMESTAMP.format(Calendar.getInstance().getTime()));
-    command.addOption(CliStrings.START_SERVER__SERVER_PORT, String.valueOf(serverPort));
-    command.addOption(CliStrings.START_SERVER__USE_CLUSTER_CONFIGURATION, Boolean.FALSE.toString());
-    command.addOption(CliStrings.START_SERVER__MAXHEAP, "10M");
-    command.addOption(CliStrings.START_SERVER__LOG_LEVEL, "config");
-    command.addOption(CliStrings.START_SERVER__DIR, pathname);
-    command.addOption(CliStrings.START_SERVER__CACHE_XML_FILE,
-        IOUtils.tryGetCanonicalPathElseGetAbsolutePath(writeAndGetCacheXmlFile(workingDirectory)));
-    command.addOption(CliStrings.START_SERVER__INCLUDE_SYSTEM_CLASSPATH);
-    command.addOption(CliStrings.START_SERVER__J,
-        "-Dgemfire." + DistributionConfig.START_LOCATOR_NAME + "=localhost[" + locatorPort + "]");
-
-
-    CommandResult result = executeCommand(command.toString());
-    System.out.println("result=" + result);
-
-    assertNotNull(result);
-    assertEquals(Result.Status.OK, result.getStatus());
-
-    ServerLauncher serverLauncher = new ServerLauncher.Builder().setCommand(
-        ServerLauncher.Command.STATUS).setWorkingDirectory(
-        IOUtils.tryGetCanonicalPathElseGetAbsolutePath(workingDirectory)).build();
-
-    assertNotNull(serverLauncher);
-
-    ServerState serverState = serverLauncher.status();
-
-    assertNotNull(serverState);
-    assertEquals(Status.ONLINE, serverState.getStatus());
-
-    // Verify our GemFire Server JVM process is running!
-    assertTrue(new LauncherLifecycleCommands().isVmWithProcessIdRunning(serverState.getPid()));
-
-    ClientCache clientCache = setupClientCache(pathname + String.valueOf(serverPort), serverPort);
-
-    assertNotNull(clientCache);
-
-    try {
-      Region<Long, String> exampleRegion = clientCache.getRegion("/Example");
-      // run the GemFire Server "out-of-town" with an OutOfMemoryError!
-      for (long index = 0; index < Long.MAX_VALUE; index++) {
-        exampleRegion.put(index, String.valueOf(index));
-      }
-    } catch (Exception ignore) {
-      System.err.printf("%1$s: %2$s%n", ignore.getClass().getName(), ignore.getMessage());
-    } finally {
-      clientCache.close();
-
-      final int serverPid = serverState.getPid();
-
-      WaitCriterion waitCriteria = new WaitCriterion() {
-        private LauncherLifecycleCommands launcherLifecycleCommands = new LauncherLifecycleCommands();
-
-        @Override
-        public boolean done() {
-          return !launcherLifecycleCommands.isVmWithProcessIdRunning(serverPid);
-        }
-
-        @Override
-        public String description() {
-          return "Wait for the GemFire Server JVM process that ran out-of-memory to exit.";
-        }
-      };
-
-      waitForCriterion(waitCriteria, TimeUnit.SECONDS.toMillis(30), TimeUnit.SECONDS.toMillis(10), true);
-
-      // Verify our GemFire Server JVM process is was terminated!
-      assertFalse(new LauncherLifecycleCommands().isVmWithProcessIdRunning(serverState.getPid()));
-
-      serverState = serverLauncher.status();
-
-      assertNotNull(serverState);
-      assertEquals(Status.NOT_RESPONDING, serverState.getStatus());
-    }
-  }
-
-  private File writeAndGetCacheXmlFile(final File workingDirectory) throws IOException {
-    File cacheXml = new File(workingDirectory, "cache.xml");
-    StringBuilder buffer = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
-
-    buffer.append(StringUtils.LINE_SEPARATOR);
-    buffer.append("<!DOCTYPE cache PUBLIC  \"-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN\"");
-    buffer.append(StringUtils.LINE_SEPARATOR);
-    buffer.append("  \"http://www.gemstone.com/dtd/cache7_0.dtd\">");
-    buffer.append(StringUtils.LINE_SEPARATOR);
-    buffer.append("<cache>");
-    buffer.append(StringUtils.LINE_SEPARATOR);
-    buffer.append("  <region name=\"Example\" refid=\"REPLICATE\"/>");
-    buffer.append(StringUtils.LINE_SEPARATOR);
-    buffer.append("</cache>");
-
-    BufferedWriter fileWriter = null;
-
-    try {
-      fileWriter = new BufferedWriter(
-          new OutputStreamWriter(new FileOutputStream(cacheXml, false), Charset.forName("UTF-8").newEncoder()));
-      fileWriter.write(buffer.toString());
-      fileWriter.flush();
-    } finally {
-      IOUtils.close(fileWriter);
-    }
-
-    return cacheXml;
-  }
-
-  private ClientCache setupClientCache(final String durableClientId, final int serverPort) {
-    ClientCache clientCache = new ClientCacheFactory().set("durable-client-id", durableClientId).create();
-
-    PoolFactory poolFactory = PoolManager.createFactory();
-
-    poolFactory.setMaxConnections(10);
-    poolFactory.setMinConnections(1);
-    poolFactory.setReadTimeout(5000);
-    poolFactory.addServer("localhost", serverPort);
-
-    Pool pool = poolFactory.create("serverConnectionPool");
-
-    assertNotNull("The 'serverConnectionPool' was not properly configured and initialized!", pool);
-
-    ClientRegionFactory<Long, String> regionFactory = clientCache.createClientRegionFactory(ClientRegionShortcut.PROXY);
-
-    regionFactory.setPoolName(pool.getName());
-    regionFactory.setKeyConstraint(Long.class);
-    regionFactory.setValueConstraint(String.class);
-
-    Region<Long, String> exampleProxy = regionFactory.create("Example");
-
-    assertNotNull("The 'Example' Client Region was not properly configured and initialized", exampleProxy);
-
-    return clientCache;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java b/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java
deleted file mode 100755
index 7d7b0d2..0000000
--- a/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/cli/commands/LauncherLifecycleCommandsJUnitTest.java
+++ /dev/null
@@ -1,625 +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.management.internal.cli.commands;
-
-import com.gemstone.gemfire.GemFireException;
-import com.gemstone.gemfire.cache.server.CacheServer;
-import com.gemstone.gemfire.distributed.ServerLauncher;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.DistributionLocator;
-import com.gemstone.gemfire.internal.lang.StringUtils;
-import com.gemstone.gemfire.internal.lang.SystemUtils;
-import com.gemstone.gemfire.internal.util.IOUtils;
-import com.gemstone.gemfire.management.internal.cli.i18n.CliStrings;
-import com.gemstone.gemfire.test.junit.categories.UnitTest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Stack;
-import java.util.jar.Attributes;
-import java.util.jar.Attributes.Name;
-import java.util.jar.JarFile;
-import java.util.jar.Manifest;
-
-import static org.junit.Assert.*;
-
-/**
- * The LauncherLifecycleCommandsJUnitTest class is a test suite of test cases testing the contract and functionality of
- * the lifecycle launcher GemFire shell (Gfsh) commands.
- *
- * @author John Blum
- * @see com.gemstone.gemfire.management.internal.cli.commands.LauncherLifecycleCommands
- * @see org.junit.Assert
- * @see org.junit.Test
- * @since 7.0
- */
-@SuppressWarnings("unused")
-@Category(UnitTest.class)
-public class LauncherLifecycleCommandsJUnitTest {
-
-  private static final String GFSH_DEPENDENCIES_JAR_PATHNAME = IOUtils.appendToPath(System.getenv("GEMFIRE"), "lib",
-      "gfsh-dependencies.jar");
-
-  private LauncherLifecycleCommands launcherCommands;
-
-  @Before
-  public void setup() {
-    launcherCommands = new LauncherLifecycleCommands();
-  }
-
-  @After
-  public void tearDown() {
-    launcherCommands = null;
-  }
-
-  protected LauncherLifecycleCommands getLauncherLifecycleCommands() {
-    return launcherCommands;
-  }
-
-  protected void writePid(final File pidFile, final int pid) throws IOException {
-    final FileWriter fileWriter = new FileWriter(pidFile, false);
-    fileWriter.write(String.valueOf(pid));
-    fileWriter.write("\n");
-    fileWriter.flush();
-    IOUtils.close(fileWriter);
-  }
-
-  @Test
-  public void testAddGemFirePropertyFileToCommandLine() {
-    final List<String> commandLine = new ArrayList<>();
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addGemFirePropertyFile(commandLine, null);
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addGemFirePropertyFile(commandLine, StringUtils.EMPTY_STRING);
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addGemFirePropertyFile(commandLine, " ");
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addGemFirePropertyFile(commandLine, "/path/to/gemfire.properties");
-
-    assertFalse(commandLine.isEmpty());
-    assertTrue(commandLine.contains("-DgemfirePropertyFile=/path/to/gemfire.properties"));
-  }
-
-  @Test
-  public void testAddGemFireSystemPropertiesToCommandLine() {
-    final List<String> commandLine = new ArrayList<>();
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addGemFireSystemProperties(commandLine, new Properties());
-
-    assertTrue(commandLine.isEmpty());
-
-    final Properties gemfireProperties = new Properties();
-
-    gemfireProperties.setProperty(DistributionConfig.LOCATORS_NAME, "localhost[11235]");
-    gemfireProperties.setProperty(DistributionConfig.LOG_LEVEL_NAME, "config");
-    gemfireProperties.setProperty(DistributionConfig.LOG_FILE_NAME, StringUtils.EMPTY_STRING);
-    gemfireProperties.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
-    gemfireProperties.setProperty(DistributionConfig.NAME_NAME, "tidepool");
-
-    getLauncherLifecycleCommands().addGemFireSystemProperties(commandLine, gemfireProperties);
-
-    assertFalse(commandLine.isEmpty());
-    assertEquals(4, commandLine.size());
-
-    for (final String propertyName : gemfireProperties.stringPropertyNames()) {
-      final String propertyValue = gemfireProperties.getProperty(propertyName);
-      if (StringUtils.isBlank(propertyValue)) {
-        for (final String systemProperty : commandLine) {
-          assertFalse(systemProperty.startsWith("-Dgemfire.".concat(propertyName).concat("=")));
-        }
-      } else {
-        assertTrue(commandLine.contains("-Dgemfire.".concat(propertyName).concat("=").concat(propertyValue)));
-      }
-    }
-  }
-
-  @Test
-  public void testAddInitialHeapToCommandLine() {
-    final List<String> commandLine = new ArrayList<>();
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addInitialHeap(commandLine, null);
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addInitialHeap(commandLine, StringUtils.EMPTY_STRING);
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addInitialHeap(commandLine, " ");
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addInitialHeap(commandLine, "512M");
-
-    assertFalse(commandLine.isEmpty());
-    assertEquals("-Xms512M", commandLine.get(0));
-  }
-
-  @Test
-  public void testAddJvmArgumentsAndOptionsToCommandLine() {
-    final List<String> commandLine = new ArrayList<>();
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addJvmArgumentsAndOptions(commandLine, null);
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addJvmArgumentsAndOptions(commandLine, new String[]{});
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addJvmArgumentsAndOptions(commandLine,
-        new String[]{"-DmyProp=myVal", "-d64", "-server", "-Xprof"});
-
-    assertFalse(commandLine.isEmpty());
-    assertEquals(4, commandLine.size());
-    assertEquals("-DmyProp=myVal", commandLine.get(0));
-    assertEquals("-d64", commandLine.get(1));
-    assertEquals("-server", commandLine.get(2));
-    assertEquals("-Xprof", commandLine.get(3));
-  }
-
-  // Fix for Bug #47192 - "Making GemFire (JVM) to exit in case of OutOfMemory"
-  @Test
-  public void testAddJvmOptionsForOutOfMemoryErrors() {
-    final List<String> jvmOptions = new ArrayList<>(1);
-
-    getLauncherLifecycleCommands().addJvmOptionsForOutOfMemoryErrors(jvmOptions);
-
-    if (SystemUtils.isHotSpotVM()) {
-      if (SystemUtils.isWindows()) {
-        assertTrue(jvmOptions.contains("-XX:OnOutOfMemoryError=taskkill /F /PID %p"));
-      } else {
-        assertTrue(jvmOptions.contains("-XX:OnOutOfMemoryError=kill -KILL %p"));
-      }
-    } else if (SystemUtils.isJ9VM()) {
-      assertEquals(1, jvmOptions.size());
-      assertTrue(jvmOptions.contains("-Xcheck:memory"));
-    } else if (SystemUtils.isJRockitVM()) {
-      assertEquals(1, jvmOptions.size());
-      assertTrue(jvmOptions.contains("-XXexitOnOutOfMemory"));
-    } else {
-      assertTrue(jvmOptions.isEmpty());
-    }
-  }
-
-  @Test
-  public void testAddMaxHeapToCommandLine() {
-    final List<String> commandLine = new ArrayList<>();
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addMaxHeap(commandLine, null);
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addMaxHeap(commandLine, StringUtils.EMPTY_STRING);
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addMaxHeap(commandLine, "  ");
-
-    assertTrue(commandLine.isEmpty());
-
-    getLauncherLifecycleCommands().addMaxHeap(commandLine, "1024M");
-
-    assertFalse(commandLine.isEmpty());
-    assertEquals(3, commandLine.size());
-    assertEquals("-Xmx1024M", commandLine.get(0));
-    assertEquals("-XX:+UseConcMarkSweepGC", commandLine.get(1));
-    assertEquals("-XX:CMSInitiatingOccupancyFraction=" + LauncherLifecycleCommands.CMS_INITIAL_OCCUPANCY_FRACTION,
-        commandLine.get(2));
-  }
-
-  @Test(expected = AssertionError.class)
-  public void testReadPidWithNull() {
-    try {
-      getLauncherLifecycleCommands().readPid(null);
-    } catch (AssertionError expected) {
-      assertEquals("The file from which to read the process ID (pid) cannot be null!", expected.getMessage());
-      throw expected;
-    }
-  }
-
-  @Test
-  public void testReadPidWithNonExistingFile() {
-    assertEquals(LauncherLifecycleCommands.INVALID_PID,
-        getLauncherLifecycleCommands().readPid(new File("/path/to/non_existing/pid.file")));
-  }
-
-  @Test
-  public void testReadPid() throws IOException {
-    final int expectedPid = 12345;
-
-    File pidFile = new File(getClass().getSimpleName().concat("_testReadPid.pid"));
-
-    assertTrue(pidFile.createNewFile());
-
-    pidFile.deleteOnExit();
-    writePid(pidFile, expectedPid);
-
-    final int actualPid = getLauncherLifecycleCommands().readPid(pidFile);
-
-    assertEquals(expectedPid, actualPid);
-  }
-
-  @Test
-  @SuppressWarnings("deprecation")
-  public void testGetClasspath() {
-    assertEquals(System.getProperty("java.class.path"), getLauncherLifecycleCommands().getClasspath(null));
-  }
-
-  @Test
-  @SuppressWarnings("deprecation")
-  public void testGetClasspathWithUserDefinedClasspath() {
-    assertEquals(System.getProperty("java.class.path") + File.pathSeparator + "/path/to/user/classes",
-        getLauncherLifecycleCommands().getClasspath("/path/to/user/classes"));
-  }
-
-  @Test
-  public void testGemFireCoreClasspath() throws IOException {
-    File coreDependenciesJar = new File(LauncherLifecycleCommands.CORE_DEPENDENCIES_JAR_PATHNAME);
-
-    assertNotNull(coreDependenciesJar);
-    assertTrue(coreDependenciesJar + " is not a file", coreDependenciesJar.isFile());
-
-    Collection<String> expectedJarDependencies = Arrays.asList("antlr", "commons-io", "commons-lang", "commons-logging",
-        "gemfire", "jackson-annotations", "jackson-core", "jackson-databind", "jansi", "jline", "snappy-java",
-        "spring-core", "spring-shell", "jetty-server", "jetty-servlet", "jetty-webapp", "jetty-util", "jetty-http",
-        "servlet-api", "jetty-io", "jetty-security", "jetty-xml"
-
-    );
-
-    assertJarFileManifestClassPath(coreDependenciesJar, expectedJarDependencies);
-  }
-
-  @Test
-  public void testGetSpringJars() {
-    List<String> actualSpringJarPathnames = new LauncherLifecycleCommands().getSpringJars();
-
-    assertNotNull(actualSpringJarPathnames);
-    assertEquals(LauncherLifecycleCommands.SPRING_JAR_NAME_PREFIXES.size(), actualSpringJarPathnames.size());
-
-    int springCoreVersion = -1;
-    int springDataCommonsVersion = -1;
-    int springDataGemFireVersion = -1;
-
-    Set<String> expectedSpringJarNames = new HashSet<>(LauncherLifecycleCommands.SPRING_JAR_NAME_PREFIXES);
-
-    assertFalse(expectedSpringJarNames.isEmpty());
-
-    for (String springJarPathname : actualSpringJarPathnames) {
-      String springJarName = springJarPathname.substring(springJarPathname.lastIndexOf(File.separator) + 1);
-      String springJarNamePrefix = springJarName.substring(0, springJarName.lastIndexOf("-"));
-
-      switch (springJarNamePrefix) {
-        case LauncherLifecycleCommands.SPRING_BEANS_JAR_NAME_PREFIX:
-          springCoreVersion = Integer.parseInt(StringUtils.getDigitsOnly(springJarName));
-          break;
-        case LauncherLifecycleCommands.SPRING_DATA_COMMONS_JAR_NAME_PREFIX:
-          springDataCommonsVersion = Integer.parseInt(StringUtils.getDigitsOnly(springJarName));
-          break;
-        case LauncherLifecycleCommands.SPRING_DATA_GEMFIRE_JAR_NAME_PREFIX:
-          springDataGemFireVersion = Integer.parseInt(StringUtils.getDigitsOnly(springJarName));
-          break;
-      }
-
-      expectedSpringJarNames.remove(springJarNamePrefix);
-    }
-
-    assertTrue(String.format("Expected empty; but was (%1$s)", expectedSpringJarNames),
-        expectedSpringJarNames.isEmpty());
-    assertEquals(424, springCoreVersion);
-    assertEquals(191, springDataCommonsVersion);
-    assertEquals(172, springDataGemFireVersion);
-  }
-
-  @Test
-  public void testGetSystemClasspath() {
-    assertEquals(System.getProperty("java.class.path"), getLauncherLifecycleCommands().getSystemClasspath());
-  }
-
-  @Test
-  public void testLocatorClasspathOrder() {
-    String userClasspath = "/path/to/user/lib/app.jar:/path/to/user/classes";
-
-    String expectedClasspath = launcherCommands.getGemFireJarPath().concat(File.pathSeparator).concat(
-        userClasspath).concat(File.pathSeparator).concat(System.getProperty("java.class.path")).concat(
-        File.pathSeparator).concat(LauncherLifecycleCommands.CORE_DEPENDENCIES_JAR_PATHNAME);
-
-    String actualClasspath = launcherCommands.getLocatorClasspath(true, userClasspath);
-
-    assertEquals(expectedClasspath, actualClasspath);
-  }
-
-  @Test
-  public void testServerClasspathOrder() {
-    String userClasspath = "/path/to/user/lib/app.jar:/path/to/user/classes";
-
-    String expectedClasspath = launcherCommands.getGemFireJarPath().concat(File.pathSeparator).concat(
-        userClasspath).concat(File.pathSeparator).concat(
-        LauncherLifecycleCommands.CORE_DEPENDENCIES_JAR_PATHNAME).concat(File.pathSeparator).concat(
-        toPath(launcherCommands.getSpringJars().toArray()));
-
-    String actualClasspath = launcherCommands.getServerClasspath(false, true, userClasspath);
-
-    assertEquals(expectedClasspath, actualClasspath);
-  }
-
-  private String toPath(Object... pathElements) {
-    String path = "";
-
-    for (Object pathElement : pathElements) {
-      path += (path.isEmpty() ? StringUtils.EMPTY_STRING : File.pathSeparator);
-      path += pathElement;
-    }
-
-    return path;
-  }
-
-  @Test
-  public void testToClasspath() {
-    final boolean EXCLUDE_SYSTEM_CLASSPATH = false;
-    final boolean INCLUDE_SYSTEM_CLASSPATH = true;
-
-    String[] jarFilePathnames = {"/path/to/user/libs/A.jar", "/path/to/user/libs/B.jar", "/path/to/user/libs/C.jar"};
-
-    String[] userClasspaths = {"/path/to/classes:/path/to/libs/1.jar:/path/to/libs/2.jar", "/path/to/ext/libs/1.jar:/path/to/ext/classes:/path/to/ext/lib/10.jar"};
-
-    String expectedClasspath = LauncherLifecycleCommands.GEMFIRE_JAR_PATHNAME.concat(File.pathSeparator).concat(
-        toClasspath(userClasspaths)).concat(File.pathSeparator).concat(toClasspath(jarFilePathnames));
-
-    assertEquals(expectedClasspath,
-        getLauncherLifecycleCommands().toClasspath(EXCLUDE_SYSTEM_CLASSPATH, jarFilePathnames, userClasspaths));
-
-    expectedClasspath = LauncherLifecycleCommands.GEMFIRE_JAR_PATHNAME.concat(File.pathSeparator).concat(
-        toClasspath(userClasspaths)).concat(File.pathSeparator).concat(System.getProperty("java.class.path")).concat(
-        File.pathSeparator).concat(toClasspath(jarFilePathnames));
-
-    assertEquals(expectedClasspath,
-        getLauncherLifecycleCommands().toClasspath(INCLUDE_SYSTEM_CLASSPATH, jarFilePathnames, userClasspaths));
-
-    expectedClasspath = LauncherLifecycleCommands.GEMFIRE_JAR_PATHNAME.concat(File.pathSeparator).concat(
-        System.getProperty("java.class.path"));
-
-    assertEquals(expectedClasspath,
-        getLauncherLifecycleCommands().toClasspath(INCLUDE_SYSTEM_CLASSPATH, null, (String[]) null));
-
-    assertEquals(LauncherLifecycleCommands.GEMFIRE_JAR_PATHNAME,
-        getLauncherLifecycleCommands().toClasspath(EXCLUDE_SYSTEM_CLASSPATH, null, (String[]) null));
-
-    assertEquals(LauncherLifecycleCommands.GEMFIRE_JAR_PATHNAME,
-        getLauncherLifecycleCommands().toClasspath(EXCLUDE_SYSTEM_CLASSPATH, new String[0], ""));
-  }
-
-  @Test
-  public void testToClassPathOrder() {
-    String userClasspathOne = "/path/to/user/lib/a.jar:/path/to/user/classes";
-    String userClasspathTwo = "/path/to/user/lib/x.jar:/path/to/user/lib/y.jar:/path/to/user/lib/z.jar";
-
-    String expectedClasspath = launcherCommands.getGemFireJarPath().concat(File.pathSeparator).concat(
-        userClasspathOne).concat(File.pathSeparator).concat(userClasspathTwo).concat(File.pathSeparator).concat(
-        System.getProperty("java.class.path")).concat(File.pathSeparator).concat(
-        LauncherLifecycleCommands.CORE_DEPENDENCIES_JAR_PATHNAME).concat(File.pathSeparator).concat(
-        LauncherLifecycleCommands.CORE_DEPENDENCIES_JAR_PATHNAME);
-
-    String actualClasspath = launcherCommands.toClasspath(true,
-        new String[]{LauncherLifecycleCommands.CORE_DEPENDENCIES_JAR_PATHNAME, LauncherLifecycleCommands.CORE_DEPENDENCIES_JAR_PATHNAME},
-        userClasspathOne, userClasspathTwo);
-
-    assertEquals(expectedClasspath, actualClasspath);
-  }
-
-  private void assertJarFileManifestClassPath(final File dependenciesJar,
-      final Collection<String> expectedJarDependencies) throws IOException {
-    JarFile dependenciesJarFile = new JarFile(dependenciesJar);
-    Manifest manifest = dependenciesJarFile.getManifest();
-
-    assertNotNull(manifest);
-
-    Attributes attributes = manifest.getMainAttributes();
-
-    assertNotNull(attributes);
-    assertTrue(attributes.containsKey(Name.CLASS_PATH));
-
-    String[] actualJarDependencies = attributes.getValue(Name.CLASS_PATH).split(" ");
-
-    assertNotNull(actualJarDependencies);
-    assertTrue(String.format("Expected the actual number of JAR dependencies to be (%1$d); but was (%2$d)!",
-        expectedJarDependencies.size(), actualJarDependencies.length),
-        actualJarDependencies.length >= expectedJarDependencies.size());
-    //assertTrue(Arrays.asList(actualJarDependencies).containsAll(expectedJarDependencies));
-
-    List<String> actualJarDependenciesList = new ArrayList<>(Arrays.asList(actualJarDependencies));
-    List<String> missingExpectedJarDependenciesList = new ArrayList<>(expectedJarDependencies.size());
-
-    for (String expectedJarDependency : expectedJarDependencies) {
-      boolean containsExpectedJar = false;
-
-      for (int index = 0, size = actualJarDependenciesList.size(); index < size; index++) {
-        if (actualJarDependenciesList.get(index).toLowerCase().contains(expectedJarDependency.toLowerCase())) {
-          actualJarDependenciesList.remove(index);
-          containsExpectedJar = true;
-          break;
-        }
-      }
-
-      if (!containsExpectedJar) {
-        missingExpectedJarDependenciesList.add(expectedJarDependency);
-      }
-    }
-
-    assertTrue(String.format(
-        "GemFire dependencies JAR file (%1$s) does not contain the expected dependencies (%2$s) in the Manifest Class-Path attribute (%3$s)!",
-        dependenciesJar, missingExpectedJarDependenciesList, attributes.getValue(Name.CLASS_PATH)),
-        missingExpectedJarDependenciesList.isEmpty());
-  }
-
-  private String toClasspath(final String... jarFilePathnames) {
-    String classpath = StringUtils.EMPTY_STRING;
-
-    if (jarFilePathnames != null) {
-      for (final String jarFilePathname : jarFilePathnames) {
-        classpath += (classpath.isEmpty() ? StringUtils.EMPTY_STRING : File.pathSeparator);
-        classpath += jarFilePathname;
-      }
-    }
-
-    return classpath;
-  }
-
-  @Test
-  public void testGetJavaPathname() {
-    assertEquals(IOUtils.appendToPath(System.getProperty("java.home"), "bin",
-        "java" + LauncherLifecycleCommands.getExecutableSuffix()),
-        getLauncherLifecycleCommands().getJdkToolPathname("java" + LauncherLifecycleCommands.getExecutableSuffix(),
-            new GemFireException() {
-            }));
-  }
-
-  @Test(expected = NullPointerException.class)
-  public void testGetJdkToolPathnameWithNullPathnames() {
-    try {
-      getLauncherLifecycleCommands().getJdkToolPathname((Stack<String>) null, new GemFireException() {
-      });
-    } catch (NullPointerException expected) {
-      assertEquals("The JDK tool executable pathnames cannot be null!", expected.getMessage());
-      throw expected;
-    }
-  }
-
-  @Test(expected = NullPointerException.class)
-  public void testGetJdkToolPathnameWithNullGemFireException() {
-    try {
-      getLauncherLifecycleCommands().getJdkToolPathname(new Stack<String>(), null);
-    } catch (NullPointerException expected) {
-      assertEquals("The GemFireException cannot be null!", expected.getMessage());
-      throw expected;
-    }
-  }
-
-  @Test
-  public void testGetJdkToolPathnameForNonExistingTool() {
-    try {
-      final GemFireException expected = new GemFireException() {
-        @Override
-        public String getMessage() {
-          return "expected";
-        }
-      };
-
-      getLauncherLifecycleCommands().getJdkToolPathname("nonExistingTool.exe", expected);
-    } catch (GemFireException expected) {
-      assertEquals("expected", expected.getMessage());
-    }
-  }
-
-  @Test
-  public void testGetLocatorId() {
-    assertEquals("tidepool[11235]", getLauncherLifecycleCommands().getLocatorId("tidepool", 11235));
-    assertEquals("tidepool.gemstone.com[11235]",
-        getLauncherLifecycleCommands().getLocatorId("tidepool.gemstone.com", 11235));
-    assertEquals("tidepool[" + DistributionLocator.DEFAULT_LOCATOR_PORT + "]",
-        getLauncherLifecycleCommands().getLocatorId("tidepool", null));
-  }
-
-  @Test
-  public void testGetServerId() {
-    assertEquals("tidepool[12480]", getLauncherLifecycleCommands().getServerId("tidepool", 12480));
-    assertEquals("tidepool.vmware.com[12480]",
-        getLauncherLifecycleCommands().getServerId("tidepool.vmware.com", 12480));
-    assertEquals("tidepool[" + CacheServer.DEFAULT_PORT + "]",
-        getLauncherLifecycleCommands().getServerId("tidepool", null));
-  }
-
-  @Test
-  public void testCreateJmxServerUrlWithMemberName() {
-    assertEquals("service:jmx:rmi://localhost:8192/jndi/rmi://localhost:8192/jmxrmi",
-        getLauncherLifecycleCommands().getJmxServiceUrlAsString("localhost[8192]"));
-  }
-
-  @Test(expected = IllegalArgumentException.class)
-  public void testCreateJmxServiceUrlWithInvalidMemberName() {
-    try {
-      System.err.println(getLauncherLifecycleCommands().getJmxServiceUrlAsString("memberOne[]"));
-    } catch (IllegalArgumentException expected) {
-      assertEquals(CliStrings.START_JCONSOLE__CONNECT_BY_MEMBER_NAME_ID_ERROR_MESSAGE, expected.getMessage());
-      throw expected;
-    }
-  }
-
-  @Test
-  public void testCreateServerCommandLine() throws Exception {
-    ServerLauncher serverLauncher = new ServerLauncher.Builder().setCommand(
-        ServerLauncher.Command.START).setDisableDefaultServer(true).setMemberName(
-        "testCreateServerCommandLine").setRebalance(true)
-        //.setServerBindAddress("localhost")
-        .setServerPort(41214).setCriticalHeapPercentage(95.5f).setEvictionHeapPercentage(85.0f).build();
-
-    String[] commandLineElements = launcherCommands.createStartServerCommandLine(serverLauncher, null, null,
-        new Properties(), null, false, new String[0], false, null, null);
-
-    assertNotNull(commandLineElements);
-    assertTrue(commandLineElements.length > 0);
-
-    Set<String> expectedCommandLineElements = new HashSet<>(6);
-
-    expectedCommandLineElements.add(serverLauncher.getCommand().getName());
-    expectedCommandLineElements.add("--disable-default-server");
-    expectedCommandLineElements.add(serverLauncher.getMemberName().toLowerCase());
-    expectedCommandLineElements.add("--rebalance");
-    //expectedCommandLineElements.add(String.format("--server-bind-address=%1$s", serverLauncher.getServerBindAddress().getHostName()));
-    expectedCommandLineElements.add(String.format("--server-port=%1$d", serverLauncher.getServerPort()));
-    expectedCommandLineElements.add(
-        String.format("--critical-heap-percentage=%1$s", serverLauncher.getCriticalHeapPercentage()));
-    expectedCommandLineElements.add(
-        String.format("--eviction-heap-percentage=%1$s", serverLauncher.getEvictionHeapPercentage()));
-
-    for (String commandLineElement : commandLineElements) {
-      expectedCommandLineElements.remove(commandLineElement.toLowerCase());
-    }
-
-    assertTrue(String.format("Expected ([]); but was (%1$s)", expectedCommandLineElements),
-        expectedCommandLineElements.isEmpty());
-  }
-
-}


[43/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-tomcat7/src/test/java/com/gemstone/gemfire/modules/session/Tomcat7SessionsJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-tomcat7/src/test/java/com/gemstone/gemfire/modules/session/Tomcat7SessionsJUnitTest.java b/extensions/gemfire-modules-tomcat7/src/test/java/com/gemstone/gemfire/modules/session/Tomcat7SessionsJUnitTest.java
deleted file mode 100644
index f312545..0000000
--- a/extensions/gemfire-modules-tomcat7/src/test/java/com/gemstone/gemfire/modules/session/Tomcat7SessionsJUnitTest.java
+++ /dev/null
@@ -1,35 +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;
-
-import com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager;
-import com.gemstone.gemfire.test.junit.categories.UnitTest;
-import org.junit.BeforeClass;
-import org.junit.experimental.categories.Category;
-
-/**
- * @author Jens Deppe
- */
-@Category(UnitTest.class)
-public class Tomcat7SessionsJUnitTest extends TestSessionsBase {
-
-  // Set up the session manager we need
-  @BeforeClass
-  public static void setupClass() throws Exception {
-    setupServer(new Tomcat7DeltaSessionManager());
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/conf/tomcat-users.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/conf/tomcat-users.xml b/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/conf/tomcat-users.xml
deleted file mode 100644
index 6c9f217..0000000
--- a/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/conf/tomcat-users.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<tomcat-users>
-</tomcat-users>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/logs/.gitkeep
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/logs/.gitkeep b/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/logs/.gitkeep
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/temp/.gitkeep
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/temp/.gitkeep b/extensions/gemfire-modules-tomcat7/src/test/resources/tomcat/temp/.gitkeep
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/build.gradle b/extensions/gemfire-modules/build.gradle
deleted file mode 100644
index 42eb91f..0000000
--- a/extensions/gemfire-modules/build.gradle
+++ /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.
- */
-
-test  {
-  doFirst {
-    copy {
-      from 'build/resources/test/tomcat'
-      into 'build/test/tomcat/'
-    }
-  }
-}
-
-dependencies {
-  compile project(':gemfire-core')
-
-  compile 'org.apache.tomcat:catalina:' + project.'tomcat6.version'
-  compile 'org.apache.tomcat:catalina-ha:' + project.'tomcat6.version'
-  compile 'org.apache.tomcat:juli:' + project.'tomcat6.version'
-
-  testCompile 'org.httpunit:httpunit:' + project.'httpunit.version'
-  testRuntime 'org.apache.tomcat:coyote:' + project.'tomcat6.version'
-
-  testCompile project(path: ':gemfire-junit')
-  provided project(path: ':gemfire-core', configuration: 'testOutput')
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/AbstractGatewayDeltaEvent.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/AbstractGatewayDeltaEvent.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/AbstractGatewayDeltaEvent.java
deleted file mode 100644
index 13b2e77..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/AbstractGatewayDeltaEvent.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 com.gemstone.gemfire.modules.gatewaydelta;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.Region;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-@SuppressWarnings("serial")
-public abstract class AbstractGatewayDeltaEvent implements GatewayDeltaEvent, DataSerializable {
-
-  protected String regionName;
-  protected String key;
-
-  public AbstractGatewayDeltaEvent() {
-  }
-
-  public AbstractGatewayDeltaEvent(String regionName, String key) {
-    this.regionName = regionName;
-    this.key = key;
-  }
-
-  public String getRegionName() {
-    return this.regionName;
-  }
-
-  public String getKey() {
-    return this.key;
-  }
-
-  @SuppressWarnings("unchecked")
-  public Region getRegion(Cache cache) {
-    return cache.getRegion(this.regionName);
-  }
-
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    this.regionName = DataSerializer.readString(in);
-    this.key = DataSerializer.readString(in);
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    DataSerializer.writeString(this.regionName, out);
-    DataSerializer.writeString(this.key, out);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDelta.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDelta.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDelta.java
deleted file mode 100644
index 4acad05..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDelta.java
+++ /dev/null
@@ -1,26 +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.gatewaydelta;
-
-public interface GatewayDelta {
-
-  public static final String GATEWAY_DELTA_REGION_NAME = "__gatewayDelta";
-
-  public GatewayDeltaEvent getCurrentGatewayDeltaEvent();
-
-  public void setCurrentGatewayDeltaEvent(GatewayDeltaEvent currentGatewayDeltaEvent);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaCreateEvent.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaCreateEvent.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaCreateEvent.java
deleted file mode 100644
index 3202591..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaCreateEvent.java
+++ /dev/null
@@ -1,88 +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.gatewaydelta;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.Instantiator;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.internal.cache.CachedDeserializable;
-import com.gemstone.gemfire.internal.cache.CachedDeserializableFactory;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-@SuppressWarnings("serial")
-public class GatewayDeltaCreateEvent extends AbstractGatewayDeltaEvent {
-
-  private byte[] gatewayDelta;
-
-  public GatewayDeltaCreateEvent() {
-  }
-
-  public GatewayDeltaCreateEvent(String regionName, String key, byte[] gatewayDelta) {
-    super(regionName, key);
-    this.gatewayDelta = gatewayDelta;
-  }
-
-  public byte[] getGatewayDelta() {
-    return this.gatewayDelta;
-  }
-
-  public void apply(Cache cache) {
-    Region<String, CachedDeserializable> region = getRegion(cache);
-    region.put(this.key, CachedDeserializableFactory.create(this.gatewayDelta), true);
-    if (cache.getLogger().fineEnabled()) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("Applied ").append(this);
-      cache.getLogger().fine(builder.toString());
-    }
-  }
-
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    super.fromData(in);
-    this.gatewayDelta = DataSerializer.readByteArray(in);
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    super.toData(out);
-    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=")
-        .append(this.gatewayDelta)
-        .append("]")
-        .toString();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaDestroyEvent.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
deleted file mode 100644
index 18bfe8b..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
+++ /dev/null
@@ -1,82 +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.gatewaydelta;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.Instantiator;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.EntryNotFoundException;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-@SuppressWarnings("serial")
-public class GatewayDeltaDestroyEvent extends AbstractGatewayDeltaEvent {
-
-  public GatewayDeltaDestroyEvent() {
-  }
-
-  public GatewayDeltaDestroyEvent(String regionName, String key) {
-    super(regionName, key);
-  }
-
-  public void apply(Cache cache) {
-    Region<String, DeltaSession> region = getRegion(cache);
-    try {
-      region.destroy(this.key);
-      if (cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("Applied ").append(this);
-        cache.getLogger().fine(builder.toString());
-      }
-    } catch (EntryNotFoundException e) {
-      StringBuilder builder = new StringBuilder();
-      builder.append(this).append(": Session ").append(this.key).append(" was not found");
-      cache.getLogger().warning(builder.toString());
-    }
-  }
-
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    super.fromData(in);
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    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/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEvent.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEvent.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEvent.java
deleted file mode 100644
index 672a01f..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEvent.java
+++ /dev/null
@@ -1,24 +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.gatewaydelta;
-
-import com.gemstone.gemfire.cache.Cache;
-
-public interface GatewayDeltaEvent {
-
-  public void apply(Cache cache);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEventApplicationCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEventApplicationCacheListener.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEventApplicationCacheListener.java
deleted file mode 100644
index cf9aa1a..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEventApplicationCacheListener.java
+++ /dev/null
@@ -1,67 +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.gatewaydelta;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
-import com.gemstone.gemfire.internal.cache.EntryEventImpl;
-import com.gemstone.gemfire.internal.cache.wan.GatewaySenderEventCallbackArgument;
-
-import java.util.Properties;
-
-public class GatewayDeltaEventApplicationCacheListener extends CacheListenerAdapter<String, GatewayDeltaEvent> implements Declarable {
-
-  private final Cache cache;
-
-  public GatewayDeltaEventApplicationCacheListener() {
-    this.cache = CacheFactory.getAnyInstance();
-  }
-
-  public void afterCreate(EntryEvent<String, GatewayDeltaEvent> event) {
-    System.out.println("GatewayDeltaApplierCacheListener event: " + event);
-    EntryEventImpl eventImpl = (EntryEventImpl) event;
-    if (this.cache.getLogger().fineEnabled()) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("GatewayDeltaApplierCacheListener: Received event for ")
-          .append(event.getKey())
-          .append("->")
-          .append(event.getNewValue())
-          .append(".");
-      this.cache.getLogger().fine(builder.toString());
-    }
-
-    // If the event is from a remote site, apply it to the session
-    Object callbackArgument = eventImpl.getRawCallbackArgument();
-    System.out.println("GatewayDeltaApplierCacheListener callbackArgument: " + callbackArgument);
-    if (callbackArgument instanceof GatewaySenderEventCallbackArgument) {
-      GatewayDeltaEvent delta = event.getNewValue();
-      delta.apply(this.cache);
-      System.out.println("Applied " + delta);
-      if (this.cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("GatewayDeltaApplierCacheListener: Applied ").append(delta);
-        this.cache.getLogger().fine(builder.toString());
-      }
-    }
-  }
-
-  public void init(Properties p) {
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
deleted file mode 100644
index ce44fcb..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
+++ /dev/null
@@ -1,197 +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.gatewaydelta;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.DataPolicy;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.InterestPolicy;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionFactory;
-import com.gemstone.gemfire.cache.Scope;
-import com.gemstone.gemfire.cache.SerializedCacheValue;
-import com.gemstone.gemfire.cache.SubscriptionAttributes;
-import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
-import com.gemstone.gemfire.internal.cache.EntryEventImpl;
-import com.gemstone.gemfire.internal.cache.LocalRegion;
-
-import java.util.Properties;
-
-public class GatewayDeltaForwarderCacheListener extends CacheListenerAdapter<String, GatewayDelta> implements Declarable {
-
-  private final Cache cache;
-
-  private LocalRegion gatewayDeltaRegion;
-
-  public GatewayDeltaForwarderCacheListener() {
-    this(CacheFactory.getAnyInstance());
-  }
-
-  public GatewayDeltaForwarderCacheListener(Cache cache) {
-    this.cache = cache;
-  }
-
-  @SuppressWarnings("unchecked")
-  public void afterCreate(EntryEvent<String, GatewayDelta> event) {
-    // If the event is from the local site, create a 'create' event and send it to the
-    // gateway delta region
-    if (event.getCallbackArgument() == null) {
-      if (this.cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("GatewayDeltaForwarderCacheListener: Received create event for ")
-            .append(event.getKey())
-            .append("->")
-            .append(event.getNewValue())
-            .append(" that originated in the local site. Sending it to the remote site.");
-        this.cache.getLogger().fine(builder.toString());
-      }
-
-      // Distribute the create event to the gateway hub(s)
-      String regionName = event.getRegion().getFullPath();
-      String sessionId = event.getKey();
-      SerializedCacheValue scv = event.getSerializedNewValue();
-      if (scv == null) {
-        getGatewayDeltaRegion().put(sessionId,
-            new GatewayDeltaCreateEvent(regionName, sessionId, EntryEventImpl.serialize(event.getNewValue())));
-      } else {
-        System.out.println(
-            "GatewayDeltaForwarderCacheListener event.getSerializedNewValue().getSerializedValue(): " + event.getSerializedNewValue()
-                .getSerializedValue());
-        getGatewayDeltaRegion().put(sessionId,
-            new GatewayDeltaCreateEvent(regionName, sessionId, scv.getSerializedValue()));
-      }
-    } else {
-      if (this.cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("GatewayDeltaForwarderCacheListener: Received create event for ")
-            .append(event.getKey())
-            .append("->")
-            .append(event.getNewValue())
-            .append(" that originated in the remote site.");
-        this.cache.getLogger().fine(builder.toString());
-      }
-    }
-  }
-
-  public void afterUpdate(EntryEvent<String, GatewayDelta> event) {
-    //System.out.println("GatewayDeltaForwarderCacheListener.afterUpdate: " + event);
-    // If the event is from the local site, create an 'update' event and send it to the
-    // gateway delta region
-    if (event.getCallbackArgument() == null) {
-      if (this.cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("GatewayDeltaForwarderCacheListener: Received update event for ")
-            .append(event.getKey())
-            .append("->")
-            .append(event.getNewValue())
-            .append(" that originated in the local site. Sending it to the remote site.");
-        this.cache.getLogger().fine(builder.toString());
-      }
-
-      // Distribute the update event to the gateway hub(s)
-      GatewayDelta session = event.getNewValue();
-      getGatewayDeltaRegion().put(event.getKey(), session.getCurrentGatewayDeltaEvent());
-
-      // Reset the current delta
-      session.setCurrentGatewayDeltaEvent(null);
-    } else {
-      if (this.cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("GatewayDeltaForwarderCacheListener: Received update event for ")
-            .append(event.getKey())
-            .append("->")
-            .append(event.getNewValue())
-            .append(" that originated in the remote site.");
-        this.cache.getLogger().fine(builder.toString());
-      }
-    }
-  }
-
-  public void afterDestroy(EntryEvent<String, GatewayDelta> event) {
-    // If the event is from the local site, create a 'destroy' event and send it to the
-    // gateway delta region
-    if (event.getCallbackArgument() != null) {
-      if (this.cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("GatewayDeltaForwarderCacheListener: Received destroy event for ")
-            .append(event.getKey())
-            .append("->")
-            .append(event.getNewValue())
-            .append(" that originated in the local site. Sending it to the remote site.");
-        this.cache.getLogger().fine(builder.toString());
-      }
-
-      // Distribute the destroy event to the gateway hub(s)
-      String sessionId = event.getKey();
-      getGatewayDeltaRegion().put(sessionId, new GatewayDeltaDestroyEvent(event.getRegion().getFullPath(), sessionId));
-    } else {
-      if (this.cache.getLogger().fineEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("GatewayDeltaForwarderCacheListener: Received destroy event for session ")
-            .append(event.getKey())
-            .append(" that either expired or originated in the remote site.");
-        this.cache.getLogger().fine(builder.toString());
-      }
-    }
-  }
-
-  public void init(Properties p) {
-  }
-
-  private LocalRegion getGatewayDeltaRegion() {
-    if (this.gatewayDeltaRegion == null) {
-      this.gatewayDeltaRegion = createOrRetrieveGatewayDeltaRegion();
-    }
-    return this.gatewayDeltaRegion;
-  }
-
-  @SuppressWarnings("unchecked")
-  private LocalRegion createOrRetrieveGatewayDeltaRegion() {
-    Region region = this.cache.getRegion(GatewayDelta.GATEWAY_DELTA_REGION_NAME);
-    if (region == null) {
-      region = new RegionFactory().setScope(Scope.LOCAL)
-          .setDataPolicy(DataPolicy.EMPTY)
-          .setSubscriptionAttributes(new SubscriptionAttributes(InterestPolicy.ALL))
-// TODO: Disabled for WAN
-//        .setEnableGateway(true)
-          .addCacheListener(new GatewayDeltaEventApplicationCacheListener())
-          .create(GatewayDelta.GATEWAY_DELTA_REGION_NAME);
-    }
-    if (this.cache.getLogger().fineEnabled()) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("GatewayDeltaForwarderCacheListener: Created gateway delta region: ").append(region);
-      this.cache.getLogger().fine(builder.toString());
-    }
-    return (LocalRegion) region;
-  }
-
-  public boolean equals(Object obj) {
-    // This method is only implemented so that RegionCreator.validateRegion works properly.
-    // The CacheListener comparison fails because two of these instances are not equal.
-    if (this == obj) {
-      return true;
-    }
-
-    if (obj == null || !(obj instanceof GatewayDeltaForwarderCacheListener)) {
-      return false;
-    }
-
-    return true;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/AbstractCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/AbstractCache.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/AbstractCache.java
deleted file mode 100644
index ea81309..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/AbstractCache.java
+++ /dev/null
@@ -1,398 +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.bootstrap;
-
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.control.ResourceManager;
-import com.gemstone.gemfire.distributed.internal.AbstractDistributionConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.cache.LocalRegion;
-import com.gemstone.gemfire.modules.util.Banner;
-import com.gemstone.gemfire.modules.util.RegionHelper;
-import com.gemstone.gemfire.modules.util.ResourceManagerValidator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-public abstract class AbstractCache {
-
-  protected GemFireCache cache;
-
-  private static final DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd");
-
-  protected static final String DEFAULT_LOG_FILE_NAME = RegionHelper.NAME + "." + FORMAT.format(new Date()) + ".log";
-
-  protected static final String DEFAULT_STATISTIC_ARCHIVE_FILE_NAME = RegionHelper.NAME + ".gfs";
-
-  protected static final float DEFAULT_EVICTION_HEAP_PERCENTAGE = LocalRegion.DEFAULT_HEAPLRU_EVICTION_HEAP_PERCENTAGE;
-
-  protected static final float DEFAULT_CRITICAL_HEAP_PERCENTAGE = ResourceManager.DEFAULT_CRITICAL_PERCENTAGE;
-
-  protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractCache.class);
-
-  protected float evictionHeapPercentage = DEFAULT_EVICTION_HEAP_PERCENTAGE;
-
-  protected float criticalHeapPercentage = DEFAULT_CRITICAL_HEAP_PERCENTAGE;
-
-  protected boolean rebalance = false;
-
-  protected final Map<String, String> gemfireProperties;
-
-  private final AtomicBoolean started = new AtomicBoolean(false);
-
-  /**
-   * Instance reference which is set in static initialization blocks of any subclasses.
-   */
-  protected static AbstractCache instance = null;
-
-  public AbstractCache() {
-    this.gemfireProperties = new ConcurrentHashMap<String, String>();
-  }
-
-  public void lifecycleEvent(LifecycleTypeAdapter eventType) {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug("Received " + eventType + " event");
-    }
-
-    if (eventType.equals(LifecycleTypeAdapter.START) && started.compareAndSet(false, true)) {
-      // Create or retrieve the cache
-      getLogger().info("Initializing " + Banner.getString());
-      createOrRetrieveCache();
-
-      // Initialize the resource manager
-      initializeResourceManager();
-    } else if (eventType.equals(LifecycleTypeAdapter.AFTER_START)) {
-      if (getRebalance()) {
-        rebalanceCache();
-      }
-    } else if (eventType.equals(LifecycleTypeAdapter.STOP)) {
-      // Close the cache
-//      closeCache();
-      // TODO: Do we need to reset the started flag here?
-    }
-  }
-
-  public boolean isStarted() {
-    return started.get();
-  }
-
-  public void close() {
-    getCache().close();
-    while (!getCache().isClosed()) {
-    }
-
-    started.set(false);
-  }
-
-  public GemFireCache getCache() {
-    return this.cache;
-  }
-
-  public String getLogFileName() {
-    String logFileName = getGemFireProperties().get(DistributionConfig.LOG_FILE_NAME);
-    if (logFileName == null) {
-      logFileName = DEFAULT_LOG_FILE_NAME;
-    }
-    return logFileName;
-  }
-
-  public String getStatisticArchiveFileName() {
-    String statisticsArchiveFileName = getGemFireProperties().get(DistributionConfig.STATISTIC_ARCHIVE_FILE_NAME);
-    if (statisticsArchiveFileName == null) {
-      statisticsArchiveFileName = DEFAULT_STATISTIC_ARCHIVE_FILE_NAME;
-    }
-    return statisticsArchiveFileName;
-  }
-
-  public String getCacheXmlFileName() {
-    String cacheXmlFileName = getGemFireProperties().get(DistributionConfig.CACHE_XML_FILE_NAME);
-    if (cacheXmlFileName == null) {
-      cacheXmlFileName = getDefaultCacheXmlFileName();
-    }
-    return cacheXmlFileName;
-  }
-
-  protected File getCacheXmlFile() {
-    String cacheXmlFileName = getCacheXmlFileName();
-    File cacheXmlFile = new File(cacheXmlFileName);
-    // If the cache xml file is not absolute, point it at the conf directory.
-    if (!cacheXmlFile.isAbsolute()) {
-      if (System.getProperty("catalina.base") != null) {
-        cacheXmlFile = new File(System.getProperty("catalina.base") + "/conf/", cacheXmlFileName);
-      }
-    }
-    return cacheXmlFile;
-  }
-
-  public float getEvictionHeapPercentage() {
-    return this.evictionHeapPercentage;
-  }
-
-  public void setEvictionHeapPercentage(String evictionHeapPercentage) {
-    this.evictionHeapPercentage = Float.valueOf(evictionHeapPercentage);
-  }
-
-  public float getCriticalHeapPercentage() {
-    return this.criticalHeapPercentage;
-  }
-
-  public void setCriticalHeapPercentage(String criticalHeapPercentage) {
-    this.criticalHeapPercentage = Float.valueOf(criticalHeapPercentage);
-  }
-
-  public void setRebalance(boolean rebalance) {
-    this.rebalance = rebalance;
-  }
-
-  public boolean getRebalance() {
-    return this.rebalance;
-  }
-
-  public Map<String, String> getGemFireProperties() {
-    return this.gemfireProperties;
-  }
-
-  public void setProperty(String name, String value) {
-    //TODO Look at fake attributes
-    if (name.equals("className")) {
-      return;
-    }
-
-    // Determine the validity of the input property
-    boolean validProperty = false;
-    for (String gemfireProperty : AbstractDistributionConfig._getAttNames()) {
-      if (name.equals(gemfireProperty)) {
-        validProperty = true;
-        break;
-      }
-    }
-
-    // If it is a valid GemFire property, add it to the the GemFire properties.
-    // Otherwise, log a warning.
-    if (validProperty) {
-      this.gemfireProperties.put(name, value);
-    } else {
-      getLogger().warn("The input property named " + name + " is not a valid GemFire property. It is being ignored.");
-    }
-  }
-
-  public Logger getLogger() {
-    return LOGGER;
-  }
-
-  protected Properties createDistributedSystemProperties() {
-    Properties properties = new Properties();
-
-    // Add any additional gemfire properties
-    for (Map.Entry<String, String> entry : this.gemfireProperties.entrySet()) {
-      properties.put(entry.getKey(), entry.getValue());
-    }
-
-    // Replace the cache xml file in the properties
-    File cacheXmlFile = getCacheXmlFile();
-    String absoluteCacheXmlFileName = cacheXmlFile.getAbsolutePath();
-    // If the file doesn't exist and the name is the default, set cache-xml-file
-    // to the GemFire default. This is for the case where only the jars have been
-    // installed and no default cache.xml exists in the conf directory.
-    if (getCacheXmlFileName().equals(getDefaultCacheXmlFileName()) && !cacheXmlFile.exists()) {
-      absoluteCacheXmlFileName = DistributionConfig.DEFAULT_CACHE_XML_FILE.getName();
-    }
-    properties.put(DistributionConfig.CACHE_XML_FILE_NAME, absoluteCacheXmlFileName);
-
-    // Replace the log file in the properties
-    properties.put(DistributionConfig.LOG_FILE_NAME, getLogFile().getAbsolutePath());
-
-    // Replace the statistics archive file in the properties
-    File statisticArchiveFile = getStatisticArchiveFile();
-    if (statisticArchiveFile == null) {
-      // Remove the statistics archive file name since statistic sampling is disabled
-      properties.remove(DistributionConfig.STATISTIC_ARCHIVE_FILE_NAME);
-      properties.remove(DistributionConfig.STATISTIC_SAMPLING_ENABLED_NAME);
-    } else {
-      properties.put(DistributionConfig.STATISTIC_ARCHIVE_FILE_NAME, statisticArchiveFile.getAbsolutePath());
-    }
-    getLogger().info("Creating distributed system from: " + properties);
-
-    return properties;
-  }
-
-  protected void closeCache() {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug("Closing " + this.cache);
-    }
-    if (getCache() != null) {
-      getCache().close();
-    }
-    getLogger().info("Closed " + this.cache);
-  }
-
-  protected File getLogFile() {
-    String logFileName = getLogFileName();
-    File logFile = new File(logFileName);
-    // If the log file is not absolute, point it at the logs directory.
-    if (!logFile.isAbsolute()) {
-      if (System.getProperty("catalina.base") != null) {
-        logFile = new File(System.getProperty("catalina.base") + "/logs/", logFileName);
-      } else if (System.getProperty("weblogic.Name") != null) {
-        String weblogicName = System.getProperty("weblogic.Name");
-        String separator = System.getProperty("file.separator");
-        logFile = new File("servers" + separator + weblogicName + separator +
-            "logs" + separator + logFileName);
-      } else {
-        logFile = new File(System.getProperty("gemfire.logdir"), logFileName);
-      }
-    }
-    return logFile;
-  }
-
-  protected File getStatisticArchiveFile() {
-    File statisticsArchiveFile = null;
-    String statisticSamplingEnabled = getGemFireProperties().get(DistributionConfig.STATISTIC_SAMPLING_ENABLED_NAME);
-    if (statisticSamplingEnabled != null && statisticSamplingEnabled.equals("true")) {
-      String statisticsArchiveFileName = getStatisticArchiveFileName();
-      statisticsArchiveFile = new File(statisticsArchiveFileName);
-      // If the statistics archive file is not absolute, point it at the logs directory.
-      if (!statisticsArchiveFile.isAbsolute()) {
-        if (System.getProperty("catalina.base") != null) {
-          statisticsArchiveFile = new File(System.getProperty("catalina.base") + "/logs/", statisticsArchiveFileName);
-        } else if (System.getProperty("weblogic.Name") != null) {
-          String weblogicName = System.getProperty("weblogic.Name");
-          String separator = System.getProperty("file.separator");
-          statisticsArchiveFile = new File("servers" + separator + weblogicName + separator +
-              "logs" + separator + statisticsArchiveFileName);
-        } else {
-          statisticsArchiveFile = new File(System.getProperty("gemfire.statisticsdir"), statisticsArchiveFileName);
-        }
-      }
-    }
-    return statisticsArchiveFile;
-  }
-
-  protected void initializeResourceManager() {
-    // Get current eviction and critical heap percentages
-    ResourceManager rm = getCache().getResourceManager();
-    float currentEvictionHeapPercentage = rm.getEvictionHeapPercentage();
-    float currentCriticalHeapPercentage = rm.getCriticalHeapPercentage();
-
-    // Set new eviction and critical heap percentages if necessary
-    if (getEvictionHeapPercentage() != currentEvictionHeapPercentage || getCriticalHeapPercentage() != currentCriticalHeapPercentage) {
-      if (getLogger().isDebugEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("Previous eviction heap percentage=")
-            .append(currentEvictionHeapPercentage)
-            .append("; critical heap percentage=")
-            .append(currentCriticalHeapPercentage);
-        getLogger().debug(builder.toString());
-        builder.setLength(0);
-        builder.append("Requested eviction heap percentage=")
-            .append(getEvictionHeapPercentage())
-            .append("; critical heap percentage=")
-            .append(getCriticalHeapPercentage());
-        getLogger().debug(builder.toString());
-      }
-      if (currentCriticalHeapPercentage == 0.0f) {
-        // If the current critical heap percentage is 0 (disabled), set eviction
-        // heap percentage first, then set the critical heap percentage. At this
-        // point, the eviction heap percentage can be set to anything.
-        try {
-          rm.setEvictionHeapPercentage(getEvictionHeapPercentage());
-          rm.setCriticalHeapPercentage(getCriticalHeapPercentage());
-        } catch (IllegalArgumentException e) {
-          handleResourceManagerException(e, currentEvictionHeapPercentage, currentCriticalHeapPercentage);
-          rm.setEvictionHeapPercentage(currentEvictionHeapPercentage);
-          rm.setCriticalHeapPercentage(currentCriticalHeapPercentage);
-        }
-      } else if (getCriticalHeapPercentage() >= currentCriticalHeapPercentage) {
-        // If the requested critical heap percentage is >= the current critical
-        // heap percentage, then set the critical heap percentage first since it
-        // can safely be slid up. Then, set the eviction heap percentage.
-        try {
-          rm.setCriticalHeapPercentage(getCriticalHeapPercentage());
-          rm.setEvictionHeapPercentage(getEvictionHeapPercentage());
-        } catch (IllegalArgumentException e) {
-          handleResourceManagerException(e, currentEvictionHeapPercentage, currentCriticalHeapPercentage);
-          rm.setCriticalHeapPercentage(currentCriticalHeapPercentage);
-          rm.setEvictionHeapPercentage(currentEvictionHeapPercentage);
-        }
-      } else {
-        // If the requested critical heap percentage is < the current critical
-        // heap percentage, then set the eviction heap percentage first since it
-        // can safely be slid down. Then, set the critical heap percentage.
-        try {
-          rm.setEvictionHeapPercentage(getEvictionHeapPercentage());
-          rm.setCriticalHeapPercentage(getCriticalHeapPercentage());
-        } catch (IllegalArgumentException e) {
-          handleResourceManagerException(e, currentEvictionHeapPercentage, currentCriticalHeapPercentage);
-          rm.setEvictionHeapPercentage(currentEvictionHeapPercentage);
-          rm.setCriticalHeapPercentage(currentCriticalHeapPercentage);
-        }
-      }
-      if (getLogger().isDebugEnabled()) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("Actual eviction heap percentage=")
-            .append(rm.getEvictionHeapPercentage())
-            .append("; critical heap percentage=")
-            .append(rm.getCriticalHeapPercentage());
-        getLogger().debug(builder.toString());
-      }
-    }
-
-    // Validate java startup parameters (done after setting the eviction and
-    // critical heap percentages so that the CMSInitiatingOccupancyFraction can
-    // be compared against them.
-    ResourceManagerValidator.validateJavaStartupParameters(getCache());
-  }
-
-  private void handleResourceManagerException(IllegalArgumentException e, float currentEvictionHeapPercentage,
-      float currentCriticalHeapPercentage) {
-    StringBuilder builder = new StringBuilder();
-    builder.append("Caught exception attempting to set eviction heap percentage=")
-        .append(getEvictionHeapPercentage())
-        .append(" and critical heap percentage=")
-        .append(getCriticalHeapPercentage())
-        .append(". The percentages will be set back to their previous values (eviction heap percentage=")
-        .append(currentEvictionHeapPercentage)
-        .append(" and critical heap percentage=")
-        .append(currentCriticalHeapPercentage)
-        .append(").");
-    getLogger().warn(builder.toString(), e);
-  }
-
-  @Override
-  public String toString() {
-    return new StringBuilder().append(getClass().getSimpleName())
-        .append("[")
-        .append("cache=")
-        .append(this.cache)
-        .append("]")
-        .toString();
-  }
-
-  protected abstract void createOrRetrieveCache();
-
-  protected abstract void rebalanceCache();
-
-  protected abstract String getDefaultCacheXmlFileName();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/ClientServerCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/ClientServerCache.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/ClientServerCache.java
deleted file mode 100644
index f8cff16..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/ClientServerCache.java
+++ /dev/null
@@ -1,74 +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.bootstrap;
-
-import com.gemstone.gemfire.cache.CacheClosedException;
-import com.gemstone.gemfire.cache.client.ClientCacheFactory;
-
-/**
- * This is a singleton class which maintains configuration properties as well as starting a Client-Server cache.
- */
-public class ClientServerCache extends AbstractCache {
-
-  protected static final String DEFAULT_CACHE_XML_FILE_NAME = "cache-client.xml";
-
-  static {
-    instance = new ClientServerCache();
-  }
-
-  private ClientServerCache() {
-    // Singleton
-    super();
-  }
-
-  public static AbstractCache getInstance() {
-    return instance;
-  }
-
-  @Override
-  protected void createOrRetrieveCache() {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Creating cache");
-    }
-    // Get the existing cache if any
-    try {
-      this.cache = ClientCacheFactory.getAnyInstance();
-    } catch (CacheClosedException e) {
-    }
-
-    // If no cache exists, create one
-    String message = null;
-    if (this.cache == null) {
-      // enable pool subscription so that default cache can be used by hibernate module
-      this.cache = new ClientCacheFactory(createDistributedSystemProperties()).create();
-      message = "Created ";
-    } else {
-      message = "Retrieved ";
-    }
-    getLogger().info(message + this.cache);
-  }
-
-  @Override
-  protected void rebalanceCache() {
-    getLogger().warn("The client cannot rebalance the server's cache.");
-  }
-
-  @Override
-  protected String getDefaultCacheXmlFileName() {
-    return DEFAULT_CACHE_XML_FILE_NAME;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/LifecycleTypeAdapter.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/LifecycleTypeAdapter.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/LifecycleTypeAdapter.java
deleted file mode 100644
index 2f0c9bb..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/LifecycleTypeAdapter.java
+++ /dev/null
@@ -1,59 +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.
-*/
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-
-package com.gemstone.gemfire.modules.session.bootstrap;
-
-/**
- * Adapter for the Catalina Lifecycle event types
- */
-public enum LifecycleTypeAdapter {
-
-  CONFIGURE_START,
-
-  CONFIGURE_STOP,
-
-  AFTER_DESTROY,
-
-  AFTER_INIT,
-
-  AFTER_START,
-
-  AFTER_STOP,
-
-  BEFORE_DESTROY,
-
-  BEFORE_INIT,
-
-  BEFORE_START,
-
-  BEFORE_STOP,
-
-  DESTROY,
-
-  INIT,
-
-  PERIODIC,
-
-  START,
-
-  STOP;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/PeerToPeerCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/PeerToPeerCache.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/PeerToPeerCache.java
deleted file mode 100644
index b0b3b4a..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/PeerToPeerCache.java
+++ /dev/null
@@ -1,85 +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.bootstrap;
-
-import com.gemstone.gemfire.cache.CacheClosedException;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.control.RebalanceResults;
-import com.gemstone.gemfire.modules.util.RegionHelper;
-
-/**
- * This is a singleton class which maintains configuration properties as well as starting a Peer-To-Peer cache.
- */
-
-public class PeerToPeerCache extends AbstractCache {
-
-  protected static final String DEFAULT_CACHE_XML_FILE_NAME = "cache-peer.xml";
-
-  static {
-    instance = new PeerToPeerCache();
-  }
-
-  private PeerToPeerCache() {
-    // Singleton
-    super();
-  }
-
-  public static AbstractCache getInstance() {
-    return instance;
-  }
-
-  @Override
-  protected void createOrRetrieveCache() {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug("Creating cache");
-    }
-    // Get the existing cache if any
-    try {
-      this.cache = CacheFactory.getAnyInstance();
-    } catch (CacheClosedException e) {
-    }
-
-    // If no cache exists, create one
-    String message = null;
-    if (this.cache == null) {
-      this.cache = new CacheFactory(createDistributedSystemProperties()).create();
-      message = "Created ";
-    } else {
-      message = "Retrieved ";
-    }
-    getLogger().info(message + this.cache);
-  }
-
-  @Override
-  protected void rebalanceCache() {
-    try {
-      getLogger().info("Rebalancing: " + this.cache);
-      RebalanceResults results = RegionHelper.rebalanceCache(this.cache);
-      if (getLogger().isDebugEnabled()) {
-        getLogger().debug("Done rebalancing: " + this.cache);
-        getLogger().debug(RegionHelper.getRebalanceResultsMessage(results));
-      }
-    } catch (Exception e) {
-      getLogger().warn("Rebalance failed because of the following exception:", e);
-    }
-  }
-
-  @Override
-  protected String getDefaultCacheXmlFileName() {
-    return DEFAULT_CACHE_XML_FILE_NAME;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractCacheLifecycleListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractCacheLifecycleListener.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractCacheLifecycleListener.java
deleted file mode 100644
index 1019ddc..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractCacheLifecycleListener.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.catalina;
-
-
-import com.gemstone.gemfire.modules.session.bootstrap.AbstractCache;
-import com.gemstone.gemfire.modules.session.bootstrap.LifecycleTypeAdapter;
-import org.apache.catalina.LifecycleEvent;
-import org.apache.catalina.LifecycleListener;
-
-
-public abstract class AbstractCacheLifecycleListener implements LifecycleListener {
-  protected AbstractCache cache;
-
-  @Override
-  public void lifecycleEvent(LifecycleEvent le) {
-    cache.lifecycleEvent(LifecycleTypeAdapter.valueOf(le.getType().toUpperCase()));
-  }
-
-  /**
-   * This is called by Tomcat to set properties on the Listener.
-   */
-  public void setProperty(String name, String value) {
-    cache.setProperty(name, value);
-  }
-
-  /*
-   * These getters and setters are also called by Tomcat and just passed on to
-   * the cache.
-   */
-  public float getEvictionHeapPercentage() {
-    return cache.getEvictionHeapPercentage();
-  }
-
-  public void setEvictionHeapPercentage(String evictionHeapPercentage) {
-    cache.setEvictionHeapPercentage(evictionHeapPercentage);
-  }
-
-  public float getCriticalHeapPercentage() {
-    return cache.getCriticalHeapPercentage();
-  }
-
-  public void setCriticalHeapPercentage(String criticalHeapPercentage) {
-    cache.setCriticalHeapPercentage(criticalHeapPercentage);
-  }
-
-  public void setRebalance(boolean rebalance) {
-    cache.setRebalance(rebalance);
-  }
-
-  public boolean getRebalance() {
-    return cache.getRebalance();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractSessionCache.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractSessionCache.java
deleted file mode 100644
index 3019cae..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractSessionCache.java
+++ /dev/null
@@ -1,113 +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.catalina;
-
-import com.gemstone.gemfire.cache.EntryNotFoundException;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionStatistics;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-import com.gemstone.gemfire.modules.util.SessionCustomExpiry;
-import org.apache.catalina.Session;
-
-import javax.servlet.http.HttpSession;
-
-public abstract class AbstractSessionCache implements SessionCache {
-
-  protected SessionManager sessionManager;
-
-  /**
-   * The sessionRegion is the <code>Region</code> that actually stores and replicates the <code>Session</code>s.
-   */
-  protected Region<String, HttpSession> sessionRegion;
-
-  /**
-   * The operatingRegion is the <code>Region</code> used to do HTTP operations. if local cache is enabled, then this
-   * will be the local <code>Region</code>; otherwise, it will be the session <code>Region</code>.
-   */
-  protected Region<String, HttpSession> operatingRegion;
-
-  protected DeltaSessionStatistics statistics;
-
-  public AbstractSessionCache(SessionManager sessionManager) {
-    this.sessionManager = sessionManager;
-  }
-
-  @Override
-  public String getSessionRegionName() {
-    return getSessionRegion().getFullPath();
-  }
-
-  @Override
-  public String getOperatingRegionName() {
-    return getOperatingRegion().getFullPath();
-  }
-
-  @Override
-  public void putSession(Session session) {
-    getOperatingRegion().put(session.getId(), (HttpSession) session);
-  }
-
-  @Override
-  public HttpSession getSession(String sessionId) {
-    return getOperatingRegion().get(sessionId);
-  }
-
-  @Override
-  public void destroySession(String sessionId) {
-    try {
-      getOperatingRegion().destroy(sessionId);
-    } catch (EntryNotFoundException enex) {
-      // Ignored
-    }
-  }
-
-  @Override
-  public DeltaSessionStatistics getStatistics() {
-    return this.statistics;
-  }
-
-  protected SessionManager getSessionManager() {
-    return this.sessionManager;
-  }
-
-  public Region<String, HttpSession> getSessionRegion() {
-    return this.sessionRegion;
-  }
-
-  public Region<String, HttpSession> getOperatingRegion() {
-    return this.operatingRegion;
-  }
-
-  protected void createStatistics() {
-    this.statistics = new DeltaSessionStatistics(getCache().getDistributedSystem(),
-        getSessionManager().getStatisticsName());
-  }
-
-  protected RegionConfiguration createRegionConfiguration() {
-    RegionConfiguration configuration = new RegionConfiguration();
-    configuration.setRegionName(getSessionManager().getRegionName());
-    configuration.setRegionAttributesId(getSessionManager().getRegionAttributesId());
-    if (getSessionManager().getMaxInactiveInterval() != RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
-      configuration.setMaxInactiveInterval(getSessionManager().getMaxInactiveInterval());
-      configuration.setCustomExpiry(new SessionCustomExpiry());
-    }
-    configuration.setEnableGatewayDeltaReplication(getSessionManager().getEnableGatewayDeltaReplication());
-    configuration.setEnableGatewayReplication(getSessionManager().getEnableGatewayReplication());
-    configuration.setEnableDebugListener(getSessionManager().getEnableDebugListener());
-    return configuration;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerCacheLifecycleListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerCacheLifecycleListener.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerCacheLifecycleListener.java
deleted file mode 100644
index ba66fa2..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerCacheLifecycleListener.java
+++ /dev/null
@@ -1,26 +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.catalina;
-
-import com.gemstone.gemfire.modules.session.bootstrap.ClientServerCache;
-
-public class ClientServerCacheLifecycleListener extends AbstractCacheLifecycleListener {
-
-  public ClientServerCacheLifecycleListener() {
-    cache = ClientServerCache.getInstance();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerSessionCache.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerSessionCache.java
deleted file mode 100644
index 2de43b4..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerSessionCache.java
+++ /dev/null
@@ -1,252 +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.catalina;
-
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.InterestResultPolicy;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.client.ClientCache;
-import com.gemstone.gemfire.cache.client.ClientRegionFactory;
-import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
-import com.gemstone.gemfire.cache.client.PoolManager;
-import com.gemstone.gemfire.cache.client.internal.PoolImpl;
-import com.gemstone.gemfire.cache.execute.Execution;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.cache.execute.ResultCollector;
-import com.gemstone.gemfire.modules.session.catalina.callback.SessionExpirationCacheListener;
-import com.gemstone.gemfire.modules.util.BootstrappingFunction;
-import com.gemstone.gemfire.modules.util.CreateRegionFunction;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-import com.gemstone.gemfire.modules.util.RegionSizeFunction;
-import com.gemstone.gemfire.modules.util.RegionStatus;
-import com.gemstone.gemfire.modules.util.SessionCustomExpiry;
-import com.gemstone.gemfire.modules.util.TouchPartitionedRegionEntriesFunction;
-import com.gemstone.gemfire.modules.util.TouchReplicatedRegionEntriesFunction;
-
-import javax.servlet.http.HttpSession;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-public class ClientServerSessionCache extends AbstractSessionCache {
-
-  private ClientCache cache;
-
-  protected static final String DEFAULT_REGION_ATTRIBUTES_ID = RegionShortcut.PARTITION_REDUNDANT.toString();
-
-  protected static final boolean DEFAULT_ENABLE_LOCAL_CACHE = true;
-
-  public ClientServerSessionCache(SessionManager sessionManager, ClientCache cache) {
-    super(sessionManager);
-    this.cache = cache;
-  }
-
-  @Override
-  public void initialize() {
-    // Bootstrap the servers
-    bootstrapServers();
-
-    // Create or retrieve the region
-    try {
-      createOrRetrieveRegion();
-    } catch (Exception ex) {
-      sessionManager.getLogger().fatal("Unable to create or retrieve region", ex);
-      throw new IllegalStateException(ex);
-    }
-
-    // Set the session region directly as the operating region since there is no difference
-    // between the local cache region and the session region.
-    this.operatingRegion = this.sessionRegion;
-
-    // Create or retrieve the statistics
-    createStatistics();
-  }
-
-  @Override
-  public String getDefaultRegionAttributesId() {
-    return DEFAULT_REGION_ATTRIBUTES_ID;
-  }
-
-  @Override
-  public boolean getDefaultEnableLocalCache() {
-    return DEFAULT_ENABLE_LOCAL_CACHE;
-  }
-
-  @Override
-  public void touchSessions(Set<String> sessionIds) {
-    // Get the region attributes id to determine the region type. This is
-    // problematic since the region attributes id doesn't really define the
-    // region type. Currently there is no way to know the type of region created
-    // on the server. Maybe the CreateRegionFunction should return it.
-    String regionAttributesID = getSessionManager().getRegionAttributesId().toLowerCase();
-
-    // Invoke the appropriate function depending on the type of region
-    if (regionAttributesID.startsWith("partition")) {
-      // Execute the partitioned touch function on the primary server(s)
-      Execution execution = FunctionService.onRegion(getSessionRegion()).withFilter(sessionIds);
-      try {
-        ResultCollector collector = execution.execute(TouchPartitionedRegionEntriesFunction.ID, true, false, true);
-        collector.getResult();
-      } catch (Exception e) {
-        // If an exception occurs in the function, log it.
-        getSessionManager().getLogger().warn("Caught unexpected exception:", e);
-      }
-    } else {
-      // Execute the member touch function on all the server(s)
-      Execution execution = FunctionService.onServers(getCache())
-          .withArgs(new Object[]{this.sessionRegion.getFullPath(), sessionIds});
-      try {
-        ResultCollector collector = execution.execute(TouchReplicatedRegionEntriesFunction.ID, true, false, false);
-        collector.getResult();
-      } catch (Exception e) {
-        // If an exception occurs in the function, log it.
-        getSessionManager().getLogger().warn("Caught unexpected exception:", e);
-      }
-    }
-  }
-
-  @Override
-  public boolean isPeerToPeer() {
-    return false;
-  }
-
-  @Override
-  public boolean isClientServer() {
-    return true;
-  }
-
-  @Override
-  public Set<String> keySet() {
-    return getSessionRegion().keySetOnServer();
-  }
-
-  @Override
-  public int size() {
-    // Add a single dummy key to force the function to go to one server
-    Set<String> filters = new HashSet<String>();
-    filters.add("test-key");
-
-    // Execute the function on the session region
-    Execution execution = FunctionService.onRegion(getSessionRegion()).withFilter(filters);
-    ResultCollector collector = execution.execute(RegionSizeFunction.ID, true, true, true);
-    List<Integer> result = (List<Integer>) collector.getResult();
-
-    // Return the first (and only) element
-    return result.get(0);
-  }
-
-  @Override
-  public boolean isBackingCacheAvailable() {
-    if (getSessionManager().isCommitValveFailfastEnabled()) {
-      PoolImpl pool = (PoolImpl) PoolManager.find(getOperatingRegionName());
-      return pool.isPrimaryUpdaterAlive();
-    }
-    return true;
-  }
-
-  public GemFireCache getCache() {
-    return this.cache;
-  }
-
-  private void bootstrapServers() {
-    Execution execution = FunctionService.onServers(this.cache);
-    ResultCollector collector = execution.execute(new BootstrappingFunction());
-    // Get the result. Nothing is being done with it.
-    try {
-      collector.getResult();
-    } catch (Exception e) {
-      // If an exception occurs in the function, log it.
-      getSessionManager().getLogger().warn("Caught unexpected exception:", e);
-    }
-  }
-
-  protected void createOrRetrieveRegion() {
-    // Retrieve the local session region
-    this.sessionRegion = this.cache.getRegion(getSessionManager().getRegionName());
-
-    // If necessary, create the regions on the server and client
-    if (this.sessionRegion == null) {
-      // Create the PR on the servers
-      createSessionRegionOnServers();
-
-      // Create the region on the client
-      this.sessionRegion = createLocalSessionRegion();
-      if (getSessionManager().getLogger().isDebugEnabled()) {
-        getSessionManager().getLogger().debug("Created session region: " + this.sessionRegion);
-      }
-    } else {
-      if (getSessionManager().getLogger().isDebugEnabled()) {
-        getSessionManager().getLogger().debug("Retrieved session region: " + this.sessionRegion);
-      }
-    }
-  }
-
-  private void createSessionRegionOnServers() {
-    // Create the RegionConfiguration
-    RegionConfiguration configuration = createRegionConfiguration();
-
-    // Send it to the server tier
-    Execution execution = FunctionService.onServer(this.cache).withArgs(configuration);
-    ResultCollector collector = execution.execute(CreateRegionFunction.ID);
-
-    // Verify the region was successfully created on the servers
-    List<RegionStatus> results = (List<RegionStatus>) collector.getResult();
-    for (RegionStatus status : results) {
-      if (status == RegionStatus.INVALID) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("An exception occurred on the server while attempting to create or validate region named ")
-            .append(getSessionManager().getRegionName())
-            .append(". See the server log for additional details.");
-        throw new IllegalStateException(builder.toString());
-      }
-    }
-  }
-
-  private Region<String, HttpSession> createLocalSessionRegion() {
-    ClientRegionFactory<String, HttpSession> factory = null;
-    if (getSessionManager().getEnableLocalCache()) {
-      // Create the region factory with caching and heap LRU enabled
-      factory = this.cache.createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY_HEAP_LRU);
-
-      // Set the expiration time, action and listener if necessary
-      int maxInactiveInterval = getSessionManager().getMaxInactiveInterval();
-      if (maxInactiveInterval != RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
-        factory.setStatisticsEnabled(true);
-        factory.setCustomEntryIdleTimeout(new SessionCustomExpiry());
-        factory.addCacheListener(new SessionExpirationCacheListener());
-      }
-    } else {
-      // Create the region factory without caching enabled
-      factory = this.cache.createClientRegionFactory(ClientRegionShortcut.PROXY);
-      factory.addCacheListener(new SessionExpirationCacheListener());
-    }
-
-    // Create the region
-    Region region = factory.create(getSessionManager().getRegionName());
-
-    /*
-     * If we're using an empty client region, we register interest so that
-     * expired sessions are destroyed correctly.
-     */
-    if (!getSessionManager().getEnableLocalCache()) {
-      region.registerInterest("ALL_KEYS", InterestResultPolicy.KEYS);
-    }
-
-    return region;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/CommitSessionValve.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/CommitSessionValve.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/CommitSessionValve.java
deleted file mode 100644
index 0ae17f2..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/CommitSessionValve.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.catalina;
-
-import org.apache.catalina.Manager;
-import org.apache.catalina.connector.Request;
-import org.apache.catalina.connector.Response;
-import org.apache.catalina.valves.ValveBase;
-import org.apache.juli.logging.Log;
-import org.apache.juli.logging.LogFactory;
-
-import javax.servlet.ServletException;
-import java.io.IOException;
-
-public class CommitSessionValve extends ValveBase {
-
-  private static final Log log = LogFactory.getLog(CommitSessionValve.class);
-
-  protected static final String info = "com.gemstone.gemfire.modules.session.catalina.CommitSessionValve/1.0";
-
-  public CommitSessionValve() {
-    log.info("Initialized");
-  }
-
-  @Override
-  public void invoke(Request request, Response response) throws IOException, ServletException {
-    // Get the Manager
-    Manager manager = request.getContext().getManager();
-    DeltaSessionFacade session = null;
-
-    // Invoke the next Valve
-    try {
-      getNext().invoke(request, response);
-    } finally {
-      // Commit and if the correct Manager was found
-      if (manager instanceof DeltaSessionManager) {
-        session = (DeltaSessionFacade) request.getSession(false);
-        if (session != null) {
-          if (session.isValid()) {
-            ((DeltaSessionManager) manager).removeTouchedSession(session.getId());
-            session.commit();
-            if (manager.getContainer().getLogger().isDebugEnabled()) {
-              manager.getContainer().getLogger().debug(session + ": Committed.");
-            }
-          } else {
-            if (manager.getContainer().getLogger().isDebugEnabled()) {
-              manager.getContainer().getLogger().debug(session + ": Not valid so not committing.");
-            }
-          }
-        }
-      }
-    }
-  }
-}


[16/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemConfigImpl.java
deleted file mode 100755
index 646ed20..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemConfigImpl.java
+++ /dev/null
@@ -1,1103 +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.admin.internal;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.GemFireIOException;
-import com.gemstone.gemfire.admin.AdminXmlException;
-import com.gemstone.gemfire.admin.CacheServerConfig;
-import com.gemstone.gemfire.admin.CacheVmConfig;
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-import com.gemstone.gemfire.admin.DistributionLocator;
-import com.gemstone.gemfire.admin.DistributionLocatorConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfigImpl;
-import com.gemstone.gemfire.internal.Banner;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-import com.gemstone.gemfire.internal.logging.LocalLogWriter;
-import com.gemstone.gemfire.internal.logging.LogConfig;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.LogWriterFactory;
-import com.gemstone.gemfire.internal.logging.LogWriterImpl;
-import com.gemstone.gemfire.internal.logging.ManagerLogWriter;
-import com.gemstone.gemfire.internal.logging.log4j.LogWriterAppender;
-
-/**
- * An implementation of the configuration object for an
- * <code>AdminDistributedSystem</code>.  After a config has been used
- * to create an <code>AdminDistributedSystem</code> most of the
- * configuration attributes cannot be changed.  However, some
- * operations (such as getting information about GemFire managers and
- * distribution locators) are "passed through" to the
- * <code>AdminDistributedSystem</code> associated with this
- * configuration object.
- *
- * @since 3.5
- */
-public class DistributedSystemConfigImpl 
-  implements DistributedSystemConfig {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  private String entityConfigXMLFile = DEFAULT_ENTITY_CONFIG_XML_FILE;
-  private String systemId = DEFAULT_SYSTEM_ID;
-  private String mcastAddress = DEFAULT_MCAST_ADDRESS;
-  private int mcastPort = DEFAULT_MCAST_PORT;
-  private int ackWaitThreshold = DEFAULT_ACK_WAIT_THRESHOLD;
-  private int ackSevereAlertThreshold = DEFAULT_ACK_SEVERE_ALERT_THRESHOLD;
-  private String locators = DEFAULT_LOCATORS;
-  private String bindAddress = DEFAULT_BIND_ADDRESS;
-  private String serverBindAddress = DEFAULT_BIND_ADDRESS;
-  private String remoteCommand = DEFAULT_REMOTE_COMMAND;
-  private boolean disableTcp = DEFAULT_DISABLE_TCP;
-  private boolean enableNetworkPartitionDetection = DEFAULT_ENABLE_NETWORK_PARTITION_DETECTION;
-  private boolean disableAutoReconnect = DEFAULT_DISABLE_AUTO_RECONNECT;
-  private int memberTimeout = DEFAULT_MEMBER_TIMEOUT;
-  private String membershipPortRange = getMembershipPortRangeString(DEFAULT_MEMBERSHIP_PORT_RANGE);
-  private int tcpPort = DEFAULT_TCP_PORT;
-  
-
-  private String logFile = DEFAULT_LOG_FILE;
-  private String logLevel = DEFAULT_LOG_LEVEL;
-  private int logDiskSpaceLimit = DEFAULT_LOG_DISK_SPACE_LIMIT;
-  private int logFileSizeLimit = DEFAULT_LOG_FILE_SIZE_LIMIT;
-  private int refreshInterval = DEFAULT_REFRESH_INTERVAL;
-  private Properties gfSecurityProperties = new Properties();
-
-  /** Listeners to notify when this DistributedSystemConfig changes */
-  private Set listeners = new HashSet();
-  
-  /** Configs for CacheServers that this system config is aware of */
-  private Set cacheServerConfigs = new HashSet();
-
-  /** Configs for the managed distribution locators in the distributed
-   * system */
-  private Set locatorConfigs = new HashSet();
-  
-  /** The display name of this distributed system */
-  private String systemName = DEFAULT_NAME;
-
-  /** The admin distributed system object that is configured by this
-   * config object. 
-   *
-   * @since 4.0 */
-  private AdminDistributedSystemImpl system;
-
-  /** The GemFire log writer used by the distributed system */
-  private InternalLogWriter logWriter;
-
-  
-  ///////////////////////  Static Methods  ///////////////////////
-
-  /**
-   * Filters out all properties that are unique to the admin
-   * <code>DistributedSystemConfig</code> that are not present in the
-   * internal <code>DistributionConfig</code>.
-   *
-   * @since 4.0
-   */
-  private static Properties
-    filterOutAdminProperties(Properties props) { 
-
-    Properties props2 = new Properties();
-    for (Enumeration names = props.propertyNames();
-         names.hasMoreElements(); ) {
-      String name = (String) names.nextElement();
-      if (!(ENTITY_CONFIG_XML_FILE_NAME.equals(name) ||
-            REFRESH_INTERVAL_NAME.equals(name) ||
-            REMOTE_COMMAND_NAME.equals(name)
-           )
-         ) {
-        String value = props.getProperty(name);
-        if ((name != null) && (value != null)) {
-          props2.setProperty(name, value);
-        }
-      }
-    }
-
-    return props2;
-  }
-
-  ////////////////////////  Constructors  ////////////////////////
-
-  /**
-   * Creates a new <code>DistributedSystemConfigImpl</code> based on
-   * the configuration stored in a <code>DistributedSystem</code>'s
-   * <code>DistributionConfig</code>. 
-   */
-  public DistributedSystemConfigImpl(DistributionConfig distConfig,
-                                     String remoteCommand) {
-    if (distConfig == null) {
-      throw new IllegalArgumentException(LocalizedStrings.DistributedSystemConfigImpl_DISTRIBUTIONCONFIG_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-
-    this.mcastAddress = InetAddressUtil.toString(distConfig.getMcastAddress());
-    this.mcastPort = distConfig.getMcastPort();
-    this.locators = distConfig.getLocators();
-    this.membershipPortRange = 
-                  getMembershipPortRangeString(distConfig.getMembershipPortRange());
-
-    this.systemName = distConfig.getName();
-    
-    this.sslEnabled = distConfig.getSSLEnabled();
-    this.sslCiphers = distConfig.getSSLCiphers();
-    this.sslProtocols = distConfig.getSSLProtocols();
-    this.sslAuthenticationRequired = distConfig.getSSLRequireAuthentication();
-
-    this.logFile = distConfig.getLogFile().getPath();
-    this.logLevel =
-      LogWriterImpl.levelToString(distConfig.getLogLevel());
-    this.logDiskSpaceLimit = distConfig.getLogDiskSpaceLimit();
-    this.logFileSizeLimit = distConfig.getLogFileSizeLimit();
-    
-    basicSetBindAddress(distConfig.getBindAddress());
-    this.tcpPort = distConfig.getTcpPort();
-    
-    this.disableTcp = distConfig.getDisableTcp();
-
-    this.remoteCommand = remoteCommand;
-    this.serverBindAddress = distConfig.getServerBindAddress();
-    this.enableNetworkPartitionDetection = distConfig.getEnableNetworkPartitionDetection();
-    this.memberTimeout = distConfig.getMemberTimeout();
-    this.refreshInterval = DistributedSystemConfig.DEFAULT_REFRESH_INTERVAL;
-    this.gfSecurityProperties = (Properties) distConfig.getSSLProperties().clone();
-  }
-
-  /**
-   * Zero-argument constructor to be used only by subclasses.
-   *
-   * @since 4.0
-   */
-  protected DistributedSystemConfigImpl() {
-
-  }
-  
-  /**
-   * Creates a new <code>DistributedSystemConifgImpl</code> whose
-   * configuration is specified by the given <code>Properties</code>
-   * object.
-   */
-  protected DistributedSystemConfigImpl(Properties props) {
-    this(props, false);
-  }
-
-  /**
-   * Creates a new <code>DistributedSystemConifgImpl</code> whose configuration
-   * is specified by the given <code>Properties</code> object.
-   * 
-   * @param props
-   *          The configuration properties specified by the caller
-   * @param ignoreGemFirePropsFile
-   *          whether to skip loading distributed system properties from
-   *          gemfire.properties file
-   *          
-   * @since 6.5
-   */
-  protected DistributedSystemConfigImpl(Properties props, 
-                                        boolean ignoreGemFirePropsFile) {
-    this(new DistributionConfigImpl(
-        filterOutAdminProperties(props), ignoreGemFirePropsFile), 
-        DEFAULT_REMOTE_COMMAND);
-    String remoteCommand = props.getProperty(REMOTE_COMMAND_NAME);
-    if (remoteCommand != null) {
-      this.remoteCommand = remoteCommand;
-    }
-
-    String entityConfigXMLFile =
-      props.getProperty(ENTITY_CONFIG_XML_FILE_NAME);
-    if (entityConfigXMLFile != null) {
-      this.entityConfigXMLFile = entityConfigXMLFile;
-    }
-
-    String refreshInterval =
-      props.getProperty(REFRESH_INTERVAL_NAME);
-    if (refreshInterval != null) {
-      try {
-       this.refreshInterval = Integer.parseInt(refreshInterval);
-      } catch (NumberFormatException nfEx) {
-        throw new IllegalArgumentException(LocalizedStrings.DistributedSystemConfigImpl_0_IS_NOT_A_VALID_INTEGER_1.toLocalizedString(new Object[] { refreshInterval, REFRESH_INTERVAL_NAME }));
-      }
-    }
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Returns the <code>LogWriterI18n</code> to be used when administering
-   * the distributed system. Returns null if nothing has been provided via
-   * <code>setInternalLogWriter</code>.
-   *
-   * @since 4.0
-   */
-  public InternalLogWriter getInternalLogWriter() {
-    // LOG: used only for sharing between IDS, AdminDSImpl and AgentImpl -- to prevent multiple banners, etc.
-    synchronized (this) {
-      return this.logWriter;
-    }
-  }
-
-  /**
-   * Sets the <code>LogWriterI18n</code> to be used when administering the
-   * distributed system.
-   */
-  public void setInternalLogWriter(InternalLogWriter logWriter) {
-    // LOG: used only for sharing between IDS, AdminDSImpl and AgentImpl -- to prevent multiple banners, etc.
-    synchronized (this) {
-      this.logWriter = logWriter;
-    }    
-  }
-  
-  public LogConfig createLogConfig() {
-    return new LogConfig() {
-        @Override
-        public int getLogLevel() {
-          return LogWriterImpl.levelNameToCode(DistributedSystemConfigImpl.this.getLogLevel());
-        }
-        @Override
-        public File getLogFile() {
-          return new File(DistributedSystemConfigImpl.this.getLogFile());
-        }
-        @Override
-        public int getLogFileSizeLimit() {
-          return DistributedSystemConfigImpl.this.getLogFileSizeLimit();
-        }
-        @Override
-        public int getLogDiskSpaceLimit() {
-          return DistributedSystemConfigImpl.this.getLogDiskSpaceLimit();
-        }
-        @Override
-        public String getName() {
-          return DistributedSystemConfigImpl.this.getSystemName();
-        }
-        @Override
-        public String toLoggerString() {
-          return DistributedSystemConfigImpl.this.toString();
-        }
-      };
-  }
-
-  /**
-   * Marks this config object as "read only".  Attempts to modify a
-   * config object will result in a {@link IllegalStateException}
-   * being thrown.
-   *
-   * @since 4.0
-   */
-  void setDistributedSystem(AdminDistributedSystemImpl system) {
-    this.system = system;
-  }
-
-  /**
-   * Checks to see if this config object is "read only".  If it is,
-   * then an {@link IllegalStateException} is thrown.
-   *
-   * @since 4.0
-   */
-  protected void checkReadOnly() {
-    if (this.system != null) {
-      throw new IllegalStateException(LocalizedStrings.DistributedSystemConfigImpl_A_DISTRIBUTEDSYSTEMCONFIG_OBJECT_CANNOT_BE_MODIFIED_AFTER_IT_HAS_BEEN_USED_TO_CREATE_AN_ADMINDISTRIBUTEDSYSTEM.toLocalizedString());
-    }
-  }
-
-  public String getEntityConfigXMLFile() {
-    return this.entityConfigXMLFile;
-  }
-
-  public void setEntityConfigXMLFile(String xmlFile) {
-    checkReadOnly();
-    this.entityConfigXMLFile = xmlFile;
-    configChanged();
-  }
-
-  /**
-   * Parses the XML configuration file that describes managed
-   * entities.
-   *
-   * @throws AdminXmlException
-   *         If a problem is encountered while parsing the XML file.
-   */
-  private void parseEntityConfigXMLFile() {
-    String fileName = this.entityConfigXMLFile;
-    File xmlFile = new File(fileName);
-    if (!xmlFile.exists()) {
-      if (DEFAULT_ENTITY_CONFIG_XML_FILE.equals(fileName)) {
-        // Default doesn't exist, no big deal
-        return;
-      } else {
-        throw new AdminXmlException(LocalizedStrings.DistributedSystemConfigImpl_ENTITY_CONFIGURATION_XML_FILE_0_DOES_NOT_EXIST.toLocalizedString(fileName));
-      }
-    }
-
-    try {
-      InputStream is = new FileInputStream(xmlFile);
-      try {
-        ManagedEntityConfigXmlParser.parse(is, this);
-      }
-      finally {
-        is.close();
-      }
-    } 
-    catch (IOException ex) {
-      throw new AdminXmlException(LocalizedStrings.DistributedSystemConfigImpl_WHILE_PARSING_0.toLocalizedString(fileName), ex);
-    }
-  }
-
-  public String getSystemId() {
-    return this.systemId;
-  }
-
-  public void setSystemId(String systemId) {
-    checkReadOnly();
-    this.systemId = systemId;
-    configChanged();
-  }
-  
-  /** Returns the multicast address for the system */
-  public String getMcastAddress() {
-    return this.mcastAddress;
-  }
-  
-  public void setMcastAddress(String mcastAddress) {
-    checkReadOnly();
-    this.mcastAddress = mcastAddress;
-    configChanged();
-  }
-
-  /** Returns the multicast port for the system */
-  public int getMcastPort() {
-    return this.mcastPort;
-  }
-  
-  public void setMcastPort(int mcastPort) {
-    checkReadOnly();
-    this.mcastPort = mcastPort;
-    configChanged();
-  }
-
-  public int getAckWaitThreshold() {
-    return this.ackWaitThreshold;
-  }
-  
-  public void setAckWaitThreshold(int seconds) {
-    checkReadOnly();
-    this.ackWaitThreshold = seconds;
-    configChanged();
-  }
-
-  public int getAckSevereAlertThreshold() {
-    return this.ackSevereAlertThreshold;
-  }
-  
-  public void setAckSevereAlertThreshold(int seconds) {
-    checkReadOnly();
-    this.ackSevereAlertThreshold = seconds;
-    configChanged();
-  }
-
-  /** Returns the comma-delimited list of locators for the system */
-  public String getLocators() {
-    return this.locators;
-  }
-
-  public void setLocators(String locators) {
-    checkReadOnly();
-    if (locators == null) {
-      this.locators = "";
-    }
-    else {
-      this.locators = locators;
-    }
-    configChanged();
-  }
-  
-  /**
-   * Returns the value for membership-port-range
-   * 
-   * @return the value for the Distributed System property membership-port-range 
-   */
-  public String getMembershipPortRange() {
-    return this.membershipPortRange;
-  }
-
-  /**
-   * Sets the Distributed System property membership-port-range
-   * 
-   * @param membershipPortRangeStr
-   *          the value for membership-port-range given as two numbers separated 
-   *          by a minus sign.
-   */
-  public void setMembershipPortRange(String membershipPortRangeStr) {
-    /*
-     * FIXME: Setting attributes in DistributedSystemConfig has no effect on
-     * DistributionConfig which is actually used for connection with DS. This is
-     * true for all such attributes. Should be addressed in the Admin Revamp if 
-     * we want these 'set' calls to affect anything. Then we can use the 
-     * validation code in DistributionConfigImpl code.
-     */
-    checkReadOnly();
-    if (membershipPortRangeStr == null) {
-      this.membershipPortRange = getMembershipPortRangeString(DEFAULT_MEMBERSHIP_PORT_RANGE);
-    } else {
-      try {
-        if (validateMembershipRange(membershipPortRangeStr)) {
-          this.membershipPortRange = membershipPortRangeStr;
-        } else {
-          throw new IllegalArgumentException(
-              LocalizedStrings.DistributedSystemConfigImpl_INVALID_VALUE_FOR_MEMBERSHIP_PORT_RANGE
-                  .toLocalizedString(new Object[] {membershipPortRangeStr, 
-                                                   MEMBERSHIP_PORT_RANGE_NAME}));
-        }
-      } catch (Exception e) {
-        if (logger.isDebugEnabled()) {
-          logger.debug(e.getMessage(), e);
-        }
-      }
-    }
-  }
-  
-  public void setTcpPort(int port) {
-    checkReadOnly();
-    this.tcpPort = port;
-    configChanged();
-  }
-  
-  public int getTcpPort() {
-    return this.tcpPort;
-  }
-
-  /**
-   * Validates the given string - which is expected in the format as two numbers
-   * separated by a minus sign - in to an integer array of length 2 with first
-   * element as lower end & second element as upper end of the range.
-   * 
-   * @param membershipPortRange
-   *          membership-port-range given as two numbers separated by a minus
-   *          sign.
-   * @return true if the membership-port-range string is valid, false otherwise
-   */
-  private boolean validateMembershipRange(String membershipPortRange) {
-    int[] range = null;
-    if (membershipPortRange != null && membershipPortRange.trim().length() > 0) {
-      String[] splitted = membershipPortRange.split("-");
-      range = new int[2];
-      range[0] = Integer.parseInt(splitted[0].trim());
-      range[1] = Integer.parseInt(splitted[1].trim());
-      //NumberFormatException if any could be thrown
-      
-      if (range[0] < 0 || range[0] >= range[1] || 
-          range[1] < 0 || range[1] > 65535) {
-        range = null;
-      }
-    }
-    return range != null;
-  }  
-  
-  /**
-   * @return the String representation of membershipPortRange with lower & upper
-   *         limits of the port range separated by '-' e.g. 1-65535
-   */
-  private static String getMembershipPortRangeString(int[] membershipPortRange) {
-    String membershipPortRangeString = "";
-    if (membershipPortRange != null && 
-        membershipPortRange.length == 2) {
-      membershipPortRangeString = membershipPortRange[0] + "-" + 
-                                  membershipPortRange[1];
-    }
-    
-    return membershipPortRangeString;
-  }
-
-  public String getBindAddress() {
-    return this.bindAddress;
-  }
-
-  public void setBindAddress(String bindAddress) {
-    checkReadOnly();
-    basicSetBindAddress(bindAddress);
-    configChanged();
-  }
-  
-  public String getServerBindAddress() {
-    return this.serverBindAddress;
-  }
-
-  public void setServerBindAddress(String bindAddress) {
-    checkReadOnly();
-    basicSetServerBindAddress(bindAddress);
-    configChanged();
-  }
-  
-  public boolean getDisableTcp() {
-    return this.disableTcp;
-  }
-  
-  public void setDisableTcp(boolean flag) {
-    checkReadOnly();
-    disableTcp = flag;
-    configChanged();
-  }
-
-  public void setEnableNetworkPartitionDetection(boolean newValue) {
-    checkReadOnly();
-    this.enableNetworkPartitionDetection = newValue;
-    configChanged();
-  }
-  public boolean getEnableNetworkPartitionDetection() {
-    return this.enableNetworkPartitionDetection;
-  }
-  public void setDisableAutoReconnect(boolean newValue) {
-    checkReadOnly();
-    this.disableAutoReconnect = newValue;
-    configChanged();
-  }
-  public boolean getDisableAutoReconnect() {
-    return this.disableAutoReconnect;
-  }
-  public int getMemberTimeout() {
-   return this.memberTimeout;
-  }
-  public void setMemberTimeout(int value) {
-    checkReadOnly();
-    this.memberTimeout = value;
-    configChanged();
-  }
-
-  private void basicSetBindAddress(String bindAddress) {
-    if (!validateBindAddress(bindAddress)) {
-      throw new IllegalArgumentException(LocalizedStrings.DistributedSystemConfigImpl_INVALID_BIND_ADDRESS_0.toLocalizedString(bindAddress));
-    }
-    this.bindAddress = bindAddress;
-  }
-  
-  private void basicSetServerBindAddress(String bindAddress) {
-    if (!validateBindAddress(bindAddress)) {
-      throw new IllegalArgumentException(LocalizedStrings.DistributedSystemConfigImpl_INVALID_BIND_ADDRESS_0.toLocalizedString(bindAddress));
-    }
-    this.serverBindAddress = bindAddress;
-  }
-  
-  /** Returns the remote command setting to use for remote administration */
-  public String getRemoteCommand() {
-    return this.remoteCommand;
-  }
-  
-  /**
-   * Sets the remote command for this config object.  This attribute
-   * may be modified after this config object has been used to create
-   * an admin distributed system.
-   */
-  public void setRemoteCommand(String remoteCommand) {
-    if (!ALLOW_ALL_REMOTE_COMMANDS) {
-      checkRemoteCommand(remoteCommand);
-    }
-    this.remoteCommand = remoteCommand;
-    configChanged();
-  }
-  
-  private static final boolean ALLOW_ALL_REMOTE_COMMANDS = Boolean.getBoolean("gemfire.admin.ALLOW_ALL_REMOTE_COMMANDS");
-  private static final String[] LEGAL_REMOTE_COMMANDS = { "rsh", "ssh" };
-  private static final String ILLEGAL_REMOTE_COMMAND_RSH_OR_SSH = "Allowed remote commands include \"rsh {HOST} {CMD}\" or \"ssh {HOST} {CMD}\" with valid rsh or ssh switches. Invalid: ";
-  private final void checkRemoteCommand(final String remoteCommand) {
-    if (remoteCommand == null || remoteCommand.isEmpty()) {
-      return;
-    }
-    final String command = remoteCommand.toLowerCase().trim();
-    if (!command.contains("{host}") || !command.contains("{cmd}")) {
-      throw new IllegalArgumentException(ILLEGAL_REMOTE_COMMAND_RSH_OR_SSH + remoteCommand);
-    }
-    
-    final StringTokenizer tokenizer = new StringTokenizer(command, " ");
-    final ArrayList<String> array = new ArrayList<String>(); 
-    for (int i = 0; tokenizer.hasMoreTokens(); i++) {
-      String string = tokenizer.nextToken();
-      if (i == 0) {
-        // first element must be rsh or ssh
-        boolean found = false;
-        for (int j = 0; j < LEGAL_REMOTE_COMMANDS.length; j++) {
-          if (string.contains(LEGAL_REMOTE_COMMANDS[j])) {
-            // verify command is at end of string
-            if (!(string.endsWith(LEGAL_REMOTE_COMMANDS[j]) || string.endsWith(LEGAL_REMOTE_COMMANDS[j]+".exe"))) {
-              throw new IllegalArgumentException(ILLEGAL_REMOTE_COMMAND_RSH_OR_SSH + remoteCommand);
-            }
-            found = true;
-          }
-        }
-        if (!found) {
-          throw new IllegalArgumentException(ILLEGAL_REMOTE_COMMAND_RSH_OR_SSH + remoteCommand);
-        }
-      } else {
-        final boolean isSwitch = string.startsWith("-");
-        final boolean isHostOrCmd = string.equals("{host}") || string.equals("{cmd}");
-        
-        // additional elements must be switches or values-for-switches or {host} or user@{host} or {cmd}
-        if (!isSwitch && !isHostOrCmd) {
-          final String previous = (array == null || array.isEmpty()) ? null : array.get(array.size()-1);
-          final boolean isValueForSwitch = previous != null && previous.startsWith("-");
-          final boolean isHostWithUser = string.contains("@") && string.endsWith("{host}");
-          
-          if (!(isValueForSwitch || isHostWithUser)) {
-            throw new IllegalArgumentException(ILLEGAL_REMOTE_COMMAND_RSH_OR_SSH + remoteCommand);
-          }
-        }
-      }
-      array.add(string);
-    }
-  }
-  
-	public String getSystemName() {
-		return this.systemName;
-	}
-  
-	public void setSystemName(final String systemName) {
-          checkReadOnly();
-		this.systemName = systemName;
-    configChanged();
-	}
-  
-  /** 
-   * Returns an array of configurations for statically known
-   * CacheServers
-   *
-   * @since 4.0
-   */ 
-  public CacheServerConfig[] getCacheServerConfigs() {
-    return (CacheServerConfig[]) this.cacheServerConfigs.toArray(
-        new CacheServerConfig[this.cacheServerConfigs.size()]);
-  }
-  public CacheVmConfig[] getCacheVmConfigs() {
-    return (CacheVmConfig[]) this.cacheServerConfigs.toArray(new CacheVmConfig[this.cacheServerConfigs.size()]);
-  }
-  
-  
-  /** 
-   * Creates the configuration for a CacheServer
-   *
-   * @since 4.0
-   */
-  public CacheServerConfig createCacheServerConfig() {
-    CacheServerConfig config = new CacheServerConfigImpl();
-    addCacheServerConfig(config);
-    return config;
-  }
-  public CacheVmConfig createCacheVmConfig() {
-    return (CacheVmConfig)createCacheServerConfig();
-  }
-  
-  /** 
-   * Adds the configuration for a CacheServer
-   *
-   * @since 4.0
-   */
-  private void addCacheServerConfig(CacheServerConfig managerConfig) {
-    checkReadOnly();
-
-    if (managerConfig == null) return;
-    for (Iterator iter = this.cacheServerConfigs.iterator(); iter.hasNext();) {
-      CacheServerConfigImpl impl = (CacheServerConfigImpl) iter.next();
-      if (impl.equals(managerConfig)) {
-        return;
-      }
-    }
-    this.cacheServerConfigs.add(managerConfig);
-    configChanged();
-  }
-  
-  /** 
-   * Removes the configuration for a CacheServer
-   *
-   * @since 4.0
-   */
-  public void removeCacheServerConfig(CacheServerConfig managerConfig) {
-    removeCacheVmConfig((CacheVmConfig)managerConfig);
-  }
-  public void removeCacheVmConfig(CacheVmConfig managerConfig) {
-    checkReadOnly();
-    this.cacheServerConfigs.remove(managerConfig);
-    configChanged();
-  }
-
-  /** 
-   * Returns the configurations of all managed distribution locators
-   */
-  public DistributionLocatorConfig[] getDistributionLocatorConfigs() {
-    if (this.system != null) {
-      DistributionLocator[] locators =
-        this.system.getDistributionLocators(); 
-      DistributionLocatorConfig[] configs =
-        new DistributionLocatorConfig[locators.length];
-      for (int i = 0; i < locators.length; i++) {
-        configs[i] = locators[i].getConfig();
-      }
-      return configs;
-
-    } else {
-      Object[] array =
-        new DistributionLocatorConfig[this.locatorConfigs.size()];
-      return (DistributionLocatorConfig[]) this.locatorConfigs.toArray(array);
-    }
-  }
-  
-  /** Creates the configuration for a DistributionLocator */
-  public DistributionLocatorConfig createDistributionLocatorConfig() {
-    checkReadOnly();
-    DistributionLocatorConfig config = new DistributionLocatorConfigImpl();
-    addDistributionLocatorConfig(config);
-    return config;
-  }
-  
-  /** Adds the configuration for a DistributionLocator */
-  private void addDistributionLocatorConfig(DistributionLocatorConfig config) {
-    checkReadOnly();
-    this.locatorConfigs.add(config);
-    configChanged();
-  }
-  
-  /** 
-   * Removes the configuration for a DistributionLocator
-   */
-  public void removeDistributionLocatorConfig(DistributionLocatorConfig config) {
-    checkReadOnly();
-    this.locatorConfigs.remove(config);
-    configChanged();
-  }
-
-  /** 
-   * Validates the bind address.  The address may be a host name or IP address,
-   * but it must not be empty and must be usable for creating an InetAddress.
-   * Cannot have a leading '/' (which InetAddress.toString() produces).
-   *
-   * @param bindAddress host name or IP address to validate
-   */
-  public static boolean validateBindAddress(String bindAddress) {
-    if (bindAddress == null || bindAddress.length() == 0) return true;
-    if (InetAddressUtil.validateHost(bindAddress) == null) return false;
-    return true;
-  }
-  
-  public synchronized void configChanged() {
-    ConfigListener[] clients = null;
-    synchronized(this.listeners) {
-      clients = (ConfigListener[]) 
-          listeners.toArray(new ConfigListener[this.listeners.size()]);
-    }
-    for (int i = 0; i < clients.length; i++) {
-      try {
-        clients[i].configChanged(this);
-      } catch (Exception e) {
-        logger.warn(e.getMessage(), e);
-      }
-    }
-  }
-  
-  /** Registers listener for notification of changes in this config. */
-  public void addListener(ConfigListener listener) {
-    synchronized(this.listeners) {
-      this.listeners.add(listener);
-    }
-  }
-  
-  /** Removes previously registered listener of this config. */
-  public void removeListener(ConfigListener listener) {
-    synchronized(this.listeners) {
-      this.listeners.remove(listener);
-    }
-  }
-  
-  // -------------------------------------------------------------------------
-  //   SSL support...
-  // -------------------------------------------------------------------------
-  private boolean sslEnabled = 
-      DistributionConfig.DEFAULT_SSL_ENABLED;
-  private String sslProtocols = 
-      DistributionConfig.DEFAULT_SSL_PROTOCOLS;
-  private String sslCiphers = 
-      DistributionConfig.DEFAULT_SSL_CIPHERS;
-  private boolean sslAuthenticationRequired = 
-      DistributionConfig.DEFAULT_SSL_REQUIRE_AUTHENTICATION;
-  private Properties sslProperties = new Properties();
-  
-  public boolean isSSLEnabled() {
-    return this.sslEnabled;
-  }
-  public void setSSLEnabled(boolean enabled) {
-    checkReadOnly();
-    this.sslEnabled = enabled;
-    configChanged();
-  }
-  public String getSSLProtocols() {
-    return this.sslProtocols;
-  }
-  public void setSSLProtocols(String protocols) {
-    checkReadOnly();
-    this.sslProtocols = protocols;
-    configChanged();
-  }
-  public String getSSLCiphers() {
-    return this.sslCiphers;
-  }
-  public void setSSLCiphers(String ciphers) {
-    checkReadOnly();
-    this.sslCiphers = ciphers;
-    configChanged();
-  }
-  public boolean isSSLAuthenticationRequired() {
-    return this.sslAuthenticationRequired;
-  }
-  public void setSSLAuthenticationRequired(boolean authRequired) {
-    checkReadOnly();
-    this.sslAuthenticationRequired = authRequired;
-    configChanged();
-  }
-  public Properties getSSLProperties() {
-    return this.sslProperties;
-  }
-
-  public void setSSLProperties(Properties sslProperties) {
-    checkReadOnly();
-    this.sslProperties = sslProperties;
-    if (this.sslProperties == null) {
-      this.sslProperties = new Properties();
-    }
-    configChanged();
-  }
-  
-  public void addSSLProperty(String key, String value) {
-    checkReadOnly();
-    this.sslProperties.put(key, value);
-    configChanged();
-  }
-
-  public void removeSSLProperty(String key) {
-    checkReadOnly();
-    this.sslProperties.remove(key);
-    configChanged();
-  }
-  
-  /**
-   * 
-   * 
-   * @return the gfSecurityProperties
-   * @since 6.6.3
-   */
-  public Properties getGfSecurityProperties() {
-    return gfSecurityProperties;
-  }
-
-  public String getLogFile() {
-    return this.logFile;
-  }
-
-  public void setLogFile(String logFile) {
-    checkReadOnly();
-    this.logFile = logFile;
-    configChanged();
-  }
-
-  public String getLogLevel() {
-    return this.logLevel;
-  }
-
-  public void setLogLevel(String logLevel) {
-    checkReadOnly();
-    this.logLevel = logLevel;
-    configChanged();
-  }
-
-  public int getLogDiskSpaceLimit() {
-    return this.logDiskSpaceLimit;
-  }
-
-  public void setLogDiskSpaceLimit(int limit) {
-    checkReadOnly();
-    this.logDiskSpaceLimit = limit;
-    configChanged();
-  }
-
-  public int getLogFileSizeLimit() {
-    return this.logFileSizeLimit;
-  }
-
-  public void setLogFileSizeLimit(int limit) {
-    checkReadOnly();
-    this.logFileSizeLimit = limit;
-    configChanged();
-  }
-
-  /**
-   * Returns the refreshInterval in seconds
-   */
-  public int getRefreshInterval() {
-    return this.refreshInterval;
-  }
-
-  /**
-   * Sets the refreshInterval in seconds
-   */
-  public void setRefreshInterval(int timeInSecs) {
-    checkReadOnly();
-    this.refreshInterval = timeInSecs;
-    configChanged();
-  }
-
-
-  /**
-   * Makes sure that the mcast port and locators are correct and
-   * consistent.
-   *
-   * @throws IllegalArgumentException
-   *         If configuration is not valid
-   */
-  public void validate() {
-    if (this.getMcastPort() < MIN_MCAST_PORT ||
-        this.getMcastPort() > MAX_MCAST_PORT) {
-      throw new IllegalArgumentException(LocalizedStrings.DistributedSystemConfigImpl_MCASTPORT_MUST_BE_AN_INTEGER_INCLUSIVELY_BETWEEN_0_AND_1.toLocalizedString(new Object[] {Integer.valueOf(MIN_MCAST_PORT), Integer.valueOf(MAX_MCAST_PORT)}));
-    }
-
-    // disabled in 5.1 - multicast and locators can be used together
-    //if (!DEFAULT_LOCATORS.equals(this.getLocators()) &&
-    //    this.mcastPort > 0) { 
-    //  throw new IllegalArgumentException(
-    //    "mcastPort must be zero when locators are specified");
-    //}
-
-    LogWriterImpl.levelNameToCode(this.logLevel);
-
-    if (this.logFileSizeLimit < MIN_LOG_FILE_SIZE_LIMIT || 
-        this.logFileSizeLimit > MAX_LOG_FILE_SIZE_LIMIT) {
-      throw new IllegalArgumentException(LocalizedStrings.DistributedSystemConfigImpl_LOGFILESIZELIMIT_MUST_BE_AN_INTEGER_BETWEEN_0_AND_1.toLocalizedString(new Object[] {Integer.valueOf(MIN_LOG_FILE_SIZE_LIMIT), Integer.valueOf(MAX_LOG_FILE_SIZE_LIMIT)}));
-    }
-
-    if (this.logDiskSpaceLimit < MIN_LOG_DISK_SPACE_LIMIT || 
-        this.logDiskSpaceLimit > MAX_LOG_DISK_SPACE_LIMIT) {
-      throw new IllegalArgumentException(LocalizedStrings.DistributedSystemConfigImpl_LOGDISKSPACELIMIT_MUST_BE_AN_INTEGER_BETWEEN_0_AND_1.toLocalizedString(new Object[] {Integer.valueOf(MIN_LOG_DISK_SPACE_LIMIT), Integer.valueOf(MAX_LOG_DISK_SPACE_LIMIT)}));
-    }
-
-    parseEntityConfigXMLFile();
-  }
-
-  /**
-   * Makes a deep copy of this config object.
-   */
-  @Override
-  public Object clone() throws CloneNotSupportedException {
-    DistributedSystemConfigImpl other =
-      (DistributedSystemConfigImpl) super.clone();
-    other.system = null;
-    other.cacheServerConfigs = new HashSet();
-    other.locatorConfigs = new HashSet();
-
-    DistributionLocatorConfig[] myLocators =
-      this.getDistributionLocatorConfigs();
-    for (int i = 0; i < myLocators.length; i++) {
-      DistributionLocatorConfig locator = myLocators[i];
-      other.addDistributionLocatorConfig((DistributionLocatorConfig) locator.clone());
-    }
-
-    CacheServerConfig[] myCacheServers = this.getCacheServerConfigs();
-    for (int i = 0; i < myCacheServers.length; i++) {
-      CacheServerConfig locator = myCacheServers[i];
-      other.addCacheServerConfig((CacheServerConfig) locator.clone());
-    }
-
-    return other;
-  }
-  
-  @Override
-  public String toString() {
-    StringBuffer buf = new StringBuffer(1000);
-    String lf = System.getProperty("line.separator");
-    if (lf == null) lf = ",";
-    
-    buf.append("DistributedSystemConfig(");
-    buf.append(lf);
-    buf.append("  system-name=");
-    buf.append(String.valueOf(this.systemName));
-    buf.append(lf);
-    buf.append("  "+MCAST_ADDRESS_NAME+"=");
-    buf.append(String.valueOf(this.mcastAddress));
-    buf.append(lf);
-    buf.append("  "+MCAST_PORT_NAME+"=");
-    buf.append(String.valueOf(this.mcastPort));
-    buf.append(lf);
-    buf.append("  "+LOCATORS_NAME+"=");
-    buf.append(String.valueOf(this.locators));
-    buf.append(lf);
-    buf.append("  "+MEMBERSHIP_PORT_RANGE_NAME+"=");
-    buf.append(getMembershipPortRange());
-    buf.append(lf);
-    buf.append("  "+BIND_ADDRESS_NAME+"=");
-    buf.append(String.valueOf(this.bindAddress));
-    buf.append(lf);
-    buf.append("  "+TCP_PORT_NAME+"="+this.tcpPort);
-    buf.append(lf);
-    buf.append("  "+DistributionConfig.DISABLE_TCP_NAME+"=");
-    buf.append(String.valueOf(this.disableTcp));
-    buf.append(lf);
-    buf.append("  "+DistributionConfig.DISABLE_AUTO_RECONNECT_NAME+"=");
-    buf.append(String.valueOf(this.disableAutoReconnect));
-    buf.append(lf);
-    buf.append("  "+REMOTE_COMMAND_NAME+"=");
-    buf.append(String.valueOf(this.remoteCommand));
-    buf.append(lf);
-    buf.append("  "+SSL_ENABLED_NAME+"=");
-    buf.append(String.valueOf(this.sslEnabled));
-    buf.append(lf);
-    buf.append("  "+SSL_CIPHERS_NAME+"=");
-    buf.append(String.valueOf(this.sslCiphers));
-    buf.append(lf);
-    buf.append("  "+SSL_PROTOCOLS_NAME+"=");
-    buf.append(String.valueOf(this.sslProtocols));
-    buf.append(lf);
-    buf.append("  "+SSL_REQUIRE_AUTHENTICATION_NAME+"=");
-    buf.append(String.valueOf(this.sslAuthenticationRequired));
-    buf.append(lf);
-    buf.append("  "+LOG_FILE_NAME+"=");
-    buf.append(String.valueOf(this.logFile));
-    buf.append(lf);
-    buf.append("  "+LOG_LEVEL_NAME+"=");
-    buf.append(String.valueOf(this.logLevel));
-    buf.append(lf);
-    buf.append("  "+LOG_DISK_SPACE_LIMIT_NAME+"=");
-    buf.append(String.valueOf(this.logDiskSpaceLimit));
-    buf.append(lf);
-    buf.append("  "+LOG_FILE_SIZE_LIMIT_NAME+"=");
-    buf.append(String.valueOf(this.logFileSizeLimit));
-    buf.append(lf);
-    buf.append("  "+REFRESH_INTERVAL_NAME+"=");
-    buf.append(String.valueOf(this.refreshInterval));
-    buf.append(")");
-    return buf.toString();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthConfigImpl.java
deleted file mode 100644
index 9ad5de4..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthConfigImpl.java
+++ /dev/null
@@ -1,59 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-
-/**
- * The implementation of <code>DistributedSystemHealthConfig</code>.
- * Note that because it never leaves the management VM, it is not
- * <code>Serializable</code> and is not part of the {@link
- * GemFireHealthConfigImpl} class hierarchy.
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-public class DistributedSystemHealthConfigImpl
-  implements DistributedSystemHealthConfig {
-
-  /** The maximum number of application members that can
-   * unexceptedly leave a healthy the distributed system. */
-  private long maxDepartedApplications =
-    DEFAULT_MAX_DEPARTED_APPLICATIONS;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>DistributedSystemHealthConfigImpl</code> with
-   * the default configuration.
-   */
-  protected DistributedSystemHealthConfigImpl() {
-
-  }
-
-  /////////////////////  Instance Methods  /////////////////////
-
-  public long getMaxDepartedApplications() {
-    return this.maxDepartedApplications;
-  }
-
-  public void setMaxDepartedApplications(long maxDepartedApplications)
-  {
-    this.maxDepartedApplications = maxDepartedApplications;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthEvaluator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthEvaluator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthEvaluator.java
deleted file mode 100644
index 511edba..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthEvaluator.java
+++ /dev/null
@@ -1,172 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.DistributedSystemHealthConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.MembershipListener;
-import java.util.*;
-
-import com.gemstone.gemfire.distributed.internal.membership.*;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * Contains the logic for evaluating the health of an entire GemFire
- * distributed system according to the thresholds provided in a {@link
- * DistributedSystemHealthConfig}.
- *
- * <P>
- *
- * Note that unlike other evaluators, the
- * <code>DistributedSystemHealthEvaluator</code> resides in the
- * "administrator" VM and not in the member VMs.  This is because
- * there only needs to be one
- * <code>DistributedSystemHealthEvaluator</code> per distributed
- * system.
- *
- * @author David Whitlock
- *
- * @since 3.5
- * */
-class DistributedSystemHealthEvaluator
-  extends AbstractHealthEvaluator implements MembershipListener {
-
-  /** The config from which we get the evaluation criteria */
-  private DistributedSystemHealthConfig config;
-
-  /** The distribution manager with which this MembershipListener is
-   * registered */
-  private DM dm;
-
-  /** The description of the distributed system being evaluated */
-  private String description;
-
-  /** The number of application members that have unexpectedly left
-   * since the previous evaluation */
-  private int crashedApplications;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>DistributedSystemHealthEvaluator</code>
-   */
-  DistributedSystemHealthEvaluator(DistributedSystemHealthConfig config,
-                                   DM dm) {
-    super(null, dm);
-
-    this.config = config;
-    this.dm = dm;
-    this.dm.addMembershipListener(this);
-
-    StringBuffer sb = new StringBuffer();
-    sb.append("Distributed System ");
-
-    String desc = null;
-    if (dm instanceof DistributionManager) {
-      desc = 
-        ((DistributionManager) dm).getDistributionConfigDescription();
-    } 
-
-    if (desc != null) {
-      sb.append(desc);
-
-    } else {
-      DistributionConfig dsc = dm.getSystem().getConfig();
-      String locators = dsc.getLocators();
-      if (locators == null || locators.equals("")) {
-        sb.append("using multicast ");
-        sb.append(dsc.getMcastAddress());
-        sb.append(":");
-        sb.append(dsc.getMcastPort());
-
-      } else {
-        sb.append("using locators ");
-        sb.append(locators);
-      }
-    }
-
-    this.description = sb.toString();
-  }
-
-  ////////////////////  Instance Methods  ////////////////////
-
-  @Override
-  protected String getDescription() {
-    return this.description;
-  }
-
-  /**  
-   * Checks to make sure that the number of application members of
-   * the distributed system that have left unexpected since the last
-   * evaluation is less than the {@linkplain
-   * DistributedSystemHealthConfig#getMaxDepartedApplications
-   * threshold}.  If not, the status is "poor" health.
-   */
-  void checkDepartedApplications(List status) {
-    synchronized (this) {
-      long threshold = this.config.getMaxDepartedApplications();
-      if (this.crashedApplications > threshold) {
-        String s = LocalizedStrings.DistributedSystemHealth_THE_NUMBER_OF_APPLICATIONS_THAT_HAVE_LEFT_THE_DISTRIBUTED_SYSTEM_0_EXCEEDS_THE_THRESHOLD_1.toLocalizedString(new Object[] { Long.valueOf(this.crashedApplications), Long.valueOf(threshold)});
-        status.add(poorHealth(s));
-      }
-      this.crashedApplications = 0;
-    }
-  }
-
-  @Override
-  protected void check(List status) {
-    checkDepartedApplications(status);
-  }
-
-  @Override
-  void close() {
-    this.dm.removeMembershipListener(this);
-  }
-
-  public void memberJoined(InternalDistributedMember id) {
-
-  }
-
-  /**
-   * Keeps track of which members depart unexpectedly
-   */
-  public void memberDeparted(InternalDistributedMember id, boolean crashed) {
-    if (!crashed)
-      return;
-    synchronized (this) {
-        int kind = id.getVmKind();
-        switch (kind) {
-        case DistributionManager.LOCATOR_DM_TYPE:
-        case DistributionManager.NORMAL_DM_TYPE:
-          this.crashedApplications++;
-          break;
-        default:
-          break;
-        }
-    } // synchronized
-  }
-
-  public void quorumLost(Set<InternalDistributedMember> failures, List<InternalDistributedMember> remaining) {
-  }
-
-  public void memberSuspect(InternalDistributedMember id,
-      InternalDistributedMember whoSuspected, String reason) {
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthMonitor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthMonitor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthMonitor.java
deleted file mode 100644
index e8ae4e8..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributedSystemHealthMonitor.java
+++ /dev/null
@@ -1,437 +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.admin.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.GemFireHealth;
-import com.gemstone.gemfire.admin.GemFireHealthConfig;
-import com.gemstone.gemfire.admin.GemFireMemberStatus;
-import com.gemstone.gemfire.admin.RegionSubRegionSnapshot;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionAttributes;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.Config;
-import com.gemstone.gemfire.internal.SocketCreator;
-import com.gemstone.gemfire.internal.admin.AdminBridgeServer;
-import com.gemstone.gemfire.internal.admin.CacheInfo;
-import com.gemstone.gemfire.internal.admin.DLockInfo;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.GfManagerAgent;
-import com.gemstone.gemfire.internal.admin.HealthListener;
-import com.gemstone.gemfire.internal.admin.Stat;
-import com.gemstone.gemfire.internal.admin.StatAlertDefinition;
-import com.gemstone.gemfire.internal.admin.StatListener;
-import com.gemstone.gemfire.internal.admin.StatResource;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.LoggingThreadGroup;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * A thread that monitors the health of the distributed system.  It is
- * kind of like a {@link
- * com.gemstone.gemfire.distributed.internal.HealthMonitorImpl}.  In
- * order to get it to place nice with the rest of the health
- * monitoring APIs, this class pretends that it is a
- * <code>GemFireVM</code>.  Kind of hokey, but it beats a bunch of
- * special-case code.
- *
- * @author David Whitlock
- *
- * @since 3.5
- * */
-class DistributedSystemHealthMonitor implements Runnable, GemFireVM {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** Evaluates the health of the distributed system */
-  private DistributedSystemHealthEvaluator eval;
-
-  /** Notified when the health of the distributed system changes */
-  private GemFireHealthImpl healthImpl;
-
-  /** The number of seconds between health checks */
-  private int interval;
-
-  /** The thread in which the monitoring occurs */
-  private Thread thread;
-
-  /** Has this monitor been asked to stop? */
-  private volatile boolean stopRequested = false;
-
-  /** The health of the distributed system the last time we checked. */
-  private GemFireHealth.Health prevHealth = GemFireHealth.GOOD_HEALTH;
-
-  /** The most recent <code>OKAY_HEALTH</code> diagnoses of the
-   * GemFire system */
-  private List okayDiagnoses;
-
-  /** The most recent <code>POOR_HEALTH</code> diagnoses of the
-   * GemFire system */
-  private List poorDiagnoses;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>DistributedSystemHealthMonitor</code> that
-   * evaluates the health of the distributed system against the given
-   * thresholds once every <code>interval</code> seconds.
-   *
-   * @param eval
-   *        Used to evaluate the health of the distributed system
-   * @param healthImpl
-   *        Receives callbacks when the health of the distributed
-   *        system changes
-   * @param interval
-   *        How often the health is checked
-   */
-  DistributedSystemHealthMonitor(DistributedSystemHealthEvaluator eval,
-                                 GemFireHealthImpl healthImpl,
-                                 int interval) {
-    this.eval = eval;
-    this.healthImpl = healthImpl;
-    this.interval = interval;
-    this.okayDiagnoses = new ArrayList();
-    this.poorDiagnoses = new ArrayList();
-
-    ThreadGroup group =
-      LoggingThreadGroup.createThreadGroup(LocalizedStrings.DistributedSystemHealthMonitor_HEALTH_MONITORS.toLocalizedString(), logger);
-    String name = LocalizedStrings.DistributedSystemHealthMonitor_HEALTH_MONITOR_FOR_0.toLocalizedString(eval.getDescription());
-    this.thread = new Thread(group, this, name);
-    this.thread.setDaemon(true);
-  }
-
-  /**
-   * Does the work of monitoring the health of the distributed
-   * system. 
-   */
-  public void run() {
-    if (logger.isDebugEnabled()) {
-      logger.debug("Monitoring health of {} every {} seconds", this.eval.getDescription(), interval);
-    }
-
-    while (!this.stopRequested) {
-      SystemFailure.checkFailure();
-      try {
-        Thread.sleep(interval * 1000);
-        List status = new ArrayList();
-        eval.evaluate(status);
-
-        GemFireHealth.Health overallHealth = GemFireHealth.GOOD_HEALTH;
-        this.okayDiagnoses.clear();
-        this.poorDiagnoses.clear();
-
-        for (Iterator iter = status.iterator(); iter.hasNext(); ) {
-          AbstractHealthEvaluator.HealthStatus health =
-            (AbstractHealthEvaluator.HealthStatus) iter.next();
-          if (overallHealth == GemFireHealth.GOOD_HEALTH) {
-            if ((health.getHealthCode() != GemFireHealth.GOOD_HEALTH)) {
-              overallHealth = health.getHealthCode();
-            }
-
-          } else if (overallHealth == GemFireHealth.OKAY_HEALTH) {
-            if (health.getHealthCode() == GemFireHealth.POOR_HEALTH) {
-              overallHealth = GemFireHealth.POOR_HEALTH;
-            }
-          }
-
-          GemFireHealth.Health healthCode = health.getHealthCode();
-          if (healthCode == GemFireHealth.OKAY_HEALTH) {
-            this.okayDiagnoses.add(health.getDiagnosis());
-
-          } else if (healthCode == GemFireHealth.POOR_HEALTH) {
-            this.poorDiagnoses.add(health.getDiagnosis());
-            break;
-          }
-        }
-        
-        if (overallHealth != prevHealth) {
-          healthImpl.healthChanged(this, overallHealth);
-          this.prevHealth = overallHealth;
-        }
-        
-      } catch (InterruptedException ex) {
-        // We're all done
-        // No need to reset the interrupted flag, since we're going to exit.
-        break;
-      }
-    }
-
-    eval.close();
-    if (logger.isDebugEnabled()) {
-      logger.debug("Stopped checking for distributed system health");
-    }
-  }
-
-  /**
-   * Starts this <code>DistributedSystemHealthMonitor</code>
-   */
-  void start(){
-    this.thread.start();
-  }
-
-  /**
-   * Stops this <code>DistributedSystemHealthMonitor</code>
-   */
-  void stop() {
-    if (this.thread.isAlive()) {
-      this.stopRequested = true;
-      this.thread.interrupt();
-      this.healthImpl.nodeLeft(null, this);
-
-      try {
-        this.thread.join();
-      } 
-      catch (InterruptedException ex) {
-        Thread.currentThread().interrupt();
-        logger.warn(LocalizedMessage.create(LocalizedStrings.DistributedSystemHealthMonitor_INTERRUPTED_WHILE_STOPPING_HEALTH_MONITOR_THREAD), ex);
-      }
-    }
-  }
-
-  //////////////////////  GemFireVM Methods  //////////////////////
-
-  public java.net.InetAddress getHost() {
-    try {
-      return SocketCreator.getLocalHost();
-
-    } catch (Exception ex) {
-      throw new com.gemstone.gemfire.InternalGemFireException(LocalizedStrings.DistributedSystemHealthMonitor_COULD_NOT_GET_LOCALHOST.toLocalizedString());
-    }
-  }
-  
-  public String getName() {
-//    return getId().toString();
-    throw new UnsupportedOperationException("Not a real GemFireVM");
-  }
-
-  public java.io.File getWorkingDirectory() {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public java.io.File getGemFireDir() {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-  
-  public java.util.Date getBirthDate() {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public Properties getLicenseInfo(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public GemFireMemberStatus getSnapshot() {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public RegionSubRegionSnapshot getRegionSnapshot() {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public StatResource[] getStats(String statisticsTypeName){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public StatResource[] getAllStats(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-   
-  public DLockInfo[] getDistributedLockInfo(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public void addStatListener(StatListener observer,
-                              StatResource observedResource,
-                              Stat observedStat){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-  
-  public void removeStatListener(StatListener observer){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }  
-
-  public void addHealthListener(HealthListener observer,
-                                GemFireHealthConfig cfg){
-
-  }
-  
-  public void removeHealthListener(){
-
-  }
-
-  public void resetHealthStatus(){
-    this.prevHealth = GemFireHealth.GOOD_HEALTH;
-  }
-
-  public String[] getHealthDiagnosis(GemFireHealth.Health healthCode){
-    if (healthCode == GemFireHealth.GOOD_HEALTH) {
-      return new String[0];
-
-    } else if (healthCode == GemFireHealth.OKAY_HEALTH) {
-      String[] array = new String[this.okayDiagnoses.size()];
-      this.okayDiagnoses.toArray(array);
-      return array;
-
-    } else {
-      Assert.assertTrue(healthCode == GemFireHealth.POOR_HEALTH);
-      String[] array = new String[this.poorDiagnoses.size()];
-      this.poorDiagnoses.toArray(array);
-      return array;
-    }
-  }
-
-  public Config getConfig(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public void setConfig(Config cfg){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public GfManagerAgent getManagerAgent(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-  
-  public String[] getSystemLogs(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public void setInspectionClasspath(String classpath){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-  
-  public String getInspectionClasspath(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-  
-  public Region[] getRootRegions(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public Region getRegion(CacheInfo c, String path) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public Region createVMRootRegion(CacheInfo c, String name,
-                                   RegionAttributes attrs) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public Region createSubregion(CacheInfo c, String parentPath,
-                                String name, RegionAttributes attrs) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public void setCacheInspectionMode(int mode) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public int getCacheInspectionMode(){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public void takeRegionSnapshot(String regionName, int snapshotId){
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public InternalDistributedMember getId() {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public CacheInfo getCacheInfo() {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public String getVersionInfo() {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public CacheInfo setCacheLockTimeout(CacheInfo c, int v) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public CacheInfo setCacheLockLease(CacheInfo c, int v) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public CacheInfo setCacheSearchTimeout(CacheInfo c, int v) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public AdminBridgeServer addCacheServer(CacheInfo cache)
-    throws AdminException {
-
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public AdminBridgeServer getBridgeInfo(CacheInfo cache, 
-                                         int id)
-    throws AdminException {
-
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public AdminBridgeServer startBridgeServer(CacheInfo cache,
-                                             AdminBridgeServer bridge)
-    throws AdminException {
-
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  public AdminBridgeServer stopBridgeServer(CacheInfo cache,
-                                            AdminBridgeServer bridge)
-    throws AdminException {
-
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  /**
-   * This operation is not supported for this object. Will throw 
-   * UnsupportedOperationException if invoked.
-   */
-  public void setAlertsManager(StatAlertDefinition[] alertDefs, 
-      long refreshInterval, boolean setRemotely) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  /**
-   * This operation is not supported for this object. Will throw 
-   * UnsupportedOperationException if invoked.
-   */
-  public void setRefreshInterval(long refreshInterval) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-
-  /**
-   * This operation is not supported for this object. Will throw 
-   * UnsupportedOperationException if invoked.
-   */
-  public void updateAlertDefinitions(StatAlertDefinition[] alertDefs,
-      int actionCode) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributedSystemHealthMonitor_NOT_A_REAL_GEMFIREVM.toLocalizedString());
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributionLocatorConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributionLocatorConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributionLocatorConfigImpl.java
deleted file mode 100644
index 4ee5b83..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributionLocatorConfigImpl.java
+++ /dev/null
@@ -1,192 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.DistributionLocator;
-import com.gemstone.gemfire.admin.DistributionLocatorConfig;
-import com.gemstone.gemfire.distributed.internal.InternalLocator;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import java.net.InetAddress;
-import java.util.Properties;
-
-/**
- * Provides an implementation of
- * <code>DistributionLocatorConfig</code>.
- *
- * @author David Whitlock
- * @since 4.0
- */
-public class DistributionLocatorConfigImpl 
-  extends ManagedEntityConfigImpl 
-  implements DistributionLocatorConfig {
-
-  /** The minimum networking port (0) */
-  public static final int MIN_PORT = 0;
-
-  /** The maximum networking port (65535) */
-  public static final int MAX_PORT = 65535;
-  
-  //////////////////////  Instance Fields  //////////////////////
-
-  /** The port on which this locator listens */
-  private int port;
-
-  /** The address to bind to on a multi-homed host */
-  private String bindAddress;
-  
-  /** The properties used to configure the DistributionLocator's
-      DistributedSystem */
-  private Properties dsProperties;
-
-  /** The DistributionLocator that was created with this config */
-  private DistributionLocator locator;
-
-  //////////////////////  Static Methods  //////////////////////
-
-  /**
-   * Contacts a distribution locator on the given host and port and
-   * creates a <code>DistributionLocatorConfig</code> for it.
-   *
-   * @see InternalLocator#getLocatorInfo
-   *
-   * @return <code>null</code> if the locator cannot be contacted
-   */
-  static DistributionLocatorConfig
-    createConfigFor(String host, int port, InetAddress bindAddress) {
-
-    String[] info = null;
-    if (bindAddress != null) {
-      info = InternalLocator.getLocatorInfo(bindAddress, port);
-    }
-    else {
-      info = InternalLocator.getLocatorInfo(InetAddressUtil.toInetAddress(host), port);
-    }
-    if (info == null) {
-      return null;
-    }
-
-    DistributionLocatorConfigImpl config =
-      new DistributionLocatorConfigImpl();
-    config.setHost(host);
-    config.setPort(port);
-    if (bindAddress != null) {
-      config.setBindAddress(bindAddress.getHostAddress());
-    }
-    config.setWorkingDirectory(info[0]);
-    config.setProductDirectory(info[1]);
-
-    return config;
-  }
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>DistributionLocatorConfigImpl</code> with the
-   * default settings.
-   */
-  public DistributionLocatorConfigImpl() {
-    this.port = 0;
-    this.bindAddress = null;
-    this.locator = null;
-    this.dsProperties = new java.util.Properties();
-    this.dsProperties.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
-  }
-
-  /////////////////////  Instance Methods  /////////////////////
-
-  /**
-   * Sets the locator that was configured with this
-   * <Code>DistributionLocatorConfigImpl</code>. 
-   */
-  void setLocator(DistributionLocator locator) {
-    this.locator = locator;
-  }
-
-  @Override
-  protected boolean isReadOnly() {
-    return this.locator != null && this.locator.isRunning();
-  }
-
-  public int getPort() {
-    return this.port;
-  }
-
-  public void setPort(int port) {
-    checkReadOnly();
-    this.port = port;
-    configChanged();
-  }
-
-  public String getBindAddress() {
-    return this.bindAddress;
-  }
-
-  public void setBindAddress(String bindAddress) {
-    checkReadOnly();
-    this.bindAddress = bindAddress;
-    configChanged();
-  }
-  
-  public void setDistributedSystemProperties(Properties props) {
-    this.dsProperties = props;
-  }
-  
-  public Properties getDistributedSystemProperties() {
-    return this.dsProperties;
-  }
-
-  @Override
-  public void validate() {
-    super.validate();
-
-    if (port < MIN_PORT || port > MAX_PORT) {
-      throw new IllegalArgumentException(LocalizedStrings.DistributionLocatorConfigImpl_PORT_0_MUST_BE_AN_INTEGER_BETWEEN_1_AND_2.toLocalizedString(new Object[] {Integer.valueOf(port), Integer.valueOf(MIN_PORT), Integer.valueOf(MAX_PORT)}));
-    }
-
-    if (this.bindAddress != null &&
-        InetAddressUtil.validateHost(this.bindAddress) == null) {
-      throw new IllegalArgumentException(LocalizedStrings.DistributionLocatorConfigImpl_INVALID_HOST_0.toLocalizedString(this.bindAddress));
-    }
-  }
-
-  /**
-   * Currently, listeners are not supported on the locator config.
-   */
-  @Override
-  protected void configChanged() {
-
-  }
-
-  @Override
-  public Object clone() throws CloneNotSupportedException {
-    DistributionLocatorConfigImpl clone =
-      (DistributionLocatorConfigImpl) super.clone();
-    clone.locator = null;
-    return clone;
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder sb = new StringBuilder();
-    sb.append("DistributionLocatorConfig: host=").append(getHost());
-    sb.append(", bindAddress=").append(getBindAddress());
-    sb.append(", port=").append(getPort());
-    return sb.toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributionLocatorImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributionLocatorImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributionLocatorImpl.java
deleted file mode 100755
index 545f9de..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DistributionLocatorImpl.java
+++ /dev/null
@@ -1,331 +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.admin.internal;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.AdminDistributedSystem;
-import com.gemstone.gemfire.admin.DistributionLocator;
-import com.gemstone.gemfire.admin.DistributionLocatorConfig;
-import com.gemstone.gemfire.admin.ManagedEntityConfig;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.admin.remote.DistributionLocatorId;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * Default administrative implementation of a DistributionLocator.
- *
- * @author    Kirk Lund
- * @since     3.5
- */
-public class DistributionLocatorImpl
-  implements DistributionLocator, InternalManagedEntity {
-  
-  private static final Logger logger = LogService.getLogger();
-  
-  /** How many new <code>DistributionLocator</code>s have been created? */
-  private static int newLocators = 0;
-
-  ////////////////////  Instance Fields  ////////////////////
-
-  /** The configuration object for this locator */
-  private final DistributionLocatorConfigImpl config;
-
-  /** The id of this distribution locator */
-  private final String id;
-  
-  /** Used to control the actual DistributionLocator service */
-  private ManagedEntityController controller;
-
-  /** The system that this locator is a part of */
-  private AdminDistributedSystemImpl system;
-
-  // -------------------------------------------------------------------------
-  //   constructor(s)...
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Constructs new instance of <code>DistributionLocatorImpl</code>
-   * that is a member of the given distributed system.
-   */
-  public DistributionLocatorImpl(DistributionLocatorConfig config,
-                                 AdminDistributedSystemImpl system) {
-    this.config = (DistributionLocatorConfigImpl) config;
-    this.config.validate();
-    this.config.setManagedEntity(this);
-    this.id = getNewId();
-    this.controller = system.getEntityController();
-    this.system = system;
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Attribute accessors/mutators...
-  // -------------------------------------------------------------------------
-  
-        public String getId() {
-                return this.id;
-        }
-
-  public String getNewId() {
-    synchronized (DistributionLocatorImpl.class) {
-      return "Locator" + (++newLocators);
-    }
-  }
-
-  /**
-   * Returns the configuration object for this locator.
-   *
-   * @since 4.0
-   */
-  public DistributionLocatorConfig getConfig() {
-    return this.config;
-  }
-
-  public AdminDistributedSystem getDistributedSystem() {
-    return this.system;
-  }
-
-  /**
-   * Unfortunately, it doesn't make much sense to maintain the state
-   * of a locator.  The admin API does not receive notification when
-   * the locator actually starts and stops.  If we try to guess, we'll
-   * just end up with race conditions galore.  So, we can't fix bug
-   * 32455 for locators.
-   */
-  public int setState(int state) {
-    throw new UnsupportedOperationException(LocalizedStrings.DistributionLocatorImpl_CAN_NOT_SET_THE_STATE_OF_A_LOCATOR.toLocalizedString());
-  }
-
-  // -------------------------------------------------------------------------
-  //   Operations...
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Polls to determine whether or not this managed entity has
-   * started.
-   */
-  public boolean waitToStart(long timeout) 
-    throws InterruptedException {
-
-    if (Thread.interrupted()) throw new InterruptedException();
-    
-    long start = System.currentTimeMillis();
-    while (System.currentTimeMillis() - start < timeout) {
-      if (this.isRunning()) {
-        return true;
-
-      } else {
-        Thread.sleep(100);
-      }
-    }
-
-    logger.info(LocalizedMessage.create(
-      LocalizedStrings.DistributionLocatorImpl_DONE_WAITING_FOR_LOCATOR));
-    return this.isRunning();
-  }
-
-  /**
-   * Polls to determine whether or not this managed entity has
-   * stopped.
-   */
-  public boolean waitToStop(long timeout) 
-    throws InterruptedException {
-
-    if (Thread.interrupted()) throw new InterruptedException();
-    
-    long start = System.currentTimeMillis();
-    while (System.currentTimeMillis() - start < timeout) {
-      if (!this.isRunning()) {
-        return true;
-
-      } else {
-        Thread.sleep(100);
-      }
-    }
-
-    return !this.isRunning();
-  }
-
-  public boolean isRunning() {
-    DM dm = ((AdminDistributedSystemImpl)getDistributedSystem()).getDistributionManager();
-    if(dm == null) {
-      try {
-        return this.controller.isRunning(this);
-      }
-      catch (IllegalStateException e) {
-        return false;
-      }
-    }
-    
-    String host = getConfig().getHost();
-    int port = getConfig().getPort();
-    String bindAddress = getConfig().getBindAddress();
-    
-    boolean found = false;
-    Map<InternalDistributedMember, Collection<String>> hostedLocators = dm.getAllHostedLocators();
-    for (Iterator<InternalDistributedMember> memberIter = hostedLocators.keySet().iterator(); memberIter.hasNext();) {
-      for (Iterator<String> locatorIter = hostedLocators.get(memberIter.next()).iterator(); locatorIter.hasNext();) {
-        DistributionLocatorId locator = new DistributionLocatorId(locatorIter.next());
-        found = found || locator.getHost().getHostAddress().equals(host);
-        found = found || locator.getHost().getHostName().equals(host);
-        if (!found && !host.contains(".")) {
-          try {
-            InetAddress inetAddr = InetAddress.getByName(host);
-            found = locator.getHost().getHostName().equals(inetAddr.getHostName());
-            if (!found) {
-              found = locator.getHost().getHostAddress().equals(inetAddr.getHostAddress());
-            }
-          }
-          catch (UnknownHostException e) {
-            // try config host as if it is an IP address instead of host name
-          }
-        }
-        if (locator.getBindAddress() != null && !locator.getBindAddress().isEmpty()
-            && bindAddress != null && !bindAddress.isEmpty()) {
-          found = found && locator.getBindAddress().equals(bindAddress);
-        }
-        found = found && locator.getPort() == port;
-        if (found) {
-          return true;
-        }
-      }
-    }
-    return found;
-  }
-  
-  public void start() {
-    this.config.validate();
-    this.controller.start(this);
-    this.config.setLocator(this);
-    this.system.updateLocatorsString();
-  }
-  
-  public void stop() {
-    this.controller.stop(this);
-    this.config.setLocator(null);
-  }
-  
-  public String getLog() {
-    return this.controller.getLog(this);
-  }
-  
-	/**
-	 * Returns a string representation of the object.
-	 * 
-	 * @return a string representation of the object
-	 */
-  @Override
-	public String toString() {
-		return "DistributionLocator " + getId();
-	}
-
-  ////////////////////////  Command execution  ////////////////////////
-
-  public ManagedEntityConfig getEntityConfig() {
-    return this.getConfig();
-  }
-
-  public String getEntityType() {
-    return "Locator";
-  }
-
-  public String getStartCommand() {
-    StringBuffer sb = new StringBuffer();
-    sb.append(this.controller.getProductExecutable(this, "gemfire"));
-    sb.append(" start-locator -q -dir=");
-    sb.append(this.getConfig().getWorkingDirectory());
-    sb.append(" -port=");
-    sb.append(this.getConfig().getPort());
-    Properties props = config.getDistributedSystemProperties();
-    Enumeration en = props.propertyNames();
-    while (en.hasMoreElements()) {
-      String pn = (String)en.nextElement();
-      sb.append(" -Dgemfire." + pn + "=" + props.getProperty(pn));
-    }
-
-    String bindAddress = this.getConfig().getBindAddress();
-    if (bindAddress != null && bindAddress.length() > 0) {
-      sb.append(" -address=");
-      sb.append(this.getConfig().getBindAddress());
-    }
-    sb.append(" ");
-
-    String sslArgs =
-      this.controller.buildSSLArguments(this.system.getConfig());
-    if (sslArgs != null) {
-      sb.append(sslArgs);
-    }
-
-    return sb.toString().trim();
-  }
-
-  public String getStopCommand() {
-    StringBuffer sb = new StringBuffer();
-    sb.append(this.controller.getProductExecutable(this, "gemfire"));
-    sb.append(" stop-locator -q -dir=");
-    sb.append(this.getConfig().getWorkingDirectory());
-    sb.append(" -port=");
-    sb.append(this.getConfig().getPort());
-
-    String bindAddress = this.getConfig().getBindAddress();
-    if (bindAddress != null && bindAddress.length() > 0) {
-      sb.append(" -address=");
-      sb.append(this.getConfig().getBindAddress());
-    }
-    sb.append(" ");
-
-    String sslArgs =
-      this.controller.buildSSLArguments(this.system.getConfig());
-    if (sslArgs != null) {
-      sb.append(sslArgs);
-    }
-
-    return sb.toString().trim();
-  }
-
-  public String getIsRunningCommand() {
-    StringBuffer sb = new StringBuffer();
-    sb.append(this.controller.getProductExecutable(this, "gemfire"));
-    sb.append(" status-locator -dir=");
-    sb.append(this.getConfig().getWorkingDirectory());
-
-    return sb.toString().trim();
-  }
-
-  public String getLogCommand() {
-    StringBuffer sb = new StringBuffer();
-    sb.append(this.controller.getProductExecutable(this, "gemfire"));
-    sb.append(" tail-locator-log -dir=");
-    sb.append(this.getConfig().getWorkingDirectory());
-
-    return sb.toString().trim();
-  }
-
-}
-


[09/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentImpl.java
deleted file mode 100644
index 4d1ad41..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentImpl.java
+++ /dev/null
@@ -1,1622 +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.admin.jmx.internal;
-
-import java.io.File;
-import java.io.IOException;
-import java.rmi.server.RMIClientSocketFactory;
-import java.rmi.server.RMIServerSocketFactory;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanException;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.NotificationFilter;
-import javax.management.NotificationListener;
-import javax.management.ObjectName;
-import javax.management.OperationsException;
-import javax.management.ReflectionException;
-import javax.management.modelmbean.ModelMBean;
-import javax.management.remote.JMXConnectionNotification;
-import javax.management.remote.JMXConnectorServer;
-import javax.management.remote.JMXConnectorServerFactory;
-import javax.management.remote.JMXServiceURL;
-import javax.management.remote.rmi.RMIConnectorServer;
-import javax.rmi.ssl.SslRMIClientSocketFactory;
-
-import mx4j.tools.adaptor.http.HttpAdaptor;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.GemFireException;
-import com.gemstone.gemfire.GemFireIOException;
-import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminDistributedSystem;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.jmx.Agent;
-import com.gemstone.gemfire.admin.jmx.AgentConfig;
-import com.gemstone.gemfire.admin.jmx.AgentFactory;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.i18n.StringId;
-import com.gemstone.gemfire.internal.Banner;
-import com.gemstone.gemfire.internal.GemFireVersion;
-import com.gemstone.gemfire.internal.admin.remote.TailLogResponse;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-import com.gemstone.gemfire.internal.logging.LogConfig;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.LogWriterFactory;
-import com.gemstone.gemfire.internal.logging.LoggingThreadGroup;
-import com.gemstone.gemfire.internal.logging.log4j.AlertAppender;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-import com.gemstone.gemfire.internal.logging.log4j.LogMarker;
-import com.gemstone.gemfire.internal.logging.log4j.LogWriterAppender;
-import com.gemstone.gemfire.internal.logging.log4j.LogWriterAppenders;
-
-/**
- * The GemFire JMX Agent provides the ability to administrate one GemFire
- * distributed system via JMX.
- *
- * @author    Kirk Lund
- * @author    David Whitlock
- * @since     3.5
- */
-public class AgentImpl
-implements com.gemstone.gemfire.admin.jmx.Agent,
-           com.gemstone.gemfire.admin.jmx.internal.ManagedResource {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /**
-   * MX4J HttpAdaptor only supports "basic" as an authentication method.
-   * Enabling HttpAdaptor authentication ({@link
-   * AgentConfig#HTTP_AUTHENTICATION_ENABLED_NAME}) causes the browser to
-   * require a login with username ({@link
-   * AgentConfig#HTTP_AUTHENTICATION_USER_NAME}) and password ({@link
-   * AgentConfig#HTTP_AUTHENTICATION_PASSWORD_NAME}).
-   */
-  private static final String MX4J_HTTPADAPTOR_BASIC_AUTHENTICATION = "basic";
-
-  /** JMX Service URL template for JMX/RMI Connector Server */
-  private static final String JMX_SERVICE_URL =
-                              "service:jmx:rmi://{0}:{1}/jndi/rmi://{2}:{3}{4}";
-
-  /**
-   * Set third-party logging configration: MX4J, Jakarta Commons-Logging.
-   */
-  static {
-    checkDebug();
-    String commonsLog = System.getProperty("org.apache.commons.logging.log");
-    if (commonsLog == null || commonsLog.length() == 0) {
-      System.setProperty("org.apache.commons.logging.log",
-                         "org.apache.commons.logging.impl.SimpleLog");
-    }
-  }
-
-  /** Enables mx4j tracing if Agent debugging is enabled. */
-  private static void checkDebug() {
-    try {
-      if (Boolean.getBoolean("gfAgentDebug")) {
-        mx4j.log.Log.setDefaultPriority(mx4j.log.Logger.TRACE); // .DEBUG
-      }
-    }
-    catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    }
-    catch (Throwable t) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      /*ignore*/
-      }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Member variables
-  // -------------------------------------------------------------------------
-
-  /** This Agent's log writer */
-  private LogWriterAppender logWriterAppender;
-  private InternalLogWriter logWriter;
-
-  /** This Agent's JMX http adaptor from MX4J */
-  private HttpAdaptor httpAdaptor;
-
-  /** This Agent's RMI Connector Server from MX4J */
-  private JMXConnectorServer rmiConnector;
-
-  /** The name of the MBean manages this resource */
-  private final String mbeanName;
-
-  /** The ObjectName of the MBean that manages this resource */
-  private final ObjectName objectName;
-
-  /** The actual ModelMBean that manages this resource */
-  private ModelMBean modelMBean;
-
-  /** The configuration for this Agent */
-  private final AgentConfigImpl agentConfig;
-
-  /** The <code>AdminDistributedSystem</code> this Agent is currently
-   * connected to or <code>null</code> */
-  private AdminDistributedSystem system;
-
-  /** The agent's configuration file */
-  private String propertyFile;
-
-  /** A lock object to guard the Connect and Disconnect calls being
-    * made on the agent for connections to the DS **/
-  private Object CONN_SYNC = new Object();
-
-  protected MemberInfoWithStatsMBean memberInfoWithStatsMBean;
-
-  private MBeanServer mBeanServer;
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-
-  /**
-   * Constructs a new Agent using the specified configuration.
-   *
-   * @param agentConfig instance of configuration for Agent
-   * @throws com.gemstone.gemfire.admin.AdminException TODO-javadocs
-   * @throws IllegalArgumentException if agentConfig is null
-   */
-  public AgentImpl(AgentConfigImpl agentConfig)
-    throws AdminException, IllegalArgumentException {
-    addShutdownHook();
-    if (agentConfig == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentImpl_AGENTCONFIG_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    this.agentConfig = (AgentConfigImpl)agentConfig;
-    this.mbeanName   = MBEAN_NAME_PREFIX + MBeanUtil.makeCompliantMBeanNameProperty("Agent");
-
-    try {
-      this.objectName = new ObjectName(this.mbeanName);
-    } catch (MalformedObjectNameException ex) {
-      String s = LocalizedStrings.AgentImpl_WHILE_CREATING_OBJECTNAME_0.toLocalizedString(new Object[] { this.mbeanName });
-      throw new AdminException(s, ex);
-    }
-
-    this.propertyFile = this.agentConfig.getPropertyFile().getAbsolutePath();
-
-    // bind address only affects how the Agent VM connects to the system...
-    // It should be set only once in the agent lifecycle
-    this.agentConfig.setBindAddress(getBindAddress());
-
-    // LOG: create LogWriterAppender and LogWriterLogger
-    initLogWriter();
-
-    mBeanServer = MBeanUtil.start();
-
-    MBeanUtil.createMBean(this);
-
-    initializeHelperMbean();
-  }
-
-  private void initializeHelperMbean() {
-    try {
-      memberInfoWithStatsMBean = new MemberInfoWithStatsMBean(this);
-
-      MBeanServer mbs = getMBeanServer();
-      mbs.registerMBean(memberInfoWithStatsMBean, memberInfoWithStatsMBean.getObjectName());
-      /*
-       * We are not re-throwing these exceptions as failure create/register the
-       * GemFireTypesWrapper will not stop the Agent from working. But we are
-       * logging it as it could be an indication of some problem.
-       * Also not creating Localized String for the exception.
-       */
-    } catch (OperationsException e) {
-      logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_FAILED_TO_INITIALIZE_MEMBERINFOWITHSTATSMBEAN), e);
-    } catch (MBeanRegistrationException e) {
-      logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_FAILED_TO_INITIALIZE_MEMBERINFOWITHSTATSMBEAN), e);
-    } catch (AdminException e) {
-      logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_FAILED_TO_INITIALIZE_MEMBERINFOWITHSTATSMBEAN), e);
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Public operations
-  // -------------------------------------------------------------------------
-
-  public AgentConfig getConfig() {
-    return this.agentConfig;
-  }
-
-  public AdminDistributedSystem getDistributedSystem() {
-    return this.system;
-  }
-
-  /**
-   * Persists the current Agent configuration to its property file.
-   *
-   * @throws GemFireIOException if unable to persist the configuration to props
-   * @see #getPropertyFile
-   */
-  public void saveProperties() {
-    throw new GemFireIOException("saveProperties is no longer supported for security reasons");
-  }
-
-  /**
-   * Starts the jmx agent
-   */
-  public void start() {
-    checkDebug();
-
-    this.agentConfig.validate();
-
-    if (mBeanServer == null) {
-      mBeanServer = MBeanUtil.start();
-    }
-
-    try {
-      startHttpAdaptor();
-    } catch (StartupException e) {
-      AlertAppender.getInstance().shuttingDown();
-      LogWriterAppenders.stop(LogWriterAppenders.Identifier.MAIN);
-      LogWriterAppenders.destroy(LogWriterAppenders.Identifier.MAIN);
-      throw e;
-    }
-
-    try {
-      startRMIConnectorServer();
-    } catch (StartupException e) {
-      stopHttpAdaptor();
-      AlertAppender.getInstance().shuttingDown();
-      LogWriterAppenders.stop(LogWriterAppenders.Identifier.MAIN);
-      LogWriterAppenders.destroy(LogWriterAppenders.Identifier.MAIN);
-      throw e;
-    }
-
-    try {
-      startSnmpAdaptor();
-    } catch (StartupException e) {
-      stopRMIConnectorServer();
-      stopHttpAdaptor();
-      AlertAppender.getInstance().shuttingDown();
-      LogWriterAppenders.stop(LogWriterAppenders.Identifier.MAIN);
-      LogWriterAppenders.destroy(LogWriterAppenders.Identifier.MAIN);
-      throw e;
-    }
-
-    if (this.agentConfig.getAutoConnect()) {
-      try {
-        connectToSystem();
-        /*
-         * Call Agent.stop() if connectToSystem() fails. This should clean up
-         * agent-DS connection & stop all the HTTP/RMI/SNMP adapters started
-         * earlier.
-         */
-      } catch (AdminException ex) {
-        logger.error(LocalizedMessage.create(LocalizedStrings.AgentImpl_AUTO_CONNECT_FAILED__0, ex.getMessage()));
-        this.stop();
-        throw new StartupException(ex);
-      } catch (MalformedObjectNameException ex) {
-        StringId autoConnectFailed = LocalizedStrings.AgentImpl_AUTO_CONNECT_FAILED__0;
-        logger.error(LocalizedMessage.create(autoConnectFailed, ex.getMessage()));
-        this.stop();
-        throw new StartupException(new AdminException(autoConnectFailed.toLocalizedString(new Object[] { ex.getMessage() }), ex));
-      }
-    } // getAutoConnect
-
-    logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_GEMFIRE_JMX_AGENT_IS_RUNNING));
-    LogWriterAppenders.startupComplete(LogWriterAppenders.Identifier.MAIN);
-
-    if (memberInfoWithStatsMBean == null) {
-      initializeHelperMbean();
-    }
-  }
-
-  /**
-   * Deregisters everything this Agent registered and releases the MBeanServer.
-   */
-  public void stop() {
-    try {
-      logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_STOPPING_JMX_AGENT));
-      AlertAppender.getInstance().shuttingDown();
-      LogWriterAppenders.stop(LogWriterAppenders.Identifier.MAIN);
-
-      // stop the GemFire Distributed System
-      stopDistributedSystem();
-
-      // stop all JMX Adaptors and Connectors...
-      stopHttpAdaptor();
-      stopRMIConnectorServer();
-      memberInfoWithStatsMBean = null;
-      stopSnmpAdaptor();
-
-      // release the MBeanServer for cleanup...
-      MBeanUtil.stop();
-      mBeanServer = null;
-
-      // remove the register shutdown hook which disconnects the Agent from the Distributed System upon JVM shutdown
-      removeShutdownHook();
-
-      logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_AGENT_HAS_STOPPED));
-    }
-    finally {
-      LogWriterAppenders.destroy(LogWriterAppenders.Identifier.MAIN);
-      LoggingThreadGroup.cleanUpThreadGroups(); // bug35388 - logwriters accumulate, causing mem leak
-    }
-
-  }
-
-  private void stopDistributedSystem() {
-    // disconnect from the distributed system...
-    try {
-      disconnectFromSystem();
-    }
-    catch (Exception e) {
-      // disconnectFromSystem already prints any Exceptions
-    }
-    catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      throw err;
-    }
-    catch (Error e) {
-      // Whenever you catch Error or Throwable, you must also catch VirtualMachineError (see above).
-      // However, there is _still_ a possibility that you are dealing with a cascading error condition,
-      // so you also need to check to see if the JVM is still usable:
-      SystemFailure.checkFailure();
-    }
-  }
-
-  public ObjectName manageDistributedSystem()
-  throws MalformedObjectNameException {
-    synchronized (CONN_SYNC) {
-      if (isConnected()) {
-        return ((AdminDistributedSystemJmxImpl) this.system).getObjectName();
-      }
-      return null;
-    }
-  }
-
-  /**
-   * Connects to the DistributedSystem currently described by this Agent's
-   * attributes for administration and monitoring.
-   *
-   * @return the object name of the system that the Agent is now connected to
-   */
-  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification="This is only a style warning.") 
-  public ObjectName connectToSystem()
-  throws AdminException, MalformedObjectNameException {
-    synchronized(CONN_SYNC) {
-      try {
-        if (isConnected()) {
-          return ((AdminDistributedSystemJmxImpl) this.system).getObjectName();
-        }
-
-        DistributionManager.isDedicatedAdminVM = true;
-
-        AdminDistributedSystemJmxImpl systemJmx =
-          (AdminDistributedSystemJmxImpl) this.system;
-        if (systemJmx == null) {
-          systemJmx = (AdminDistributedSystemJmxImpl)
-            createDistributedSystem(this.agentConfig);
-          this.system = systemJmx;
-        }
-        systemJmx.connect(this.logWriter);
-
-        return new ObjectName(systemJmx.getMBeanName());
-      } catch (AdminException e) {
-        logger.warn(e.getMessage(), e);
-        throw e;
-      } catch (RuntimeException e) {
-        logger.warn(e.getMessage(), e);
-        throw e;
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (Error e) {
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.error(e.getMessage(), e);
-        throw e;
-      }
-    }
-  }
-
-  /**
-   * Disconnects from the current DistributedSystem (if connected to one).
-   */
-  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD", justification="This is only a style warning.") 
-  public void disconnectFromSystem() {
-    synchronized(CONN_SYNC) {
-      try {
-        if (this.system == null || !this.system.isConnected()) {
-          return;
-        }
-        ((AdminDistributedSystemJmxImpl)this.system).disconnect();
-//         this.system = null;
-      } catch (RuntimeException e) {
-        logger.warn(e.getMessage(), e);
-        throw e;
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (Error e) {
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.warn(e.getMessage(), e);
-        throw e;
-      } finally {
-        DistributionManager.isDedicatedAdminVM = false;
-      }
-    }
-  }
-
-  /**
-   * Retrieves a displayable snapshot of this Agent's log.
-   *
-   * @return snapshot of the current log
-   */
-  public String getLog() {
-    String childTail = tailFile(this.logWriterAppender.getChildLogFile());
-    String mainTail = tailFile(new File(this.agentConfig.getLogFile()));
-    if (childTail == null && mainTail == null) {
-      return LocalizedStrings.AgentImpl_NO_LOG_FILE_CONFIGURED_LOG_MESSAGES_WILL_BE_DIRECTED_TO_STDOUT.toLocalizedString();
-    } else {
-      StringBuffer result = new StringBuffer();
-      if (mainTail != null) {
-        result.append(mainTail);
-      }
-      if (childTail != null) {
-        result.append("\n" + LocalizedStrings.AgentImpl_TAIL_OF_CHILD_LOG.toLocalizedString() + "\n");
-        result.append(childTail);
-      }
-      return result.toString();
-    }
-  }
-
-  /**
-   * Retrieves display-friendly GemFire version information.
-   */
-  public String getVersion() {
-    return GemFireVersion.asString();
-  }
-
-  // -------------------------------------------------------------------------
-  //   Public attribute accessors/mutators
-  // -------------------------------------------------------------------------
-
-  /** Returns true if this Agent is currently connected to a system. */
-  public boolean isConnected() {
-    boolean result = false;
-    synchronized (CONN_SYNC) {
-     result = ((this.system != null) && this.system.isConnected());
-    }
-    return result;
-  }
-
-  /**
-   * Gets the agent's property file. This is the file it will use
-   * when saving its configuration. It was also used when the agent
-   * started to initialize its configuration.
-   * @return the agent's property file
-   */
-  public String getPropertyFile() {
-    return this.propertyFile;
-  }
-
-  /**
-   * Sets the agent's property file.
-   *
-   * @param value the name of the file to save the agent properties in.
-   * @throws IllegalArgumentException if the specified file is a directory.
-   * @throws IllegalArgumentException if the specified file's parent is not an existing directory.
-   */
-  public void setPropertyFile(String value) {
-    File f = (new File(value)).getAbsoluteFile();
-    if (f.isDirectory()) {
-        throw new IllegalArgumentException(LocalizedStrings.AgentImpl_THE_FILE_0_IS_A_DIRECTORY.toLocalizedString(f));
-    }
-    File parent = f.getParentFile();
-    if (parent != null) {
-      if (!parent.isDirectory()) {
-        throw new IllegalArgumentException(LocalizedStrings.AgentImpl_THE_DIRECTORY_0_DOES_NOT_EXIST.toLocalizedString(parent));
-      }
-    }
-    this.propertyFile = f.getPath();
-  }
-
-  /**
-   * Gets the mcastAddress of the distributed system that this Agent is
-   * managing.
-   *
-   * @return   The mcastAddress value
-   */
-  public String getMcastAddress() {
-    return this.agentConfig.getMcastAddress();
-  }
-
-  /**
-   * Sets the mcastAddress of the distributed system that this Agent is
-   * managing.
-   *
-   * @param mcastAddress  The new mcastAddress value
-   */
-  public void setMcastAddress(String mcastAddress) {
-    this.agentConfig.setMcastAddress(mcastAddress);
-  }
-
-  /**
-   * Gets the mcastPort of the distributed system that this Agent is managing.
-   *
-   * @return   The mcastPort value
-   */
-  public int getMcastPort() {
-    return this.agentConfig.getMcastPort();
-  }
-
-  /**
-   * Sets the mcastPort of the distributed system that this Agent is managing.
-   *
-   * @param mcastPort  The new mcastPort value
-   */
-  public void setMcastPort(int mcastPort) {
-    this.agentConfig.setMcastPort(mcastPort);
-  }
-
-  /**
-   * Gets the locators of the distributed system that this Agent is managing.
-   * <p>
-   * Format is a comma-delimited list of "host[port]" entries.
-   *
-   * @return   The locators value
-   */
-  public String getLocators() {
-    return this.agentConfig.getLocators();
-  }
-
-  /**
-   * Sets the locators of the distributed system that this Agent is managing.
-   * <p>
-   * Format is a comma-delimited list of "host[port]" entries.
-   *
-   * @param locators  The new locators value
-   */
-  public void setLocators(String locators) {
-    this.agentConfig.setLocators(locators);
-  }
-
-  /**
-   * Gets the membership UDP port range in the distributed system that this
-   * Agent is monitoring.
-   * <p>
-   * This range is given as two numbers separated by a minus sign like "min-max"
-   *
-   * @return membership UDP port range
-   */
-  public String getMembershipPortRange() {
-    return this.agentConfig.getMembershipPortRange();
-  }
-
-  /**
-   * Sets the membership UDP port range in the distributed system that this
-   * Agent is monitoring.
-   * <p>
-   * This range is given as two numbers separated by a minus sign like "min-max"
-   *
-   * @param membershipPortRange membership UDP port range
-   */
-  public void setMembershipPortRange(String membershipPortRange) {
-    this.agentConfig.setMembershipPortRange(membershipPortRange);
-  }
-
-  /**
-   * Gets the bindAddress of the distributed system that this Agent is managing.
-   *
-   * @return   The bindAddress value
-   */
-  public String getBindAddress() {
-     return this.agentConfig.getBindAddress();
-  }
-
-  /**
-   * Sets the bindAddress of the distributed system that this Agent is managing.
-   *
-   * @param bindAddress  The new bindAddress value
-   */
-  public void setBindAddress(String bindAddress) {
-    this.agentConfig.setBindAddress(bindAddress);
-  }
-
-  /**
-   * Retrieves the command that the DistributedSystem will use to perform remote
-   * manipulation of config files and log files.
-   *
-   * @return   the remote command for DistributedSystem
-   */
-	public String getRemoteCommand() {
-		return this.agentConfig.getRemoteCommand();
-	}
-
-  /**
-   * Sets the command that the DistributedSystem will use to perform remote
-   * manipulation of config files and log files.
-   *
-   * @param remoteCommand the remote command for DistributedSystem
-   */
-	public void setRemoteCommand(String remoteCommand) {
-		this.agentConfig.setRemoteCommand(remoteCommand);
-	}
-
-  /** Returns the system identity for the DistributedSystem */
-  public String getSystemId() {
-    return this.agentConfig.getSystemId();
-  }
-
-  /** Sets the system identity for the DistributedSystem */
-  public void setSystemId(String systemId) {
-    this.agentConfig.setSystemId(systemId);
-  }
-
-  /**
-   * Gets the logFileSizeLimit in megabytes of this Agent. Zero indicates no
-   * limit.
-   *
-   * @return   The logFileSizeLimit value
-   */
-  public int getLogFileSizeLimit() {
-    return this.agentConfig.getLogFileSizeLimit();
-  }
-
-  /**
-   * Sets the logFileSizeLimit in megabytes of this Agent. Zero indicates no
-   * limit.
-   *
-   * @param logFileSizeLimit  The new logFileSizeLimit value
-   */
-  public void setLogFileSizeLimit(int logFileSizeLimit) {
-    this.agentConfig.setLogFileSizeLimit(logFileSizeLimit);
-    LogWriterAppenders.configChanged(LogWriterAppenders.Identifier.MAIN);
-  }
-
-  /**
-   * Gets the logDiskSpaceLimit in megabytes of this Agent. Zero indicates no
-   * limit.
-   *
-   * @return   The logDiskSpaceLimit value
-   */
-  public int getLogDiskSpaceLimit() {
-    return this.agentConfig.getLogDiskSpaceLimit();
-  }
-
-  /**
-   * Sets the logDiskSpaceLimit in megabytes of this Agent. Zero indicates no
-   * limit.
-   *
-   * @param logDiskSpaceLimit  The new logDiskSpaceLimit value
-   */
-  public void setLogDiskSpaceLimit(int logDiskSpaceLimit) {
-    this.agentConfig.setLogDiskSpaceLimit(logDiskSpaceLimit);
-    LogWriterAppenders.configChanged(LogWriterAppenders.Identifier.MAIN);
-  }
-
-  /**
-   * Gets the logFile name for this Agent to log to.
-   *
-   * @return   The logFile value
-   */
-  public String getLogFile() {
-    return this.agentConfig.getLogFile();
-  }
-
-  /**
-   * Sets the logFile name for this Agent to log to.
-   *
-   * @param logFile  The new logFile value
-   */
-  public void setLogFile(String logFile) {
-    this.agentConfig.setLogFile(logFile);
-    LogWriterAppenders.configChanged(LogWriterAppenders.Identifier.MAIN);
-  }
-
-  /**
-   * Gets the logLevel of this Agent.
-   *
-   * @return   The logLevel value
-   */
-  public String getLogLevel() {
-    return this.agentConfig.getLogLevel();
-  }
-
-  /**
-   * Sets the logLevel of this Agent.
-   *
-   * @param logLevel  The new logLevel value
-   */
-  public void setLogLevel(String logLevel) {
-    this.agentConfig.setLogLevel(logLevel);
-    LogWriterAppenders.configChanged(LogWriterAppenders.Identifier.MAIN);
-  }
-
-  /** Returns true if the Agent is set to auto connect to a system. */
-  public boolean getAutoConnect() {
-    return this.agentConfig.getAutoConnect();
-  }
-  /** Returns true if the Agent is set to auto connect to a system. */
-  public boolean isAutoConnect() {
-    return this.agentConfig.getAutoConnect();
-  }
-  /** Sets or unsets the option to auto connect to a system. */
-  public void setAutoConnect(boolean v) {
-    this.agentConfig.setAutoConnect(v);
-  }
-
-  /**
-   * Returns the address (URL) on which the RMI connector server runs
-   * or <code>null</code> if the RMI connector server has not been
-   * started.  This method is used primarily for testing purposes.
-   *
-   * @see JMXConnectorServer#getAddress()
-   */
-  public JMXServiceURL getRMIAddress() {
-    if (this.rmiConnector != null) {
-      return this.rmiConnector.getAddress();
-
-    } else {
-      return null;
-    }
-  }
-
-  /**
-   * Gets the configuration for this Agent.
-   *
-   * @return the configuration for this Agent
-   */
-  protected AgentConfig getAgentConfig() {
-    return this.agentConfig;
-  }
-
-  // -------------------------------------------------------------------------
-  //   Internal implementation methods
-  // -------------------------------------------------------------------------
-
-  /** Returns the tail of the system log specified by <code>File</code>. */
-  private String tailFile(File f) {
-    try {
-      return TailLogResponse.tailSystemLog(f);
-    }
-    catch (IOException ex) {
-      return LocalizedStrings.AgentImpl_COULD_NOT_TAIL_0_BECAUSE_1.toLocalizedString(new Object[] {f, ex});
-    }
-  }
-
-  /**
-   * Returns the active MBeanServer which has any GemFire MBeans registered.
-   *
-   * @return   the GemFire mbeanServer
-   */
-  public MBeanServer getMBeanServer() {
-    return mBeanServer;
-  }
-
-//  /**
-//   * Returns the active modeler Registry which has been initialized with all
-//   * the ModelMBean descriptors needed for GemFire MBeans.
-//   *
-//   * @return   the modeler registry
-//  */
-//  private Registry getRegistry() {
-//    return MBeanUtil.getRegistry();
-//  }
-
-  /**
-   * Gets the current instance of LogWriter for logging
-   *
-   * @return the logWriter
-   */
-  public LogWriter getLogWriter() {
-    return this.logWriter;
-  }
-
-  private final Thread shutdownHook =
-    new Thread(LoggingThreadGroup.createThreadGroup("Shutdown"), "Shutdown") {
-      @Override
-      public void run() {
-          disconnectFromSystem();
-      }
-    };
-    
-  /**
-   * Adds a ShutdownHook to the Agent for cleaning up any resources
-   */
-  private void addShutdownHook() {
-    if( ! Boolean.getBoolean( com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.DISABLE_SHUTDOWN_HOOK_PROPERTY)) {
-      Runtime.getRuntime().addShutdownHook(shutdownHook);
-    }
-  }
-
-  private void removeShutdownHook() {
-    if( ! Boolean.getBoolean( com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.DISABLE_SHUTDOWN_HOOK_PROPERTY)) {
-      Runtime.getRuntime().removeShutdownHook(shutdownHook);
-    }
-  }
-
-  /**
-   * Creates a LogWriterI18n for this Agent to use in logging.
-   */
-  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE", justification="Return value for file delete is not important here.") 
-  private void initLogWriter() throws com.gemstone.gemfire.admin.AdminException {
-    final LogConfig logConfig = this.agentConfig.createLogConfig();
-    
-    // LOG: create logWriterAppender here
-    this.logWriterAppender = LogWriterAppenders.getOrCreateAppender(LogWriterAppenders.Identifier.MAIN, false, logConfig, false);
-
-    // LOG: look in AgentConfigImpl for existing LogWriter to use
-    InternalLogWriter existingLogWriter = this.agentConfig.getInternalLogWriter();
-    if (existingLogWriter != null) {
-      this.logWriter = existingLogWriter;
-    } else {      
-      // LOG: create LogWriterLogger
-      this.logWriter = LogWriterFactory.createLogWriterLogger(false, false, logConfig, false);
-      // LOG: changed statement from config to info
-      this.logWriter.info(Banner.getString(null));
-      // Set this log writer in AgentConfigImpl
-      this.agentConfig.setInternalLogWriter(this.logWriter);
-    }
-    
-    // LOG: create logWriter here
-    this.logWriter = LogWriterFactory.createLogWriterLogger(false, false, logConfig, false);
-
-    // Set this log writer in AgentConfig
-    this.agentConfig.setInternalLogWriter(this.logWriter);
-
-    // Print Banner information
-    logger.info(Banner.getString(this.agentConfig.getOriginalArgs()));
-
-    // LOG:CONFIG: changed next three statements from config to info
-    logger.info(LogMarker.CONFIG, LocalizedStrings.AgentImpl_AGENT_CONFIG_PROPERTY_FILE_NAME_0.toLocalizedString(AgentConfigImpl.retrievePropertyFile()));
-    logger.info(LogMarker.CONFIG, this.agentConfig.getPropertyFileDescription());
-    logger.info(LogMarker.CONFIG, this.agentConfig.toPropertiesAsString());
-  }
-
-  /**
-   * Stops the HttpAdaptor and its XsltProcessor.  Unregisters the associated
-   * MBeans.
-   */
-  private void stopHttpAdaptor() {
-    if (!this.agentConfig.isHttpEnabled()) return;
-
-    // stop the adaptor...
-    try {
-      this.httpAdaptor.stop();
-    } catch (Exception e) {
-      logger.warn(e.getMessage(), e);
-    }
-
-    try {
-      MBeanUtil.unregisterMBean(getHttpAdaptorName());
-      MBeanUtil.unregisterMBean(getXsltProcessorName());
-    } catch (MalformedObjectNameException e) {
-      logger.warn(e.getMessage(), e);
-    }
-  }
-
-  /** Stops the RMIConnectorServer and unregisters its MBean. */
-  private void stopRMIConnectorServer() {
-    if (!this.agentConfig.isRmiEnabled()) return;
-
-    // stop the RMI Connector server...
-    try {
-      this.rmiConnector.stop();
-    } catch (Exception e) {
-      logger.warn(e.getMessage(), e);
-    }
-
-    try {
-      ObjectName rmiRegistryNamingName = getRMIRegistryNamingName();
-      if (this.agentConfig.isRmiRegistryEnabled() &&
-          mBeanServer.isRegistered(rmiRegistryNamingName)) {
-        String[] empty = new String[0];
-        mBeanServer.invoke(rmiRegistryNamingName, "stop", empty, empty);
-        MBeanUtil.unregisterMBean(rmiRegistryNamingName);
-      }
-    } catch (MalformedObjectNameException e) {
-      logger.warn(e.getMessage(), e);
-    } catch (InstanceNotFoundException e) {
-      logger.warn(e.getMessage(), e);
-    } catch (ReflectionException e) {
-      logger.warn(e.getMessage(), e);
-    } catch (MBeanException e) {
-      logger.warn(e.getMessage(), e);
-    }
-
-    try {
-      ObjectName rmiConnectorServerName = getRMIConnectorServerName();
-      if (mBeanServer.isRegistered(rmiConnectorServerName)) {
-        MBeanUtil.unregisterMBean(rmiConnectorServerName);
-      }
-    } catch (MalformedObjectNameException e) {
-      logger.warn(e.getMessage(), e);
-    }
-  }
-
-  /** Stops the SnmpAdaptor and unregisters its MBean. */
-  private void stopSnmpAdaptor() {
-    if (!this.agentConfig.isSnmpEnabled()) return;
-
-    // stop the SnmpAdaptor...
-    try {
-      getMBeanServer().invoke(getSnmpAdaptorName(), "unbind",
-                              new Object[0],
-                              new String[0]);
-    } catch (Exception e) {
-      logger.warn(e.getMessage(), e);
-    }
-
-    try {
-      MBeanUtil.unregisterMBean(getSnmpAdaptorName());
-    } catch (MalformedObjectNameException e) {
-      logger.warn(e.getMessage(), e);
-    }
-  }
-
-  /** Returns the JMX ObjectName for the RMI registry Naming MBean. */
-  private ObjectName getRMIRegistryNamingName()
-  throws javax.management.MalformedObjectNameException {
-    return ObjectName.getInstance("naming:type=rmiregistry");
-  }
-
-  /** Returns the JMX ObjectName for the HttpAdaptor. */
-  private ObjectName getHttpAdaptorName()
-  throws javax.management.MalformedObjectNameException {
-    return new ObjectName("Server:name=HttpAdaptor");
-  }
-
-  /** Returns the JMX ObjectName for the RMIConnectorServer. */
-  private ObjectName getRMIConnectorServerName()
-  throws javax.management.MalformedObjectNameException {
-    return new ObjectName("connectors:protocol=rmi");
-  }
-
-  /** Returns the JMX ObjectName for the SnmpAdaptor. */
-  private ObjectName getSnmpAdaptorName()
-  throws javax.management.MalformedObjectNameException {
-    return new ObjectName("Adaptors:protocol=SNMP");
-  }
-
-  /** Returns the JMX ObjectName for the HttpAdaptor's XsltProcessor. */
-  private ObjectName getXsltProcessorName()
-  throws javax.management.MalformedObjectNameException {
-    return new ObjectName("Server:name=XSLTProcessor");
-  }
-
-  // -------------------------------------------------------------------------
-  //   Factory method for creating DistributedSystem
-  // -------------------------------------------------------------------------
-
-  /**
-   * Creates and connects to a <code>DistributedSystem</code>.
-   *
-   * @param config
-   */
-  private AdminDistributedSystem createDistributedSystem(AgentConfigImpl config)
-  throws com.gemstone.gemfire.admin.AdminException {
-    return new AdminDistributedSystemJmxImpl(config);
-  }
-
-  // -------------------------------------------------------------------------
-  //   Agent main
-  // -------------------------------------------------------------------------
-
-  /**
-   * Command-line main for running the GemFire Management Agent.
-   * <p>
-   * Accepts command-line arguments matching the options in {@link AgentConfig}
-   * and {@link com.gemstone.gemfire.admin.DistributedSystemConfig}.
-   * <p>
-   * <code>AgentConfig</code> will convert -Jarguments to System properties.
-   */
-  public static void main(String[] args) {
-    SystemFailure.loadEmergencyClasses();
-
-    AgentConfigImpl ac;
-    try {
-      ac = new AgentConfigImpl(args);
-    }
-    catch (RuntimeException ex) {
-      System.err.println(LocalizedStrings.AgentImpl_FAILED_READING_CONFIGURATION_0.toLocalizedString(ex));
-      System.exit(1);
-      return;
-    }
-
-    try {
-      Agent agent = AgentFactory.getAgent(ac);
-      agent.start();
-
-    }
-    catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    }
-    catch (Throwable t) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      t.printStackTrace();
-      System.exit(1);
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   MX4J Connectors/Adaptors
-  // -------------------------------------------------------------------------
-
-  private void createRMIRegistry() throws Exception {
-    if (!this.agentConfig.isRmiRegistryEnabled()) {
-      return;
-    }
-    MBeanServer mbs = getMBeanServer();
-    String host = this.agentConfig.getRmiBindAddress();
-    int    port = this.agentConfig.getRmiPort();
-
-    /* Register and start the rmi-registry naming MBean, which is
-     * needed by JSR 160 RMIConnectorServer */
-    ObjectName registryName = getRMIRegistryNamingName();
-    try {
-      RMIRegistryService registryNamingService = null;
-      if (host != null && !("".equals(host.trim()))) {
-        registryNamingService = new RMIRegistryService(host, port);
-      } else {
-        registryNamingService = new RMIRegistryService(port);
-      }
-      mbs.registerMBean(registryNamingService, registryName);
-    } catch (javax.management.InstanceAlreadyExistsException e) {
-      logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_0__IS_ALREADY_REGISTERED,
-                          registryName));
-    }
-    mbs.invoke(registryName, "start", null, null);
-  }
-
-  /**
-   * Defines and starts the JMX RMIConnector and service.
-   * <p>
-   * If {@link AgentConfig#isRmiEnabled} returns false, then this adaptor will
-   * not be started.
-   */
-  private void startRMIConnectorServer() {
-    if (!this.agentConfig.isRmiEnabled()) return;
-
-    String rmiBindAddress  = this.agentConfig.getRmiBindAddress();
-
-    // Set RMI Stubs to use the given RMI Bind Address
-    // Default bindAddress is "", if none is set - ignore if not set
-    // If java.rmi.server.hostname property is specified then
-    // that override is not changed
-    String rmiStubServerNameKey = "java.rmi.server.hostname";
-    String overrideHostName     = System.getProperty(rmiStubServerNameKey);
-    if ((overrideHostName == null || overrideHostName.trim().length()==0) &&
-        (rmiBindAddress != null && rmiBindAddress.trim().length()!=0)
-       ) {
-      System.setProperty(rmiStubServerNameKey, rmiBindAddress);
-      logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_SETTING_0,
-          new StringBuilder(rmiStubServerNameKey).append(" = ").append(rmiBindAddress)));
-    }
-
-    try {
-      createRMIRegistry();
-      ObjectName objName = getRMIConnectorServerName();
-
-      // make sure this adaptor is not already registered...
-      if (getMBeanServer().isRegistered(objName)) {
-        // dunno how we got here...
-        logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_RMICONNECTORSERVER_ALREADY_REGISTERED_AS__0, objName));
-        return;
-      }
-
-      /*
-       * url defined as: service:jmx:protocol:sap
-       * where
-       * 1. protocol: rmi
-       * 2. sap is: [host[:port]][url-path]
-       *    where
-       *      host: rmi-binding-address
-       *      port: rmi-server-port
-       *      url-path: /jndi/rmi://<rmi-binding-address>:<rmi-port><JNDI_NAME>
-       */
-      String urlString           = null;
-      String connectorServerHost = "";
-      int    connectorServerPort = this.agentConfig.getRmiServerPort();
-      String rmiRegistryHost     = "";
-      int    rmiRegistryPort     = this.agentConfig.getRmiPort();
-
-      // Set registryHost to localhost if not specified
-      // RMI stubs would use a default IP if namingHost is left empty
-      if (rmiBindAddress == null || rmiBindAddress.trim().length()==0) {
-        connectorServerHost = "localhost";
-        rmiRegistryHost   = "";
-      } else {
-        connectorServerHost = applyRFC2732(rmiBindAddress);
-        rmiRegistryHost     = connectorServerHost;
-      }
-
-      urlString = MessageFormat.format(AgentImpl.JMX_SERVICE_URL,
-                                           connectorServerHost,
-                                           String.valueOf(connectorServerPort),
-                                           rmiRegistryHost,
-                                           String.valueOf(rmiRegistryPort),
-                                           JNDI_NAME);
-
-      logger.debug("JMX Service URL string is : \"{}\"", urlString);
-
-      // The address of the connector
-      JMXServiceURL url = new JMXServiceURL(urlString);
-
-      Map<String, Object> env = new HashMap<String, Object>();
-//      env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
-//      env.put(Context.PROVIDER_URL, "rmi://localhost:1099");
-
-      RMIServerSocketFactory ssf = new MX4JServerSocketFactory(
-            this.agentConfig.isAgentSSLEnabled(),     // true,
-            this.agentConfig.isAgentSSLRequireAuth(), // true,
-            this.agentConfig.getAgentSSLProtocols(),  // "any",
-            this.agentConfig.getAgentSSLCiphers(),    // "any",
-            this.agentConfig.getRmiBindAddress(),
-            10,  // backlog
-            this.agentConfig.getGfSecurityProperties());
-      env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE, ssf);
-
-      if (this.agentConfig.isAgentSSLEnabled()) {
-        RMIClientSocketFactory csf = new SslRMIClientSocketFactory();
-        env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE, csf);
-      }
-
-      MBeanServer mbs = null; // will be set by registering w/ mbeanServer
-      this.rmiConnector =
-                JMXConnectorServerFactory.newJMXConnectorServer(url, env, mbs);
-
-      // for cleanup
-      this.rmiConnector.addNotificationListener(
-          new ConnectionNotificationAdapter(),
-          new ConnectionNotificationFilterImpl(),
-          this);
-
-      // Register the JMXConnectorServer in the MBeanServer
-      getMBeanServer().registerMBean(this.rmiConnector, objName);
-
-      // Start the JMXConnectorServer
-      this.rmiConnector.start();
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Throwable t) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(LocalizedStrings.AgentImpl_FAILED_TO_START_RMICONNECTORSERVER, t);
-      throw new StartupException(LocalizedStrings.AgentImpl_FAILED_TO_START_RMI_SERVICE.toLocalizedString(), t);
-    }
-  }
-
-  /**
-   * Starts the optional third-party AdventNet SNMP Adaptor.
-   * <p>
-   * If {@link AgentConfig#isSnmpEnabled} returns false, then this adaptor will
-   * not be started.
-   */
-  private void startSnmpAdaptor() {
-    if (!this.agentConfig.isSnmpEnabled()) return;
-    try {
-      ObjectName objName = getSnmpAdaptorName();
-
-      // make sure this adaptor is not already registered...
-      if (getMBeanServer().isRegistered(objName)) {
-        // dunno how we got here...
-        logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_SNMPADAPTOR_ALREADY_REGISTERED_AS__0, objName));
-        return;
-      }
-
-      String className = "com.adventnet.adaptors.snmp.snmpsupport.SmartSnmpAdaptor";
-      String snmpDir = this.agentConfig.getSnmpDirectory();
-      // ex:/merry2/users/klund/agent
-
-      // validate the directory...
-      if (snmpDir == null || snmpDir.length() == 0) {
-        throw new IllegalArgumentException(LocalizedStrings.AgentImpl_SNMPDIRECTORY_MUST_BE_SPECIFIED_BECAUSE_SNMP_IS_ENABLED.toLocalizedString());
-      }
-      File root = new File(snmpDir);
-      if (!root.exists()) {
-        throw new IllegalArgumentException(LocalizedStrings.AgentImpl_SNMPDIRECTORY_DOES_NOT_EXIST.toLocalizedString());
-      }
-
-      // create the adaptor...
-      String[] sigs = new String[] { "java.lang.String" };
-      Object[] args = new Object[] { snmpDir };
-
-      String bindAddress = this.agentConfig.getSnmpBindAddress();
-      if (bindAddress != null && bindAddress.length() > 0) {
-        sigs = new String[] { "java.lang.String", sigs[0] };
-        args = new Object[] { bindAddress, args[0] };
-      }
-
-      // go...
-      getMBeanServer().createMBean(className, objName, args, sigs);
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch(Throwable t) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(LocalizedMessage.create(LocalizedStrings.AgentImpl_FAILED_TO_START_SNMPADAPTOR__0, t.getMessage()));
-      throw new StartupException(LocalizedStrings.AgentImpl_FAILED_TO_START_SNMPADAPTOR__0.toLocalizedString(t.getMessage()), t);
-    }
-  }
-
-  /**
-   * Defines and starts the JMX Http Adaptor service from MX4J.
-   * <p>
-   * If {@link AgentConfig#isHttpEnabled} returns false, then this adaptor will
-   * not be started.
-   */
-  private void startHttpAdaptor() {
-    if (!this.agentConfig.isHttpEnabled()) return;
-    try {
-      ObjectName objName = getHttpAdaptorName();
-
-      // make sure this adaptor is not already registered...
-      if (getMBeanServer().isRegistered(objName)) {
-        // dunno how we got here...
-        logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_HTTPADAPTOR_ALREADY_REGISTERED_AS__0, objName));
-        return;
-      }
-
-      this.httpAdaptor = new HttpAdaptor();
-
-      // validate and set host and port values...
-      if (this.agentConfig.getHttpPort() > 0) {
-        this.httpAdaptor.setPort(this.agentConfig.getHttpPort());
-        logger.info(LogMarker.CONFIG, LocalizedMessage.create(LocalizedStrings.AgentImpl_HTTP_ADAPTOR_LISTENING_ON_PORT__0, this.agentConfig.getHttpPort()));
-      }
-      else {
-        logger.error(LocalizedMessage.create(LocalizedStrings.AgentImpl_INCORRECT_PORT_VALUE__0, this.agentConfig.getHttpPort()));
-      }
-
-      if (this.agentConfig.getHttpBindAddress() != null) {
-        String host = this.agentConfig.getHttpBindAddress();
-        logger.info(LogMarker.CONFIG, LocalizedMessage.create(LocalizedStrings.AgentImpl_HTTP_ADAPTOR_LISTENING_ON_ADDRESS__0, host));
-        this.httpAdaptor.setHost(host);
-      }
-      else {
-        logger.error(LocalizedMessage.create(LocalizedStrings.AgentImpl_INCORRECT_NULL_HOSTNAME));
-      }
-
-      // SSL support...
-      MX4JServerSocketFactory socketFactory =
-        new MX4JServerSocketFactory(
-            this.agentConfig.isAgentSSLEnabled(),
-            this.agentConfig.isHttpSSLRequireAuth(),
-            this.agentConfig.getAgentSSLProtocols(),
-            this.agentConfig.getAgentSSLCiphers(),
-            this.agentConfig.getGfSecurityProperties());
-      this.httpAdaptor.setSocketFactory(socketFactory);
-
-      // authentication (user login) support...
-      if (this.agentConfig.isHttpAuthEnabled()) {
-        // this pops up a login dialog from the browser...
-        this.httpAdaptor.setAuthenticationMethod(
-            MX4J_HTTPADAPTOR_BASIC_AUTHENTICATION); // only basic works
-
-        this.httpAdaptor.addAuthorization(
-            this.agentConfig.getHttpAuthUser(),
-            this.agentConfig.getHttpAuthPassword());
-      }
-
-      // add the XsltProcessor...
-      this.httpAdaptor.setProcessorName(createXsltProcessor());
-
-      // register the HttpAdaptor and snap on the XsltProcessor...
-      getMBeanServer().registerMBean(this.httpAdaptor, objName);
-      this.httpAdaptor.start();
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Throwable t) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(LocalizedMessage.create(LocalizedStrings.AgentImpl_FAILED_TO_START_HTTPADAPTOR__0, t.getMessage()));
-      throw new StartupException(LocalizedStrings.AgentImpl_FAILED_TO_START_HTTPADAPTOR__0.toLocalizedString(t.getMessage()), t);
-    }
-  }
-
-  /**
-   * Defines and starts the Xslt Processor helper service for the Http Adaptor.
-   */
-  private ObjectName createXsltProcessor()
-  throws javax.management.JMException {
-    ObjectName objName = getXsltProcessorName();
-
-    // make sure this mbean is not already registered...
-    if (getMBeanServer().isRegistered(objName)) {
-      // dunno how we got here...
-      logger.info(LocalizedMessage.create(LocalizedStrings.AgentImpl_XSLTPROCESSOR_ALREADY_REGISTERED_AS__0, objName));
-      return objName;
-    }
-
-    getMBeanServer().registerMBean(
-      new mx4j.tools.adaptor.http.XSLTProcessor(), objName);
-    return objName;
-  }
-
-  // -------------------------------------------------------------------------
-  //   Private support methods...
-  // -------------------------------------------------------------------------
-
-//  /** Not used anymore but seems moderately useful... */
-//  private String[] parseSSLCiphers(String ciphers) {
-//    List list = new ArrayList();
-//    StringTokenizer st = new StringTokenizer(ciphers);
-//    while (st.hasMoreTokens()) {
-//      list.add(st.nextToken());
-//    }
-//    return (String[]) list.toArray(new String[list.size()]);
-//  }
-
-  // -------------------------------------------------------------------------
-  //   SSL configuration for GemFire
-  // -------------------------------------------------------------------------
-  public boolean isSSLEnabled() {
-    return this.agentConfig.isSSLEnabled();
-  }
-  public void setSSLEnabled(boolean enabled) {
-    this.agentConfig.setSSLEnabled(enabled);
-  }
-  public String getSSLProtocols() {
-    return this.agentConfig.getSSLProtocols();
-  }
-  public void setSSLProtocols(String protocols) {
-    this.agentConfig.setSSLProtocols(protocols);
-  }
-  public String getSSLCiphers() {
-    return this.agentConfig.getSSLCiphers();
-  }
-  public void setSSLCiphers(String ciphers) {
-    this.agentConfig.setSSLCiphers(ciphers);
-  }
-  public boolean isSSLAuthenticationRequired() {
-    return this.agentConfig.isSSLAuthenticationRequired();
-  }
-  public void setSSLAuthenticationRequired(boolean authRequired) {
-    this.agentConfig.setSSLAuthenticationRequired(authRequired);
-  }
-  public Properties getSSLProperties() {
-    return this.agentConfig.getSSLProperties();
-  }
-  public void setSSLProperties(Properties sslProperties) {
-    this.agentConfig.setSSLProperties(sslProperties);
-  }
-  public void addSSLProperty(String key, String value) {
-    this.agentConfig.addSSLProperty(key, value);
-  }
-  public void removeSSLProperty(String key) {
-    this.agentConfig.removeSSLProperty(key);
-  }
-
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-
-	public String getMBeanName() {
-		return this.mbeanName;
-	}
-
-	public ModelMBean getModelMBean() {
-		return this.modelMBean;
-	}
-	public void setModelMBean(ModelMBean modelMBean) {
-		this.modelMBean = modelMBean;
-	}
-
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.AGENT;
-  }
-
-  public void cleanupResource() {}
-
-  static class StartupException extends GemFireException {
-    private static final long serialVersionUID = 6614145962199330348L;
-    StartupException(Throwable cause) {
-      super(cause);
-    }
-    StartupException(String reason, Throwable cause) {
-      super(reason, cause);
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Other Support methods
-  // -------------------------------------------------------------------------
-  /**
-   * Checks the no. of active RMI clients and updates a flag in the Admin
-   * Distributed System.
-   *
-   * @see AdminDistributedSystemJmxImpl#setRmiClientCountZero(boolean)
-   * @since 6.0
-   */
-  void updateRmiClientsCount() {
-    int noOfClientsConnected = 0;
-
-    String[] connectionIds = this.rmiConnector.getConnectionIds();
-
-    if (connectionIds != null) {
-      noOfClientsConnected = connectionIds.length;
-    }
-
-    logger.info("No. of RMI clients connected :: {}", noOfClientsConnected);
-
-    AdminDistributedSystemJmxImpl adminDSJmx =
-                                (AdminDistributedSystemJmxImpl) this.system;
-
-    adminDSJmx.setRmiClientCountZero(noOfClientsConnected == 0);
-  }
-
-  @Override
-  public String toString() {
-    StringBuffer sb = new StringBuffer();
-    sb.append("AgentImpl[");
-    sb.append("config=" + agentConfig.toProperties().toString());
-//    sb.append("; adaptor=" + httpAdaptor.toString());
-    sb.append("; mbeanName=" + mbeanName);
-    sb.append("; modelMBean=" + modelMBean);
-    sb.append("; objectName=" + objectName);
-    sb.append("; propertyFile=" + propertyFile);
-    sb.append(": rmiConnector=" + rmiConnector);
-//    sb.append("; system=" + system);)
-    sb.append("]");
-    return sb.toString();
-  }
-
-  /** Process the String form of a hostname to make it comply with Jmx URL
-   * restrictions. Namely wrap IPv6 literal address with "[", "]"
-   * @param hostname the name to safeguard.
-   * @return a string representation suitable for use in a Jmx connection URL
-   */
-  private static String applyRFC2732(String hostname) {
-    if(hostname.indexOf(":") != -1) {
-      //Assuming an IPv6 literal because of the ':'
-      return "[" + hostname + "]";
-    }
-    return hostname;
-  }
-}
-
-/**
- * Adapter class for NotificationListener that listens to notifications of type
- * javax.management.remote.JMXConnectionNotification
- *
- * @author abhishek
- * @since 6.0
- */
-class ConnectionNotificationAdapter implements NotificationListener {
-  private static final Logger logger = LogService.getLogger();
-
-  /**
-   * If the handback object passed is an AgentImpl, updates the JMX client count
-   *
-   * @param notification
-   *          JMXConnectionNotification for change in client connection status
-   * @param handback
-   *          An opaque object which helps the listener to associate information
-   *          regarding the MBean emitter. This object is passed to the MBean
-   *          during the addListener call and resent, without modification, to
-   *          the listener. The MBean object should not use or modify the
-   *          object. (NOTE: copied from javax.management.NotificationListener)
-   */
-  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="BC_UNCONFIRMED_CAST", justification="Only JMXConnectionNotification instances are used.") 
-  public void handleNotification(Notification notification, Object handback) {
-    if (handback instanceof AgentImpl) {
-      AgentImpl agent = (AgentImpl) handback;
-
-      JMXConnectionNotification jmxNotifn =
-        (JMXConnectionNotification) notification;
-
-      if (logger.isDebugEnabled()) {
-        logger.debug("Connection notification for connection id : '{}'", jmxNotifn.getConnectionId());
-      }
-
-      agent.updateRmiClientsCount();
-    }
-  }
-}
-
-/**
- * Filters out the notifications of the type JMXConnectionNotification.OPENED,
- * JMXConnectionNotification.CLOSED and JMXConnectionNotification.FAILED.
- *
- * @author abhishek
- * @since 6.0
- */
-class ConnectionNotificationFilterImpl implements NotificationFilter {
-
-  /**
-   * Default serialVersionUID
-   */
-  private static final long serialVersionUID = 1L;
-
-  /**
-   * Invoked before sending the specified notification to the listener.
-   * Returns whether the given notification is to be sent to the listener.
-   *
-   * @param notification
-   *          The notification to be sent.
-   * @return true if the notification has to be sent to the listener, false
-   *         otherwise.
-   */
-  public boolean isNotificationEnabled(Notification notification) {
-    boolean isThisNotificationEnabled = false;
-    if (notification.getType().equals(JMXConnectionNotification.OPENED) ||
-        notification.getType().equals(JMXConnectionNotification.CLOSED) ||
-        notification.getType().equals(JMXConnectionNotification.FAILED) ) {
-      isThisNotificationEnabled = true;
-    }
-    return isThisNotificationEnabled;
-  }
-}
-


[08/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentLauncher.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentLauncher.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentLauncher.java
deleted file mode 100644
index 1109512..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentLauncher.java
+++ /dev/null
@@ -1,889 +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.admin.jmx.internal;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.PrintStream;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.SortedMap;
-import java.util.StringTokenizer;
-import java.util.TreeMap;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.GemFireException;
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.jmx.Agent;
-import com.gemstone.gemfire.admin.jmx.AgentConfig;
-import com.gemstone.gemfire.admin.jmx.AgentFactory;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.internal.OSProcess;
-import com.gemstone.gemfire.internal.PureJavaMode;
-import com.gemstone.gemfire.internal.SocketCreator;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.util.IOUtils;
-import com.gemstone.gemfire.internal.util.JavaCommandBuilder;
-
-/**
- * A command line utility inspired by the <code>CacheServerLauncher</code> that is responsible for administering
- * a stand-along GemFire JMX {@link Agent}.
- * <p/>
- * @author David Whitlock
- * @since 3.5
- */
-public class AgentLauncher {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** Should the launch command be printed? */
-  public static final boolean PRINT_LAUNCH_COMMAND = Boolean.getBoolean(AgentLauncher.class.getSimpleName()
-      + ".PRINT_LAUNCH_COMMAND");
-
-  /* constants used to define state */
-  static final int SHUTDOWN = 0;
-  static final int STARTING = 1;
-  static final int RUNNING = 2;
-  static final int SHUTDOWN_PENDING = 3;
-  static final int SHUTDOWN_PENDING_AFTER_FAILED_STARTUP = 4;
-  static final int UNKNOWN = 6;
-
-  /** Agent configuration options */
-  static final String AGENT_PROPS = "agent-props";
-
-  /** A flag to indicate if the current log file should be kept. Used only when 'start' is used to fork off the 'server' */
-  static final String APPENDTO_LOG_FILE = "appendto-log-file";
-
-  /** optional and additional classpath entries */
-  static final String CLASSPATH = "classpath";
-
-  /** The directory argument */
-  static final String DIR = "dir";
-
-  /** Extra VM arguments */
-  static final String VMARGS = "vmargs";
-
-  /** The directory in which the agent's output resides */
-  private File workingDirectory = null;
-
-  /** The Status object for the agent */
-  private Status status = null;
-
-  /** base name for the agent to be launched */
-  private final String basename;
-
-  /** The name for the start up log file */
-  private final String startLogFileName;
-
-  /** The name of the status file */
-  private final String statusFileName;
-
-  /**
-   * Instantiates an AgentLauncher for execution and control of the GemFire JMX Agent process.  This constructor is
-   * package private to prevent direct instantiation or subclassing by classes outside this package, but does allow
-   * the class to be tested as needed.
-   * <p/>
-   * @param basename base name for the application to be launched
-   */
-  AgentLauncher(final String basename) {
-    assert basename != null : "The base name used by the AgentLauncher to create files cannot be null!";
-    this.basename = basename;
-    final String formattedBasename = this.basename.toLowerCase().replace(" ", "");
-    this.startLogFileName = "start_" + formattedBasename + ".log";
-    this.statusFileName = "." + formattedBasename + ".ser";
-  }
-
-  /**
-   * Prints information about the agent configuration options
-   */
-  public void configHelp() {
-    PrintStream out = System.out;
-
-    Properties props = AgentConfigImpl.getDefaultValuesForAllProperties();
-
-    out.println("\n");
-    out.println(LocalizedStrings.AgentLauncher_AGENT_CONFIGURATION_PROPERTIES.toString());
-
-    SortedMap<String, String> map = new TreeMap<String, String>();
-
-    int maxLength = 0;
-    for (Iterator<Object> iter = props.keySet().iterator(); iter.hasNext(); ) {
-      String prop = (String) iter.next();
-      int length = prop.length();
-      if (length > maxLength) {
-        maxLength = length;
-      }
-
-      map.put(prop, AgentConfigImpl.getPropertyDescription(prop) +
-              " (" + LocalizedStrings.AgentLauncher_DEFAULT.toLocalizedString() + "  \"" + props.getProperty(prop) + "\")");
-    }
-
-    Iterator<Entry<String, String>> entries = map.entrySet().iterator();
-    while (entries.hasNext()) {
-      Entry<String, String> entry = entries.next();
-      String prop = entry.getKey();
-      out.print("  ");
-      out.println(prop);
-
-      String description = entry.getValue();
-      StringTokenizer st = new StringTokenizer(description, " ");
-      out.print("    ");
-      int printed = 6;
-      while (st.hasMoreTokens()) {
-        String word = st.nextToken();
-        if (printed + word.length() > 72) {
-          out.print("\n    ");
-          printed = 6;
-        }
-        out.print(word);
-        out.print(" ");
-        printed += word.length() + 1;
-      }
-      out.println("");
-    }
-    out.println("");
-
-    System.exit(1);
-  }
-
-  /**
-   * Returns a map that maps the name of the start options to its value on the command line.  If no value is
-   * specified on the command line, a default one is provided.
-   */
-  protected Map<String, Object> getStartOptions(final String[] args) throws Exception {
-    final Map<String, Object> options = new HashMap<String, Object>();
-
-    options.put(APPENDTO_LOG_FILE, "false");
-    options.put(DIR, IOUtils.tryGetCanonicalFileElseGetAbsoluteFile(new File(".")));
-
-    final List<String> vmArgs = new ArrayList<String>();
-    options.put(VMARGS, vmArgs);
-
-    final Properties agentProps = new Properties();
-    options.put(AGENT_PROPS, agentProps);
-
-    for (final String arg : args) {
-      if (arg.startsWith("-classpath=")) {
-        options.put(CLASSPATH, arg.substring("-classpath=".length()));
-      }
-      else if (arg.startsWith("-dir=")) {
-        final File workingDirectory = processDirOption(options, arg.substring("-dir=".length()));
-        System.setProperty(AgentConfigImpl.AGENT_PROPSFILE_PROPERTY_NAME,
-          new File(workingDirectory, AgentConfig.DEFAULT_PROPERTY_FILE).getPath());
-      }
-      else if (arg.startsWith("-J")) {
-        vmArgs.add(arg.substring(2));
-      }
-      else if (arg.contains("=")) {
-        final int index = arg.indexOf("=");
-        final String prop = arg.substring(0, index);
-        final String value = arg.substring(index + 1);
-
-        // if appendto-log-file is set, put it in options;  it is not set as an agent prop
-        if (prop.equals(APPENDTO_LOG_FILE)) {
-          options.put(APPENDTO_LOG_FILE, value);
-          continue;
-        }
-
-        // verify the property is valid
-        AgentConfigImpl.getPropertyDescription(prop);
-
-        // Note, the gfAgentPropertyFile System property is ultimately read in the constructor of the AgentImpl class
-        // in order to make any properties defined in this file not only accessible to the DistributedSystem but to
-        // the GemFire Agent as well.
-        if (AgentConfigImpl.PROPERTY_FILE_NAME.equals(prop)) {
-          System.setProperty(AgentConfigImpl.AGENT_PROPSFILE_PROPERTY_NAME, value);
-        }
-
-        // The Agent properties file (specified with the command-line key=value) is used to pass configuration settings
-        // to the GemFire DistributedSystem.  A property file can be passed using the property-file command-line switch
-        // is a large number of properties are specified, or the properties maybe individually specified on the
-        // command-line as property=value arguments.
-        agentProps.setProperty(prop, value);
-      }
-    }
-
-    return options;
-  }
-
-  /**
-   * After parsing the command line arguments, spawn the Java VM that will host the GemFire JMX Agent.
-   */
-  public void start(final String[] args) throws Exception {
-    final Map<String, Object> options = getStartOptions(args);
-
-    workingDirectory = IOUtils.tryGetCanonicalFileElseGetAbsoluteFile((File) options.get(DIR));
-
-    // verify that any GemFire JMX Agent process has been properly shutdown and delete any remaining status files...
-    verifyAndClearStatus();
-
-    // start the GemFire JMX Agent process...
-    runCommandLine(options, buildCommandLine(options));
-
-    // wait for the GemFire JMX Agent process to complete startup and begin running...
-    // it is also possible the Agent process may fail to start, so this should not wait indefinitely unless
-    // the status file was not successfully written to
-    pollAgentUntilRunning();
-
-    System.exit(0);
-  }
-
-  private void verifyAndClearStatus() throws Exception {
-    final Status status = getStatus();
-
-    if (status != null && status.state != SHUTDOWN) {
-      throw new IllegalStateException(LocalizedStrings.AgentLauncher_JMX_AGENT_EXISTS_BUT_WAS_NOT_SHUTDOWN.toLocalizedString());
-    }
-
-    deleteStatus();
-  }
-
-  private String[] buildCommandLine(final Map<String, Object> options) {
-    final List<String> commands = JavaCommandBuilder.buildCommand(AgentLauncher.class.getName(), (String) options.get(CLASSPATH), null,
-      (List<String>) options.get(VMARGS));
-
-    commands.add("server");
-    commands.add("-dir=" + workingDirectory);
-
-    final Properties agentProps = (Properties) options.get(AGENT_PROPS);
-
-    for (final Object key : agentProps.keySet()) {
-      commands.add(key + "=" + agentProps.get(key.toString()));
-    }
-
-    return commands.toArray(new String[commands.size()]);
-  }
-
-  private void printCommandLine(final String[] commandLine) {
-    if (PRINT_LAUNCH_COMMAND) {
-      System.out.print("Starting " + this.basename + " with command:\n");
-      for (final String command : commandLine) {
-        System.out.print(command);
-        System.out.print(' ');
-      }
-      System.out.println();
-    }
-  }
-
-  private int runCommandLine(final Map<String, Object> options, final String[] commandLine) throws IOException {
-    // initialize the startup log starting with a fresh log file (where all startup messages are printed)
-    final File startLogFile = IOUtils.tryGetCanonicalFileElseGetAbsoluteFile(
-      new File(workingDirectory, startLogFileName));
-
-    if (startLogFile.exists() && !startLogFile.delete()) {
-      throw new IOException(LocalizedStrings.AgentLauncher_UNABLE_TO_DELETE_FILE_0.toLocalizedString(
-        startLogFile.getAbsolutePath()));
-    }
-
-    Map<String, String> env = new HashMap<String, String>();
-    // read the passwords from command line
-    SocketCreator.readSSLProperties(env, true);
-
-    printCommandLine(commandLine);
-
-    final int pid = OSProcess.bgexec(commandLine, workingDirectory, startLogFile, false, env);
-
-    System.out.println(LocalizedStrings.AgentLauncher_STARTING_JMX_AGENT_WITH_PID_0.toLocalizedString(pid));
-
-    return pid;
-  }
-
-  private void pollAgentUntilRunning() throws Exception {
-    Status status = spinReadStatus();
-
-    // TODO this loop could recurse indefinitely if the GemFire JMX Agent's state never changes from STARTING
-    // to something else (like RUNNING), which could happen if server process fails to startup correctly
-    // and did not or could not write to the status file!
-    // TODO should we really allow the InterruptedException from the Thread.sleep call to break this loop (yeah, I
-    // think so given the fact this could loop indefinitely)?
-    while (status != null && status.state == STARTING) {
-      Thread.sleep(500);
-      status = spinReadStatus();
-    }
-
-    if (status == null) {
-      // TODO throw a more appropriate Exception here!
-      throw new Exception(LocalizedStrings.AgentLauncher_NO_AVAILABLE_STATUS.toLocalizedString());
-    }
-    else {
-      System.out.println(status);
-    }
-  }
-
-  /**
-   * Starts the GemFire JMX Agent "server" process with the given command line arguments.
-   */
-  public void server(final String[] args) throws Exception {
-    final Map<String, Object> options = getStartOptions(args);
-
-    workingDirectory = IOUtils.tryGetCanonicalFileElseGetAbsoluteFile((File) options.get(DIR));
-
-    writeStatus(createStatus(this.basename, STARTING, OSProcess.getId()));
-
-    final Agent agent = createAgent((Properties) options.get(AGENT_PROPS));
-
-    final Thread thread = createAgentProcessThread(createAgentProcessThreadGroup(), agent);
-    thread.setDaemon(true);
-    thread.start();
-
-    // periodically check and see if the JMX Agent has been told to stop
-    pollAgentForPendingShutdown(agent);
-  }
-
-  private Agent createAgent(final Properties props) throws IOException, AdminException {
-    DistributionManager.isDedicatedAdminVM = true;
-    SystemFailure.setExitOK(true);
-
-    final AgentConfigImpl config = new AgentConfigImpl(props);
-
-    // see bug 43760
-    if (config.getLogFile() == null || "".equals(config.getLogFile().trim())) {
-      config.setLogFile(AgentConfigImpl.DEFAULT_LOG_FILE);
-    }
-
-    // LOG:TODO: redirectOutput called here
-    OSProcess.redirectOutput(new File(config.getLogFile())); // redirect output to the configured log file
-
-    return AgentFactory.getAgent(config);
-  }
-
-  private ThreadGroup createAgentProcessThreadGroup() {
-    return new ThreadGroup(LocalizedStrings.AgentLauncher_STARTING_AGENT.toLocalizedString()) {
-        @Override
-        public void uncaughtException(final Thread t, final Throwable e) {
-          if (e instanceof VirtualMachineError) {
-            SystemFailure.setFailure((VirtualMachineError) e);
-          }
-          setServerError(LocalizedStrings.AgentLauncher_UNCAUGHT_EXCEPTION_IN_THREAD_0.toLocalizedString(t.getName()), e);
-        }
-      };
-  }
-
-  private Thread createAgentProcessThread(final ThreadGroup group, final Agent agent) {
-    return new Thread(group, createAgentProcessRunnable(agent), "Start agent");
-  }
-
-  private Runnable createAgentProcessRunnable(final Agent agent) {
-    return new Runnable() {
-      public void run() {
-        try {
-          agent.start();
-          writeStatus(createStatus(AgentLauncher.this.basename, RUNNING, OSProcess.getId()));
-        }
-        catch (IOException e) {
-          e.printStackTrace();
-        }
-        catch (GemFireException e) {
-          e.printStackTrace();
-          handleGemFireException(e);
-        }
-      }
-
-      private void handleGemFireException(final GemFireException e) {
-        String message = LocalizedStrings.AgentLauncher_SERVER_FAILED_TO_START_0.toLocalizedString(e.getMessage());
-
-        if (e.getCause() != null) {
-          if (e.getCause().getCause() != null) {
-            message += ", " + e.getCause().getCause().getMessage();
-          }
-        }
-
-        setServerError(null, new Exception(message));
-      }
-    };
-  }
-
-
-  /**
-   * Notes that an error has occurred in the agent and that it has shut down because of it.
-   */
-  private void setServerError(final String message, final Throwable cause) {
-    try {
-      writeStatus(createStatus(this.basename, SHUTDOWN_PENDING_AFTER_FAILED_STARTUP, OSProcess.getId(), message, cause));
-    }
-    catch (Exception e) {
-      logger.fatal(e.getMessage(), e);
-      System.exit(1);
-    }
-  }
-
-  private void pollAgentForPendingShutdown(final Agent agent) throws Exception {
-    while (true) {
-      pause(500);
-      spinReadStatus();
-
-      if (isStatus(SHUTDOWN_PENDING, SHUTDOWN_PENDING_AFTER_FAILED_STARTUP)) {
-        agent.stop();
-        final int exitCode = (isStatus(SHUTDOWN_PENDING_AFTER_FAILED_STARTUP) ? 1 : 0);
-        writeStatus(createStatus(this.status, SHUTDOWN));
-        System.exit(exitCode);
-      }
-    }
-  }
-
-  /**
-   * Extracts configuration information for stopping a agent based on the
-   * contents of the command line.  This method can also be used with getting
-   * the status of a agent.
-   */
-  protected Map<String, Object> getStopOptions(final String[] args) throws Exception {
-    final Map<String, Object> options = new HashMap<String, Object>();
-
-    options.put(DIR, IOUtils.tryGetCanonicalFileElseGetAbsoluteFile(new File(".")));
-
-    for (final String arg : args) {
-      if (arg.equals("stop") || arg.equals("status")) {
-        // expected
-      }
-      else if (arg.startsWith("-dir=")) {
-        processDirOption(options, arg.substring("-dir=".length()));
-      }
-      else {
-        throw new Exception(LocalizedStrings.AgentLauncher_UNKNOWN_ARGUMENT_0.toLocalizedString(arg));
-      }
-    }
-
-    return options;
-  }
-
-  /**
-   * Stops a running JMX Agent by setting the status to "shutdown pending".
-   */
-  public void stop(final String[] args) throws Exception {
-    final Map<String, Object> options = getStopOptions(args);
-
-    workingDirectory = IOUtils.tryGetCanonicalFileElseGetAbsoluteFile((File) options.get(DIR));
-
-    int exitStatus = 1;
-
-    if (new File(workingDirectory, statusFileName).exists()) {
-      spinReadStatus();
-
-      if (!isStatus(SHUTDOWN)) {
-        writeStatus(createStatus(this.basename, SHUTDOWN_PENDING, status.pid));
-      }
-
-      pollAgentForShutdown();
-
-      if (isStatus(SHUTDOWN)) {
-        System.out.println(LocalizedStrings.AgentLauncher_0_HAS_STOPPED.toLocalizedString(this.basename));
-        deleteStatus();
-        exitStatus = 0;
-      }
-      else {
-        System.out.println(LocalizedStrings.AgentLauncher_TIMEOUT_WAITING_FOR_0_TO_SHUTDOWN_STATUS_IS_1
-          .toLocalizedString(this.basename, status));
-      }
-    }
-    else {
-      System.out.println(LocalizedStrings.AgentLauncher_THE_SPECIFIED_WORKING_DIRECTORY_0_CONTAINS_NO_STATUS_FILE
-        .toLocalizedString(workingDirectory));
-    }
-
-    System.exit(exitStatus);
-  }
-
-  private void pollAgentForShutdown() throws InterruptedException {
-    final long endTime = (System.currentTimeMillis() + 20000);
-    long clock = 0;
-
-    while (clock < endTime && !isStatus(SHUTDOWN)) {
-      pause(500);
-      spinReadStatus();
-      clock = System.currentTimeMillis();
-    }
-  }
-
-  /**
-   * Prints the status of the GemFire JMX Agent running in the configured working directory.
-   */
-  public void status(final String[] args) throws Exception {
-    this.workingDirectory = IOUtils.tryGetCanonicalFileElseGetAbsoluteFile((File) getStopOptions(args).get(DIR));
-    System.out.println(getStatus());
-    System.exit(0);
-  }
-
-  /**
-   * Returns the <code>Status</code> of the GemFire JMX Agent in the <code>workingDirectory</code>.
-   */
-  protected Status getStatus() throws Exception {
-    Status status;
-
-    if (new File(workingDirectory, statusFileName).exists()) {
-      status = spinReadStatus();
-    }
-    else {
-      status = createStatus(this.basename, SHUTDOWN, 0, LocalizedStrings.AgentLauncher_0_IS_NOT_RUNNING_IN_SPECIFIED_WORKING_DIRECTORY_1
-        .toLocalizedString(this.basename, this.workingDirectory), null);
-    }
-
-    return status;
-  }
-
-  /**
-   * Determines if the Status.state is one of the specified states in the given array of states.  Note, the status
-   * of the Agent, as indicated in the .agent.ser status file, should never have a written value of UNKNOWN.
-   * <p/>
-   * @param states an array of possible acceptable states satisfying the condition of the Agent's status.
-   * @return a boolean value indicating whether the Agent's status satisfies one of the specified states.
-   */
-  private boolean isStatus(final Integer... states) {
-    return (this.status != null && Arrays.asList(defaultToUnknownStateIfNull(states)).contains(this.status.state));
-  }
-
-  /**
-   * Removes an agent's status file
-   */
-  protected void deleteStatus() throws IOException {
-    final File statusFile = new File(workingDirectory, statusFileName);
-
-    if (statusFile.exists() && !statusFile.delete()) {
-      throw new IOException("Could not delete status file (" + statusFile.getAbsolutePath() + ")");
-    }
-  }
-
-  /**
-   * Reads the GemFire JMX Agent's status from the status file (.agent.ser) in it's working directory.
-   * <p/>
-   * @return a Status object containing the state persisted to the .agent.ser file in the working directory
-   * and representing the status of the Agent
-   * @throws IOException if the status file was unable to be read.
-   * @throws RuntimeException if the class of the object written to the .agent.ser file is not of type Status.
-   */
-  protected Status readStatus() throws IOException {
-    FileInputStream fileIn = null;
-    ObjectInputStream objectIn = null;
-
-    try {
-      fileIn = new FileInputStream(new File(workingDirectory, statusFileName));
-      objectIn = new ObjectInputStream(fileIn);
-      this.status = (Status) objectIn.readObject();
-      return this.status;
-    }
-    catch (ClassNotFoundException e) {
-      throw new RuntimeException(e);
-    }
-    finally {
-      IOUtils.close(objectIn);
-      IOUtils.close(fileIn);
-    }
-  }
-
-  /**
-   * A wrapper method for the readStatus method to make one last check for the GemFire JMX Agent process if running
-   * with the native libraries.
-   * @return the Status object as returned from readStatus unless running in native mode and a determination is made
-   * such that the Agent process is not running.
-   * @throws IOException if the state of the Agent process could not be read from the .agent.ser status file.
-   * @see #readStatus()
-   */
-  protected Status nativeReadStatus() throws IOException {
-    Status status = readStatus();
-
-    // @see Bug #32760 - the bug is still possible in pure Java mode
-    if (status != null && !PureJavaMode.isPure() && !OSProcess.exists(status.pid)) {
-      status = createStatus(status, SHUTDOWN);
-    }
-
-    return status;
-  }
-
-  /**
-   * Reads the JMX Agent's status from the .agent.ser status file.  If the status file cannot be read due
-   * to I/O problems, the method will keep attempting to read the file for up to 20 seconds.
-   * <p/>
-   * @return the Status of the GemFire JMX Agent as determined by the .agent.ser status file, or natively
-   * based on the presence/absence of the Agent process.
-   */
-  protected Status spinReadStatus() {
-    Status status = null;
-
-    final long endTime = (System.currentTimeMillis() + 20000);
-    long clock = 0;
-
-    while (status == null && clock < endTime) {
-      try {
-        status = nativeReadStatus();
-      }
-      catch (Exception ignore) {
-        // see bug 31575
-        // see bug 36998
-        // try again after a short delay... the status file might have been read prematurely before it existed
-        // or while the server was trying to write to it resulting in a possible EOFException, or other IOException.
-        pause(500);
-      }
-      finally {
-        clock = System.currentTimeMillis();
-      }
-    }
-
-    return status;
-  }
-
-  /**
-   * Sets the status of the GemFire JMX Agent by serializing a <code>Status</code> object to a status file
-   * in the Agent's working directory.
-   * <p/>
-   * @param status the Status object representing the state of the Agent process to persist to disk.
-   * @return the written Status object.
-   * @throws IOException if the Status could not be successfully persisted to disk.
-   */
-  public Status writeStatus(final Status status) throws IOException {
-    FileOutputStream fileOut = null;
-    ObjectOutputStream objectOut = null;
-
-    try {
-      fileOut = new FileOutputStream(new File(workingDirectory, statusFileName));
-      objectOut = new ObjectOutputStream(fileOut);
-      objectOut.writeObject(status);
-      objectOut.flush();
-      this.status = status;
-      return this.status;
-    }
-    finally {
-      IOUtils.close(objectOut);
-      IOUtils.close(fileOut);
-    }
-  }
-
-  protected static Status createStatus(final String basename, final int state, final int pid) {
-    return createStatus(basename, state, pid, null, null);
-  }
-
-  protected static Status createStatus(final String basename, final int state, final int pid, final String msg, final Throwable t) {
-    final Status status = new Status(basename);
-    status.state = state;
-    status.pid = pid;
-    status.msg = msg;
-    status.exception = t;
-    return status;
-  }
-
-  protected static Status createStatus(final Status status, final int state) {
-    assert status != null : "The status to clone cannot be null!";
-    return createStatus(status.baseName, state, status.pid, status.msg, status.exception);
-  }
-
-  protected static Integer[] defaultToUnknownStateIfNull(final Integer... states) {
-    return (states != null ? states : new Integer[] { UNKNOWN });
-  }
-
-  protected static boolean pause(final int milliseconds) {
-    try {
-      Thread.sleep(milliseconds);
-      return true;
-    }
-    catch (InterruptedException e) {
-      Thread.currentThread().interrupt();
-      return false;
-    }
-  }
-
-  protected static File processDirOption(final Map<String, Object> options, final String dirValue) throws FileNotFoundException {
-    final File workingDirectory = new File(dirValue);
-
-    if (!workingDirectory.exists()) {
-      throw new FileNotFoundException(LocalizedStrings.AgentLauncher_THE_INPUT_WORKING_DIRECTORY_DOES_NOT_EXIST_0
-        .toLocalizedString(dirValue));
-    }
-
-    options.put(DIR, workingDirectory);
-
-    return workingDirectory;
-  }
-
-  /**
-   * Prints usage information for the AgentLauncher to the command line.
-   * <p/>
-   * @param message a String to output to the command line indicating the user error.
-   */
-  private static void usage(final String message) {
-    final PrintStream out = System.out;
-
-    out.println("\n** " + message + "\n");
-
-    out.println("agent start [-J<vmarg>]* [-dir=<dir>] [prop=value]*");
-    out.println(LocalizedStrings.AgentLauncher_STARTS_THE_GEMFIRE_JMX_AGENT.toLocalizedString());
-    out.println("\t" + LocalizedStrings.AgentLauncher_VMARG.toLocalizedString() );
-    out.println("\t" + LocalizedStrings.AgentLauncher_DIR.toLocalizedString());
-    out.println("\t" + LocalizedStrings.AgentLauncher_PROP.toLocalizedString());
-    out.println("\t" + LocalizedStrings.AgentLauncher_SEE_HELP_CONFIG.toLocalizedString());
-    out.println();
-
-    out.println("agent stop [-dir=<dir>]");
-    out.println(LocalizedStrings.AgentLauncher_STOPS_A_GEMFIRE_JMX_AGENT.toLocalizedString());
-    out.println("\t" + LocalizedStrings.AgentLauncher_DIR.toLocalizedString());
-    out.println("");
-    out.println("agent status [-dir=<dir>]");
-    out.println(LocalizedStrings.AgentLauncher_REPORTS_THE_STATUS_AND_THE_PROCESS_ID_OF_A_GEMFIRE_JMX_AGENT.toLocalizedString());
-    out.println("\t" + LocalizedStrings.AgentLauncher_DIR.toLocalizedString());
-    out.println();
-
-    System.exit(1);
-  }
-
-  /**
-   * Bootstrap method to launch the GemFire JMX Agent process to monitor and manage a GemFire Distributed System/Cache.
-   * Main will read the arguments passed on the command line and dispatch the command to the appropriate handler.
-   */
-  public static void main(final String[] args) {
-    if (args.length < 1) {
-      usage(LocalizedStrings.AgentLauncher_MISSING_COMMAND.toLocalizedString());
-    }
-
-    // TODO is this only needed on 'agent server'?  'agent {start|stop|status}' technically do no run any GemFire Cache
-    // or DS code inside the current process.
-    SystemFailure.loadEmergencyClasses();
-
-    final AgentLauncher launcher = new AgentLauncher("Agent");
-
-    try {
-      final String command = args[0];
-
-      if (command.equalsIgnoreCase("start")) {
-        launcher.start(args);
-      }
-      else if (command.equalsIgnoreCase("server")) {
-        launcher.server(args);
-      }
-      else if (command.equalsIgnoreCase("stop")) {
-        launcher.stop(args);
-      }
-      else if (command.equalsIgnoreCase("status")) {
-        launcher.status(args);
-      }
-      else if (command.toLowerCase().matches("-{0,2}help")) {
-        if (args.length > 1) {
-          final String topic = args[1];
-
-          if (topic.equals("config")) {
-            launcher.configHelp();
-          }
-          else {
-            usage(LocalizedStrings.AgentLauncher_NO_HELP_AVAILABLE_FOR_0.toLocalizedString(topic));
-          }
-        }
-
-        usage(LocalizedStrings.AgentLauncher_AGENT_HELP.toLocalizedString());
-      }
-      else {
-        usage(LocalizedStrings.AgentLauncher_UNKNOWN_COMMAND_0.toLocalizedString(command));
-      }
-    }
-    catch (VirtualMachineError e) {
-      SystemFailure.initiateFailure(e);
-      throw e;
-    }
-    catch (Throwable t) {
-      SystemFailure.checkFailure();
-      t.printStackTrace();
-      System.err.println(LocalizedStrings.AgentLauncher_ERROR_0.toLocalizedString(t.getLocalizedMessage()));
-      System.exit(1);
-    }
-  }
-
-  /**
-   * A class representing the current state of the GemFire JMX Agent process.  Instances of this class are serialized
-   * to a {@linkplain #statusFileName file} on disk in the specified working directory {@linkplain #workingDirectory}.
-   * <p/>
-   * @see #SHUTDOWN
-   * @see #STARTING
-   * @see #RUNNING
-   * @see #SHUTDOWN_PENDING
-   * @see #SHUTDOWN_PENDING_AFTER_FAILED_STARTUP
-   */
-  // TODO refactor this class and internalize the state
-  // TODO refactor the class and make immutable
-  static class Status implements Serializable {
-
-    private static final long serialVersionUID = -7758402454664266174L;
-
-    int pid = 0;
-    int state = 0;
-
-    final String baseName;
-    String msg;
-
-    Throwable exception;
-
-    public Status(final String baseName) {
-      this.baseName = baseName;
-    }
-
-    @Override
-    public String toString() {
-      final StringBuilder buffer = new StringBuilder();
-
-      if (pid == Integer.MIN_VALUE && state == SHUTDOWN && msg != null) {
-        buffer.append(msg);
-      }
-      else {
-        buffer.append(LocalizedStrings.AgentLauncher_0_PID_1_STATUS.toLocalizedString(this.baseName, pid));
-
-        switch (state) {
-          case SHUTDOWN:
-            buffer.append(LocalizedStrings.AgentLauncher_SHUTDOWN.toLocalizedString());
-            break;
-          case STARTING:
-            buffer.append(LocalizedStrings.AgentLauncher_STARTING.toLocalizedString());
-            break;
-          case RUNNING:
-            buffer.append(LocalizedStrings.AgentLauncher_RUNNING.toLocalizedString());
-            break;
-          case SHUTDOWN_PENDING:
-            buffer.append(LocalizedStrings.AgentLauncher_SHUTDOWN_PENDING.toLocalizedString());
-            break;
-          case SHUTDOWN_PENDING_AFTER_FAILED_STARTUP:
-            buffer.append(LocalizedStrings.AgentLauncher_SHUTDOWN_PENDING_AFTER_FAILED_STARTUP.toLocalizedString());
-            break;
-          default:
-            buffer.append(LocalizedStrings.AgentLauncher_UNKNOWN.toLocalizedString());
-            break;
-        }
-
-        if (exception != null) {
-          if (msg != null) {
-            buffer.append("\n").append(msg).append(" - ");
-          }
-          else {
-            buffer.append("\n " + LocalizedStrings.AgentLauncher_EXCEPTION_IN_0_1
-              .toLocalizedString(this.baseName, exception.getMessage()) + " - ");
-          }
-          buffer.append(LocalizedStrings.AgentLauncher_SEE_LOG_FILE_FOR_DETAILS.toLocalizedString());
-        }
-      }
-
-      return buffer.toString();
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/CacheServerJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/CacheServerJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/CacheServerJmxImpl.java
deleted file mode 100644
index ceaafb7..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/CacheServerJmxImpl.java
+++ /dev/null
@@ -1,642 +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.admin.jmx.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-import javax.naming.OperationNotSupportedException;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.CacheServerConfig;
-import com.gemstone.gemfire.admin.CacheVmConfig;
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.admin.StatisticResource;
-import com.gemstone.gemfire.admin.SystemMemberCache;
-import com.gemstone.gemfire.admin.SystemMemberCacheEvent;
-import com.gemstone.gemfire.admin.SystemMemberRegionEvent;
-import com.gemstone.gemfire.admin.internal.CacheServerImpl;
-import com.gemstone.gemfire.admin.internal.ConfigurationParameterImpl;
-import com.gemstone.gemfire.internal.admin.ClientMembershipMessage;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.StatResource;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * MBean representation of a {@link
- * com.gemstone.gemfire.admin.CacheVm}. 
- *
- * @author David Whitlock
- * @since 4.0
- */
-public class CacheServerJmxImpl extends CacheServerImpl
-  implements ManagedResource, CacheVmConfig, CacheServerConfig, SystemMemberJmx {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** 
-   * Interval in seconds between refreshes. Value less than one results in no 
-   * refreshing 
-   */
-  private int refreshInterval = 0;
-
-  /** The object name of this managed resource */
-  private ObjectName objectName;
-
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-
-  /** Reference to the cache MBean representing a Cache in the Cache VM Member */
-  private SystemMemberCacheJmxImpl managedSystemMemberCache;
-  
-  /** collection to collect all the resources created for this member */
-  private Map<StatResource, StatisticResourceJmxImpl> managedStatisticsResourcesMap = new HashMap<StatResource, StatisticResourceJmxImpl>();
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>CacheServerJmxImpl</code> for an existing
-   * cache server.
-   */
-  CacheServerJmxImpl(AdminDistributedSystemJmxImpl system,
-                     GemFireVM vm)
-    throws AdminException {
-
-    super(system, vm);
-    initializeMBean();
-  }
-
-  /**
-   * Creates a new <code>CacheServerJmxImpl</code> for an
-   * newly-created cache server.
-   */
-  CacheServerJmxImpl(AdminDistributedSystemJmxImpl system,
-                     CacheVmConfig config)
-    throws AdminException {
-
-    super(system, config);
-    initializeMBean();
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /** 
-   * Creates and registers the MBean to manage this resource
-   */
-  private void initializeMBean()
-    throws AdminException {
-    //initialize Managed Resources for stats & cache first.
-//    initializeManagedResources();
-    
-    this.mbeanName = new StringBuffer("GemFire.CacheVm:")
-        .append("id=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(getId()))
-        .append(",type=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(getType().getName()))
-        .toString();
-
-    this.objectName = MBeanUtil.createMBean(this, 
-        addDynamicAttributes(MBeanUtil.lookupManagedBean(this)));
-
-    // Refresh Interval
-    AdminDistributedSystemJmxImpl sysJmx = (AdminDistributedSystemJmxImpl)system;
-    if (sysJmx.getRefreshInterval()>0)
-      this.refreshInterval = sysJmx.getRefreshInterval();
-  }
-
-  public String getMBeanName() {
-    return this.mbeanName;
-  }
-  
-  public ModelMBean getModelMBean() {
-    return this.modelMBean;
-  }
-  public void setModelMBean(ModelMBean modelMBean) {
-    this.modelMBean = modelMBean;
-  }
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.CACHE_VM;
-  }
-  
-  /**
-   * Un-registers all the statistics & cache managed resource created for this 
-   * member. After un-registering the resource MBean instances, clears 
-   * managedStatisticsResourcesMap collection & sets managedSystemMemberCache 
-   * to null.
-   * 
-   * Creates ConfigurationParameterJmxImpl, StatisticResourceJmxImpl and 
-   * SystemMemberCacheJmxImpl. But cleans up only StatisticResourceJmxImpl and 
-   * SystemMemberCacheJmxImpl which are of type ManagedResource.
-   */
-  public void cleanupResource() {    
-    synchronized (this.managedStatisticsResourcesMap) {
-      ConfigurationParameter[] names = getConfiguration();
-      if (names != null) {
-        for (int i = 0; i < names.length; i++) {
-          ConfigurationParameter parm = names[i];
-          ((ConfigurationParameterImpl) parm).removeConfigurationParameterListener(this);
-        }
-      }
-      this.parms.clear();
-      
-      Collection<StatisticResourceJmxImpl> statisticResources = managedStatisticsResourcesMap.values();
-      
-      for (StatisticResourceJmxImpl statisticResource : statisticResources) {
-        MBeanUtil.unregisterMBean(statisticResource);
-      }
-        
-      this.managedStatisticsResourcesMap.clear();
-    }
-    
-    MBeanUtil.unregisterMBean(this.managedSystemMemberCache);
-    this.managedSystemMemberCache = null;
-  }
-
-  ///////////////////////  Configuration  ///////////////////////
-
-  @Override
-  public String getHost() {
-    return this.getConfig().getHost();
-  }
-
-  public void setHost(String host) {
-    this.getConfig().setHost(host);
-  }
-
-  @Override
-  public String getWorkingDirectory() {
-    return this.getConfig().getWorkingDirectory();
-  }
-
-  @Override
-  public void setWorkingDirectory(String dir) {
-    this.getConfig().setWorkingDirectory(dir);
-  }
-
-  @Override
-  public String getProductDirectory() {
-    return this.getConfig().getProductDirectory();
-  }
-
-  @Override
-  public void setProductDirectory(String dir) {
-    this.getConfig().setProductDirectory(dir);
-  }
-
-  public String getRemoteCommand() {
-    return this.getConfig().getRemoteCommand();
-  }
-
-  public void setRemoteCommand(String remoteCommand) {
-    this.getConfig().setRemoteCommand(remoteCommand);
-  }
-
-  public void validate() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  @Override
-  public Object clone() throws CloneNotSupportedException {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public String getCacheXMLFile() {
-    return this.getConfig().getCacheXMLFile();
-  }
-
-  public void setCacheXMLFile(String cacheXMLFile) {
-    this.getConfig().setCacheXMLFile(cacheXMLFile);
-  }
-
-  public String getClassPath() {
-    return this.getConfig().getClassPath();
-  }
-
-  public void setClassPath(String classpath) {
-    this.getConfig().setClassPath(classpath);
-  }
-
-  // -------------------------------------------------------------------------
-  //   MBean attribute accessors/mutators
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Gets the interval in seconds between config refreshes
-   *
-   * @return the current refresh interval in seconds
-   */
-  public int getRefreshInterval() {
-    return this.refreshInterval;
-  }
-  
-   /**
-   * Sets interval in seconds between cache config refreshes; zero or less turns 
-   * off auto refreshing.  Manual refreshing has no effect on when the next
-   * scheduled refresh will occur.
-   *
-   * @param refreshInterval  the new refresh interval in seconds
-   */  
-  public void _setRefreshInterval(int refreshInterval) {
-    boolean isRegistered = MBeanUtil.isRefreshNotificationRegistered(this,
-        RefreshNotificationType.SYSTEM_MEMBER_CONFIG);
-
-    if (isRegistered && (getRefreshInterval() == refreshInterval))
-      return;
-
-    this.refreshInterval = Helper.setAndReturnRefreshInterval(this, refreshInterval);
-  }
-
-  /**
-   * RefreshInterval is now set only through the AdminDistributedSystem property
-   * refreshInterval. Attempt to set refreshInterval on CacheServerJmx MBean
-   * would result in an OperationNotSupportedException Auto-refresh is enabled
-   * on demand when a call to refreshConfig is made
-   * 
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   * @deprecated since 6.0 use DistributedSystemConfig.refreshInterval instead
-   */
-  @Deprecated
-  public void setRefreshInterval(int refreshInterval)
-      throws OperationNotSupportedException {
-    throw new OperationNotSupportedException(
-        LocalizedStrings.MANAGED_RESOURCE_REFRESH_INTERVAL_CANT_BE_SET_DIRECTLY.toLocalizedString());
-  }  
-  
-  // -------------------------------------------------------------------------
-  //   MBean Operations
-  // -------------------------------------------------------------------------
-
-  public void refreshConfig()
-    throws com.gemstone.gemfire.admin.AdminException {
-    // 1st call to refreshConfig would trigger 
-    // the auto-refresh if an interval is set
-    if (this.refreshInterval>0) {
-      this._setRefreshInterval(this.refreshInterval);
-    }
-
-    super.refreshConfig();
-  }
-
-  /**
-   * Initializes Cache & Statistics managed resources.
-   * 
-   * @throws AdminException
-   *           if initialization of managed resources fails
-   */
-//  private void initializeManagedResources() throws AdminException {
-//    try {
-//      manageCache();
-//    } catch (MalformedObjectNameException e) {
-//      throw new AdminException(LocalizedStrings.SystemMemberJmxImpl_EXCEPTION_OCCURRED_WHILE_INITIALIZING_0_MBEANS_FOR_1.toLocalizedString(
-//              new Object[] {"Cache", getId()}), 
-//              e);
-//    } catch (AdminException ae) {
-//      if (LocalizedStrings.SystemMemberJmx_THIS_SYSTEM_MEMBER_DOES_NOT_HAVE_A_CACHE.toLocalizedString().equals(ae.getMessage())) {
-//        //ignore this exception for a cache-less peer 
-//      } else {
-//        throw ae;
-//      }
-//    }
-//    try {
-//      manageStats();
-//    } catch (MalformedObjectNameException e) {
-//      throw new AdminException(LocalizedStrings.SystemMemberJmxImpl_EXCEPTION_OCCURRED_WHILE_INITIALIZING_0_MBEANS_FOR_1.toLocalizedString(
-//          new Object[] {"Statistics", getId()}), 
-//          e);
-//    }
-//  }
-  
-  /** 
-   * Gets this member's cache.
-   *
-   * @return array of ObjectName for this member's cache
-   */
-  public ObjectName manageCache() 
-  throws AdminException, MalformedObjectNameException {
-    return Helper.manageCache(this);
-  }
-
-  /** 
-   * Gets all active StatisticResources for this manager.
-   *
-   * @return array of ObjectName instances
-   */
-  public ObjectName[] manageStats() 
-  throws AdminException, MalformedObjectNameException {
-    return Helper.manageStats(this);
-  }
-
-  /** 
-   * Gets the active StatisticResources for this manager, based on the
-   * typeName as the key
-   *
-   * @return ObjectName of StatisticResourceJMX instance
-   */
-  public ObjectName[] manageStat(String statisticsTypeName) 
-    throws AdminException, MalformedObjectNameException {
-    
-    return Helper.manageStat(this, statisticsTypeName);
-  }
-
-  // -------------------------------------------------------------------------
-  //   JMX Notification listener
-  // -------------------------------------------------------------------------
-
-  /**
-   * Handles notification to refresh. Reacts by refreshing the values of this
-   * GemFireManager's ConfigurationParamaters. Any other notification is
-   * ignored. Given notification is handled only if there is any JMX client
-   * connected to the system.
-   * 
-   * @param notification
-   *          the JMX notification being received
-   * @param hb
-   *          handback object is unused
-   */
-  public void handleNotification(Notification notification, Object hb) {
-    AdminDistributedSystemJmxImpl systemJmx = 
-                                  (AdminDistributedSystemJmxImpl) this.system;
-
-    if (!systemJmx.isRmiClientCountZero()) {
-      Helper.handleNotification(this, notification, hb);
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Template methods overriden from superclass...
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Template method for creating instance of ConfigurationParameter.  
-   * Overridden to return ConfigurationParameterJmxImpl.
-   */
-  @Override
-  protected ConfigurationParameter createConfigurationParameter(String name,
-                                                                String description,
-                                                                Object value,
-                                                                Class type,
-                                                                boolean userModifiable) {
-    return new ConfigurationParameterJmxImpl(
-        name, description, value, type, userModifiable);
-  }
-  
-
-
-  /**
-   * Override createStatisticResource by instantiating StatisticResourceJmxImpl 
-   * if it was not created earlier otherwise returns the same instance.
-   * 
-   * @param stat
-   *         StatResource reference for which this JMX resource is to be created
-   * @return StatisticResourceJmxImpl - JMX Implementation of StatisticResource
-   * @throws AdminException
-   *           if constructing StatisticResourceJmxImpl instance fails
-   */
-  @Override
-  protected StatisticResource createStatisticResource(StatResource stat)
-    throws com.gemstone.gemfire.admin.AdminException {
-    StatisticResourceJmxImpl managedStatisticResource = null;
-    
-    synchronized (this.managedStatisticsResourcesMap) {
-      /* 
-       * Ensuring that a single instance of Statistic Resource is created per 
-       * StatResource.
-       */
-      StatisticResourceJmxImpl statisticResourceJmxImpl = managedStatisticsResourcesMap.get(stat);
-      if (statisticResourceJmxImpl != null) {
-        managedStatisticResource = statisticResourceJmxImpl;
-      } else {
-        managedStatisticResource = new StatisticResourceJmxImpl(stat, this);
-        managedStatisticResource.getStatistics();//inits timer
-        managedStatisticsResourcesMap.put(stat, managedStatisticResource);
-      }
-    }
-    return managedStatisticResource;
-  }
-
-  /**
-   * Override createSystemMemberCache by instantiating SystemMemberCacheJmxImpl 
-   * if it was not created earlier.
-   * 
-   * @param vm
-   *          GemFireVM reference for which this JMX resource is to be created
-   * @return SystemMemberCacheJmxImpl - JMX Implementation of SystemMemberCache
-   * @throws AdminException
-   *           if constructing SystemMemberCacheJmxImpl instance fails
-   */
-  @Override
-  protected SystemMemberCache createSystemMemberCache(GemFireVM vm)
-    throws com.gemstone.gemfire.admin.AdminException {
-    if (managedSystemMemberCache == null) {
-      managedSystemMemberCache = new SystemMemberCacheJmxImpl(vm);
-    }
-    return managedSystemMemberCache;
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Create MBean attributes for each ConfigurationParameter
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Add MBean attribute definitions for each ConfigurationParameter.
-   *
-   * @param managed the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> but 
-   *         with the new attributes added
-   */
-  public ManagedBean addDynamicAttributes(ManagedBean managed) 
-  throws com.gemstone.gemfire.admin.AdminException {
-    return Helper.addDynamicAttributes(this, managed);
-  }
-
-  /**
-   * Cleans up Managed Resources created for the client that was connected to
-   * the server represented by this class.
-   * 
-   * @param clientId
-   *          id of the client to be removed
-   * @return List of ManagedResources associated with the client of given client
-   *         id
-   */
-  /*
-   * This clean up is for the clients. The clients are started with a loner DM.
-   * Hence the clientId is not supposed to contain '/' as per 
-   * InternalDistributedMember.toString().
-   */
-  public List<ManagedResource> cleanupBridgeClientResources(String clientId) {
-    List<ManagedResource> returnedResources = new ArrayList<ManagedResource>();
-
-    String compatibleId = "id_"+MBeanUtil.makeCompliantMBeanNameProperty(clientId);
-    synchronized (this.managedStatisticsResourcesMap) {
-      Set<Entry<StatResource, StatisticResourceJmxImpl>> entrySet = this.managedStatisticsResourcesMap.entrySet();
-      
-      for (Iterator<Entry<StatResource, StatisticResourceJmxImpl>> it = entrySet.iterator(); it.hasNext();) {
-        Entry<StatResource, StatisticResourceJmxImpl> entry = it.next();
-        StatisticResourceJmxImpl resource = entry.getValue();
-        if (resource.getMBeanName().contains(compatibleId)) {
-          it.remove(); //remove matching entry
-          returnedResources.add(resource);
-        }
-      }
-    }
-    return returnedResources;
-  }
-  
-  /**
-   * Implementation handles client membership changes.
-   * 
-   * @param clientId
-   *          id of the client for whom membership change happened
-   * @param eventType
-   *          membership change type; one of
-   *          {@link ClientMembershipMessage#JOINED},
-   *          {@link ClientMembershipMessage#LEFT}, 
-   *          {@link ClientMembershipMessage#CRASHED}
-   */
-  public void handleClientMembership(String clientId, int eventType) {
-    String notifType                = null;
-    List<ManagedResource> cleanedUp = null;
-    
-    if (eventType == ClientMembershipMessage.LEFT) {
-      notifType = NOTIF_CLIENT_LEFT;
-      cleanedUp = cleanupBridgeClientResources(clientId);
-    } else if (eventType == ClientMembershipMessage.CRASHED) {
-      notifType = NOTIF_CLIENT_CRASHED;
-      cleanedUp = cleanupBridgeClientResources(clientId);
-    } else if (eventType == ClientMembershipMessage.JOINED) {
-      notifType = NOTIF_CLIENT_JOINED;
-    }
-    
-    if (cleanedUp != null) {
-      for (ManagedResource resource : cleanedUp) {
-        MBeanUtil.unregisterMBean(resource);
-      }
-    }
-
-    Helper.sendNotification(this, 
-        new Notification(notifType, this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        clientId));
-  }
-  
-  /**
-   * Implementation handles creation of cache by extracting the details from the 
-   * given event object and sending the 
-   * {@link SystemMemberJmx#NOTIF_CACHE_CREATED} notification to the connected 
-   * JMX Clients.
-   * 
-   * @param event
-   *          event object corresponding to the creation of the cache
-   */
-  public void handleCacheCreate(SystemMemberCacheEvent event) {
-    Helper.sendNotification(this, 
-      new Notification(NOTIF_CACHE_CREATED, this.modelMBean, 
-      Helper.getNextNotificationSequenceNumber(),
-      Helper.getCacheEventDetails(event)));
-  }  
-
-  /**
-   * Implementation handles closure of cache by extracting the details from the 
-   * given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_CACHE_CLOSED} notification to the connected 
-   * JMX Clients. 
-   * 
-   * @param event
-   *          event object corresponding to the closure of the cache
-   */
-  public void handleCacheClose(SystemMemberCacheEvent event) {
-    Helper.sendNotification(this, 
-        new Notification(NOTIF_CACHE_CLOSED, this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        Helper.getCacheEventDetails(event)));
-  }
-
-  /**
-   * Implementation handles creation of region by extracting the details from 
-   * the given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_REGION_CREATED} notification to the connected 
-   * JMX Clients. Region Path is set as User Data in Notification. 
-   * 
-   * @param event
-   *          event object corresponding to the creation of a region
-   */
-  public void handleRegionCreate(SystemMemberRegionEvent event) {
-    Notification notification = new Notification(NOTIF_REGION_CREATED, 
-                                    this.modelMBean, 
-                                    Helper.getNextNotificationSequenceNumber(),
-                                    Helper.getRegionEventDetails(event));
-    
-    notification.setUserData(event.getRegionPath());
-
-    Helper.sendNotification(this, notification);
-  }
-
-  /**
-   * Implementation should handle loss of region by extracting the details from 
-   * the given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_REGION_LOST} notification to the connected 
-   * JMX Clients. Region Path is set as User Data in Notification. Additionally, 
-   * it also clears the ManagedResources created for the region that is lost. 
-   * 
-   * @param event
-   *          event object corresponding to the loss of a region
-   */
-  public void handleRegionLoss(SystemMemberRegionEvent event) {
-    SystemMemberCacheJmxImpl cacheResource = this.managedSystemMemberCache;
-    
-    if (cacheResource != null) {
-      ManagedResource cleanedUp = 
-                cacheResource.cleanupRegionResources(event.getRegionPath());
-      
-      if (cleanedUp != null) {
-        MBeanUtil.unregisterMBean(cleanedUp);
-      }
-    }
-
-    Notification notification = new Notification(NOTIF_REGION_LOST, 
-                                    this.modelMBean, 
-                                    Helper.getNextNotificationSequenceNumber(),
-                                    Helper.getRegionEventDetails(event));
-    
-    notification.setUserData(event.getRegionPath());
-
-    Helper.sendNotification(this, notification);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ConfigAttributeInfo.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ConfigAttributeInfo.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ConfigAttributeInfo.java
deleted file mode 100755
index c613cf0..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ConfigAttributeInfo.java
+++ /dev/null
@@ -1,77 +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.admin.jmx.internal;
-
-//import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.internal.Assert;
-
-import javax.management.Descriptor;
-import javax.management.modelmbean.DescriptorSupport;
-import javax.management.modelmbean.ModelMBeanAttributeInfo;
-
-/** 
- * Subclass of AttributeInfo with {@link 
- * com.gemstone.gemfire.admin.ConfigurationParameter} added for use as the 
- * {@link javax.management.modelmbean.ModelMBeanAttributeInfo} descriptor's 
- * <i>targetObject</i> value.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-class ConfigAttributeInfo extends org.apache.commons.modeler.AttributeInfo {
-  private static final long serialVersionUID = -1918437700841687078L;
-  
-  private final ConfigurationParameterJmxImpl config;
-  
-  public ConfigAttributeInfo(ConfigurationParameterJmxImpl config) {
-    super();
-    this.config = config;
-  }
-  
-  public ConfigurationParameterJmxImpl getConfig() {
-    return this.config;
-  }
-
-  @Override
-  public ModelMBeanAttributeInfo createAttributeInfo() {
-    Descriptor desc = new DescriptorSupport(
-        new String[] {
-        "name=" + this.displayName,
-        "descriptorType=attribute",
-        "currencyTimeLimit=-1", // always stale
-        "displayName=" + this.displayName,
-        "getMethod=getJmxValue",
-        "setMethod=setJmxValue" 
-        });
-        
-    Assert.assertTrue(this.config != null, "Config target object is null!");
-    desc.setField("targetObject", this.config);
-
-    ModelMBeanAttributeInfo info = new ModelMBeanAttributeInfo(
-        this.displayName, // name
-        this.type,        // type
-        this.description, // description
-        this.readable,    // isReadable
-        this.writeable,   // isWritable
-        this.is,          // isIs
-        desc);
-        
-    return info;
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ConfigurationParameterJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ConfigurationParameterJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ConfigurationParameterJmxImpl.java
deleted file mode 100755
index d617719..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ConfigurationParameterJmxImpl.java
+++ /dev/null
@@ -1,170 +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.admin.jmx.internal;
-
-import java.io.IOException;
-import java.io.Serializable;
-
-import org.apache.logging.log4j.Level;
-
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.UnmodifiableConfigurationException;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * Provides MBean support for managing accessing a ConfigurationParameter.
- * <p>
- * Implements java.io.Serializable because several MBeans have attributes of
- * type ConfigurationParameter. This means that calls to getMBeanInfo which
- * may be serialized for remote clients will be broken unless those attributes
- * support serialization.
- * <p>
- * TODO: refactor to implement ConfigurationParameter and delegate to 
- * ConfigurationParameterImpl. Wrap all delegate calls w/ e.printStackTrace()
- * since the HttpAdaptor devours them
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public class ConfigurationParameterJmxImpl
-extends com.gemstone.gemfire.admin.internal.ConfigurationParameterImpl
-implements Serializable {
-
-  private static final long serialVersionUID = -7822171853906772375L;
-  private boolean deserialized = false;
-  
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  protected ConfigurationParameterJmxImpl(String name,
-                                          String description,
-                                          Object value,
-                                          Class type,
-                                          boolean userModifiable) {
-    super(name, description, value, type, userModifiable);
-  }
-  
-  protected ConfigurationParameterJmxImpl(String name,
-                                          Object value) {
-    super(name, value);
-  }
-  
-  /** Constructor to allow serialization */
-  protected ConfigurationParameterJmxImpl() { super(); }
-  
-  @Override
-  public void setValue(Object value) throws UnmodifiableConfigurationException {
-    if (deserialized) {
-      throw new UnsupportedOperationException(LocalizedStrings.ConfigurationParameterJmxImpl_REMOTE_MUTATION_OF_CONFIGURATIONPARAMETER_IS_CURRENTLY_UNSUPPORTED.toLocalizedString());
-    }
-    try {
-      super.setValue(value);
-    } catch (UnmodifiableConfigurationException e) {
-      MBeanUtil.logStackTrace(Level.WARN, e);
-      throw e;
-    } catch (java.lang.RuntimeException e) {
-      MBeanUtil.logStackTrace(Level.WARN, e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (java.lang.Error e) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      MBeanUtil.logStackTrace(Level.ERROR, e);
-      throw e;
-    }
-  }
-  
-  // -------------------------------------------------------------------------
-  //   HACK
-  // -------------------------------------------------------------------------
-  public void setJmxValue(Integer value) throws UnmodifiableConfigurationException {
-    setValue(value);
-  }
-  public void setJmxValue(String value) throws UnmodifiableConfigurationException {
-    setValue(value);
-  }
-  public void setJmxValue(java.io.File value) throws UnmodifiableConfigurationException {
-    setValue(value);
-  }
-  public void setJmxValue(Boolean value) throws UnmodifiableConfigurationException {
-    setValue(value);
-  }
-  
-  public Class getJmxValueType() {
-    if (isInetAddress() || isFile() || isOctal()) {
-      return java.lang.String.class;
-    }
-    return getValueType();
-  }
-  
-  public Object getJmxValue() {
-    if (isInetAddress() || isFile() || isOctal()) {
-      return getValueAsString();
-    }
-    return getValue();
-  }
-  
-  /** 
-   * Override writeObject which is used in serialization. This class is
-   * serialized when JMX client acquires MBeanInfo for ConfigurationParameter
-   * MBean. Super class is not serializable.
-   */
-  private void writeObject(java.io.ObjectOutputStream out)
-  throws IOException {
-    out.writeObject(this.name);
-    out.writeObject(this.description);
-    out.writeObject(this.value);
-    out.writeObject(this.type);
-    out.writeBoolean(this.userModifiable);
-  }
-  
-  /** 
-   * Override readObject which is used in serialization. Customize 
-   * serialization of this exception to avoid escape of InternalRole
-   * which is not Serializable. 
-   */
-  private void readObject(java.io.ObjectInputStream in)
-  throws IOException, ClassNotFoundException {
-    String inName = (String) in.readObject();
-    String inDescription = (String) in.readObject();
-    Object inValue = in.readObject();
-    Class inClass = (Class) in.readObject();
-    boolean inUserModifiable = in.readBoolean();
-    
-    Assert.assertTrue(inName != null);
-    Assert.assertTrue(inDescription != null);
-    Assert.assertTrue(inValue != null);
-    Assert.assertTrue(inClass != null);
-    
-    this.deserialized = true;
-    this.name = inName;
-    setInternalState(inDescription, inValue, inClass, inUserModifiable);
-  }
-     
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DistributedSystemHealthConfigJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DistributedSystemHealthConfigJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DistributedSystemHealthConfigJmxImpl.java
deleted file mode 100644
index 71e3578..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DistributedSystemHealthConfigJmxImpl.java
+++ /dev/null
@@ -1,108 +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.admin.jmx.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.admin.internal.*;
-//import com.gemstone.gemfire.internal.admin.*;
-import javax.management.*;
-import javax.management.modelmbean.*;
-//import org.apache.commons.modeler.ManagedBean;
-
-/**
- * The JMX "managed resource" that represents the configuration for
- * the health of a distributed system.  Basically, it provides the
- * behavior of <code>DistributedSystemHealthConfigImpl</code>, but
- * does some JMX stuff like registering beans with the agent.
- *
- * @see GemFireHealthJmxImpl#createDistributedSystemHealthConfig
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-public class DistributedSystemHealthConfigJmxImpl
-  extends DistributedSystemHealthConfigImpl 
-  implements ManagedResource {
-
-  /** The <code>GemFireHealth</code> that we help configure */
-  private GemFireHealth health;
-
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-
-  /** The JMX object name of the MBean for this managed resource */
-  private final ObjectName objectName;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>DistributedSystemHealthCOnfigJmxImpl</code>
-   * that configures the health of the distributed system monitored by
-   * <code>health</code>.
-   */
-  DistributedSystemHealthConfigJmxImpl(GemFireHealthJmxImpl health)
-    throws AdminException {
-
-    super();
-    this.health = health;
-    this.mbeanName = new StringBuffer()
-      .append(MBEAN_NAME_PREFIX)
-      .append("DistributedSystemHealthConfig,id=")
-      .append(MBeanUtil.makeCompliantMBeanNameProperty(health.getDistributedSystem().getId()))
-      .toString();
-    this.objectName = MBeanUtil.createMBean(this);
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Applies the changes made to this config back to the health
-   * monitor.
-   *
-   * @see GemFireHealth#setDistributedSystemHealthConfig
-   */
-  public void applyChanges() {
-    this.health.setDistributedSystemHealthConfig(this);
-  }
-
-  public String getMBeanName() {
-    return this.mbeanName;
-  }
-  
-  public ModelMBean getModelMBean() {
-    return this.modelMBean;
-  }
-
-  public void setModelMBean(ModelMBean modelMBean) {
-    this.modelMBean = modelMBean;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.DISTRIBUTED_SYSTEM_HEALTH_CONFIG;
-  }
-
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public void cleanupResource() {}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DistributionLocatorJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DistributionLocatorJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DistributionLocatorJmxImpl.java
deleted file mode 100755
index 1075d7f..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DistributionLocatorJmxImpl.java
+++ /dev/null
@@ -1,186 +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.admin.jmx.internal;
-
-//import com.gemstone.gemfire.admin.AdminException;
-//import com.gemstone.gemfire.admin.DistributionLocator;
-import com.gemstone.gemfire.admin.DistributionLocatorConfig;
-import com.gemstone.gemfire.admin.internal.AdminDistributedSystemImpl;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-//import com.gemstone.gemfire.internal.Assert;
-
-//import org.apache.commons.modeler.ManagedBean;
-//import org.apache.commons.modeler.AttributeInfo;
-
-//import java.util.Date;
-//import java.util.Set;
-
-//import javax.management.Attribute;
-//import javax.management.AttributeList;
-//import javax.management.Descriptor;
-//import javax.management.JMException;
-//import javax.management.MBeanServer;
-//import javax.management.MalformedObjectNameException;
-//import javax.management.Notification;
-//import javax.management.NotificationListener;
-import javax.management.ObjectName;
-//import javax.management.modelmbean.DescriptorSupport;
-import javax.management.modelmbean.ModelMBean;
-//import javax.management.modelmbean.ModelMBeanAttributeInfo;
-
-/**
- * Provides MBean support for managing a distribution locator.
- *
- * @author    Kirk Lund
- */
-public class DistributionLocatorJmxImpl 
-extends com.gemstone.gemfire.admin.internal.DistributionLocatorImpl
-implements com.gemstone.gemfire.admin.jmx.internal.ManagedResource,
-           DistributionLocatorConfig {
-
-  /** The JMX object name of this managed resource */
-  private ObjectName objectName;
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Constructs new instance of DistributionLocatorJmxImpl for managing a
-   * distribution locator service via JMX.
-   */
-  public DistributionLocatorJmxImpl(DistributionLocatorConfig config,
-                                    AdminDistributedSystemImpl system) {
-    super(config, system);
-    initializeMBean();
-  }
-
-  /** Create and register the MBean to manage this resource */
-  private void initializeMBean() {
-    this.mbeanName = "GemFire:type=DistributionLocator,id=" + MBeanUtil.makeCompliantMBeanNameProperty(getId());
-    this.objectName =
-        MBeanUtil.createMBean(this, MBeanUtil.lookupManagedBean(this));
-  }
-
-  ////////////////////////  Configuration  ////////////////////////
-
-  public String getHost() {
-    return this.getConfig().getHost();
-  }
-
-  public void setHost(String host) {
-    this.getConfig().setHost(host);
-  }
-
-  public String getWorkingDirectory() {
-    return this.getConfig().getWorkingDirectory();
-  }
-
-  public void setWorkingDirectory(String dir) {
-    this.getConfig().setWorkingDirectory(dir);
-  }
-
-  public String getProductDirectory() {
-    return this.getConfig().getProductDirectory();
-  }
-
-  public void setProductDirectory(String dir) {
-    this.getConfig().setProductDirectory(dir);
-  }
-
-  public String getRemoteCommand() {
-    return this.getConfig().getRemoteCommand();
-  }
-
-  public void setRemoteCommand(String remoteCommand) {
-    this.getConfig().setRemoteCommand(remoteCommand);
-  }
-
-  public java.util.Properties getDistributedSystemProperties() {
-    return this.getConfig().getDistributedSystemProperties();
-  }
-  
-  public void setDistributedSystemProperties(java.util.Properties props) {
-    this.getConfig().setDistributedSystemProperties(props);
-  }
-
-  public void validate() {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  @Override
-  public Object clone() throws CloneNotSupportedException {
-    throw new UnsupportedOperationException(LocalizedStrings.SHOULDNT_INVOKE.toLocalizedString());
-  }
-
-  public int getPort() {
-    return this.getConfig().getPort();
-  }
-
-  public void setPort(int port) {
-    this.getConfig().setPort(port);
-  }
-
-  public String getBindAddress() {
-    return this.getConfig().getBindAddress();
-  }
-
-  public void setBindAddress(String bindAddress) {
-    this.getConfig().setBindAddress(bindAddress);
-  }
-
-  // -------------------------------------------------------------------------
-  //   MBean attributes - accessors/mutators
-  // -------------------------------------------------------------------------
-  
-  // -------------------------------------------------------------------------
-  //   JMX Notification listener
-  // -------------------------------------------------------------------------
-
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-	public String getMBeanName() {
-		return this.mbeanName;
-	}
-  
-	public ModelMBean getModelMBean() {
-		return this.modelMBean;
-	}
-	public void setModelMBean(ModelMBean modelMBean) {
-		this.modelMBean = modelMBean;
-	}
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.DISTRIBUTION_LOCATOR;
-  }
-  
-  public void cleanupResource() {}
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DynamicManagedBean.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DynamicManagedBean.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DynamicManagedBean.java
deleted file mode 100755
index 30595c5..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/DynamicManagedBean.java
+++ /dev/null
@@ -1,142 +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.admin.jmx.internal;
-
-
-import java.util.Arrays;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.modeler.AttributeInfo;
-import org.apache.commons.modeler.OperationInfo;
-import org.apache.commons.modeler.ManagedBean;
-
-/**
- * Extends ManagedBean to allow for dynamically creating new instances of
- * ManagedBean based on an existing instance of ManagedBean.
- * 
- * @author  Kirk Lund
- * @since 5.0.1
- */
-public class DynamicManagedBean extends org.apache.commons.modeler.ManagedBean {
-  private static final long serialVersionUID = 4051924500150228160L;
-  
-  public DynamicManagedBean(ManagedBean managed) {
-    super();
-    
-    this.attributes = managed.getAttributes();
-    this.className = managed.getClassName();
-    this.constructors = managed.getConstructors();
-    this.description = managed.getDescription();
-    this.domain = managed.getDomain();
-    this.group = managed.getGroup();
-    this.name = managed.getName();
-    this.fields = managed.getFields();
-    this.notifications = managed.getNotifications();
-    this.operations = managed.getOperations();
-    this.type = managed.getType();
-    
-    /* we don't use modelerType and it's nice to remove it to keep the list of 
-       attributes cleaned up...*/
-    removeAttribute("modelerType");
-  }
-
-  /**
-   * Removes an attribute from this ManagedBean's attribute descriptor list.
-   *
-   * @param name the attribute to be removed
-   */
-  public void removeAttribute(String name) {
-    if (name == null || name.length() < 1) {
-      return;
-    }
-    synchronized (this.attributes) {
-      List attributesList = new ArrayList(this.attributes.length);
-      for (int i = 0; i < this.attributes.length; i++) {
-        if (!name.equals(this.attributes[i].getName())) {
-          attributesList.add(this.attributes[i]);
-        }
-      }
-      this.attributes = (AttributeInfo[]) 
-          attributesList.toArray(new AttributeInfo[attributesList.size()]);
-      
-      /* super.info should be nulled out anytime the structure is changed,
-       * such as altering the attributes, operations, or notifications
-       *
-       * however super.info is private, so we need the following hack to cause
-       * the super class to null it out for us...
-       */
-      setType(this.type); // causes this in super: "this.info = null;"
-    }
-  }
-
-  /**
-   * Removes the operation with the given name from thie
-   * <code>ManageBean</code>'s operation descriptor list.
-   *
-   * @since 4.0
-   */
-  public void removeOperation(String name) {
-    if (name == null || name.length() < 1) {
-      return;
-    }
-
-    synchronized (operations) {
-      List operationsList = new ArrayList(this.operations.length);
-      for (int i = 0; i < this.operations.length; i++) {
-        if (!name.equals(this.operations[i].getName())) {
-          operationsList.add(this.operations[i]);
-        }
-      }
-      this.operations = (OperationInfo[]) 
-          operationsList.toArray(new OperationInfo[operationsList.size()]);
-      
-      /* super.info should be nulled out anytime the structure is changed,
-       * such as altering the operations, operations, or notifications
-       *
-       * however super.info is private, so we need the following hack to cause
-       * the super class to null it out for us...
-       */
-      setType(this.type); // causes this in super: "this.info = null;"
-    }
-  }
-
-  /**
-   * Return a string representation of this managed bean.
-   */
-  @Override
-  public String toString() {
-    StringBuffer sb = new StringBuffer("DynamicManagedBean[");
-    sb.append("name=");
-    sb.append(name);
-    sb.append(", className=");
-    sb.append(className);
-    sb.append(", description=");
-    sb.append(description);
-    if (group != null) {
-      sb.append(", group=");
-      sb.append(group);
-    }
-    sb.append(", type=");
-    sb.append(type);
-    sb.append(", attributes=");
-    sb.append(Arrays.asList(attributes));
-    sb.append("]");
-    return (sb.toString());
-  }
-}
-


[49/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheListener.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheListener.java
deleted file mode 100644
index e684c7d..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheListener.java
+++ /dev/null
@@ -1,54 +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.hibernate;
-
-import java.util.Properties;
-
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
-
-public class GemFireCacheListener extends CacheListenerAdapter implements
-    Declarable {
-
-  @Override
-  public void afterCreate(EntryEvent event) {
-    System.out.println("Create : " + event.getKey() + " / "
-        + event.getNewValue());
-  }
-
-  @Override
-  public void afterDestroy(EntryEvent event) {
-    System.out.println("Destroy : " + event.getKey());
-  }
-
-  @Override
-  public void afterInvalidate(EntryEvent event) {
-    System.out.println("Invalidate : " + event.getKey());
-  }
-
-  @Override
-  public void afterUpdate(EntryEvent event) {
-    System.out.println("Update : " + event.getKey() + " / "
-        + event.getNewValue());
-  }
-
-  public void init(Properties props) {
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheProvider.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheProvider.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheProvider.java
deleted file mode 100644
index 9cd6c88..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheProvider.java
+++ /dev/null
@@ -1,200 +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.hibernate;
-
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.distributed.DistributedLockService;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.modules.util.CreateRegionFunction;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-import org.apache.logging.log4j.Logger;
-import org.hibernate.cache.Cache;
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.CacheProvider;
-import org.hibernate.cache.Timestamper;
-
-import java.util.Iterator;
-import java.util.Properties;
-
-@SuppressWarnings("deprecation")
-public class GemFireCacheProvider implements CacheProvider {
-
-  private static final Logger logger = LogService.getLogger();
-
-  protected com.gemstone.gemfire.cache.Cache _cache;
-
-  private DistributedLockService distributedLockService;
-
-  private Properties regionAttributes = new Properties();
-
-  private final String DEFAULT_REGION_TYPE = RegionShortcut.REPLICATE_HEAP_LRU
-      .name();
-
-  private final String HIBERNATE_DLOCK_SERVICE_NAME = "hibernate-cache-lock-service";
-  /**
-   * Configure the cache
-   * 
-   * @param regionName
-   *          the name of the cache region
-   * @param properties
-   *          configuration settings
-   * @throws CacheException
-   */
-  public Cache buildCache(String regionName, Properties properties)
-      throws CacheException {
-    logger.info("GemFireCacheProvider: Creating cache: " + regionName);
-    Region region = retrieveOrCreateRegion(regionName);
-    Cache cache = null;
-    if (region == null) {
-      // Doh, blow up
-      throw new RuntimeException("Couldn't find cache region : " + regionName);
-    }
-    else {
-      cache = new GemFireCache(region, this.distributedLockService);
-    }
-    logger.info("GemFireCacheProvider: Created cache: " + regionName + "->" + cache);
-    return cache;
-  }
-
-  public boolean isMinimalPutsEnabledByDefault() {
-    return false;
-  }
-
-  /**
-   * Generate a timestamp
-   */
-  public long nextTimestamp() {
-    return Timestamper.next();
-  }
-
-  /**
-   * Returns the region if already created, otherwise first tries to create it
-   * from cache.xml, if not specified in cache.xml, create the region from the
-   * properties specified in hibernate.cfg.xml. Two types of properties can be
-   * specified in hibernate.cfg.xml
-   * <ol>
-   * <li>gemfire.default-region-attributes-id: the default region type to
-   * create. (default value for this is REPLICATE)
-   * <li>gemfire.region-attributes-for:fullyQualifiedRegionName when a region
-   * wants to override the default region type
-   * </ol>
-   * 
-   * @param regionName
-   * @return the region
-   */
-  protected Region retrieveOrCreateRegion(String regionName) {
-    // TODO client regions
-    Region r = _cache.getRegion(regionName);
-    if (r == null) {
-      String regionType = getRegionType(regionName);
-      r = _cache.createRegionFactory(RegionShortcut.valueOf(regionType))
-          .create(regionName);
-      RegionConfiguration regionConfig = new RegionConfiguration();
-      regionConfig.setRegionName(regionName);
-      regionConfig.setRegionAttributesId(regionType);
-      FunctionService.onMembers(_cache.getDistributedSystem())
-          .withArgs(regionConfig).execute(CreateRegionFunction.ID).getResult();
-    }
-    return r;
-  }
-
-  /**
-   * returns the type of region to create by consulting the properties specified
-   * in hibernate.cfg.xml
-   * 
-   * @see #retrieveOrCreateRegion(String)
-   * @param regionName
-   * @return string representation of {@link RegionShortcut}
-   */
-  private String getRegionType(String regionName) {
-    String rType = regionAttributes
-        .getProperty("gemfire.default-region-attributes-id");
-    if (rType == null) {
-      rType = DEFAULT_REGION_TYPE;
-    }
-    // iterate to find overridden property for a region
-    Iterator<Object> it = regionAttributes.keySet().iterator();
-    while (it.hasNext()) {
-      String current = (String)it.next();
-      if (current.contains(regionName)) {
-        rType = regionAttributes.getProperty(current);
-        break;
-      }
-    }
-    return rType.toUpperCase();
-  }
-
-  /**
-   * Callback to perform any necessary initialization of the underlying cache
-   * implementation during SessionFactory construction.
-   * 
-   * @param properties
-   *          current configuration settings.
-   */
-  public void start(Properties properties) throws CacheException {
-    logger.info("GemFireCacheProvider: Creating cache provider");
-
-    // We have to strip out any unknown properties, do so here
-    Properties gemfireOnlyProperties = new Properties();
-    for (Object keyObj : properties.keySet()) {
-      String key = (String)keyObj;
-      if (key.contains("region-attributes")) {
-        regionAttributes.put(key, properties.get(key));
-      }
-      else if (key.startsWith("gemfire.")) {
-        gemfireOnlyProperties.setProperty(key.replace("gemfire.", ""),
-            properties.getProperty(key));
-      }
-    }
-
-    // Create cache and d-lock service
-    try {
-      _cache = new CacheFactory(gemfireOnlyProperties).create();
-      DistributedLockService existing = DistributedLockService.getServiceNamed(HIBERNATE_DLOCK_SERVICE_NAME);
-      if (existing == null) {
-        this.distributedLockService = DistributedLockService.create(
-            HIBERNATE_DLOCK_SERVICE_NAME, _cache.getDistributedSystem());
-      } else {
-        this.distributedLockService = existing;
-      }
-    } 
-    catch (com.gemstone.gemfire.cache.CacheException e) {
-      throw new CacheException(e);
-    }
-
-    FunctionService.registerFunction(new CreateRegionFunction());
-
-    logger.info("GemFireCacheProvider: Done creating cache provider");
-  }
-
-  /**
-   * Callback to perform any necessary cleanup of the underlying cache
-   * implementation during SessionFactory.close().
-   */
-  public void stop() {
-    logger.info("GemFireCacheProvider: Stopping");
-    _cache.close();
-    logger.info("GemFireCacheProvider: Stopped");
-  }
-
-  public static Logger getLogger() {
-    return logger;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireQueryCacheFactory.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireQueryCacheFactory.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireQueryCacheFactory.java
deleted file mode 100644
index c019436..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireQueryCacheFactory.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.hibernate;
-
-import java.util.Properties;
-
-import org.hibernate.HibernateException;
-import org.hibernate.cache.QueryCache;
-import org.hibernate.cache.QueryCacheFactory;
-import org.hibernate.cache.UpdateTimestampsCache;
-import org.hibernate.cfg.Settings;
-
-/**
- * Defines a factory for query cache instances. These factories are responsible
- * for creating individual QueryCache instances.
- * 
- */
-public class GemFireQueryCacheFactory implements QueryCacheFactory {
-  public QueryCache getQueryCache(String regionName,
-      UpdateTimestampsCache updateTimestampsCache, Settings settings,
-      Properties props) throws HibernateException {
-    return new org.hibernate.cache.StandardQueryCache(settings, props,
-        updateTimestampsCache, regionName);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireRegionFactory.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireRegionFactory.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireRegionFactory.java
deleted file mode 100644
index 97e5fdf..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireRegionFactory.java
+++ /dev/null
@@ -1,237 +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.hibernate;
-
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import org.hibernate.cache.CacheDataDescription;
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.CollectionRegion;
-import org.hibernate.cache.EntityRegion;
-import org.hibernate.cache.QueryResultsRegion;
-import org.hibernate.cache.RegionFactory;
-import org.hibernate.cache.Timestamper;
-import org.hibernate.cache.TimestampsRegion;
-import org.hibernate.cache.access.AccessType;
-import org.hibernate.cfg.Settings;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.client.ClientCache;
-import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfigImpl;
-import com.gemstone.gemfire.modules.hibernate.internal.ClientServerRegionFactoryDelegate;
-import com.gemstone.gemfire.modules.hibernate.internal.EntityWrapper;
-import com.gemstone.gemfire.modules.hibernate.internal.GemFireCollectionRegion;
-import com.gemstone.gemfire.modules.hibernate.internal.GemFireEntityRegion;
-import com.gemstone.gemfire.modules.hibernate.internal.GemFireQueryResultsRegion;
-import com.gemstone.gemfire.modules.hibernate.internal.RegionFactoryDelegate;
-import com.gemstone.gemfire.modules.util.Banner;
-
-public class GemFireRegionFactory implements RegionFactory {
-
-    
-  private static final String GEMFIRE_QUERY_RESULTS_REGION_NAME = "gemfire.hibernateQueryResults";
-
-  private static final String GEMFIRE_TIMESTAMPS_REGION_NAME = "gemfire.hibernateTimestamps";
-
-  private GemFireCache _cache;
-
-  private RegionFactoryDelegate delegate;
-
-  // TODO get rid of this
-  private boolean isClient;
-  
-  private final Logger log = LoggerFactory.getLogger(getClass());
-
-  private final ExecutorService executorService = Executors.newSingleThreadExecutor();
-
-  private Set<String> gemfireAttributes;
-  
-  /**
-   * maps the entity to the region that stores it.
-   */
-  private ConcurrentMap<String, GemFireEntityRegion> entityRegionMap = new ConcurrentHashMap<String, GemFireEntityRegion>();
-  
-  public GemFireRegionFactory(Properties props) {
-    log.debug("props:" + props);
-  }
-
-  public ExecutorService getExecutorService() {
-    return this.executorService;
-  }
-  
-  @Override
-  public void start(Settings settings, Properties properties)
-      throws CacheException {
-    log.info("Initializing " + Banner.getString());
-    extractGemFireProperties(properties);
-    _cache = delegate.startCache();
-  }
-
-  private void extractGemFireProperties(Properties properties) {
-    // We have to strip out any unknown properties, do so here
-    Properties gemfireProperties = new Properties();
-    Properties regionProperties = new Properties();
-    for (Object keyObj : properties.keySet()) {
-      String key = (String)keyObj;
-      if (key.contains("region-attributes")) {
-        regionProperties.put(key, properties.get(key));
-      }
-      else if (key.equals("gemfire.cache-topology")) {
-        if (properties.getProperty(key).trim()
-            .equalsIgnoreCase("client-server")) {
-          isClient = true;
-        }
-      }
-      else if (key.startsWith("gemfire.") && isGemFireAttribute(key)) {
-        gemfireProperties.setProperty(key.replace("gemfire.", ""),
-            properties.getProperty(key));
-      }
-    }
-    if (isClient) {
-      delegate = new ClientServerRegionFactoryDelegate(gemfireProperties, regionProperties);
-    } else {
-      delegate = new RegionFactoryDelegate(gemfireProperties, regionProperties);
-    }
-  }
-
-  private boolean isGemFireAttribute(String key) {
-    String gfKey = key.replace("gemfire.", "");
-    Set<String> gemfireAttributes = getGemFireAttributesNames();
-    return gemfireAttributes.contains(gfKey);
-  }
-
-  private Set<String> getGemFireAttributesNames() {
-    if (this.gemfireAttributes == null) {
-      //used only to get the list of all gemfire properties
-      DistributionConfig dConfig = new DistributionConfigImpl(new Properties());
-      String[] gemfireAttributeNames = dConfig.getAttributeNames();
-      gemfireAttributes = new HashSet<String>();
-      for (String attrName : gemfireAttributeNames) {
-        gemfireAttributes.add(attrName);
-      }
-    }
-    return gemfireAttributes;
-  }
-  
-  @Override
-  public void stop() {
-    // we do not want to close the cache, as there may be other
-    // applications/webapps
-    // using this cache. TODO do we want to close the regions that are created
-    // by this application?
-  }
-
-  @Override
-  public boolean isMinimalPutsEnabledByDefault() {
-    // minimal puts is better for clustered cache
-    return true;
-  }
-
-  @Override
-  public AccessType getDefaultAccessType() {
-    return AccessType.NONSTRICT_READ_WRITE;
-  }
-
-  @Override
-  public long nextTimestamp() {
-    log.debug("nextTimestamp called");
-    // TODO use gemfire cache time here. (which tries to minimize clock skews)
-    return Timestamper.next();
-  }
-
-  @Override
-  public EntityRegion buildEntityRegion(String regionName,
-      Properties properties, CacheDataDescription metadata)
-      throws CacheException {
-    // create the backing region
-    log.debug("creating Entity region {} ", regionName);
-    Region<Object, EntityWrapper> region = delegate.createRegion(regionName);
-    GemFireEntityRegion r = new GemFireEntityRegion(region, isClient, metadata, this);
-    this.entityRegionMap.put(regionName, r);
-    return r;
-  }
-
-  @Override
-  public CollectionRegion buildCollectionRegion(String regionName,
-      Properties properties, CacheDataDescription metadata)
-      throws CacheException {
-    log.debug("creating collection region {}",regionName);
-    Region<Object, EntityWrapper> region = delegate.createRegion(regionName);
-    return new GemFireCollectionRegion(region, isClient, metadata, this);
-  }
-
-  @Override
-  public QueryResultsRegion buildQueryResultsRegion(String regionName,
-      Properties properties) throws CacheException {
-    log.debug("Creating a query results region");
-    Region region = getLocalRegionForQueryCache();
-    return new GemFireQueryResultsRegion(region);
-  }
-
-  private Region getLocalRegionForQueryCache() {
-    return getLocalRegion(GEMFIRE_QUERY_RESULTS_REGION_NAME);
-  }
-  
-  private Region getLocalRegionForTimestampsCache() {
-    return getLocalRegion(GEMFIRE_TIMESTAMPS_REGION_NAME);
-  }
-  
-  private Region getLocalRegion(String regionName) {
-    Region region = _cache.getRegion(regionName);
-    if (region != null) {
-      return region;
-    }
-    if (isClient) {
-      ClientCache cc = (ClientCache)_cache;
-      region = cc.createClientRegionFactory(ClientRegionShortcut.LOCAL_HEAP_LRU).create(regionName);
-    } else {
-      Cache c = (Cache)_cache;
-      region = c.createRegionFactory(RegionShortcut.LOCAL_HEAP_LRU).create(regionName);
-    }
-    return region;
-  }
-  
-  @Override
-  public TimestampsRegion buildTimestampsRegion(String regionName,
-      Properties properties) throws CacheException {
-    Region region = getLocalRegionForTimestampsCache();
-    return new GemFireQueryResultsRegion(region);
-  }
-
-  /**
-   * Given an entity name, gets the region used to store
-   * that entity.
-   * @param name name of the entity
-   * @return the entity region for the given entity name
-   */
-  public GemFireEntityRegion getEntityRegion(String name) {
-    return this.entityRegionMap.get(name);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/Access.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/Access.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/Access.java
deleted file mode 100644
index 86c6786..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/Access.java
+++ /dev/null
@@ -1,257 +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.hibernate.internal;
-
-import com.gemstone.gemfire.cache.CacheWriterException;
-import com.gemstone.gemfire.cache.EntryExistsException;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.client.ServerOperationException;
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.EntityRegion;
-import org.hibernate.cache.access.EntityRegionAccessStrategy;
-import org.hibernate.cache.access.SoftLock;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public abstract class Access implements EntityRegionAccessStrategy {
-
-  private final GemFireEntityRegion region;
-
-  /**Thread local to remember the status of insert, which can be returned in afterInsert*/
-  private ThreadLocal<Map<Object, Boolean>> createStatus = new ThreadLocal<Map<Object, Boolean>>() {
-    @Override
-    protected Map<Object, Boolean> initialValue() {
-      return new HashMap<Object, Boolean>();
-    }
-  };
-
-  private Logger log = LoggerFactory.getLogger(getClass());
-
-  public Access(GemFireEntityRegion region) {
-    this.region = region;
-  }
-
-  @Override
-  public EntityRegion getRegion() {
-    return this.region;
-  }
-
-  @Override
-  public Object get(Object key, long txTimestamp) throws CacheException {
-    KeyWrapper wKey = getWrappedKey(key);
-    if (this.region.isRegisterInterestRequired()) {
-      this.region.registerInterest(wKey);
-    }
-    // first check to see if we have pre-fetched this entity
-    EntityWrapper wrapper = this.region.get(wKey);
-    if (wrapper == null) {
-      wrapper = this.region.getGemFireRegion().get(wKey);
-    }
-    if (wrapper == null) {
-      this.region.getStats().incCacheMiss();
-      log.debug("Cache miss for {} count: {}",wKey, this.region.getStats().getCacheMiss());
-      return null;
-    } else {
-      this.region.getStats().incCacheHit();
-      log.debug("cache hit {} count: {} ", wKey, this.region.getStats().getCacheHits());
-    }
-    return wrapper.getEntity();
-  }
-
-  @Override
-  public boolean putFromLoad(Object key, Object value, long txTimestamp,
-      Object version) throws CacheException {
-    return putFromLoad(key, value, txTimestamp, version, true);
-  }
-
-  @Override
-  public boolean putFromLoad(Object key, Object value, long txTimestamp,
-      Object version, boolean minimalPutOverride) throws CacheException {
-    return create(key, value);
-  }
-
-  private boolean create(Object key, Object value) {
-    KeyWrapper wKey = getWrappedKey(key);
-    EntityWrapper wrapper = new EntityWrapper(value, 1L);
-    log.debug("putting a new entry from load {} value: {}",wKey, wrapper);
-    boolean remove = false;
-    try {
-      this.region.getGemFireRegion().create(wKey, wrapper);
-    } catch (EntryExistsException ee) {
-      log.debug("key {} exists in the cache already, destroying", wKey);
-      remove = true;
-    } catch (CacheWriterException writerEx) {
-      this.region.getStats().incHibernateDestroyJobsScheduled();
-      log.debug("caught a CacheWriterException {} ",writerEx.getMessage());
-      remove = true;
-    } catch (ServerOperationException serverEx) {
-      if (serverEx.getCause() instanceof CacheWriterException) {
-        this.region.getStats().incHibernateDestroyJobsScheduled();
-        log.debug("caught a ServerOperationException caused by CacheWriterException {} ",serverEx.getMessage());
-      } else {
-        throw serverEx;
-      }
-      remove = true;
-    }
-    if (remove) {
-      this.region.getGemFireRegion().remove(wKey);
-      return false;
-    }
-    return true;
-  }
-
-  @Override
-  public SoftLock lockItem(Object key, Object version) throws CacheException {
-    KeyWrapper wKey = getWrappedKey(key);
-    EntityWrapper wrapper = this.region.getGemFireRegion().get(wKey);
-    Long ver = wrapper == null ? 0L : wrapper.getVersion();
-    log.debug("lockItem:key: {} entityVersion: {}", new Object[] { wKey, ver });
-    return new EntityVersionImpl(ver);
-  }
-
-  @Override
-  public SoftLock lockRegion() throws CacheException {
-    return null;
-  }
-
-  @Override
-  public void unlockItem(Object key, SoftLock lock) throws CacheException {
-    log.debug("unlockItem:key:" + key + " lock:" + lock);
-  }
-
-  @Override
-  public void unlockRegion(SoftLock lock) throws CacheException {
-  }
-
-  @Override
-  public boolean insert(Object key, Object value, Object version)
-      throws CacheException {
-    log.debug("insert:key:{} value:{} version:{}",
-        new Object[]{key, value, version});
-    boolean retVal = create(key, value);
-    createStatus.get().put(key, retVal);
-    return retVal;
-  }
-
-  @Override
-  public boolean afterInsert(Object key, Object value, Object version)
-      throws CacheException {
-    log.info("afterInsert:key:{} value:{} version:{}",
-        new Object[]{key, value, version});
-    return createStatus.get().remove(key);
-  }
-
-  @Override
-  public boolean update(Object key, Object value, Object currentVersion,
-      Object previousVersion) throws CacheException {
-    KeyWrapper wKey = getWrappedKey(key);
-    EntityWrapper oldWrapper = this.region.getGemFireRegion().get(wKey);
-    Long version = oldWrapper == null ? 1L : oldWrapper.getVersion() + 1;
-    EntityWrapper wrapper = new EntityWrapper(value, version);
-    log.debug("put:key:{} value:{} version:{}", new Object[] { wKey, value,
-        version });
-    boolean remove = false;
-    try {
-      if (oldWrapper == null) {
-        remove = this.region.getGemFireRegion().putIfAbsent(wKey, wrapper) != null;
-      } else {
-        remove = !this.region.getGemFireRegion().replace(wKey, oldWrapper, wrapper);
-      }
-    } catch (CacheWriterException writerEx) {
-      this.region.getStats().incHibernateDestroyJobsScheduled();
-      log.debug("caught a CacheWriterException {} ",writerEx.getMessage());
-      remove = true;
-    } catch (ServerOperationException serverEx) {
-      if (serverEx.getCause() instanceof CacheWriterException) {
-        this.region.getStats().incHibernateDestroyJobsScheduled();
-        log.debug("caught a ServerOperationException caused by CacheWriterException {} ",serverEx.getMessage());
-        remove = true;
-      } else {
-        throw serverEx;
-      }
-    }
-    if (remove) {
-      this.region.getGemFireRegion().remove(wKey);
-      return false;
-    }
-    log.debug("put for key {} succeded", wKey);
-    return true;
-  }
-
-  @Override
-  public boolean afterUpdate(Object key, Object value, Object currentVersion,
-      Object previousVersion, SoftLock lock) throws CacheException {
-    log.debug("afterUpdate:key:{} value:{} currVersion:{} previousVersion:{}",
-        new Object[] {key, value, currentVersion, previousVersion});
-    KeyWrapper wKey = getWrappedKey(key);
-    EntityWrapper wrapper = this.region.getGemFireRegion().get(wKey);
-    if (wrapper == null) {
-      // this entry was destroyed during update
-      return false;
-    }
-    Long version = wrapper.getVersion();
-    Long expectedVersion = ((EntityVersion)lock).getVersion() + 1;
-    log.debug("afterPut:key:{} value:{} version:{} expected: {}",
-        new Object[] { wKey, value, version, expectedVersion });
-    if (wrapper.getVersion() != expectedVersion) {
-      log.debug(
-          "for key {} expected version to be {} but was {}, so destroying the key",
-          new Object[] { wKey, expectedVersion, version });
-      this.region.getGemFireRegion().remove(wKey);
-      return false;
-    }
-    return true;
-  }
-
-  @Override
-  public void remove(Object key) throws CacheException {
-    log.debug("removing key {} ",key);
-    this.region.getGemFireRegion().remove(getWrappedKey(key));
-  }
-
-  @Override
-  public void removeAll() throws CacheException {
-    log.debug("removing all keys");
-    this.region.getGemFireRegion().clear();
-  }
-
-  @Override
-  public void evict(Object key) throws CacheException {
-    // TODO we should implement a method on Region to evict
-    // a particular entry, destroying is inefficient
-    log.debug("removing key {} ",key);
-    this.region.getGemFireRegion().remove(getWrappedKey(key));
-  }
-
-  @Override
-  public void evictAll() throws CacheException {
-    log.debug("removing all keys");
-    this.region.getGemFireRegion().clear();
-  }
-
-  protected Region<Object, EntityWrapper> getGemFireRegion() {
-    return this.region.getGemFireRegion();
-  }
-  
-  protected KeyWrapper getWrappedKey(Object key) {
-    return new KeyWrapper(key);
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ClientServerRegionFactoryDelegate.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ClientServerRegionFactoryDelegate.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ClientServerRegionFactoryDelegate.java
deleted file mode 100644
index 980e6ab..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ClientServerRegionFactoryDelegate.java
+++ /dev/null
@@ -1,208 +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.hibernate.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.client.ClientCache;
-import com.gemstone.gemfire.cache.client.ClientCacheFactory;
-import com.gemstone.gemfire.cache.client.ClientRegionFactory;
-import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.modules.util.BootstrappingFunction;
-import com.gemstone.gemfire.modules.util.CreateRegionFunction;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-
-public class ClientServerRegionFactoryDelegate extends RegionFactoryDelegate {
-
-  private static final String DEFAULT_SERVER_REGION_TYPE = RegionShortcut.PARTITION.name();
-
-  private static final String DEFAULT_CLIENT_REGION_TYPE = ClientRegionShortcut.PROXY.name();
-
-  private ClientCache clientCache;
-  
-  public ClientServerRegionFactoryDelegate(Properties gemfireProperties,
-      Properties regionProperties) {
-    super(gemfireProperties, regionProperties);
-  }
-
-  @Override
-  public GemFireCache startCache() {
-    log.info("Creating a GemFire client cache");
-    String locatorsString = (String)gemfireProperties.remove("locators");
-    checkExistingCache();
-    ClientCacheFactory ccf = new ClientCacheFactory(gemfireProperties).setPoolSubscriptionEnabled(true);
-    List<LocatorHolder> locators = getLocatorsMap(locatorsString);
-    for (LocatorHolder locHolder : locators) {
-      log.debug("adding pool locator with host {} port {}", locHolder.host, locHolder.port);
-      ccf.addPoolLocator(locHolder.host, locHolder.port);
-    }
-    this.clientCache = ccf.create();
-    
-    log.debug("GemFire client cache creation completed");
-    // bootstrap the servers
-    FunctionService.onServers(this.clientCache).execute(new BootstrappingFunction()).getResult();
-    FunctionService.registerFunction(new CreateRegionFunction(this.clientCache));
-    return this.clientCache;
-  }
-
-  private List<LocatorHolder> getLocatorsMap(String locatorsString) {
-    List<LocatorHolder> retval = new ArrayList<LocatorHolder>();
-    if (locatorsString == null || locatorsString.isEmpty()) {
-      return retval;
-    }
-    StringTokenizer st = new StringTokenizer(locatorsString, ",");
-    while (st.hasMoreTokens()) {
-      String locator = st.nextToken();
-      int portIndex = locator.indexOf('[');
-      if (portIndex < 1) {
-        portIndex = locator.lastIndexOf(':');
-      }
-      // starting in 5.1.0.4 we allow '@' as the bind-addr separator
-      // to let people use IPv6 numeric addresses (which contain colons)
-      int bindAddrIdx = locator.lastIndexOf('@', portIndex - 1);
-      
-      if (bindAddrIdx < 0) {
-        bindAddrIdx = locator.lastIndexOf(':', portIndex - 1);
-      }
-
-      String host = locator.substring(0,
-          bindAddrIdx > -1 ? bindAddrIdx : portIndex);
-
-      if (host.indexOf(':') >= 0) {
-        bindAddrIdx = locator.lastIndexOf('@');
-        host = locator.substring(0, bindAddrIdx > -1 ? bindAddrIdx : portIndex);
-      }
-      int lastIndex = locator.lastIndexOf(']');
-      if (lastIndex == -1) {
-        if (locator.indexOf('[') >= 0) {
-          throw new IllegalArgumentException("Invalid locator");
-        } else {
-          // Using host:port syntax
-          lastIndex = locator.length();
-        }
-      }
-      String port = locator.substring(portIndex + 1, lastIndex);
-      int portVal = 0;
-      try {
-        portVal = Integer.parseInt(port);
-        if (portVal < 1 || portVal > 65535) {
-          throw new IllegalArgumentException("port should be grater than zero and less than 65536");
-        }
-      } catch (NumberFormatException ex) {
-        throw new IllegalArgumentException("Invalid Locator");
-      }
-      retval.add(new LocatorHolder(host, portVal));
-    }
-    return retval;
-  }
-
-  @Override
-  public Region<Object, EntityWrapper> createRegion(String regionName) {
-    // first create the region on the server
-    String serverRegionType = getServerRegionType(regionName);
-    RegionConfiguration regionConfig = new RegionConfiguration();
-    regionConfig.setRegionName(regionName);
-    regionConfig.setRegionAttributesId(serverRegionType);
-    regionConfig.setCacheWriterName(EntityRegionWriter.class.getCanonicalName());
-    FunctionService.onServer(this.clientCache).withArgs(regionConfig)
-        .execute(CreateRegionFunction.ID).getResult();
-    // now create region on the client
-    Region<Object, EntityWrapper> r = this.clientCache.getRegion(regionName);
-    if (r != null) {
-      return r;
-    }
-    String clientRegionType = getClientRegionType(regionName);
-    ClientRegionFactory<Object, EntityWrapper> rf = this.clientCache
-        .createClientRegionFactory(ClientRegionShortcut
-            .valueOf(clientRegionType));
-    r = rf.create(regionName);
-    return r;
-  }
-
-  private String getClientRegionType(String regionName) {
-    String rType = getOverridenClientRegionType(regionName);
-    if (rType != null) {
-      return rType.toUpperCase();
-    }
-    rType = regionProperties.getProperty("gemfire.default-client-region-attributes-id");
-    if (rType == null) {
-      rType = DEFAULT_CLIENT_REGION_TYPE;
-    }
-    return rType.toUpperCase();
-  }
-
-  private String getServerRegionType(String regionName) {
-    String rType = getOverridenServerRegionType(regionName);
-    if (rType != null) {
-      return rType.toUpperCase();
-    }
-    rType = regionProperties.getProperty("gemfire.default-region-attributes-id");
-    if (rType == null) {
-      rType = DEFAULT_SERVER_REGION_TYPE;
-    }
-    return rType.toUpperCase();
-  }
-
-  private String getOverridenServerRegionType(String regionName) {
-    String rType = null;
-    Iterator<Object> it = regionProperties.keySet().iterator();
-    while (it.hasNext()) {
-      String current = (String)it.next();
-      if (current.contains(regionName) && !current.contains("client")) {
-        rType = regionProperties.getProperty(current);
-        break;
-      }
-    }
-    return rType;
-  }
-
-  private String getOverridenClientRegionType(String regionName) {
-    String rType = null;
-    Iterator<Object> it = regionProperties.keySet().iterator();
-    while (it.hasNext()) {
-      String current = (String)it.next();
-      if (current.contains(regionName) && current.contains("client")) {
-        rType = regionProperties.getProperty(current);
-        break;
-      }
-    }
-    return rType;
-  }
-  
-  private static class LocatorHolder {
-    private String host;
-    private int port;
-    private LocatorHolder(String host, int port) {
-      this.host = host;
-      this.port = port;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/CollectionAccess.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/CollectionAccess.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/CollectionAccess.java
deleted file mode 100644
index f1898d8..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/CollectionAccess.java
+++ /dev/null
@@ -1,224 +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.hibernate.internal;
-
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.CollectionRegion;
-import org.hibernate.cache.access.CollectionRegionAccessStrategy;
-import org.hibernate.cache.access.SoftLock;
-import org.hibernate.cache.entry.CollectionCacheEntry;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.CacheWriterException;
-import com.gemstone.gemfire.cache.EntryExistsException;
-import com.gemstone.gemfire.cache.EntryNotFoundException;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.client.ServerOperationException;
-
-public class CollectionAccess implements
-    CollectionRegionAccessStrategy {
-
-  private final GemFireCollectionRegion region;
-  
-  private Logger log = LoggerFactory.getLogger(getClass());
-  
-  /**
-   * if we know the entity whose ids are stored in this
-   * collection, we can prefetch those entities using
-   * getAll. This field stores that child entity name.
-   */
-  private String childEntityName;
-  
-  public CollectionAccess(GemFireCollectionRegion region) {
-    this.region = region;
-    String regionName = this.region.getGemFireRegion().getName().trim();
-    regionName = regionName.replace("\\/", "");
-    int lastPeriod = regionName.lastIndexOf('.');
-    if (lastPeriod < 0) {
-      log.info("Eager prefetching disabled for region: {}", this.region.getName());
-      return;
-    }
-    String entityName = regionName.substring(0, lastPeriod);
-    String collectionFieldName = regionName.substring(lastPeriod+1);
-    log.debug("entity name: {}, collectionFieldName: {}", entityName, collectionFieldName);
-    try {
-      Class parentClass = Class.forName(entityName);
-      Field[] fields = parentClass.getDeclaredFields();
-      for (Field field : fields) {
-        log.debug("genericType: {}", field.getGenericType());
-        if (field.getName().equals(collectionFieldName)) {
-          String genericString = field.toGenericString();
-          log.debug("genericType: for required field name: {}", field.toGenericString());
-          int startDependentEntityIndex = genericString.indexOf("<");
-          if (startDependentEntityIndex != -1 &&
-              genericString.indexOf("<", startDependentEntityIndex+1) == -1) {
-            int childDependentEntityIndex = genericString.indexOf(">");
-            this.childEntityName = genericString.substring(startDependentEntityIndex+1, childDependentEntityIndex);
-            log.debug("For Collection {} using child entity: {}", this.region.getGemFireRegion().getName(), this.childEntityName);
-          }
-        }
-      }
-    }
-    catch (ClassNotFoundException e) {
-      //ok to ignore, we will not use pre-fetching
-    }
-    if (this.childEntityName == null) {
-      log.info("Eager prefetching disabled for region: {}", this.region.getName());
-    }
-  }
-  
-  @Override
-  public CollectionRegion getRegion() {
-    return this.region;
-  }
-
-  @Override
-  public Object get(Object key, long txTimestamp) throws CacheException {
-    EntityWrapper wrapper = this.region.getGemFireRegion().get(key);
-    if (wrapper == null) {
-      this.region.getStats().incCacheMiss();
-      log.debug("Cache miss for {} ts: {}",key, txTimestamp);
-      return null;
-    } else {
-      this.region.getStats().incCacheHit();
-      log.debug("cache hit {} count: {} ", key, this.region.getStats().getCacheHits());
-      // do pre-fetching
-      if (isPrefetchPossible()) {
-        log.debug("for key: {} prefetching entries: {}", key, wrapper.getEntity());
-        prefetchKeys((CollectionCacheEntry)wrapper.getEntity());
-      }
-    }
-    return wrapper.getEntity();
-  }
-
-  private void prefetchKeys(CollectionCacheEntry entry) {
-    StringBuilder builder = new StringBuilder(this.childEntityName+"#");
-    Serializable[] childEntityKeys = entry.getState();
-    Set<String> getAllSet = new HashSet<String>();
-    for (Serializable id : childEntityKeys) {
-      String key = builder.append(id).toString();
-      log.debug("adding key {} to getAll set", key);
-      getAllSet.add(key);
-    }
-    GemFireEntityRegion childRegion = this.region.regionFactory.getEntityRegion(this.childEntityName);
-    log.debug("prefetching {} keys", getAllSet.size());
-    if (!getAllSet.isEmpty() && childRegion != null) {
-      childRegion.getAll(getAllSet);
-    }
-  }
-
-  private boolean isPrefetchPossible() {
-    return this.childEntityName != null;
-  }
-
-  private void printRegionContents(Region<Object, EntityWrapper> r) {
-    log.debug("printing contents of {} ",r);
-    for (Object k : r.keySet()) {
-      log.debug("key {} value {} ",k,r.get(k));
-    }
-  }
-  
-  @Override
-  public boolean putFromLoad(Object key, Object value, long txTimestamp,
-      Object version) throws CacheException {
-    return putFromLoad(key, value, txTimestamp, version, true);
-  }
-
-  @Override
-  public boolean putFromLoad(Object key, Object value, long txTimestamp,
-      Object version, boolean minimalPutOverride) throws CacheException {
-    EntityWrapper wrapper = new EntityWrapper(value, 1L);
-    log.debug("putting a new collection entry from load {} value: {}",key, wrapper);
-    boolean remove = false;
-    try {
-      this.region.getGemFireRegion().create(key, wrapper);
-    } catch (EntryExistsException ee) {
-      log.debug("key {} exists in the cache already, destroying", key);
-      remove = true;
-    } catch (CacheWriterException writerEx) {
-      this.region.getStats().incHibernateDestroyJobsScheduled();
-      log.debug("caught a CacheWriterException {} ",writerEx.getMessage());
-      remove = true;
-    } catch (ServerOperationException serverEx) {
-      if (serverEx.getCause() instanceof CacheWriterException) {
-        this.region.getStats().incHibernateDestroyJobsScheduled();
-        log.debug("caught a ServerOperationException caused by CacheWriterException {} ",serverEx.getMessage());
-      } else {
-        throw serverEx;
-      }
-      remove = true;
-    }
-    if (remove) {
-      this.region.getGemFireRegion().remove(key);
-      return false;
-    }
-    return true;
-  }
-
-  @Override
-  public SoftLock lockItem(Object key, Object version) throws CacheException {
-    // there are no updates to the collectionCache,
-    // so no need to lock/version
-    return null;
-  }
-
-  @Override
-  public SoftLock lockRegion() throws CacheException {
-    return null;
-  }
-
-  @Override
-  public void unlockItem(Object key, SoftLock lock) throws CacheException {
-  }
-
-  @Override
-  public void unlockRegion(SoftLock lock) throws CacheException {
-  }
-
-  @Override
-  public void remove(Object key) throws CacheException {
-    log.debug("removing key {}",key);
-    this.region.getGemFireRegion().remove(key);
-  }
-
-  @Override
-  public void removeAll() throws CacheException {
-    log.debug("removing all keys");
-    this.region.getGemFireRegion().clear();
-  }
-
-  @Override
-  public void evict(Object key) throws CacheException {
-    // TODO we should implement a method on Region to evict
-    // a particular entry, destroying is inefficient
-    log.debug("removing key {}", key);
-    this.region.getGemFireRegion().remove(key);
-  }
-
-  @Override
-  public void evictAll() throws CacheException {
-    log.debug("removing all keys");
-    this.region.getGemFireRegion().clear();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityRegionWriter.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityRegionWriter.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityRegionWriter.java
deleted file mode 100644
index 5a4e5e1..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityRegionWriter.java
+++ /dev/null
@@ -1,87 +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.hibernate.internal;
-
-
-import java.util.Properties;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.CacheWriterException;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.util.CacheWriterAdapter;
-
-public class EntityRegionWriter extends CacheWriterAdapter implements Declarable {
-  
-  private Logger log = LoggerFactory.getLogger(getClass());
-  
-//  @Override
-//  public void beforeCreate(EntryEvent event) {
-//    event.getRegion().getCache().getLogger().info("GFE:Writer invoked for beforeCreate:"+event);
-//      final Object key = event.getKey();
-//      EntityWrapper val = (EntityWrapper)event.getNewValue();
-//      EntityWrapper oldVal = (EntityWrapper)event.getOldValue();
-//      log.debug("beforeCreate: key:"+key+" val:"+val.getEntity()+" ver:"+val.getVersion()+" region:"+event.getRegion().getName()+" oldVal:"+oldVal+" this:"+System.identityHashCode(this));
-//  }
-  
-  @Override
-  public void beforeUpdate(EntryEvent event) {
-    log.debug("Writer invoked for beforeUpdate:{}",event);
-    final Object key = event.getKey();
-    EntityWrapper val = (EntityWrapper)event.getNewValue();
-    if (val.getVersion() < 0) {
-      // no need for version check for NonStrictReadWrite
-      // this is needed because CacheEntry does not implement equals
-      return;
-    }
-    EntityWrapper oldVal = (EntityWrapper)event.getOldValue();
-    // if same entity was loaded from two different VMs,
-    // i.e. version same and entity equal then no need to destroy
-    //
-    if (oldVal.getVersion() == val.getVersion()) {
-      if (val.getEntity().equals(oldVal.getEntity())) {
-        // since CacheEntry does not override equals
-        // this check is probably of no use
-        return;
-      }
-    } else if (oldVal.getVersion() < val.getVersion()) {
-      return;
-    }
-    log.debug("For key {} old version was {} new version was {}", new Object[] {key, oldVal.getVersion(), val.getVersion()});
-    throw new CacheWriterException("key "+key+" had a newer version");
-  }
-  
-  @Override
-  public boolean equals(Object obj) {
-    // This method is only implemented so that RegionCreator.validateRegion works properly.
-    // The CacheWriter comparison fails because two of these instances are not equal.
-    if (this == obj) {
-      return true;
-    }
-
-    if (obj == null || !(obj instanceof EntityRegionWriter)) {
-      return false;
-    }
-    return true;
-  }
-
-  @Override
-  public void init(Properties arg0) {
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersion.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersion.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersion.java
deleted file mode 100644
index abfb675..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersion.java
+++ /dev/null
@@ -1,28 +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.hibernate.internal;
-
-import org.hibernate.cache.access.SoftLock;
-
-/**
- * 
- * @author sbawaska
- */
-public interface EntityVersion extends SoftLock {
-
-  public Long getVersion();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersionImpl.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersionImpl.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersionImpl.java
deleted file mode 100644
index ad160e4..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersionImpl.java
+++ /dev/null
@@ -1,51 +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.hibernate.internal;
-
-/**
- * 
- * @author sbawaska
- */
-public class EntityVersionImpl implements EntityVersion {
-
-  private final Long version;
-
-  public EntityVersionImpl(Long version) {
-    this.version = version;
-  }
-
-  @Override
-  public Long getVersion() {
-    return this.version;
-  }
-
-  @Override
-  public boolean equals(Object obj) {
-    if (obj instanceof EntityVersionImpl) {
-      EntityVersionImpl other = (EntityVersionImpl)obj;
-      if (this.version.equals(other.version)) {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  @Override
-  public int hashCode() {
-    return this.version.hashCode();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityWrapper.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityWrapper.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityWrapper.java
deleted file mode 100644
index ab92dea..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityWrapper.java
+++ /dev/null
@@ -1,89 +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.hibernate.internal;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-
-public class EntityWrapper implements DataSerializable {
-
-  private static final long serialVersionUID = 8616754027252339041L;
-
-  private Object entity;
-
-  private long version;
-
-  public EntityWrapper(Object entity, long version) {
-    this.entity = entity;
-    this.version = version;
-  }
-
-  /**
-   * for {@link DataSerializer}
-   */
-  public EntityWrapper() {
-  }
-  
-  public long getVersion() {
-    return version;
-  }
-
-  public Object getEntity() {
-    return entity;
-  }
-
-  @Override
-  public boolean equals(Object obj) {
-    if (obj instanceof EntityWrapper) {
-      EntityWrapper other = (EntityWrapper)obj;
-      if (this.version == other.version) {
-        //CacheEntry does not override equals, hence cannot be used in this comparison
-        return true;
-      }
-    }
-    return false;
-  }
-
-  @Override
-  public int hashCode() {
-    return Long.valueOf(this.version).hashCode();
-  }
-
-  @Override
-  public String toString() {
-    return new StringBuilder()
-        .append("EntityWrapper@" + System.identityHashCode(this))
-        .append(" Entity:" + this.entity).append(" version:" + this.version)
-        .toString();
-  }
-
-  @Override
-  public void toData(DataOutput out) throws IOException {
-    out.writeLong(this.version);
-    DataSerializer.writeObject(this.entity, out);
-  }
-
-  @Override
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    this.version = in.readLong();
-    this.entity = DataSerializer.readObject(in);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireBaseRegion.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireBaseRegion.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireBaseRegion.java
deleted file mode 100644
index 9e77a98..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireBaseRegion.java
+++ /dev/null
@@ -1,166 +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.hibernate.internal;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ExecutorService;
-
-import org.hibernate.cache.CacheDataDescription;
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.Region;
-import org.hibernate.cache.Timestamper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.distributed.DistributedSystem;
-import com.gemstone.gemfire.internal.cache.LocalRegion;
-import com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory;
-import com.gemstone.gemfire.modules.util.ModuleStatistics;
-
-public class GemFireBaseRegion implements Region {
-
-  /**
-   * the backing region
-   */
-  protected final com.gemstone.gemfire.cache.Region<Object, EntityWrapper> region;
-
-  /**
-   * to determine if the operation should be forwarded to server
-   */
-  protected final boolean isClientRegion;
-
-  protected final CacheDataDescription metadata;
-
-  private final Logger log = LoggerFactory.getLogger(getClass());
-
-  protected final GemFireRegionFactory regionFactory;
-  
-  protected final ModuleStatistics stats;
-  
-  public GemFireBaseRegion(com.gemstone.gemfire.cache.Region<Object, EntityWrapper> region,
-      boolean isClient, CacheDataDescription metadata, GemFireRegionFactory regionFactory) {
-    this.region = region;
-    this.isClientRegion = isClient;
-    this.metadata = metadata;
-    this.regionFactory = regionFactory;
-    DistributedSystem system = ((LocalRegion)region).getSystem();
-    this.stats = ModuleStatistics.getInstance(system);
-
-  }
-
-  public com.gemstone.gemfire.cache.Region<Object, EntityWrapper> getGemFireRegion() {
-    return this.region;
-  }
-
-  public ModuleStatistics getStats() {
-    return this.stats;
-  }
-  
-  public ExecutorService getExecutorService() {
-    return this.regionFactory.getExecutorService();
-  }
-
-  @Override
-  public String getName() {
-    return this.region.getName();
-  }
-
-  @Override
-  public void destroy() throws CacheException {
-    if (!this.region.isDestroyed()) {
-      this.region.localDestroyRegion();
-    }
-  }
-
-  /*
-   * I did not see any useful callers from hibernate-core
-   */
-  @Override
-  public boolean contains(Object key) {
-    log.debug("contains key called for :" + key);
-    if (isClientRegion) {
-      // TODO should this be done?
-      return this.region.containsKeyOnServer(key);
-    }
-    return this.region.containsKey(key);
-  }
-
-  @Override
-  public long getSizeInMemory() {
-    return 0;
-  }
-
-  @Override
-  public long getElementCountInMemory() {
-    return this.region.size();
-  }
-
-  @Override
-  public long getElementCountOnDisk() {
-    LocalRegion lr = (LocalRegion)this.region;
-    if (lr.getDiskRegion() != null) {
-      return lr.getDiskRegion().getNumOverflowOnDisk();
-    }
-    return 0;
-  }
-
-  @Override
-  public Map<Object, EntityWrapper> toMap() {
-    return Collections.unmodifiableMap(this.region);
-  }
-
-  /*
-   * only used by updateTimestamps cache
-   */
-  @Override
-  public long nextTimestamp() {
-    log.debug("nextTimestamp called");
-    return Timestamper.next();
-  }
-  
-  /*
-   * this is used by updateTimestamps cache only
-   */
-  @Override
-  public int getTimeout() {
-    return 60*1000; // all other cache providers have same value
-  }
-  
-  @Override
-  public boolean equals(Object obj) {
-    if (obj instanceof GemFireBaseRegion) {
-      GemFireBaseRegion other = (GemFireBaseRegion)obj;
-      if (this.region.getName().equals(other.region.getName())
-          && this.isClientRegion == other.isClientRegion) {
-        return true;
-      }
-    }
-    return false;
-  }
-  
-  @Override
-  public int hashCode() {
-    return this.region.hashCode() + (this.isClientRegion ? 1 : 0);
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireCollectionRegion.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireCollectionRegion.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireCollectionRegion.java
deleted file mode 100644
index 620a332..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireCollectionRegion.java
+++ /dev/null
@@ -1,59 +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.hibernate.internal;
-
-import org.hibernate.cache.CacheDataDescription;
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.CollectionRegion;
-import org.hibernate.cache.access.AccessType;
-import org.hibernate.cache.access.CollectionRegionAccessStrategy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory;
-
-public class GemFireCollectionRegion extends GemFireBaseRegion implements CollectionRegion {
-
-  private Logger log = LoggerFactory.getLogger(getClass());
-  
-  public GemFireCollectionRegion(Region<Object, EntityWrapper> region,
-      boolean isClient, CacheDataDescription metadata,
-      GemFireRegionFactory regionFactory) {
-    super(region, isClient, metadata, regionFactory);
-  }
-
-  @Override
-  public boolean isTransactionAware() {
-    // TODO Auto-generated method stub
-    return false;
-  }
-
-  @Override
-  public CacheDataDescription getCacheDataDescription() {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  @Override
-  public CollectionRegionAccessStrategy buildAccessStrategy(
-      AccessType accessType) throws CacheException {
-    log.debug("creating collection access for region:"+this.region.getName());
-    return new CollectionAccess(this);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireEntityRegion.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireEntityRegion.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireEntityRegion.java
deleted file mode 100644
index 22ac466..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireEntityRegion.java
+++ /dev/null
@@ -1,187 +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.hibernate.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ExecutorService;
-
-import org.hibernate.cache.CacheDataDescription;
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.EntityRegion;
-import org.hibernate.cache.access.AccessType;
-import org.hibernate.cache.access.EntityRegionAccessStrategy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.distributed.DistributedSystem;
-import com.gemstone.gemfire.internal.cache.LocalRegion;
-import com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory;
-import com.gemstone.gemfire.modules.util.ModuleStatistics;
-
-public class GemFireEntityRegion extends GemFireBaseRegion implements EntityRegion {
-
-  private final Logger log = LoggerFactory.getLogger(getClass());
-  
-  private final boolean USE_JTA = Boolean.getBoolean("gemfiremodules.useJTA");
-  
-  /**
-   * keys for which interest has been registered already
-   */
-  private ConcurrentMap<Object, Boolean> registeredKeys = new ConcurrentHashMap<Object, Boolean>();
-
-  /**
-   * map to store the entries that were pre-fetched when the underlying region has no local storage
-   */
-  protected ConcurrentMap<Object, EntityWrapper> preFetchMap = new ConcurrentHashMap<Object, EntityWrapper>();
-  
-  public GemFireEntityRegion(Region<Object, EntityWrapper> region,
-      boolean isClient, CacheDataDescription metadata, GemFireRegionFactory regionFactory) {
-    super(region, isClient, metadata, regionFactory);
-  }
-
-  @Override
-  public boolean isTransactionAware() {
-    // there are no colocation guarantees while using hibernate
-    // so return false for a PartitionedRegion for now
-    if (USE_JTA) {
-      return true;
-    }
-    return false;
-  }
-
-  @Override
-  public CacheDataDescription getCacheDataDescription() {
-    return this.metadata;
-  }
-
-  @Override
-  public EntityRegionAccessStrategy buildAccessStrategy(AccessType accessType)
-      throws CacheException {
-    if (AccessType.READ_ONLY.equals(accessType)) {
-      log.info("creating read-only access for region: " + this.getName());
-      return new ReadOnlyAccess(this);
-    }
-    else if (AccessType.NONSTRICT_READ_WRITE.equals(accessType)) {
-      log.info("creating nonstrict-read-write access for region: "
-          + this.getName());
-      return new NonStrictReadWriteAccess(this);
-    }
-    else if (AccessType.READ_WRITE.equals(accessType)) {
-    	log.info("creating read-write access for region: "
-    	          + this.getName());
-      return new ReadWriteAccess(this);
-    }
-    else if (AccessType.TRANSACTIONAL.equals(accessType)) {
-    	log.info("creating transactional access for region: "
-    	          + this.getName());
-      return new TransactionalAccess(this);
-    }
-    throw new UnsupportedOperationException("Unknown access type: "
-        + accessType);
-  }
-
-  /**
-   * Should this region should register interest in keys.
-   * @return true for client regions with storage
-   */
-  public boolean isRegisterInterestRequired() {
-    return this.isClientRegion && this.region.getAttributes().getDataPolicy().withStorage();
-  }
-  
-  /**
-   * register interest in this key, if not already registered
-   * @param key
-   */
-  public void registerInterest(Object key) {
-    if (!this.registeredKeys.containsKey(key)) {
-      this.region.registerInterest(key);
-      this.registeredKeys.put(key, Boolean.TRUE);
-      log.debug("registered interest in key{}", key);
-    }
-  }
-  
-  public void registerInterest(Collection<?> list) {
-    // build a list of keys for which interest is not
-    // already registered
-    List<Object> interestList = new ArrayList<Object>();
-    for (Object o : list) {
-      if (!this.registeredKeys.containsKey(o)) {
-        interestList.add(o);
-      }
-    }
-    // register interest in this list
-    this.region.registerInterest(interestList);
-    log.debug("registered interest in {} keys", interestList.size());
-  }
-  
-  /**
-   * wraps the keys in {@link KeyWrapper} and calls getAll
-   * on the underlying GemFire region. When the underlying region
-   * is a proxy region, the fetched entries are stored in a local
-   * map.
-   * @param keys
-   */
-  public void getAll(Collection<?> keys) {
-    Set<KeyWrapper> wrappedKeys = new HashSet<KeyWrapper>();
-    for (Object o : keys) {
-      wrappedKeys.add(new KeyWrapper(o));
-    }
-    if (isRegisterInterestRequired()) {
-      registerInterest(wrappedKeys);
-    } else {
-      Map<Object, EntityWrapper> retVal = this.region.getAll(wrappedKeys);
-      putInLocalMap(retVal);
-    }
-  }
-
-  /**
-   * if the underlying gemfire region does not have local storage, put
-   * the pre-fetched entries in {@link #preFetchMap}
-   * @param map map of prefetched entries
-   */
-  private void putInLocalMap(Map<Object, EntityWrapper> map) {
-    if (!this.region.getAttributes().getDataPolicy().withStorage()) {
-      // if the value is null, do not cache in preFetchMap
-      for (Entry<Object, EntityWrapper> e : map.entrySet()) {
-        if (e.getValue() != null) {
-          this.preFetchMap.put(e.getKey(), e.getValue());
-          log.debug("putting key: {} value: {} in local map", e.getKey(), e.getValue());
-        }
-      }
-    }
-  }
-
-  /**
-   * If this key was pre-fetched, get the entity.
-   * @param key
-   * @return the prefetched entity
-   */
-  public EntityWrapper get(Object key) {
-    return this.preFetchMap.remove(key);
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireQueryResultsRegion.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireQueryResultsRegion.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireQueryResultsRegion.java
deleted file mode 100644
index ce06b85..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireQueryResultsRegion.java
+++ /dev/null
@@ -1,113 +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.hibernate.internal;
-
-import java.util.Collections;
-import java.util.Map;
-
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.QueryResultsRegion;
-import org.hibernate.cache.Timestamper;
-import org.hibernate.cache.TimestampsRegion;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.gemstone.gemfire.cache.EntryNotFoundException;
-import com.gemstone.gemfire.cache.Region;
-
-public class GemFireQueryResultsRegion implements QueryResultsRegion, TimestampsRegion {
-
-  private final Region region;
-  
-  private Logger log = LoggerFactory.getLogger(getClass());
-  
-  public GemFireQueryResultsRegion(Region region) {
-    this.region = region;
-  }
-  
-  @Override
-  public Object get(Object key) throws CacheException {
-    log.debug("get query results for {} ", key);
-    return this.region.get(key);
-  }
-
-  @Override
-  public void put(Object key, Object value) throws CacheException {
-    log.debug("For key {} putting query results {} ", key, value);
-    this.region.put(key, value);
-  }
-
-  @Override
-  public void evict(Object key) throws CacheException {
-    log.debug("removing query results for key {}", key);
-    this.region.remove(key);
-  }
-
-  @Override
-  public void evictAll() throws CacheException {
-    log.debug("clearing the query cache");
-    this.region.clear();
-  }
-
-  @Override
-  public String getName() {
-    return this.region.getName();
-  }
-
-  @Override
-  public void destroy() throws CacheException {
-    if (!this.region.isDestroyed()) {
-      this.region.destroyRegion();
-    }
-  }
-
-  @Override
-  public boolean contains(Object key) {
-    return this.region.containsKey(key);
-  }
-
-  @Override
-  public long getSizeInMemory() {
-    return -1;
-  }
-
-  @Override
-  public long getElementCountInMemory() {
-    return this.region.size();
-  }
-
-  @Override
-  public long getElementCountOnDisk() {
-    // TODO make this an overflow region
-    return -1;
-  }
-
-  @Override
-  public Map toMap() {
-    return Collections.unmodifiableMap(this.region);
-  }
-
-  @Override
-  public long nextTimestamp() {
-    return Timestamper.next();
-  }
-
-  @Override
-  public int getTimeout() {
-    return 60*1000; // all other cache providers have same value
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/KeyWrapper.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/KeyWrapper.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/KeyWrapper.java
deleted file mode 100644
index c321076..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/KeyWrapper.java
+++ /dev/null
@@ -1,93 +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.hibernate.internal;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.Serializable;
-
-import org.hibernate.cache.CacheKey;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-
-/**
- * wraps {@link CacheKey}, and implements equals and
- * hashCode. This is required for register interest
- * operation/prefetching
- * @author sbawaska
- *
- */
-public class KeyWrapper implements DataSerializable {
-  
-  private Serializable key;
-  private String entityName;
-  
-  private static final String separator = "#";
-  
-  public KeyWrapper() {
-  }
-  
-  public KeyWrapper(Object p_key) {
-    if (p_key instanceof String) {
-      String stringKey = (String)p_key;
-      this.key = stringKey.substring(stringKey.indexOf(separator)+1);
-      this.entityName = stringKey.substring(0, stringKey.indexOf(separator));
-    } else {
-      CacheKey cacheKey = (CacheKey)p_key;
-      this.key = cacheKey.getKey();
-      this.entityName = cacheKey.getEntityOrRoleName();
-    }
-  }
-  
-  @Override
-  public boolean equals(Object obj) {
-    if (obj instanceof KeyWrapper) {
-      KeyWrapper other = (KeyWrapper)obj;
-      if (this.key.toString().equals(other.key.toString())
-          && this.entityName.equals(other.entityName)) {
-        return true;
-      }
-    }
-    return false;
-  }
-  
-  @Override
-  public int hashCode() {
-    return this.key.toString().hashCode() + this.entityName.hashCode();
-  }
-  
-  @Override
-  public String toString() {
-    StringBuilder sb = new StringBuilder();
-    sb.append(this.entityName).append(separator).append(this.key);
-    return sb.toString();
-  }
-
-  @Override
-  public void toData(DataOutput out) throws IOException {
-    DataSerializer.writeObject(this.key, out);
-    out.writeUTF(this.entityName);
-  }
-
-  @Override
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    this.key = DataSerializer.readObject(in);
-    this.entityName = in.readUTF();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/NonStrictReadWriteAccess.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/NonStrictReadWriteAccess.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/NonStrictReadWriteAccess.java
deleted file mode 100644
index ad617e4..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/NonStrictReadWriteAccess.java
+++ /dev/null
@@ -1,83 +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.hibernate.internal;
-
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.access.SoftLock;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class NonStrictReadWriteAccess extends Access {
-
-  private Logger log = LoggerFactory.getLogger(getClass());
-
-  public NonStrictReadWriteAccess(GemFireEntityRegion region) {
-    super(region);
-  }
-
-  @Override
-  public SoftLock lockItem(Object key, Object version) throws CacheException {
-    log.debug("lock item called for key {}", key);
-    return null;
-  }
-
-  @Override
-  public boolean afterUpdate(Object key, Object value, Object currentVersion,
-      Object previousVersion, SoftLock lock) throws CacheException {
-    log.debug("after update called for key: {} value: {}", key, value);
-    getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L));
-    return true;
-  }
-  
-  @Override
-  public boolean update(Object key, Object value, Object currentVersion,
-      Object previousVersion) throws CacheException {
-    log.debug("updating key: {} value: {}", key, value);
-    getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L));
-    return true;
-  }
-//  
-//  @Override
-//  public boolean insert(Object key, Object value, Object version)
-//      throws CacheException {
-//    log.debug("inserting key:{} value:{}", key, value);
-//    getGemFireRegion().put(key, new EntityWrapper(value, -1L));
-//    return true;
-//  }
-//  
-//  @Override
-//  public boolean afterInsert(Object key, Object value, Object version)
-//      throws CacheException {
-//    log.debug("after insert called for key:{} value:{}", key, value);
-//    getGemFireRegion().put(key, new EntityWrapper(value, -1L));
-//    return true;
-//  }
-//  
-  @Override
-  public boolean putFromLoad(Object key, Object value, long txTimestamp,
-      Object version) throws CacheException {
-    return putFromLoad(key, value, txTimestamp, version, true);
-  }
-  
-  @Override
-  public boolean putFromLoad(Object key, Object value, long txTimestamp,
-      Object version, boolean minimalPutOverride) throws CacheException {
-    log.debug("putting a new entry from load key:{} value:{}", key, value);
-    getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L));
-    return true;
-  }
-}



[24/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/Delta.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/Delta.java b/gemfire-core/src/main/java/com/gemstone/gemfire/Delta.java
deleted file mode 100755
index 048003b..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/Delta.java
+++ /dev/null
@@ -1,66 +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;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-
-
-/**
- * This interface defines a contract between the application and GemFire that
- * allows GemFire to determine whether an application object contains a delta,
- * allows GemFire to extract the delta from an application object, and generate
- * a new application object by applying a delta to an existing application
- * object. The difference in object state is contained in the {@link DataOutput}
- * and {@link DataInput} parameters.
- * 
- * @since 6.1
- * 
- */
-public interface Delta {
-
-  /**
-   * Returns true if this object has pending changes it can write out.
-   */
-  boolean hasDelta();
-
-  /**
-   * This method is invoked on an application object at the delta sender, if
-   * GemFire determines the presence of a delta by calling
-   * {@link Delta#hasDelta()} on the object. The delta is written to the
-   * {@link DataOutput} object provided by GemFire.
-   * 
-   * Any delta state should be reset in this method.
-   * 
-   * @throws IOException
-   */
-  void toDelta(DataOutput out) throws IOException;
-
-
-  /**
-   * This method is invoked on an existing application object when an update is
-   * received as a delta. This method throws an {@link InvalidDeltaException}
-   * when the delta in the {@link DataInput} cannot be applied to the object.
-   * GemFire automatically handles an {@link InvalidDeltaException} by
-   * reattempting the update by sending the full application object.
-   * 
-   * @throws IOException
-   * @throws InvalidDeltaException
-   */
-  void fromDelta(DataInput in) throws IOException, InvalidDeltaException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/DeltaSerializationException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/DeltaSerializationException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/DeltaSerializationException.java
deleted file mode 100644
index b016c8f..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/DeltaSerializationException.java
+++ /dev/null
@@ -1,59 +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;
-
-/**
- * This exception wraps any checked exception encountered during invocation of
- * {@link Delta#fromDelta(java.io.DataInput)} or
- * {@link Delta#toDelta(java.io.DataOutput)} in GemFire.
- * 
- * @since 6.5
- */
-public class DeltaSerializationException extends RuntimeException {
-
-  /**
-   * Default constructor
-   */
-  public DeltaSerializationException() {
-  }
-
-  /**
-   * @param message
-   */
-  public DeltaSerializationException(String message) {
-    super(message);
-  }
-
-  /**
-   * @param cause
-   */
-  public DeltaSerializationException(Throwable cause) {
-    super(cause);
-  }
-
-  /**
-   * @param message
-   * @param cause
-   */
-  public DeltaSerializationException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/ForcedDisconnectException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/ForcedDisconnectException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/ForcedDisconnectException.java
deleted file mode 100755
index bf13980..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/ForcedDisconnectException.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;
-
-/**
- * An <code>ForcedDisconnectException</code> is thrown when a GemFire
- * application is removed from the distributed system due to membership
- * constraints such as network partition detection.
- * 
- * @since 5.7
- */
-public class ForcedDisconnectException extends CancelException {
-private static final long serialVersionUID = 4977003259880566257L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>SystemConnectException</code>.
-   */
-  public ForcedDisconnectException(String message) {
-    super(message);
-  }
-  
-  public ForcedDisconnectException(String message, Throwable cause) {
-    super(message, cause);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireCacheException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireCacheException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireCacheException.java
deleted file mode 100644
index 0a18eeb..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireCacheException.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;
-
-import com.gemstone.gemfire.cache.CacheException;
-
-/**
- * An <code>GemFireCacheException</code> is used to wrap a
- * {@link CacheException}. This is needed in contexts that can
- * not throw the cache exception directly because of it being
- * a typed exception.
- */
-public class GemFireCacheException extends GemFireException {
-private static final long serialVersionUID = -2844020916351682908L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>GemFireCacheException</code>.
-   */
-  public GemFireCacheException(String message, CacheException ex) {
-    super(message, ex);
-  }
-  /**
-   * Creates a new <code>GemFireCacheException</code>.
-   */
-  public GemFireCacheException(CacheException ex) {
-    super(ex);
-  }
-  /**
-   * Gets the wrapped {@link CacheException}
-   */
-  public CacheException getCacheException() {
-    return (CacheException)getCause();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireCheckedException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireCheckedException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireCheckedException.java
deleted file mode 100644
index 117fc28..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireCheckedException.java
+++ /dev/null
@@ -1,90 +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;
-
-/**
- * This is the abstract superclass of exceptions that are thrown and
- * declared.
- * <p>
- * This class ought to be called <em>GemFireException</em>, but that name
- * is reserved for an older class that extends {@link java.lang.RuntimeException}.
- * 
- * @see com.gemstone.gemfire.GemFireException
- * @since 5.1
- */
-public abstract class GemFireCheckedException extends Exception {
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>GemFireException</code> with no detailed message.
-   */
-  public GemFireCheckedException() {
-    super();
-  }
-
-  /**
-   * Creates a new <code>GemFireCheckedException</code> with the given detail
-   * message.
-   */
-  public GemFireCheckedException(String message) {
-    super(message);
-  }
-
-  /**
-   * Creates a new <code>GemFireException</code> with the given detail
-   * message and cause.
-   */
-  public GemFireCheckedException(String message, Throwable cause) {
-    super(message);
-    this.initCause(cause);
-  }
-  
-  /**
-   * Creates a new <code>GemFireCheckedException</code> with the given cause and
-   * no detail message
-   */
-  public GemFireCheckedException(Throwable cause) {
-    super();
-    this.initCause(cause);
-  }
-
-  ////////////////////  Instance Methods  ////////////////////
-
-  /**
-   * Returns the root cause of this <code>GemFireCheckedException</code> or
-   * <code>null</code> if the cause is nonexistent or unknown.
-   */
-  public Throwable getRootCause() {
-      if ( this.getCause() == null ) return null;
-      Throwable root = this.getCause();
-      while ( root != null ) {
-//          if ( ! ( root instanceof GemFireCheckedException )) {
-//              break;
-//          }
-//          GemFireCheckedException tmp = (GemFireCheckedException) root;
-          if ( root.getCause() == null ) {
-              break;
-          } else {
-              root = root.getCause();
-          }
-      }
-      return root;
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireConfigException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireConfigException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireConfigException.java
deleted file mode 100644
index bb5dd5d..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireConfigException.java
+++ /dev/null
@@ -1,42 +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;
-
-/**
- * A <code>GemFireConfigException</code> is used for failures
- * while processing a GemFire configuration XML file.
- */
-public class GemFireConfigException extends GemFireException {
-private static final long serialVersionUID = 7791789785331120991L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>GemFireConfigException</code>.
-   */
-  public GemFireConfigException(String message) {
-    super(message);
-  }
-
-  /**
-   * Creates a new <code>GemFireConfigException</code>.
-   */
-  public GemFireConfigException(String message, Throwable cause) {
-    super(message, cause);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireException.java
deleted file mode 100644
index 26361dd..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireException.java
+++ /dev/null
@@ -1,149 +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;
-
-/**
- * This is the abstract superclass of exceptions that are thrown to
- * indicate incorrect usage of GemFire.
- *
- * Since these exceptions are unchecked, this class really
- * <em>ought</em> to be called <code>GemFireRuntimeException</code>;
- * however, the current name is retained for compatibility's sake.
- * 
- * @author David Whitlock
- * @see com.gemstone.gemfire.GemFireCheckedException
- * @see com.gemstone.gemfire.cache.CacheRuntimeException
- */
-// Implementation note: This class is abstract so that we are forced
-// to have more specific exception types.  We want to avoid using
-// GemFireException to describe an arbitrary error condition (think
-// GsError).
-public abstract class GemFireException extends RuntimeException {
-
-  /** The cause of this <code>GemFireException</code> */
-//  private Throwable cause;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>GemFireException</code> with no detailed message.
-   */
-  public GemFireException() {
-    super();
-  }
-
-  /**
-   * Creates a new <code>GemFireException</code> with the given detail
-   * message.
-   */
-  public GemFireException(String message) {
-    super(message);
-  }
-
-  /**
-   * Creates a new <code>GemFireException</code> with the given detail
-   * message and cause.
-   */
-  public GemFireException(String message, Throwable cause) {
-    super(message, cause);
-//    this.cause = cause;
-  }
-  
-  /**
-   * Creates a new <code>GemFireException</code> with the given cause and
-   * no detail message
-   */
-  public GemFireException(Throwable cause) {
-    super(cause);
-//    this.cause = cause;
-  }
-
-  ////////////////////  Instance Methods  ////////////////////
-
-  /**
-   * Returns the cause of this <code>GemFireException</code> or
-   * <code>null</code> if the cause is nonexistent or unknown.
-   */
-//  public Throwable getCause() {
-//    return this.cause;
-//  }
-
-  /**
-   * Returns the root cause of this <code>GemFireException</code> or
-   * <code>null</code> if the cause is nonexistent or unknown.
-   */
-  public Throwable getRootCause() {
-    if ( this.getCause() == null ) {
-      return null;
-    }
-    Throwable root = this.getCause();
-    while ( root.getCause() != null ) {
-      root = root.getCause();
-    }
-    return root;
-  }
-  
-//  public void printStackTrace() {
-//    super.printStackTrace();
-//    if (this.cause != null) {
-//      System.err.println("Caused by:");
-//      this.cause.printStackTrace();
-//    }
-//  }
-  
-//  public void printStackTrace(java.io.PrintWriter pw) {
-//    super.printStackTrace(pw);
-//
-//    if (this.cause != null) {
-//      pw.println("Caused by:");
-//      this.cause.printStackTrace(pw);
-//    }
-//  }
-//  
-//  public String getMessage() {
-//    if (this.cause != null) {
-//      String ourMsg = super.getMessage();
-//      if (ourMsg == null || ourMsg.length() == 0) {
-//        //ourMsg = super.toString(); //causes inifinite recursion
-//        ourMsg = "";
-//      }
-//      StringBuffer sb = new StringBuffer(ourMsg);
-//      sb.append(" Caused by: ");
-//      String causeMsg = this.cause.getMessage();
-//      if (causeMsg == null || causeMsg.length() == 0) {
-//        causeMsg = this.cause.toString();
-//      }
-//      sb.append(causeMsg);
-//      return sb.toString();
-//    } else {
-//      return super.getMessage();
-//    }
-//  }
-
-  /**
-   * Represent the receiver as well as the cause
-   */
-//  public String toString() {
-//    String result = super.toString();
-//    if (cause != null) {
-//      result = result + ", caused by " + cause.toString();
-//    }
-//    return result;
-//  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireIOException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireIOException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireIOException.java
deleted file mode 100644
index 2e99960..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireIOException.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;
-
-/**
- * A <code>GemFireIOException</code> is thrown when a 
- * GemFire operation failure is caused by an <code>IOException</code>.
- *
- * @author David Whitlock
- *
- */
-public class GemFireIOException extends GemFireException {
-private static final long serialVersionUID = 5694009444435264497L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>GemFireIOException</code>.
-   */
-  public GemFireIOException(String message, Throwable cause) {
-    super(message, cause);
-  }
-  public GemFireIOException(String message) {
-    super(message);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireRethrowable.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireRethrowable.java b/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireRethrowable.java
deleted file mode 100644
index 80c3804..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/GemFireRethrowable.java
+++ /dev/null
@@ -1,47 +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;
-
-/**
- * This error is used by GemFire for internal purposes.
- * It does not indicate an error condition.
- * For this reason it is named "Rethrowable" instead of the standard "Error".
- * It was made an <code>Error</code> to make it easier for user code that typically would
- * catch <code>Exception</code> to not accidently catch this exception.
- * <p> Note: if user code catches this error (or its subclasses) then it <em>must</em>
- * be rethrown.
- * 
- * @author darrel
- * @since 5.7
- */
-public class GemFireRethrowable extends Error {
-  private static final long serialVersionUID = 8349791552668922571L;
-
-  /**
-   * Create a GemFireRethrowable.
-   */
-  public GemFireRethrowable() {
-  }
-
-  /**
-   * Create a GemFireRethrowable with the specified message.
-   * @param message
-   */
-  public GemFireRethrowable(String message) {
-    super(message);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/IncompatibleSystemException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/IncompatibleSystemException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/IncompatibleSystemException.java
deleted file mode 100644
index 0af1726..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/IncompatibleSystemException.java
+++ /dev/null
@@ -1,38 +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;
-
-/**
- * An <code>IncompatibleSystemException</code> is thrown when a
- * new GemFire process tries to connect to an
- * existing distributed system and its version is not the same as
- * that of the distributed system. In this case the new member is
- * not allowed to connect to the distributed system.
- * <p>As of GemFire 5.0 this exception should be named IncompatibleDistributedSystemException
- */
-public class IncompatibleSystemException extends GemFireException {
-private static final long serialVersionUID = -6852188720149734350L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>IncompatibleSystemException</code>.
-   */
-  public IncompatibleSystemException(String message) {
-    super(message);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/Instantiator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/Instantiator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/Instantiator.java
deleted file mode 100644
index 63e742d..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/Instantiator.java
+++ /dev/null
@@ -1,315 +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;
-
-import com.gemstone.gemfire.internal.InternalInstantiator;
-import com.gemstone.gemfire.internal.cache.EventID;
-import com.gemstone.gemfire.internal.cache.tier.sockets.ClientProxyMembershipID;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * <code>Instantiator</code> allows classes that implement {@link
- * DataSerializable} to be registered with the data serialization
- * framework.  Knowledge of <code>DataSerializable</code> classes
- * allows the framework to optimize how instances of those classes are
- * data serialized.
- *
- * <P>
- *
- * Ordinarily, when a <code>DataSerializable</code> object is written
- * using {@link DataSerializer#writeObject(Object, java.io.DataOutput)}, a special marker class id
- * is written to the stream followed by the class name of the
- * <code>DataSerializable</code> object.  After the marker class id is
- * read by {@link DataSerializer#readObject} it performs the following
- * operations,
- *
- * <OL>
- *
- * <LI>The class name is read</LI>
- *
- * <LI>The class is loaded using {@link Class#forName(java.lang.String)}</LI>
- *
- * <LI>An instance of the class is created using reflection</LI>
- *
- * <LI>{@link DataSerializable#fromData} is invoked on the
- * newly-created object</LI>
- *
- * </OL>
- *
- * However, if a <code>DataSerializable</code> class is {@linkplain
- * #register(Instantiator) registered} with the data serialization framework and
- * assigned a unique class id, an important optimization can be
- * performed that avoid the expense of using reflection to instantiate
- * the <code>DataSerializable</code> class.  When the object is
- * written using {@link DataSerializer#writeObject(Object, java.io.DataOutput)}, the object's
- * registered class id is written to the stream.  Consequently, when
- * the data is read from the stream, the {@link #newInstance} method
- * of the appropriate <code>Instantiator</code> instance is invoked to
- * create an "empty" instance of the <code>DataSerializable</code>
- * instead of using reflection to create the new instance.
- *
- * <P>
- *
- * Commonly, a <code>DataSerializable</code> class will register
- * itself with the <code>Instantiator</code> in a static initializer
- * as shown in the below example code.
- *
- * <!-- 
- * The source code for the CompanySerializer class resides in 
- *         tests/com/examples/ds/User.java
- * Please keep the below code snippet in sync with that file.
- * -->
- *
- * <PRE>
-public class User implements DataSerializable {
-  private String name;
-  private int userId;
-
-  static {
-    Instantiator.register(new Instantiator(User.class, 45) {
-        public DataSerializable newInstance() {
-          return new User();
-        }
-      });
-  }
-
-  public User(String name, int userId) {
-    this.name = name;
-    this.userId = userId;
-  }
-
-  &#47;**
-   * Creates an "empty" User whose contents are filled in by
-   * invoking its toData() method
-   *&#47;
-  private User() {
-
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    out.writeUTF(this.name);
-    out.writeInt(this.userId);
-  }
-
-  public void fromData(DataInput in)
-    throws IOException, ClassNotFoundException {
-    this.name = in.readUTF();
-    this.userId = in.readInt();
-  }
-}
- * </PRE>
- *
- * <code>Instantiator</code>s may be distributed to other members of
- * the distributed system when they are registered.  Consider the
- * following scenario in which VM1 and VM2 are members of the same
- * distributed system.  Both VMs define the sameRegion and VM2's
- * region replicates the contents of VM1's using replication.
- * VM1 puts an instance of the above <code>User</code> class into the
- * region.  The act of instantiating <code>User</code> will load the
- * <code>User</code> class and invoke its static initializer, thus
- * registering the <code>Instantiator</code> with the data
- * serialization framework.  Because the region is a replicate, the
- * <code>User</code> will be data serialized and sent to VM2.
- * However, when VM2 attempts to data deserialize the
- * <code>User</code>, its <code>Instantiator</code> will not
- * necessarily be registered because <code>User</code>'s static
- * initializer may not have been invoked yet.  As a result, an
- * exception would be logged while deserializing the <code>User</code>
- * and the replicate would not appear to have the new value.  So, in
- * order to ensure that the <code>Instantiator</code> is registered in
- * VM2, the data serialization framework distributes a message to each
- * member when an <code>Instantiator</code> is {@linkplain #register(Instantiator)
- * registered}.  <p>Note that the framework does not require that an
- * <code>Instantiator</code> be {@link java.io.Serializable}, but it
- * does require that it provide
- * a {@linkplain #Instantiator(Class, int)
- * two-argument constructor}.
- *
- * @see #register(Instantiator)
- * @see #newInstance
- *
- * @author David Whitlock
- * @since 3.5 */
-public abstract class Instantiator {
-
-  /** The class associated with this instantiator.  Used mainly for
-   * debugging purposes and error messages. */
-  private Class<? extends DataSerializable> clazz;
-
-  /** The id of this <code>Instantiator</code> */
-  private int id;
-  
-  /** The eventId of this <code>Instantiator</code> */
-  private EventID eventId;
-  
-  /** The originator of this <code>Instantiator</code> */
-  private ClientProxyMembershipID context;
-
-
-  ///////////////////////  Static Methods  ///////////////////////
-
-  /**
-   * Registers a <code>DataSerializable</code> class with the data
-   * serialization framework.  This method is usually invoked from the
-   * static initializer of a class that implements
-   * <code>DataSerializable</code>. 
-   *
-   * @param instantiator
-   *        An <code>Instantiator</code> whose {@link #newInstance}
-   *        method is invoked when an object is data deserialized.
-   *
-   * @throws IllegalStateException
-   *         If class <code>c</code> is
-   *         already registered with a different class id, or another
-   *         class has already been registered with id
-   *         <code>classId</code>
-   * @throws NullPointerException
-   *         If <code>instantiator</code> is <code>null</code>.
-   */
-  public static synchronized void register(Instantiator instantiator) {
-    InternalInstantiator.register(instantiator, true);
-  }
-
-  /**
-   * Registers a <code>DataSerializable</code> class with the data
-   * serialization framework.  This method is usually invoked from the
-   * static initializer of a class that implements
-   * <code>DataSerializable</code>. 
-   *
-   * @param instantiator
-   *        An <code>Instantiator</code> whose {@link #newInstance}
-   *        method is invoked when an object is data deserialized.
-   *
-   * @param distribute
-   *        True if the registered <code>Instantiator</code> has to be
-   *        distributed to other members of the distributed system.
-   *        Note that if distribute is set to false it may still be distributed
-   *        in some cases.
-   *
-   * @throws IllegalArgumentException
-   *         If class <code>c</code> is
-   *         already registered with a different class id, or another
-   *         class has already been registered with id
-   *         <code>classId</code>
-   * @throws NullPointerException
-   *         If <code>instantiator</code> is <code>null</code>.
-   * @deprecated as of 9.0 use {@link Instantiator#register(Instantiator)} instead
-   */
-  public static synchronized void register(Instantiator instantiator,
-      boolean distribute) {
-    InternalInstantiator.register(instantiator, distribute);
-  }
-
-  ////////////////////////  Constructors  ////////////////////////
-
-  /**
-   * Creates a new <code>Instantiator</code> that instantiates a given
-   * class.
-   *
-   * @param c
-   *        The <code>DataSerializable</code> class to register.  This
-   *        class must have a static initializer that registers this
-   *        <code>Instantiator</code>. 
-   * @param classId
-   *        A unique id for class <code>c</code>.  The
-   *        <code>classId</code> must not be zero.
-   *        This has been an <code>int</code> since dsPhase1.
-   *
-   * @throws IllegalArgumentException
-   *         If <code>c</code> does not implement
-   *         <code>DataSerializable</code>, <code>classId</code> is
-   *         less than or equal to zero.
-   * @throws NullPointerException
-   *         If <code>c</code> is <code>null</code>
-   */
-  public Instantiator(Class<? extends DataSerializable> c, int classId) {
-    if (c == null) {
-      throw new NullPointerException(LocalizedStrings.Instantiator_CANNOT_REGISTER_A_NULL_CLASS.toLocalizedString());
-    }
-
-    if (!DataSerializable.class.isAssignableFrom(c)) {
-      throw new IllegalArgumentException(LocalizedStrings.Instantiator_CLASS_0_DOES_NOT_IMPLEMENT_DATASERIALIZABLE.toLocalizedString(c.getName()));
-    }
-
-    if (classId == 0) {
-      throw new IllegalArgumentException(LocalizedStrings.Instantiator_CLASS_ID_0_MUST_NOT_BE_0.toLocalizedString(Integer.valueOf(classId)));
-    }
-
-    this.clazz = c;
-    this.id = classId;
-  }
-  
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Creates a new "empty" instance of a <Code>DataSerializable</code>
-   * class whose state will be filled in by invoking its {@link
-   * DataSerializable#fromData fromData} method.
-   *
-   * @see DataSerializer#readObject
-   */
-  public abstract DataSerializable newInstance();
-
-  /**
-   * Returns the <code>DataSerializable</code> class that is
-   * instantiated by this <code>Instantiator</code>.
-   */
-  public final Class<? extends DataSerializable> getInstantiatedClass() {
-    return this.clazz;
-  }
-
-  /**
-   * Returns the unique <code>id</code> of this
-   * <code>Instantiator</code>.
-   */
-  public final int getId() {
-    return this.id;
-  }
-  /**
-   * sets the unique <code>eventId</code> of this
-   * <code>Instantiator</code>. For internal use only.
-   */
-  public final void setEventId(Object/*EventID*/ eventId) {
-    this.eventId = (EventID)eventId;
-  }
-  
-  /**
-   * Returns the unique <code>eventId</code> of this
-   * <code>Instantiator</code>. For internal use only.
-   */
-  public final Object/*EventID*/ getEventId() {
-    return this.eventId;
-  }
-  
-  /**
-   * sets the context of this
-   * <code>Instantiator</code>. For internal use only.
-   */
-  public final void setContext(Object/*ClientProxyMembershipID*/ context) {
-    this.context = (ClientProxyMembershipID)context;
-  }
-  
-  /**
-   * Returns the context of this
-   * <code>Instantiator</code>. For internal use only.
-   */
-  public final Object/*ClientProxyMembershipID*/ getContext() {
-    return this.context;
-  }
-  
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/InternalGemFireError.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/InternalGemFireError.java b/gemfire-core/src/main/java/com/gemstone/gemfire/InternalGemFireError.java
deleted file mode 100644
index 4b98dec..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/InternalGemFireError.java
+++ /dev/null
@@ -1,154 +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;
-
-/**
- * Indicates that serious error has occurred within the GemFire system.
- * 
- * This is similar to {@link AssertionError}, but these errors are always
- * enabled in a GemFire system.
- * 
- * @author jpenney
- * @since 5.5
- * @see AssertionError
- */
-public class InternalGemFireError extends Error {
-  private static final long serialVersionUID = 6390043490679349593L;
-
-  /**
-   * 
-   */
-  public InternalGemFireError() {
-    // TODO Auto-generated constructor stub
-  }
-
-  /**
-   * @param message
-   */
-  public InternalGemFireError(String message) {
-    super(message);
-  }
-
-  /**
-   * @param cause
-   */
-  public InternalGemFireError(Throwable cause) {
-    super(cause);
-  }
-
-  /**
-   * @param message
-   * @param cause
-   */
-  public InternalGemFireError(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-  /**
-   * Constructs an AssertionError with its detail message derived
-   * from the specified object, which is converted to a string as
-   * defined in <i>The Java Language Specification, Second
-   * Edition</i>, Section 15.18.1.1.
-   *<p>
-   * If the specified object is an instance of <tt>Throwable</tt>, it
-   * becomes the <i>cause</i> of the newly constructed assertion error.
-   *
-   * @param detailMessage value to be used in constructing detail message
-   * @see   Throwable#getCause()
-   */
-  public InternalGemFireError(Object detailMessage) {
-      this("" +  detailMessage);
-      if (detailMessage instanceof Throwable)
-          initCause((Throwable) detailMessage);
-  }
-
-  /**
-   * Constructs an AssertionError with its detail message derived
-   * from the specified <code>boolean</code>, which is converted to
-   * a string as defined in <i>The Java Language Specification,
-   * Second Edition</i>, Section 15.18.1.1.
-   *
-   * @param detailMessage value to be used in constructing detail message
-   */
-  public InternalGemFireError(boolean detailMessage) {
-      this("" +  detailMessage);
-  }
-
-  /**
-   * Constructs an AssertionError with its detail message derived
-   * from the specified <code>char</code>, which is converted to a
-   * string as defined in <i>The Java Language Specification, Second
-   * Edition</i>, Section 15.18.1.1.
-   *
-   * @param detailMessage value to be used in constructing detail message
-   */
-  public InternalGemFireError(char detailMessage) {
-      this("" +  detailMessage);
-  }
-
-  /**
-   * Constructs an AssertionError with its detail message derived
-   * from the specified <code>int</code>, which is converted to a
-   * string as defined in <i>The Java Language Specification, Second
-   * Edition</i>, Section 15.18.1.1.
-   *
-   * @param detailMessage value to be used in constructing detail message
-   */
-  public InternalGemFireError(int detailMessage) {
-      this("" +  detailMessage);
-  }
-
-  /**
-   * Constructs an AssertionError with its detail message derived
-   * from the specified <code>long</code>, which is converted to a
-   * string as defined in <i>The Java Language Specification, Second
-   * Edition</i>, Section 15.18.1.1.
-   *
-   * @param detailMessage value to be used in constructing detail message
-   */
-  public InternalGemFireError(long detailMessage) {
-      this("" +  detailMessage);
-  }
-
-  /**
-   * Constructs an AssertionError with its detail message derived
-   * from the specified <code>float</code>, which is converted to a
-   * string as defined in <i>The Java Language Specification, Second
-   * Edition</i>, Section 15.18.1.1.
-   *
-   * @param detailMessage value to be used in constructing detail message
-   */
-  public InternalGemFireError(float detailMessage) {
-      this("" +  detailMessage);
-  }
-
-  /**
-   * Constructs an AssertionError with its detail message derived
-   * from the specified <code>double</code>, which is converted to a
-   * string as defined in <i>The Java Language Specification, Second
-   * Edition</i>, Section 15.18.1.1.
-   *
-   * @param detailMessage value to be used in constructing detail message
-   */
-  public InternalGemFireError(double detailMessage) {
-      this("" +  detailMessage);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/InternalGemFireException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/InternalGemFireException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/InternalGemFireException.java
deleted file mode 100644
index 16850bc..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/InternalGemFireException.java
+++ /dev/null
@@ -1,56 +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;
-
-/**
- * An <code>InternalGemFireException</code> is thrown when
- * a low level, internal, operation fails due to no fault of
- * the user. The message often contains an operating system
- * error code.
- *
- * @author David Whitlock
- *
- */
-public class InternalGemFireException extends GemFireException {
-private static final long serialVersionUID = -6912843691545178619L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  public InternalGemFireException() {
-    super();
-  }
-
-  public InternalGemFireException(Throwable cause) {
-    super(cause);
-  }
-
-  /**
-   * Creates a new <code>InternalGemFireException</code>.
-   */
-  public InternalGemFireException(String message) {
-    super(message);
-  }
-
-  /**
-   * Creates a new <code>InternalGemFireException</code> that was
-   * caused by a given exception
-   */
-  public InternalGemFireException(String message, Throwable thr) {
-    super(message, thr);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidDeltaException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidDeltaException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidDeltaException.java
deleted file mode 100755
index e063b18..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidDeltaException.java
+++ /dev/null
@@ -1,63 +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;
-
-import java.io.DataInput;
-
-/**
- * An <code>InvalidDeltaException</code> is thrown when a delta cannot be
- * successfully applied by the receiving peer/client. The class implementing
- * {@link Delta} may also choose to throw this in
- * {@link Delta#fromDelta(DataInput in)}. GemFire, on encountering this
- * exception distributes the full application object.
- * 
- * @since 6.1
- */
-public class InvalidDeltaException extends GemFireException {
-
-  /**
-   * Creates a new <code>InvalidDeltaException</code>. 
-   */
-  public InvalidDeltaException() {
-  }
-
-  /**
-   * Creates a new <code>InvalidDeltaException</code>. 
-   * @param msg String explaining the exception
-   */
-  public InvalidDeltaException(String msg) {
-    super(msg);
-  }
-
-  /**
-   * Creates a new <code>InvalidDeltaException</code>. 
-   * @param e Throwable
-   */
-  public InvalidDeltaException(Throwable e) {
-    super(e);
-  }
-
-  /**
-   * Creates a new <code>InvalidDeltaException</code>. 
-   * @param msg String explaining the exception
-   * @param e Throwable
-   */
-  public InvalidDeltaException(String msg, Throwable e) {
-    super(msg, e);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidValueException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidValueException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidValueException.java
deleted file mode 100644
index d7fa1ce..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidValueException.java
+++ /dev/null
@@ -1,42 +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;
-
-/**
- * An <code>InvalidValueException</code> is thrown when an attempt is
- * made to set a configuration attribute to an invalid value is made.
- * Values are considered invalid when they are
- * not compatible with the attribute's type.
- */
-public class InvalidValueException extends GemFireException {
-private static final long serialVersionUID = 6186767885369527709L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>InvalidValueException</code>.
-   */
-  public InvalidValueException(String message) {
-    super(message);
-  }
-  /**
-   * Creates a new <code>InvalidValueException</code>.
-   */
-  public InvalidValueException(String message, Throwable ex) {
-    super(message, ex);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidVersionException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidVersionException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidVersionException.java
deleted file mode 100644
index 0f9af70..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/InvalidVersionException.java
+++ /dev/null
@@ -1,25 +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;
-
-public class InvalidVersionException extends GemFireException {
-  private static final long serialVersionUID = 6342040462194322698L;
-
-  public InvalidVersionException(String msg) {
-    super(msg);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/LicenseException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/LicenseException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/LicenseException.java
deleted file mode 100644
index f41db3a..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/LicenseException.java
+++ /dev/null
@@ -1,54 +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;
-
-/**
- * A <code>LicenseException</code> is thrown when
- * the license check fails.
- *
- * @deprecated Licensing is not supported as of 8.0.
- */
-@Deprecated
-public class LicenseException extends GemFireException {
-private static final long serialVersionUID = -1178557127300465801L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>LicenseException</code>.
-   */
-  public LicenseException(String message) {
-    super(message);
-  }
-
-  /**
-   * Creates a new <code>LicenseException</code> that was
-   * caused by a given exception
-   */
-  public LicenseException(String message, Throwable thr) {
-    super(message, thr);
-  }
-
-  /**
-   * Creates a new <code>LicenseException</code> that was
-   * caused by a given exception
-   */
-  public LicenseException(Throwable thr) {
-    super(thr.getMessage(), thr);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/LogWriter.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/LogWriter.java b/gemfire-core/src/main/java/com/gemstone/gemfire/LogWriter.java
deleted file mode 100644
index af95207..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/LogWriter.java
+++ /dev/null
@@ -1,301 +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;
-
-import java.util.logging.Handler;
-
-import com.gemstone.gemfire.distributed.DistributedSystem;
-import com.gemstone.gemfire.i18n.LogWriterI18n;
-
-/**
-  * Defines methods available to clients that want to write a log message
-  * to their GemFire distributed system log file.
-  * <p>
-  * Instances of this interface can be obtained by calling
-  * {@link DistributedSystem#getLogWriter}.
-  * <p>
-  * For any logged message the log file will contain:
-  * <ul>
-  * <li> The message's level.
-  * <li> The time the message was logged.
-  * <li> The id of the thread that logged the message.
-  * <li> The message itself which can be a string and/or an exception
-  *      including the exception's stack trace.
-  * </ul>
-  * <p>
-  * A message always has a level.
-  * Logging levels are ordered. Enabling logging at a given level also
-  * enables logging at higher levels. The higher the level the more
-  * important and urgent the message.
-  * <p>
-  * The levels, in descending order, are:
-  * <ul>
-  * <li> <code>severe</code>  (highest value) is a message level indicating a serious failure.
-  *   In general <code>severe</code> messages should describe events that
-  *   are of considerable importance and which will prevent normal program
-  *   execution. They should be reasonably intelligible to end users and
-  *   to information managers.
-  * <li> <code>error</code>  
-  *   In general <code>error</code> messages should describe events that
-  *   are of considerable importance but will not prevent normal program
-  *   execution. They should be reasonably intelligible to end users and
-  *   to information managers. They are weaker than <code>severe</code> and
-  *   stronger than <code>warning</code>.
-  * <li> <code>warning</code> is a message level indicating a potential problem.
-  *   In general <code>warning</code> messages should describe events that
-  *   will be of interest to end users or information managers, or which indicate
-  *   potential problems.
-  * <li> <code>info</code> is a message level for informational messages.
-  *   Typically <code>info</code> messages should be reasonably significant
-  *   and should make sense to end users and system administrators.
-  * <li> <code>config</code> is a message level for static configuration messages.
-  *   <code>config</code> messages are intended to provide a variety of static
-  *   configuration information, to assist in debugging problems that may be
-  *   associated with particular configurations.
-  * <li> <code>fine</code> is a message level providing tracing information.
-  *   In general the <code>fine</code> level should be used for information
-  *   that will be broadly interesting to developers. This level is for
-  *   the lowest volume, and most important, tracing messages.
-  * <li> <code>finer</code> indicates a fairly detailed tracing message.
-  *   Logging calls for entering, returning, or throwing an exception
-  *   are traced at the <code>finer</code> level.
-  * <li> <code>finest</code> (lowest value) indicates a highly detailed tracing message.
-  *   In general the <code>finest</code> level should be used for the most
-  *   voluminous detailed tracing messages.
-  * </ul>
-  * <p>
-  * For each level methods exist that will request a message, at that
-  * level, to be logged. These methods are all named after their level.
-  * <p>
-  * For each level a method exists that returns a boolean indicating
-  * if messages at that level will currently be logged. The names
-  * of these methods are of the form: <em>level</em><code>Enabled</code>.
-  *
-  * @author      darrel
-  */
-public interface LogWriter {
-  
-    /**
-     * Returns true if "severe" log messages are enabled.
-     * Returns false if "severe" log messages are disabled.
-     */
-    public boolean severeEnabled();
-    /**
-     * Writes both a message and exception to this writer.
-     * The message level is "severe".
-     */
-    public void severe(String msg, Throwable ex);
-    /**
-     * Writes a message to this writer.
-     * The message level is "severe".
-     */
-    public void severe(String msg);
-    /**
-     * Writes an exception to this writer.
-     * The exception level is "severe".
-     */
-    public void severe(Throwable ex);
-    /**
-     * Returns true if "error" log messages are enabled.
-     * Returns false if "error" log messages are disabled.
-     */
-    public boolean errorEnabled();
-    /**
-     * Writes both a message and exception to this writer.
-     * The message level is "error".
-     */
-    public void error(String msg, Throwable ex);
-    /**
-     * Writes a message to this writer.
-     * The message level is "error".
-     */
-    public void error(String msg);
-    /**
-     * Writes an exception to this writer.
-     * The exception level is "error".
-     */
-    public void error(Throwable ex);
-    /**
-     * Returns true if "warning" log messages are enabled.
-     * Returns false if "warning" log messages are disabled.
-     */
-    public boolean warningEnabled();
-    /**
-     * Writes both a message and exception to this writer.
-     * The message level is "warning".
-     */
-    public void warning(String msg, Throwable ex);
-    /**
-     * Writes a message to this writer.
-     * The message level is "warning".
-     */
-    public void warning(String msg);
-    /**
-     * Writes an exception to this writer.
-     * The exception level is "warning".
-     */
-    public void warning(Throwable ex);
-    /**
-     * Returns true if "info" log messages are enabled.
-     * Returns false if "info" log messages are disabled.
-     */
-    public boolean infoEnabled();
-    /**
-     * Writes both a message and exception to this writer.
-     * The message level is "information".
-     */
-    public void info(String msg, Throwable ex);
-    /**
-     * Writes a message to this writer.
-     * The message level is "information".
-     */
-    public void info(String msg);
-    /**
-     * Writes an exception to this writer.
-     * The exception level is "information".
-     */
-    public void info(Throwable ex);
-    /**
-     * Returns true if "config" log messages are enabled.
-     * Returns false if "config" log messages are disabled.
-     */
-    public boolean configEnabled();
-    /**
-     * Writes both a message and exception to this writer.
-     * The message level is "config".
-     */
-    public void config(String msg, Throwable ex);
-    /**
-     * Writes a message to this writer.
-     * The message level is "config".
-     */
-    public void config(String msg);
-    /**
-     * Writes an exception to this writer.
-     * The exception level is "config".
-     */
-    public void config(Throwable ex);
-    /**
-     * Returns true if "fine" log messages are enabled.
-     * Returns false if "fine" log messages are disabled.
-     */
-    public boolean fineEnabled();
-    /**
-     * Writes both a message and exception to this writer.
-     * The message level is "fine".
-     */
-    public void fine(String msg, Throwable ex);
-    /**
-     * Writes a message to this writer.
-     * The message level is "fine".
-     */
-    public void fine(String msg);
-    /**
-     * Writes an exception to this writer.
-     * The exception level is "fine".
-     */
-    public void fine(Throwable ex);
-    /**
-     * Returns true if "finer" log messages are enabled.
-     * Returns false if "finer" log messages are disabled.
-     */
-    public boolean finerEnabled();
-    /**
-     * Writes both a message and exception to this writer.
-     * The message level is "finer".
-     */
-    public void finer(String msg, Throwable ex);
-    /**
-     * Writes a message to this writer.
-     * The message level is "finer".
-     */
-    public void finer(String msg);
-    /**
-     * Writes an exception to this writer.
-     * The exception level is "finer".
-     */
-    public void finer(Throwable ex);
-    /**
-     * Log a method entry.
-     * <p>The logging is done using the <code>finer</code> level.
-     * The string message will start with <code>"ENTRY"</code> and
-     * include the class and method names.
-     * @param sourceClass Name of class that issued the logging request.
-     * @param sourceMethod Name of the method that issued the logging request.
-     */
-    public void entering(String sourceClass, String sourceMethod);
-    /**
-     * Log a method return.
-     * <p>The logging is done using the <code>finer</code> level.
-     * The string message will start with <code>"RETURN"</code> and
-     * include the class and method names.
-     * @param sourceClass Name of class that issued the logging request.
-     * @param sourceMethod Name of the method that issued the logging request.
-     */
-    public void exiting(String sourceClass, String sourceMethod);
-    /**
-     * Log throwing an exception.
-     * <p> Use to log that a method is
-     * terminating by throwing an exception. The logging is done using
-     * the <code>finer</code> level.
-     * <p> This is a convenience method that could be done
-     * instead by calling {@link #finer(String, Throwable)}.
-     * The string message will start with <code>"THROW"</code> and
-     * include the class and method names.
-     * @param sourceClass Name of class that issued the logging request.
-     * @param sourceMethod Name of the method that issued the logging request.
-     * @param thrown The Throwable that is being thrown.
-     */
-    public void throwing(String sourceClass, String sourceMethod,
-			 Throwable thrown);
-    /**
-     * Returns true if "finest" log messages are enabled.
-     * Returns false if "finest" log messages are disabled.
-     */
-    public boolean finestEnabled();
-    /**
-     * Writes both a message and exception to this writer.
-     * The message level is "finest".
-     */
-    public void finest(String msg, Throwable ex);
-    /**
-     * Writes a message to this writer.
-     * The message level is "finest".
-     */
-    public void finest(String msg);
-    /**
-     * Writes an exception to this writer.
-     * The exception level is "finest".
-     */
-    public void finest(Throwable ex);
-
-    /**
-     * Returns a 1.4 logging handler that can be used to direct application
-     * output to this GemFire logger using the standard JDK logger APIs.
-     * Each time this method is called it creates a new instance of a
-     * Handler so care should be taken to not call this method too often.
-     */
-    public Handler getHandler();
-    
-    /**
-     * A mechanism for accessing the abstraction layer used for 
-     * internationalization.
-     * @return LogWriterI18n
-     */
-    public LogWriterI18n convertToLogWriterI18n();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/NoSystemException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/NoSystemException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/NoSystemException.java
deleted file mode 100644
index 8490d1a..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/NoSystemException.java
+++ /dev/null
@@ -1,48 +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;
-
-/**
- * A <code>NoSystemException</code> is thrown when a
- * locator can not be found or connected to.
- * In most cases one of the following subclasses is used instead
- * of <code>NoSystemException</code>:
- * <ul>
- * <li> {@link UncreatedSystemException}
- * <li> {@link UnstartedSystemException}
- * </ul>
- * <p>As of GemFire 5.0 this exception should be named NoLocatorException.
- */
-public class NoSystemException extends GemFireException {
-private static final long serialVersionUID = -101890149467219630L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>NoSystemException</code>.
-   */
-  public NoSystemException(String message) {
-    super(message);
-  }
-  /**
-   * Creates a new <code>NoSystemException</code> with the given message
-   * and cause.
-   */
-  public NoSystemException(String message, Throwable cause) {
-      super(message, cause);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/OutOfOffHeapMemoryException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/OutOfOffHeapMemoryException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/OutOfOffHeapMemoryException.java
deleted file mode 100755
index 424d131..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/OutOfOffHeapMemoryException.java
+++ /dev/null
@@ -1,45 +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;
-
-/**
- * Indicates that attempts to allocate more objects in off-heap memory has
- * failed and the Cache will be closed to prevent it from losing distributed
- * consistency.
- * 
- * @author Kirk Lund
- */
-public class OutOfOffHeapMemoryException extends CancelException {
-  private static final long serialVersionUID = 4111959438738739010L;
-
-  /**
-   * Constructs an <code>OutOfOffHeapMemoryError</code> with no detail message.
-   */
-  public OutOfOffHeapMemoryException() {
-  }
-
-  /**
-   * Constructs an <code>OutOfOffHeapMemoryError</code> with the specified
-   * detail message.
-   *
-   * @param   message   the detail message.
-   */
-  public OutOfOffHeapMemoryException(String message) {
-    super(message);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/SerializationException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/SerializationException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/SerializationException.java
deleted file mode 100644
index fd8a450..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/SerializationException.java
+++ /dev/null
@@ -1,45 +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;
-
-import com.gemstone.gemfire.GemFireIOException;
-
-/**
- * An exception indicating that a serialization or deserialization failed.
- * @author darrel
- * @since 5.7
- */
-public class SerializationException extends GemFireIOException {
-private static final long serialVersionUID = 7783018024920098997L;
-  /**
-   * 
-   * Create a new instance of SerializationException with a detail message
-   * @param message the detail message
-   */
-  public SerializationException(String message) {
-    super(message);
-  }
-
-  /**
-   * Create a new instance of SerializationException with a detail message and cause
-   * @param message the detail message
-   * @param cause the cause
-   */
-  public SerializationException(String message, Throwable cause) {
-    super(message, cause);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticDescriptor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticDescriptor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticDescriptor.java
deleted file mode 100644
index c658368..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/StatisticDescriptor.java
+++ /dev/null
@@ -1,82 +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;
-
-//import com.gemstone.gemfire.internal.Assert;
-//import com.gemstone.gemfire.internal.FieldInfo;
-
-/**
- * Describes an individual statistic whose value is updated by an
- * application and may be archived by GemFire.  These descriptions are
- * gathered together in a {@link StatisticsType}.
- *
- * <P>
- * To get an instance of this interface use an instance of
- * {@link StatisticsFactory}.
- * <P>
- * <code>StatisticDescriptor</code>s are naturally ordered by their name.
- *
- * @author David Whitlock
- * @author Darrel Schneider
- *
- * @since 3.0
- */
-public interface StatisticDescriptor extends Comparable<StatisticDescriptor> {
-
-  ////////////////////  Instance Methods  ////////////////////
-
-  /**
-   * Returns the id of this statistic in a {@link StatisticsType
-   * statistics type}.  The id is initialized when its statistics
-   * type is created.
-   *
-   * @throws IllegalStateException
-   *         The id has not been initialized yet
-   */
-  public int getId();
-
-  /**
-   * Returns the name of this statistic
-   */
-  public String getName();
-
-  /**
-   * Returns a description of this statistic
-   */
-  public String getDescription();
-
-  /**
-   * Returns the type of this statistic
-   */
-  public Class<?> getType();
-
-  /**
-   * Returns true if this statistic is a counter; false if its a gauge.
-   * Counter statistics have values that always increase.
-   * Gauge statistics have unconstrained values.
-   */
-  public boolean isCounter();
-
-  /**
-   * Returns true if a larger statistic value indicates better performance.
-   */
-  public boolean isLargerBetter();
-  /**
-   * Returns the unit in which this statistic is measured
-   */
-  public String getUnit();
-}


[07/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GemFireHealthConfigJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GemFireHealthConfigJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GemFireHealthConfigJmxImpl.java
deleted file mode 100644
index c05d4b8..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GemFireHealthConfigJmxImpl.java
+++ /dev/null
@@ -1,223 +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.admin.jmx.internal;
-
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.GemFireHealth;
-import com.gemstone.gemfire.admin.GemFireHealthConfig;
-import com.gemstone.gemfire.admin.internal.GemFireHealthConfigImpl;
-
-/**
- * The JMX "managed resource" that represents the configuration for
- * the health of GemFire.  Basically, it provides the behavior of
- * <code>GemFireHealthConfigImpl</code>, but does some JMX stuff like
- * registering beans with the agent.
- *
- * <P>
- *
- * Unlike other <code>ManagedResource</code>s this class cannot simply
- * subclass <code>GemFireHealthImpl</code> because it instances are
- * serialized and sent to other VMs.  This is problematic because the
- * other VMs most likely do not have JMX classes like
- * <code>ModelMBean</code> on their classpaths.  So, instead we
- * delegate all of the <code>GemFireHealthConfig</code> behavior to
- * another object which IS serialized.
- *
- * @see GemFireHealthJmxImpl#createDistributedSystemHealthConfig
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-@edu.umd.cs.findbugs.annotations.SuppressWarnings(justification="This class is deprecated. Also, any further changes so close to the release is inadvisable.") 
-public class GemFireHealthConfigJmxImpl
-  implements GemFireHealthConfig, ManagedResource, java.io.Serializable {
-
-  private static final long serialVersionUID = 1482719647163239953L;
-
-  /** The <code>GemFireHealth</code> that we help configure */
-  private GemFireHealth health;
-
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-
-  /** The delegate that contains the real config state */
-  private GemFireHealthConfig delegate;
-
-  /** The object name of this managed resource */
-  private ObjectName objectName;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>GemFireHealthConfigJmxImpl</code> that
-   * configures the health monitoring of components running on the
-   * given host.
-   */
-  GemFireHealthConfigJmxImpl(GemFireHealthJmxImpl health,
-                             String hostName)
-    throws AdminException {
-
-    this.delegate = new GemFireHealthConfigImpl(hostName);
-    this.health = health;
-    this.mbeanName = new StringBuffer()
-      .append(MBEAN_NAME_PREFIX)
-      .append("GemFireHealthConfig,id=")
-      .append(MBeanUtil.makeCompliantMBeanNameProperty(health.getDistributedSystem().getId()))
-      .append(",host=") 
-      .append((hostName == null ? "default" : MBeanUtil.makeCompliantMBeanNameProperty(hostName)))
-      .toString(); 
-    this.objectName = MBeanUtil.createMBean(this);
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Applies the changes made to this config back to the health
-   * monitor.
-   *
-   * @see GemFireHealth#setDistributedSystemHealthConfig
-   */
-  public void applyChanges() {
-    String hostName = this.getHostName();
-    if (hostName == null) {
-      this.health.setDefaultGemFireHealthConfig(this);
-
-    } else {
-      this.health.setGemFireHealthConfig(hostName, this);
-    }
-  }
-
-  public String getMBeanName() {
-    return this.mbeanName;
-  }
-  
-  public ModelMBean getModelMBean() {
-    return this.modelMBean;
-  }
-
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public void setModelMBean(ModelMBean modelMBean) {
-    this.modelMBean = modelMBean;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.GEMFIRE_HEALTH_CONFIG;
-  }
-
-  /**
-   * Replace this object with the delegate that can be properly
-   * serialized. 
-   */
-  public Object writeReplace() {
-    return this.delegate;
-  }
-
-  //////////////////////  MemberHealthConfig  //////////////////////
-
-  public long getMaxVMProcessSize() {
-    return delegate.getMaxVMProcessSize();
-  }
-
-  public void setMaxVMProcessSize(long size) {
-    delegate.setMaxVMProcessSize(size);
-  }
-
-  public long getMaxMessageQueueSize() {
-    return delegate.getMaxMessageQueueSize();
-  }
-
-  public void setMaxMessageQueueSize(long maxMessageQueueSize) {
-    delegate.setMaxMessageQueueSize(maxMessageQueueSize);
-  }
-
-  public long getMaxReplyTimeouts() {
-    return delegate.getMaxReplyTimeouts();
-  }
-
-  public void setMaxReplyTimeouts(long maxReplyTimeouts) {
-    delegate.setMaxReplyTimeouts(maxReplyTimeouts);
-  }
-
-  public double getMaxRetransmissionRatio() {
-    return delegate.getMaxRetransmissionRatio();
-  }
-  
-  public void setMaxRetransmissionRatio(double ratio) {
-    delegate.setMaxRetransmissionRatio(ratio);
-  }
-
-  //////////////////////  CacheHealthConfig  //////////////////////
-
-    public long getMaxNetSearchTime() {
-    return delegate.getMaxNetSearchTime();
-  }
-
-  public void setMaxNetSearchTime(long maxNetSearchTime) {
-    delegate.setMaxNetSearchTime(maxNetSearchTime);
-  }
-
-  public long getMaxLoadTime() {
-    return delegate.getMaxLoadTime();
-  }
-
-  public void setMaxLoadTime(long maxLoadTime) {
-    delegate.setMaxLoadTime(maxLoadTime);
-  }
-
-  public double getMinHitRatio() {
-    return delegate.getMinHitRatio();
-  }
-
-  public void setMinHitRatio(double minHitRatio) {
-    delegate.setMinHitRatio(minHitRatio);
-  }
-
-  public long getMaxEventQueueSize() {
-    return delegate.getMaxEventQueueSize();
-  }
-
-  public void setMaxEventQueueSize(long maxEventQueueSize) {
-    delegate.setMaxEventQueueSize(maxEventQueueSize);
-  }
-
-  //////////////////////  GemFireHealthConfig  //////////////////////
-
-  public String getHostName() {
-    return delegate.getHostName();
-  }
-
-  public void setHealthEvaluationInterval(int interval) {
-    delegate.setHealthEvaluationInterval(interval);
-  }
-
-  public int getHealthEvaluationInterval() {
-    return delegate.getHealthEvaluationInterval();
-  }
-
-  public void cleanupResource() {}
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GemFireHealthJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GemFireHealthJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GemFireHealthJmxImpl.java
deleted file mode 100644
index 0bc659b..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GemFireHealthJmxImpl.java
+++ /dev/null
@@ -1,179 +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.admin.jmx.internal;
-
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.DistributedSystemHealthConfig;
-import com.gemstone.gemfire.admin.GemFireHealthConfig;
-import com.gemstone.gemfire.admin.RuntimeAdminException;
-import com.gemstone.gemfire.admin.internal.GemFireHealthImpl;
-import com.gemstone.gemfire.internal.admin.GfManagerAgent;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-//import org.apache.commons.modeler.ManagedBean;
-
-/**
- * The JMX "managed resource" that represents the health of GemFire.
- * Basically, it provides the behavior of
- * <code>GemFireHealthImpl</code>, but does some JMX stuff like
- * registering beans with the agent.
- *
- * @see AdminDistributedSystemJmxImpl#createGemFireHealth
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-public class GemFireHealthJmxImpl extends GemFireHealthImpl 
-  implements ManagedResource {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-
-  /** The object name of the MBean created for this managed resource */
-  private final ObjectName objectName;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>GemFireHealthJmxImpl</code> that monitors the
-   * health of the given distributed system and uses the given JMX
-   * agent. 
-   */
-  GemFireHealthJmxImpl(GfManagerAgent agent,
-                       AdminDistributedSystemJmxImpl system)
-    throws AdminException {
-
-    super(agent, system);
-    this.mbeanName = new StringBuffer()
-      .append(MBEAN_NAME_PREFIX)
-      .append("GemFireHealth,id=")
-      .append(MBeanUtil.makeCompliantMBeanNameProperty(system.getId()))
-      .toString();
-    this.objectName = MBeanUtil.createMBean(this);
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  public String getHealthStatus() {
-    return getHealth().toString();
-  }
-  
-  public ObjectName manageGemFireHealthConfig(String hostName)
-  throws MalformedObjectNameException {
-    try {
-      GemFireHealthConfig config = getGemFireHealthConfig(hostName);
-      GemFireHealthConfigJmxImpl jmx = (GemFireHealthConfigJmxImpl) config;
-      return new ObjectName(jmx.getMBeanName());
-    } //catch (AdminException e) { logWriter.warning(e); throw e; }
-    catch (RuntimeException e) { 
-      logger.warn(e.getMessage(), e); 
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e; 
-    }
-  }
-    
-  /**
-   * Creates a new {@link DistributedSystemHealthConfigJmxImpl}
-   */
-  @Override
-  protected DistributedSystemHealthConfig
-    createDistributedSystemHealthConfig() {
-
-    try {
-      return new DistributedSystemHealthConfigJmxImpl(this);
-
-    } catch (AdminException ex) {
-      throw new RuntimeAdminException(LocalizedStrings.GemFireHealthJmxImpl_WHILE_GETTING_THE_DISTRIBUTEDSYSTEMHEALTHCONFIG.toLocalizedString(), ex);
-    }
-  }
-
-  /**
-   * Creates a new {@link GemFireHealthConfigJmxImpl}
-   */
-  @Override
-  protected GemFireHealthConfig
-    createGemFireHealthConfig(String hostName) {
-
-    try {
-      return new GemFireHealthConfigJmxImpl(this, hostName);
-
-    } catch (AdminException ex) {
-      throw new RuntimeAdminException(LocalizedStrings.GemFireHealthJmxImpl_WHILE_GETTING_THE_GEMFIREHEALTHCONFIG.toLocalizedString(), ex);
-    }
-  }
-
-  /**
-   * Ensures that the three primary Health MBeans are registered and returns
-   * their ObjectNames. 
-   */
-  protected void ensureMBeansAreRegistered() {
-    MBeanUtil.ensureMBeanIsRegistered(this);
-    MBeanUtil.ensureMBeanIsRegistered((ManagedResource)this.defaultConfig);
-    MBeanUtil.ensureMBeanIsRegistered((ManagedResource)this.dsHealthConfig);
-  }
-  
-  public String getMBeanName() {
-    return this.mbeanName;
-  }
-  
-  public ModelMBean getModelMBean() {
-    return this.modelMBean;
-  }
-
-  public void setModelMBean(ModelMBean modelMBean) {
-    this.modelMBean = modelMBean;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.GEMFIRE_HEALTH;
-  }
-
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public void cleanupResource() {
-    close();
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GenerateMBeanHTML.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GenerateMBeanHTML.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GenerateMBeanHTML.java
deleted file mode 100644
index 8fb433a..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/GenerateMBeanHTML.java
+++ /dev/null
@@ -1,514 +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.admin.jmx.internal;
-
-import com.gemstone.gemfire.internal.ClassPathLoader;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.xml.sax.*;
-import org.xml.sax.helpers.DefaultHandler;
-import java.io.*;
-//import java.util.*;
-
-/**
- * A tool that reads the XML description of MBeans used with the
- * Jakarta Commons Modeler and generates an HTML file that documents
- * each MBean.
- *
- * @author David Whitlock
- * @since 3.5
- */
-public class GenerateMBeanHTML extends DefaultHandler {
-
-  /** The location of the DTD for the MBean descriptions */
-  private static final String DTD_LOCATION =
-    "/com/gemstone/gemfire/admin/jmx/internal/doc-files/mbeans-descriptors.dtd";
-
-//  /** The system id of MBean description's DTD */
-//  private static final String SYSTEM_ID = 
-//    "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd";
-
-//  /** The public id for the DTD */
-//  private static final String PUBLIC_ID =
-//    "-//Apache Software Foundation//DTD Model MBeans Configuration File";
-
-  /** The name of the "mbean-descriptors" element */
-  private static final String MBEANS_DESCRIPTORS = "mbeans-descriptors";
-
-  /** The name of the "mbean" element */
-  private static final String MBEAN = "mbean";
-
-  /** The name of the "name" attribute */
-  private static final String NAME = "name";
-
-  /** The name of the "description" attribute */
-  private static final String DESCRIPTION = "description";
-
-  /** The name of the "type" attribute */
-  private static final String TYPE = "type";
-
-  /** The name of the "attribute" element */
-  private static final String ATTRIBUTE = "attribute";
-
-  /** The name of the "writeable" attribute */
-  private static final String WRITEABLE = "writeable";
-
-  /** The name of the "operation" element */
-  private static final String OPERATION = "operation";
-
-  /** The name of the "returnType" attribute */
-  private static final String RETURN_TYPE = "returnType";
-
-  /** The name of the "paremeter" element */
-  private static final String PARAMETER = "parameter";
-
-  /** The name of the "notification" element */
-  private static final String NOTIFICATION = "notification";
-
-//  /** The name of the "description" element */
-//  private static final String DESCRIPTOR = "descriptor";
-
-  /** The name of the "field" element */
-  private static final String FIELD = "field";
-
-  /** The name of the "value" attribute */
-  private static final String VALUE = "value";
-
-  //////////////////////  Instance Fields  ///////////////////////
-
-  /** Where the generated HTML data is written */
-  private PrintWriter pw;
-
-  /** Have we seen attributes for the current MBean? */
-  private boolean seenAttribute = false;
-
-  /** Have we seen operations for the current MBean? */
-  private boolean seenOperation = false;
-
-  /** Have we seen notifications for the current MBean? */
-  private boolean seenNotifications = false;
-
-  ///////////////////////  Static Methods  ///////////////////////
-
-  /**
-   * Converts data from the given <code>InputStream</code> into HTML
-   * that is written to the given <code>PrintWriter</code>
-   */
-  private static void convert(InputStream in, PrintWriter out) 
-    throws Exception {
-
-    SAXParserFactory factory = SAXParserFactory.newInstance();
-    factory.setValidating(true);
-    SAXParser parser = factory.newSAXParser();
-    DefaultHandler handler = new GenerateMBeanHTML(out);
-    parser.parse(in, handler);
-  }
-
-  ////////////////////////  Constructors  ////////////////////////
-
-  /**
-   * Creates a new <code>GenerateMBeanHTML</code> that writes to the
-   * given <code>PrintWriter</code>.
-   */
-  private GenerateMBeanHTML(PrintWriter pw) {
-    this.pw = pw;
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Given a public id, attempt to resolve it to a DTD.  Returns an
-   * <code>InputSoure</code> for the DTD.
-   */
-  @Override
-  public InputSource resolveEntity(String publicId, String systemId) 
-    throws SAXException {
-
-    if (publicId == null || systemId == null) {
-      throw new SAXException(LocalizedStrings.GenerateMBeanHTML_PUBLIC_ID_0_SYSTEM_ID_1.toLocalizedString(new Object[] {publicId, systemId}));
-    }
-
-    // Figure out the location for the publicId.
-    String location = DTD_LOCATION;
-
-    InputSource result;
-//    if (location != null) (cannot be null) 
-    {
-      InputStream stream = ClassPathLoader.getLatest().getResourceAsStream(getClass(), location);
-      if (stream != null) {
-        result = new InputSource(stream);
-      } else {
-        throw new SAXNotRecognizedException(LocalizedStrings.GenerateMBeanHTML_DTD_NOT_FOUND_0.toLocalizedString(location));
-      }
-
-//    } else {
-//      throw new SAXNotRecognizedException(LocalizedStrings.GenerateMBeanHTML_COULD_NOT_FIND_DTD_FOR_0_1.toLocalizedString(new Object[] {publicId, systemId}));
-    }
-
-    return result;
-  }
-
-  /**
-   * Warnings are ignored
-   */
-  @Override
-  public void warning(SAXParseException ex) throws SAXException { 
-
-  }
-
-  /**
-   * Rethrow the <code>SAXParseException</code>
-   */
-  @Override
-  public void error(SAXParseException ex) throws SAXException {
-    throw ex;
-  }
-  
-  /**
-   * Rethrow the <code>SAXParseException</code>
-   */
-  @Override
-  public void fatalError(SAXParseException ex) throws SAXException {
-    throw ex;
-  }
-  
-  /**
-   * Starts the HTML document
-   */
-  private void startMBeansDescriptors() {
-    pw.println("<HTML>");
-    pw.println("<HEAD>");
-    pw.println("<TITLE>GemFire MBeans Interface</TITLE>");
-    pw.println("</HEAD>");
-    pw.println("");
-    pw.println("<h1>GemFire Management Beans</h1>");
-    pw.println("");
-    pw.println("<P>This document describes the attributes, operations,"); 
-    pw.println("and notifications of the GemFire Administration");
-    pw.println("Management Beans (MBeans).</P>"); 
-    pw.println("");
-  }
-
-  /**
-   * Ends the HTML document
-   */
-  private void endMBeansDescriptors() {
-    pw.println("</HTML>");
-  }
-
-  /**
-   * Generates a heading and a table declaration for an MBean
-   */
-  private void startMBean(Attributes atts) {
-    String name = atts.getValue(NAME);
-    /*String description =*/ atts.getValue(DESCRIPTION);
-    pw.println("<h2><b>" + name + "</b> MBean</h2>");
-    pw.println("<table border=\"0\" cellpadding=\"3\">");
-    pw.println("<tr valign=\"top\">");
-    pw.println("  <th align=\"left\">Description:</th>");
-    pw.println("  <td colspan=\"4\">GemFire distributed system</td>");
-    pw.println("</tr>");
-  }
-
-  /**
-   * Ends the MBean table
-   */
-  private void endMBean() {
-    this.seenAttribute = false;
-    this.seenOperation = false;
-    this.seenNotifications = false;
-
-    pw.println("</table>");
-    pw.println("");
-
-    pw.println("<P></P>");
-    pw.println("");
-  }
-
-  /**
-   * Generates a table row for an MBean attribute
-   */
-  private void startAttribute(Attributes atts) {
-    if (!this.seenAttribute) {
-      // Print header row
-      pw.println("<tr valign=\"top\">");
-      pw.println("  <th align=\"left\">Attributes</th>");
-      pw.println("  <th align=\"left\" colspan=\"2\">Name</th>");
-      pw.println("  <th align=\"left\">Type</th>");
-      pw.println("  <th align=\"left\">Description</th>");
-      pw.println("  <th align=\"left\">Writable</th>");
-      pw.println("</tr>");
-
-    }
-
-    this.seenAttribute = true;
-
-    String name = atts.getValue(NAME);
-    String description = atts.getValue(DESCRIPTION);
-    String type = atts.getValue(TYPE);
-    String writeable = atts.getValue(WRITEABLE);
-
-    pw.println("<tr valign=\"top\">");
-    pw.println("  <td></td>");
-    pw.println("  <td colspan=\"2\">" + name + "</td>");
-    pw.println("  <td>" + type + "</td>");
-    pw.println("  <td>" + description + "</td>");
-    pw.println("  <td>" + writeable + "</td>");
-    pw.println("</tr>");
-  }
-
-  /**
-   * Generates a table row for an MBean operation
-   */
-  private void startOperation(Attributes atts) {
-    if (!this.seenOperation) {
-      if (!this.seenAttribute) {
-        pw.println("<tr valign=\"top\">");
-        pw.println("  <th align=\"left\">Operations</th>");
-        pw.println("  <th align=\"left\" colspan=\"2\">Name</th>");
-        pw.println("  <th align=\"left\">Type</th>");
-        pw.println("  <th align=\"left\">Description</th>");
-        pw.println("  <th align=\"left\"></th>");
-        pw.println("</tr>");
-
-      } else {
-      String title = "Operations and Parameters";
-        pw.println("<tr valign=\"top\">");
-        pw.println("  <th align=\"left\" colspan=\"6\">" + title + "</th>");
-        pw.println("</tr>");
-      }
-    }
-
-    this.seenOperation = true;
-
-    String name = atts.getValue(NAME);
-    String type = atts.getValue(RETURN_TYPE);
-    String description = atts.getValue(DESCRIPTION);
-
-    pw.println("<tr valign=\"top\">");
-    pw.println("  <td></td>");
-    pw.println("  <td colspan=\"2\">" + name + "</td>");
-    pw.println("  <td>" + type + "</td>");
-    pw.println("  <td colspan=\"2\">" + description + "</td>");
-    pw.println("</tr>");
-    
-  }
-
-  /**
-   * Generates a table row for the parameter of an MBean operation
-   */
-  private void startParameter(Attributes atts) {
-    String name = atts.getValue(NAME);
-    String description = atts.getValue(DESCRIPTION);
-    String type = atts.getValue(TYPE);
-
-    pw.println("<tr valign=\"top\">");
-    pw.println("  <td></td>");
-    pw.println("  <td width=\"10\"></td>");
-    pw.println("  <td>" + name + "</td>");
-    pw.println("  <td>" + type + "</td>");
-    pw.println("  <td colspan=\"2\">" + description + "</td>");
-    pw.println("</tr>");
-  }
-
-  /**
-   * Generates a row in a table for an MBean notification
-   */
-  private void startNotification(Attributes atts) {
-    if (!this.seenNotifications) {
-      if (!this.seenAttribute && !this.seenOperation) {
-        pw.println("<tr valign=\"top\">");
-        pw.println("  <th align=\"left\">Notifications</th>");
-        pw.println("  <th align=\"left\" colspan=\"2\">Name</th>");
-        pw.println("  <th align=\"left\">Type</th>");
-        pw.println("  <th align=\"left\">Description</th>");
-        pw.println("  <th align=\"left\"></th>");
-        pw.println("</tr>");
-        pw.println("</tr>");
-
-      } else {
-        pw.println("<tr valign=\"top\">");
-        pw.println("  <th align=\"left\" colspan=\"6\">Notifications and Fields</th>");
-        pw.println("</tr>");
-      }
-    }
-
-    this.seenNotifications = true;
-
-    String name = atts.getValue(NAME);
-    String description = atts.getValue(DESCRIPTION);
-    
-    pw.println("<tr valign=\"top\">");
-    pw.println("  <td></td>");
-    pw.println("  <td colspan=\"3\">" + name + "</td>");
-    pw.println("  <td colspan=\"3\">" + description + "</td>");
-    pw.println("</tr>");
-    
-  }
-
-  /**
-   * Generates a table row for a descriptor field
-   */
-  private void startField(Attributes atts) {
-    String name = atts.getValue(NAME);
-    String value = atts.getValue(VALUE);
-
-    pw.println("<tr valign=\"top\">");
-    pw.println("  <td></td>");
-    pw.println("  <td width=\"10\"></td>");
-    pw.println("  <td colspan=\"2\">" + name + "</td>");
-    pw.println("  <td colspan=\"2\">" + value + "</td>");
-    pw.println("</tr>");
-    
-  }
-
-  @Override
-  public void startElement(String namespaceURI, String localName,
-                           String qName, Attributes atts)
-    throws SAXException {
-
-    if (qName.equals(MBEANS_DESCRIPTORS)) {
-      startMBeansDescriptors();
-
-    } else if (qName.equals(MBEAN)) {
-      startMBean(atts);
-
-    } else if (qName.equals(ATTRIBUTE)) {
-      startAttribute(atts);
-
-    } else if (qName.equals(OPERATION)) {
-      startOperation(atts);
-
-    } else if (qName.equals(PARAMETER)) {
-      startParameter(atts);
-
-    } else if (qName.equals(NOTIFICATION)) {
-      startNotification(atts);
-
-    } else if (qName.equals(FIELD)) {
-      startField(atts);
-    }
-
-  }
-
-
-  @Override
-  public void endElement(String namespaceURI, String localName,
-                         String qName)
-    throws SAXException {
-
-    if (qName.equals(MBEANS_DESCRIPTORS)) {
-      endMBeansDescriptors();
-
-    } else if (qName.equals(MBEAN)) {
-      endMBean();
-    }
-
-  }
-
-  //////////  Inherited methods that don't do anything  //////////
-
-  @Override
-  public void characters(char[] ch, int start, int length)
-    throws SAXException {
-
-  }
-
-  @Override
-  public void setDocumentLocator(Locator locator) { }
-
-  @Override
-  public void startDocument() throws SAXException { }
-
-  @Override
-  public void endDocument() throws SAXException { }
-
-  @Override
-  public void startPrefixMapping(String prefix, String uri) 
-    throws SAXException { }
-
-  @Override
-  public void endPrefixMapping(String prefix)
-    throws SAXException { }
-
-  @Override
-  public void ignorableWhitespace(char[] ch, int start, int length)
-    throws SAXException { }
-
-  @Override
-  public void processingInstruction(String target, String data)
-    throws SAXException { }
-
-  @Override
-  public void skippedEntity(String name) throws SAXException { }
-
-  ////////////////////////  Main Program  ////////////////////////
-
-//  private static final PrintStream out = System.out;
-  private static final PrintStream err = System.err;
-
-  /**
-   * Prints usage information about this program
-   */
-  private static void usage(String s) {
-    err.println("\n** " + s + "\n");
-    err.println("usage: java GenerateMBeanHTML xmlFile htmlFile");
-    err.println("");
-    err.println("Converts an MBeans description XML file into an HTML");
-    err.println("file suitable for documentation");
-
-    err.println("");
-
-    System.exit(1);
-  }
-
-  public static void main(String[] args) throws Exception {
-    String xmlFileName = null;
-    String htmlFileName = null;
-
-    for (int i = 0; i < args.length; i++) {
-      if (xmlFileName == null) {
-        xmlFileName = args[i];
-
-      } else if (htmlFileName == null) {
-        htmlFileName = args[i];
-
-      } else {
-        usage("Extraneous command line argument: " + args[i]);
-      }
-    }
-
-    if (xmlFileName == null) {
-      usage("Missing XML file name");
-
-    } else if (htmlFileName == null) {
-      usage("Missing HTML file name");
-    }
-
-    File xmlFile = new File(xmlFileName);
-    if (!xmlFile.exists()) {
-      usage("XML file \"" + xmlFile + "\" does not exist");
-    }
-
-    File htmlFile = new File(htmlFileName);
-    convert(new FileInputStream(xmlFile),
-            new PrintWriter(new FileWriter(htmlFile), true));
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MBeanUtil.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MBeanUtil.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MBeanUtil.java
deleted file mode 100755
index 3aebfee..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MBeanUtil.java
+++ /dev/null
@@ -1,769 +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.admin.jmx.internal;
-
-import java.net.URL;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import javax.management.InstanceNotFoundException;
-import javax.management.JMException;
-import javax.management.JMRuntimeException;
-import javax.management.ListenerNotFoundException;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.MBeanServerNotification;
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.NotificationListener;
-import javax.management.ObjectName;
-import javax.management.timer.TimerMBean;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.commons.modeler.Registry;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.RuntimeAdminException;
-import com.gemstone.gemfire.admin.internal.AdminDistributedSystemImpl;
-import com.gemstone.gemfire.internal.ClassPathLoader;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * Common support for MBeans and {@link ManagedResource}s.  Static loading of
- * this class creates the MBeanServer and Modeler Registry.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public class MBeanUtil {
-  
-  private static final Logger logger = LogService.getLogger();
-  
-  /** The default MBeanServer domain name is "GemFire" */
-  private static final String DEFAULT_DOMAIN = "GemFire";
-
-  /** MBean Name for refreshTimer */
-  private static String REFRESH_TIMER_NAME = DEFAULT_DOMAIN + ":type=RefreshTimer";
-  
-  /* indicates whether the mbeanServer, registry & refreshTimer are started */
-  private static boolean isStarted;
-  
-  /** The Commons-Modeler configuration registry for our managed beans */
-  private static Registry registry;
-
-  /** The <code>MBeanServer</code> for this application */
-  private static MBeanServer mbeanServer;
-    
-  /** MBean name of the Timer which handles refresh notifications */
-  private static ObjectName refreshTimerObjectName;
-  
-  /** Actual TimerMBean responsible for refresh notifications */
-  private static TimerMBean refreshTimer;
-  
-  /** 
-   * Map of ObjectNames to current timerNotificationIds
-   * <p>
-   * map: key=ObjectName, 
-   *      value=map: key=RefreshNotificationType,
-   *                 value=timerNotificationId
-   */
-  private static Map<NotificationListener, Map<RefreshNotificationType, Integer>> refreshClients = new HashMap<NotificationListener, Map<RefreshNotificationType, Integer>>();
-  
-  /** key=ObjectName, value=ManagedResource */
-  private final static Map<ObjectName, ManagedResource> managedResources = new HashMap<ObjectName, ManagedResource>();
-
-  static {
-    try {
-      refreshTimerObjectName = ObjectName.getInstance(REFRESH_TIMER_NAME);
-    } catch (Exception e) {
-      logStackTrace(Level.ERROR, e);
-    }
-  }
-  
-  /**
-   * Initializes Mbean Server, Registry, Refresh Timer & registers Server 
-   * Notification Listener.
-   * 
-   * @return reference to the mbeanServer
-   */
-  static MBeanServer start() {
-    if (!isStarted) {
-      mbeanServer = createMBeanServer();
-      registry    = createRegistry();
-      
-      registerServerNotificationListener();
-      createRefreshTimer();
-      isStarted = true;
-    }
-
-    return mbeanServer;
-  }
-  
-  /**
-   * Stops Registry, Refresh Timer. Releases Mbean Server after.
-   */
-  static void stop() {
-    if (isStarted) {
-      stopRefreshTimer();
-      
-      registry.stop();
-      registry = null;
-      releaseMBeanServer();//makes mbeanServer null
-      isStarted = false;
-    }
-  }
-
-  /**
-   * Create and configure (if necessary) and return the <code>MBeanServer</code> 
-   * with which we will be registering our <code>ModelMBean</code> 
-   * implementations.
-   *
-   * @see javax.management.MBeanServer
-   */
-  static synchronized MBeanServer createMBeanServer() {
-    if (mbeanServer == null) {
-      mbeanServer = MBeanServerFactory.createMBeanServer(DEFAULT_DOMAIN);
-    }
-    return mbeanServer;
-  }
-
-  /**
-   * Create and configure (if necessary) and return the Commons-Modeler registry 
-   * of managed object descriptions.
-   *
-   * @see org.apache.commons.modeler.Registry
-   */
-  static synchronized Registry createRegistry() {
-    if (registry == null) {
-      try {
-        registry = Registry.getRegistry(null, null);
-        if (mbeanServer == null) {
-          throw new IllegalStateException(LocalizedStrings.MBeanUtil_MBEAN_SERVER_NOT_INITIALIZED_YET.toLocalizedString());
-        }
-        registry.setMBeanServer(mbeanServer);
-  
-        String mbeansResource = getOSPath("/com/gemstone/gemfire/admin/jmx/mbeans-descriptors.xml");
-        //System.out.println(LocalizedStrings.MBeanUtil_LOADING_RESOURCE_0.toLocalizedString(mbeansResource));
-        
-        URL url = ClassPathLoader.getLatest().getResource(MBeanUtil.class, mbeansResource);
-        raiseOnFailure(url != null, 
-            LocalizedStrings.MBeanUtil_FAILED_TO_FIND_0.toLocalizedString(new Object[] {mbeansResource}));
-        registry.loadMetadata(url);
-        
-        // simple test to make sure the xml was actually loaded and is valid...
-        String[] test = registry.findManagedBeans();
-        raiseOnFailure(test != null && test.length > 0,
-            LocalizedStrings.MBeanUtil_FAILED_TO_LOAD_0.toLocalizedString(new Object[] {mbeansResource}));
-      } catch (Exception e) {
-        logStackTrace(Level.WARN, e);
-        throw new RuntimeAdminException(LocalizedStrings.MBeanUtil_FAILED_TO_GET_MBEAN_REGISTRY.toLocalizedString(), e);
-      }
-    }
-    return registry;
-  }
-
-  /**
-   * Creates and registers a <code>ModelMBean</code> for the specified
-   * <code>ManagedResource</code>. State changing callbacks into the 
-   * <code>ManagedResource</code> will also be made.
-   *
-   * @param resource
-   *        the ManagedResource to create a managing MBean for
-   *
-   * @return The object name of the newly-created MBean
-   *
-   * @see ManagedResource#setModelMBean
-   */
-  static ObjectName createMBean(ManagedResource resource) {
-    return createMBean(resource, lookupManagedBean(resource));
-  }
-  
-  /**
-   * Creates and registers a <code>ModelMBean</code> for the specified
-   * <code>ManagedResource</code>. State changing callbacks into the 
-   * <code>ManagedResource</code> will also be made.
-   *
-   * @param resource the ManagedResource to create a managing MBean for
-   * @param managed  the ManagedBean definition to create the MBean with
-   * @see ManagedResource#setModelMBean
-   */
-  static ObjectName createMBean(ManagedResource resource, ManagedBean managed) {
-
-    try {
-      DynamicManagedBean mb = new DynamicManagedBean(managed);
-      resource.setModelMBean(mb.createMBean(resource));
-      
-      // create the ObjectName and register the MBean...
-      final ObjectName objName;
-      try {
-        objName = ObjectName.getInstance(resource.getMBeanName());
-      } catch (MalformedObjectNameException e) {
-        throw new MalformedObjectNameException(LocalizedStrings.MBeanUtil_0_IN_1.toLocalizedString(new Object[] { e.getMessage(), resource.getMBeanName()} ) );
-      }
-
-      synchronized (MBeanUtil.class) {
-        // Only register a bean once.  Otherwise, you risk race
-        // conditions with things like the RMI connector accessing it.
-
-        if (mbeanServer != null && !mbeanServer.isRegistered(objName)) {
-          mbeanServer.registerMBean(resource.getModelMBean(), objName);
-          synchronized (managedResources) {
-            managedResources.put(objName, resource);
-          }
-        }
-      }
-      return objName;
-    } catch (java.lang.Exception e) {
-      throw new RuntimeAdminException(LocalizedStrings.MBeanUtil_FAILED_TO_CREATE_MBEAN_FOR_0.toLocalizedString(new Object[]{resource.getMBeanName()}), e);
-    }
-  }
-  
-  /**
-   * Ensures that an MBean is registered for the specified 
-   * <code>ManagedResource</code>.  If an MBean cannot be found in the
-   * <code>MBeanServer</code>, then this creates and registers a 
-   * <code>ModelMBean</code>. State changing callbacks into the 
-   * <code>ManagedResource</code> will also be made.
-   *
-   * @param resource
-   *        the ManagedResource to create a managing MBean for
-   *
-   * @return The object name of the MBean that manages the ManagedResource
-   *
-   * @see ManagedResource#setModelMBean
-   */
-  static ObjectName ensureMBeanIsRegistered(ManagedResource resource) {
-    try {
-      ObjectName objName = ObjectName.getInstance(resource.getMBeanName());
-      synchronized (MBeanUtil.class) {
-        if (mbeanServer != null && !mbeanServer.isRegistered(objName)) {
-          return createMBean(resource);
-        }
-      }
-      raiseOnFailure(mbeanServer.isRegistered(objName), 
-          LocalizedStrings.MBeanUtil_COULDNT_FIND_MBEAN_REGISTERED_WITH_OBJECTNAME_0.toLocalizedString(new Object[] {objName.toString()}));
-      return objName;
-    } 
-    catch (java.lang.Exception e) {
-      throw new RuntimeAdminException(e);
-    }
-  }
-  
-  /**
-   * Retrieves the <code>ManagedBean</code> configuration from the Registry for 
-   * the specified <code>ManagedResource</code>
-   *
-   * @param resource the ManagedResource to find the configuration for
-   */
-  static ManagedBean lookupManagedBean(ManagedResource resource) {
-    // find the registry defn for our MBean...
-    ManagedBean managed = null;
-    if (registry != null) {
-      managed = registry.findManagedBean(
-          resource.getManagedResourceType().getClassTypeName());
-    } else {
-      throw new IllegalArgumentException(LocalizedStrings.MBeanUtil_MANAGEDBEAN_IS_NULL.toLocalizedString());
-    }
-    
-    if (managed == null) {
-      throw new IllegalArgumentException(LocalizedStrings.MBeanUtil_MANAGEDBEAN_IS_NULL.toLocalizedString());
-    }
-    
-    // customize the defn...
-    managed.setClassName(
-        "com.gemstone.gemfire.admin.jmx.internal.MX4JModelMBean");
-
-    return managed;
-  }
-
-  /**
-   * Registers a refresh notification for the specified client MBean.  
-   * Specifying zero for the refreshInterval disables notification for the 
-   * refresh client. Note: this does not currently support remote connections.
-   *
-   * @param client          client to listen for refresh notifications
-   * @param userData        userData to register with the Notification 
-   * @param type            refresh notification type the client will use
-   * @param refreshInterval the seconds between refreshes
-   */
-  static void registerRefreshNotification(NotificationListener client, 
-                                          Object userData, 
-                                          RefreshNotificationType type,
-                                          int refreshInterval) {
-    if (client == null) {
-      throw new IllegalArgumentException(LocalizedStrings.MBeanUtil_NOTIFICATIONLISTENER_IS_REQUIRED.toLocalizedString());
-    }
-    if (type == null) {
-      throw new IllegalArgumentException(LocalizedStrings.MBeanUtil_REFRESHNOTIFICATIONTYPE_IS_REQUIRED.toLocalizedString());
-    }
-    if (refreshTimerObjectName == null || refreshTimer == null) {
-      throw new IllegalStateException(LocalizedStrings.MBeanUtil_REFRESHTIMER_HAS_NOT_BEEN_PROPERLY_INITIALIZED.toLocalizedString());
-    }
-    
-    try {
-      // get the notifications for the specified client...
-      Map<RefreshNotificationType, Integer> notifications = null;
-      synchronized (refreshClients) {
-        notifications = (Map<RefreshNotificationType, Integer>) refreshClients.get(client);        
-      }
-      
-      if (notifications == null) {
-        // If refreshInterval is being set to zero and notifications is removed return
-        if (refreshInterval <= 0) {
-          return;
-        }
-        
-        // never registered before, so add client...
-        notifications = new HashMap<RefreshNotificationType, Integer>();
-        synchronized (refreshClients) {
-          refreshClients.put(client, notifications);
-        }
-        validateRefreshTimer();
-        try {
-          // register client as a listener with MBeanServer...
-          mbeanServer.addNotificationListener(
-              refreshTimerObjectName, // timer to listen to
-              client,       // the NotificationListener object
-              null,         // optional NotificationFilter TODO: convert to using
-              new Object()  // not used but null throws IllegalArgumentException
-              );
-        } catch (InstanceNotFoundException e) {
-          // should not happen since we already checked refreshTimerObjectName
-          logStackTrace(Level.WARN, e, LocalizedStrings.MBeanUtil_COULD_NOT_FIND_REGISTERED_REFRESHTIMER_INSTANCE.toLocalizedString());
-        }
-      }
-
-      // TODO: change to manipulating timer indirectly thru mserver...
-      
-      // check for pre-existing refresh notification entry...
-      Integer timerNotificationId = (Integer) notifications.get(type);
-      if (timerNotificationId != null) {
-        try {
-          // found one, so let's remove it...
-          refreshTimer.removeNotification(timerNotificationId);
-        } catch (InstanceNotFoundException e) {
-          // that's ok cause we just wanted to remove it anyway
-        } finally {
-          // null out the map entry for that notification type...
-          notifications.put(type, null);
-        }
-      }
-      
-      if (refreshInterval > 0) {
-        // add notification to the refresh timer...
-        timerNotificationId = refreshTimer.addNotification(
-            type.getType(),                   // type
-            type.getMessage(),                // message = "refresh"
-            userData,                         // userData
-            new Date(System.currentTimeMillis() + 
-                     refreshInterval * 1000), // first occurence
-            refreshInterval * 1000);          // period to repeat  
-        
-        // put an entry into the map for the listener...
-        notifications.put(type, timerNotificationId);
-      } else {
-        // do nothing!  refreshInterval must be over 0 to do anything...
-      }
-    } catch (java.lang.RuntimeException e) {
-      logStackTrace(Level.WARN, e);
-      throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (java.lang.Error e) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logStackTrace(Level.ERROR, e);
-      throw e;
-    }
-  }
-
-  /**
-   * Verifies a refresh notification for the specified client MBean.
-   * If notification is not registered, then returns a false
-   *
-   * @param client          client to listen for refresh notifications
-   * @param type            refresh notification type the client will use
-   *
-   * @return isRegistered   boolean indicating if a notification is registered
-   */
-  static boolean isRefreshNotificationRegistered(NotificationListener client,
-                                          RefreshNotificationType type) {
-    boolean isRegistered = false;
-
-    // get the notifications for the specified client...
-    Map<RefreshNotificationType, Integer> notifications = null;
-    synchronized(refreshClients) {
-      notifications = (Map<RefreshNotificationType, Integer>) refreshClients.get(client);
-    }
-
-    // never registered before if  null ...
-    if (notifications != null) {
-      // check for pre-existing refresh notification entry...
-      Integer timerNotificationId = notifications.get(type);
-      if (timerNotificationId != null) {
-        isRegistered = true;
-      }
-    }
-
-    return isRegistered;
-  }
-  
-  /** 
-   * Validates refreshTimer has been registered without problems and attempts 
-   * to re-register if there is a problem. 
-   */
-  static void validateRefreshTimer() {
-    if (refreshTimerObjectName == null || refreshTimer == null) {
-      //if (refreshTimerObjectName == null) System.out.println("refreshTimerObjectName is null");
-      //if (refreshTimer == null) System.out.println("refreshTimer is null");
-      //System.out.println("[validateRefreshTimer] createRefreshTimer");
-      createRefreshTimer();
-    }
-    
-    raiseOnFailure(refreshTimer != null, 
-                      "Failed to validate Refresh Timer");
-
-    if (mbeanServer != null && !mbeanServer.isRegistered(refreshTimerObjectName)) {
-      //System.out.println("[validateRefreshTimer] registerMBean");
-      try {
-        mbeanServer.registerMBean(refreshTimer, refreshTimerObjectName);
-      } catch (JMException e) { 
-        logStackTrace(Level.WARN, e); 
-  	  } catch (JMRuntimeException e) { 
-        logStackTrace(Level.WARN, e); 
-  	  }
-    }                       
-  }
-  
-  /**
-   * Initializes the timer for sending refresh notifications.
-   */
-  static void createRefreshTimer() {        
-    try {
-      refreshTimer = new javax.management.timer.Timer();
-      mbeanServer.registerMBean(refreshTimer, refreshTimerObjectName);
-            
-      refreshTimer.start();
-    } catch (JMException e) {
-      logStackTrace(Level.WARN, e, LocalizedStrings.MBeanUtil_FAILED_TO_CREATE_REFRESH_TIMER.toLocalizedString());
-    } catch (JMRuntimeException e) {
-      logStackTrace(Level.WARN, e, LocalizedStrings.MBeanUtil_FAILED_TO_CREATE_REFRESH_TIMER.toLocalizedString());
-    } catch (Exception e) {
-      logStackTrace(Level.WARN, e, LocalizedStrings.MBeanUtil_FAILED_TO_CREATE_REFRESH_TIMER.toLocalizedString());
-    }
-  }
-  
-  /**
-   * Initializes the timer for sending refresh notifications.
-   */
-  static void stopRefreshTimer() {        
-    try {
-      if (refreshTimer != null && mbeanServer != null) {
-        mbeanServer.unregisterMBean(refreshTimerObjectName);
-              
-        refreshTimer.stop();
-      }
-    } catch (JMException e) {
-      logStackTrace(Level.WARN, e);
-    } catch (JMRuntimeException e) {
-      logStackTrace(Level.WARN, e);
-    } catch (Exception e) {
-      logStackTrace(Level.DEBUG,e, "Failed to stop refresh timer for MBeanUtil");
-    }
-  }
-  
-  /**
-   * Return a String that been modified to be compliant as a property of an 
-   * ObjectName.
-   * <p>
-   * The property name of an ObjectName may not contain any of the following
-   * characters:  <b><i>:  ,  =  *  ?</i></b>
-   * <p>
-   * This method will replace the above non-compliant characters with a
-   * dash:  <b><i>-</i></b>
-   * <p>
-   * If value is empty, this method will return the string "nothing".
-   * <p>
-   * Note: this is <code>public</code> because certain tests call this from
-   * outside of the package. TODO: clean this up
-   *
-   * @param value  the potentially non-compliant ObjectName property
-   * @return the value modified to be compliant as an ObjectName property
-   */
-  public static String makeCompliantMBeanNameProperty(String value) {
-    value = value.replace(':', '-');
-    value = value.replace(',', '-');
-    value = value.replace('=', '-');
-    value = value.replace('*', '-');
-    value = value.replace('?', '-');
-    if (value.length() < 1) {
-      value = "nothing";
-    }
-    return value;
-  }
-  
-  /**
-   * Unregisters all GemFire MBeans and then releases the MBeanServer for
-   * garbage collection.
-   */
-  static void releaseMBeanServer() {
-    try {
-      // unregister all GemFire mbeans...
-      Iterator iter = mbeanServer.queryNames(null, null).iterator();
-      while (iter.hasNext()) {
-        ObjectName name = (ObjectName)iter.next();
-        if (name.getDomain().startsWith(DEFAULT_DOMAIN)) {
-          unregisterMBean(name);
-        }
-      }
-      
-      // last, release the mbean server...
-      MBeanServerFactory.releaseMBeanServer(mbeanServer);
-      mbeanServer = null;
-    } catch (JMRuntimeException e) { 
-      logStackTrace(Level.WARN, e); 
-   	} 
-	  /* See #42391. Cleaning up the static maps which might be still holding  
-	   * references to ManagedResources */ 
-	   synchronized (MBeanUtil.managedResources) { 
-	     MBeanUtil.managedResources.clear(); 
-	   } 
-	   synchronized (refreshClients) { 
-	     refreshClients.clear();
-	   }
-    /* See #42391. Cleaning up the static maps which might be still holding 
-     * references to ManagedResources */
-    synchronized (MBeanUtil.managedResources) {
-      MBeanUtil.managedResources.clear();
-    }
-    synchronized (refreshClients) {
-      refreshClients.clear();
-    }
-  }
-  
-  /**
-   * Returns true if a MBean with given ObjectName is registered.
-   * 
-   * @param objectName
-   *          ObjectName to use for checking if MBean is registered
-   * @return true if MBeanServer is not null & MBean with given ObjectName is
-   *         registered with the MBeanServer        
-   */
-  static boolean isRegistered(ObjectName objectName) {
-    return mbeanServer != null && mbeanServer.isRegistered(objectName);
-  }
-  
-  /**
-   * Unregisters the identified MBean if it's registered.
-   */
-  static void unregisterMBean(ObjectName objectName) {
-    try {
-      if (mbeanServer != null && mbeanServer.isRegistered(objectName)) {
-        mbeanServer.unregisterMBean(objectName);
-      }
-    } catch (MBeanRegistrationException e) {
-      logStackTrace(Level.WARN, null, LocalizedStrings.MBeanUtil_FAILED_WHILE_UNREGISTERING_MBEAN_WITH_OBJECTNAME_0.toLocalizedString(new Object[] {objectName}));
-    } catch (InstanceNotFoundException e) {
-      logStackTrace(Level.WARN, null, LocalizedStrings.MBeanUtil_WHILE_UNREGISTERING_COULDNT_FIND_MBEAN_WITH_OBJECTNAME_0.toLocalizedString(new Object[] {objectName}));
-    } catch (JMRuntimeException e) { 
-      logStackTrace(Level.WARN, null, LocalizedStrings.MBeanUtil_COULD_NOT_UNREGISTER_MBEAN_WITH_OBJECTNAME_0.toLocalizedString(new Object[] {objectName}));
-    }
-  }
-  static void unregisterMBean(ManagedResource resource) {
-    if (resource != null) {
-      unregisterMBean(resource.getObjectName());
-  
-      // call cleanup on managedResource here and not rely on listener
-      // since it is possible that notification listener not deliver
-      // all notifications of un-registration. If resource is 
-      // cleaned here, another call from the listener should be as good as a no-op
-      cleanupResource(resource);
-    }
-  }
-  
-  // cleanup resource
-  private static void cleanupResource(ManagedResource resource) {
-    synchronized (MBeanUtil.managedResources) {
-      MBeanUtil.managedResources.remove(resource.getObjectName());
-    }
-    resource.cleanupResource();
-
-    // get the notifications for the specified client...
-    Map<RefreshNotificationType, Integer> notifications = null;
-    synchronized (refreshClients) {
-      notifications = (Map<RefreshNotificationType, Integer>) refreshClients.remove(resource);
-    }
-
-    // never registered before if  null ...
-    // Also as of current, there is ever only 1 Notification type per 
-    // MBean, so we do need need a while loop here
-    if (notifications != null) {
-
-      // Fix for findbugs reported inefficiency with keySet().
-      Set<Map.Entry<RefreshNotificationType, Integer>> entries = notifications.entrySet();
-      
-      for(Map.Entry<RefreshNotificationType, Integer> e : entries) {
-        Integer timerNotificationId = e.getValue();
-        if(null != timerNotificationId) {
-          try {
-            // found one, so let's remove it...
-            refreshTimer.removeNotification(timerNotificationId);
-          } catch (InstanceNotFoundException xptn) {
-            // that's ok cause we just wanted to remove it anyway
-            logStackTrace(Level.DEBUG, xptn);
-          }
-        }
-      }
-      
-      try {
-        if (mbeanServer != null && mbeanServer.isRegistered(refreshTimerObjectName)) {
-          // remove client as a listener with MBeanServer...
-          mbeanServer.removeNotificationListener(
-              refreshTimerObjectName, // timer to listen to
-              (NotificationListener)resource       // the NotificationListener object
-          );
-        }
-      } catch (ListenerNotFoundException xptn) {
-        // should not happen since we already checked refreshTimerObjectName
-        logStackTrace(Level.WARN, null, xptn.getMessage());
-      } catch (InstanceNotFoundException xptn) {
-        // should not happen since we already checked refreshTimerObjectName
-        logStackTrace(Level.WARN, null, LocalizedStrings.MBeanUtil_WHILE_UNREGISTERING_COULDNT_FIND_MBEAN_WITH_OBJECTNAME_0.toLocalizedString(new Object[] {refreshTimerObjectName}));
-      }
-    }
-  }
-  
-  // ----- borrowed the following from admin.internal.RemoteCommand -----
-  /** Translates the path between Windows and UNIX. */
-  static String getOSPath(String path) {
-    if (pathIsWindows(path)) {
-      return path.replace('/', '\\');
-    } else {
-      return path.replace('\\', '/');
-    }
-  }
-
-  /** Returns true if the path is on Windows. */
-  static boolean pathIsWindows(String path) {
-    if (path != null && path.length() > 1) {
-      return (Character.isLetter(path.charAt(0)) && path.charAt(1) == ':') ||
-        (path.startsWith("//") || path.startsWith("\\\\"));
-    }
-    return false;
-  }
-
-  static void registerServerNotificationListener() {
-    if (mbeanServer == null) {
-      return;
-    }
-    try {
-      // the MBeanServerDelegate name is spec'ed as the following...
-      ObjectName delegate = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate");
-      mbeanServer.addNotificationListener(
-        delegate,
-        new NotificationListener() {
-          public void handleNotification(Notification notification, Object handback) {
-            MBeanServerNotification serverNotification = (MBeanServerNotification) notification;
-            if (MBeanServerNotification.UNREGISTRATION_NOTIFICATION.equals(serverNotification.getType())) {
-              ObjectName objectName = serverNotification.getMBeanName();
-              synchronized (MBeanUtil.managedResources) {
-                Object entry = MBeanUtil.managedResources.get(objectName);
-                if (entry == null) return;
-                if (!(entry instanceof ManagedResource)) {
-                  throw new ClassCastException(LocalizedStrings.MBeanUtil_0_IS_NOT_A_MANAGEDRESOURCE.toLocalizedString(new Object[] {entry.getClass().getName()}));
-                }
-                ManagedResource resource = (ManagedResource) entry;
-                {
-                  // call cleanup on managedResource
-                  cleanupResource(resource);
-                }
-              }
-            }
-          }
-        }, 
-        null, null);
-    } catch (JMException e) {
-      logStackTrace(Level.WARN, e, 
-          LocalizedStrings.MBeanUtil_FAILED_TO_REGISTER_SERVERNOTIFICATIONLISTENER.toLocalizedString());
-    } catch (JMRuntimeException e) {
-      logStackTrace(Level.WARN, e, 
-          LocalizedStrings.MBeanUtil_FAILED_TO_REGISTER_SERVERNOTIFICATIONLISTENER.toLocalizedString());
-    }
-  }
-
-  /**
-   * Logs the stack trace for the given Throwable if logger is initialized else
-   * prints the stack trace using System.out.
-   * 
-   * @param level
-   *          severity level to log at
-   * @param throwable
-   *          Throwable to log stack trace for
-   */
-  public static void logStackTrace(Level level, Throwable throwable) {
-    logStackTrace(level, throwable, null);
-  }
-
-  /**
-   * Logs the stack trace for the given Throwable if logger is initialized else
-   * prints the stack trace using System.out.
-   * 
-   * @param level
-   *          severity level to log at
-   * @param throwable
-   *          Throwable to log stack trace for
-   * @param message
-   *          user friendly error message to show
-   */
-  public static void logStackTrace(Level level, Throwable throwable, 
-                                   String message) {
-    logger.log(level, message, throwable);
-  }
-
-  /**
-   * Raises RuntimeAdminException with given 'message' if given 'condition' is
-   * false.
-   * 
-   * @param condition
-   *          condition to evaluate
-   * @param message
-   *          failure message
-   */
-  private static void raiseOnFailure(boolean condition, String message) {
-    if (!condition) {
-      throw new RuntimeAdminException(message);
-    }
-  }
-}
-


[40/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ResourceManagerValidator.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ResourceManagerValidator.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ResourceManagerValidator.java
deleted file mode 100644
index c5edeea..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/ResourceManagerValidator.java
+++ /dev/null
@@ -1,166 +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.util;
-
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.control.ResourceManager;
-
-import java.lang.management.ManagementFactory;
-import java.lang.management.RuntimeMXBean;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class ResourceManagerValidator {
-
-  private static final Pattern DIGIT_PATTERN = Pattern.compile("(\\d+|[^\\d]+)");
-
-  public static void validateJavaStartupParameters(GemFireCache cache) {
-    // Get the input arguments
-    ResourceManager rm = cache.getResourceManager();
-    RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();
-    List<String> inputArguments = runtimeBean.getInputArguments();
-    if (cache.getLogger().fineEnabled()) {
-      cache.getLogger().fine("Full input java arguments: " + inputArguments);
-    }
-
-    // Validate the arguments based on VM vendor
-    String vmVendor = runtimeBean.getVmVendor();
-    if (vmVendor.startsWith("Sun") || vmVendor.startsWith("Apple")) {
-      // java.vm.vendor = Sun Microsystems Inc. || java.vm.vendor = Apple Inc.
-      validateSunArguments(cache, rm, inputArguments);
-    } else if (vmVendor.startsWith("IBM")) {
-      // java.vm.vendor = IBM Corporation
-      // TODO validate IBM input arguments
-    } else if (vmVendor.startsWith("BEA")) {
-      // java.vm.vendor = BEA Systems, Inc.
-      // TODO validate JRockit input arguments
-    }
-  }
-
-  private static void validateSunArguments(GemFireCache cache, ResourceManager rm, List<String> inputArguments) {
-    // Retrieve the -Xms, -Xmx, UseConcMarkSweepGC and CMSInitiatingOccupancyFraction arguments
-    String dashXms = null, dashXmx = null, useCMS = null, cmsIOF = null;
-    for (String argument : inputArguments) {
-      if (argument.startsWith("-Xms")) {
-        dashXms = argument;
-      } else if (argument.startsWith("-Xmx")) {
-        dashXmx = argument;
-      } else if (argument.equals("-XX:+UseConcMarkSweepGC")) {
-        useCMS = argument;
-      } else if (argument.startsWith("-XX:CMSInitiatingOccupancyFraction")) {
-        cmsIOF = argument;
-      }
-    }
-    if (cache.getLogger().fineEnabled()) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("Relevant input java arguments: ")
-          .append("dashXms=")
-          .append(dashXms)
-          .append("; dashXmx=")
-          .append(dashXmx)
-          .append("; useCMS=")
-          .append(useCMS)
-          .append("; cmsIOF=")
-          .append(cmsIOF);
-      cache.getLogger().fine(builder.toString());
-    }
-
-    // Validate the heap parameters
-    validateJavaHeapParameters(cache, dashXms, dashXmx);
-
-    // Verify CMS is specified
-    verifyCMSGC(cache, useCMS);
-
-    // Verify CMSInitiatingOccupancyFraction is specified
-    verifyCMSInitiatingOccupancyFraction(cache, rm, cmsIOF);
-  }
-
-  private static void validateJavaHeapParameters(GemFireCache cache, String dashXms, String dashXmx) {
-    if (dashXms == null) {
-      cache.getLogger()
-          .warning(
-              "Setting the initial size of the heap (configured using -Xms) is recommended so that GemFire cache eviction is optimal");
-    } else if (dashXmx == null) {
-      cache.getLogger()
-          .warning(
-              "Setting the maximum size of the heap (configured using -Xmx) is recommended so that GemFire cache eviction is optimal");
-    } else {
-      // Neither heap parameter is null. Parse them and verify they are the same.
-      List<String> dashXmsList = splitAtDigits(dashXms);
-      String dashXmsStr = dashXmsList.get(1);
-      List<String> dashXmxList = splitAtDigits(dashXmx);
-      String dashXmxStr = dashXmxList.get(1);
-      if (!dashXmsStr.equals(dashXmxStr)) {
-        StringBuilder builder = new StringBuilder();
-        builder.append("Setting the initial (")
-            .append(dashXmsStr)
-            .append(dashXmsList.get(2))
-            .append(") and maximum (")
-            .append(dashXmxStr)
-            .append(dashXmxList.get(2))
-            .append(") sizes of the heap the same is recommended so that GemFire cache eviction is optimal");
-        cache.getLogger().warning(builder.toString());
-      }
-    }
-  }
-
-  private static void verifyCMSGC(GemFireCache cache, String useCMS) {
-    if (useCMS == null) {
-      cache.getLogger()
-          .warning(
-              "Using the concurrent garbage collector (configured using -XX:+UseConcMarkSweepGC) is recommended so that GemFire cache eviction is optimal");
-    }
-  }
-
-  private static void verifyCMSInitiatingOccupancyFraction(GemFireCache cache, ResourceManager rm, String cmsIOF) {
-    if (cmsIOF == null) {
-      cache.getLogger()
-          .warning(
-              "Setting the CMS initiating occupancy fraction (configured using -XX:CMSInitiatingOccupancyFraction=N) is recommended so that GemFire cache eviction is optimal");
-    } else {
-      // Parse the CMSInitiatingOccupancyFraction. Verify it is less than both eviction and critical thresholds.
-      int cmsIOFVal = Integer.parseInt(cmsIOF.split("=")[1]);
-      float currentEvictionHeapPercentage = rm.getEvictionHeapPercentage();
-      if (currentEvictionHeapPercentage != 0 && currentEvictionHeapPercentage < cmsIOFVal) {
-        cache.getLogger()
-            .warning(
-                "Setting the CMS initiating occupancy fraction (" + cmsIOFVal + ") less than the eviction heap percentage (" + currentEvictionHeapPercentage + ") is recommended so that GemFire cache eviction is optimal");
-      }
-      float currentCriticalHeapPercentage = rm.getCriticalHeapPercentage();
-      if (currentCriticalHeapPercentage != 0 && currentCriticalHeapPercentage < cmsIOFVal) {
-        cache.getLogger()
-            .warning(
-                "Setting the CMS initiating occupancy fraction (" + cmsIOFVal + ") less than the critical heap percentage (" + currentCriticalHeapPercentage + ") is recommended so that GemFire cache eviction is optimal");
-      }
-    }
-  }
-
-  private static List<String> splitAtDigits(String input) {
-    Matcher matcher = DIGIT_PATTERN.matcher(input);
-    List<String> result = new ArrayList<String>();
-    while (matcher.find()) {
-      result.add(matcher.group());
-    }
-    return result;
-  }
-
-  private ResourceManagerValidator() {
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/SessionCustomExpiry.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/SessionCustomExpiry.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/SessionCustomExpiry.java
deleted file mode 100644
index 25ee3b1..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/SessionCustomExpiry.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 com.gemstone.gemfire.modules.util;
-
-import com.gemstone.gemfire.cache.CustomExpiry;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.ExpirationAction;
-import com.gemstone.gemfire.cache.ExpirationAttributes;
-import com.gemstone.gemfire.cache.Region;
-
-import javax.servlet.http.HttpSession;
-import java.io.Serializable;
-import java.util.Properties;
-
-@SuppressWarnings("serial")
-public class SessionCustomExpiry implements CustomExpiry<String, HttpSession>, Serializable, Declarable {
-
-  private static final long serialVersionUID = 182735509690640051L;
-
-  private static final ExpirationAttributes EXPIRE_NOW = new ExpirationAttributes(1, ExpirationAction.DESTROY);
-
-  public ExpirationAttributes getExpiry(Region.Entry<String, HttpSession> entry) {
-    HttpSession session = entry.getValue();
-    if (session != null) {
-      return new ExpirationAttributes(entry.getValue().getMaxInactiveInterval(), ExpirationAction.DESTROY);
-    } else {
-      return EXPIRE_NOW;
-    }
-  }
-
-  public void close() {
-  }
-
-  public void init(Properties props) {
-  }
-
-  public boolean equals(Object obj) {
-    // This method is only implemented so that RegionCreator.validateRegion works properly.
-    // The EntryIdleTimeout comparison fails because two of these instances are not equal.
-    if (this == obj) {
-      return true;
-    }
-
-    if (obj == null || !(obj instanceof SessionCustomExpiry)) {
-      return false;
-    }
-
-    return true;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchPartitionedRegionEntriesFunction.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchPartitionedRegionEntriesFunction.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchPartitionedRegionEntriesFunction.java
deleted file mode 100644
index d2b74c8..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchPartitionedRegionEntriesFunction.java
+++ /dev/null
@@ -1,100 +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.util;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.execute.Function;
-import com.gemstone.gemfire.cache.execute.FunctionContext;
-import com.gemstone.gemfire.cache.execute.RegionFunctionContext;
-import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;
-
-import java.util.Properties;
-import java.util.Set;
-
-/**
- * Touches the keys contained in the set of keys by performing a get on the partitioned region.
- *
- * @author Barry Oglesby
- */
-public class TouchPartitionedRegionEntriesFunction implements Function, Declarable {
-
-  private static final long serialVersionUID = -3700389655056961153L;
-
-  private final Cache cache;
-
-  public static final String ID = "touch-partitioned-region-entries";
-
-  public TouchPartitionedRegionEntriesFunction() {
-    this(CacheFactory.getAnyInstance());
-  }
-
-  public TouchPartitionedRegionEntriesFunction(Cache cache) {
-    this.cache = cache;
-  }
-
-  @SuppressWarnings("unchecked")
-  public void execute(FunctionContext context) {
-    RegionFunctionContext rfc = (RegionFunctionContext) context;
-    Set<String> keys = (Set<String>) rfc.getFilter();
-
-    // Get local (primary) data for the context
-    Region primaryDataSet = PartitionRegionHelper.getLocalDataForContext(rfc);
-
-    if (this.cache.getLogger().fineEnabled()) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("Function ")
-          .append(ID)
-          .append(" received request to touch ")
-          .append(primaryDataSet.getFullPath())
-          .append("->")
-          .append(keys);
-      this.cache.getLogger().fine(builder.toString());
-    }
-
-    // Retrieve each value to update the lastAccessedTime.
-    // Note: getAll is not supported on LocalDataSet.
-    for (String key : keys) {
-      primaryDataSet.get(key);
-    }
-
-    // Return result to get around NPE in LocalResultCollectorImpl
-    context.getResultSender().lastResult(true);
-  }
-
-  public String getId() {
-    return ID;
-  }
-
-  public boolean optimizeForWrite() {
-    return true;
-  }
-
-  public boolean isHA() {
-    return false;
-  }
-
-  public boolean hasResult() {
-    return true;
-  }
-
-  public void init(Properties properties) {
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchReplicatedRegionEntriesFunction.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchReplicatedRegionEntriesFunction.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchReplicatedRegionEntriesFunction.java
deleted file mode 100644
index 735c27f..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchReplicatedRegionEntriesFunction.java
+++ /dev/null
@@ -1,97 +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.util;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.execute.Function;
-import com.gemstone.gemfire.cache.execute.FunctionContext;
-
-import java.util.Properties;
-import java.util.Set;
-
-/**
- * Touches the keys contained in the set of keys by performing a get on the replicated region. This is a non-data-aware
- * function invoked using onMembers or onServers.
- *
- * @author Barry Oglesby
- */
-public class TouchReplicatedRegionEntriesFunction implements Function, Declarable {
-
-  private static final long serialVersionUID = -7424895036162243564L;
-
-  private final Cache cache;
-
-  public static final String ID = "touch-replicated-region-entries";
-
-  public TouchReplicatedRegionEntriesFunction() {
-    this(CacheFactory.getAnyInstance());
-  }
-
-  public TouchReplicatedRegionEntriesFunction(Cache cache) {
-    this.cache = cache;
-  }
-
-  public void execute(FunctionContext context) {
-    Object[] arguments = (Object[]) context.getArguments();
-    String regionName = (String) arguments[0];
-    Set<String> keys = (Set<String>) arguments[1];
-    if (this.cache.getLogger().fineEnabled()) {
-      StringBuilder builder = new StringBuilder();
-      builder.append("Function ")
-          .append(ID)
-          .append(" received request to touch ")
-          .append(regionName)
-          .append("->")
-          .append(keys);
-      this.cache.getLogger().fine(builder.toString());
-    }
-
-    // Retrieve the appropriate Region and value to update the lastAccessedTime
-    Region region = this.cache.getRegion(regionName);
-    if (region != null) {
-      region.getAll(keys);
-    }
-
-    // Return result to get around NPE in LocalResultCollectorImpl
-    context.getResultSender().lastResult(true);
-  }
-
-  public String getId() {
-    return ID;
-  }
-
-  public boolean optimizeForWrite() {
-    return false;
-  }
-
-  public boolean isHA() {
-    return false;
-  }
-
-  public boolean hasResult() {
-    // Setting this to false caused the onServers method to only execute the
-    // function on one server.
-    return true;
-  }
-
-  public void init(Properties properties) {
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/resources/modules-version.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/resources/modules-version.properties b/extensions/gemfire-modules/src/main/resources/modules-version.properties
deleted file mode 100644
index 7a73b41..0000000
--- a/extensions/gemfire-modules/src/main/resources/modules-version.properties
+++ /dev/null
@@ -1 +0,0 @@
-version = @VERSION@
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/Callback.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/Callback.java b/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/Callback.java
deleted file mode 100644
index 12e935d..0000000
--- a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/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;
-
-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 {
-
-  public void call(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/CommandServlet.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/CommandServlet.java b/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/CommandServlet.java
deleted file mode 100644
index 32ac7d8..0000000
--- a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/CommandServlet.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;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-/**
- *
- */
-public class CommandServlet extends HttpServlet {
-
-  private ServletContext context;
-
-  /**
-   * The standard servlet method overridden.
-   *
-   * @param request
-   * @param response
-   * @throws IOException
-   */
-  @Override
-  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
-
-    QueryCommand cmd = QueryCommand.UNKNOWN;
-    String param = request.getParameter("param");
-    String value = request.getParameter("value");
-    PrintWriter out = response.getWriter();
-
-    String cmdStr = request.getParameter("cmd");
-    if (cmdStr != null) {
-      cmd = QueryCommand.valueOf(cmdStr);
-    }
-
-    HttpSession session;
-
-    switch (cmd) {
-      case SET:
-        session = request.getSession();
-        session.setAttribute(param, value);
-        break;
-      case GET:
-        session = request.getSession();
-        String val = (String) session.getAttribute(param);
-        if (val != null) {
-          out.write(val);
-        }
-        break;
-      case INVALIDATE:
-        session = request.getSession();
-        session.invalidate();
-        break;
-      case CALLBACK:
-        Callback c = (Callback) context.getAttribute("callback");
-        c.call(request, response);
-        break;
-    }
-  }
-
-  /**
-   * Save a reference to the ServletContext for later use.
-   *
-   * @param config
-   */
-  @Override
-  public void init(ServletConfig config) {
-    this.context = config.getServletContext();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/EmbeddedTomcat.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/EmbeddedTomcat.java b/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/EmbeddedTomcat.java
deleted file mode 100644
index 53a305e..0000000
--- a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/EmbeddedTomcat.java
+++ /dev/null
@@ -1,193 +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;
-
-import com.gemstone.gemfire.modules.session.catalina.JvmRouteBinderValve;
-import org.apache.catalina.Context;
-import org.apache.catalina.Engine;
-import org.apache.catalina.Host;
-import org.apache.catalina.LifecycleException;
-import org.apache.catalina.Valve;
-import org.apache.catalina.connector.Connector;
-import org.apache.catalina.core.StandardEngine;
-import org.apache.catalina.core.StandardService;
-import org.apache.catalina.core.StandardWrapper;
-import org.apache.catalina.loader.WebappLoader;
-import org.apache.catalina.realm.MemoryRealm;
-import org.apache.catalina.startup.Embedded;
-import org.apache.catalina.valves.ValveBase;
-import org.apache.juli.logging.Log;
-import org.apache.juli.logging.LogFactory;
-
-import javax.servlet.ServletException;
-import java.io.File;
-import java.net.InetAddress;
-import java.net.MalformedURLException;
-
-/**
- *
- */
-public class EmbeddedTomcat {
-
-  private String contextPath = null;
-  private Embedded container = null;
-  private Log logger = LogFactory.getLog(getClass());
-
-  /**
-   * The directory to create the Tomcat server configuration under.
-   */
-  private String catalinaHome = "tomcat";
-
-  /**
-   * The port to run the Tomcat server on.
-   */
-  private int port = 8089;
-
-  /**
-   * The classes directory for the web application being run.
-   */
-  private String classesDir = "target/classes";
-
-  private Context rootContext = null;
-
-  private Engine engine;
-
-  /**
-   * The web resources directory for the web application being run.
-   */
-  private String webappDir = "";
-
-  public EmbeddedTomcat(String contextPath, int port, String jvmRoute) throws MalformedURLException {
-    this.contextPath = contextPath;
-    this.port = port;
-
-    // create server
-    container = new Embedded();
-    container.setCatalinaHome(catalinaHome);
-    // Not really necessasry, but let's still do it...
-    container.setRealm(new MemoryRealm());
-
-    // create webapp loader
-    WebappLoader loader = new WebappLoader(this.getClass().getClassLoader());
-    if (classesDir != null) {
-      loader.addRepository(new File(classesDir).toURI().toURL().toString());
-    }
-
-    rootContext = container.createContext("", webappDir);
-    rootContext.setLoader(loader);
-    rootContext.setReloadable(true);
-    // Otherwise we get NPE when instantiating servlets
-    rootContext.setIgnoreAnnotations(true);
-
-    // create host
-    Host localHost = container.createHost("127.0.0.1", new File("").getAbsolutePath());
-    localHost.addChild(rootContext);
-
-    localHost.setDeployOnStartup(true);
-
-    // create engine
-    engine = container.createEngine();
-    engine.setName("localEngine");
-    engine.addChild(localHost);
-    engine.setDefaultHost(localHost.getName());
-    engine.setJvmRoute(jvmRoute);
-    engine.setService(new StandardService());
-    container.addEngine(engine);
-
-    // create http connector
-    Connector httpConnector = container.createConnector((InetAddress) null, port, false);
-    container.addConnector(httpConnector);
-    container.setAwait(true);
-
-    // Create the JVMRoute valve for session failover
-    ValveBase valve = new JvmRouteBinderValve();
-    ((StandardEngine) engine).addValve(valve);
-  }
-
-  /**
-   * Starts the embedded Tomcat server.
-   */
-  public void startContainer() throws LifecycleException {
-    // start server
-    container.start();
-
-    // add shutdown hook to stop server
-    Runtime.getRuntime().addShutdownHook(new Thread() {
-      @Override
-      public void run() {
-        stopContainer();
-      }
-    });
-  }
-
-  /**
-   * Stops the embedded Tomcat server.
-   */
-  public void stopContainer() {
-    try {
-      if (container != null) {
-        container.stop();
-        logger.info("Stopped container");
-      }
-    } catch (LifecycleException exception) {
-      logger.warn("Cannot Stop Tomcat" + exception.getMessage());
-    }
-  }
-
-  public StandardWrapper addServlet(String path, String name, String clazz) throws ServletException {
-    StandardWrapper servlet = (StandardWrapper) rootContext.createWrapper();
-    servlet.setName(name);
-    servlet.setServletClass(clazz);
-    servlet.setLoadOnStartup(1);
-
-    rootContext.addChild(servlet);
-    rootContext.addServletMapping(path, name);
-
-    servlet.setParent(rootContext);
-//        servlet.load();
-
-    return servlet;
-  }
-
-  public Embedded getEmbedded() {
-    return container;
-  }
-
-  public Context getRootContext() {
-    return rootContext;
-  }
-
-  public String getPath() {
-    return contextPath;
-  }
-
-  public void setPath(String path) {
-    this.contextPath = path;
-  }
-
-  public int getPort() {
-    return port;
-  }
-
-  public void addValve(Valve valve) {
-    ((StandardEngine) engine).addValve(valve);
-  }
-
-  public void removeValve(Valve valve) {
-    ((StandardEngine) engine).removeValve(valve);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/QueryCommand.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/QueryCommand.java b/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/QueryCommand.java
deleted file mode 100644
index a891c5a..0000000
--- a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/QueryCommand.java
+++ /dev/null
@@ -1,34 +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;
-
-/**
- * Basic commands to pass to our test servlet
- */
-public enum QueryCommand {
-
-  SET,
-
-  GET,
-
-  INVALIDATE,
-
-  CALLBACK,
-
-  UNKNOWN;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/TestSessionsBase.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/TestSessionsBase.java b/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/TestSessionsBase.java
deleted file mode 100644
index 544658e..0000000
--- a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/TestSessionsBase.java
+++ /dev/null
@@ -1,493 +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;
-
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.internal.AvailablePortHelper;
-import com.gemstone.gemfire.modules.session.catalina.DeltaSessionManager;
-import com.gemstone.gemfire.modules.session.catalina.PeerToPeerCacheLifecycleListener;
-import com.meterware.httpunit.GetMethodWebRequest;
-import com.meterware.httpunit.WebConversation;
-import com.meterware.httpunit.WebRequest;
-import com.meterware.httpunit.WebResponse;
-import org.apache.catalina.core.StandardWrapper;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import java.beans.PropertyChangeEvent;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import static junit.framework.Assert.*;
-
-/**
- *
- */
-public abstract class TestSessionsBase {
-  private static EmbeddedTomcat server;
-
-  private static Region<String, HttpSession> region;
-
-  private static StandardWrapper servlet;
-
-  private static DeltaSessionManager sessionManager;
-
-  private static int port;
-
-  // Set up the servers we need
-  public static void setupServer(DeltaSessionManager manager) throws Exception {
-    port = AvailablePortHelper.getRandomAvailableTCPPort();
-    server = new EmbeddedTomcat("/test", port, "JVM-1");
-
-    PeerToPeerCacheLifecycleListener p2pListener = new PeerToPeerCacheLifecycleListener();
-    p2pListener.setProperty("mcast-port", "0");
-    p2pListener.setProperty("log-level", "config");
-    server.getEmbedded().addLifecycleListener(p2pListener);
-    sessionManager = manager;
-    sessionManager.setEnableCommitValve(true);
-    server.getRootContext().setManager(sessionManager);
-
-    servlet = server.addServlet("/test/*", "default", CommandServlet.class.getName());
-    server.startContainer();
-
-    /**
-     * Can only retrieve the region once the container has started up
-     * (and the cache has started too).
-     */
-    region = sessionManager.getSessionCache().getSessionRegion();
-  }
-
-  @AfterClass
-  public static void teardownClass() throws Exception {
-    server.stopContainer();
-  }
-
-  /**
-   * Reset some data
-   */
-  @Before
-  public void setup() throws Exception {
-    sessionManager.setMaxInactiveInterval(30);
-    region.clear();
-  }
-
-  /**
-   * Check that the basics are working
-   */
-  @Test
-  public void testSanity() throws Exception {
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-    req.setParameter("cmd", QueryCommand.GET.name());
-    req.setParameter("param", "null");
-    WebResponse response = wc.getResponse(req);
-
-    assertEquals("JSESSIONID", response.getNewCookieNames()[0]);
-  }
-
-  /**
-   * Test callback functionality. This is here really just as an example. Callbacks are useful to implement per test
-   * actions which can be defined within the actual test method instead of in a separate servlet class.
-   */
-  @Test
-  public void testCallback() throws Exception {
-    final String helloWorld = "Hello World";
-    Callback c = new Callback() {
-
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        PrintWriter out = response.getWriter();
-        out.write(helloWorld);
-      }
-    };
-    servlet.getServletContext().setAttribute("callback", c);
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    req.setParameter("cmd", QueryCommand.CALLBACK.name());
-    req.setParameter("param", "callback");
-    WebResponse response = wc.getResponse(req);
-
-    assertEquals(helloWorld, response.getText());
-  }
-
-  /**
-   * Test that calling session.isNew() works for the initial as well as subsequent requests.
-   */
-  @Test
-  public void testIsNew() throws Exception {
-    Callback c = new Callback() {
-
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        response.getWriter().write(Boolean.toString(session.isNew()));
-      }
-    };
-    servlet.getServletContext().setAttribute("callback", c);
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    req.setParameter("cmd", QueryCommand.CALLBACK.name());
-    req.setParameter("param", "callback");
-    WebResponse response = wc.getResponse(req);
-
-    assertEquals("true", response.getText());
-    response = wc.getResponse(req);
-
-    assertEquals("false", response.getText());
-  }
-
-  /**
-   * Check that our session persists. The values we pass in as query params are used to set attributes on the session.
-   */
-  @Test
-  public void testSessionPersists1() throws Exception {
-    String key = "value_testSessionPersists1";
-    String value = "Foo";
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-    req.setParameter("cmd", QueryCommand.SET.name());
-    req.setParameter("param", key);
-    req.setParameter("value", value);
-    WebResponse response = wc.getResponse(req);
-    String sessionId = response.getNewCookieValue("JSESSIONID");
-
-    assertNotNull("No apparent session cookie", sessionId);
-
-    // The request retains the cookie from the prior response...
-    req.setParameter("cmd", QueryCommand.GET.name());
-    req.setParameter("param", key);
-    req.removeParameter("value");
-    response = wc.getResponse(req);
-
-    assertEquals(value, response.getText());
-  }
-
-  /**
-   * Check that our session persists beyond the container restarting.
-   */
-//    public void testSessionPersists2() throws Exception {
-//        String key = "value_testSessionPersists2";
-//        String value = "Foo";
-//
-//        WebConversation wc = new WebConversation();
-//        WebRequest req = new GetMethodWebRequest("http://localhost:7890/test");
-//        req.setParameter("cmd", QueryCommand.SET.name());
-//        req.setParameter("param", key);
-//        req.setParameter("value", value);
-//        WebResponse response = wc.getResponse(req);
-//        String sessionId = response.getNewCookieValue("JSESSIONID");
-//
-//        assertNotNull("No apparent session cookie", sessionId);
-//
-//        // Restart the container
-//        AllTests.teardownClass();
-//        AllTests.setupClass();
-//
-//        // The request retains the cookie from the prior response...
-//        req.setParameter("cmd", QueryCommand.GET.name());
-//        req.setParameter("param", key);
-//        req.removeParameter("value");
-//        response = wc.getResponse(req);
-//
-//        assertEquals(value, response.getText());
-//    }
-
-  /**
-   * Test that invalidating a session makes it's attributes inaccessible.
-   */
-  @Test
-  public void testInvalidate() throws Exception {
-    String key = "value_testInvalidate";
-    String value = "Foo";
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Set an attribute
-    req.setParameter("cmd", QueryCommand.SET.name());
-    req.setParameter("param", key);
-    req.setParameter("value", value);
-    WebResponse response = wc.getResponse(req);
-
-    // Invalidate the session
-    req.removeParameter("param");
-    req.removeParameter("value");
-    req.setParameter("cmd", QueryCommand.INVALIDATE.name());
-    wc.getResponse(req);
-
-    // The attribute should not be accessible now...
-    req.setParameter("cmd", QueryCommand.GET.name());
-    req.setParameter("param", key);
-    response = wc.getResponse(req);
-
-    assertEquals("", response.getText());
-  }
-
-  /**
-   * Test setting the session expiration
-   */
-  @Test
-  public void testSessionExpiration1() throws Exception {
-    // TestSessions only live for a second
-    sessionManager.setMaxInactiveInterval(1);
-
-    String key = "value_testSessionExpiration1";
-    String value = "Foo";
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Set an attribute
-    req.setParameter("cmd", QueryCommand.SET.name());
-    req.setParameter("param", key);
-    req.setParameter("value", value);
-    WebResponse response = wc.getResponse(req);
-
-    // Sleep a while
-    Thread.sleep(2000);
-
-    // The attribute should not be accessible now...
-    req.setParameter("cmd", QueryCommand.GET.name());
-    req.setParameter("param", key);
-    response = wc.getResponse(req);
-
-    assertEquals("", response.getText());
-  }
-
-  /**
-   * Test setting the session expiration via a property change as would happen under normal deployment conditions.
-   */
-  @Test
-  public void testSessionExpiration2() throws Exception {
-    // TestSessions only live for a minute
-    sessionManager.propertyChange(
-        new PropertyChangeEvent(server.getRootContext(), "sessionTimeout", new Integer(30), new Integer(1)));
-
-    // Check that the value has been set to 60 seconds
-    assertEquals(60, sessionManager.getMaxInactiveInterval());
-  }
-
-  /**
-   * Test that removing a session attribute also removes it from the region
-   */
-  @Test
-  public void testRemoveAttribute() throws Exception {
-    String key = "value_testRemoveAttribute";
-    String value = "Foo";
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Set an attribute
-    req.setParameter("cmd", QueryCommand.SET.name());
-    req.setParameter("param", key);
-    req.setParameter("value", value);
-    WebResponse response = wc.getResponse(req);
-    String sessionId = response.getNewCookieValue("JSESSIONID");
-
-    // Implicitly remove the attribute
-    req.removeParameter("value");
-    wc.getResponse(req);
-
-    // The attribute should not be accessible now...
-    req.setParameter("cmd", QueryCommand.GET.name());
-    req.setParameter("param", key);
-    response = wc.getResponse(req);
-
-    assertEquals("", response.getText());
-    assertNull(region.get(sessionId).getAttribute(key));
-  }
-
-  /**
-   * Test that a session attribute gets set into the region too.
-   */
-  @Test
-  public void testBasicRegion() throws Exception {
-    String key = "value_testBasicRegion";
-    String value = "Foo";
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Set an attribute
-    req.setParameter("cmd", QueryCommand.SET.name());
-    req.setParameter("param", key);
-    req.setParameter("value", value);
-    WebResponse response = wc.getResponse(req);
-    String sessionId = response.getNewCookieValue("JSESSIONID");
-
-    assertEquals(value, region.get(sessionId).getAttribute(key));
-  }
-
-  /**
-   * Test that a session attribute gets removed from the region when the session is invalidated.
-   */
-  @Test
-  public void testRegionInvalidate() throws Exception {
-    String key = "value_testRegionInvalidate";
-    String value = "Foo";
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Set an attribute
-    req.setParameter("cmd", QueryCommand.SET.name());
-    req.setParameter("param", key);
-    req.setParameter("value", value);
-    WebResponse response = wc.getResponse(req);
-    String sessionId = response.getNewCookieValue("JSESSIONID");
-
-    // Invalidate the session
-    req.removeParameter("param");
-    req.removeParameter("value");
-    req.setParameter("cmd", QueryCommand.INVALIDATE.name());
-    wc.getResponse(req);
-
-    assertNull("The region should not have an entry for this session", region.get(sessionId));
-  }
-
-  /**
-   * Test that multiple attribute updates, within the same request result in only the latest one being effective.
-   */
-  @Test
-  public void testMultipleAttributeUpdates() throws Exception {
-    final String key = "value_testMultipleAttributeUpdates";
-    Callback c = new Callback() {
-
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        for (int i = 0; i < 1000; i++) {
-          session.setAttribute(key, Integer.toString(i));
-        }
-      }
-    };
-    servlet.getServletContext().setAttribute("callback", c);
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Execute the callback
-    req.setParameter("cmd", QueryCommand.CALLBACK.name());
-    req.setParameter("param", "callback");
-    WebResponse response = wc.getResponse(req);
-
-    String sessionId = response.getNewCookieValue("JSESSIONID");
-
-    assertEquals("999", region.get(sessionId).getAttribute(key));
-  }
-
-  /*
-   * Test for issue #38 CommitSessionValve throws exception on invalidated sessions
-   */
-  @Test
-  public void testCommitSessionValveInvalidSession() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        session.invalidate();
-        response.getWriter().write("done");
-      }
-    };
-    servlet.getServletContext().setAttribute("callback", c);
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Execute the callback
-    req.setParameter("cmd", QueryCommand.CALLBACK.name());
-    req.setParameter("param", "callback");
-    WebResponse response = wc.getResponse(req);
-
-    assertEquals("done", response.getText());
-  }
-
-  /**
-   * Test for issue #45 Sessions are being created for every request
-   */
-  @Test
-  public void testExtraSessionsNotCreated() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        // Do nothing with sessions
-        response.getWriter().write("done");
-      }
-    };
-    servlet.getServletContext().setAttribute("callback", c);
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Execute the callback
-    req.setParameter("cmd", QueryCommand.CALLBACK.name());
-    req.setParameter("param", "callback");
-    WebResponse response = wc.getResponse(req);
-
-    assertEquals("done", response.getText());
-    assertEquals("The region should be empty", 0, region.size());
-  }
-
-  /**
-   * Test for issue #46 lastAccessedTime is not updated at the start of the request, but only at the end.
-   */
-  @Test
-  public void testLastAccessedTime() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        // Hack to expose the session to our test context
-        session.getServletContext().setAttribute("session", session);
-        session.setAttribute("lastAccessTime", session.getLastAccessedTime());
-        try {
-          Thread.sleep(100);
-        } catch (InterruptedException ex) {
-        }
-        session.setAttribute("somethingElse", 1);
-        request.getSession();
-        response.getWriter().write("done");
-      }
-    };
-    servlet.getServletContext().setAttribute("callback", c);
-
-    WebConversation wc = new WebConversation();
-    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
-
-    // Execute the callback
-    req.setParameter("cmd", QueryCommand.CALLBACK.name());
-    req.setParameter("param", "callback");
-    WebResponse response = wc.getResponse(req);
-
-    HttpSession session = (HttpSession) servlet.getServletContext().getAttribute("session");
-    Long lastAccess = (Long) session.getAttribute("lastAccessTime");
-
-    assertTrue(
-        "Last access time not set correctly: " + lastAccess.longValue() + " not <= " + session.getLastAccessedTime(),
-        lastAccess.longValue() <= session.getLastAccessedTime());
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/Tomcat6SessionsJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/Tomcat6SessionsJUnitTest.java b/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/Tomcat6SessionsJUnitTest.java
deleted file mode 100644
index 0ce73ae..0000000
--- a/extensions/gemfire-modules/src/test/java/com/gemstone/gemfire/modules/session/Tomcat6SessionsJUnitTest.java
+++ /dev/null
@@ -1,35 +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;
-
-import com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager;
-import com.gemstone.gemfire.test.junit.categories.UnitTest;
-import org.junit.BeforeClass;
-import org.junit.experimental.categories.Category;
-
-/**
- * @author Jens Deppe
- */
-@Category(UnitTest.class)
-public class Tomcat6SessionsJUnitTest extends TestSessionsBase {
-
-  // Set up the session manager we need
-  @BeforeClass
-  public static void setupClass() throws Exception {
-    setupServer(new Tomcat6DeltaSessionManager());
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml b/extensions/gemfire-modules/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
deleted file mode 100644
index 17faf29..0000000
--- a/extensions/gemfire-modules/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE hibernate-mapping PUBLIC
-        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
-<hibernate-mapping package="com.gemstone.gemfire.modules">
-	<class name="Event" table="EVENTS">
-		<cache usage="read-write"/>
-		<id name="id" column="EVENT_ID">
-			<generator class="native"/>
-		</id>
-		<version name="version"/>
-		<property name="date" type="timestamp" column="EVENT_DATE"/>
-        <property name="title"/>
-	</class>
-</hibernate-mapping>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml b/extensions/gemfire-modules/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
deleted file mode 100644
index c6380e7..0000000
--- a/extensions/gemfire-modules/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE hibernate-mapping PUBLIC
-        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
-        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-
-<hibernate-mapping package="com.gemstone.gemfire.modules">
-    <class name="Person" table="PERSON">
-        <cache usage="read-write"/>
-        <id name="id" column="PERSON_ID">
-            <generator class="native"/>
-        </id>
-        <property name="age"/>
-        <property name="firstname"/>
-        <property name="lastname"/>
-        <set name="e" table="PERSON_EVENT">
-          <cache usage="read-write"/>
-          <key column="PERSON_ID"/>
-          <many-to-many column="EVENT_ID" class="Event"/>
-        </set>
-    </class>
-</hibernate-mapping>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/resources/log4j.properties b/extensions/gemfire-modules/src/test/resources/log4j.properties
deleted file mode 100644
index c136990..0000000
--- a/extensions/gemfire-modules/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
-# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
-#log4j.rootLogger=DEBUG, stdout, logfile
-log4j.rootLogger=DEBUG, stdout
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
-
-#log4j.appender.logfile=org.apache.log4j.RollingFileAppender
-#log4j.appender.logfile.MaxFileSize=512KB
-## Keep three backup files.
-#log4j.appender.logfile.MaxBackupIndex=3
-## Pattern to output: date priority [category] - message
-#log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
-#log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/resources/tomcat/conf/tomcat-users.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/resources/tomcat/conf/tomcat-users.xml b/extensions/gemfire-modules/src/test/resources/tomcat/conf/tomcat-users.xml
deleted file mode 100644
index 6c9f217..0000000
--- a/extensions/gemfire-modules/src/test/resources/tomcat/conf/tomcat-users.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<tomcat-users>
-</tomcat-users>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/resources/tomcat/logs/.gitkeep
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/resources/tomcat/logs/.gitkeep b/extensions/gemfire-modules/src/test/resources/tomcat/logs/.gitkeep
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/test/resources/tomcat/temp/.gitkeep
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/test/resources/tomcat/temp/.gitkeep b/extensions/gemfire-modules/src/test/resources/tomcat/temp/.gitkeep
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/build.gradle b/extensions/geode-modules-assembly/build.gradle
new file mode 100644
index 0000000..381375b
--- /dev/null
+++ b/extensions/geode-modules-assembly/build.gradle
@@ -0,0 +1,247 @@
+/*
+ * 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.
+ */
+
+import org.apache.tools.ant.filters.ReplaceTokens
+
+configurations {
+  slf4jDeps
+  servletApiDeps
+  moduleDistOutputs
+}
+
+dependencies {
+  slf4jDeps 'org.slf4j:slf4j-api:' + project.'slf4j-api.version'
+  slf4jDeps 'org.slf4j:slf4j-jdk14:' + project.'slf4j-api.version'
+
+  servletApiDeps 'javax.servlet:servlet-api:2.5'
+}
+
+jar.enabled = false
+extraArchive {
+  sources = false
+  javadoc = false
+  tests = false
+}
+
+disableMavenPublishing()
+
+def getJarArtifact(module) {
+  project(module).configurations.archives.artifacts.findAll {
+    it instanceof PublishArtifact && it.classifier == '' && it.type == 'jar'
+  }.collect { it.file }
+}
+
+def configureTcServerAssembly = {
+  archiveName = "Apache_Geode_Modules-${version}-tcServer.zip"
+
+  // All client-server files
+  into('geode-cs/lib') {
+    from getJarArtifact(':extensions/geode-modules')
+    from getJarArtifact(':extensions/geode-modules-tomcat7')
+    from configurations.slf4jDeps
+  }
+  into('geode-cs/bin') {
+    from('release/scripts') {
+      include '*'
+    }
+    from('release/tcserver/geode-cs') {
+      include 'modules.env'
+    }
+    filter(ReplaceTokens, tokens:['GEMFIRE_MODULES_VERSION': version])
+  }
+  into('geode-cs/conf') {
+    from('release/conf') {
+      exclude 'cache-peer.xml'
+    }
+    from('release/tcserver/geode-cs') {
+      include 'context-fragment.xml'
+      include 'server-fragment.xml'
+    }
+  }
+  into('geode-cs') {
+    from('release/tcserver/geode-cs') {
+      include 'configuration-prompts.properties'
+      include 'README.txt'
+      filter(ReplaceTokens, tokens:['VERSION': version])
+    }
+  }
+
+  // Tomncat 7 specifics
+  into('geode-cs-tomcat-7/conf') {
+    from('release/tcserver/geode-cs-tomcat-7') {
+      include 'context-fragment.xml'
+    }
+  }
+  into('geode-cs-tomcat-7/bin') {
+    from('release/tcserver/geode-cs-tomcat-7') {
+      include 'modules.env'
+    }
+  }
+  // All peer-to-peer files
+  into('geode-p2p/lib') {
+    from getJarArtifact(':extensions/geode-modules')
+    from getJarArtifact(':extensions/geode-modules-tomcat7')
+    from configurations.slf4jDeps
+    from('release/3rdparty_license') {
+      include "open_source_licenses*${version}.txt"
+    }
+  }
+  into('geode-p2p/bin') {
+    from('release/scripts') {
+      include 'gemfire.*'
+      include 'setenv.properties'
+    }
+    from('release/tcserver/geode-p2p') {
+      include 'modules.env'
+    }
+  }
+  into('geode-p2p/conf') {
+    from('release/conf') {
+      include 'cache-peer.xml'
+    }
+    from('release/tcserver/geode-p2p') {
+      include 'context-fragment.xml'
+      include 'server-fragment.xml'
+    }
+  }
+  into('geode-p2p') {
+    from('release/tcserver/geode-p2p') {
+      include 'configuration-prompts.properties'
+      include 'README.txt'
+      filter(ReplaceTokens, tokens:['VERSION': version])
+    }
+  }
+
+  // Tomncat 7 specifics
+  into('geode-p2p-tomcat-7/conf') {
+    from('release/tcserver/geode-p2p-tomcat-7') {
+      include 'context-fragment.xml'
+    }
+  }
+  into('geode-p2p-tomcat-7/bin') {
+    from('release/tcserver/geode-p2p-tomcat-7') {
+      include 'modules.env'
+    }
+  }
+}
+
+def configureTcServer30Assembly = {
+  archiveName = "Apache_Geode_Modules-${version}-tcServer30.zip"
+
+  into('geode-cs-tomcat-8/bin') {
+    from('release/tcserver/geode-cs-tomcat-8') {
+      include 'modules.env'
+    }
+  }
+  into('geode-cs-tomcat-8/conf') {
+    from('release/tcserver/geode-cs-tomcat-8') {
+      include 'context-fragment.xml'
+    }
+  }
+
+  into('geode-p2p-tomcat-8/bin') {
+    from('release/tcserver/geode-p2p-tomcat-8') {
+      include 'modules.env'
+    }
+  }
+  into('geode-p2p-tomcat-8/conf') {
+    from('release/tcserver/geode-p2p-tomcat-8') {
+      include 'context-fragment.xml'
+    }
+  }
+}
+
+task distTomcat(type: Zip, dependsOn: ':extensions/geode-modules:build') {
+  archiveName = "Apache_Geode_Modules-${version}-Tomcat.zip"
+
+  // All client-server files
+  into('lib') {
+    from getJarArtifact(':extensions/geode-modules')
+    from getJarArtifact(':extensions/geode-modules-tomcat7')
+    from configurations.slf4jDeps
+  }
+  into('bin') {
+    from('release/scripts') {
+      include '*'
+      exclude 'setenv.properties'
+    }
+  }
+  into('conf') {
+    from('release/conf') {
+      include '*'
+    }
+  }
+}
+
+task distHibernate(type: Zip, dependsOn: ':extensions/geode-modules-hibernate:build') {
+  archiveName = "Apache_Geode_Modules-${version}-Hibernate.zip"
+
+  into('lib') {
+    from getJarArtifact(':extensions/geode-modules')
+    from getJarArtifact(':extensions/geode-modules-hibernate')
+  }
+}
+
+task distAppServer(type: Zip, dependsOn: ':extensions/geode-modules-session:build') {
+  archiveName = "Apache_Geode_Modules-${version}-AppServer.zip"
+
+  into('lib') {
+    from getJarArtifact(':extensions/geode-modules')
+    from getJarArtifact(':extensions/geode-modules-session')
+    from configurations.slf4jDeps
+    from configurations.servletApiDeps
+  }
+
+  into('bin') {
+    from('release/session/bin/') {
+      include 'setenv.properties'
+      include 'modify_war'
+      include 'cacheserver.*'
+      include 'gemfire.*'
+
+      filter(ReplaceTokens, tokens:['GEMFIRE_MODULES_VERSION': version])
+      filter(ReplaceTokens, tokens:['SLF4J_VERSION': project.'slf4j-api.version'])
+      filter(ReplaceTokens, tokens:['SERVLET_API_VERSION': project.'javax.servlet-api.version'])
+      filter(ReplaceTokens, tokens:['GEMFIRE_VERSION': version])
+    }
+  }
+
+  into('conf') {
+    from('release/conf')
+  }
+}
+
+task distTcServer(type: Zip, dependsOn: [':extensions/geode-modules:build', ':extensions/geode-modules-tomcat7:build']) {
+  configure(configureTcServerAssembly)
+}
+
+task distTcServer30(type: Zip, dependsOn: [':extensions/geode-modules:build', ':extensions/geode-modules-tomcat7:build']) {
+  configure(configureTcServerAssembly)
+  configure(configureTcServer30Assembly)
+}
+
+dependencies {
+  moduleDistOutputs distTcServer.outputs.files
+  moduleDistOutputs distTcServer30.outputs.files
+  moduleDistOutputs distHibernate.outputs.files
+  moduleDistOutputs distAppServer.outputs.files
+  moduleDistOutputs distTomcat.outputs.files
+}
+
+task dist(type: Task, dependsOn: ['distTcServer', 'distTcServer30', 'distTomcat', 'distHibernate', 'distAppServer'])
+
+build.dependsOn dist

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/conf/cache-client.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/conf/cache-client.xml b/extensions/geode-modules-assembly/release/conf/cache-client.xml
new file mode 100755
index 0000000..3ae9ba7
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/conf/cache-client.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	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.
+-->
+<client-cache
+    xmlns="http://schema.pivotal.io/gemfire/cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache http://schema.pivotal.io/gemfire/cache/cache-9.0.xsd"
+    version="9.0">
+
+  <!-- The default pool connects to a cache server running on  localhost at
+       port 40404. To connect to a different server host and port, modify
+       the following pool server host and port. -->
+  <pool name="sessions" subscription-enabled="true">
+    <server host="localhost" port="40404"/>
+  </pool>
+
+  <!-- To configure the client to use a locator instead of a server, replace
+       the server pool above with the locator pool below and modify the locator
+       host and port as necessary. -->
+  <!--
+  <pool name="sessions" subscription-enabled="true">
+    <locator host="localhost" port="10334"/>
+  </pool>
+  -->
+  
+</client-cache>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/conf/cache-peer.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/conf/cache-peer.xml b/extensions/geode-modules-assembly/release/conf/cache-peer.xml
new file mode 100755
index 0000000..1f62cb1
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/conf/cache-peer.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	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.
+-->
+<cache
+    xmlns="http://schema.pivotal.io/gemfire/cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache http://schema.pivotal.io/gemfire/cache/cache-9.0.xsd"
+    version="9.0">
+
+  <!-- Uncomment the following disk-store element to modify the default disk store directory -->
+  <!--
+  <disk-store name="DEFAULT">
+    <disk-dirs>
+      <disk-dir>/path/to/persistent/data</disk-dir>
+    </disk-dirs>
+  </disk-store>
+  -->
+
+  <!-- This is the definition of the default session region -->
+  <!--
+  <region name="gemfire_modules_sessions">
+    <region-attributes scope="distributed-ack" enable-gateway="false" data-policy="replicate" statistics-enabled="true">
+      <entry-idle-time>
+        <expiration-attributes timeout="0" action="invalidate">
+          <custom-expiry>
+            <class-name>com.gemstone.gemfire.modules.util.SessionCustomExpiry</class-name>
+          </custom-expiry>
+        </expiration-attributes>
+      </entry-idle-time>
+    </region-attributes>
+  </region>
+  -->
+  
+</cache>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/conf/cache-server.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/conf/cache-server.xml b/extensions/geode-modules-assembly/release/conf/cache-server.xml
new file mode 100755
index 0000000..b9d8c2c
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/conf/cache-server.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	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.
+-->
+<cache
+    xmlns="http://schema.pivotal.io/gemfire/cache"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache http://schema.pivotal.io/gemfire/cache/cache-9.0.xsd"
+    version="9.0">
+
+  <!-- Uncomment the following gateway-hub element to create a gateway hub -->
+  <!--
+  <gateway-hub id="NY" port="11110">
+    <gateway id="LN">
+      <gateway-endpoint id="LN-1" host="localhost" port="22220"/>
+      <gateway-queue disk-store-name="NY_GATEWAY"/>
+    </gateway>
+  </gateway-hub>
+  -->
+
+  <!-- Uncomment the following cache-server element to modify the listen port -->
+  <!--
+  <cache-server port="44444"/>
+  -->
+
+  <!-- Uncomment the following disk-store element to modify the default disk store directory -->
+  <!--
+  <disk-store name="DEFAULT">
+    <disk-dirs>
+      <disk-dir>/path/to/persistent/data</disk-dir>
+    </disk-dirs>
+  </disk-store>
+  -->
+  
+  <!-- Uncomment the following disk-store element to create the NY_GATEWAY disk store
+       (for the gateway-hub element defined above) -->
+  <!--
+  <disk-store name="NY_GATEWAY">
+    <disk-dirs>
+      <disk-dir>/path/to/persistent/data</disk-dir>
+    </disk-dirs>
+  </disk-store>
+  -->
+  
+  <!-- This is the definition of the default session region -->
+  <!--
+  <region name="gemfire_modules_sessions">
+    <region-attributes enable-gateway="false" data-policy="partition" statistics-enabled="true">
+      <entry-idle-time>
+        <expiration-attributes timeout="0" action="invalidate">
+          <custom-expiry>
+            <class-name>com.gemstone.gemfire.modules.util.SessionCustomExpiry</class-name>
+          </custom-expiry>
+        </expiration-attributes>
+      </entry-idle-time>
+      <partition-attributes redundant-copies="1" total-num-buckets="113"/>
+    </region-attributes>
+  </region>
+  -->
+
+</cache>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/scripts/cacheserver.bat
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/scripts/cacheserver.bat b/extensions/geode-modules-assembly/release/scripts/cacheserver.bat
new file mode 100755
index 0000000..ef7f99f
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/scripts/cacheserver.bat
@@ -0,0 +1,133 @@
+@echo off
+rem
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem      http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+rem
+
+setlocal
+setlocal enableextensions
+setlocal enabledelayedexpansion
+set scriptdir=%~dp0
+set gf=%scriptdir:\bin\=%
+if exist "%gf%\lib\gemfire.jar" @goto gfok
+echo Could not determine GEMFIRE location
+rem verify other 2>nul
+goto done
+:gfok
+
+if exist "%gf%\bin\modules.env" (
+  FOR /F "tokens=*" %%i in ('type %gf%\bin\modules.env') do SET %%i
+)
+
+rem Check for the -d argument
+set /a FOUND_ARG=0
+set TC_INSTALL_DIR=
+FOR %%A IN (%*) DO (
+  if !FOUND_ARG! == 1 (
+    set /a FOUND_ARG-=1
+    set TC_INSTALL_DIR=%%~fA
+  )
+  if %%A == -d (
+    set /a FOUND_ARG+=1
+  )
+)
+
+rem Pull out the unused args for the java class
+set CLASS_ARGS=
+:loop
+IF "%1"=="" GOTO ENDLOOP
+  if "%1" == "-d" (
+    shift
+    shift
+  ) else ( 
+    set "CLASS_ARGS=!CLASS_ARGS! %1" 
+    shift
+  )
+GOTO loop
+
+:ENDLOOP
+
+IF NOT "%TC_INSTALL_DIR%" == "" goto SET_TOMCAT_DIR
+FOR /f %%f in ('forfiles /P %gf%\.. /m tomcat-%TOMCAT_MAJOR_VER%* /c "cmd /c echo @path"') do set TOMCAT_DIR=%%f
+REM Strip the surrounding quotes
+set TOMCAT_DIR=%TOMCAT_DIR:"=%
+goto TEST_TOMCAT_DIR
+
+:SET_TOMCAT_DIR
+set /p TOMCAT_VER=<"%gf%\conf\tomcat.version"
+set TOMCAT_DIR="!TC_INSTALL_DIR!\tomcat-!TOMCAT_VER!"
+
+:TEST_TOMCAT_DIR
+if not exist "!TOMCAT_DIR!\lib\catalina.jar" goto TOMCAT_NOT_FOUND
+goto FIND_MOD_JAR
+
+:FIND_MOD_JAR
+FOR %%f in (!gf!\lib\geode-modules-?.*.jar) do set MOD_JAR=%%f
+IF NOT "%MOD_JAR%" == "" goto FIND_LOG_API
+rem This is the default modules jar
+set MOD_JAR="!gf!\lib\geode-modules.jar"
+
+:FIND_LOG_API
+FOR %%f in (!gf!\lib\log4j-api*.jar) do set LOG_API_JAR=%%f
+IF NOT "%LOG_API_JAR%" == "" goto FIND_LOG_CORE
+echo ERROR: Log4J API jar not found.
+goto LIBS_NOT_FOUND
+
+:FIND_LOG_CORE
+FOR %%f in (!gf!\lib\log4j-core*.jar) do set LOG_CORE_JAR=%%f
+IF NOT "%LOG_CORE_JAR%" == "" goto MAIN_PROCESSING
+echo ERROR: Log4J Core jar not found.
+goto LIBS_NOT_FOUND
+
+
+:LIBS_NOT_FOUND
+echo ERROR: The required libraries could not be located. 
+echo Try using the -d ^<tc Server installation directory^> option or make sure it was installed correctly.
+echo Example: cacheserver.bat start -d "c:\Program Files\Pivotal\tcServer\pivotal-tc-server-standard"
+exit /b 1
+
+:TOMCAT_NOT_FOUND
+echo ERROR: The TOMCAT libraries could not be located. 
+echo Try using the -d ^<tc Server installation directory^> option or make sure it was installed correctly.
+echo Example: cacheserver.bat start -d "c:\Program Files\Pivotal\tcServer\pivotal-tc-server-standard"
+exit /b 1
+
+:MAIN_PROCESSING
+REM Initialize classpath
+
+REM Add GemFire classes
+set GEMFIRE_JARS=%MOD_JAR%;%LOG_API_JAR%;%LOG_CORE_JAR%;%gf%/lib/gemfire.jar;%gf%/lib/antlr.jar;%gf%/lib/mail.jar
+
+REM Add Tomcat classes
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%TOMCAT_DIR%/lib/servlet-api.jar;%TOMCAT_DIR%/lib/catalina.jar;%gf%/lib/geode-modules.jar;%TOMCAT_DIR%/bin/tomcat-juli.jar;%TOMCAT_DIR%/lib/tomcat-util.jar
+
+REM Add conf directory
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%/conf
+
+
+if defined CLASSPATH set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
+
+if not defined GF_JAVA (
+  REM %GF_JAVA% is not defined, assume it is on the PATH
+  set GF_JAVA=java
+)
+
+"%GF_JAVA%" %JAVA_ARGS% -classpath "%GEMFIRE_JARS%" com.gemstone.gemfire.internal.cache.CacheServerLauncher !CLASS_ARGS!
+:done
+set scriptdir=
+set gf=
+set GEMFIRE_JARS=
+
+endlocal

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/scripts/cacheserver.sh
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/scripts/cacheserver.sh b/extensions/geode-modules-assembly/release/scripts/cacheserver.sh
new file mode 100755
index 0000000..28edc35
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/scripts/cacheserver.sh
@@ -0,0 +1,97 @@
+#!/usr/bin/env bash
+# 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.
+#
+
+# Set GEMFIRE to the product toplevel directory
+GEMFIRE=`dirname $0`
+OLDPWD=$PWD
+cd $GEMFIRE
+GEMFIRE=`dirname $PWD`
+cd $OLDPWD
+
+TOMCAT_VER=`cat "${GEMFIRE}/conf/tomcat.version"`
+
+if [ -f $GEMFIRE/bin/modules.env ]; then
+  # Pull in TOMCAT_MAJOR_VER
+  . $GEMFIRE/bin/modules.env
+fi
+
+# Pull out the installation directory arguments passed in
+ARGS=( "$@" )
+ARGS_LENGTH=${#ARGS[@]}
+CLASS_ARGS=()
+for (( i=0; i<$ARGS_LENGTH; i++ ));
+do
+	if [ "${ARGS[$i]}" == "-d" ]; then
+		i=$(($i+1))
+	else 
+		CLASS_ARGS="${CLASS_ARGS} ${ARGS[$i]}"
+	fi
+done
+# End pulling out arguments
+
+# See if the user specified the tomcat installation directory location
+while [ $# -gt 0 ]; do
+  case $1 in
+    -d )
+      TC_INSTALL_DIR="$2"
+      break
+      ;;
+  esac
+  shift
+done
+
+
+if [[ -n $TC_INSTALL_DIR && -d $TC_INSTALL_DIR ]]; then
+  TOMCAT_DIR="$TC_INSTALL_DIR/tomcat-${TOMCAT_VER}"
+else
+  TOMCAT_DIR=`ls -d "${GEMFIRE}"/../tomcat-${TOMCAT_MAJOR_VER}* 2> /dev/null`
+fi
+
+if [[ -z "$TOMCAT_DIR" || ! -f "$TOMCAT_DIR/lib/catalina.jar" ]]; then
+  echo "ERROR: Could not determine TOMCAT library location."
+  echo "       Use the -d <tc Server installation directory> option."
+  echo "       Example: ./cacheserver.sh start -d /opt/pivotal/tcserver/pivotal-tc-server-standard"
+  exit 1
+fi
+
+if [ "x$WINDIR" != "x" ]; then
+  echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
+  exit 1
+fi
+
+GEMFIRE_DEP_JAR=$GEMFIRE/lib/geode-dependencies.jar
+if [ ! -f "$GEMFIRE_DEP_JAR" ]; then
+  echo "ERROR: Could not determine GEMFIRE location."
+  exit 1
+fi
+
+MOD_JAR=`ls $GEMFIRE/lib/geode-modules-?.*.jar` 2>/dev/null
+if [ -z "$MOD_JAR" ]; then
+  MOD_JAR=$GEMFIRE/lib/geode-modules.jar
+fi
+
+# Add Tomcat classes
+GEMFIRE_JARS=$GEMFIRE_DEP_JAR:$MOD_JAR:$TOMCAT_DIR/lib/servlet-api.jar:$TOMCAT_DIR/lib/catalina.jar:$TOMCAT_DIR/lib/tomcat-util.jar:$TOMCAT_DIR/bin/tomcat-juli.jar
+
+# Add configuration
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/conf
+
+if [ "x$CLASSPATH" != "x" ]; then
+  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
+fi
+
+${GF_JAVA:-java} ${JAVA_ARGS} -classpath ${GEMFIRE_JARS} com.gemstone.gemfire.internal.cache.CacheServerLauncher ${CLASS_ARGS}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/scripts/gemfire.bat
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/scripts/gemfire.bat b/extensions/geode-modules-assembly/release/scripts/gemfire.bat
new file mode 100755
index 0000000..6102b88
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/scripts/gemfire.bat
@@ -0,0 +1,41 @@
+@echo off
+rem
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem      http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+rem
+
+@setlocal enableextensions
+@set scriptdir=%~dp0
+@set gf=%scriptdir:\bin\=%
+@if exist "%gf%\lib\gemfire.jar" @goto gfok
+@echo Could not determine GEMFIRE location
+@verify other 2>nul
+@goto done
+:gfok
+
+@set GEMFIRE_JARS=%gf%/lib/gemfire.jar;%gf%/lib/antlr.jar;%gf%/lib/mail.jar
+@if defined CLASSPATH set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
+
+@if not defined GF_JAVA (
+@REM %GF_JAVA% is not defined, assume it is on the PATH
+@set GF_JAVA=java
+)
+
+@"%GF_JAVA%" %JAVA_ARGS% -classpath "%GEMFIRE_JARS%" com.gemstone.gemfire.internal.SystemAdmin %*
+:done
+@set scriptdir=
+@set gf=
+@set GEMFIRE_JARS=
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/scripts/gemfire.sh
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/scripts/gemfire.sh b/extensions/geode-modules-assembly/release/scripts/gemfire.sh
new file mode 100755
index 0000000..12956cc
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/scripts/gemfire.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+# 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.
+#
+
+# Set GEMFIRE to the product toplevel directory
+GEMFIRE=`dirname $0`
+OLDPWD=$PWD
+cd $GEMFIRE
+GEMFIRE=`dirname $PWD`
+cd $OLDPWD
+
+if [ "x$WINDIR" != "x" ]; then
+  echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
+  exit 1
+fi
+
+GEMFIRE_DEP_JAR=$GEMFIRE/lib/geode-dependencies.jar
+if [ ! -f "$GEMFIRE_DEP_JAR" ]; then
+  echo "ERROR: Could not determine GEMFIRE location."
+  exit 1
+fi
+
+GEMFIRE_JARS=$GEMFIRE_DEP_JAR
+
+if [ "x$CLASSPATH" != "x" ]; then
+  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
+fi
+
+# Command line args that start with -J will be passed to the java vm in JARGS.
+# See java --help for a listing of valid vm args.
+# Example: -J-Xmx1g sets the max heap size to 1 gigabyte.
+
+JARGS=
+GEMFIRE_ARGS=
+for i in "$@"
+do
+  if [ "-J" == "${i:0:2}" ]
+  then
+    JARGS="${JARGS} \"${i#-J}\""
+  else
+    GEMFIRE_ARGS="${GEMFIRE_ARGS} \"${i}\""
+  fi
+done
+
+eval ${GF_JAVA:-java} ${JAVA_ARGS} ${JARGS} -classpath ${GEMFIRE_JARS} com.gemstone.gemfire.internal.SystemAdmin ${GEMFIRE_ARGS}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/scripts/setenv.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/scripts/setenv.properties b/extensions/geode-modules-assembly/release/scripts/setenv.properties
new file mode 100644
index 0000000..fc8918b
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/scripts/setenv.properties
@@ -0,0 +1,6 @@
+java.opt.1=-Xms${initial.vm.heap.size.mb:512}M
+java.opt.2=-Xmx${maximum.vm.heap.size.mb:512}M
+java.opt.hotspot.1=-XX:+UseParNewGC
+java.opt.hotspot.2=-XX:+UseConcMarkSweepGC
+java.opt.hotspot.3=-XX:CMSInitiatingOccupancyFraction=${cms.initiating.heap.percentage:50}
+java.opt.j9.1=-Xgcpolicy:gencon
\ No newline at end of file


[31/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheWriter.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheWriter.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheWriter.java
new file mode 100644
index 0000000..0385ebf
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheWriter.java
@@ -0,0 +1,59 @@
+/*
+* 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.catalina.callback;
+
+import com.gemstone.gemfire.cache.CacheWriterException;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.EntryNotFoundException;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.util.CacheWriterAdapter;
+
+import javax.servlet.http.HttpSession;
+import java.util.Properties;
+
+public class LocalSessionCacheWriter extends CacheWriterAdapter<String, HttpSession> implements Declarable {
+
+  private final Region<String, HttpSession> backingRegion;
+
+  public LocalSessionCacheWriter(Region<String, HttpSession> backingRegion) {
+    this.backingRegion = backingRegion;
+  }
+
+  public void beforeCreate(EntryEvent<String, HttpSession> event) throws CacheWriterException {
+    this.backingRegion.put(event.getKey(), event.getNewValue(), event.getCallbackArgument());
+  }
+
+  public void beforeUpdate(EntryEvent<String, HttpSession> event) throws CacheWriterException {
+    this.backingRegion.put(event.getKey(), event.getNewValue(), event.getCallbackArgument());
+  }
+
+  public void beforeDestroy(EntryEvent<String, HttpSession> event) throws CacheWriterException {
+    try {
+      this.backingRegion.destroy(event.getKey(), event.getCallbackArgument());
+    } catch (EntryNotFoundException e) {
+      // I think it is safe to ignore this exception. The entry could have
+      // expired already in the backing region.
+    }
+  }
+
+  public void close() {
+  }
+
+  public void init(Properties p) {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/SessionExpirationCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/SessionExpirationCacheListener.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/SessionExpirationCacheListener.java
new file mode 100644
index 0000000..dff6d58
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/SessionExpirationCacheListener.java
@@ -0,0 +1,77 @@
+/*
+* 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.catalina.callback;
+
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.Operation;
+import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
+import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
+import com.gemstone.gemfire.modules.session.catalina.DeltaSessionManager;
+import com.gemstone.gemfire.modules.util.ContextMapper;
+
+import javax.servlet.http.HttpSession;
+import java.util.Properties;
+
+public class SessionExpirationCacheListener extends CacheListenerAdapter<String, HttpSession> implements Declarable {
+
+  public void afterDestroy(EntryEvent<String, HttpSession> event) {
+    // A Session expired. If it was destroyed by GemFire expiration, process it.
+    // If it was destroyed via Session.invalidate, ignore it since it has
+    // already been processed.
+    DeltaSession session = null;
+    if (event.getOperation() == Operation.EXPIRE_DESTROY) {
+      session = (DeltaSession) event.getOldValue();
+    } else {
+      /*
+       * This comes into play when we're dealing with an empty client proxy. We
+       * need the actual destroyed object to come back from the server so that
+       * any associated listeners can fire correctly. Having the destroyed
+       * object come back as the callback arg depends on setting the property
+       * gemfire.EXPIRE_SENDS_ENTRY_AS_CALLBACK.
+       */
+      Object callback = event.getCallbackArgument();
+      if (callback != null && callback instanceof DeltaSession) {
+        session = (DeltaSession) callback;
+        DeltaSessionManager m = ContextMapper.getContext(session.getContextName());
+        if (m != null) {
+          session.setOwner(m);
+        }
+      }
+    }
+    if (session != null) {
+      session.processExpired();
+    }
+  }
+
+  public void init(Properties p) {
+  }
+
+  public boolean equals(Object obj) {
+    // This method is only implemented so that RegionAttributesCreation.sameAs
+    // works properly.
+    if (this == obj) {
+      return true;
+    }
+
+    if (obj == null || !(obj instanceof SessionExpirationCacheListener)) {
+      return false;
+    }
+
+    return true;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEvent.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEvent.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEvent.java
new file mode 100644
index 0000000..90b6f28
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEvent.java
@@ -0,0 +1,25 @@
+/*
+* 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.catalina.internal;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
+
+public interface DeltaSessionAttributeEvent extends DataSerializable {
+
+  public void apply(DeltaSession session);
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEventBatch.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEventBatch.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEventBatch.java
new file mode 100644
index 0000000..47df071
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionAttributeEventBatch.java
@@ -0,0 +1,88 @@
+/*
+* 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.catalina.internal;
+
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.modules.gatewaydelta.AbstractGatewayDeltaEvent;
+import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+@SuppressWarnings("serial")
+public class DeltaSessionAttributeEventBatch extends AbstractGatewayDeltaEvent {
+
+  private List<DeltaSessionAttributeEvent> eventQueue;
+
+  public DeltaSessionAttributeEventBatch() {
+  }
+
+  public DeltaSessionAttributeEventBatch(String regionName, String sessionId,
+      List<DeltaSessionAttributeEvent> eventQueue) {
+    super(regionName, sessionId);
+    this.eventQueue = eventQueue;
+  }
+
+  public List<DeltaSessionAttributeEvent> getEventQueue() {
+    return this.eventQueue;
+  }
+
+  public void apply(Cache cache) {
+    Region<String, DeltaSession> region = getRegion(cache);
+    DeltaSession session = region.get(this.key);
+    if (session == null) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("Session ").append(this.key).append(" was not found while attempting to apply ").append(this);
+      cache.getLogger().warning(builder.toString());
+    } else {
+      session.applyAttributeEvents(region, this.eventQueue);
+      if (cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("Applied ").append(this);
+        cache.getLogger().fine(builder.toString());
+      }
+    }
+  }
+
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    super.fromData(in);
+    this.eventQueue = DataSerializer.readArrayList(in);
+  }
+
+  public void toData(DataOutput out) throws IOException {
+    super.toData(out);
+    DataSerializer.writeArrayList((ArrayList) this.eventQueue, out);
+  }
+
+  public String toString() {
+    return new StringBuilder().append("DeltaSessionAttributeEventBatch[")
+        .append("regionName=")
+        .append(this.regionName)
+        .append("; sessionId=")
+        .append(this.key)
+        .append("; numberOfEvents=")
+        .append(this.eventQueue.size())
+        .append("]")
+        .toString();
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
new file mode 100644
index 0000000..989474f
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionDestroyAttributeEvent.java
@@ -0,0 +1,73 @@
+/*
+* 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.catalina.internal;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.Instantiator;
+import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+
+@SuppressWarnings("serial")
+public class DeltaSessionDestroyAttributeEvent implements DeltaSessionAttributeEvent {
+
+  private String attributeName;
+
+  public DeltaSessionDestroyAttributeEvent() {
+  }
+
+  public DeltaSessionDestroyAttributeEvent(String attributeName) {
+    this.attributeName = attributeName;
+  }
+
+  public String getAttributeName() {
+    return this.attributeName;
+  }
+
+  public void apply(DeltaSession session) {
+    session.localDestroyAttribute(this.attributeName);
+  }
+
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    this.attributeName = DataSerializer.readString(in);
+  }
+
+  public void toData(DataOutput out) throws IOException {
+    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();
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionStatistics.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionStatistics.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionStatistics.java
new file mode 100644
index 0000000..2d59103
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionStatistics.java
@@ -0,0 +1,88 @@
+/*
+* 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.catalina.internal;
+
+import com.gemstone.gemfire.StatisticDescriptor;
+import com.gemstone.gemfire.Statistics;
+import com.gemstone.gemfire.StatisticsFactory;
+import com.gemstone.gemfire.StatisticsType;
+import com.gemstone.gemfire.StatisticsTypeFactory;
+import com.gemstone.gemfire.internal.StatisticsTypeFactoryImpl;
+
+public class DeltaSessionStatistics {
+
+  public static final String typeName = "SessionStatistics";
+
+  private static final StatisticsType type;
+
+  private static final String SESSIONS_CREATED = "sessionsCreated";
+  private static final String SESSIONS_INVALIDATED = "sessionsInvalidated";
+  private static final String SESSIONS_EXPIRED = "sessionsExpired";
+
+  private static final int sessionsCreatedId;
+  private static final int sessionsInvalidatedId;
+  private static final int sessionsExpiredId;
+
+  static {
+    // Initialize type
+    StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
+    type = f.createType(typeName, typeName,
+        new StatisticDescriptor[]{f.createIntCounter(SESSIONS_CREATED, "The number of sessions created",
+            "operations"), f.createIntCounter(SESSIONS_INVALIDATED,
+            "The number of sessions invalidated by invoking invalidate", "operations"), f.createIntCounter(
+            SESSIONS_EXPIRED, "The number of sessions invalidated by timeout", "operations"),});
+
+    // Initialize id fields
+    sessionsCreatedId = type.nameToId(SESSIONS_CREATED);
+    sessionsInvalidatedId = type.nameToId(SESSIONS_INVALIDATED);
+    sessionsExpiredId = type.nameToId(SESSIONS_EXPIRED);
+  }
+
+  private final Statistics stats;
+
+  public DeltaSessionStatistics(StatisticsFactory factory, String applicationName) {
+    this.stats = factory.createAtomicStatistics(type, typeName + "_" + applicationName);
+  }
+
+  public void close() {
+    this.stats.close();
+  }
+
+  public int getSessionsCreated() {
+    return this.stats.getInt(sessionsCreatedId);
+  }
+
+  public void incSessionsCreated() {
+    this.stats.incInt(sessionsCreatedId, 1);
+  }
+
+  public int getSessionsInvalidated() {
+    return this.stats.getInt(sessionsInvalidatedId);
+  }
+
+  public void incSessionsInvalidated() {
+    this.stats.incInt(sessionsInvalidatedId, 1);
+  }
+
+  public int getSessionsExpired() {
+    return this.stats.getInt(sessionsExpiredId);
+  }
+
+  public void incSessionsExpired() {
+    this.stats.incInt(sessionsExpiredId, 1);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionUpdateAttributeEvent.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionUpdateAttributeEvent.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionUpdateAttributeEvent.java
new file mode 100644
index 0000000..6678e55
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/internal/DeltaSessionUpdateAttributeEvent.java
@@ -0,0 +1,83 @@
+/*
+* 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.catalina.internal;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.Instantiator;
+import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+@SuppressWarnings("serial")
+public class DeltaSessionUpdateAttributeEvent implements DeltaSessionAttributeEvent {
+
+  private String attributeName;
+
+  private Object attributeValue;
+
+  public DeltaSessionUpdateAttributeEvent() {
+  }
+
+  public DeltaSessionUpdateAttributeEvent(String attributeName, Object attributeValue) {
+    this.attributeName = attributeName;
+    this.attributeValue = attributeValue;
+  }
+
+  public String getAttributeName() {
+    return this.attributeName;
+  }
+
+  public Object getAttributeValue() {
+    return this.attributeValue;
+  }
+
+  public void apply(DeltaSession session) {
+    session.localUpdateAttribute(this.attributeName, this.attributeValue);
+  }
+
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    this.attributeName = DataSerializer.readString(in);
+    this.attributeValue = DataSerializer.readObject(in);
+  }
+
+  public void toData(DataOutput out) throws IOException {
+    DataSerializer.writeString(this.attributeName, out);
+    DataSerializer.writeObject(this.attributeValue, out);
+  }
+
+  public static void registerInstantiator(int id) {
+    Instantiator.register(new Instantiator(DeltaSessionUpdateAttributeEvent.class, id) {
+      public DataSerializable newInstance() {
+        return new DeltaSessionUpdateAttributeEvent();
+      }
+    });
+  }
+
+  public String toString() {
+    return new StringBuilder().append("DeltaSessionUpdateAttributeEvent[")
+        .append("attributeName=")
+        .append(this.attributeName)
+        .append("; attributeValue=")
+        .append(this.attributeValue)
+        .append("]")
+        .toString();
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/Banner.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/Banner.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/Banner.java
new file mode 100644
index 0000000..dbe8e05
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/Banner.java
@@ -0,0 +1,59 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.internal.GemFireVersion;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Properties;
+
+public class Banner {
+
+  private static String VERSION = "unknown";
+
+  private static Properties props = new Properties();
+
+  static {
+    InputStream is = Banner.class.getResourceAsStream("/modules-version.properties");
+    try {
+      props.load(is);
+      VERSION = props.getProperty("version");
+    } catch (IOException e) {
+    }
+  }
+
+  public static String getString() {
+    StringWriter sw = new StringWriter();
+    PrintWriter pw = new PrintWriter(sw);
+    print(pw);
+    pw.close();
+    return sw.toString();
+  }
+
+  private static void print(PrintWriter pw) {
+    pw.println("GemFire Modules");
+    pw.print("Modules version: ");
+    pw.println(VERSION);
+    GemFireVersion.print(pw);
+  }
+
+  private Banner() {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/BootstrappingFunction.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/BootstrappingFunction.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/BootstrappingFunction.java
new file mode 100644
index 0000000..827c6f7
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/BootstrappingFunction.java
@@ -0,0 +1,188 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.execute.Execution;
+import com.gemstone.gemfire.cache.execute.Function;
+import com.gemstone.gemfire.cache.execute.FunctionContext;
+import com.gemstone.gemfire.cache.execute.FunctionService;
+import com.gemstone.gemfire.cache.execute.ResultCollector;
+import com.gemstone.gemfire.distributed.internal.DM;
+import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
+import com.gemstone.gemfire.distributed.internal.MembershipListener;
+import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
+
+import java.util.List;
+import java.util.Set;
+
+public class BootstrappingFunction implements Function, MembershipListener {
+
+  private static final long serialVersionUID = 1856043174458190605L;
+
+  public static final String ID = "bootstrapping-function";
+
+  private static final int TIME_TO_WAIT_FOR_CACHE = Integer.getInteger("gemfiremodules.timeToWaitForCache", 30000);
+
+  @Override
+  public void execute(FunctionContext context) {
+    // Verify that the cache exists before continuing.
+    // When this function is executed by a remote membership listener, it is
+    // being invoked before the cache is started.
+    Cache cache = verifyCacheExists();
+
+    // Register as membership listener
+    registerAsMembershipListener(cache);
+
+    // Register functions
+    registerFunctions();
+
+    // Return status
+    context.getResultSender().lastResult(Boolean.TRUE);
+  }
+
+  private Cache verifyCacheExists() {
+    int timeToWait = 0;
+    Cache cache = null;
+    while (timeToWait < TIME_TO_WAIT_FOR_CACHE) {
+      try {
+        cache = CacheFactory.getAnyInstance();
+        break;
+      } catch (Exception ignore) {
+        //keep trying and hope for the best
+      }
+      try {
+        Thread.sleep(250);
+      } catch (InterruptedException ie) {
+        Thread.currentThread().interrupt();
+        break;
+      }
+      timeToWait += 250;
+    }
+
+    if (cache == null) {
+      cache = new CacheFactory().create();
+    }
+
+    return cache;
+  }
+
+  private void registerAsMembershipListener(Cache cache) {
+    DM dm = ((InternalDistributedSystem) cache.getDistributedSystem()).getDistributionManager();
+    dm.addMembershipListener(this);
+  }
+
+  private void registerFunctions() {
+    // Synchronize so that these functions aren't registered twice. The
+    // constructor for the CreateRegionFunction creates a meta region.
+    synchronized (ID) {
+      // Register the create region function if it is not already registered
+      if (!FunctionService.isRegistered(CreateRegionFunction.ID)) {
+        FunctionService.registerFunction(new CreateRegionFunction());
+      }
+
+      // Register the touch partitioned region entries function if it is not already registered
+      if (!FunctionService.isRegistered(TouchPartitionedRegionEntriesFunction.ID)) {
+        FunctionService.registerFunction(new TouchPartitionedRegionEntriesFunction());
+      }
+
+      // Register the touch replicated region entries function if it is not already registered
+      if (!FunctionService.isRegistered(TouchReplicatedRegionEntriesFunction.ID)) {
+        FunctionService.registerFunction(new TouchReplicatedRegionEntriesFunction());
+      }
+
+      // Register the region size function if it is not already registered
+      if (!FunctionService.isRegistered(RegionSizeFunction.ID)) {
+        FunctionService.registerFunction(new RegionSizeFunction());
+      }
+    }
+  }
+
+  private void bootstrapMember(InternalDistributedMember member) {
+    // Create and execute the function
+    Cache cache = CacheFactory.getAnyInstance();
+    Execution execution = FunctionService.onMember(cache.getDistributedSystem(), member);
+    ResultCollector collector = execution.execute(this);
+
+    // Get the result. Nothing is being done with it.
+    try {
+      collector.getResult();
+    } catch (Exception e) {
+      // If an exception occurs in the function, log it.
+      cache.getLogger().warning("Caught unexpected exception:", e);
+    }
+  }
+
+  @Override
+  public String getId() {
+    return ID;
+  }
+
+  @Override
+  public boolean hasResult() {
+    return true;
+  }
+
+  @Override
+  public boolean isHA() {
+    return false;
+  }
+
+  @Override
+  public boolean optimizeForWrite() {
+    return false;
+  }
+
+  public int hashCode() {
+    // This method is only implemented so that multiple instances of this class
+    // don't get added as membership listeners.
+    return ID.hashCode();
+  }
+
+  public boolean equals(Object obj) {
+    // This method is only implemented so that multiple instances of this class
+    // don't get added as membership listeners.
+    if (this == obj) {
+      return true;
+    }
+
+    if (obj == null || !(obj instanceof BootstrappingFunction)) {
+      return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public void memberDeparted(InternalDistributedMember id, boolean crashed) {
+  }
+
+  @Override
+  public void memberJoined(InternalDistributedMember id) {
+    bootstrapMember(id);
+  }
+
+  @Override
+  public void memberSuspect(InternalDistributedMember id, InternalDistributedMember whoSuspected, String reason) {
+  }
+
+  @Override
+  public void quorumLost(Set<InternalDistributedMember> internalDistributedMembers,
+      List<InternalDistributedMember> internalDistributedMembers2) {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ClassLoaderObjectInputStream.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ClassLoaderObjectInputStream.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ClassLoaderObjectInputStream.java
new file mode 100644
index 0000000..8cd600e
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ClassLoaderObjectInputStream.java
@@ -0,0 +1,40 @@
+/*
+* 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.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectStreamClass;
+
+/**
+ * This class is used when session attributes need to be reconstructed with a new classloader.
+ */
+public class ClassLoaderObjectInputStream extends ObjectInputStream {
+
+  private final ClassLoader loader;
+
+  public ClassLoaderObjectInputStream(InputStream in, ClassLoader loader) throws IOException {
+    super(in);
+    this.loader = loader;
+  }
+
+  @Override
+  public Class<?> resolveClass(ObjectStreamClass desc) throws ClassNotFoundException {
+    return Class.forName(desc.getName(), false, loader);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ContextMapper.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ContextMapper.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ContextMapper.java
new file mode 100644
index 0000000..3b7b2de
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ContextMapper.java
@@ -0,0 +1,53 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.modules.session.catalina.DeltaSessionManager;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This basic singleton class maps context paths to manager instances.
+ * <p>
+ * This class exists for a particular corner case described here. Consider a client-server environment with empty client
+ * regions *and* the need to fire HttpSessionListener destroy events. When a session expires, in this scenario, the
+ * Gemfire destroy events originate on the server and, with some Gemfire hackery, the destroyed object ends up as the
+ * event's callback argument. At the point that the CacheListener then gets the event, the re-constituted session object
+ * has no manager associated and so we need to re-attach a manager to it so that events can be fired correctly.
+ */
+
+public class ContextMapper {
+
+  private static Map<String, DeltaSessionManager> managers = new HashMap<String, DeltaSessionManager>();
+
+  private ContextMapper() {
+    // This is a singleton
+  }
+
+  public static void addContext(String path, DeltaSessionManager manager) {
+    managers.put(path, manager);
+  }
+
+  public static DeltaSessionManager getContext(String path) {
+    return managers.get(path);
+  }
+
+  public static DeltaSessionManager removeContext(String path) {
+    return managers.remove(path);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
new file mode 100644
index 0000000..564ccb7
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/CreateRegionFunction.java
@@ -0,0 +1,245 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionFactory;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.client.ClientCache;
+import com.gemstone.gemfire.cache.execute.Function;
+import com.gemstone.gemfire.cache.execute.FunctionContext;
+import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;
+import com.gemstone.gemfire.distributed.DistributedLockService;
+import com.gemstone.gemfire.distributed.internal.locks.DistributedMemberLock;
+import com.gemstone.gemfire.internal.cache.PartitionedRegion;
+import com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlGenerator;
+import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Properties;
+
+public class CreateRegionFunction implements Function, Declarable {
+
+  private static final long serialVersionUID = -9210226844302128969L;
+
+  private final Cache cache;
+
+  private final Region<String, RegionConfiguration> regionConfigurationsRegion;
+
+  public static final String ID = "create-region-function";
+
+  private static final boolean DUMP_SESSION_CACHE_XML = Boolean.getBoolean("gemfiremodules.dumpSessionCacheXml");
+
+  private static final String REGION_CONFIGURATION_METADATA_REGION = "__regionConfigurationMetadata";
+
+  public CreateRegionFunction() {
+    this(CacheFactory.getAnyInstance());
+  }
+
+  public CreateRegionFunction(Cache cache) {
+    this.cache = cache;
+    this.regionConfigurationsRegion = createRegionConfigurationMetadataRegion();
+  }
+
+  public CreateRegionFunction(ClientCache cache) {
+    this.cache = null;
+    this.regionConfigurationsRegion = null;
+  }
+
+  public void execute(FunctionContext context) {
+    RegionConfiguration configuration = (RegionConfiguration) context.getArguments();
+    if (this.cache.getLogger().fineEnabled()) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("Function ").append(ID).append(" received request: ").append(configuration);
+      this.cache.getLogger().fine(builder.toString());
+    }
+
+    // Create or retrieve region
+    RegionStatus status = createOrRetrieveRegion(configuration);
+
+    // Dump XML
+    if (DUMP_SESSION_CACHE_XML) {
+      writeCacheXml();
+    }
+    // Return status
+    context.getResultSender().lastResult(status);
+  }
+
+  private RegionStatus createOrRetrieveRegion(RegionConfiguration configuration) {
+    RegionStatus status = null;
+    String regionName = configuration.getRegionName();
+    if (this.cache.getLogger().fineEnabled()) {
+      this.cache.getLogger().fine("Function " + ID + " retrieving region named: " + regionName);
+    }
+    Region region = this.cache.getRegion(regionName);
+    if (region == null) {
+      status = createRegion(configuration);
+    } else {
+      status = RegionStatus.VALID;
+      try {
+        RegionHelper.validateRegion(this.cache, configuration, region);
+      } catch (Exception e) {
+        if (!e.getMessage()
+            .equals(LocalizedStrings.RegionAttributesCreation_CACHELISTENERS_ARE_NOT_THE_SAME.toLocalizedString())) {
+          this.cache.getLogger().warning(e);
+        }
+        status = RegionStatus.INVALID;
+      }
+    }
+    return status;
+  }
+
+  public String getId() {
+    return ID;
+  }
+
+  public boolean optimizeForWrite() {
+    return false;
+  }
+
+  public boolean isHA() {
+    return true;
+  }
+
+  public boolean hasResult() {
+    return true;
+  }
+
+  public void init(Properties properties) {
+  }
+
+  private RegionStatus createRegion(RegionConfiguration configuration) {
+    // Get a distributed lock
+    DistributedMemberLock dml = getDistributedLock();
+    if (this.cache.getLogger().fineEnabled()) {
+      this.cache.getLogger().fine(this + ": Attempting to lock " + dml);
+    }
+    long start = 0, end = 0;
+    RegionStatus status = null;
+    try {
+      if (this.cache.getLogger().fineEnabled()) {
+        start = System.currentTimeMillis();
+      }
+      // Obtain a lock on the distributed lock
+      dml.lockInterruptibly();
+      if (this.cache.getLogger().fineEnabled()) {
+        end = System.currentTimeMillis();
+        this.cache.getLogger().fine(this + ": Obtained lock on " + dml + " in " + (end - start) + " ms");
+      }
+
+      // Attempt to get the region again after the lock has been obtained
+      String regionName = configuration.getRegionName();
+      Region region = this.cache.getRegion(regionName);
+
+      // If it exists now, validate it.
+      // Else put an entry into the sessionRegionConfigurationsRegion
+      // while holding the lock. This will create the region in all VMs.
+      if (region == null) {
+        this.regionConfigurationsRegion.put(regionName, configuration);
+
+        // Retrieve the region after creating it
+        region = this.cache.getRegion(regionName);
+        // If the region is null now, it wasn't created for some reason
+        // (e.g. the region attributes id were invalid)
+        if (region == null) {
+          status = RegionStatus.INVALID;
+        } else {
+          // Create the PR buckets if necessary)
+          if (region instanceof PartitionedRegion) {
+            PartitionedRegion pr = (PartitionedRegion) region;
+            createBuckets(pr);
+          }
+          status = RegionStatus.VALID;
+        }
+      } else {
+        status = RegionStatus.VALID;
+        try {
+          RegionHelper.validateRegion(this.cache, configuration, region);
+        } catch (Exception e) {
+          if (!e.getMessage()
+              .equals(LocalizedStrings.RegionAttributesCreation_CACHELISTENERS_ARE_NOT_THE_SAME.toLocalizedString())) {
+            this.cache.getLogger().warning(e);
+          }
+          status = RegionStatus.INVALID;
+        }
+      }
+    } catch (Exception e) {
+      StringBuilder builder = new StringBuilder();
+      builder.append(this)
+          .append(": Caught Exception attempting to create region named ")
+          .append(configuration.getRegionName())
+          .append(":");
+      this.cache.getLogger().warning(builder.toString(), e);
+      status = RegionStatus.INVALID;
+    } finally {
+      // Unlock the distributed lock
+      try {
+        dml.unlock();
+      } catch (Exception e) {
+      }
+    }
+    return status;
+  }
+
+  private void createBuckets(PartitionedRegion region) {
+    PartitionRegionHelper.assignBucketsToPartitions(region);
+  }
+
+  private Region<String, RegionConfiguration> createRegionConfigurationMetadataRegion() {
+    // a sessionFactory in hibernate could have been re-started
+    // so, it is possible that this region exists already
+    Region<String, RegionConfiguration> r = this.cache.getRegion(REGION_CONFIGURATION_METADATA_REGION);
+    if (r != null) {
+      return r;
+    }
+    RegionFactory<String, RegionConfiguration> factory = this.cache.createRegionFactory(RegionShortcut.REPLICATE);
+    factory.addCacheListener(new RegionConfigurationCacheListener());
+    return factory.create(REGION_CONFIGURATION_METADATA_REGION);
+  }
+
+  private void writeCacheXml() {
+    File file = new File("cache-" + System.currentTimeMillis() + ".xml");
+    try {
+      PrintWriter pw = new PrintWriter(new FileWriter(file), true);
+      CacheXmlGenerator.generate(this.cache, pw);
+      pw.close();
+    } catch (IOException e) {
+    }
+  }
+
+  private DistributedMemberLock getDistributedLock() {
+    String dlsName = this.regionConfigurationsRegion.getName();
+    DistributedLockService lockService = initializeDistributedLockService(dlsName);
+    String lockToken = dlsName + "_token";
+    return new DistributedMemberLock(lockService, lockToken);
+  }
+
+  private DistributedLockService initializeDistributedLockService(String dlsName) {
+    DistributedLockService lockService = DistributedLockService.getServiceNamed(dlsName);
+    if (lockService == null) {
+      lockService = DistributedLockService.create(dlsName, this.cache.getDistributedSystem());
+    }
+    return lockService;
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/DebugCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/DebugCacheListener.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/DebugCacheListener.java
new file mode 100644
index 0000000..baca5b8
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/DebugCacheListener.java
@@ -0,0 +1,72 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
+
+import java.util.Properties;
+
+@SuppressWarnings("unchecked")
+public class DebugCacheListener extends CacheListenerAdapter implements Declarable {
+
+  public void afterCreate(EntryEvent event) {
+    log(event);
+  }
+
+  public void afterUpdate(EntryEvent event) {
+    log(event);
+  }
+
+  public void afterInvalidate(EntryEvent event) {
+    log(event);
+  }
+
+  public void afterDestroy(EntryEvent event) {
+    log(event);
+  }
+
+  private void log(EntryEvent event) {
+    StringBuilder builder = new StringBuilder();
+    builder.append("DebugCacheListener: Received ")
+        .append(event.getOperation())
+        .append(" for key=")
+        .append(event.getKey());
+    if (event.getNewValue() != null) {
+      builder.append("; value=").append(event.getNewValue());
+    }
+    event.getRegion().getCache().getLogger().info(builder.toString());
+  }
+
+  public void init(Properties p) {
+  }
+
+  public boolean equals(Object obj) {
+    // This method is only implemented so that RegionCreator.validateRegion works properly.
+    // The CacheListener comparison fails because two of these instances are not equal.
+    if (this == obj) {
+      return true;
+    }
+
+    if (obj == null || !(obj instanceof DebugCacheListener)) {
+      return false;
+    }
+
+    return true;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ModuleStatistics.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ModuleStatistics.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ModuleStatistics.java
new file mode 100644
index 0000000..dff5b95
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ModuleStatistics.java
@@ -0,0 +1,91 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.StatisticDescriptor;
+import com.gemstone.gemfire.Statistics;
+import com.gemstone.gemfire.StatisticsFactory;
+import com.gemstone.gemfire.StatisticsType;
+import com.gemstone.gemfire.StatisticsTypeFactory;
+import com.gemstone.gemfire.distributed.DistributedSystem;
+import com.gemstone.gemfire.internal.StatisticsTypeFactoryImpl;
+
+/**
+ * Statistics for modules.
+ *
+ * @author sbawaska
+ */
+public class ModuleStatistics {
+
+  private static final StatisticsType type;
+
+  private static final int cacheHitsId;
+
+  private static final int cacheMissesId;
+
+  private static final int hibernateEntityDestroyJobsScheduledId;
+
+  static {
+    StatisticsTypeFactory f = StatisticsTypeFactoryImpl.singleton();
+    type = f.createType("pluginStats", "statistics for hibernate plugin and hibernate L2 cache",
+        new StatisticDescriptor[]{f.createLongCounter("cacheHits", "number of times an entity was found in L2 cache",
+            "count"), f.createLongCounter("cacheMisses", "number of times an entity was NOT found in l2 cache",
+            "count"), f.createLongCounter("hibernateEntityDestroyJobsScheduled",
+            "number of entities scheduled for destroy because of version conflict with a remote member", "jobs")});
+
+    cacheHitsId = type.nameToId("cacheHits");
+    cacheMissesId = type.nameToId("cacheMisses");
+    hibernateEntityDestroyJobsScheduledId = type.nameToId("hibernateEntityDestroyJobsScheduled");
+  }
+
+  private final Statistics stats;
+
+  private static ModuleStatistics instance;
+
+  private ModuleStatistics(StatisticsFactory factory) {
+    this.stats = factory.createAtomicStatistics(type, "PluginStatistics");
+  }
+
+  public static ModuleStatistics getInstance(DistributedSystem system) {
+    synchronized (ModuleStatistics.class) {
+      if (instance == null) {
+        instance = new ModuleStatistics(system);
+      }
+    }
+    return instance;
+  }
+
+  public void incCacheHit() {
+    stats.incLong(cacheHitsId, 1);
+  }
+
+  public long getCacheHits() {
+    return stats.getLong(cacheHitsId);
+  }
+
+  public void incCacheMiss() {
+    stats.incLong(cacheMissesId, 1);
+  }
+
+  public long getCacheMiss() {
+    return stats.getLong(cacheMissesId);
+  }
+
+  public void incHibernateDestroyJobsScheduled() {
+    stats.incLong(hibernateEntityDestroyJobsScheduledId, 1);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfiguration.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfiguration.java
new file mode 100644
index 0000000..5b025bc
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfiguration.java
@@ -0,0 +1,308 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.Instantiator;
+import com.gemstone.gemfire.cache.CacheWriter;
+import com.gemstone.gemfire.cache.CustomExpiry;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Class <code>RegionConfiguration</code> encapsulates the configuration attributes for a <code>Region</code> to be
+ * created on the server.
+ *
+ * @author Barry Oglesby
+ * @since 6.5
+ */
+@SuppressWarnings({"serial", "unchecked"})
+public class RegionConfiguration implements DataSerializable {
+
+  /**
+   * The name of the <code>Region</code> to be created
+   */
+  private String regionName;
+
+  /**
+   * The id of the <code>RegionAttributes</code> to be used
+   */
+  private String regionAttributesId;
+
+  /**
+   * The default max inactive interval. The default value is -1.
+   */
+  public static final int DEFAULT_MAX_INACTIVE_INTERVAL = -1;
+
+  /**
+   * The maximum time interval in seconds before entries are expired
+   */
+  private int maxInactiveInterval = DEFAULT_MAX_INACTIVE_INTERVAL;
+
+  /**
+   * The <code>CustomExpiry</code> to be used
+   */
+  private CustomExpiry customExpiry;
+
+  /**
+   * Whether delta replication across a <code>Gateway</code> is enabled.
+   */
+  private boolean enableGatewayDeltaReplication = false;
+
+  /**
+   * Whether replication across a <code>Gateway</code> is enabled.
+   */
+  private boolean enableGatewayReplication = false;
+
+  /**
+   * Whether to add a <code>DebugCacheListener</code> to the <code>Region</code>.
+   */
+  private boolean enableDebugListener = false;
+
+  /**
+   * Whether to add a cache listener for session expiration events
+   */
+  private boolean enableSessionExpirationCacheListener = false;
+
+  /**
+   * name for the CacheWriter to be associated with this region. This cache writer must have a zero arg constructor and
+   * must be present on the classpath on the server.
+   */
+  private String cacheWriterName;
+
+  /**
+   * Default constructor used by the <code>DataSerialiable</code> interface
+   */
+  public RegionConfiguration() {
+  }
+
+  /**
+   * Sets the name of the <code>Region</code> to be created
+   *
+   * @param regionName The name of the <code>Region</code> to be created
+   */
+  public void setRegionName(String regionName) {
+    this.regionName = regionName;
+  }
+
+  /**
+   * Returns the name of the <code>Region</code> to be created
+   *
+   * @return the name of the <code>Region</code> to be created
+   */
+  public String getRegionName() {
+    return this.regionName;
+  }
+
+  /**
+   * Sets the id of the <code>RegionAttributes</code> to be used
+   *
+   * @param regionAttributesId The id of the <code>RegionAttributes</code> to be used
+   */
+  public void setRegionAttributesId(String regionAttributesId) {
+    this.regionAttributesId = regionAttributesId;
+  }
+
+  /**
+   * Returns the id of the <code>RegionAttributes</code> to be used
+   *
+   * @return the id of the <code>RegionAttributes</code> to be used
+   */
+  public String getRegionAttributesId() {
+    return this.regionAttributesId;
+  }
+
+  /**
+   * Sets the maximum time interval in seconds before entries are expired
+   *
+   * @param maxInactiveInterval The maximum time interval in seconds before entries are expired
+   */
+  public void setMaxInactiveInterval(int maxInactiveInterval) {
+    this.maxInactiveInterval = maxInactiveInterval;
+  }
+
+  /**
+   * Returns the maximum time interval in seconds entries are expired
+   *
+   * @return the maximum time interval in seconds before entries are expired
+   */
+  public int getMaxInactiveInterval() {
+    return this.maxInactiveInterval;
+  }
+
+  /**
+   * Sets the <code>CustomExpiry</code> to be used
+   *
+   * @param customExpiry The <code>CustomExpiry</code> to be used
+   */
+  public void setCustomExpiry(CustomExpiry customExpiry) {
+    this.customExpiry = customExpiry;
+  }
+
+  /**
+   * Returns the <code>CustomExpiry</code> to be used
+   *
+   * @return the <code>CustomExpiry</code> to be used
+   */
+  public CustomExpiry getCustomExpiry() {
+    return this.customExpiry;
+  }
+
+  /**
+   * Enables/disables delta replication across a <code>Gateway</code>.
+   *
+   * @param enableGatewayDeltaReplication true to enable, false to disable gateway delta replication.
+   */
+  public void setEnableGatewayDeltaReplication(boolean enableGatewayDeltaReplication) {
+    this.enableGatewayDeltaReplication = enableGatewayDeltaReplication;
+  }
+
+  /**
+   * Returns whether delta replication across a <code>Gateway</code> is enabled.
+   *
+   * @return whether delta replication across a <code>Gateway</code> is enabled
+   */
+  public boolean getEnableGatewayDeltaReplication() {
+    return this.enableGatewayDeltaReplication;
+  }
+
+  /**
+   * Enables/disables replication across a <code>Gateway</code>.
+   *
+   * @param enableGatewayReplication true to enable, false to disable gateway replication.
+   */
+  public void setEnableGatewayReplication(boolean enableGatewayReplication) {
+    this.enableGatewayReplication = enableGatewayReplication;
+  }
+
+  /**
+   * Returns whether replication across a <code>Gateway</code> is enabled.
+   *
+   * @return whether replication across a <code>Gateway</code> is enabled
+   */
+  public boolean getEnableGatewayReplication() {
+    return this.enableGatewayReplication;
+  }
+
+  /**
+   * Enables/disables a debug <code>CacheListener</code>.
+   *
+   * @param enableDebugListener true to enable, false to disable debug <code>CacheListener</code>.
+   */
+  public void setEnableDebugListener(boolean enableDebugListener) {
+    this.enableDebugListener = enableDebugListener;
+  }
+
+  /**
+   * Returns whether a debug <code>CacheListener</code> is enabled.
+   *
+   * @return whether a debug <code>CacheListener</code> is enabled
+   */
+  public boolean getEnableDebugListener() {
+    return this.enableDebugListener;
+  }
+
+  public void setSessionExpirationCacheListener(boolean enableSessionExpirationCacheListener) {
+    this.enableSessionExpirationCacheListener = enableSessionExpirationCacheListener;
+  }
+
+  public boolean getSessionExpirationCacheListener() {
+    return this.enableSessionExpirationCacheListener;
+  }
+
+  public void toData(DataOutput out) throws IOException {
+    DataSerializer.writeString(this.regionName, out);
+    DataSerializer.writeString(this.regionAttributesId, out);
+    DataSerializer.writePrimitiveInt(this.maxInactiveInterval, out);
+    DataSerializer.writeObject(this.customExpiry, out);
+    DataSerializer.writeBoolean(this.enableGatewayDeltaReplication, out);
+    DataSerializer.writeBoolean(this.enableGatewayReplication, out);
+    DataSerializer.writeBoolean(this.enableDebugListener, out);
+    DataSerializer.writeString(this.cacheWriterName, out);
+    DataSerializer.writeBoolean(this.enableSessionExpirationCacheListener, out);
+  }
+
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    this.regionName = DataSerializer.readString(in);
+    this.regionAttributesId = DataSerializer.readString(in);
+    this.maxInactiveInterval = DataSerializer.readPrimitiveInt(in);
+    this.customExpiry = DataSerializer.readObject(in);
+    this.enableGatewayDeltaReplication = DataSerializer.readBoolean(in);
+    this.enableGatewayReplication = DataSerializer.readBoolean(in);
+    this.enableDebugListener = DataSerializer.readBoolean(in);
+    this.cacheWriterName = DataSerializer.readString(in);
+
+    // This allows for backwards compatibility with 2.1 clients
+    if (((InputStream) in).available() > 0) {
+      this.enableSessionExpirationCacheListener = DataSerializer.readBoolean(in);
+    } else {
+      this.enableSessionExpirationCacheListener = false;
+    }
+  }
+
+  /**
+   * Registers an <code>Instantiator</code> for the <code>SessionConfiguration</code> class
+   */
+  public static void registerInstantiator(int id) {
+    Instantiator.register(new Instantiator(RegionConfiguration.class, id) {
+      public DataSerializable newInstance() {
+        return new RegionConfiguration();
+      }
+    });
+  }
+
+  public String toString() {
+    return new StringBuilder().append("RegionConfiguration[")
+        .append("regionName=")
+        .append(this.regionName)
+        .append("; regionAttributesId=")
+        .append(this.regionAttributesId)
+        .append("; maxInactiveInterval=")
+        .append(this.maxInactiveInterval)
+        .append("; enableGatewayDeltaReplication=")
+        .append(this.enableGatewayDeltaReplication)
+        .append("; enableGatewayReplication=")
+        .append(this.enableGatewayReplication)
+        .append("; enableDebugListener=")
+        .append(this.enableDebugListener)
+        .append("; enableSessionExpirationCacheListener=")
+        .append(this.enableSessionExpirationCacheListener)
+        .append("; cacheWriter=")
+        .append(this.cacheWriterName)
+        .append("]")
+        .toString();
+  }
+
+  /**
+   * set the fully qualified name of the {@link CacheWriter} to be created on the server. The cacheWriter must have a
+   * zero arg constructor, and must be present on the classpath on the server.
+   *
+   * @param cacheWriterName fully qualified class name of the cacheWriter
+   */
+  public void setCacheWriterName(String cacheWriterName) {
+    this.cacheWriterName = cacheWriterName;
+  }
+
+  public String getCacheWriterName() {
+    return cacheWriterName;
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfigurationCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfigurationCacheListener.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfigurationCacheListener.java
new file mode 100644
index 0000000..c25082b
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionConfigurationCacheListener.java
@@ -0,0 +1,114 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionEvent;
+import com.gemstone.gemfire.cache.RegionExistsException;
+import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
+
+import java.util.Properties;
+
+public class RegionConfigurationCacheListener extends CacheListenerAdapter<String, RegionConfiguration> implements Declarable {
+
+  private Cache cache;
+
+  public RegionConfigurationCacheListener() {
+    this.cache = CacheFactory.getAnyInstance();
+  }
+
+  public void afterCreate(EntryEvent<String, RegionConfiguration> event) {
+    RegionConfiguration configuration = event.getNewValue();
+    if (this.cache.getLogger().fineEnabled()) {
+      this.cache.getLogger().fine("RegionConfigurationCacheListener received afterCreate for region " + event.getKey());
+    }
+    // Create region
+    // this is a replicate region, and many VMs can be doing create region
+    // simultaneously, so ignore the RegionExistsException
+    try {
+      Region region = RegionHelper.createRegion(this.cache, configuration);
+      if (this.cache.getLogger().fineEnabled()) {
+        this.cache.getLogger().fine("RegionConfigurationCacheListener created region: " + region);
+      }
+    } catch (RegionExistsException exists) {
+      // ignore
+      this.cache.getLogger().fine("Region with configuration " + configuration + " existed");
+    }
+  }
+
+  @Override
+  public void afterUpdate(EntryEvent<String, RegionConfiguration> event) {
+    // a region could have been destroyed and then
+    // re-created, we want to create region again
+    // on remote nodes
+    afterCreate(event);
+  }
+
+  public void afterRegionCreate(RegionEvent<String, RegionConfiguration> event) {
+    StringBuilder builder1 = null, builder2 = null;
+    Region<String, RegionConfiguration> region = event.getRegion();
+    if (this.cache.getLogger().fineEnabled()) {
+      builder1 = new StringBuilder();
+      int regionSize = region.size();
+      if (regionSize > 0) {
+        builder1.append("RegionConfigurationCacheListener region ")
+            .append(region.getName())
+            .append(" has been initialized with the following ")
+            .append(regionSize)
+            .append(" region configurations:\n");
+        builder2 = new StringBuilder();
+        builder2.append("RegionConfigurationCacheListener created the following ")
+            .append(regionSize)
+            .append(" regions:\n");
+      } else {
+        builder1.append("RegionConfigurationCacheListener region ")
+            .append(region.getName())
+            .append(" has been initialized with no region configurations");
+      }
+    }
+    for (RegionConfiguration configuration : region.values()) {
+      if (this.cache.getLogger().fineEnabled()) {
+        builder1.append("\t").append(configuration);
+      }
+      try {
+        Region createRegion = RegionHelper.createRegion(this.cache, configuration);
+        if (this.cache.getLogger().fineEnabled()) {
+          builder2.append("\t").append(createRegion);
+        }
+      } catch (RegionExistsException exists) {
+        // could have been concurrently created by another function
+        if (this.cache.getLogger().fineEnabled()) {
+          builder2.append("\t").append(" region existed");
+        }
+      }
+
+    }
+    if (this.cache.getLogger().fineEnabled()) {
+      this.cache.getLogger().fine(builder1.toString());
+      if (builder2 != null) {
+        this.cache.getLogger().fine(builder2.toString());
+      }
+    }
+  }
+
+  public void init(Properties p) {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionHelper.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionHelper.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionHelper.java
new file mode 100644
index 0000000..78e4423
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionHelper.java
@@ -0,0 +1,241 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.AttributesFactory;
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheWriter;
+import com.gemstone.gemfire.cache.ExpirationAction;
+import com.gemstone.gemfire.cache.ExpirationAttributes;
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionAttributes;
+import com.gemstone.gemfire.cache.control.RebalanceFactory;
+import com.gemstone.gemfire.cache.control.RebalanceOperation;
+import com.gemstone.gemfire.cache.control.RebalanceResults;
+import com.gemstone.gemfire.cache.control.ResourceManager;
+import com.gemstone.gemfire.cache.partition.PartitionMemberInfo;
+import com.gemstone.gemfire.cache.partition.PartitionRebalanceInfo;
+import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;
+import com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlGenerator;
+import com.gemstone.gemfire.internal.cache.xmlcache.RegionAttributesCreation;
+import com.gemstone.gemfire.modules.gatewaydelta.GatewayDeltaForwarderCacheListener;
+import com.gemstone.gemfire.modules.session.catalina.callback.SessionExpirationCacheListener;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.CancellationException;
+
+@SuppressWarnings({"deprecation", "unchecked"})
+public class RegionHelper {
+
+  public static final String NAME = "gemfire_modules";
+
+  public static Region createRegion(Cache cache, RegionConfiguration configuration) {
+    // Use the createRegion method so that the RegionAttributes creation can be reused by validate.
+    RegionAttributes requestedRegionAttributes = getRegionAttributes(cache, configuration);
+    Region region = cache.createRegion(configuration.getRegionName(), requestedRegionAttributes);
+
+    // Log the cache xml if debugging is enabled. I'd like to be able to just
+    // log the region, but that API is not available.
+    if (configuration.getEnableDebugListener()) {
+      cache.getLogger().info("Created new session region: " + region);
+      cache.getLogger().info(generateCacheXml(cache));
+    }
+    return region;
+  }
+
+  public static void validateRegion(Cache cache, RegionConfiguration configuration, Region region) {
+    // Get the attributes of the existing region
+    RegionAttributes existingAttributes = region.getAttributes();
+
+    // Create region attributes creation on existing region attributes.
+    // The RAC is created to execute the sameAs method.
+    RegionAttributesCreation existingRACreation = new RegionAttributesCreation(existingAttributes, false);
+
+    // Create requested region attributes
+    RegionAttributes requestedRegionAttributes = getRegionAttributes(cache, configuration);
+
+    // Compare the two region attributes. This method either returns true or throws a RuntimeException.
+    existingRACreation.sameAs(requestedRegionAttributes);
+  }
+
+  public static RebalanceResults rebalanceRegion(Region region) throws CancellationException, InterruptedException {
+    String regionName = region.getName(); // FilterByName only looks at name and not full path
+    if (!PartitionRegionHelper.isPartitionedRegion(region)) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("Region ")
+          .append(regionName)
+          .append(" is not partitioned. Instead, it is ")
+          .append(region.getAttributes().getDataPolicy())
+          .append(". It can't be rebalanced.");
+      throw new IllegalArgumentException(builder.toString());
+    }
+
+    // Rebalance the region
+    ResourceManager resourceManager = region.getCache().getResourceManager();
+    RebalanceFactory rebalanceFactory = resourceManager.createRebalanceFactory();
+    Set<String> regionsToRebalance = new HashSet<String>();
+    regionsToRebalance.add(regionName);
+    rebalanceFactory.includeRegions(regionsToRebalance);
+    RebalanceOperation rebalanceOperation = rebalanceFactory.start();
+
+    // Return the results
+    return rebalanceOperation.getResults();
+  }
+
+  public static RebalanceResults rebalanceCache(GemFireCache cache) throws CancellationException, InterruptedException {
+    ResourceManager resourceManager = cache.getResourceManager();
+    RebalanceFactory rebalanceFactory = resourceManager.createRebalanceFactory();
+    RebalanceOperation rebalanceOperation = rebalanceFactory.start();
+    return rebalanceOperation.getResults();
+  }
+
+  public static String generateCacheXml(Cache cache) {
+    try {
+      StringWriter sw = new StringWriter();
+      PrintWriter pw = new PrintWriter(sw, true);
+      CacheXmlGenerator.generate(cache, pw);
+      pw.close();
+      return sw.toString();
+    } catch (Exception ex) {
+      return "";
+    }
+  }
+
+  private static RegionAttributes getRegionAttributes(Cache cache, RegionConfiguration configuration) {
+    // Create the requested attributes
+    RegionAttributes baseRequestedAttributes = cache.getRegionAttributes(configuration.getRegionAttributesId());
+    if (baseRequestedAttributes == null) {
+      throw new IllegalArgumentException(
+          "No region attributes named " + configuration.getRegionAttributesId() + " are defined.");
+    }
+    AttributesFactory requestedFactory = new AttributesFactory(baseRequestedAttributes);
+
+    // Set the expiration time and action if necessary
+    int maxInactiveInterval = configuration.getMaxInactiveInterval();
+    if (maxInactiveInterval != RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
+      requestedFactory.setStatisticsEnabled(true);
+      if (configuration.getCustomExpiry() == null) {
+        requestedFactory.setEntryIdleTimeout(new ExpirationAttributes(maxInactiveInterval, ExpirationAction.DESTROY));
+      } else {
+        requestedFactory.setCustomEntryIdleTimeout(configuration.getCustomExpiry());
+      }
+    }
+
+    // Add the gateway delta region cache listener if necessary
+    if (configuration.getEnableGatewayDeltaReplication()) {
+      // Add the listener that forwards created/destroyed deltas to the gateway
+      requestedFactory.addCacheListener(new GatewayDeltaForwarderCacheListener(cache));
+    }
+
+    // Enable gateway replication if necessary
+    // TODO: Disabled for WAN
+//    requestedFactory.setEnableGateway(configuration.getEnableGatewayReplication());
+
+    // Add the debug cache listener if necessary
+    if (configuration.getEnableDebugListener()) {
+      requestedFactory.addCacheListener(new DebugCacheListener());
+    }
+
+    if (configuration.getSessionExpirationCacheListener()) {
+      requestedFactory.addCacheListener(new SessionExpirationCacheListener());
+    }
+
+    // Add the cacheWriter if necessary
+    if (configuration.getCacheWriterName() != null) {
+      try {
+        CacheWriter writer = (CacheWriter) Class.forName(configuration.getCacheWriterName()).newInstance();
+        requestedFactory.setCacheWriter(writer);
+      } catch (InstantiationException e) {
+        throw new RuntimeException("Could not set a cacheWriter for the region", e);
+      } catch (IllegalAccessException e) {
+        throw new RuntimeException("Could not set a cacheWriter for the region", e);
+      } catch (ClassNotFoundException e) {
+        throw new RuntimeException("Could not set a cacheWriter for the region", e);
+      }
+    }
+    return requestedFactory.create();
+  }
+
+  private RegionHelper() {
+  }
+
+  public static String getRebalanceResultsMessage(RebalanceResults results) {
+    StringBuilder builder = new StringBuilder();
+    for (PartitionRebalanceInfo rebalanceInfo : results.getPartitionRebalanceDetails()) {
+      // Log the overall results
+      fillInRebalanceResultsSummary(builder, rebalanceInfo);
+
+      // Log the 'Before' results
+      fillInRebalanceResultsMemberDetails(builder, rebalanceInfo.getPartitionMemberDetailsBefore(), "Before");
+
+      // Log the 'After' results
+      fillInRebalanceResultsMemberDetails(builder, rebalanceInfo.getPartitionMemberDetailsAfter(), "After");
+    }
+    return builder.toString();
+  }
+
+  private static void fillInRebalanceResultsSummary(StringBuilder builder, PartitionRebalanceInfo rebalanceInfo) {
+    builder.append("\nRebalanced region ")
+        .append(rebalanceInfo.getRegionPath())
+        .append(" in ")
+        .append(rebalanceInfo.getTime())
+        .append(" ms")
+
+        .append("\nCreated ")
+        .append(rebalanceInfo.getBucketCreatesCompleted())
+        .append(" buckets containing ")
+        .append(rebalanceInfo.getBucketCreateBytes())
+        .append(" bytes in ")
+        .append(rebalanceInfo.getBucketCreateTime())
+        .append(" ms")
+
+        .append("\nTransferred ")
+        .append(rebalanceInfo.getBucketTransfersCompleted())
+        .append(" buckets containing ")
+        .append(rebalanceInfo.getBucketTransferBytes())
+        .append(" bytes in ")
+        .append(rebalanceInfo.getBucketTransferTime())
+        .append(" ms")
+
+        .append("\nTransferred ")
+        .append(rebalanceInfo.getPrimaryTransfersCompleted())
+        .append(" primary buckets in ")
+        .append(rebalanceInfo.getPrimaryTransferTime())
+        .append(" ms");
+  }
+
+  private static void fillInRebalanceResultsMemberDetails(StringBuilder builder, Set<PartitionMemberInfo> memberInfoSet,
+      String when) {
+    builder.append("\nMember Info ").append(when).append(" Rebalance:\n");
+    for (PartitionMemberInfo info : memberInfoSet) {
+      builder.append("\tdistributedMember=")
+          .append(info.getDistributedMember())
+          .append(", configuredMaxMemory=")
+          .append(info.getConfiguredMaxMemory())
+          .append(", size=")
+          .append(info.getSize())
+          .append(", bucketCount=")
+          .append(info.getBucketCount())
+          .append(", primaryCount=")
+          .append(info.getPrimaryCount());
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionSizeFunction.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionSizeFunction.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionSizeFunction.java
new file mode 100644
index 0000000..13791a3
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionSizeFunction.java
@@ -0,0 +1,56 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.execute.Function;
+import com.gemstone.gemfire.cache.execute.FunctionContext;
+import com.gemstone.gemfire.cache.execute.RegionFunctionContext;
+
+import java.util.Properties;
+
+public class RegionSizeFunction implements Function, Declarable {
+
+  private static final long serialVersionUID = -2791590491585777990L;
+
+  public static final String ID = "region-size-function";
+
+  public void execute(FunctionContext context) {
+    RegionFunctionContext rfc = (RegionFunctionContext) context;
+    context.getResultSender().lastResult(rfc.getDataSet().size());
+  }
+
+  public String getId() {
+    return ID;
+  }
+
+  public boolean hasResult() {
+    return true;
+  }
+
+  public boolean optimizeForWrite() {
+    return true;
+  }
+
+  public boolean isHA() {
+    return true;
+  }
+
+  @Override
+  public void init(Properties arg0) {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionStatus.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionStatus.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionStatus.java
new file mode 100644
index 0000000..fec1fc1
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/RegionStatus.java
@@ -0,0 +1,21 @@
+/*
+ * 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.util;
+
+public enum RegionStatus {
+  VALID, INVALID
+}


[35/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractSessionAttributes.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractSessionAttributes.java
new file mode 100644
index 0000000..c4af041
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractSessionAttributes.java
@@ -0,0 +1,188 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaEvent.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaEvent.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaEvent.java
new file mode 100644
index 0000000..4c248dd
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaEvent.java
@@ -0,0 +1,119 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
new file mode 100644
index 0000000..cb4f673
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaQueuedSessionAttributes.java
@@ -0,0 +1,94 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaSessionAttributes.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
new file mode 100644
index 0000000..8cc9866
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/DeltaSessionAttributes.java
@@ -0,0 +1,75 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
new file mode 100644
index 0000000..15936ba
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/ImmediateSessionAttributes.java
@@ -0,0 +1,68 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/QueuedSessionAttributes.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
new file mode 100644
index 0000000..8d20b43
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/QueuedSessionAttributes.java
@@ -0,0 +1,65 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/SessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/SessionAttributes.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/SessionAttributes.java
new file mode 100644
index 0000000..b3b0cef
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/SessionAttributes.java
@@ -0,0 +1,120 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/NamedThreadFactory.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/NamedThreadFactory.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/NamedThreadFactory.java
new file mode 100644
index 0000000..7491cf0
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/NamedThreadFactory.java
@@ -0,0 +1,68 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/ThreadLocalSession.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/ThreadLocalSession.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/ThreadLocalSession.java
new file mode 100644
index 0000000..996b1fd
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/ThreadLocalSession.java
@@ -0,0 +1,39 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/TypeAwareMap.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/TypeAwareMap.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/TypeAwareMap.java
new file mode 100644
index 0000000..705bafd
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/util/TypeAwareMap.java
@@ -0,0 +1,50 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatistics.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatistics.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatistics.java
new file mode 100644
index 0000000..9f945da
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatistics.java
@@ -0,0 +1,78 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatisticsMXBean.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatisticsMXBean.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatisticsMXBean.java
new file mode 100644
index 0000000..33cfc3e
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/jmx/SessionStatisticsMXBean.java
@@ -0,0 +1,30 @@
+/*
+ * 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/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/AbstractListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/AbstractListener.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/AbstractListener.java
new file mode 100644
index 0000000..0bca895
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/AbstractListener.java
@@ -0,0 +1,57 @@
+/*
+* 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/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/BasicServlet.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/BasicServlet.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/BasicServlet.java
new file mode 100644
index 0000000..5804317
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/BasicServlet.java
@@ -0,0 +1,52 @@
+/*
+* 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/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/Callback.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/Callback.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/Callback.java
new file mode 100644
index 0000000..fa5b64f
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/Callback.java
@@ -0,0 +1,30 @@
+/*
+ * 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/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CallbackServlet.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CallbackServlet.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CallbackServlet.java
new file mode 100644
index 0000000..3050280
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CallbackServlet.java
@@ -0,0 +1,91 @@
+/*
+* 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";
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CommonTests.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CommonTests.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CommonTests.java
new file mode 100644
index 0000000..4a37d36
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/CommonTests.java
@@ -0,0 +1,582 @@
+/*
+* 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.mockrunner.mock.web.MockHttpServletRequest;
+import com.mockrunner.mock.web.MockHttpServletResponse;
+import com.mockrunner.mock.web.MockHttpSession;
+import com.mockrunner.servlet.BasicServletTestCaseAdapter;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import java.util.concurrent.TimeUnit;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionAttributeListener;
+
+import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.*;
+
+/**
+ * This servlet tests the effects of the downstream SessionCachingFilter filter.
+ * When these tests are performed, the filter would already have taken effect.
+ */
+public abstract class CommonTests extends BasicServletTestCaseAdapter {
+
+  protected static final String CONTEXT_PATH = "/test";
+
+  @Test
+  public void testGetSession1() throws Exception {
+    doFilter();
+    HttpSession session1 =
+        ((HttpServletRequest) getFilteredRequest()).getSession();
+    HttpSession session2 =
+        ((HttpServletRequest) getFilteredRequest()).getSession();
+
+    assertSame("Session should be the same", session1, session2);
+  }
+
+  @Test
+  public void testGetSession2() throws Exception {
+    doFilter();
+
+    HttpSession session1 = ((HttpServletRequest) getFilteredRequest()).getSession();
+
+    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
+    Cookie cookie = (Cookie) response.getCookies().get(0);
+    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
+
+    doFilter();
+
+    HttpSession session2 = ((HttpServletRequest) getFilteredRequest()).getSession();
+
+    assertEquals("Session objects across requests should be the same", session1, session2);
+  }
+
+  @Test
+  public void testGetAttributeRequest1() throws Exception {
+    doFilter();
+
+    getFilteredRequest().setAttribute("foo", "bar");
+
+    assertEquals("bar", getFilteredRequest().getAttribute("foo"));
+    assertNull("Unknown attribute should be null",
+        getFilteredRequest().getAttribute("baz"));
+  }
+
+  @Test
+  public void testGetAttributeRequest2() throws Exception {
+    // Setup
+    CallbackServlet s = (CallbackServlet) getServlet();
+    s.setCallback(new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) {
+        request.setAttribute("foo", "bar");
+      }
+    });
+    doFilter();
+
+    assertEquals("bar", getFilteredRequest().getAttribute("foo"));
+    assertNull("Unknown attribute should be null",
+        getFilteredRequest().getAttribute("baz"));
+  }
+
+  @Test
+  public void testGetAttributeSession1() throws Exception {
+    doFilter();
+
+    ((HttpServletRequest) getFilteredRequest()).getSession().setAttribute("foo", "bar");
+
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    assertEquals("bar", request.getSession().getAttribute("foo"));
+  }
+
+  /**
+   * Are attributes preserved across client requests?
+   */
+  @Test
+  public void testGetAttributeSession2() throws Exception {
+    doFilter();
+
+    ((HttpServletRequest) getFilteredRequest()).getSession().setAttribute("foo", "bar");
+
+    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
+    Cookie cookie = (Cookie) response.getCookies().get(0);
+    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
+
+    doFilter();
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+
+    assertEquals("bar", request.getSession().getAttribute("foo"));
+  }
+
+  /**
+   * Setting a session attribute to null should remove it
+   */
+  @Test
+  public void testSetAttributeNullSession1() throws Exception {
+    // Setup
+    CallbackServlet s = (CallbackServlet) getServlet();
+    s.setCallback(new Callback() {
+      private boolean called = false;
+
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) {
+        if (called) {
+          request.getSession().setAttribute("foo", null);
+        } else {
+          request.getSession().setAttribute("foo", "bar");
+          called = true;
+        }
+      }
+    });
+
+    doFilter();
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+
+    String attr = (String) session.getAttribute("foo");
+    assertNull("Attribute should be null but is " + attr, attr);
+  }
+
+
+  /**
+   * Test that various methods throw the appropriate exception when the session is
+   * invalid.
+   */
+  @Test
+  public void testInvalidate1() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.getAttribute("foo");
+      fail("Session should be invalid and an exception should be thrown");
+    } catch (IllegalStateException iex) {
+      // Pass
+    }
+  }
+
+  @Test
+  public void testInvalidate2() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.getAttributeNames();
+      fail("Session should be invalid and an exception should be thrown");
+    } catch (IllegalStateException iex) {
+      // Pass
+    }
+  }
+
+  @Ignore(value = "until mockrunner 1.0.9 - see pull request #23")
+  public void testInvalidate3() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.getCreationTime();
+      fail("Session should be invalid and an exception should be thrown");
+    } catch (IllegalStateException iex) {
+      // Pass
+    }
+  }
+
+  @Test
+  public void testInvalidate4() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.getId();
+    } catch (Exception iex) {
+      fail("Exception should not be thrown");
+    }
+  }
+
+  @Test
+  public void testInvalidate5() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.getLastAccessedTime();
+      fail("Session should be invalid and an exception should be thrown");
+    } catch (IllegalStateException iex) {
+      // Pass
+    }
+  }
+
+  @Test
+  public void testInvalidate6() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.getMaxInactiveInterval();
+    } catch (Exception ex) {
+      fail("Exception should not be thrown");
+    }
+  }
+
+  @Test
+  public void testInvalidate7() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.getServletContext();
+    } catch (Exception ex) {
+      fail("Exception should not be thrown");
+    }
+  }
+
+  @Test
+  public void testInvalidate8() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.isNew();
+      fail("Session should be invalid and an exception should be thrown");
+    } catch (IllegalStateException iex) {
+      // Pass
+    }
+  }
+
+  @Test
+  public void testInvalidate9() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.removeAttribute("foo");
+      fail("Session should be invalid and an exception should be thrown");
+    } catch (IllegalStateException iex) {
+      // Pass
+    }
+  }
+
+  @Test
+  public void testInvalidate10() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.setAttribute("foo", "bar");
+      fail("Session should be invalid and an exception should be thrown");
+    } catch (IllegalStateException iex) {
+      // Pass
+    }
+  }
+
+  @Test
+  public void testInvalidate11() throws Exception {
+    doFilter();
+
+    HttpSession session = ((HttpServletRequest) getFilteredRequest()).getSession();
+    session.invalidate();
+
+    try {
+      session.setMaxInactiveInterval(1);
+    } catch (Exception ex) {
+      fail("Exception should not be thrown");
+    }
+  }
+
+  /**
+   * Test that Session Attribute events get triggered
+   */
+  @Test
+  public void testSessionAttributeListener1() throws Exception {
+    AbstractListener listener = new HttpSessionAttributeListenerImpl();
+    RendezvousManager.registerListener(listener);
+    listener.setLatch(3);
+
+    doFilter();
+
+    // Ugh
+    MockHttpSession session = (MockHttpSession) ((GemfireHttpSession) ((HttpServletRequest) getFilteredRequest()).getSession()).getNativeSession();
+    session.addAttributeListener((HttpSessionAttributeListener) listener);
+    session.setAttribute("foo", "bar");
+    session.setAttribute("foo", "baz");
+    session.setAttribute("foo", null);
+
+    assertTrue("Event timeout", listener.await(1, TimeUnit.SECONDS));
+    assertEquals(ListenerEventType.SESSION_ATTRIBUTE_ADDED, listener.getEvents().get(0));
+    assertEquals(ListenerEventType.SESSION_ATTRIBUTE_REPLACED,
+        listener.getEvents().get(1));
+    assertEquals(ListenerEventType.SESSION_ATTRIBUTE_REMOVED,
+        listener.getEvents().get(2));
+  }
+
+  /**
+   * Test that both replace and remove events get triggered
+   */
+  @Test
+  public void testHttpSessionBindingListener1() throws Exception {
+    doFilter();
+
+    HttpSession session =
+        ((HttpServletRequest) getFilteredRequest()).getSession();
+
+    HttpSessionBindingListenerImpl listener1 =
+        new HttpSessionBindingListenerImpl(2);
+    HttpSessionBindingListenerImpl listener2 =
+        new HttpSessionBindingListenerImpl(2);
+
+    session.setAttribute("foo", listener1);
+    session.setAttribute("foo", listener2);
+    session.setAttribute("foo", null);
+
+    assertTrue("Event timeout", listener1.await(1, TimeUnit.SECONDS));
+    assertTrue("Event timeout", listener2.await(1, TimeUnit.SECONDS));
+
+    assertEquals("Event list size incorrect", 2, listener1.getEvents().size());
+    assertEquals("Event list size incorrect", 2, listener2.getEvents().size());
+    assertEquals(ListenerEventType.SESSION_VALUE_BOUND, listener1.getEvents().get(0));
+    assertEquals(ListenerEventType.SESSION_VALUE_UNBOUND,
+        listener1.getEvents().get(1));
+    assertEquals(ListenerEventType.SESSION_VALUE_BOUND, listener2.getEvents().get(0));
+    assertEquals(ListenerEventType.SESSION_VALUE_UNBOUND,
+        listener2.getEvents().get(1));
+  }
+
+  @Test
+  public void testGetId1() throws Exception {
+    doFilter();
+
+    assertNotNull("Session Id should not be null",
+        ((HttpServletRequest) getFilteredRequest()).getSession().getId());
+  }
+
+  /**
+   * Test that multiple calls from the same client return the same session id
+   */
+  @Test
+  public void testGetId2() throws Exception {
+    doFilter();
+
+    String sessionId = ((HttpServletRequest) getFilteredRequest()).getSession().getId();
+
+    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
+    Cookie cookie = (Cookie) response.getCookies().get(0);
+    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
+
+    doFilter();
+
+    assertEquals("Session Ids should be the same", sessionId,
+        ((HttpServletRequest) getFilteredRequest()).getSession().getId());
+  }
+
+  @Test
+  public void testGetCreationTime1() throws Exception {
+    doFilter();
+
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    assertTrue("Session should have a non-zero creation time",
+        request.getSession().getCreationTime() > 0);
+  }
+
+
+  /**
+   * Test that multiple calls from the same client don't change the creation time.
+   */
+  @Test
+  public void testGetCreationTime2() throws Exception {
+    doFilter();
+
+    long creationTime = ((HttpServletRequest) getFilteredRequest()).getSession().getCreationTime();
+
+    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
+    Cookie cookie = (Cookie) response.getCookies().get(0);
+    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
+
+    doFilter();
+
+    assertEquals("Session creation time should be the same", creationTime,
+        ((HttpServletRequest) getFilteredRequest()).getSession().getCreationTime());
+  }
+
+  @Test
+  public void testResponseContainsRequestedSessionId1() throws Exception {
+    Cookie cookie = new Cookie("JSESSIONID", "999-GF");
+    getWebMockObjectFactory().getMockRequest().addCookie(cookie);
+
+    doFilter();
+
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+
+    assertEquals("Request does not contain requested session ID", "999-GF",
+        request.getRequestedSessionId());
+  }
+
+  @Test
+  public void testGetLastAccessedTime1() throws Exception {
+    doFilter();
+
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    assertTrue("Session should have a non-zero last access time",
+        request.getSession().getLastAccessedTime() > 0);
+  }
+
+
+  /**
+   * Test that repeated accesses update the last accessed time
+   */
+  @Test
+  public void testGetLastAccessedTime2() throws Exception {
+    // Setup
+    CallbackServlet s = (CallbackServlet) getServlet();
+    s.setCallback(new Callback() {
+
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) {
+        request.getSession();
+      }
+    });
+
+    doFilter();
+
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    long lastAccess = request.getSession().getLastAccessedTime();
+    assertTrue("Session should have a non-zero last access time", lastAccess > 0);
+
+    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
+    Cookie cookie = (Cookie) response.getCookies().get(0);
+
+    MockHttpServletRequest mRequest = getWebMockObjectFactory().createMockRequest();
+    mRequest.setRequestURL("/test/foo/bar");
+    mRequest.setContextPath(CONTEXT_PATH);
+    mRequest.addCookie(cookie);
+    getWebMockObjectFactory().addRequestWrapper(mRequest);
+
+    Thread.sleep(50);
+    doFilter();
+
+    assertTrue("Last access time should be changing",
+        request.getSession().getLastAccessedTime() > lastAccess);
+  }
+
+  @Test
+  public void testGetSetMaxInactiveInterval() throws Exception {
+    doFilter();
+
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    request.getSession().setMaxInactiveInterval(50);
+
+    assertEquals(50, request.getSession().getMaxInactiveInterval());
+  }
+
+  @Test
+  public void testIsNew1() throws Exception {
+    doFilter();
+
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    assertTrue("Session should be new", request.getSession().isNew());
+  }
+
+  /**
+   * Subsequent calls should not return true
+   */
+  @Test
+  public void testIsNew2() throws Exception {
+    // Setup
+    CallbackServlet s = (CallbackServlet) getServlet();
+    s.setCallback(new Callback() {
+
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) {
+        request.getSession();
+      }
+    });
+
+    doFilter();
+
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    request.getSession();
+
+    MockHttpServletResponse response = getWebMockObjectFactory().getMockResponse();
+    Cookie cookie = (Cookie) response.getCookies().get(0);
+
+    MockHttpServletRequest mRequest = getWebMockObjectFactory().createMockRequest();
+    mRequest.setRequestURL("/test/foo/bar");
+    mRequest.setContextPath(CONTEXT_PATH);
+    mRequest.addCookie(cookie);
+    getWebMockObjectFactory().addRequestWrapper(mRequest);
+
+    doFilter();
+
+    request = (HttpServletRequest) getFilteredRequest();
+    HttpSession s1 = request.getSession();
+
+    assertFalse("Subsequent isNew() calls should be false", request.getSession().isNew());
+  }
+
+  @Test
+  public void testIsRequestedSessionIdFromCookie() {
+    MockHttpServletRequest mRequest = getWebMockObjectFactory().getMockRequest();
+    Cookie c = new Cookie("JSESSIONID", "1-GF");
+    mRequest.addCookie(c);
+
+    doFilter();
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    request.getSession();
+
+    assertTrue(request.isRequestedSessionIdFromCookie());
+  }
+
+  @Test
+  public void testIsRequestedSessionIdFromURL() {
+    MockHttpServletRequest mRequest = getWebMockObjectFactory().getMockRequest();
+    mRequest.setRequestURL("/foo/bar;jsessionid=1");
+
+    doFilter();
+    HttpServletRequest request = (HttpServletRequest) getFilteredRequest();
+    request.getSession();
+
+    assertFalse("Session ID should not be from cookie",
+        request.isRequestedSessionIdFromCookie());
+    assertTrue("Session ID should be from URL", request.isRequestedSessionIdFromURL());
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionAttributeListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionAttributeListenerImpl.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionAttributeListenerImpl.java
new file mode 100644
index 0000000..6d5679a
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionAttributeListenerImpl.java
@@ -0,0 +1,46 @@
+/*
+* 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.HttpSessionAttributeListener;
+import javax.servlet.http.HttpSessionBindingEvent;
+
+/**
+ *
+ */
+public class HttpSessionAttributeListenerImpl extends AbstractListener
+    implements HttpSessionAttributeListener {
+
+  @Override
+  public synchronized void attributeAdded(HttpSessionBindingEvent se) {
+    events.add(ListenerEventType.SESSION_ATTRIBUTE_ADDED);
+    latch.countDown();
+  }
+
+  @Override
+  public synchronized void attributeRemoved(HttpSessionBindingEvent se) {
+    events.add(ListenerEventType.SESSION_ATTRIBUTE_REMOVED);
+    latch.countDown();
+  }
+
+  @Override
+  public synchronized void attributeReplaced(HttpSessionBindingEvent se) {
+    events.add(ListenerEventType.SESSION_ATTRIBUTE_REPLACED);
+    latch.countDown();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionBindingListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionBindingListenerImpl.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionBindingListenerImpl.java
new file mode 100644
index 0000000..ce25cb6
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionBindingListenerImpl.java
@@ -0,0 +1,42 @@
+/*
+* 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.Serializable;
+import javax.servlet.http.HttpSessionBindingEvent;
+import javax.servlet.http.HttpSessionBindingListener;
+
+public class HttpSessionBindingListenerImpl extends AbstractListener implements
+    HttpSessionBindingListener, Serializable {
+
+  public HttpSessionBindingListenerImpl(int i) {
+    super(i);
+  }
+
+  @Override
+  public synchronized void valueBound(HttpSessionBindingEvent event) {
+    events.add(ListenerEventType.SESSION_VALUE_BOUND);
+    latch.countDown();
+  }
+
+  @Override
+  public synchronized void valueUnbound(HttpSessionBindingEvent event) {
+    events.add(ListenerEventType.SESSION_VALUE_UNBOUND);
+    latch.countDown();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl.java
new file mode 100644
index 0000000..55510a6
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl.java
@@ -0,0 +1,41 @@
+/*
+* 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.modules.session.filter.SessionCachingFilter;
+
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
+
+public class HttpSessionListenerImpl extends AbstractListener
+    implements HttpSessionListener {
+
+  public synchronized void sessionCreated(HttpSessionEvent se) {
+    HttpSession gfeSession = SessionCachingFilter.getWrappingSession(
+        se.getSession());
+    gfeSession.setAttribute("gemfire-session-id", gfeSession.getId());
+    events.add(ListenerEventType.SESSION_CREATED);
+    latch.countDown();
+  }
+
+  public synchronized void sessionDestroyed(HttpSessionEvent se) {
+    events.add(ListenerEventType.SESSION_DESTROYED);
+    latch.countDown();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl2.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl2.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl2.java
new file mode 100644
index 0000000..bccd83f
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/HttpSessionListenerImpl2.java
@@ -0,0 +1,43 @@
+/*
+* 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.modules.session.filter.SessionCachingFilter;
+
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
+
+public class HttpSessionListenerImpl2 extends AbstractListener
+    implements HttpSessionListener {
+
+  @Override
+  public void sessionCreated(HttpSessionEvent se) {
+    events.add(ListenerEventType.SESSION_CREATED);
+    latch.countDown();
+  }
+
+  @Override
+  public void sessionDestroyed(HttpSessionEvent se) {
+    HttpSession gfeSession = SessionCachingFilter.getWrappingSession(
+        se.getSession());
+    assert (gfeSession != null);
+    events.add(ListenerEventType.SESSION_DESTROYED);
+    latch.countDown();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/MyServletTester.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/MyServletTester.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/MyServletTester.java
new file mode 100644
index 0000000..09c9536
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/MyServletTester.java
@@ -0,0 +1,38 @@
+/*
+* 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 org.eclipse.jetty.servlet.ServletTester;
+
+/**
+ * Extend the base ServletTester class with a couple of helper methods. This
+ * depends on a patched ServletTester class which exposes the _server variable
+ * as package-private.
+ */
+public class MyServletTester extends ServletTester {
+
+  public boolean isStarted() {
+//    return _server.isStarted();
+    return false;
+  }
+
+  public boolean isStopped() {
+//    return _server.isStopped();
+    return false;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/RendezvousManager.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/RendezvousManager.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/RendezvousManager.java
new file mode 100644
index 0000000..acb5a1b
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/RendezvousManager.java
@@ -0,0 +1,46 @@
+/*
+* 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.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ *
+ */
+public class RendezvousManager {
+
+  private static AbstractListener listener = null;
+
+  private static CountDownLatch latch = new CountDownLatch(1);
+
+  public static void registerListener(AbstractListener listener) {
+    RendezvousManager.listener = listener;
+    latch.countDown();
+  }
+
+  public static AbstractListener getListener() {
+    try {
+      latch.await(2, TimeUnit.SECONDS);
+    } catch (InterruptedException ex) {
+    }
+
+    return listener;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestAttributeListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestAttributeListenerImpl.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestAttributeListenerImpl.java
new file mode 100644
index 0000000..ab06356
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestAttributeListenerImpl.java
@@ -0,0 +1,45 @@
+/*
+* 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.ServletRequestAttributeEvent;
+import javax.servlet.ServletRequestAttributeListener;
+
+/**
+ * @author jdeppe
+ */
+public class ServletRequestAttributeListenerImpl extends AbstractListener
+    implements ServletRequestAttributeListener {
+
+  public synchronized void attributeAdded(ServletRequestAttributeEvent srae) {
+    events.add(ListenerEventType.SERVLET_REQUEST_ATTRIBUTE_ADDED);
+    latch.countDown();
+  }
+
+  public synchronized void attributeRemoved(ServletRequestAttributeEvent srae) {
+    events.add(ListenerEventType.SERVLET_REQUEST_ATTRIBUTE_REMOVED);
+    latch.countDown();
+  }
+
+  public synchronized void attributeReplaced(
+      ServletRequestAttributeEvent srae) {
+    events.add(ListenerEventType.SERVLET_REQUEST_ATTRIBUTE_REPLACED);
+    latch.countDown();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestListenerImpl.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestListenerImpl.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestListenerImpl.java
new file mode 100644
index 0000000..5e007dd
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/ServletRequestListenerImpl.java
@@ -0,0 +1,36 @@
+/*
+* 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.ServletRequestEvent;
+import javax.servlet.ServletRequestListener;
+
+public class ServletRequestListenerImpl extends AbstractListener
+    implements ServletRequestListener {
+
+  public synchronized void requestDestroyed(ServletRequestEvent sre) {
+    events.add(ListenerEventType.SERVLET_REQUEST_DESTROYED);
+    latch.countDown();
+  }
+
+  public synchronized void requestInitialized(ServletRequestEvent sre) {
+    events.add(ListenerEventType.SERVLET_REQUEST_INITIALIZED);
+    latch.countDown();
+  }
+
+}



[22/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/UncreatedSystemException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/UncreatedSystemException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/UncreatedSystemException.java
deleted file mode 100644
index 4552b86..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/UncreatedSystemException.java
+++ /dev/null
@@ -1,48 +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;
-
-/**
- * An <code>UncreatedSystemException</code> is thrown when the specified
- * locator's directory or configuration file can not be found.
- * <p>
- * The most likely reasons for this are:
- * <ul>
- * <li> The wrong locator directory was given.
- * <li> The locator was deleted or never created.
- * </ul>
- * <p>As of GemFire 5.0 this exception should be named UncreatedLocatorException.
- */
-public class UncreatedSystemException extends NoSystemException {
-private static final long serialVersionUID = 5424354567878425435L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>UncreatedSystemException</code>.
-   */
-  public UncreatedSystemException(String message) {
-    super(message);
-  }
-  /**
-   * Creates a new <code>UncreatedSystemException</code> with the given message
-   * and cause.
-   */
-  public UncreatedSystemException(String message, Throwable cause) {
-      super(message, cause);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/UnmodifiableException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/UnmodifiableException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/UnmodifiableException.java
deleted file mode 100644
index 3a79c3c..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/UnmodifiableException.java
+++ /dev/null
@@ -1,36 +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;
-
-/**
- * A <code>UnmodifiableException</code> is thrown when a
- * an attempt is made to modify a GemFire member configuration attribute
- * that can not currently be modified. In most cases the reason it can
- * not be modified is that the member is active.
- */
-public class UnmodifiableException extends GemFireException {
-private static final long serialVersionUID = -1043243260052395455L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>UnmodifiableException</code>.
-   */
-  public UnmodifiableException(String message) {
-    super(message);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/UnstartedSystemException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/UnstartedSystemException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/UnstartedSystemException.java
deleted file mode 100644
index 6a10f08..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/UnstartedSystemException.java
+++ /dev/null
@@ -1,49 +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;
-
-/**
- * An <code>UnstartedSystemException</code> is thrown when the specified
- * locator exists but is not running or could not be connected to.
- * <p>
- * The most likely reasons for this are:
- * <ul>
- * <li> The locator has not completely started.
- * <li> The locator is stopping.
- * <li> The locator died or was killed.
- * </ul>
- * <p>As of GemFire 5.0 this exception should be named UnstartedLocatorException.
- */
-public class UnstartedSystemException extends NoSystemException {
-private static final long serialVersionUID = -4285897556527521788L;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>UnstartedSystemException</code>.
-   */
-  public UnstartedSystemException(String message) {
-    super(message);
-  }
-  /**
-   * Creates a new <code>UnstartedSystemException</code> with the given message
-   * and cause.
-   */
-  public UnstartedSystemException(String message, Throwable cause) {
-      super(message, cause);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminConfig.java
deleted file mode 100755
index f3405bd..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminConfig.java
+++ /dev/null
@@ -1,157 +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.admin;
-
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.Date;
-
-
-/**
- * AdminConfig loads/stores the member information list. The list contains
- * all of the members being monitored.
- *
- * Config must be of the format:
- * <p>
- * <li> Name=What you want displayed as a name for the instance
- * <li> Type=SERVER|CLIENT
- * <li> Host=A valid hostname or IP Address where the instance is
- * running
- * <li> Port=The port you are using to open the monitor port for
- * the instance
- * @author dpark
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class AdminConfig
-{
-  // Name, Type, Host, Port
-  public static Entry[] loadConfig(File file) throws IOException
-  {
-
-    // Place all lines into stack
-    ArrayList entryList = new ArrayList();
-    FileReader reader = null;
-    BufferedReader fileReader = null;
-    try {
-      reader = new FileReader(file);
-      fileReader = new BufferedReader(reader);
-      // Read the first line.
-      String line = fileReader.readLine();
-
-      while (line != null) {
-        line = line.trim();
-
-        // Replace tabs with spaces
-        line = line.replace('\t', ' ');
-
-        // Skip all empty and comment lines
-          if (line.length() != 0 && line.startsWith("#") == false) {
-            try {
-              entryList.add(new Entry(line));
-            } catch (Exception ex) {
-          // ignore - drop any lines that are not valid
-        }
-          }
-          line = fileReader.readLine();
-      }
-    }
-    finally {
-      if (fileReader != null) {
-        fileReader.close();
-      }
-      if (reader != null) {
-        reader.close();
-      }
-    }
-
-    return (Entry[])entryList.toArray(new Entry[0]);
-  }
-
-  public static void storeConfig(File file, AdminConfig.Entry entries[]) throws IOException
-  {
-    FileOutputStream fos = null;
-    PrintStream ps = null;
-    try {
-      fos = new FileOutputStream(file);
-      ps = new PrintStream(fos);
-  
-      // Header
-      ps.print("#");
-      ps.println(LocalizedStrings.AdminConfig_THIS_FILE_IS_GENERATED_BY_ADMINCONSOLE_EDIT_AS_YOU_WISH_BUT_IT_WILL_BE_OVERWRITTEN_IF_IT_IS_MODIFIED_IN_ADMINCONSOLE.toLocalizedString());
-      ps.println("#");
-      ps.println(LocalizedStrings.AdminConfig_MODIFIED_0.toLocalizedString(new Date()));
-      ps.println("#");
-      ps.println("# Name, Type, Host, Port");
-      ps.println("#");
-      int len = entries.length;
-      for (int i = 0; i < len; i++) {
-        ps.println(entries[i].toString());
-      }
-      ps.flush();
-    }
-    finally {
-      if (ps != null) {
-        ps.close();
-      }
-      if (fos != null) {
-        fos.close();
-      }
-    }
-  }
-
-
-  public static class Entry
-  {
-    public String name;
-    public String type;
-    public String host;
-    public int port;
-
-    public Entry(String line)
-    {
-            // Split
-            String split[] = line.split(",");
-
-            // Convert line to parameters
-            name = split[0].trim();
-            type = split[1].trim();
-            host = split[2].trim();
-            port = Integer.parseInt(split[3]);
-    }
-
-    public Entry(String name, String type, String host, int port)
-    {
-      this.name = name;
-      this.type = type;
-      this.host = host;
-      this.port = port;
-    }
-
-    @Override // GemStoneAddition
-    public String toString()
-    {
-      return name + "," + type + "," + host + "," + port;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminDistributedSystem.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminDistributedSystem.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminDistributedSystem.java
deleted file mode 100755
index 7dd5220..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminDistributedSystem.java
+++ /dev/null
@@ -1,478 +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.admin;
-
-import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.cache.DataPolicy;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedMember;
-
-import java.io.File;
-import java.net.InetAddress;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-/**
- * Administrative interface for managing an entire GemFire distributed
- * system.  This interface should not be confused with {@link
- * com.gemstone.gemfire.distributed.DistributedSystem
- * DistributedSystem} that represents a connection to a GemFire
- * distributed system.
- *
- * @see AdminDistributedSystemFactory
- *
- * @author    Kirk Lund
- * @since     3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface AdminDistributedSystem {
-	
-  /**
-   * Retrieves the unique id for this system.
-   */
-  public String getId();
-  
-  /**
-   * Retrieves display friendly name for this system.  If this administrative
-   * VM defined an optional name for its connection to the distributed system,
-   * that name will be returned.  Otherwise the returned value will be {@link
-   * com.gemstone.gemfire.admin.AdminDistributedSystem#getId}.
-   */
-  public String getName();
-  
-  /**
-   * Retrieves the remote command and formatting this system should use to 
-   * access and/or manipulate resources on remote machines.
-   */
-  public String getRemoteCommand();
-
-  /**
-   * Sets the remote command and formatting this system should use to access 
-   * and/or manipulate resources on remote machines.
-   */
-  public void setRemoteCommand(String remoteCommand);
-
-  /**
-   * Sets the lowest level of alert that should be delivered to the
-   * {@link AlertListener}s registered on this
-   * <code>AdminDistributedSystem</code>.  The default level is {@link
-   * AlertLevel#WARNING}. 
-   */
-  public void setAlertLevel(AlertLevel level);
-
-  /**
-   * Returns the lowest level of alerts that should be delivered to
-   * the {@link AlertListener}s registered on this
-   * <code>AdminDistributedSystem</code>.
-   *
-   * @see #setAlertLevel
-   */
-  public AlertLevel getAlertLevel();
-  
-  /**
-   * Sets the lowest level of alert that should be delivered to the
-   * {@link AlertListener}s registered on this
-   * <code>AdminDistributedSystem</code>.  The default level is {@link
-   * AlertLevel#WARNING}. 
-   */
-  public void setAlertLevelAsString(String level);
-
-  /**
-   * Returns the lowest level of alerts that should be delivered to
-   * the {@link AlertListener}s registered on this
-   * <code>AdminDistributedSystem</code>.
-   *
-   * @see #setAlertLevelAsString
-   */
-  public String getAlertLevelAsString();
-
-  /**
-   * Registers an <code>AlertListener</code> that will receive all
-   * alerts that are at or above the {@linkplain #setAlertLevel alert
-   * level}. 
-   */
-  public void addAlertListener(AlertListener listener);
-
-  /**
-   * Unregisters an <code>AlertListener</code> 
-   */
-  public void removeAlertListener(AlertListener listener);
-
-  /**
-   * Retrieves the multicast address in use by this system.
-   */
-  public String getMcastAddress();
-
-  /**
-   * Retrieves the multicast port in use by this system.
-   */
-  public int getMcastPort();
-
-  /**
-   * Retrieves comma-delimited list locators to be used if multi-cast port is
-   * zero.  Format of each locators must be host[port].
-   */
-  public String getLocators();
-
-  /** 
-   * Returns true if this system has enabled the use of multicast for communications
-   */
-  public boolean isMcastEnabled();
-  
-  /**
-   * Returns true if any members of this system are currently running.
-   */
-  public boolean isRunning();
-
-  /** 
-   * Returns <code>true</code> if this is currently connected to the
-   * system.
-   */
-  public boolean isConnected();
-    
-  /**
-   * Starts all managed entities that are not currently running.
-   *
-   * @throws AdminException
-   *         If a problem is encountered while starting the managed
-   *         entities.
-   */
-  public void start() throws AdminException;
-
-  /**
-   * Stops all managed entities that are currently running.
-   *
-   * @throws AdminException
-   *         If a problem is encountered while starting the managed
-   *         entities.
-   */
-  public void stop() throws AdminException;
-
-  /**
-   * Merges and returns all system logs as a single formatted log.
-   */
-  public String displayMergedLogs();
-
-  /**
-   * Retrieves the license information for this installation of GemFire.
-   *
-   * @deprecated Removed licensing in 8.0.
-   */
-  public java.util.Properties getLicense();
-
-  /**
-   * Creates a new <code>DistributionLocator</code> that is ready to
-   * {@linkplain DistributionLocator#getConfig configure} and
-   * {@linkplain #start start}.
-   *
-   * <P>
-   *
-   * It is presumed that the newly-added locator is used to discover
-   * members of the distributed system.  That is, the host/port of the
-   * new locator is appended to the {@link #getLocators locators}
-   * attribute of this <code>AdminDistributedSystem</code>.
-   */
-  public DistributionLocator addDistributionLocator();
-  
-  /** 
-   * Returns array of <code>DistributionLocator</code>s administered
-   * by this <code>AdminDistributedSystem</code>.
-   */ 
-  public DistributionLocator[] getDistributionLocators();
-  
-  /**
-   * Retrieves SystemMember instances for every
-   * application that is running and currently connection to this
-   * system.  Note that this list does not include dedicated
-   * {@linkplain #getCacheVms cache server vms}.
-   */
-  public SystemMember[] getSystemMemberApplications() 
-  throws com.gemstone.gemfire.admin.AdminException;
-
-  /**
-   * Display in readable format the latest Alert in this distributed system.
-   */
-  public String getLatestAlert();
-  
-  /**
-   * Returns an object for monitoring the health of GemFire.
-   */
-  public GemFireHealth getGemFireHealth();
-
-  /**
-   * Connects to the distributed system.  This method will return
-   * immediately after spawning a background thread that connects to
-   * the distributed system.  As a result, a
-   * <code>AdminDistributedSystem</code> can be "connected" to before
-   * any members of the system have been started or have been seen.
-   * The {@link #waitToBeConnected} method will wait for the
-   * connection to be made.
-   *
-   * @see #isConnected
-   * @see #isRunning
-   * @see #waitToBeConnected
-   */
-  public void connect();
-
-  /**
-   * Wait for up to a given number of milliseconds for the connection
-   * to the distributed system to be made.
-   *
-   * @param timeout
-   *        The number of milliseconds to wait for the connection to
-   *        to be made.
-   *
-   * @return Whether or not the connection was made.
-   *         <code>false</code>, if the method times out
-   *
-   * @throws InterruptedException
-   *         If the thread invoking this method is interrupted while
-   *         waiting. 
-   * @throws IllegalStateException
-   *         If {@link #connect} has not yet been called.
-   */
-  public boolean waitToBeConnected(long timeout)
-    throws InterruptedException;
-
-  /**
-   * Disconnects from the distributed system.
-   */
-  public void disconnect();
-
-  /** Returns this system's configuration .*/  
-  public DistributedSystemConfig getConfig();
-  
-  /**
-   * Registers a listener that receives callbacks when a member joins
-   * or leaves the distributed system.
-   */
-  public void addMembershipListener(SystemMembershipListener listener);
-
-  /**
-   * Unregisters a membership listener
-   *
-   * @see #addMembershipListener
-   */
-  public void removeMembershipListener(SystemMembershipListener listener);
-
-  /**
-   * Registers a cache event listener.
-   * Does nothing if the listener is already registered. The listeners are called
-   * in the order they are registered.
-   * @param listener the listener to register.
-    * @since 5.0
-   */
-   public void addCacheListener(SystemMemberCacheListener listener);
-
-   /**
-    * Unregisters a cache listener. Does nothing if the listener is
-    * not registered.
-    * @param listener the listener to unregister.
-    * @since 5.0
-    */
-   public void removeCacheListener(SystemMemberCacheListener listener);
-
-  /**
-   * Creates a new cache server that is ready to {@linkplain
-   * CacheServerConfig configure} and {@linkplain #start
-   * start}.
-   *
-   * @since 4.0
-   * @deprecated as of 5.7 use {@link #addCacheVm} instead.
-   */
-  @Deprecated
-  public CacheServer addCacheServer() throws AdminException;
-
-  /**
-   * Returns all of the dedicated cache server members of the
-   * distributed system.  Because they are not managed entities,
-   * application VMs that host a server cache are not included in the
-   * array.
-   *
-   * @since 4.0
-   * @deprecated as of 5.7 use {@link #getCacheVms} instead.
-   */
-  @Deprecated
-  public CacheServer[] getCacheServers() throws AdminException;
-
-  /**
-   * Returns all the cache server members of the distributed system which are
-   * hosting a client queue for the particular durable-client having the given
-   * durableClientId
-   * 
-   * @param durableClientId -
-   *                durable-id of the client
-   * @return array of CacheServer(s) having the queue for the durable client
-   * @throws AdminException
-   *
-   * @since 5.6
-   */
-  public CacheServer[] getCacheServers(String durableClientId)
-      throws AdminException;
-
-  /**
-   * Creates a new cache vm that is ready to {@linkplain
-   * CacheVmConfig configure} and {@linkplain #start
-   * start}.
-   *
-   * @since 5.7
-   */
-  public CacheVm addCacheVm() throws AdminException;
-
-  /**
-   * Returns all of the dedicated cache server vm members of the
-   * distributed system.  Because they are not managed entities,
-   * application VMs that host a server cache are not included in the
-   * array.
-   *
-   * @since 5.7
-   */
-  public CacheVm[] getCacheVms() throws AdminException;
-
-  /**
-   * Returns the administrative SystemMember specified by the {@link
-   * com.gemstone.gemfire.distributed.DistributedMember}.
-   *
-   * @param distributedMember the distributed member to lookup
-   * @return administrative SystemMember for that distributed member
-   * @since 5.0
-   */
-  public SystemMember lookupSystemMember(DistributedMember distributedMember) 
-  throws AdminException;
-
-  /**
-   * Indicate to the distributed system that persistent files have been lost.
-   * When a member recovers from a set of persistent files, it will wait for
-   * other members that were also persisting the same region to start up. If the
-   * persistent files for those other members were lost, this method can be used
-   * to tell the remaining members to stop waiting for the lost data.
-   * 
-   * @param host
-   *          The host of the member whose files were lost.
-   * @param directory
-   *          The directory where those files resided.
-   * @since 6.5
-   * @deprecated use {@link #revokePersistentMember(UUID)} instead
-   */
-  public void revokePersistentMember(InetAddress host, String directory) throws AdminException;
-  
-  /**
-   * Indicate to the distributed system that persistent files have been lost.
-   * When a member recovers from a set of persistent files, it will wait for
-   * other members that were also persisting the same region to start up. If the
-   * persistent files for those other members were lost, this method can be used
-   * to tell the remaining members to stop waiting for the lost data.
-   * 
-   * @param diskStoreID
-   *          The unique id of the disk store which you are revoking. The unique
-   *          id can be discovered from {@link #getMissingPersistentMembers()}
-   * 
-   * @since 7.0
-   */
-  public void revokePersistentMember(UUID diskStoreID) throws AdminException;
-  
-  /**
-   * Retrieve the set of persistent files that the existing members are waiting
-   * for. See {@link AdminDistributedSystem#revokePersistentMember(InetAddress, String)}
-   * @return The persistent members that were known to the existing persistent members,
-   * when the existing members were last online.
-   * @throws AdminException
-   * @since 6.5
-   * 
-   */
-  public Set<PersistentID> getMissingPersistentMembers() throws AdminException;
-
-  /**
-   * Shuts down all the members of the distributed system with a cache that the admin 
-   * member is connected to, excluding the stand-alone locators. Calling this method
-   * will ensure that regions with the {@link DataPolicy#PERSISTENT_PARTITION} to
-   * be shutdown in a way which allows for a faster recovery when the members are 
-   * restarted.
-   * 
-   * Killing individual members can lead to inconsistencies in the members persistent
-   * data, which gemfire repairs on startup. Calling shutDownAllMembers makes sure
-   * that the persistent files are consistent on shutdown, which makes recovery faster.
-   *  
-   * This is equivalent to calling shutDownAllMembers(0);
-   * @return The set of members that were shutdown
-   * @since 6.5
-   */
-  public Set<DistributedMember> shutDownAllMembers() throws AdminException;
-  
-  /**
-   * Shuts down all the members of the distributed system with a cache that the
-   * admin member is connected to, excluding the stand-alone locators. Calling
-   * this method will ensure that regions with the
-   * {@link DataPolicy#PERSISTENT_PARTITION} to be shutdown in a way which
-   * allows for a faster recovery when the members are restarted.
-   * 
-   * Killing individual members can lead to inconsistencies in the members
-   * persistent data, which gemfire repairs on startup. Calling
-   * shutDownAllMembers makes sure that the persistent files are consistent on
-   * shutdown, which makes recovery faster.
-   * 
-   * @param timeout The amount of time to wait (in milliseconds) for the shutdown all to
-   *          complete. 
-   * @return The set of members that were shutdown, or null if the timeout is exceeded.
-   * 
-   * @since 6.5
-   */
-  public Set<DistributedMember> shutDownAllMembers(long timeout) throws AdminException;
-
-  /**
-   * Backup the persistent files for all of the members of the distributed
-   * system that the admin member is connected to. 
-   * 
-   * @param targetDir The directory where each member's backup should be placed.
-   * 
-   * @return The status of the backup, which includes the set of members
-   * that were backed up and the set of members that were known to be
-   * offline at the time of backup.
-   * @since 6.5
-   */
-  public BackupStatus backupAllMembers(File targetDir) throws AdminException;
-  
-  /**
-   * Incrementally backup the persistent files for all of the members of the distributed
-   * system that the admin member is connected to. Only new operation log files since the previous backup will be copied during this backup.
-   * The generated restore script will reference and copy operation log files from the previous backup.
-   * 
-   * @param targetDir The directory where each member's backup should be placed.
-   * @param baselineDir The directory of a previous backup.
-   * If this parameter is null or the directory does not exist (on a member by member basis)
-   * a full backup will be performed for the member. 
-   * 
-   * @return The status of the backup, which includes the set of members
-   * that were backed up and the set of members that were known to be
-   * offline at the time of backup.
-   * @since 6.5
-   */
-  public BackupStatus backupAllMembers(File targetDir,File baselineDir) throws AdminException;
-  
-  /**
-   * Compact the persistent files for all of the members of the distributed
-   * system that the admin member connected to. 
-   * 
-   * This is equivalent to calling {DiskStore#forceCompaction} on all members.
-   * 
-   * @return The set of members that compacted their disk stores.
-   * @since 6.5
-   */
-  public Map<DistributedMember, Set<PersistentID>> compactAllDiskStores() throws AdminException;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminDistributedSystemFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminDistributedSystemFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminDistributedSystemFactory.java
deleted file mode 100755
index 8c48e29..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminDistributedSystemFactory.java
+++ /dev/null
@@ -1,163 +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.admin;
-
-import com.gemstone.gemfire.admin.internal.DistributedSystemConfigImpl;
-import com.gemstone.gemfire.admin.internal.AdminDistributedSystemImpl;
-import com.gemstone.gemfire.distributed.DistributedSystem;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfigImpl;
-import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
-import com.gemstone.gemfire.i18n.LogWriterI18n;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-import com.gemstone.gemfire.internal.logging.LocalLogWriter;
-
-import java.util.Properties;
-
-/**
- * Factory for creating GemFire administration entities. 
- *
- * @author    Kirk Lund
- * @since     3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class AdminDistributedSystemFactory {
-  
-  /**
-   * Sets the address this VM should bind to when connecting to the distributed
-   * system.  This involves a system property, so using this option will limit
-   * all connections to distributed systems to this one network interface.
-   * <p>
-   * Using a null or empty bindAddress will clear the usage of this option and
-   * connections to distributed systems will return to using all available
-   * network interfaces.
-   * <p>
-   * This method always throws UnsupportedOperationException because it is
-   * now deprecated and is unsafe to use. Please use {@link 
-   * DistributedSystemConfig#setBindAddress} instead.
-   *
-   * @param bindAddress machine name or IP address to bind to
-   * @throws UnsupportedOperationException because of deprecation
-   * @deprecated Use {@link DistributedSystemConfig#setBindAddress} instead.
-   */
-  @Deprecated
-  public static void bindToAddress(String bindAddress) {
-    throw new UnsupportedOperationException(LocalizedStrings.AdminDistributedSystemFactory_PLEASE_USE_DISTRIBUTEDSYSTEMCONFIGSETBINDADDRESS_INSTEAD.toLocalizedString());
-  }
-  
-  /**
-   * Defines a "default" distributed system configuration based on VM
-   * system properties and the content of
-   * <code>gemfire.properties</code>.  The {@linkplain
-   * DistributedSystemConfig#DEFAULT_REMOTE_COMMAND} default remote
-   * command is used.
-   *
-   * @see DistributedSystem#connect
-   */
-  public static DistributedSystemConfig defineDistributedSystem() {
-    DistributionConfig dc = new DistributionConfigImpl(new Properties());
-
-    String remoteCommand =
-      DistributedSystemConfig.DEFAULT_REMOTE_COMMAND;
-    return new DistributedSystemConfigImpl(dc, remoteCommand);
-  }
-
-  /**
-   * Call this method with a value of <code>true</code>
-   * to dedicate the VM to GemFire administration only.
-   * Default is <code>false</code>.
-   * <p>This method <em>must</em> be called before calling
-   * {@link AdminDistributedSystem#connect}. It <em>must</em> also be called
-   * before {@link DistributedSystem#connect} is when creating a colocated distributed system.
-   * <p>
-   * Once it has been enabled be careful to only use GemFire APIs from the
-   * <code>com.gemstone.gemfire.admin</code> package. In particular do not create
-   * a {@link com.gemstone.gemfire.cache.Cache} or a normal {@link DistributedSystem}.
-   * @param adminOnly <code>true</code> if this VM should be limited to administration APIs;
-   *  <code>false</code> if this VM should allow all GemFire APIs.
-   * @throws IllegalStateException if a {@link DistributedSystem}
-   * or {@link AdminDistributedSystem} connection already exists.
-   * 
-   * @since 5.7
-   */
-  public static void setEnableAdministrationOnly(boolean adminOnly) {
-    InternalDistributedSystem.setEnableAdministrationOnly(adminOnly);
-  }
-  
-  /**
-   * Defines a distributed system configuration for administering the
-   * distributed system to which this VM is currently connected.  The
-   * <code>DistributedSystem</code> is used to configure the discovery
-   * mechanism (multicast or locators), bind address, SSL attributes,
-   * as well as the logger of the
-   * <code>DistributedSystemConfig</code>.  Note that the distributed
-   * system will not be able to be administered until the {@link
-   * AdminDistributedSystem#connect connect} method is invoked.
-   *
-   * @param system
-   *        A connection to the distributed system
-   * @param remoteCommand
-   *        The shell command that is used to launch processes that
-   *        run on remote machines.  If <code>null</code>, then the
-   *        {@linkplain DistributedSystemConfig#DEFAULT_REMOTE_COMMAND
-   *        default} will be used.
-   *
-   * @since 4.0
-   */
-  public static DistributedSystemConfig
-    defineDistributedSystem(DistributedSystem system,
-                            String remoteCommand)
-    throws AdminException {
-
-    InternalDistributedSystem internal =
-      (InternalDistributedSystem) system;
-    if (remoteCommand == null) {
-      remoteCommand = DistributedSystemConfig.DEFAULT_REMOTE_COMMAND;
-    }
-    
-    DistributedSystemConfigImpl impl =
-      new DistributedSystemConfigImpl(internal.getConfig(),
-                                      remoteCommand);
-    return impl;
-  }
-
-  /**
-   * Returns the distributed system for administrative monitoring and
-   * managing.  You must then call {@link
-   * AdminDistributedSystem#connect} before interacting with the
-   * actual system.
-   *
-   * @param config configuration definition of the system to administer
-   * @return administrative interface for a distributed system
-   */
-  public static AdminDistributedSystem getDistributedSystem(DistributedSystemConfig config) {
-    return new AdminDistributedSystemImpl((DistributedSystemConfigImpl)config);
-  }
-  
-  /**
-   * Returns a default GemFire LogWriterI18n for logging.  This LogWriterI18n will
-   * log to standard out.
-   *
-   * @return a GemFire LogWriterI18n for logging
-   */
-  public static LogWriterI18n getLogWriter() {
-    return new LocalLogWriter(DistributionConfig.DEFAULT_LOG_LEVEL);
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminException.java
deleted file mode 100755
index 5dbe593..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminException.java
+++ /dev/null
@@ -1,90 +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.admin;
-
-import com.gemstone.gemfire.GemFireCheckedException;
-
-/**
- * An <code>AdminException</code> is thrown when administration or monitoring
- * of GemFire fails. 
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class AdminException extends GemFireCheckedException {
-private static final long serialVersionUID = 879398950879472021L;
-
-  /**
-   * Constructs a new exception with <code>null</code> as its detail message.
-   * The cause is not initialized, and may subsequently be initialized by a
-   * call to {@link Throwable#initCause}.
-   */
-  public AdminException() {
-    super();
-  }
-
-  /**
-   * Constructs a new exception with the specified detail message.  The
-   * cause is not initialized, and may subsequently be initialized by
-   * a call to {@link Throwable#initCause}.
-   *
-   * @param   message   the detail message. The detail message is saved for 
-   *          later retrieval by the {@link #getMessage()} method.
-   */
-  public AdminException(String message) {
-    super(message);
-  }
-
-  /**
-   * Constructs a new exception with the specified detail message and
-   * cause.  <p>Note that the detail message associated with
-   * <code>cause</code> is <i>not</i> automatically incorporated in
-   * this exception's detail message.
-   *
-   * @param  message the detail message (which is saved for later retrieval
-   *         by the {@link #getMessage()} method).
-   * @param  cause the cause (which is saved for later retrieval by the
-   *         {@link #getCause()} method).  (A <tt>null</tt> value is
-   *         permitted, and indicates that the cause is nonexistent or
-   *         unknown.)
-   */
-  public AdminException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-  /**
-   * Constructs a new exception with the specified cause.
-   * The detail
-   * message will be <tt>(cause==null ? null : cause.toString())</tt> (which
-   * typically contains the class and detail message of <tt>cause</tt>).
-   * This constructor is useful for exceptions that are little more than
-   * wrappers for other throwables (for example, {@link
-   * java.security.PrivilegedActionException}).
-   *
-   * @param  cause the cause (which is saved for later retrieval by the
-   *         {@link #getCause()} method).  (A <tt>null</tt> value is
-   *         permitted, and indicates that the cause is nonexistent or
-   *         unknown.)
-   */
-  public AdminException(Throwable cause) {
-    super(cause);
-  }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminXmlException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminXmlException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminXmlException.java
deleted file mode 100644
index 112f126..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AdminXmlException.java
+++ /dev/null
@@ -1,48 +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.admin;
-
-/**
- * Thrown when a problem is encountered while working with
- * admin-related XML data.
- *
- * @see DistributedSystemConfig#getEntityConfigXMLFile
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class AdminXmlException extends RuntimeAdminException {
-  private static final long serialVersionUID = -6848726449157550169L;
-
-  /**
-   * Creates a new <code>AdminXmlException</code> with the given
-   * descriptive message.
-   */
-  public AdminXmlException(String s) {
-    super(s);
-  }
-
-  /**
-   * Creates a new <code>AdminXmlException</code> with the given
-   * descriptive message and cause.
-   */
-  public AdminXmlException(String s, Throwable cause) {
-    super(s, cause);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/Alert.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/Alert.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/Alert.java
deleted file mode 100755
index 7c34bf9..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/Alert.java
+++ /dev/null
@@ -1,56 +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.admin;
-
-/**
- * An administration alert that is issued by a member of a GemFire
- * distributed system.  It is similar to a {@linkplain
- * com.gemstone.gemfire.i18n.LogWriterI18n log message}.
- *
- * @author    Kirk Lund
- * @see       AlertListener
- * @since     3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface Alert {
-  
-  /** The level at which this alert is issued */
-  public AlertLevel getLevel();
-
-  /**
-   * The member of the distributed system that issued the alert, or
-   * null if the issuer is no longer a member of the distributed system.
-   */
-  public SystemMember getSystemMember();
-
-  /** 
-   * The name of the {@linkplain
-   * com.gemstone.gemfire.distributed.DistributedSystem#getName
-   * distributed system}) through which the alert was issued.
-   */
-  public String getConnectionName();
-
-  /** The id of the source of the alert (such as a thread in a VM) */
-  public String getSourceId();
-
-  /** The alert's message */
-  public String getMessage();
-
-  /** The time at which the alert was issued */
-  public java.util.Date getDate();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AlertLevel.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AlertLevel.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AlertLevel.java
deleted file mode 100755
index e3633a1..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AlertLevel.java
+++ /dev/null
@@ -1,174 +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.admin;
-
-import com.gemstone.gemfire.internal.admin.Alert;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * Type-safe enumeration for {@link com.gemstone.gemfire.admin.Alert
- * Alert} level.
- *
- * @author    Kirk Lund
- * @since     3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class AlertLevel implements java.io.Serializable {
-  private static final long serialVersionUID = -4752438966587392126L;
-    
-  public static final AlertLevel WARNING =
-    new AlertLevel(Alert.WARNING, "WARNING");
-  public static final AlertLevel ERROR = 
-    new AlertLevel(Alert.ERROR, "ERROR");
-  public static final AlertLevel SEVERE =
-    new AlertLevel(Alert.SEVERE, "SEVERE");
-  
-  public static final AlertLevel OFF =
-    new AlertLevel(Alert.OFF, "OFF");
-
-  /** The severity level of this AlertLevel. Greater is more severe. */
-  private final transient int severity;
-  
-  /** The name of this AlertLevel. */
-  private final transient String name;
-  
-  // The 4 declarations below are necessary for serialization
-  /** int used as ordinal to represent this AlertLevel */
-  public final int ordinal = nextOrdinal++;
-
-  private static int nextOrdinal = 0;
-  
-  private static final AlertLevel[] VALUES =
-    { WARNING, ERROR, SEVERE, OFF };
-
-  private Object readResolve() throws java.io.ObjectStreamException {
-    return VALUES[ordinal];  // Canonicalize
-  }
-  
-  /** Creates a new instance of AlertLevel. */
-  private AlertLevel(int severity, String name) {
-    this.severity = severity;
-    this.name = name;
-  }
-    
-  /** Return the AlertLevel represented by specified ordinal */
-  public static AlertLevel fromOrdinal(int ordinal) {
-    return VALUES[ordinal];
-  }
-
-  /**
-   * Returns the <code>AlertLevel</code> for the given severity
-   *
-   * @throws IllegalArgumentException
-   *         If there is no alert level with the given
-   *         <code>severity</code> 
-   */
-  public static AlertLevel forSeverity(int severity) {
-    switch (severity) {
-    case Alert.WARNING:
-      return AlertLevel.WARNING;
-    case Alert.ERROR:
-      return AlertLevel.ERROR;
-    case Alert.SEVERE:
-      return AlertLevel.SEVERE;
-    case Alert.OFF:
-      return AlertLevel.OFF;
-    default:
-      throw new IllegalArgumentException(LocalizedStrings.AlertLevel_UNKNOWN_ALERT_SEVERITY_0.toLocalizedString(Integer.valueOf(severity)));
-    }
-  }
-
-  /**
-   * Returns the <code>AlertLevel</code> with the given name
-   *
-   * @throws IllegalArgumentException
-   *         If there is no alert level named <code>name</code>
-   */
-  public static AlertLevel forName(String name) {
-    for (int i = 0; i < VALUES.length; i++) {
-      AlertLevel level = VALUES[i];
-      if (level.getName().equalsIgnoreCase(name)) {
-        return level;
-      }
-    }
-
-    throw new IllegalArgumentException(LocalizedStrings.AlertLevel_THERE_IS_NO_ALERT_LEVEL_0.toLocalizedString(name));
-  }
-
-  public int getSeverity() {
-    return this.severity;
-  }
-  
-  public String getName() {
-    return this.name;
-  }
-
-  public static AlertLevel[] values() {
-    return VALUES;
-  }
-  
-  /** 
-   * Returns a string representation for this alert level.
-   *
-   * @return the name of this alert level
-   */
-  @Override
-  public String toString() {
-    return this.name /* + "=" + this.severity */;
-  }
-
-	/**
-	 * Indicates whether some other object is "equal to" this one.
-	 *
-	 * @param  other  the reference object with which to compare.
-	 * @return true if this object is the same as the obj argument;
-	 *         false otherwise.
-	 */
-  @Override
-	public boolean equals(Object other) {
-		if (other == this) return true;
-		if (other == null) return false;
-		if (!(other instanceof AlertLevel)) return  false;
-		final AlertLevel that = (AlertLevel) other;
-
-		if (this.severity != that.severity) return false;
-		if (this.name != that.name &&
-	  		!(this.name != null &&
-	  		this.name.equals(that.name))) return false;
-
-		return true;
-	}
-
-	/**
-	 * Returns a hash code for the object. This method is supported for the
-	 * benefit of hashtables such as those provided by java.util.Hashtable.
-	 *
-	 * @return the integer 0 if description is null; otherwise a unique integer.
-	 */
-  @Override
-	public int hashCode() {
-		int result = 17;
-		final int mult = 37;
-
-		result = mult * result + this.severity;
-		result = mult * result + 
-			(this.name == null ? 0 : this.name.hashCode());
-
-		return result;
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AlertListener.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AlertListener.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AlertListener.java
deleted file mode 100755
index a19f93d..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/AlertListener.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.admin;
-
-/**
- * A listener whose callback methods are invoked when an {@link Alert}
- * is received.
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface AlertListener extends java.util.EventListener {
-
-  /**
-   * Invoked when an <code>Alert</code> is received.
-   */
-  public void alert(Alert alert);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/BackupStatus.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/BackupStatus.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/BackupStatus.java
deleted file mode 100644
index 547a759..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/BackupStatus.java
+++ /dev/null
@@ -1,49 +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.admin;
-
-import java.util.Map;
-import java.util.Set;
-
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedMember;
-
-/**
- * The status of a backup operation, returned by
- * {@link AdminDistributedSystem#backupAllMembers(java.io.File,java.io.File)}.
- * 
- * @author dsmith
- * @since 6.5 
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface BackupStatus {
-  
-  /**
-   * Returns a map of disk stores that were successfully backed up.
-   * The key is an online distributed member. The value is the set of disk 
-   * stores on that distributed member. 
-   */
-  Map<DistributedMember, Set<PersistentID>> getBackedUpDiskStores();
-  
-  /**
-   * Returns the set of disk stores that were known to be offline at the 
-   * time of the backup. These members were not backed up. If this set
-   * is not empty the backup may not contain a complete snapshot of 
-   * any partitioned regions in the distributed system.
-   */
-  Set<PersistentID> getOfflineDiskStores();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheDoesNotExistException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheDoesNotExistException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheDoesNotExistException.java
deleted file mode 100644
index f5216da..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheDoesNotExistException.java
+++ /dev/null
@@ -1,87 +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.admin;
-
-/**
- * An <code>CacheDoesNotExistException</code> is thrown when an attempt
- * is made to get a cache and one does not exist.
- *
- * @author    Darrel Schneider
- * @since     3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class CacheDoesNotExistException extends AdminException {
-private static final long serialVersionUID = -1639933911265729978L;
-
-  /**
-   * Constructs a new exception with <code>null</code> as its detail message.
-   * The cause is not initialized, and may subsequently be initialized by a
-   * call to {@link Throwable#initCause}.
-   */
-  public CacheDoesNotExistException() {
-    super();
-  }
-
-  /**
-   * Constructs a new exception with the specified detail message.  The
-   * cause is not initialized, and may subsequently be initialized by
-   * a call to {@link Throwable#initCause}.
-   *
-   * @param   message   the detail message. The detail message is saved for 
-   *          later retrieval by the {@link #getMessage()} method.
-   */
-  public CacheDoesNotExistException(String message) {
-    super(message);
-  }
-
-  /**
-   * Constructs a new exception with the specified detail message and
-   * cause.  <p>Note that the detail message associated with
-   * <code>cause</code> is <i>not</i> automatically incorporated in
-   * this exception's detail message.
-   *
-   * @param  message the detail message (which is saved for later retrieval
-   *         by the {@link #getMessage()} method).
-   * @param  cause the cause (which is saved for later retrieval by the
-   *         {@link #getCause()} method).  (A <tt>null</tt> value is
-   *         permitted, and indicates that the cause is nonexistent or
-   *         unknown.)
-   */
-  public CacheDoesNotExistException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-  /**
-   * Constructs a new exception with the specified cause and a detail
-   * message of <tt>(cause==null ? null : cause.toString())</tt> (which
-   * typically contains the class and detail message of <tt>cause</tt>).
-   * This constructor is useful for exceptions that are little more than
-   * wrappers for other throwables (for example, {@link
-   * java.security.PrivilegedActionException}).
-   *
-   * @param  cause the cause (which is saved for later retrieval by the
-   *         {@link #getCause()} method).  (A <tt>null</tt> value is
-   *         permitted, and indicates that the cause is nonexistent or
-   *         unknown.)
-   */
-  public CacheDoesNotExistException(Throwable cause) {
-    super(cause);
-  }
-    
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheHealthConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheHealthConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheHealthConfig.java
deleted file mode 100644
index 3636209..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheHealthConfig.java
+++ /dev/null
@@ -1,157 +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.admin;
-
-/**
- * Provides configuration information relating to the health of a
- * member of a GemFire distributed system that hosts a GemFire {@link
- * com.gemstone.gemfire.cache.Cache Cache}.
- *
- * <P>
- *
- * If any of the following criteria is true, then a cache member is
- * considered to be in {@link GemFireHealth#OKAY_HEALTH OKAY_HEALTH}.
- *
- * <UL>
- *
- * <LI><code>netSearch</code> operations take {@linkplain
- * #getMaxNetSearchTime too long} to complete.</LI>
- *
- * <LI>Cache <code>load</code> operations take {@linkplain
- * #getMaxLoadTime too long} to complete.</LI>
- *
- * <LI>The overall cache {@link #getMinHitRatio hitRatio} is too
- * small</LI> 
- *
- * <LI>The number of entries in the Cache {@link #getMaxEventQueueSize
- * event delivery queue} is too large.</LI>
- * 
- * <LI>If one of the regions is configured with {@link com.gemstone.gemfire.cache.LossAction#FULL_ACCESS FULL_ACCESS}
- * on role loss.</LI>
- *
- * </UL>
- *
- * If any of the following criteria is true, then a cache member is
- * considered to be in {@link GemFireHealth#POOR_HEALTH POOR_HEALTH}.
- * 
- * <UL>
- * 
- * <LI>If one of the regions is configured with {@link com.gemstone.gemfire.cache.LossAction#NO_ACCESS NO_ACCESS}
- * on role loss.</LI> 
- * 
- * <LI>If one of the regions is configured with {@link com.gemstone.gemfire.cache.LossAction#LIMITED_ACCESS LIMITED_ACCESS}
- * on role loss.</LI> 
- * 
- * </UL>
- * 
- * <UL>
- *
- * </UL>
- *
- * @author David Whitlock
- *
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- * */
-public interface CacheHealthConfig {
-
-  /** The default maximum number of milliseconds a
-   * <code>netSearch</code> operation can take before the cache member
-   * is considered to be unhealthy. */
-  public static final long DEFAULT_MAX_NET_SEARCH_TIME = 60 * 1000;
-
-  /** The default maximum mumber of milliseconds a cache
-   * <code>load</code> operation can take before the cache member is
-   * considered to be unhealthy. */
-  public static final long DEFAULT_MAX_LOAD_TIME = 60 * 1000;
-
-  /** The default minimum hit ratio of a healthy cache member. */
-  public static final double DEFAULT_MIN_HIT_RATIO = 0.0;
-
-  /** The default maximum number of entries in the event delivery queue
-   * of a healthy cache member. */
-  public static final long DEFAULT_MAX_EVENT_QUEUE_SIZE = 1000;
-
-  ///////////////////////  Instance Methods  ///////////////////////
-  
-  /**
-   * Returns the maximum number of milliseconds a
-   * <code>netSearch</code> operation can take before the cache member
-   * is considered to be unhealthy.
-   *
-   * @see #DEFAULT_MAX_NET_SEARCH_TIME
-   */
-  public long getMaxNetSearchTime();
-
-  /**
-   * Sets the maximum number of milliseconds a
-   * <code>netSearch</code> operation can take before the cache member
-   * is considered to be unhealthy.
-   *
-   * @see #getMaxNetSearchTime
-   */
-  public void setMaxNetSearchTime(long maxNetSearchTime);
-
-  /**
-   * Returns the maximum mumber of milliseconds a cache
-   * <code>load</code> operation can take before the cache member is
-   * considered to be unhealthy.
-   *
-   * @see #DEFAULT_MAX_LOAD_TIME
-   */
-  public long getMaxLoadTime();
-
-  /**
-   * Sets the maximum mumber of milliseconds a cache
-   * <code>load</code> operation can take before the cache member is
-   * considered to be unhealthy.
-   *
-   * @see #getMaxLoadTime
-   */
-  public void setMaxLoadTime(long maxLoadTime);
-
-  /**
-   * Returns the minimum hit ratio of a healthy cache member.
-   *
-   * @see #DEFAULT_MIN_HIT_RATIO
-   */
-  public double getMinHitRatio();
-
-  /**
-   * Sets the minimum hit ratio of a healthy cache member.
-   *
-   * @see #getMinHitRatio
-   */
-  public void setMinHitRatio(double minHitRatio);
-
-  /**
-   * Returns the maximum number of entries in the event delivery queue
-   * of a healthy cache member.
-   *
-   * @see #DEFAULT_MAX_EVENT_QUEUE_SIZE
-   */
-  public long getMaxEventQueueSize();
-
-  /**
-   * Sets the maximum number of entries in the event delivery queue
-   * of a healthy cache member.
-   *
-   * @see #getMaxEventQueueSize
-   */
-  public void setMaxEventQueueSize(long maxEventQueueSize);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheServer.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheServer.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheServer.java
deleted file mode 100644
index 7cee2fa..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheServer.java
+++ /dev/null
@@ -1,46 +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.admin;
-
-/**
- * A dedicated cache server VM that is managed by the administration
- * API.
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 5.7 use {@link CacheVm} instead.
- */
-@Deprecated
-public interface CacheServer extends SystemMember, ManagedEntity {
-  /**
-   * Returns the configuration of this cache vm
-   * @deprecated as of 5.7 use {@link CacheVm#getVmConfig} instead.
-   */
-  @Deprecated
-  public CacheServerConfig getConfig();
-  /**
-   * Find whether this server is primary for given client (durableClientId)
-   * 
-   * @param durableClientId -
-   *                durable-id of the client
-   * @return true if the server is primary for given client
-   * 
-   * @since 5.6
-   */
-  public boolean isPrimaryForDurableClient(String durableClientId);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheServerConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheServerConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheServerConfig.java
deleted file mode 100644
index 87f2fee..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheServerConfig.java
+++ /dev/null
@@ -1,55 +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.admin;
-
-/**
- * Configuration for a GemFire cache server that is managed by the
- * administration API.  The cache server may or may not be running.
- *
- * @see AdminDistributedSystem#addCacheServer()
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 5.7 use {@link CacheVmConfig} instead.
- */
-@Deprecated
-public interface CacheServerConfig extends CacheVmConfig {
-  /**
-   * Returns the <code>cache.xml</code> declarative caching
-   * initialization file used to configure this cache server VM.  By
-   * default, a cache server VM is started without an XML file.
-   */
-  public String getCacheXMLFile();
-
-  /**
-   * Sets the <code>cache.xml</code> declarative caching
-   * initialization file used to configure this cache server VM.
-   */
-  public void setCacheXMLFile(String cacheXml);
-
-  /**
-   * Returns the location(s) of user classes (such as cache loaders)
-   * required by the cache server VM.
-   */
-  public String getClassPath();
-
-  /**
-   * Sets the location(s) of user classes (such as cache loaders)
-   * required by the cache server VM.
-   */
-  public void setClassPath(String classpath);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheVm.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheVm.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheVm.java
deleted file mode 100755
index 87a15a6..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheVm.java
+++ /dev/null
@@ -1,38 +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.admin;
-
-/**
- * A dedicated cache server VM that is managed by the administration
- * API.
- * <p>Note that this may not represent an instance of
- * {@link com.gemstone.gemfire.cache.server.CacheServer}. It is possible for
- * a cache VM to be started but for it not to listen for client connections
- * in which case it is not a 
- * {@link com.gemstone.gemfire.cache.server.CacheServer}
- * but is an instance of this interface.
- *
- * @author darrel
- * @since 5.7
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface CacheVm extends SystemMember, ManagedEntity {
-  /**
-   * Returns the configuration of this cache vm
-   */
-  public CacheVmConfig getVmConfig();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheVmConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheVmConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheVmConfig.java
deleted file mode 100755
index 4193ec5..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/CacheVmConfig.java
+++ /dev/null
@@ -1,54 +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.admin;
-
-/**
- * Configuration for a GemFire cache server VM that is managed by the
- * administration API.  The VM may or may not be running.
- *
- * @see AdminDistributedSystem#addCacheVm()
- *
- * @author darrel
- * @since 5.7
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface CacheVmConfig extends ManagedEntityConfig {
-  /**
-   * Returns the <code>cache.xml</code> declarative caching
-   * initialization file used to configure this cache server VM.  By
-   * default, a cache server VM is started without an XML file.
-   */
-  public String getCacheXMLFile();
-
-  /**
-   * Sets the <code>cache.xml</code> declarative caching
-   * initialization file used to configure this cache server VM.
-   */
-  public void setCacheXMLFile(String cacheXml);
-
-  /**
-   * Returns the location(s) of user classes (such as cache loaders)
-   * required by the cache server VM.
-   */
-  public String getClassPath();
-
-  /**
-   * Sets the location(s) of user classes (such as cache loaders)
-   * required by the cache server VM.
-   */
-  public void setClassPath(String classpath);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ConfigurationParameter.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ConfigurationParameter.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ConfigurationParameter.java
deleted file mode 100755
index ee42305..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ConfigurationParameter.java
+++ /dev/null
@@ -1,74 +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.admin;
-
-/**
-* A single configuration parameter of a {@link SystemMember}.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface ConfigurationParameter {
-  
-  /** Gets the identifying name of this configuration parameter. */
-  public String getName();
-  
-  /** Gets the full description of this configuration parameter */
-  public String getDescription();
-  
-  /** Gets the current value */
-  public Object getValue();
-  
-  /** Gets the current value as a string */
-  public String getValueAsString();
-  
-  /** Gets the class type of the value */
-  public Class getValueType();
-  
-  /** True if this is modifiable; false if read-only */
-  public boolean isModifiable();
-  
-  /** Returns true if this config parameter uses a string array for value. */
-  public boolean isArray();
-  
-  /** Returns true if this config parameter represents an InetAddress value. */
-  public boolean isInetAddress();
-  
-  /** Returns true if this config parameter represents a File value. */
-  public boolean isFile();
-  
-  /** Returns true if this config parameter represents an octal value. */
-  public boolean isOctal();
-    
-  /** Returns true if this config parameter represents a string value. */
-  public boolean isString();
-  
-  /**
-   * Sets a new value for this configuration parameter.
-   *
-   * @param value   the new value which must be of type {@link #getValueType}
-   * @throws IllegalArgumentException
-   *         if value type does not match {@link #getValueType}
-   * @throws UnmodifiableConfigurationException
-   *         if attempting to set value when isModifiable is false
-   */
-  public void setValue(Object value) throws UnmodifiableConfigurationException;
-}
-


[30/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ResourceManagerValidator.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ResourceManagerValidator.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ResourceManagerValidator.java
new file mode 100644
index 0000000..c5edeea
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/ResourceManagerValidator.java
@@ -0,0 +1,166 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.control.ResourceManager;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class ResourceManagerValidator {
+
+  private static final Pattern DIGIT_PATTERN = Pattern.compile("(\\d+|[^\\d]+)");
+
+  public static void validateJavaStartupParameters(GemFireCache cache) {
+    // Get the input arguments
+    ResourceManager rm = cache.getResourceManager();
+    RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();
+    List<String> inputArguments = runtimeBean.getInputArguments();
+    if (cache.getLogger().fineEnabled()) {
+      cache.getLogger().fine("Full input java arguments: " + inputArguments);
+    }
+
+    // Validate the arguments based on VM vendor
+    String vmVendor = runtimeBean.getVmVendor();
+    if (vmVendor.startsWith("Sun") || vmVendor.startsWith("Apple")) {
+      // java.vm.vendor = Sun Microsystems Inc. || java.vm.vendor = Apple Inc.
+      validateSunArguments(cache, rm, inputArguments);
+    } else if (vmVendor.startsWith("IBM")) {
+      // java.vm.vendor = IBM Corporation
+      // TODO validate IBM input arguments
+    } else if (vmVendor.startsWith("BEA")) {
+      // java.vm.vendor = BEA Systems, Inc.
+      // TODO validate JRockit input arguments
+    }
+  }
+
+  private static void validateSunArguments(GemFireCache cache, ResourceManager rm, List<String> inputArguments) {
+    // Retrieve the -Xms, -Xmx, UseConcMarkSweepGC and CMSInitiatingOccupancyFraction arguments
+    String dashXms = null, dashXmx = null, useCMS = null, cmsIOF = null;
+    for (String argument : inputArguments) {
+      if (argument.startsWith("-Xms")) {
+        dashXms = argument;
+      } else if (argument.startsWith("-Xmx")) {
+        dashXmx = argument;
+      } else if (argument.equals("-XX:+UseConcMarkSweepGC")) {
+        useCMS = argument;
+      } else if (argument.startsWith("-XX:CMSInitiatingOccupancyFraction")) {
+        cmsIOF = argument;
+      }
+    }
+    if (cache.getLogger().fineEnabled()) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("Relevant input java arguments: ")
+          .append("dashXms=")
+          .append(dashXms)
+          .append("; dashXmx=")
+          .append(dashXmx)
+          .append("; useCMS=")
+          .append(useCMS)
+          .append("; cmsIOF=")
+          .append(cmsIOF);
+      cache.getLogger().fine(builder.toString());
+    }
+
+    // Validate the heap parameters
+    validateJavaHeapParameters(cache, dashXms, dashXmx);
+
+    // Verify CMS is specified
+    verifyCMSGC(cache, useCMS);
+
+    // Verify CMSInitiatingOccupancyFraction is specified
+    verifyCMSInitiatingOccupancyFraction(cache, rm, cmsIOF);
+  }
+
+  private static void validateJavaHeapParameters(GemFireCache cache, String dashXms, String dashXmx) {
+    if (dashXms == null) {
+      cache.getLogger()
+          .warning(
+              "Setting the initial size of the heap (configured using -Xms) is recommended so that GemFire cache eviction is optimal");
+    } else if (dashXmx == null) {
+      cache.getLogger()
+          .warning(
+              "Setting the maximum size of the heap (configured using -Xmx) is recommended so that GemFire cache eviction is optimal");
+    } else {
+      // Neither heap parameter is null. Parse them and verify they are the same.
+      List<String> dashXmsList = splitAtDigits(dashXms);
+      String dashXmsStr = dashXmsList.get(1);
+      List<String> dashXmxList = splitAtDigits(dashXmx);
+      String dashXmxStr = dashXmxList.get(1);
+      if (!dashXmsStr.equals(dashXmxStr)) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("Setting the initial (")
+            .append(dashXmsStr)
+            .append(dashXmsList.get(2))
+            .append(") and maximum (")
+            .append(dashXmxStr)
+            .append(dashXmxList.get(2))
+            .append(") sizes of the heap the same is recommended so that GemFire cache eviction is optimal");
+        cache.getLogger().warning(builder.toString());
+      }
+    }
+  }
+
+  private static void verifyCMSGC(GemFireCache cache, String useCMS) {
+    if (useCMS == null) {
+      cache.getLogger()
+          .warning(
+              "Using the concurrent garbage collector (configured using -XX:+UseConcMarkSweepGC) is recommended so that GemFire cache eviction is optimal");
+    }
+  }
+
+  private static void verifyCMSInitiatingOccupancyFraction(GemFireCache cache, ResourceManager rm, String cmsIOF) {
+    if (cmsIOF == null) {
+      cache.getLogger()
+          .warning(
+              "Setting the CMS initiating occupancy fraction (configured using -XX:CMSInitiatingOccupancyFraction=N) is recommended so that GemFire cache eviction is optimal");
+    } else {
+      // Parse the CMSInitiatingOccupancyFraction. Verify it is less than both eviction and critical thresholds.
+      int cmsIOFVal = Integer.parseInt(cmsIOF.split("=")[1]);
+      float currentEvictionHeapPercentage = rm.getEvictionHeapPercentage();
+      if (currentEvictionHeapPercentage != 0 && currentEvictionHeapPercentage < cmsIOFVal) {
+        cache.getLogger()
+            .warning(
+                "Setting the CMS initiating occupancy fraction (" + cmsIOFVal + ") less than the eviction heap percentage (" + currentEvictionHeapPercentage + ") is recommended so that GemFire cache eviction is optimal");
+      }
+      float currentCriticalHeapPercentage = rm.getCriticalHeapPercentage();
+      if (currentCriticalHeapPercentage != 0 && currentCriticalHeapPercentage < cmsIOFVal) {
+        cache.getLogger()
+            .warning(
+                "Setting the CMS initiating occupancy fraction (" + cmsIOFVal + ") less than the critical heap percentage (" + currentCriticalHeapPercentage + ") is recommended so that GemFire cache eviction is optimal");
+      }
+    }
+  }
+
+  private static List<String> splitAtDigits(String input) {
+    Matcher matcher = DIGIT_PATTERN.matcher(input);
+    List<String> result = new ArrayList<String>();
+    while (matcher.find()) {
+      result.add(matcher.group());
+    }
+    return result;
+  }
+
+  private ResourceManagerValidator() {
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/SessionCustomExpiry.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/SessionCustomExpiry.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/SessionCustomExpiry.java
new file mode 100644
index 0000000..25ee3b1
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/SessionCustomExpiry.java
@@ -0,0 +1,64 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.CustomExpiry;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.ExpirationAction;
+import com.gemstone.gemfire.cache.ExpirationAttributes;
+import com.gemstone.gemfire.cache.Region;
+
+import javax.servlet.http.HttpSession;
+import java.io.Serializable;
+import java.util.Properties;
+
+@SuppressWarnings("serial")
+public class SessionCustomExpiry implements CustomExpiry<String, HttpSession>, Serializable, Declarable {
+
+  private static final long serialVersionUID = 182735509690640051L;
+
+  private static final ExpirationAttributes EXPIRE_NOW = new ExpirationAttributes(1, ExpirationAction.DESTROY);
+
+  public ExpirationAttributes getExpiry(Region.Entry<String, HttpSession> entry) {
+    HttpSession session = entry.getValue();
+    if (session != null) {
+      return new ExpirationAttributes(entry.getValue().getMaxInactiveInterval(), ExpirationAction.DESTROY);
+    } else {
+      return EXPIRE_NOW;
+    }
+  }
+
+  public void close() {
+  }
+
+  public void init(Properties props) {
+  }
+
+  public boolean equals(Object obj) {
+    // This method is only implemented so that RegionCreator.validateRegion works properly.
+    // The EntryIdleTimeout comparison fails because two of these instances are not equal.
+    if (this == obj) {
+      return true;
+    }
+
+    if (obj == null || !(obj instanceof SessionCustomExpiry)) {
+      return false;
+    }
+
+    return true;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchPartitionedRegionEntriesFunction.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchPartitionedRegionEntriesFunction.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchPartitionedRegionEntriesFunction.java
new file mode 100644
index 0000000..d2b74c8
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchPartitionedRegionEntriesFunction.java
@@ -0,0 +1,100 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.execute.Function;
+import com.gemstone.gemfire.cache.execute.FunctionContext;
+import com.gemstone.gemfire.cache.execute.RegionFunctionContext;
+import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;
+
+import java.util.Properties;
+import java.util.Set;
+
+/**
+ * Touches the keys contained in the set of keys by performing a get on the partitioned region.
+ *
+ * @author Barry Oglesby
+ */
+public class TouchPartitionedRegionEntriesFunction implements Function, Declarable {
+
+  private static final long serialVersionUID = -3700389655056961153L;
+
+  private final Cache cache;
+
+  public static final String ID = "touch-partitioned-region-entries";
+
+  public TouchPartitionedRegionEntriesFunction() {
+    this(CacheFactory.getAnyInstance());
+  }
+
+  public TouchPartitionedRegionEntriesFunction(Cache cache) {
+    this.cache = cache;
+  }
+
+  @SuppressWarnings("unchecked")
+  public void execute(FunctionContext context) {
+    RegionFunctionContext rfc = (RegionFunctionContext) context;
+    Set<String> keys = (Set<String>) rfc.getFilter();
+
+    // Get local (primary) data for the context
+    Region primaryDataSet = PartitionRegionHelper.getLocalDataForContext(rfc);
+
+    if (this.cache.getLogger().fineEnabled()) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("Function ")
+          .append(ID)
+          .append(" received request to touch ")
+          .append(primaryDataSet.getFullPath())
+          .append("->")
+          .append(keys);
+      this.cache.getLogger().fine(builder.toString());
+    }
+
+    // Retrieve each value to update the lastAccessedTime.
+    // Note: getAll is not supported on LocalDataSet.
+    for (String key : keys) {
+      primaryDataSet.get(key);
+    }
+
+    // Return result to get around NPE in LocalResultCollectorImpl
+    context.getResultSender().lastResult(true);
+  }
+
+  public String getId() {
+    return ID;
+  }
+
+  public boolean optimizeForWrite() {
+    return true;
+  }
+
+  public boolean isHA() {
+    return false;
+  }
+
+  public boolean hasResult() {
+    return true;
+  }
+
+  public void init(Properties properties) {
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchReplicatedRegionEntriesFunction.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchReplicatedRegionEntriesFunction.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchReplicatedRegionEntriesFunction.java
new file mode 100644
index 0000000..735c27f
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/util/TouchReplicatedRegionEntriesFunction.java
@@ -0,0 +1,97 @@
+/*
+* 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.util;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.execute.Function;
+import com.gemstone.gemfire.cache.execute.FunctionContext;
+
+import java.util.Properties;
+import java.util.Set;
+
+/**
+ * Touches the keys contained in the set of keys by performing a get on the replicated region. This is a non-data-aware
+ * function invoked using onMembers or onServers.
+ *
+ * @author Barry Oglesby
+ */
+public class TouchReplicatedRegionEntriesFunction implements Function, Declarable {
+
+  private static final long serialVersionUID = -7424895036162243564L;
+
+  private final Cache cache;
+
+  public static final String ID = "touch-replicated-region-entries";
+
+  public TouchReplicatedRegionEntriesFunction() {
+    this(CacheFactory.getAnyInstance());
+  }
+
+  public TouchReplicatedRegionEntriesFunction(Cache cache) {
+    this.cache = cache;
+  }
+
+  public void execute(FunctionContext context) {
+    Object[] arguments = (Object[]) context.getArguments();
+    String regionName = (String) arguments[0];
+    Set<String> keys = (Set<String>) arguments[1];
+    if (this.cache.getLogger().fineEnabled()) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("Function ")
+          .append(ID)
+          .append(" received request to touch ")
+          .append(regionName)
+          .append("->")
+          .append(keys);
+      this.cache.getLogger().fine(builder.toString());
+    }
+
+    // Retrieve the appropriate Region and value to update the lastAccessedTime
+    Region region = this.cache.getRegion(regionName);
+    if (region != null) {
+      region.getAll(keys);
+    }
+
+    // Return result to get around NPE in LocalResultCollectorImpl
+    context.getResultSender().lastResult(true);
+  }
+
+  public String getId() {
+    return ID;
+  }
+
+  public boolean optimizeForWrite() {
+    return false;
+  }
+
+  public boolean isHA() {
+    return false;
+  }
+
+  public boolean hasResult() {
+    // Setting this to false caused the onServers method to only execute the
+    // function on one server.
+    return true;
+  }
+
+  public void init(Properties properties) {
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/resources/modules-version.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/resources/modules-version.properties b/extensions/geode-modules/src/main/resources/modules-version.properties
new file mode 100644
index 0000000..7a73b41
--- /dev/null
+++ b/extensions/geode-modules/src/main/resources/modules-version.properties
@@ -0,0 +1 @@
+version = @VERSION@
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/Callback.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/Callback.java b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/Callback.java
new file mode 100644
index 0000000..12e935d
--- /dev/null
+++ b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/Callback.java
@@ -0,0 +1,30 @@
+/*
+* 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;
+
+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 {
+
+  public void call(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/CommandServlet.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/CommandServlet.java b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/CommandServlet.java
new file mode 100644
index 0000000..32ac7d8
--- /dev/null
+++ b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/CommandServlet.java
@@ -0,0 +1,91 @@
+/*
+* 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;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ *
+ */
+public class CommandServlet extends HttpServlet {
+
+  private ServletContext context;
+
+  /**
+   * The standard servlet method overridden.
+   *
+   * @param request
+   * @param response
+   * @throws IOException
+   */
+  @Override
+  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+
+    QueryCommand cmd = QueryCommand.UNKNOWN;
+    String param = request.getParameter("param");
+    String value = request.getParameter("value");
+    PrintWriter out = response.getWriter();
+
+    String cmdStr = request.getParameter("cmd");
+    if (cmdStr != null) {
+      cmd = QueryCommand.valueOf(cmdStr);
+    }
+
+    HttpSession session;
+
+    switch (cmd) {
+      case SET:
+        session = request.getSession();
+        session.setAttribute(param, value);
+        break;
+      case GET:
+        session = request.getSession();
+        String val = (String) session.getAttribute(param);
+        if (val != null) {
+          out.write(val);
+        }
+        break;
+      case INVALIDATE:
+        session = request.getSession();
+        session.invalidate();
+        break;
+      case CALLBACK:
+        Callback c = (Callback) context.getAttribute("callback");
+        c.call(request, response);
+        break;
+    }
+  }
+
+  /**
+   * Save a reference to the ServletContext for later use.
+   *
+   * @param config
+   */
+  @Override
+  public void init(ServletConfig config) {
+    this.context = config.getServletContext();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/EmbeddedTomcat.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/EmbeddedTomcat.java b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/EmbeddedTomcat.java
new file mode 100644
index 0000000..53a305e
--- /dev/null
+++ b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/EmbeddedTomcat.java
@@ -0,0 +1,193 @@
+/*
+* 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;
+
+import com.gemstone.gemfire.modules.session.catalina.JvmRouteBinderValve;
+import org.apache.catalina.Context;
+import org.apache.catalina.Engine;
+import org.apache.catalina.Host;
+import org.apache.catalina.LifecycleException;
+import org.apache.catalina.Valve;
+import org.apache.catalina.connector.Connector;
+import org.apache.catalina.core.StandardEngine;
+import org.apache.catalina.core.StandardService;
+import org.apache.catalina.core.StandardWrapper;
+import org.apache.catalina.loader.WebappLoader;
+import org.apache.catalina.realm.MemoryRealm;
+import org.apache.catalina.startup.Embedded;
+import org.apache.catalina.valves.ValveBase;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+
+import javax.servlet.ServletException;
+import java.io.File;
+import java.net.InetAddress;
+import java.net.MalformedURLException;
+
+/**
+ *
+ */
+public class EmbeddedTomcat {
+
+  private String contextPath = null;
+  private Embedded container = null;
+  private Log logger = LogFactory.getLog(getClass());
+
+  /**
+   * The directory to create the Tomcat server configuration under.
+   */
+  private String catalinaHome = "tomcat";
+
+  /**
+   * The port to run the Tomcat server on.
+   */
+  private int port = 8089;
+
+  /**
+   * The classes directory for the web application being run.
+   */
+  private String classesDir = "target/classes";
+
+  private Context rootContext = null;
+
+  private Engine engine;
+
+  /**
+   * The web resources directory for the web application being run.
+   */
+  private String webappDir = "";
+
+  public EmbeddedTomcat(String contextPath, int port, String jvmRoute) throws MalformedURLException {
+    this.contextPath = contextPath;
+    this.port = port;
+
+    // create server
+    container = new Embedded();
+    container.setCatalinaHome(catalinaHome);
+    // Not really necessasry, but let's still do it...
+    container.setRealm(new MemoryRealm());
+
+    // create webapp loader
+    WebappLoader loader = new WebappLoader(this.getClass().getClassLoader());
+    if (classesDir != null) {
+      loader.addRepository(new File(classesDir).toURI().toURL().toString());
+    }
+
+    rootContext = container.createContext("", webappDir);
+    rootContext.setLoader(loader);
+    rootContext.setReloadable(true);
+    // Otherwise we get NPE when instantiating servlets
+    rootContext.setIgnoreAnnotations(true);
+
+    // create host
+    Host localHost = container.createHost("127.0.0.1", new File("").getAbsolutePath());
+    localHost.addChild(rootContext);
+
+    localHost.setDeployOnStartup(true);
+
+    // create engine
+    engine = container.createEngine();
+    engine.setName("localEngine");
+    engine.addChild(localHost);
+    engine.setDefaultHost(localHost.getName());
+    engine.setJvmRoute(jvmRoute);
+    engine.setService(new StandardService());
+    container.addEngine(engine);
+
+    // create http connector
+    Connector httpConnector = container.createConnector((InetAddress) null, port, false);
+    container.addConnector(httpConnector);
+    container.setAwait(true);
+
+    // Create the JVMRoute valve for session failover
+    ValveBase valve = new JvmRouteBinderValve();
+    ((StandardEngine) engine).addValve(valve);
+  }
+
+  /**
+   * Starts the embedded Tomcat server.
+   */
+  public void startContainer() throws LifecycleException {
+    // start server
+    container.start();
+
+    // add shutdown hook to stop server
+    Runtime.getRuntime().addShutdownHook(new Thread() {
+      @Override
+      public void run() {
+        stopContainer();
+      }
+    });
+  }
+
+  /**
+   * Stops the embedded Tomcat server.
+   */
+  public void stopContainer() {
+    try {
+      if (container != null) {
+        container.stop();
+        logger.info("Stopped container");
+      }
+    } catch (LifecycleException exception) {
+      logger.warn("Cannot Stop Tomcat" + exception.getMessage());
+    }
+  }
+
+  public StandardWrapper addServlet(String path, String name, String clazz) throws ServletException {
+    StandardWrapper servlet = (StandardWrapper) rootContext.createWrapper();
+    servlet.setName(name);
+    servlet.setServletClass(clazz);
+    servlet.setLoadOnStartup(1);
+
+    rootContext.addChild(servlet);
+    rootContext.addServletMapping(path, name);
+
+    servlet.setParent(rootContext);
+//        servlet.load();
+
+    return servlet;
+  }
+
+  public Embedded getEmbedded() {
+    return container;
+  }
+
+  public Context getRootContext() {
+    return rootContext;
+  }
+
+  public String getPath() {
+    return contextPath;
+  }
+
+  public void setPath(String path) {
+    this.contextPath = path;
+  }
+
+  public int getPort() {
+    return port;
+  }
+
+  public void addValve(Valve valve) {
+    ((StandardEngine) engine).addValve(valve);
+  }
+
+  public void removeValve(Valve valve) {
+    ((StandardEngine) engine).removeValve(valve);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/QueryCommand.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/QueryCommand.java b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/QueryCommand.java
new file mode 100644
index 0000000..a891c5a
--- /dev/null
+++ b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/QueryCommand.java
@@ -0,0 +1,34 @@
+/*
+ * 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;
+
+/**
+ * Basic commands to pass to our test servlet
+ */
+public enum QueryCommand {
+
+  SET,
+
+  GET,
+
+  INVALIDATE,
+
+  CALLBACK,
+
+  UNKNOWN;
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/TestSessionsBase.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/TestSessionsBase.java b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/TestSessionsBase.java
new file mode 100644
index 0000000..544658e
--- /dev/null
+++ b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/TestSessionsBase.java
@@ -0,0 +1,493 @@
+/*
+* 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;
+
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.internal.AvailablePortHelper;
+import com.gemstone.gemfire.modules.session.catalina.DeltaSessionManager;
+import com.gemstone.gemfire.modules.session.catalina.PeerToPeerCacheLifecycleListener;
+import com.meterware.httpunit.GetMethodWebRequest;
+import com.meterware.httpunit.WebConversation;
+import com.meterware.httpunit.WebRequest;
+import com.meterware.httpunit.WebResponse;
+import org.apache.catalina.core.StandardWrapper;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Test;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.beans.PropertyChangeEvent;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import static junit.framework.Assert.*;
+
+/**
+ *
+ */
+public abstract class TestSessionsBase {
+  private static EmbeddedTomcat server;
+
+  private static Region<String, HttpSession> region;
+
+  private static StandardWrapper servlet;
+
+  private static DeltaSessionManager sessionManager;
+
+  private static int port;
+
+  // Set up the servers we need
+  public static void setupServer(DeltaSessionManager manager) throws Exception {
+    port = AvailablePortHelper.getRandomAvailableTCPPort();
+    server = new EmbeddedTomcat("/test", port, "JVM-1");
+
+    PeerToPeerCacheLifecycleListener p2pListener = new PeerToPeerCacheLifecycleListener();
+    p2pListener.setProperty("mcast-port", "0");
+    p2pListener.setProperty("log-level", "config");
+    server.getEmbedded().addLifecycleListener(p2pListener);
+    sessionManager = manager;
+    sessionManager.setEnableCommitValve(true);
+    server.getRootContext().setManager(sessionManager);
+
+    servlet = server.addServlet("/test/*", "default", CommandServlet.class.getName());
+    server.startContainer();
+
+    /**
+     * Can only retrieve the region once the container has started up
+     * (and the cache has started too).
+     */
+    region = sessionManager.getSessionCache().getSessionRegion();
+  }
+
+  @AfterClass
+  public static void teardownClass() throws Exception {
+    server.stopContainer();
+  }
+
+  /**
+   * Reset some data
+   */
+  @Before
+  public void setup() throws Exception {
+    sessionManager.setMaxInactiveInterval(30);
+    region.clear();
+  }
+
+  /**
+   * Check that the basics are working
+   */
+  @Test
+  public void testSanity() throws Exception {
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+    req.setParameter("cmd", QueryCommand.GET.name());
+    req.setParameter("param", "null");
+    WebResponse response = wc.getResponse(req);
+
+    assertEquals("JSESSIONID", response.getNewCookieNames()[0]);
+  }
+
+  /**
+   * Test callback functionality. This is here really just as an example. Callbacks are useful to implement per test
+   * actions which can be defined within the actual test method instead of in a separate servlet class.
+   */
+  @Test
+  public void testCallback() throws Exception {
+    final String helloWorld = "Hello World";
+    Callback c = new Callback() {
+
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        PrintWriter out = response.getWriter();
+        out.write(helloWorld);
+      }
+    };
+    servlet.getServletContext().setAttribute("callback", c);
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    req.setParameter("cmd", QueryCommand.CALLBACK.name());
+    req.setParameter("param", "callback");
+    WebResponse response = wc.getResponse(req);
+
+    assertEquals(helloWorld, response.getText());
+  }
+
+  /**
+   * Test that calling session.isNew() works for the initial as well as subsequent requests.
+   */
+  @Test
+  public void testIsNew() throws Exception {
+    Callback c = new Callback() {
+
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        HttpSession session = request.getSession();
+        response.getWriter().write(Boolean.toString(session.isNew()));
+      }
+    };
+    servlet.getServletContext().setAttribute("callback", c);
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    req.setParameter("cmd", QueryCommand.CALLBACK.name());
+    req.setParameter("param", "callback");
+    WebResponse response = wc.getResponse(req);
+
+    assertEquals("true", response.getText());
+    response = wc.getResponse(req);
+
+    assertEquals("false", response.getText());
+  }
+
+  /**
+   * Check that our session persists. The values we pass in as query params are used to set attributes on the session.
+   */
+  @Test
+  public void testSessionPersists1() throws Exception {
+    String key = "value_testSessionPersists1";
+    String value = "Foo";
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+    req.setParameter("cmd", QueryCommand.SET.name());
+    req.setParameter("param", key);
+    req.setParameter("value", value);
+    WebResponse response = wc.getResponse(req);
+    String sessionId = response.getNewCookieValue("JSESSIONID");
+
+    assertNotNull("No apparent session cookie", sessionId);
+
+    // The request retains the cookie from the prior response...
+    req.setParameter("cmd", QueryCommand.GET.name());
+    req.setParameter("param", key);
+    req.removeParameter("value");
+    response = wc.getResponse(req);
+
+    assertEquals(value, response.getText());
+  }
+
+  /**
+   * Check that our session persists beyond the container restarting.
+   */
+//    public void testSessionPersists2() throws Exception {
+//        String key = "value_testSessionPersists2";
+//        String value = "Foo";
+//
+//        WebConversation wc = new WebConversation();
+//        WebRequest req = new GetMethodWebRequest("http://localhost:7890/test");
+//        req.setParameter("cmd", QueryCommand.SET.name());
+//        req.setParameter("param", key);
+//        req.setParameter("value", value);
+//        WebResponse response = wc.getResponse(req);
+//        String sessionId = response.getNewCookieValue("JSESSIONID");
+//
+//        assertNotNull("No apparent session cookie", sessionId);
+//
+//        // Restart the container
+//        AllTests.teardownClass();
+//        AllTests.setupClass();
+//
+//        // The request retains the cookie from the prior response...
+//        req.setParameter("cmd", QueryCommand.GET.name());
+//        req.setParameter("param", key);
+//        req.removeParameter("value");
+//        response = wc.getResponse(req);
+//
+//        assertEquals(value, response.getText());
+//    }
+
+  /**
+   * Test that invalidating a session makes it's attributes inaccessible.
+   */
+  @Test
+  public void testInvalidate() throws Exception {
+    String key = "value_testInvalidate";
+    String value = "Foo";
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Set an attribute
+    req.setParameter("cmd", QueryCommand.SET.name());
+    req.setParameter("param", key);
+    req.setParameter("value", value);
+    WebResponse response = wc.getResponse(req);
+
+    // Invalidate the session
+    req.removeParameter("param");
+    req.removeParameter("value");
+    req.setParameter("cmd", QueryCommand.INVALIDATE.name());
+    wc.getResponse(req);
+
+    // The attribute should not be accessible now...
+    req.setParameter("cmd", QueryCommand.GET.name());
+    req.setParameter("param", key);
+    response = wc.getResponse(req);
+
+    assertEquals("", response.getText());
+  }
+
+  /**
+   * Test setting the session expiration
+   */
+  @Test
+  public void testSessionExpiration1() throws Exception {
+    // TestSessions only live for a second
+    sessionManager.setMaxInactiveInterval(1);
+
+    String key = "value_testSessionExpiration1";
+    String value = "Foo";
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Set an attribute
+    req.setParameter("cmd", QueryCommand.SET.name());
+    req.setParameter("param", key);
+    req.setParameter("value", value);
+    WebResponse response = wc.getResponse(req);
+
+    // Sleep a while
+    Thread.sleep(2000);
+
+    // The attribute should not be accessible now...
+    req.setParameter("cmd", QueryCommand.GET.name());
+    req.setParameter("param", key);
+    response = wc.getResponse(req);
+
+    assertEquals("", response.getText());
+  }
+
+  /**
+   * Test setting the session expiration via a property change as would happen under normal deployment conditions.
+   */
+  @Test
+  public void testSessionExpiration2() throws Exception {
+    // TestSessions only live for a minute
+    sessionManager.propertyChange(
+        new PropertyChangeEvent(server.getRootContext(), "sessionTimeout", new Integer(30), new Integer(1)));
+
+    // Check that the value has been set to 60 seconds
+    assertEquals(60, sessionManager.getMaxInactiveInterval());
+  }
+
+  /**
+   * Test that removing a session attribute also removes it from the region
+   */
+  @Test
+  public void testRemoveAttribute() throws Exception {
+    String key = "value_testRemoveAttribute";
+    String value = "Foo";
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Set an attribute
+    req.setParameter("cmd", QueryCommand.SET.name());
+    req.setParameter("param", key);
+    req.setParameter("value", value);
+    WebResponse response = wc.getResponse(req);
+    String sessionId = response.getNewCookieValue("JSESSIONID");
+
+    // Implicitly remove the attribute
+    req.removeParameter("value");
+    wc.getResponse(req);
+
+    // The attribute should not be accessible now...
+    req.setParameter("cmd", QueryCommand.GET.name());
+    req.setParameter("param", key);
+    response = wc.getResponse(req);
+
+    assertEquals("", response.getText());
+    assertNull(region.get(sessionId).getAttribute(key));
+  }
+
+  /**
+   * Test that a session attribute gets set into the region too.
+   */
+  @Test
+  public void testBasicRegion() throws Exception {
+    String key = "value_testBasicRegion";
+    String value = "Foo";
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Set an attribute
+    req.setParameter("cmd", QueryCommand.SET.name());
+    req.setParameter("param", key);
+    req.setParameter("value", value);
+    WebResponse response = wc.getResponse(req);
+    String sessionId = response.getNewCookieValue("JSESSIONID");
+
+    assertEquals(value, region.get(sessionId).getAttribute(key));
+  }
+
+  /**
+   * Test that a session attribute gets removed from the region when the session is invalidated.
+   */
+  @Test
+  public void testRegionInvalidate() throws Exception {
+    String key = "value_testRegionInvalidate";
+    String value = "Foo";
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Set an attribute
+    req.setParameter("cmd", QueryCommand.SET.name());
+    req.setParameter("param", key);
+    req.setParameter("value", value);
+    WebResponse response = wc.getResponse(req);
+    String sessionId = response.getNewCookieValue("JSESSIONID");
+
+    // Invalidate the session
+    req.removeParameter("param");
+    req.removeParameter("value");
+    req.setParameter("cmd", QueryCommand.INVALIDATE.name());
+    wc.getResponse(req);
+
+    assertNull("The region should not have an entry for this session", region.get(sessionId));
+  }
+
+  /**
+   * Test that multiple attribute updates, within the same request result in only the latest one being effective.
+   */
+  @Test
+  public void testMultipleAttributeUpdates() throws Exception {
+    final String key = "value_testMultipleAttributeUpdates";
+    Callback c = new Callback() {
+
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        HttpSession session = request.getSession();
+        for (int i = 0; i < 1000; i++) {
+          session.setAttribute(key, Integer.toString(i));
+        }
+      }
+    };
+    servlet.getServletContext().setAttribute("callback", c);
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Execute the callback
+    req.setParameter("cmd", QueryCommand.CALLBACK.name());
+    req.setParameter("param", "callback");
+    WebResponse response = wc.getResponse(req);
+
+    String sessionId = response.getNewCookieValue("JSESSIONID");
+
+    assertEquals("999", region.get(sessionId).getAttribute(key));
+  }
+
+  /*
+   * Test for issue #38 CommitSessionValve throws exception on invalidated sessions
+   */
+  @Test
+  public void testCommitSessionValveInvalidSession() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        HttpSession session = request.getSession();
+        session.invalidate();
+        response.getWriter().write("done");
+      }
+    };
+    servlet.getServletContext().setAttribute("callback", c);
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Execute the callback
+    req.setParameter("cmd", QueryCommand.CALLBACK.name());
+    req.setParameter("param", "callback");
+    WebResponse response = wc.getResponse(req);
+
+    assertEquals("done", response.getText());
+  }
+
+  /**
+   * Test for issue #45 Sessions are being created for every request
+   */
+  @Test
+  public void testExtraSessionsNotCreated() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        // Do nothing with sessions
+        response.getWriter().write("done");
+      }
+    };
+    servlet.getServletContext().setAttribute("callback", c);
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Execute the callback
+    req.setParameter("cmd", QueryCommand.CALLBACK.name());
+    req.setParameter("param", "callback");
+    WebResponse response = wc.getResponse(req);
+
+    assertEquals("done", response.getText());
+    assertEquals("The region should be empty", 0, region.size());
+  }
+
+  /**
+   * Test for issue #46 lastAccessedTime is not updated at the start of the request, but only at the end.
+   */
+  @Test
+  public void testLastAccessedTime() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        HttpSession session = request.getSession();
+        // Hack to expose the session to our test context
+        session.getServletContext().setAttribute("session", session);
+        session.setAttribute("lastAccessTime", session.getLastAccessedTime());
+        try {
+          Thread.sleep(100);
+        } catch (InterruptedException ex) {
+        }
+        session.setAttribute("somethingElse", 1);
+        request.getSession();
+        response.getWriter().write("done");
+      }
+    };
+    servlet.getServletContext().setAttribute("callback", c);
+
+    WebConversation wc = new WebConversation();
+    WebRequest req = new GetMethodWebRequest(String.format("http://localhost:%d/test", port));
+
+    // Execute the callback
+    req.setParameter("cmd", QueryCommand.CALLBACK.name());
+    req.setParameter("param", "callback");
+    WebResponse response = wc.getResponse(req);
+
+    HttpSession session = (HttpSession) servlet.getServletContext().getAttribute("session");
+    Long lastAccess = (Long) session.getAttribute("lastAccessTime");
+
+    assertTrue(
+        "Last access time not set correctly: " + lastAccess.longValue() + " not <= " + session.getLastAccessedTime(),
+        lastAccess.longValue() <= session.getLastAccessedTime());
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/Tomcat6SessionsJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/Tomcat6SessionsJUnitTest.java b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/Tomcat6SessionsJUnitTest.java
new file mode 100644
index 0000000..0ce73ae
--- /dev/null
+++ b/extensions/geode-modules/src/test/java/com/gemstone/gemfire/modules/session/Tomcat6SessionsJUnitTest.java
@@ -0,0 +1,35 @@
+/*
+* 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;
+
+import com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager;
+import com.gemstone.gemfire.test.junit.categories.UnitTest;
+import org.junit.BeforeClass;
+import org.junit.experimental.categories.Category;
+
+/**
+ * @author Jens Deppe
+ */
+@Category(UnitTest.class)
+public class Tomcat6SessionsJUnitTest extends TestSessionsBase {
+
+  // Set up the session manager we need
+  @BeforeClass
+  public static void setupClass() throws Exception {
+    setupServer(new Tomcat6DeltaSessionManager());
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml b/extensions/geode-modules/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
new file mode 100644
index 0000000..17faf29
--- /dev/null
+++ b/extensions/geode-modules/src/test/resources/com/gemstone/gemfire/modules/Event.hbm.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="com.gemstone.gemfire.modules">
+	<class name="Event" table="EVENTS">
+		<cache usage="read-write"/>
+		<id name="id" column="EVENT_ID">
+			<generator class="native"/>
+		</id>
+		<version name="version"/>
+		<property name="date" type="timestamp" column="EVENT_DATE"/>
+        <property name="title"/>
+	</class>
+</hibernate-mapping>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml b/extensions/geode-modules/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
new file mode 100644
index 0000000..c6380e7
--- /dev/null
+++ b/extensions/geode-modules/src/test/resources/com/gemstone/gemfire/modules/Person.hbm.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="com.gemstone.gemfire.modules">
+    <class name="Person" table="PERSON">
+        <cache usage="read-write"/>
+        <id name="id" column="PERSON_ID">
+            <generator class="native"/>
+        </id>
+        <property name="age"/>
+        <property name="firstname"/>
+        <property name="lastname"/>
+        <set name="e" table="PERSON_EVENT">
+          <cache usage="read-write"/>
+          <key column="PERSON_ID"/>
+          <many-to-many column="EVENT_ID" class="Event"/>
+        </set>
+    </class>
+</hibernate-mapping>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/resources/log4j.properties b/extensions/geode-modules/src/test/resources/log4j.properties
new file mode 100644
index 0000000..c136990
--- /dev/null
+++ b/extensions/geode-modules/src/test/resources/log4j.properties
@@ -0,0 +1,16 @@
+# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
+# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
+#log4j.rootLogger=DEBUG, stdout, logfile
+log4j.rootLogger=DEBUG, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
+
+#log4j.appender.logfile=org.apache.log4j.RollingFileAppender
+#log4j.appender.logfile.MaxFileSize=512KB
+## Keep three backup files.
+#log4j.appender.logfile.MaxBackupIndex=3
+## Pattern to output: date priority [category] - message
+#log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
+#log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/resources/tomcat/conf/tomcat-users.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/resources/tomcat/conf/tomcat-users.xml b/extensions/geode-modules/src/test/resources/tomcat/conf/tomcat-users.xml
new file mode 100644
index 0000000..6c9f217
--- /dev/null
+++ b/extensions/geode-modules/src/test/resources/tomcat/conf/tomcat-users.xml
@@ -0,0 +1,3 @@
+<?xml version='1.0' encoding='utf-8'?>
+<tomcat-users>
+</tomcat-users>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/resources/tomcat/logs/.gitkeep
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/resources/tomcat/logs/.gitkeep b/extensions/geode-modules/src/test/resources/tomcat/logs/.gitkeep
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/test/resources/tomcat/temp/.gitkeep
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/test/resources/tomcat/temp/.gitkeep b/extensions/geode-modules/src/test/resources/tomcat/temp/.gitkeep
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/build.gradle
----------------------------------------------------------------------
diff --git a/gemfire-assembly/build.gradle b/gemfire-assembly/build.gradle
deleted file mode 100755
index 72e97c5..0000000
--- a/gemfire-assembly/build.gradle
+++ /dev/null
@@ -1,342 +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.
- */
-import org.gradle.api.internal.artifacts.publish.ArchivePublishArtifact;
-
-apply plugin: 'distribution'
-
-// disable artifact generation for this project
-jar.enabled = false
-extraArchive {
-  sources = false
-  javadoc = false
-  tests = false
-}
-
-disableMavenPublishing()
-
-// Gradle doesn't automatically remove the jar artifact even though we disabled it
-// this causes publishing to fail.  So we nuke all the disabled artifacts from all configurations.
-configurations.all {
-  artifacts.removeAll artifacts.findAll { it instanceof ArchivePublishArtifact && !it.archiveTask.enabled }
-}
-
-gradle.taskGraph.whenReady( { graph ->
-  tasks.withType(Tar).each { tar ->
-    tar.compression = Compression.GZIP
-    tar.extension = 'tar.gz'
-  }
-})
-
-dependencies {
-  provided project(':gemfire-core')
-  
-  archives project(':gemfire-common')  
-  archives project(':gemfire-json')  
-  archives project(':gemfire-joptsimple')  
-  archives project(':gemfire-core')  
-  archives project(':gemfire-lucene')
-  archives project(':gemfire-web')
-  archives project(':gemfire-web-api')
-  archives project(':gemfire-pulse')
-  archives project(':gemfire-wan')
-  archives project(':gemfire-cq')
-
-  testCompile project(':gemfire-junit')
-  testCompile project(path: ':gemfire-core', configuration: 'testOutput')
-
-  testRuntime files("${System.getProperty('java.home')}/../lib/tools.jar")
-}
-
-sourceSets {
-  // need to remove this since we use the dependencies jar out of the install dir
-  //test.runtimeClasspath -= configurations.provided
-}
-
-test {
-  // test from the actual classpath not the gradle classpath
-  dependsOn installDist
-  // @TODO: this doesn't seem to be working need to get basename first.
-  classpath += files "$buildDir/install/apache-geode/lib/gemfire-core-dependencies.jar"
-}
-
-tasks.withType(Test){
-  environment 'GEMFIRE', "$buildDir/install/${distributions.main.baseName}/lib"
-}
-
-task defaultDistributionConfig(type: JavaExec, dependsOn: classes) {
-  outputs.file file("$buildDir/gemfire.properties")
-  main 'com.gemstone.gemfire.distributed.internal.DistributionConfigImpl'
-  classpath project(':gemfire-core').sourceSets.main.runtimeClasspath
-  workingDir buildDir
-  
-  doFirst {
-    buildDir.mkdirs()
-  }
-}
-
-task defaultCacheConfig(type: JavaExec, dependsOn: classes) {
-  outputs.file file("$buildDir/cache.xml")
-  main 'com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlGenerator'
-  classpath project(':gemfire-core').sourceSets.main.runtimeClasspath
-  workingDir buildDir
-
-  doFirst {
-    buildDir.mkdirs()
-  }
-}
-
-// This closure sets the gemfire classpath.  If we add another jar to the classpath it must
-// be included in the filter logic below.
-def cp = {
-  // first add all the dependent project jars
-  def jars = configurations.archives.dependencies.collect { it.dependencyProject }
-    .findAll { !it.name.contains('web') }
-    .collect { it.jar.archiveName }
-    .join(' ')
-
-  // then add all the dependencies of the dependent jars
-  jars += ' ' + configurations.archives.dependencies.collect { 
-    it.dependencyProject.configurations.runtime.collect { it.getName() }.findAll {
-      // depedencies from gemfire-core
-      it.contains('antlr') ||
-      it.contains('commons-io') ||
-      it.contains('commons-lang') ||
-      it.contains('commons-logging') ||
-      it.contains('fastutil') ||
-      it.contains('jackson-annotations') ||
-      it.contains('jackson-core') ||
-      it.contains('jackson-databind') ||
-      it.contains('jansi') ||
-      it.contains('javax.resource-api') ||
-      it.contains('javax.servlet-api') ||
-      it.contains('javax.transaction-api') ||
-      it.contains('jetty-http') ||
-      it.contains('jetty-io') ||
-      it.contains('jetty-security') ||
-      it.contains('jetty-server') ||
-      it.contains('jetty-servlet') ||
-      it.contains('jetty-webapp') ||
-      it.contains('jetty-util') ||
-      it.contains('jetty-xml') ||
-      it.contains('jline') ||
-      it.contains('jna') ||
-      it.contains('log4j-api') ||
-      it.contains('log4j-core') ||
-      it.contains('log4j-jcl') ||
-      it.contains('log4j-jul') ||
-      it.contains('log4j-slf4j-impl') ||
-      it.contains('slf4j-api') ||
-      it.contains('spring-core') ||
-      it.contains('spring-shell') ||
-      it.contains('snappy-java') ||
-      it.contains('hbase') ||
-      it.contains('jgroups') ||
-      it.contains('netty') ||
-      it.contains('gemfire-wan') ||
-      it.contains('gemfire-cq') ||
-      
-      // dependencies from gemfire-lucene
-      it.contains('lucene-analyzers-common') ||
-      it.contains('lucene-core') ||
-      it.contains('lucene-queries') ||
-      it.contains('lucene-queryparser')
-    }
-  }.flatten().unique().join(' ')
-
-  return jars
-}
-
-// Note: this dependency doesn't work if you change a library version from
-// a dependent project.  Please fix me.
-task depsJar (type: Jar, dependsOn: ':gemfire-core:classes') {
-  description 'Assembles the jar archive that defines the gemfire classpath.'
-  archiveName 'gemfire-core-dependencies.jar'
-  doFirst {
-    manifest { 
-      attributes("Class-Path": cp())
-    }
-  }
-}
-
-// Note: this dependency doesn't work if you change a library version from
-// a dependent project.  Please fix me.
-task gfshDepsJar (type: Jar, dependsOn: ':gemfire-core:classes') {
-  description 'Assembles the jar archive that defines the gfsh classpath.'
-  def springWeb = configurations.runtime.collect { it.getName() }.find { it.contains('spring-web') }
-  archiveName 'gfsh-dependencies.jar'
-  doFirst {
-    manifest {
-      attributes("Class-Path": cp() + 
-        ' ' + project(':gemfire-core').webJar.archiveName +
-        ' ' + springWeb
-      )
-    }
-  }
-}
-
-
-def docsDir = file("$buildDir/javadocs")
-task docs(type: Javadoc) {
-    options.addStringOption('Xdoclint:none', '-quiet')
-    options.encoding='UTF-8'
-    source parent.subprojects*.javadoc*.source
-    classpath = files(parent.subprojects*.javadoc*.classpath)
-    title = "Apache Geode ${project.version}"
-    include 'com/gemstone/gemfire/**/'
-    exclude 'com/gemstone/gemfire/internal/**/'
-    exclude 'com/gemstone/gemfire/**/internal/**/'
-    exclude 'com/gemstone/gemfire/**/xml/**/'
-    exclude 'com/gemstone/gemfire/distributed/**/util/**/'
-    exclude 'com/gemstone/gemfire/test/**/'
-    destinationDir = docsDir
-}
-
-gradle.taskGraph.whenReady( { graph ->
-  tasks.withType(AbstractArchiveTask).findAll {
-    it.name.toLowerCase().contains("dist")
-  }.each { archive ->
-    archive.doLast {
-      ant.checksum file:"${archive.archivePath}", algorithm:"md5"
-      ant.checksum file:"${archive.archivePath}", algorithm:"sha-256"
-    }
-  }
-})
-
-distributions {
-  src {
-    baseName = 'apache-geode-src'
-    contents {
-      from (rootDir) {
-        exclude 'KEYS'
-        exclude 'gradlew'
-        exclude 'gradlew.bat'
-        exclude 'gradle/wrapper/gradle-wrapper.jar'
-        exclude 'gradle/wrapper/gradle-wrapper.properties'
-        exclude '.gradle'
-        exclude '**/build/**'
-        exclude '**/.project'
-        exclude '**/.classpath'
-        exclude '**/.settings/**'
-        exclude '**/build-eclipse/**'
-        exclude '.idea/**'
-        exclude '**/*.iml'
-        exclude '**/*.ipr'
-        exclude '**/*.iws'
-        exclude '**/tags'
-      }
-    }
-  }
-
-  main {
-    baseName = 'apache-geode' //TODO rootProject.name
-    contents {
-      duplicatesStrategy 'exclude'
-      exclude '*.asc'
-      
-      exclude '*.asc'
-      exclude '*-sources.jar'
-      exclude '*-javadoc.jar'
-
-      into ('config') {
-        from defaultCacheConfig
-        from defaultDistributionConfig
-        from (project(':gemfire-core').sourceSets.main.resources.files.find {
-          it.name == 'log4j2.xml' 
-        })
-      }
-      
-      into ('lib') {
-        from project(":gemfire-common").configurations.runtime
-        from project(":gemfire-common").configurations.archives.allArtifacts.files
-
-        from project(":gemfire-json").configurations.runtime
-        from project(":gemfire-json").configurations.archives.allArtifacts.files
-
-        from project(":gemfire-joptsimple").configurations.runtime
-        from project(":gemfire-joptsimple").configurations.archives.allArtifacts.files
-
-        from project(":gemfire-wan").configurations.runtime
-        from project(":gemfire-wan").configurations.archives.allArtifacts.files
-
-        from project(":gemfire-cq").configurations.runtime
-        from project(":gemfire-cq").configurations.archives.allArtifacts.files
-
-        from project(":gemfire-core").configurations.runtime
-        // Copying from provided configuration is only for supporting Spring Data GemFire.
-        // If there are more dependencies added to provided configuration, this will need
-        // to change
-        from (project(":gemfire-core").configurations.provided) {
-          include 'spring-data-gemfire-*'
-        }
-        from project(":gemfire-core").configurations.archives.allArtifacts.files
-        from project(":gemfire-core").webJar
-        from project(":gemfire-core").raJar
-        from project(":gemfire-core").jcaJar
-        
-        from project(":gemfire-lucene").configurations.runtime
-        from project(":gemfire-lucene").configurations.archives.allArtifacts.files
-
-        // include this jar        
-        from project(":gemfire-web-api").jar
-        
-        // dependency jars
-        from depsJar
-        from gfshDepsJar
-      }
-
-      into ('tools/Extensions') {
-        from (project(":gemfire-web").configurations.archives.allArtifacts.files) {
-          exclude '*.jar'
-        }
-        from (project(":gemfire-web-api").configurations.archives.allArtifacts.files) {
-          exclude '*.jar'
-        }
-      }
-
-      into ('javadoc') {
-        from docs
-      }
-
-      into ('tools/Pulse') {
-        from (project(":gemfire-pulse").configurations.archives.allArtifacts.files) {
-          exclude '*.jar'
-        }
-      }
-
-      into ('tools/Modules') {
-        from (project(':extensions/gemfire-modules-assembly').configurations.moduleDistOutputs.files)
-      }
-    }
-  }
-}
-
-// Create a configuration closure to configure test targets with the install directory
-def dependOnInstalledProduct = {
-  dependsOn installDist
-  def install = file("$buildDir/install/${distributions.main.baseName}")
-  environment ('GEMFIRE', install)
-}
-
-// Add the configuration closure to the test targets so they depend on the install directory
-test dependOnInstalledProduct
-distributedTest dependOnInstalledProduct
-integrationTest dependOnInstalledProduct
-
-// Make build final task to generate all test and product resources
-build.dependsOn installDist
-
-installDist.dependsOn ':extensions/gemfire-modules-assembly:dist'

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/main/dist/DISCLAIMER
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/main/dist/DISCLAIMER b/gemfire-assembly/src/main/dist/DISCLAIMER
deleted file mode 100644
index 43c734d..0000000
--- a/gemfire-assembly/src/main/dist/DISCLAIMER
+++ /dev/null
@@ -1,6 +0,0 @@
-Apache Geode is an effort undergoing incubation at The Apache Software Foundation (ASF),
-sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until
-a further review indicates that the infrastructure, communications, and decision making process
-have stabilized in a manner consistent with other successful ASF projects. While incubation
-status is not necessarily a reflection of the completeness or stability of the code, it does
-indicate that the project has yet to be fully endorsed by the ASF.


[26/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/CanonicalInstantiator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/CanonicalInstantiator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/CanonicalInstantiator.java
deleted file mode 100644
index e4a9182..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/CanonicalInstantiator.java
+++ /dev/null
@@ -1,86 +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;
-
-import java.io.*;
-
-/**
- * <code>CanonicalInstantiator</code> is much like its parent
- * <code>Instantiator</code> except that instead of
- * needing to implement <code>newInstance()</code>
- * you now must implement <code>newInstance(DataInput)</code>.
- * The addition of the <code>DataInput</code> parameter allows the instance
- * creator to optionally read data from the data input stream and use it to
- * decide the instance to create. This allows a value that represents a
- * canonical instance to be written by a class's {@link DataSerializer#toData}
- * and then be read by <code>newInstance(DataInput)</code>
- * and map it back to a canonical instance.
- * <p>
- * Note that {@link DataSerializer#fromData} is always called on the instance
- * returned from <code>newInstance(DataInput)</code>.
- *
- * @author darrel
- * @since 5.1
- */
-public abstract class CanonicalInstantiator extends Instantiator {
-  /**
-   * Creates a new <code>CanonicalInstantiator</code> that instantiates a given
-   * class.
-   *
-   * @param c
-   *        The <code>DataSerializable</code> class to register.  This
-   *        class must have a static initializer that registers this
-   *        <code>Instantiator</code>. 
-   * @param classId
-   *        A unique id for class <code>c</code>.  The
-   *        <code>classId</code> must not be zero.
-   *        This has been an <code>int</code> since dsPhase1.
-   *
-   * @throws IllegalArgumentException
-   *         If <code>c</code> does not implement
-   *         <code>DataSerializable</code>, <code>classId</code> is
-   *         less than or equal to zero.
-   * @throws NullPointerException
-   *         If <code>c</code> is <code>null</code>
-   */
-  public CanonicalInstantiator(Class<? extends DataSerializable> c, int classId) {
-    super(c, classId);
-  }
-  
-  /**
-   * This method is not supported and if called will
-   * throw UnsupportedOperationException.
-   * Use {@link #newInstance(DataInput)} instead.
-   * 
-   * @throws UnsupportedOperationException in all cases
-   */
-  @Override
-  public final DataSerializable newInstance() {
-    throw new UnsupportedOperationException();
-  }
-  /**
-   * Creates a new "empty" instance of a <Code>DataSerializable</code>
-   * class whose state will be filled in by invoking its 
-   * {@link DataSerializable#fromData fromData} method.
-   * @param in the data input that can be read to decide what instance to create.
-   * @return the new "empty" instance.
-   * @throws IOException if a read from <code>in</code> fails.
-   * @since 5.1
-   */
-  public abstract DataSerializable newInstance(DataInput in)
-    throws IOException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/CopyException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/CopyException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/CopyException.java
deleted file mode 100644
index e7387c1..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/CopyException.java
+++ /dev/null
@@ -1,67 +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;
-
-/**
- * Indicates a failure to copy an object.
- *
- * @author Darrel Schneider
- *
- *
- * @see CopyHelper#copy
- * @since 4.0
- */
-public class CopyException extends GemFireException {
-private static final long serialVersionUID = -1143711608610323585L;
-  
-  /**
-   * Constructs a new <code>CopyException</code>.
-   */
-  public CopyException() {
-    super();
-  }
-  
-  /**
-   * Constructs a new <code>CopyException</code> with a message string.
-   *
-   * @param msg a message string
-   */
-  public CopyException(String msg) {
-    super(msg);
-  }
-  
-  /**
-   * Constructs a new <code>CopyException</code> with a message string
-   * and a cause.
-   *
-   * @param msg the message string
-   * @param cause a causal Throwable
-   */
-  public CopyException(String msg, Throwable cause) {
-    super(msg, cause);
-  }
-  
-  /**
-   * Constructs a new <code>CopyException</code> with a cause.
-   *
-   * @param cause a causal Throwable
-   */
-  public CopyException(Throwable cause) {
-    super(cause);
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/CopyHelper.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/CopyHelper.java b/gemfire-core/src/main/java/com/gemstone/gemfire/CopyHelper.java
deleted file mode 100644
index a34414f..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/CopyHelper.java
+++ /dev/null
@@ -1,268 +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;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.Serializable;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Arrays;
-import java.util.UUID;
-
-import com.gemstone.gemfire.internal.HeapDataOutputStream;
-import com.gemstone.gemfire.internal.Version;
-import com.gemstone.gemfire.internal.cache.CachedDeserializable;
-import com.gemstone.gemfire.internal.cache.Token;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.pdx.PdxInstance;
-import com.gemstone.gemfire.pdx.WritablePdxInstance;
-import com.gemstone.gemfire.pdx.internal.PdxUnreadData;
-
-/**
- * A static helper for optimally creating copies.  Creating copies
- * of cache values provides improved concurrency as well as isolation.
- * For transactions, creating a copy is the guaranteed way to enforce
- * "Read Committed" isolation on changes to cache
- * <code>Entries</code>.
-
- * <p>Here is a simple example of how to use <code>CopyHelper.copy</code>
- *  <pre>
- *    Object o = r.get("stringBuf");
- *    StringBuffer s = (StringBuffer) CopyHelper.copy(o);
- *    s.append("... and they lived happily ever after.  The End.");
- *    r.put("stringBuf", s);
- *  </pre>
- *
- * @see Cloneable
- * @see Serializable
- * @see DataSerializer
- * @see com.gemstone.gemfire.cache.Cache#setCopyOnRead
- * @see com.gemstone.gemfire.cache.CacheTransactionManager
- *
- * @author Mitch Thomas
- * @since 4.0
- */
-
-public final class CopyHelper {
-
-  // no instances allowed
-  private CopyHelper() {
-  }
-
-  /**
-   * Return true if the given object is an instance of a well known
-   * immutable class.
-   * The well known classes are:
-   * <ul>
-   * <li>String
-   * <li>Byte
-   * <li>Character
-   * <li>Short
-   * <li>Integer
-   * <li>Long
-   * <li>Float
-   * <li>Double
-   * <li>BigInteger
-   * <li>BigDecimal
-   * <li>UUID
-   * <li>PdxInstance but not WritablePdxInstance
-   * </ul>
-   * @param o the object to check
-   * @return true if o is an instance of a well known immutable class.
-   * @since 6.6.2
-   */
-  public static boolean isWellKnownImmutableInstance(Object o) {
-    if (o instanceof String) {
-      return true;
-    }
-    if (o instanceof Number) {
-      if (o instanceof Integer) return true;
-      if (o instanceof Long) return true;
-      if (o instanceof Byte) return true;
-      if (o instanceof Short) return true;
-      if (o instanceof Float) return true;
-      if (o instanceof Double) return true;
-      // subclasses of non-final classes may be mutable
-      if (o.getClass().equals(BigInteger.class)) return true;
-      if (o.getClass().equals(BigDecimal.class)) return true;
-    }
-    if (o instanceof PdxInstance && !(o instanceof WritablePdxInstance)) {
-      // no need to copy since it is immutable
-      return true;
-    }
-    if (o instanceof Character) return true;
-    if (o instanceof UUID) return true;
-    return false;
-  }
-  /**
-   * <p>Makes a copy of the specified object. The object returned is not guaranteed
-   * to be a deep copy of the original object, as explained below.
-   * 
-   * <p>Copies can only be made if the original is a <tt>Cloneable</tt> or serializable by 
-   * GemFire.
-   * If o is a {@link #isWellKnownImmutableInstance(Object) well known immutable instance}
-   * then it will be returned without copying it.
-   * 
-   * <p>If the argument o is an instance of {@link java.lang.Cloneable}, a copy is
-   * made by invoking <tt>clone</tt> on it. Note that not all implementations of <tt>clone</tt> 
-   * make deep copies (e.g. {@link java.util.HashMap#clone HashMap.clone}). Otherwise, if the
-   * argument is not an instance of <tt>Cloneable</tt>, a copy is made using serialization: if 
-   * GemFire serialization is implemented, it is used; otherwise, java serialization is used.
-   * 
-   * <p> The difference between this method and {@link #deepCopy(Object) deepCopy}, is that
-   * this method uses <tt>clone</tt> if available, whereas <tt>deepCopy</tt> does not. As a
-   * result, for <tt>Cloneable</tt> objects copied using this method, how deep a copy the 
-   * returned object is depends on its implementation of <tt>clone</tt>. 
-   * 
-   * @param o the original object that a copy is needed of
-   * @return the new instance that is a copy of of the original
-   * @throws CopyException if copying fails because a class could not
-   * be found or could not be serialized.
-   * @see #deepCopy(Object)
-   * @since 4.0
-   */
-  @SuppressWarnings("unchecked")
-  public static <T> T copy(T o) {
-    T copy = null;
-    try {
-      if (o == null) {
-        return null;
-      } else if (o instanceof Token) {
-        return o;
-      } else {
-        if (isWellKnownImmutableInstance(o)) return o;
-        if (o instanceof Cloneable) {
-          try {
-            // Note that Object.clone is protected so we need to use reflection
-            // to call clone even though this guy implements Cloneable
-            Class<?> c = o.getClass();
-            // By convention, the user should make the clone method public.
-            // But even if they don't, let's go ahead and use it.
-            // The other problem is that if the class is private, we still
-            // need to make the method accessible even if the method is public,
-            // because Object.clone is protected.
-            Method m = c.getDeclaredMethod("clone", new Class[0]);
-            m.setAccessible(true);
-            copy = (T)m.invoke(o, new Object[0]);
-            return copy;
-          } catch (NoSuchMethodException ignore) {
-            // try using Serialization
-          } catch (IllegalAccessException ignore) {
-            // try using Serialization
-          } catch (SecurityException ignore) {
-            // try using Serialization
-          } catch (InvocationTargetException ex) {
-            Throwable cause = ex.getTargetException();
-            if (cause instanceof CloneNotSupportedException) {
-              // try using Serialization
-            } else {
-              throw new CopyException(LocalizedStrings.CopyHelper_CLONE_FAILED.toLocalizedString(), cause != null ? cause : ex);
-            }
-          }
-        } else if (o instanceof CachedDeserializable) {
-          copy = (T) ((CachedDeserializable) o).getDeserializedWritableCopy(null, null);
-          return copy;
-        } else if (o.getClass().isArray() && o.getClass().getComponentType().isPrimitive()) {
-          if (o instanceof byte[]) {
-            byte[] a = (byte[])o;
-            copy = (T) Arrays.copyOf(a, a.length);
-          } else if (o instanceof boolean[]) {
-            boolean[] a = (boolean[])o;
-            copy = (T) Arrays.copyOf(a, a.length);
-          } else if (o instanceof char[]) {
-            char[] a = (char[])o;
-            copy = (T) Arrays.copyOf(a, a.length);
-          } else if (o instanceof int[]) {
-            int[] a = (int[])o;
-            copy = (T) Arrays.copyOf(a, a.length);
-          } else if (o instanceof long[]) {
-            long[] a = (long[])o;
-            copy = (T) Arrays.copyOf(a, a.length);
-          } else if (o instanceof short[]) {
-            short[] a = (short[])o;
-            copy = (T) Arrays.copyOf(a, a.length);
-          } else if (o instanceof float[]) {
-            float[] a = (float[])o;
-            copy = (T) Arrays.copyOf(a, a.length);
-          } else if (o instanceof double[]) {
-            double[] a = (double[])o;
-            copy = (T) Arrays.copyOf(a, a.length);
-          }
-          return copy;
-        }
-        // Copy using serialization
-        copy = doDeepCopy(o);
-        return copy;
-      }
-    } finally {
-      if (copy != null) {
-        PdxUnreadData.copy(o, copy);
-      }
-    }
-  }
-
-  /**
-   * Makes a deep copy of the specified object o using serialization, so the object
-   * has to be serializable by GemFire. 
-   * 
-   * <p>If o is a {@link #isWellKnownImmutableInstance(Object) well known immutable 
-   * instance} then it will be returned without copying it.
-   * 
-   * <p>The passed in object is serialized in memory, and then deserialized into 
-   * a new instance, which is returned. If GemFire serialization is implemented 
-   * for the object, it is used; otherwise, java serialization is used.  
-   * 
-   * @param o the original object to be copied
-   * @return the new instance that is a copy of the original
-   * @throws CopyException if copying fails because a class could not
-   * be found or could not be serialized
-   * @see #copy(Object)
-   */
-  public static <T> T deepCopy(T o) {
-    T copy = null;
-    try {
-      if (o == null) {
-        return null;
-      } else if (o instanceof Token || isWellKnownImmutableInstance(o)) {
-        return o;
-      } else {
-        copy = doDeepCopy(o);
-        return copy;
-      }
-    } finally {
-      if (copy != null) {
-        PdxUnreadData.copy(o, copy);
-      }
-    }
-  }
-
-  @SuppressWarnings("unchecked")
-  private static<T> T doDeepCopy(T o) {
-    try {
-      HeapDataOutputStream hdos = new HeapDataOutputStream(Version.CURRENT);
-      DataSerializer.writeObject(o, hdos);
-      return (T)DataSerializer.readObject(new DataInputStream(hdos.getInputStream()));
-    } catch (ClassNotFoundException ex) {
-      throw new CopyException(LocalizedStrings.CopyHelper_COPY_FAILED_ON_INSTANCE_OF_0.toLocalizedString(o.getClass()), ex);
-    } catch (IOException ex) {
-      throw new CopyException(LocalizedStrings.CopyHelper_COPY_FAILED_ON_INSTANCE_OF_0.toLocalizedString(o.getClass()), ex);
-    }
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializable.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializable.java b/gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializable.java
deleted file mode 100644
index 4bacef4..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializable.java
+++ /dev/null
@@ -1,140 +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;
-
-import java.io.*;
-
-/**
- * An interface for objects whose state can be written/read as
- * primitive types and strings ("data").  That is, instead of
- * serializing itself to an {@link java.io.ObjectOutputStream}, a
- * <code>DataSerializable</code> can serialize itself to a {@link
- * DataOutput}.  By implementing this interface, objects can be
- * serialized faster and in a more compact format than standard Java
- * serialization.  The {@link DataSerializer} class contains a number
- * of static methods that may be helpful to implementations of
- * <code>DataSerializable</code>.
- *
- * <P>
- *
- * When possible, GemFire respects the <code>DataSerializable</code>
- * contract to provide optimal object serialization.  For instance, if
- * a <code>DataSerializable</code> object is 
- * {@linkplain com.gemstone.gemfire.cache.Region#put(Object, Object) placed} into a distributed
- * cache region, its <code>toData</code> method will be used to
- * serialize it when it is sent to another member of the distributed
- * system.
- *
- * <P>
- *
- * To avoid the overhead of Java reflection,
- * <code>DataSerializable</code> classes may register an {@link
- * Instantiator} to be used during deserialization.  Alternatively,
- * classes that implement <code>DataSerializable</code> can provide a
- * zero-argument constructor that will be invoked when they are read
- * with {@link DataSerializer#readObject}.
- *
- * <P>
- *
- * Some classes (especially third-party classes that you may not have
- * the source code to) cannot be modified to implement
- * <code>DataSerializable</code>.  These classes can be data
- * serialized by an instance of {@link DataSerializer}.
- *
- * <P>
- *
- * <code>DataSerializable</code> offers improved performance over
- * standard Java serialization, but does not offer all of the features
- * of standard Java serialization.  In particular, data serialization
- * does not attempt to maintain referential integrity among the
- * objects it is writing or reading.  As a result, data serialization
- * should not be used with complex object graphs.  Attempting to data
- * serialize graphs that contain object cycles will result in infinite
- * recursion and a {@link StackOverflowError}.  Attempting to
- * deserialize an object graph that contains multiple reference
- * paths to the same object will result in multiple copies of the
- * objects that are referred to through multiple paths.
- *
- * <P>
- *
- * <CENTER>
- * <IMG src="doc-files/data-serialization-exceptions.gif" 
- *      HEIGHT="219" WIDTH="698">
- * </CENTER>
- *
- * @see java.io.Serializable
- * @see DataSerializer
- * @see Instantiator
- *
- * @author David Whitlock
- * @since 3.5 */
-public interface DataSerializable extends Serializable {
-
-  /**
-   * Writes the state of this object as primitive data to the given
-   * <code>DataOutput</code>.
-   * <p>
-   * Since 5.7 it is possible for any method call to the specified
-   * <code>DataOutput</code> to throw {@link GemFireRethrowable}.
-   * It should <em>not</em> be caught by user code.
-   * If it is it <em>must</em> be rethrown.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   */
-  public void toData(DataOutput out) throws IOException;
-
-  /**
-   * Reads the state of this object as primitive data from the given
-   * <code>DataInput</code>. 
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         A class could not be loaded while reading from
-   *         <code>in</code> 
-   */
-  public void fromData(DataInput in)
-    throws IOException, ClassNotFoundException;
-
-  ////////////////////////  Inner Classes  ////////////////////////
-
-  /**
-   * <code>Replaceable</code> allows an object to write an alternative
-   * version of itself to a <code>DataOutput</code>.  It is similar to
-   * the <code>writeReplace</code> method of standard Java
-   * {@linkplain java.io.Serializable serialization}.  
-   *
-   * <P>
-   *
-   * Note that if a <code>Replaceable</code> is also
-   * <code>DataSerializable</code>, its <code>toData</code> method
-   * will <B>not</B> be invoked.  Instead, its replacement object will
-   * be written to the stream using {@link DataSerializer#writeObject(Object, DataOutput)}. 
-   *
-   * @see DataSerializer#writeObject(Object, DataOutput)
-   */
-  public interface Replaceable {
-
-    /**
-     * Replaces this object with another in the "output stream"
-     * written by {@link DataSerializer#writeObject(Object, DataOutput)}.
-     */
-    public Object replace() throws IOException;
-  }
-
-}


[33/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-tomcat7/src/test/java/com/gemstone/gemfire/modules/session/Tomcat7SessionsJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-tomcat7/src/test/java/com/gemstone/gemfire/modules/session/Tomcat7SessionsJUnitTest.java b/extensions/geode-modules-tomcat7/src/test/java/com/gemstone/gemfire/modules/session/Tomcat7SessionsJUnitTest.java
new file mode 100644
index 0000000..f312545
--- /dev/null
+++ b/extensions/geode-modules-tomcat7/src/test/java/com/gemstone/gemfire/modules/session/Tomcat7SessionsJUnitTest.java
@@ -0,0 +1,35 @@
+/*
+* 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;
+
+import com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager;
+import com.gemstone.gemfire.test.junit.categories.UnitTest;
+import org.junit.BeforeClass;
+import org.junit.experimental.categories.Category;
+
+/**
+ * @author Jens Deppe
+ */
+@Category(UnitTest.class)
+public class Tomcat7SessionsJUnitTest extends TestSessionsBase {
+
+  // Set up the session manager we need
+  @BeforeClass
+  public static void setupClass() throws Exception {
+    setupServer(new Tomcat7DeltaSessionManager());
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-tomcat7/src/test/resources/tomcat/conf/tomcat-users.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-tomcat7/src/test/resources/tomcat/conf/tomcat-users.xml b/extensions/geode-modules-tomcat7/src/test/resources/tomcat/conf/tomcat-users.xml
new file mode 100644
index 0000000..6c9f217
--- /dev/null
+++ b/extensions/geode-modules-tomcat7/src/test/resources/tomcat/conf/tomcat-users.xml
@@ -0,0 +1,3 @@
+<?xml version='1.0' encoding='utf-8'?>
+<tomcat-users>
+</tomcat-users>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-tomcat7/src/test/resources/tomcat/logs/.gitkeep
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-tomcat7/src/test/resources/tomcat/logs/.gitkeep b/extensions/geode-modules-tomcat7/src/test/resources/tomcat/logs/.gitkeep
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-tomcat7/src/test/resources/tomcat/temp/.gitkeep
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-tomcat7/src/test/resources/tomcat/temp/.gitkeep b/extensions/geode-modules-tomcat7/src/test/resources/tomcat/temp/.gitkeep
new file mode 100644
index 0000000..e69de29

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/build.gradle b/extensions/geode-modules/build.gradle
new file mode 100644
index 0000000..f96fde6
--- /dev/null
+++ b/extensions/geode-modules/build.gradle
@@ -0,0 +1,39 @@
+/*
+ * 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.
+ */
+
+test  {
+  doFirst {
+    copy {
+      from 'build/resources/test/tomcat'
+      into 'build/test/tomcat/'
+    }
+  }
+}
+
+dependencies {
+  compile project(':geode-core')
+
+  compile 'org.apache.tomcat:catalina:' + project.'tomcat6.version'
+  compile 'org.apache.tomcat:catalina-ha:' + project.'tomcat6.version'
+  compile 'org.apache.tomcat:juli:' + project.'tomcat6.version'
+
+  testCompile 'org.httpunit:httpunit:' + project.'httpunit.version'
+  testRuntime 'org.apache.tomcat:coyote:' + project.'tomcat6.version'
+
+  testCompile project(path: ':geode-junit')
+  provided project(path: ':geode-core', configuration: 'testOutput')
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/AbstractGatewayDeltaEvent.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/AbstractGatewayDeltaEvent.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/AbstractGatewayDeltaEvent.java
new file mode 100644
index 0000000..13b2e77
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/AbstractGatewayDeltaEvent.java
@@ -0,0 +1,64 @@
+/*
+* 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.gatewaydelta;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.Region;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+@SuppressWarnings("serial")
+public abstract class AbstractGatewayDeltaEvent implements GatewayDeltaEvent, DataSerializable {
+
+  protected String regionName;
+  protected String key;
+
+  public AbstractGatewayDeltaEvent() {
+  }
+
+  public AbstractGatewayDeltaEvent(String regionName, String key) {
+    this.regionName = regionName;
+    this.key = key;
+  }
+
+  public String getRegionName() {
+    return this.regionName;
+  }
+
+  public String getKey() {
+    return this.key;
+  }
+
+  @SuppressWarnings("unchecked")
+  public Region getRegion(Cache cache) {
+    return cache.getRegion(this.regionName);
+  }
+
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    this.regionName = DataSerializer.readString(in);
+    this.key = DataSerializer.readString(in);
+  }
+
+  public void toData(DataOutput out) throws IOException {
+    DataSerializer.writeString(this.regionName, out);
+    DataSerializer.writeString(this.key, out);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDelta.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDelta.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDelta.java
new file mode 100644
index 0000000..4acad05
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDelta.java
@@ -0,0 +1,26 @@
+/*
+* 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.gatewaydelta;
+
+public interface GatewayDelta {
+
+  public static final String GATEWAY_DELTA_REGION_NAME = "__gatewayDelta";
+
+  public GatewayDeltaEvent getCurrentGatewayDeltaEvent();
+
+  public void setCurrentGatewayDeltaEvent(GatewayDeltaEvent currentGatewayDeltaEvent);
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaCreateEvent.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaCreateEvent.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaCreateEvent.java
new file mode 100644
index 0000000..3202591
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaCreateEvent.java
@@ -0,0 +1,88 @@
+/*
+* 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.gatewaydelta;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.Instantiator;
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.internal.cache.CachedDeserializable;
+import com.gemstone.gemfire.internal.cache.CachedDeserializableFactory;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+@SuppressWarnings("serial")
+public class GatewayDeltaCreateEvent extends AbstractGatewayDeltaEvent {
+
+  private byte[] gatewayDelta;
+
+  public GatewayDeltaCreateEvent() {
+  }
+
+  public GatewayDeltaCreateEvent(String regionName, String key, byte[] gatewayDelta) {
+    super(regionName, key);
+    this.gatewayDelta = gatewayDelta;
+  }
+
+  public byte[] getGatewayDelta() {
+    return this.gatewayDelta;
+  }
+
+  public void apply(Cache cache) {
+    Region<String, CachedDeserializable> region = getRegion(cache);
+    region.put(this.key, CachedDeserializableFactory.create(this.gatewayDelta), true);
+    if (cache.getLogger().fineEnabled()) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("Applied ").append(this);
+      cache.getLogger().fine(builder.toString());
+    }
+  }
+
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    super.fromData(in);
+    this.gatewayDelta = DataSerializer.readByteArray(in);
+  }
+
+  public void toData(DataOutput out) throws IOException {
+    super.toData(out);
+    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=")
+        .append(this.gatewayDelta)
+        .append("]")
+        .toString();
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaDestroyEvent.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
new file mode 100644
index 0000000..18bfe8b
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaDestroyEvent.java
@@ -0,0 +1,82 @@
+/*
+* 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.gatewaydelta;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.Instantiator;
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.EntryNotFoundException;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.modules.session.catalina.DeltaSession;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+@SuppressWarnings("serial")
+public class GatewayDeltaDestroyEvent extends AbstractGatewayDeltaEvent {
+
+  public GatewayDeltaDestroyEvent() {
+  }
+
+  public GatewayDeltaDestroyEvent(String regionName, String key) {
+    super(regionName, key);
+  }
+
+  public void apply(Cache cache) {
+    Region<String, DeltaSession> region = getRegion(cache);
+    try {
+      region.destroy(this.key);
+      if (cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("Applied ").append(this);
+        cache.getLogger().fine(builder.toString());
+      }
+    } catch (EntryNotFoundException e) {
+      StringBuilder builder = new StringBuilder();
+      builder.append(this).append(": Session ").append(this.key).append(" was not found");
+      cache.getLogger().warning(builder.toString());
+    }
+  }
+
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    super.fromData(in);
+  }
+
+  public void toData(DataOutput out) throws IOException {
+    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/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEvent.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEvent.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEvent.java
new file mode 100644
index 0000000..672a01f
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEvent.java
@@ -0,0 +1,24 @@
+/*
+* 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.gatewaydelta;
+
+import com.gemstone.gemfire.cache.Cache;
+
+public interface GatewayDeltaEvent {
+
+  public void apply(Cache cache);
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEventApplicationCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEventApplicationCacheListener.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEventApplicationCacheListener.java
new file mode 100644
index 0000000..cf9aa1a
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaEventApplicationCacheListener.java
@@ -0,0 +1,67 @@
+/*
+* 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.gatewaydelta;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
+import com.gemstone.gemfire.internal.cache.EntryEventImpl;
+import com.gemstone.gemfire.internal.cache.wan.GatewaySenderEventCallbackArgument;
+
+import java.util.Properties;
+
+public class GatewayDeltaEventApplicationCacheListener extends CacheListenerAdapter<String, GatewayDeltaEvent> implements Declarable {
+
+  private final Cache cache;
+
+  public GatewayDeltaEventApplicationCacheListener() {
+    this.cache = CacheFactory.getAnyInstance();
+  }
+
+  public void afterCreate(EntryEvent<String, GatewayDeltaEvent> event) {
+    System.out.println("GatewayDeltaApplierCacheListener event: " + event);
+    EntryEventImpl eventImpl = (EntryEventImpl) event;
+    if (this.cache.getLogger().fineEnabled()) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("GatewayDeltaApplierCacheListener: Received event for ")
+          .append(event.getKey())
+          .append("->")
+          .append(event.getNewValue())
+          .append(".");
+      this.cache.getLogger().fine(builder.toString());
+    }
+
+    // If the event is from a remote site, apply it to the session
+    Object callbackArgument = eventImpl.getRawCallbackArgument();
+    System.out.println("GatewayDeltaApplierCacheListener callbackArgument: " + callbackArgument);
+    if (callbackArgument instanceof GatewaySenderEventCallbackArgument) {
+      GatewayDeltaEvent delta = event.getNewValue();
+      delta.apply(this.cache);
+      System.out.println("Applied " + delta);
+      if (this.cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("GatewayDeltaApplierCacheListener: Applied ").append(delta);
+        this.cache.getLogger().fine(builder.toString());
+      }
+    }
+  }
+
+  public void init(Properties p) {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
new file mode 100644
index 0000000..ce44fcb
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/gatewaydelta/GatewayDeltaForwarderCacheListener.java
@@ -0,0 +1,197 @@
+/*
+* 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.gatewaydelta;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.DataPolicy;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.InterestPolicy;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionFactory;
+import com.gemstone.gemfire.cache.Scope;
+import com.gemstone.gemfire.cache.SerializedCacheValue;
+import com.gemstone.gemfire.cache.SubscriptionAttributes;
+import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
+import com.gemstone.gemfire.internal.cache.EntryEventImpl;
+import com.gemstone.gemfire.internal.cache.LocalRegion;
+
+import java.util.Properties;
+
+public class GatewayDeltaForwarderCacheListener extends CacheListenerAdapter<String, GatewayDelta> implements Declarable {
+
+  private final Cache cache;
+
+  private LocalRegion gatewayDeltaRegion;
+
+  public GatewayDeltaForwarderCacheListener() {
+    this(CacheFactory.getAnyInstance());
+  }
+
+  public GatewayDeltaForwarderCacheListener(Cache cache) {
+    this.cache = cache;
+  }
+
+  @SuppressWarnings("unchecked")
+  public void afterCreate(EntryEvent<String, GatewayDelta> event) {
+    // If the event is from the local site, create a 'create' event and send it to the
+    // gateway delta region
+    if (event.getCallbackArgument() == null) {
+      if (this.cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("GatewayDeltaForwarderCacheListener: Received create event for ")
+            .append(event.getKey())
+            .append("->")
+            .append(event.getNewValue())
+            .append(" that originated in the local site. Sending it to the remote site.");
+        this.cache.getLogger().fine(builder.toString());
+      }
+
+      // Distribute the create event to the gateway hub(s)
+      String regionName = event.getRegion().getFullPath();
+      String sessionId = event.getKey();
+      SerializedCacheValue scv = event.getSerializedNewValue();
+      if (scv == null) {
+        getGatewayDeltaRegion().put(sessionId,
+            new GatewayDeltaCreateEvent(regionName, sessionId, EntryEventImpl.serialize(event.getNewValue())));
+      } else {
+        System.out.println(
+            "GatewayDeltaForwarderCacheListener event.getSerializedNewValue().getSerializedValue(): " + event.getSerializedNewValue()
+                .getSerializedValue());
+        getGatewayDeltaRegion().put(sessionId,
+            new GatewayDeltaCreateEvent(regionName, sessionId, scv.getSerializedValue()));
+      }
+    } else {
+      if (this.cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("GatewayDeltaForwarderCacheListener: Received create event for ")
+            .append(event.getKey())
+            .append("->")
+            .append(event.getNewValue())
+            .append(" that originated in the remote site.");
+        this.cache.getLogger().fine(builder.toString());
+      }
+    }
+  }
+
+  public void afterUpdate(EntryEvent<String, GatewayDelta> event) {
+    //System.out.println("GatewayDeltaForwarderCacheListener.afterUpdate: " + event);
+    // If the event is from the local site, create an 'update' event and send it to the
+    // gateway delta region
+    if (event.getCallbackArgument() == null) {
+      if (this.cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("GatewayDeltaForwarderCacheListener: Received update event for ")
+            .append(event.getKey())
+            .append("->")
+            .append(event.getNewValue())
+            .append(" that originated in the local site. Sending it to the remote site.");
+        this.cache.getLogger().fine(builder.toString());
+      }
+
+      // Distribute the update event to the gateway hub(s)
+      GatewayDelta session = event.getNewValue();
+      getGatewayDeltaRegion().put(event.getKey(), session.getCurrentGatewayDeltaEvent());
+
+      // Reset the current delta
+      session.setCurrentGatewayDeltaEvent(null);
+    } else {
+      if (this.cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("GatewayDeltaForwarderCacheListener: Received update event for ")
+            .append(event.getKey())
+            .append("->")
+            .append(event.getNewValue())
+            .append(" that originated in the remote site.");
+        this.cache.getLogger().fine(builder.toString());
+      }
+    }
+  }
+
+  public void afterDestroy(EntryEvent<String, GatewayDelta> event) {
+    // If the event is from the local site, create a 'destroy' event and send it to the
+    // gateway delta region
+    if (event.getCallbackArgument() != null) {
+      if (this.cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("GatewayDeltaForwarderCacheListener: Received destroy event for ")
+            .append(event.getKey())
+            .append("->")
+            .append(event.getNewValue())
+            .append(" that originated in the local site. Sending it to the remote site.");
+        this.cache.getLogger().fine(builder.toString());
+      }
+
+      // Distribute the destroy event to the gateway hub(s)
+      String sessionId = event.getKey();
+      getGatewayDeltaRegion().put(sessionId, new GatewayDeltaDestroyEvent(event.getRegion().getFullPath(), sessionId));
+    } else {
+      if (this.cache.getLogger().fineEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("GatewayDeltaForwarderCacheListener: Received destroy event for session ")
+            .append(event.getKey())
+            .append(" that either expired or originated in the remote site.");
+        this.cache.getLogger().fine(builder.toString());
+      }
+    }
+  }
+
+  public void init(Properties p) {
+  }
+
+  private LocalRegion getGatewayDeltaRegion() {
+    if (this.gatewayDeltaRegion == null) {
+      this.gatewayDeltaRegion = createOrRetrieveGatewayDeltaRegion();
+    }
+    return this.gatewayDeltaRegion;
+  }
+
+  @SuppressWarnings("unchecked")
+  private LocalRegion createOrRetrieveGatewayDeltaRegion() {
+    Region region = this.cache.getRegion(GatewayDelta.GATEWAY_DELTA_REGION_NAME);
+    if (region == null) {
+      region = new RegionFactory().setScope(Scope.LOCAL)
+          .setDataPolicy(DataPolicy.EMPTY)
+          .setSubscriptionAttributes(new SubscriptionAttributes(InterestPolicy.ALL))
+// TODO: Disabled for WAN
+//        .setEnableGateway(true)
+          .addCacheListener(new GatewayDeltaEventApplicationCacheListener())
+          .create(GatewayDelta.GATEWAY_DELTA_REGION_NAME);
+    }
+    if (this.cache.getLogger().fineEnabled()) {
+      StringBuilder builder = new StringBuilder();
+      builder.append("GatewayDeltaForwarderCacheListener: Created gateway delta region: ").append(region);
+      this.cache.getLogger().fine(builder.toString());
+    }
+    return (LocalRegion) region;
+  }
+
+  public boolean equals(Object obj) {
+    // This method is only implemented so that RegionCreator.validateRegion works properly.
+    // The CacheListener comparison fails because two of these instances are not equal.
+    if (this == obj) {
+      return true;
+    }
+
+    if (obj == null || !(obj instanceof GatewayDeltaForwarderCacheListener)) {
+      return false;
+    }
+
+    return true;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/AbstractCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/AbstractCache.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/AbstractCache.java
new file mode 100644
index 0000000..ea81309
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/AbstractCache.java
@@ -0,0 +1,398 @@
+/*
+* 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.bootstrap;
+
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.control.ResourceManager;
+import com.gemstone.gemfire.distributed.internal.AbstractDistributionConfig;
+import com.gemstone.gemfire.distributed.internal.DistributionConfig;
+import com.gemstone.gemfire.internal.cache.LocalRegion;
+import com.gemstone.gemfire.modules.util.Banner;
+import com.gemstone.gemfire.modules.util.RegionHelper;
+import com.gemstone.gemfire.modules.util.ResourceManagerValidator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+public abstract class AbstractCache {
+
+  protected GemFireCache cache;
+
+  private static final DateFormat FORMAT = new SimpleDateFormat("yyyy-MM-dd");
+
+  protected static final String DEFAULT_LOG_FILE_NAME = RegionHelper.NAME + "." + FORMAT.format(new Date()) + ".log";
+
+  protected static final String DEFAULT_STATISTIC_ARCHIVE_FILE_NAME = RegionHelper.NAME + ".gfs";
+
+  protected static final float DEFAULT_EVICTION_HEAP_PERCENTAGE = LocalRegion.DEFAULT_HEAPLRU_EVICTION_HEAP_PERCENTAGE;
+
+  protected static final float DEFAULT_CRITICAL_HEAP_PERCENTAGE = ResourceManager.DEFAULT_CRITICAL_PERCENTAGE;
+
+  protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractCache.class);
+
+  protected float evictionHeapPercentage = DEFAULT_EVICTION_HEAP_PERCENTAGE;
+
+  protected float criticalHeapPercentage = DEFAULT_CRITICAL_HEAP_PERCENTAGE;
+
+  protected boolean rebalance = false;
+
+  protected final Map<String, String> gemfireProperties;
+
+  private final AtomicBoolean started = new AtomicBoolean(false);
+
+  /**
+   * Instance reference which is set in static initialization blocks of any subclasses.
+   */
+  protected static AbstractCache instance = null;
+
+  public AbstractCache() {
+    this.gemfireProperties = new ConcurrentHashMap<String, String>();
+  }
+
+  public void lifecycleEvent(LifecycleTypeAdapter eventType) {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug("Received " + eventType + " event");
+    }
+
+    if (eventType.equals(LifecycleTypeAdapter.START) && started.compareAndSet(false, true)) {
+      // Create or retrieve the cache
+      getLogger().info("Initializing " + Banner.getString());
+      createOrRetrieveCache();
+
+      // Initialize the resource manager
+      initializeResourceManager();
+    } else if (eventType.equals(LifecycleTypeAdapter.AFTER_START)) {
+      if (getRebalance()) {
+        rebalanceCache();
+      }
+    } else if (eventType.equals(LifecycleTypeAdapter.STOP)) {
+      // Close the cache
+//      closeCache();
+      // TODO: Do we need to reset the started flag here?
+    }
+  }
+
+  public boolean isStarted() {
+    return started.get();
+  }
+
+  public void close() {
+    getCache().close();
+    while (!getCache().isClosed()) {
+    }
+
+    started.set(false);
+  }
+
+  public GemFireCache getCache() {
+    return this.cache;
+  }
+
+  public String getLogFileName() {
+    String logFileName = getGemFireProperties().get(DistributionConfig.LOG_FILE_NAME);
+    if (logFileName == null) {
+      logFileName = DEFAULT_LOG_FILE_NAME;
+    }
+    return logFileName;
+  }
+
+  public String getStatisticArchiveFileName() {
+    String statisticsArchiveFileName = getGemFireProperties().get(DistributionConfig.STATISTIC_ARCHIVE_FILE_NAME);
+    if (statisticsArchiveFileName == null) {
+      statisticsArchiveFileName = DEFAULT_STATISTIC_ARCHIVE_FILE_NAME;
+    }
+    return statisticsArchiveFileName;
+  }
+
+  public String getCacheXmlFileName() {
+    String cacheXmlFileName = getGemFireProperties().get(DistributionConfig.CACHE_XML_FILE_NAME);
+    if (cacheXmlFileName == null) {
+      cacheXmlFileName = getDefaultCacheXmlFileName();
+    }
+    return cacheXmlFileName;
+  }
+
+  protected File getCacheXmlFile() {
+    String cacheXmlFileName = getCacheXmlFileName();
+    File cacheXmlFile = new File(cacheXmlFileName);
+    // If the cache xml file is not absolute, point it at the conf directory.
+    if (!cacheXmlFile.isAbsolute()) {
+      if (System.getProperty("catalina.base") != null) {
+        cacheXmlFile = new File(System.getProperty("catalina.base") + "/conf/", cacheXmlFileName);
+      }
+    }
+    return cacheXmlFile;
+  }
+
+  public float getEvictionHeapPercentage() {
+    return this.evictionHeapPercentage;
+  }
+
+  public void setEvictionHeapPercentage(String evictionHeapPercentage) {
+    this.evictionHeapPercentage = Float.valueOf(evictionHeapPercentage);
+  }
+
+  public float getCriticalHeapPercentage() {
+    return this.criticalHeapPercentage;
+  }
+
+  public void setCriticalHeapPercentage(String criticalHeapPercentage) {
+    this.criticalHeapPercentage = Float.valueOf(criticalHeapPercentage);
+  }
+
+  public void setRebalance(boolean rebalance) {
+    this.rebalance = rebalance;
+  }
+
+  public boolean getRebalance() {
+    return this.rebalance;
+  }
+
+  public Map<String, String> getGemFireProperties() {
+    return this.gemfireProperties;
+  }
+
+  public void setProperty(String name, String value) {
+    //TODO Look at fake attributes
+    if (name.equals("className")) {
+      return;
+    }
+
+    // Determine the validity of the input property
+    boolean validProperty = false;
+    for (String gemfireProperty : AbstractDistributionConfig._getAttNames()) {
+      if (name.equals(gemfireProperty)) {
+        validProperty = true;
+        break;
+      }
+    }
+
+    // If it is a valid GemFire property, add it to the the GemFire properties.
+    // Otherwise, log a warning.
+    if (validProperty) {
+      this.gemfireProperties.put(name, value);
+    } else {
+      getLogger().warn("The input property named " + name + " is not a valid GemFire property. It is being ignored.");
+    }
+  }
+
+  public Logger getLogger() {
+    return LOGGER;
+  }
+
+  protected Properties createDistributedSystemProperties() {
+    Properties properties = new Properties();
+
+    // Add any additional gemfire properties
+    for (Map.Entry<String, String> entry : this.gemfireProperties.entrySet()) {
+      properties.put(entry.getKey(), entry.getValue());
+    }
+
+    // Replace the cache xml file in the properties
+    File cacheXmlFile = getCacheXmlFile();
+    String absoluteCacheXmlFileName = cacheXmlFile.getAbsolutePath();
+    // If the file doesn't exist and the name is the default, set cache-xml-file
+    // to the GemFire default. This is for the case where only the jars have been
+    // installed and no default cache.xml exists in the conf directory.
+    if (getCacheXmlFileName().equals(getDefaultCacheXmlFileName()) && !cacheXmlFile.exists()) {
+      absoluteCacheXmlFileName = DistributionConfig.DEFAULT_CACHE_XML_FILE.getName();
+    }
+    properties.put(DistributionConfig.CACHE_XML_FILE_NAME, absoluteCacheXmlFileName);
+
+    // Replace the log file in the properties
+    properties.put(DistributionConfig.LOG_FILE_NAME, getLogFile().getAbsolutePath());
+
+    // Replace the statistics archive file in the properties
+    File statisticArchiveFile = getStatisticArchiveFile();
+    if (statisticArchiveFile == null) {
+      // Remove the statistics archive file name since statistic sampling is disabled
+      properties.remove(DistributionConfig.STATISTIC_ARCHIVE_FILE_NAME);
+      properties.remove(DistributionConfig.STATISTIC_SAMPLING_ENABLED_NAME);
+    } else {
+      properties.put(DistributionConfig.STATISTIC_ARCHIVE_FILE_NAME, statisticArchiveFile.getAbsolutePath());
+    }
+    getLogger().info("Creating distributed system from: " + properties);
+
+    return properties;
+  }
+
+  protected void closeCache() {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug("Closing " + this.cache);
+    }
+    if (getCache() != null) {
+      getCache().close();
+    }
+    getLogger().info("Closed " + this.cache);
+  }
+
+  protected File getLogFile() {
+    String logFileName = getLogFileName();
+    File logFile = new File(logFileName);
+    // If the log file is not absolute, point it at the logs directory.
+    if (!logFile.isAbsolute()) {
+      if (System.getProperty("catalina.base") != null) {
+        logFile = new File(System.getProperty("catalina.base") + "/logs/", logFileName);
+      } else if (System.getProperty("weblogic.Name") != null) {
+        String weblogicName = System.getProperty("weblogic.Name");
+        String separator = System.getProperty("file.separator");
+        logFile = new File("servers" + separator + weblogicName + separator +
+            "logs" + separator + logFileName);
+      } else {
+        logFile = new File(System.getProperty("gemfire.logdir"), logFileName);
+      }
+    }
+    return logFile;
+  }
+
+  protected File getStatisticArchiveFile() {
+    File statisticsArchiveFile = null;
+    String statisticSamplingEnabled = getGemFireProperties().get(DistributionConfig.STATISTIC_SAMPLING_ENABLED_NAME);
+    if (statisticSamplingEnabled != null && statisticSamplingEnabled.equals("true")) {
+      String statisticsArchiveFileName = getStatisticArchiveFileName();
+      statisticsArchiveFile = new File(statisticsArchiveFileName);
+      // If the statistics archive file is not absolute, point it at the logs directory.
+      if (!statisticsArchiveFile.isAbsolute()) {
+        if (System.getProperty("catalina.base") != null) {
+          statisticsArchiveFile = new File(System.getProperty("catalina.base") + "/logs/", statisticsArchiveFileName);
+        } else if (System.getProperty("weblogic.Name") != null) {
+          String weblogicName = System.getProperty("weblogic.Name");
+          String separator = System.getProperty("file.separator");
+          statisticsArchiveFile = new File("servers" + separator + weblogicName + separator +
+              "logs" + separator + statisticsArchiveFileName);
+        } else {
+          statisticsArchiveFile = new File(System.getProperty("gemfire.statisticsdir"), statisticsArchiveFileName);
+        }
+      }
+    }
+    return statisticsArchiveFile;
+  }
+
+  protected void initializeResourceManager() {
+    // Get current eviction and critical heap percentages
+    ResourceManager rm = getCache().getResourceManager();
+    float currentEvictionHeapPercentage = rm.getEvictionHeapPercentage();
+    float currentCriticalHeapPercentage = rm.getCriticalHeapPercentage();
+
+    // Set new eviction and critical heap percentages if necessary
+    if (getEvictionHeapPercentage() != currentEvictionHeapPercentage || getCriticalHeapPercentage() != currentCriticalHeapPercentage) {
+      if (getLogger().isDebugEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("Previous eviction heap percentage=")
+            .append(currentEvictionHeapPercentage)
+            .append("; critical heap percentage=")
+            .append(currentCriticalHeapPercentage);
+        getLogger().debug(builder.toString());
+        builder.setLength(0);
+        builder.append("Requested eviction heap percentage=")
+            .append(getEvictionHeapPercentage())
+            .append("; critical heap percentage=")
+            .append(getCriticalHeapPercentage());
+        getLogger().debug(builder.toString());
+      }
+      if (currentCriticalHeapPercentage == 0.0f) {
+        // If the current critical heap percentage is 0 (disabled), set eviction
+        // heap percentage first, then set the critical heap percentage. At this
+        // point, the eviction heap percentage can be set to anything.
+        try {
+          rm.setEvictionHeapPercentage(getEvictionHeapPercentage());
+          rm.setCriticalHeapPercentage(getCriticalHeapPercentage());
+        } catch (IllegalArgumentException e) {
+          handleResourceManagerException(e, currentEvictionHeapPercentage, currentCriticalHeapPercentage);
+          rm.setEvictionHeapPercentage(currentEvictionHeapPercentage);
+          rm.setCriticalHeapPercentage(currentCriticalHeapPercentage);
+        }
+      } else if (getCriticalHeapPercentage() >= currentCriticalHeapPercentage) {
+        // If the requested critical heap percentage is >= the current critical
+        // heap percentage, then set the critical heap percentage first since it
+        // can safely be slid up. Then, set the eviction heap percentage.
+        try {
+          rm.setCriticalHeapPercentage(getCriticalHeapPercentage());
+          rm.setEvictionHeapPercentage(getEvictionHeapPercentage());
+        } catch (IllegalArgumentException e) {
+          handleResourceManagerException(e, currentEvictionHeapPercentage, currentCriticalHeapPercentage);
+          rm.setCriticalHeapPercentage(currentCriticalHeapPercentage);
+          rm.setEvictionHeapPercentage(currentEvictionHeapPercentage);
+        }
+      } else {
+        // If the requested critical heap percentage is < the current critical
+        // heap percentage, then set the eviction heap percentage first since it
+        // can safely be slid down. Then, set the critical heap percentage.
+        try {
+          rm.setEvictionHeapPercentage(getEvictionHeapPercentage());
+          rm.setCriticalHeapPercentage(getCriticalHeapPercentage());
+        } catch (IllegalArgumentException e) {
+          handleResourceManagerException(e, currentEvictionHeapPercentage, currentCriticalHeapPercentage);
+          rm.setEvictionHeapPercentage(currentEvictionHeapPercentage);
+          rm.setCriticalHeapPercentage(currentCriticalHeapPercentage);
+        }
+      }
+      if (getLogger().isDebugEnabled()) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("Actual eviction heap percentage=")
+            .append(rm.getEvictionHeapPercentage())
+            .append("; critical heap percentage=")
+            .append(rm.getCriticalHeapPercentage());
+        getLogger().debug(builder.toString());
+      }
+    }
+
+    // Validate java startup parameters (done after setting the eviction and
+    // critical heap percentages so that the CMSInitiatingOccupancyFraction can
+    // be compared against them.
+    ResourceManagerValidator.validateJavaStartupParameters(getCache());
+  }
+
+  private void handleResourceManagerException(IllegalArgumentException e, float currentEvictionHeapPercentage,
+      float currentCriticalHeapPercentage) {
+    StringBuilder builder = new StringBuilder();
+    builder.append("Caught exception attempting to set eviction heap percentage=")
+        .append(getEvictionHeapPercentage())
+        .append(" and critical heap percentage=")
+        .append(getCriticalHeapPercentage())
+        .append(". The percentages will be set back to their previous values (eviction heap percentage=")
+        .append(currentEvictionHeapPercentage)
+        .append(" and critical heap percentage=")
+        .append(currentCriticalHeapPercentage)
+        .append(").");
+    getLogger().warn(builder.toString(), e);
+  }
+
+  @Override
+  public String toString() {
+    return new StringBuilder().append(getClass().getSimpleName())
+        .append("[")
+        .append("cache=")
+        .append(this.cache)
+        .append("]")
+        .toString();
+  }
+
+  protected abstract void createOrRetrieveCache();
+
+  protected abstract void rebalanceCache();
+
+  protected abstract String getDefaultCacheXmlFileName();
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/ClientServerCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/ClientServerCache.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/ClientServerCache.java
new file mode 100644
index 0000000..f8cff16
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/ClientServerCache.java
@@ -0,0 +1,74 @@
+/*
+* 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.bootstrap;
+
+import com.gemstone.gemfire.cache.CacheClosedException;
+import com.gemstone.gemfire.cache.client.ClientCacheFactory;
+
+/**
+ * This is a singleton class which maintains configuration properties as well as starting a Client-Server cache.
+ */
+public class ClientServerCache extends AbstractCache {
+
+  protected static final String DEFAULT_CACHE_XML_FILE_NAME = "cache-client.xml";
+
+  static {
+    instance = new ClientServerCache();
+  }
+
+  private ClientServerCache() {
+    // Singleton
+    super();
+  }
+
+  public static AbstractCache getInstance() {
+    return instance;
+  }
+
+  @Override
+  protected void createOrRetrieveCache() {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Creating cache");
+    }
+    // Get the existing cache if any
+    try {
+      this.cache = ClientCacheFactory.getAnyInstance();
+    } catch (CacheClosedException e) {
+    }
+
+    // If no cache exists, create one
+    String message = null;
+    if (this.cache == null) {
+      // enable pool subscription so that default cache can be used by hibernate module
+      this.cache = new ClientCacheFactory(createDistributedSystemProperties()).create();
+      message = "Created ";
+    } else {
+      message = "Retrieved ";
+    }
+    getLogger().info(message + this.cache);
+  }
+
+  @Override
+  protected void rebalanceCache() {
+    getLogger().warn("The client cannot rebalance the server's cache.");
+  }
+
+  @Override
+  protected String getDefaultCacheXmlFileName() {
+    return DEFAULT_CACHE_XML_FILE_NAME;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/LifecycleTypeAdapter.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/LifecycleTypeAdapter.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/LifecycleTypeAdapter.java
new file mode 100644
index 0000000..2f0c9bb
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/LifecycleTypeAdapter.java
@@ -0,0 +1,59 @@
+/*
+* 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.
+*/
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package com.gemstone.gemfire.modules.session.bootstrap;
+
+/**
+ * Adapter for the Catalina Lifecycle event types
+ */
+public enum LifecycleTypeAdapter {
+
+  CONFIGURE_START,
+
+  CONFIGURE_STOP,
+
+  AFTER_DESTROY,
+
+  AFTER_INIT,
+
+  AFTER_START,
+
+  AFTER_STOP,
+
+  BEFORE_DESTROY,
+
+  BEFORE_INIT,
+
+  BEFORE_START,
+
+  BEFORE_STOP,
+
+  DESTROY,
+
+  INIT,
+
+  PERIODIC,
+
+  START,
+
+  STOP;
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/PeerToPeerCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/PeerToPeerCache.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/PeerToPeerCache.java
new file mode 100644
index 0000000..b0b3b4a
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/bootstrap/PeerToPeerCache.java
@@ -0,0 +1,85 @@
+/*
+* 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.bootstrap;
+
+import com.gemstone.gemfire.cache.CacheClosedException;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.control.RebalanceResults;
+import com.gemstone.gemfire.modules.util.RegionHelper;
+
+/**
+ * This is a singleton class which maintains configuration properties as well as starting a Peer-To-Peer cache.
+ */
+
+public class PeerToPeerCache extends AbstractCache {
+
+  protected static final String DEFAULT_CACHE_XML_FILE_NAME = "cache-peer.xml";
+
+  static {
+    instance = new PeerToPeerCache();
+  }
+
+  private PeerToPeerCache() {
+    // Singleton
+    super();
+  }
+
+  public static AbstractCache getInstance() {
+    return instance;
+  }
+
+  @Override
+  protected void createOrRetrieveCache() {
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug("Creating cache");
+    }
+    // Get the existing cache if any
+    try {
+      this.cache = CacheFactory.getAnyInstance();
+    } catch (CacheClosedException e) {
+    }
+
+    // If no cache exists, create one
+    String message = null;
+    if (this.cache == null) {
+      this.cache = new CacheFactory(createDistributedSystemProperties()).create();
+      message = "Created ";
+    } else {
+      message = "Retrieved ";
+    }
+    getLogger().info(message + this.cache);
+  }
+
+  @Override
+  protected void rebalanceCache() {
+    try {
+      getLogger().info("Rebalancing: " + this.cache);
+      RebalanceResults results = RegionHelper.rebalanceCache(this.cache);
+      if (getLogger().isDebugEnabled()) {
+        getLogger().debug("Done rebalancing: " + this.cache);
+        getLogger().debug(RegionHelper.getRebalanceResultsMessage(results));
+      }
+    } catch (Exception e) {
+      getLogger().warn("Rebalance failed because of the following exception:", e);
+    }
+  }
+
+  @Override
+  protected String getDefaultCacheXmlFileName() {
+    return DEFAULT_CACHE_XML_FILE_NAME;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractCacheLifecycleListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractCacheLifecycleListener.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractCacheLifecycleListener.java
new file mode 100644
index 0000000..1019ddc
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractCacheLifecycleListener.java
@@ -0,0 +1,68 @@
+/*
+* 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.catalina;
+
+
+import com.gemstone.gemfire.modules.session.bootstrap.AbstractCache;
+import com.gemstone.gemfire.modules.session.bootstrap.LifecycleTypeAdapter;
+import org.apache.catalina.LifecycleEvent;
+import org.apache.catalina.LifecycleListener;
+
+
+public abstract class AbstractCacheLifecycleListener implements LifecycleListener {
+  protected AbstractCache cache;
+
+  @Override
+  public void lifecycleEvent(LifecycleEvent le) {
+    cache.lifecycleEvent(LifecycleTypeAdapter.valueOf(le.getType().toUpperCase()));
+  }
+
+  /**
+   * This is called by Tomcat to set properties on the Listener.
+   */
+  public void setProperty(String name, String value) {
+    cache.setProperty(name, value);
+  }
+
+  /*
+   * These getters and setters are also called by Tomcat and just passed on to
+   * the cache.
+   */
+  public float getEvictionHeapPercentage() {
+    return cache.getEvictionHeapPercentage();
+  }
+
+  public void setEvictionHeapPercentage(String evictionHeapPercentage) {
+    cache.setEvictionHeapPercentage(evictionHeapPercentage);
+  }
+
+  public float getCriticalHeapPercentage() {
+    return cache.getCriticalHeapPercentage();
+  }
+
+  public void setCriticalHeapPercentage(String criticalHeapPercentage) {
+    cache.setCriticalHeapPercentage(criticalHeapPercentage);
+  }
+
+  public void setRebalance(boolean rebalance) {
+    cache.setRebalance(rebalance);
+  }
+
+  public boolean getRebalance() {
+    return cache.getRebalance();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractSessionCache.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractSessionCache.java
new file mode 100644
index 0000000..3019cae
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/AbstractSessionCache.java
@@ -0,0 +1,113 @@
+/*
+* 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.catalina;
+
+import com.gemstone.gemfire.cache.EntryNotFoundException;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionStatistics;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+import com.gemstone.gemfire.modules.util.SessionCustomExpiry;
+import org.apache.catalina.Session;
+
+import javax.servlet.http.HttpSession;
+
+public abstract class AbstractSessionCache implements SessionCache {
+
+  protected SessionManager sessionManager;
+
+  /**
+   * The sessionRegion is the <code>Region</code> that actually stores and replicates the <code>Session</code>s.
+   */
+  protected Region<String, HttpSession> sessionRegion;
+
+  /**
+   * The operatingRegion is the <code>Region</code> used to do HTTP operations. if local cache is enabled, then this
+   * will be the local <code>Region</code>; otherwise, it will be the session <code>Region</code>.
+   */
+  protected Region<String, HttpSession> operatingRegion;
+
+  protected DeltaSessionStatistics statistics;
+
+  public AbstractSessionCache(SessionManager sessionManager) {
+    this.sessionManager = sessionManager;
+  }
+
+  @Override
+  public String getSessionRegionName() {
+    return getSessionRegion().getFullPath();
+  }
+
+  @Override
+  public String getOperatingRegionName() {
+    return getOperatingRegion().getFullPath();
+  }
+
+  @Override
+  public void putSession(Session session) {
+    getOperatingRegion().put(session.getId(), (HttpSession) session);
+  }
+
+  @Override
+  public HttpSession getSession(String sessionId) {
+    return getOperatingRegion().get(sessionId);
+  }
+
+  @Override
+  public void destroySession(String sessionId) {
+    try {
+      getOperatingRegion().destroy(sessionId);
+    } catch (EntryNotFoundException enex) {
+      // Ignored
+    }
+  }
+
+  @Override
+  public DeltaSessionStatistics getStatistics() {
+    return this.statistics;
+  }
+
+  protected SessionManager getSessionManager() {
+    return this.sessionManager;
+  }
+
+  public Region<String, HttpSession> getSessionRegion() {
+    return this.sessionRegion;
+  }
+
+  public Region<String, HttpSession> getOperatingRegion() {
+    return this.operatingRegion;
+  }
+
+  protected void createStatistics() {
+    this.statistics = new DeltaSessionStatistics(getCache().getDistributedSystem(),
+        getSessionManager().getStatisticsName());
+  }
+
+  protected RegionConfiguration createRegionConfiguration() {
+    RegionConfiguration configuration = new RegionConfiguration();
+    configuration.setRegionName(getSessionManager().getRegionName());
+    configuration.setRegionAttributesId(getSessionManager().getRegionAttributesId());
+    if (getSessionManager().getMaxInactiveInterval() != RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
+      configuration.setMaxInactiveInterval(getSessionManager().getMaxInactiveInterval());
+      configuration.setCustomExpiry(new SessionCustomExpiry());
+    }
+    configuration.setEnableGatewayDeltaReplication(getSessionManager().getEnableGatewayDeltaReplication());
+    configuration.setEnableGatewayReplication(getSessionManager().getEnableGatewayReplication());
+    configuration.setEnableDebugListener(getSessionManager().getEnableDebugListener());
+    return configuration;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerCacheLifecycleListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerCacheLifecycleListener.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerCacheLifecycleListener.java
new file mode 100644
index 0000000..ba66fa2
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerCacheLifecycleListener.java
@@ -0,0 +1,26 @@
+/*
+* 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.catalina;
+
+import com.gemstone.gemfire.modules.session.bootstrap.ClientServerCache;
+
+public class ClientServerCacheLifecycleListener extends AbstractCacheLifecycleListener {
+
+  public ClientServerCacheLifecycleListener() {
+    cache = ClientServerCache.getInstance();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerSessionCache.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerSessionCache.java
new file mode 100644
index 0000000..2de43b4
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/ClientServerSessionCache.java
@@ -0,0 +1,252 @@
+/*
+* 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.catalina;
+
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.InterestResultPolicy;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.client.ClientCache;
+import com.gemstone.gemfire.cache.client.ClientRegionFactory;
+import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
+import com.gemstone.gemfire.cache.client.PoolManager;
+import com.gemstone.gemfire.cache.client.internal.PoolImpl;
+import com.gemstone.gemfire.cache.execute.Execution;
+import com.gemstone.gemfire.cache.execute.FunctionService;
+import com.gemstone.gemfire.cache.execute.ResultCollector;
+import com.gemstone.gemfire.modules.session.catalina.callback.SessionExpirationCacheListener;
+import com.gemstone.gemfire.modules.util.BootstrappingFunction;
+import com.gemstone.gemfire.modules.util.CreateRegionFunction;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+import com.gemstone.gemfire.modules.util.RegionSizeFunction;
+import com.gemstone.gemfire.modules.util.RegionStatus;
+import com.gemstone.gemfire.modules.util.SessionCustomExpiry;
+import com.gemstone.gemfire.modules.util.TouchPartitionedRegionEntriesFunction;
+import com.gemstone.gemfire.modules.util.TouchReplicatedRegionEntriesFunction;
+
+import javax.servlet.http.HttpSession;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class ClientServerSessionCache extends AbstractSessionCache {
+
+  private ClientCache cache;
+
+  protected static final String DEFAULT_REGION_ATTRIBUTES_ID = RegionShortcut.PARTITION_REDUNDANT.toString();
+
+  protected static final boolean DEFAULT_ENABLE_LOCAL_CACHE = true;
+
+  public ClientServerSessionCache(SessionManager sessionManager, ClientCache cache) {
+    super(sessionManager);
+    this.cache = cache;
+  }
+
+  @Override
+  public void initialize() {
+    // Bootstrap the servers
+    bootstrapServers();
+
+    // Create or retrieve the region
+    try {
+      createOrRetrieveRegion();
+    } catch (Exception ex) {
+      sessionManager.getLogger().fatal("Unable to create or retrieve region", ex);
+      throw new IllegalStateException(ex);
+    }
+
+    // Set the session region directly as the operating region since there is no difference
+    // between the local cache region and the session region.
+    this.operatingRegion = this.sessionRegion;
+
+    // Create or retrieve the statistics
+    createStatistics();
+  }
+
+  @Override
+  public String getDefaultRegionAttributesId() {
+    return DEFAULT_REGION_ATTRIBUTES_ID;
+  }
+
+  @Override
+  public boolean getDefaultEnableLocalCache() {
+    return DEFAULT_ENABLE_LOCAL_CACHE;
+  }
+
+  @Override
+  public void touchSessions(Set<String> sessionIds) {
+    // Get the region attributes id to determine the region type. This is
+    // problematic since the region attributes id doesn't really define the
+    // region type. Currently there is no way to know the type of region created
+    // on the server. Maybe the CreateRegionFunction should return it.
+    String regionAttributesID = getSessionManager().getRegionAttributesId().toLowerCase();
+
+    // Invoke the appropriate function depending on the type of region
+    if (regionAttributesID.startsWith("partition")) {
+      // Execute the partitioned touch function on the primary server(s)
+      Execution execution = FunctionService.onRegion(getSessionRegion()).withFilter(sessionIds);
+      try {
+        ResultCollector collector = execution.execute(TouchPartitionedRegionEntriesFunction.ID, true, false, true);
+        collector.getResult();
+      } catch (Exception e) {
+        // If an exception occurs in the function, log it.
+        getSessionManager().getLogger().warn("Caught unexpected exception:", e);
+      }
+    } else {
+      // Execute the member touch function on all the server(s)
+      Execution execution = FunctionService.onServers(getCache())
+          .withArgs(new Object[]{this.sessionRegion.getFullPath(), sessionIds});
+      try {
+        ResultCollector collector = execution.execute(TouchReplicatedRegionEntriesFunction.ID, true, false, false);
+        collector.getResult();
+      } catch (Exception e) {
+        // If an exception occurs in the function, log it.
+        getSessionManager().getLogger().warn("Caught unexpected exception:", e);
+      }
+    }
+  }
+
+  @Override
+  public boolean isPeerToPeer() {
+    return false;
+  }
+
+  @Override
+  public boolean isClientServer() {
+    return true;
+  }
+
+  @Override
+  public Set<String> keySet() {
+    return getSessionRegion().keySetOnServer();
+  }
+
+  @Override
+  public int size() {
+    // Add a single dummy key to force the function to go to one server
+    Set<String> filters = new HashSet<String>();
+    filters.add("test-key");
+
+    // Execute the function on the session region
+    Execution execution = FunctionService.onRegion(getSessionRegion()).withFilter(filters);
+    ResultCollector collector = execution.execute(RegionSizeFunction.ID, true, true, true);
+    List<Integer> result = (List<Integer>) collector.getResult();
+
+    // Return the first (and only) element
+    return result.get(0);
+  }
+
+  @Override
+  public boolean isBackingCacheAvailable() {
+    if (getSessionManager().isCommitValveFailfastEnabled()) {
+      PoolImpl pool = (PoolImpl) PoolManager.find(getOperatingRegionName());
+      return pool.isPrimaryUpdaterAlive();
+    }
+    return true;
+  }
+
+  public GemFireCache getCache() {
+    return this.cache;
+  }
+
+  private void bootstrapServers() {
+    Execution execution = FunctionService.onServers(this.cache);
+    ResultCollector collector = execution.execute(new BootstrappingFunction());
+    // Get the result. Nothing is being done with it.
+    try {
+      collector.getResult();
+    } catch (Exception e) {
+      // If an exception occurs in the function, log it.
+      getSessionManager().getLogger().warn("Caught unexpected exception:", e);
+    }
+  }
+
+  protected void createOrRetrieveRegion() {
+    // Retrieve the local session region
+    this.sessionRegion = this.cache.getRegion(getSessionManager().getRegionName());
+
+    // If necessary, create the regions on the server and client
+    if (this.sessionRegion == null) {
+      // Create the PR on the servers
+      createSessionRegionOnServers();
+
+      // Create the region on the client
+      this.sessionRegion = createLocalSessionRegion();
+      if (getSessionManager().getLogger().isDebugEnabled()) {
+        getSessionManager().getLogger().debug("Created session region: " + this.sessionRegion);
+      }
+    } else {
+      if (getSessionManager().getLogger().isDebugEnabled()) {
+        getSessionManager().getLogger().debug("Retrieved session region: " + this.sessionRegion);
+      }
+    }
+  }
+
+  private void createSessionRegionOnServers() {
+    // Create the RegionConfiguration
+    RegionConfiguration configuration = createRegionConfiguration();
+
+    // Send it to the server tier
+    Execution execution = FunctionService.onServer(this.cache).withArgs(configuration);
+    ResultCollector collector = execution.execute(CreateRegionFunction.ID);
+
+    // Verify the region was successfully created on the servers
+    List<RegionStatus> results = (List<RegionStatus>) collector.getResult();
+    for (RegionStatus status : results) {
+      if (status == RegionStatus.INVALID) {
+        StringBuilder builder = new StringBuilder();
+        builder.append("An exception occurred on the server while attempting to create or validate region named ")
+            .append(getSessionManager().getRegionName())
+            .append(". See the server log for additional details.");
+        throw new IllegalStateException(builder.toString());
+      }
+    }
+  }
+
+  private Region<String, HttpSession> createLocalSessionRegion() {
+    ClientRegionFactory<String, HttpSession> factory = null;
+    if (getSessionManager().getEnableLocalCache()) {
+      // Create the region factory with caching and heap LRU enabled
+      factory = this.cache.createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY_HEAP_LRU);
+
+      // Set the expiration time, action and listener if necessary
+      int maxInactiveInterval = getSessionManager().getMaxInactiveInterval();
+      if (maxInactiveInterval != RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
+        factory.setStatisticsEnabled(true);
+        factory.setCustomEntryIdleTimeout(new SessionCustomExpiry());
+        factory.addCacheListener(new SessionExpirationCacheListener());
+      }
+    } else {
+      // Create the region factory without caching enabled
+      factory = this.cache.createClientRegionFactory(ClientRegionShortcut.PROXY);
+      factory.addCacheListener(new SessionExpirationCacheListener());
+    }
+
+    // Create the region
+    Region region = factory.create(getSessionManager().getRegionName());
+
+    /*
+     * If we're using an empty client region, we register interest so that
+     * expired sessions are destroyed correctly.
+     */
+    if (!getSessionManager().getEnableLocalCache()) {
+      region.registerInterest("ALL_KEYS", InterestResultPolicy.KEYS);
+    }
+
+    return region;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/CommitSessionValve.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/CommitSessionValve.java b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/CommitSessionValve.java
new file mode 100644
index 0000000..0ae17f2
--- /dev/null
+++ b/extensions/geode-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/CommitSessionValve.java
@@ -0,0 +1,68 @@
+/*
+* 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.catalina;
+
+import org.apache.catalina.Manager;
+import org.apache.catalina.connector.Request;
+import org.apache.catalina.connector.Response;
+import org.apache.catalina.valves.ValveBase;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
+
+import javax.servlet.ServletException;
+import java.io.IOException;
+
+public class CommitSessionValve extends ValveBase {
+
+  private static final Log log = LogFactory.getLog(CommitSessionValve.class);
+
+  protected static final String info = "com.gemstone.gemfire.modules.session.catalina.CommitSessionValve/1.0";
+
+  public CommitSessionValve() {
+    log.info("Initialized");
+  }
+
+  @Override
+  public void invoke(Request request, Response response) throws IOException, ServletException {
+    // Get the Manager
+    Manager manager = request.getContext().getManager();
+    DeltaSessionFacade session = null;
+
+    // Invoke the next Valve
+    try {
+      getNext().invoke(request, response);
+    } finally {
+      // Commit and if the correct Manager was found
+      if (manager instanceof DeltaSessionManager) {
+        session = (DeltaSessionFacade) request.getSession(false);
+        if (session != null) {
+          if (session.isValid()) {
+            ((DeltaSessionManager) manager).removeTouchedSession(session.getId());
+            session.commit();
+            if (manager.getContainer().getLogger().isDebugEnabled()) {
+              manager.getContainer().getLogger().debug(session + ": Committed.");
+            }
+          } else {
+            if (manager.getContainer().getLogger().isDebugEnabled()) {
+              manager.getContainer().getLogger().debug(session + ": Not valid so not committing.");
+            }
+          }
+        }
+      }
+    }
+  }
+}


[42/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSession.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSession.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSession.java
deleted file mode 100644
index c81a232..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSession.java
+++ /dev/null
@@ -1,597 +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.catalina;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.Delta;
-import com.gemstone.gemfire.InvalidDeltaException;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.internal.cache.lru.Sizeable;
-import com.gemstone.gemfire.internal.util.BlobHelper;
-import com.gemstone.gemfire.modules.gatewaydelta.GatewayDelta;
-import com.gemstone.gemfire.modules.gatewaydelta.GatewayDeltaEvent;
-import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionAttributeEvent;
-import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionAttributeEventBatch;
-import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionDestroyAttributeEvent;
-import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionUpdateAttributeEvent;
-import org.apache.catalina.Manager;
-import org.apache.catalina.ha.session.SerializablePrincipal;
-import org.apache.catalina.realm.GenericPrincipal;
-import org.apache.catalina.security.SecurityUtil;
-import org.apache.catalina.session.StandardSession;
-import org.apache.juli.logging.Log;
-import org.apache.juli.logging.LogFactory;
-
-import javax.servlet.http.HttpSession;
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.AccessController;
-import java.security.Principal;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-@SuppressWarnings("serial")
-public class DeltaSession extends StandardSession implements DataSerializable, Delta, GatewayDelta, Sizeable {
-
-  private transient Region<String, HttpSession> operatingRegion;
-
-  private String sessionRegionName;
-
-  private String contextName;
-
-  private boolean hasDelta;
-
-  private boolean applyRemotely;
-
-  private boolean enableGatewayDeltaReplication;
-
-  private transient final Object changeLock = new Object();
-
-  private final List<DeltaSessionAttributeEvent> eventQueue = new ArrayList<DeltaSessionAttributeEvent>();
-
-  private transient GatewayDeltaEvent currentGatewayDeltaEvent;
-
-  private transient boolean expired = false;
-
-  private transient boolean preferDeserializedForm = true;
-
-  private byte[] serializedPrincipal;
-
-  private final Log LOG = LogFactory.getLog(DeltaSession.class.getName());
-
-  /**
-   * The string manager for this package.
-   */
-//  protected static StringManager STRING_MANAGER =
-//    StringManager.getManager("com.gemstone.gemfire.modules.session.catalina");
-
-  /**
-   * Construct a new <code>Session</code> associated with no <code>Manager</code>. The <code>Manager</code> will be
-   * assigned later using {@link #setOwner(Object)}.
-   */
-  public DeltaSession() {
-    super(null);
-  }
-
-  /**
-   * Construct a new Session associated with the specified Manager.
-   *
-   * @param manager The manager with which this Session is associated
-   */
-  public DeltaSession(Manager manager) {
-    super(manager);
-    setOwner(manager);
-  }
-
-  /**
-   * Return the <code>HttpSession</code> for which this object is the facade.
-   */
-  @SuppressWarnings("unchecked")
-  public HttpSession getSession() {
-    if (facade == null) {
-      if (SecurityUtil.isPackageProtectionEnabled()) {
-        final DeltaSession fsession = this;
-        facade = (DeltaSessionFacade) AccessController.doPrivileged(new PrivilegedAction() {
-          public Object run() {
-            return new DeltaSessionFacade(fsession);
-          }
-        });
-      } else {
-        facade = new DeltaSessionFacade(this);
-      }
-    }
-    return (facade);
-  }
-
-  public Principal getPrincipal() {
-    if (this.principal == null && this.serializedPrincipal != null) {
-      SerializablePrincipal sp = null;
-      try {
-        sp = (SerializablePrincipal) BlobHelper.deserializeBlob(this.serializedPrincipal);
-      } catch (Exception e) {
-        StringBuilder builder = new StringBuilder();
-        builder.append(this)
-            .append(
-                ": Serialized principal contains a byte[] that cannot be deserialized due to the following exception");
-        ((DeltaSessionManager) getManager()).getLogger().warn(builder.toString(), e);
-        return null;
-      }
-      this.principal = sp.getPrincipal(this.manager.getContainer().getRealm());
-      if (getManager() != null) {
-        DeltaSessionManager mgr = (DeltaSessionManager) getManager();
-        if (mgr.getLogger().isDebugEnabled()) {
-          mgr.getLogger().debug(this + ": Deserialized principal: " + this.principal);
-          //mgr.logCurrentStack();
-        }
-      }
-    }
-    return this.principal;
-  }
-
-  public void setPrincipal(Principal principal) {
-    super.setPrincipal(principal);
-
-    // Put the session into the region to serialize the principal
-    if (getManager() != null) {
-      // TODO convert this to a delta
-      getManager().add(this);
-      DeltaSessionManager mgr = (DeltaSessionManager) getManager();
-      if (mgr.getLogger().isDebugEnabled()) {
-        mgr.getLogger().debug(this + ": Cached principal: " + principal);
-        //mgr.logCurrentStack();
-      }
-    }
-  }
-
-  private byte[] getSerializedPrincipal() {
-    if (this.serializedPrincipal == null) {
-      if (this.principal != null && this.principal instanceof GenericPrincipal) {
-        GenericPrincipal gp = (GenericPrincipal) this.principal;
-        SerializablePrincipal sp = SerializablePrincipal.createPrincipal(gp);
-        this.serializedPrincipal = serialize(sp);
-        if (manager != null) {
-          DeltaSessionManager mgr = (DeltaSessionManager) getManager();
-          if (mgr.getLogger().isDebugEnabled()) {
-            mgr.getLogger().debug(this + ": Serialized principal: " + sp);
-            //mgr.logCurrentStack();
-          }
-        }
-      }
-    }
-    return this.serializedPrincipal;
-  }
-
-  protected Region<String, HttpSession> getOperatingRegion() {
-    // This region shouldn't be null when it is needed.
-    // It should have been set by the setOwner method.
-    return this.operatingRegion;
-  }
-
-  public boolean isCommitEnabled() {
-    DeltaSessionManager mgr = (DeltaSessionManager) getManager();
-    return mgr.isCommitValveEnabled();
-  }
-
-  public GatewayDeltaEvent getCurrentGatewayDeltaEvent() {
-    return this.currentGatewayDeltaEvent;
-  }
-
-  public void setCurrentGatewayDeltaEvent(GatewayDeltaEvent currentGatewayDeltaEvent) {
-    this.currentGatewayDeltaEvent = currentGatewayDeltaEvent;
-  }
-
-  @SuppressWarnings("unchecked")
-  public void setOwner(Object manager) {
-    if (manager instanceof DeltaSessionManager) {
-      DeltaSessionManager sessionManager = (DeltaSessionManager) manager;
-      this.manager = sessionManager;
-      initializeRegion(sessionManager);
-      this.hasDelta = false;
-      this.applyRemotely = false;
-      this.enableGatewayDeltaReplication = sessionManager.getEnableGatewayDeltaReplication();
-      this.preferDeserializedForm = sessionManager.getPreferDeserializedForm();
-
-      // Initialize transient variables
-      if (this.listeners == null) {
-        this.listeners = new ArrayList();
-      }
-
-      if (this.notes == null) {
-        this.notes = new Hashtable();
-      }
-
-      contextName = ((DeltaSessionManager) manager).getContainer().getName();
-    } else {
-      throw new IllegalArgumentException(this + ": The Manager must be an AbstractManager");
-    }
-  }
-
-  private void checkBackingCacheAvailable() {
-    if (!((SessionManager) getManager()).isBackingCacheAvailable()) {
-      throw new IllegalStateException("No backing cache server is available.");
-    }
-  }
-
-  public void setAttribute(String name, Object value, boolean notify) {
-    checkBackingCacheAvailable();
-    synchronized (this.changeLock) {
-      // Serialize the value
-      byte[] serializedValue = serialize(value);
-
-      // Store the attribute locally
-      if (this.preferDeserializedForm) {
-        super.setAttribute(name, value, true);
-      } else {
-        super.setAttribute(name, serializedValue, true);
-      }
-
-      if (serializedValue == null) {
-        return;
-      }
-
-      // Create the update attribute message
-      DeltaSessionAttributeEvent event = new DeltaSessionUpdateAttributeEvent(name, serializedValue);
-      queueAttributeEvent(event, true);
-
-      // Distribute the update
-      if (!isCommitEnabled()) {
-        putInRegion(getOperatingRegion(), true, null);
-      }
-    }
-  }
-
-  public void removeAttribute(String name, boolean notify) {
-    checkBackingCacheAvailable();
-    synchronized (this.changeLock) {
-      // Remove the attribute locally
-      super.removeAttribute(name, true);
-
-      // Create the destroy attribute message
-      DeltaSessionAttributeEvent event = new DeltaSessionDestroyAttributeEvent(name);
-      queueAttributeEvent(event, true);
-
-      // Distribute the update
-      if (!isCommitEnabled()) {
-        putInRegion(getOperatingRegion(), true, null);
-      }
-    }
-  }
-
-  public Object getAttribute(String name) {
-    checkBackingCacheAvailable();
-    Object value = super.getAttribute(name);
-
-    // If the attribute is a byte[] (meaning it came from the server),
-    // deserialize it and add it to attributes map before returning it.
-    if (value instanceof byte[]) {
-      try {
-        value = BlobHelper.deserializeBlob((byte[]) value);
-      } catch (Exception e) {
-        StringBuilder builder = new StringBuilder();
-        builder.append(this)
-            .append(": Attribute named ")
-            .append(name)
-            .append(" contains a byte[] that cannot be deserialized due to the following exception");
-        ((DeltaSessionManager) getManager()).getLogger().warn(builder.toString(), e);
-      }
-      if (this.preferDeserializedForm) {
-        localUpdateAttribute(name, value);
-      }
-    }
-
-    // Touch the session region if necessary. This is an asynchronous operation
-    // that prevents the session region from prematurely expiring a session that
-    // is only getting attributes.
-    ((DeltaSessionManager) getManager()).addSessionToTouch(getId());
-
-    return value;
-  }
-
-  public void invalidate() {
-    super.invalidate();
-    //getOperatingRegion().destroy(this.id, true); // already done in super (remove)
-    ((DeltaSessionManager) getManager()).getStatistics().incSessionsInvalidated();
-  }
-
-  public void processExpired() {
-    if (((DeltaSessionManager) getManager()).getLogger().isDebugEnabled()) {
-      ((DeltaSessionManager) getManager()).getLogger().debug(this + ": Expired");
-    }
-    // Set expired (so region.destroy is not called again)
-    setExpired(true);
-
-    // Do expire processing
-    expire();
-
-    // Update statistics
-    DeltaSessionManager manager = (DeltaSessionManager) getManager();
-    if (manager != null) {
-      manager.getStatistics().incSessionsExpired();
-    }
-  }
-
-  public void setMaxInactiveInterval(int interval) {
-    super.setMaxInactiveInterval(interval);
-  }
-
-  public void localUpdateAttribute(String name, Object value) {
-    super.setAttribute(name, value, false); // don't do notification since this is a replication
-  }
-
-  public void localDestroyAttribute(String name) {
-    super.removeAttribute(name, false); // don't do notification since this is a replication
-  }
-
-  public void applyAttributeEvents(Region<String, DeltaSession> region, List<DeltaSessionAttributeEvent> events) {
-    for (DeltaSessionAttributeEvent event : events) {
-      event.apply(this);
-      queueAttributeEvent(event, false);
-    }
-
-    putInRegion(region, false, true);
-  }
-
-  private void initializeRegion(DeltaSessionManager sessionManager) {
-    // Get the session region name
-    this.sessionRegionName = sessionManager.getRegionName();
-
-    // Get the operating region.
-    // If a P2P manager is used, then this will be a local region fronting the
-    // session region if local cache is enabled; otherwise, it will be the
-    // session region itself.
-    // If a CS manager is used, it will be the session proxy region.
-    this.operatingRegion = sessionManager.getSessionCache().getOperatingRegion();
-    if (sessionManager.getLogger().isDebugEnabled()) {
-      sessionManager.getLogger().debug(this + ": Set operating region: " + this.operatingRegion);
-    }
-  }
-
-  private void queueAttributeEvent(DeltaSessionAttributeEvent event, boolean checkAddToCurrentGatewayDelta) {
-    // Add to current gateway delta if necessary
-    if (checkAddToCurrentGatewayDelta) {
-      // If the manager has enabled gateway delta replication and is a P2P
-      // manager, the GatewayDeltaForwardCacheListener will be invoked in this
-      // VM. Add the event to the currentDelta.
-      DeltaSessionManager mgr = (DeltaSessionManager) this.manager;
-      if (this.enableGatewayDeltaReplication && mgr.isPeerToPeer()) {
-        // If commit is not enabled, add the event to the current batch; else,
-        // the current batch will be initialized to the events in the queue will
-        // be added at commit time.
-        if (!isCommitEnabled()) {
-          List<DeltaSessionAttributeEvent> events = new ArrayList<DeltaSessionAttributeEvent>();
-          events.add(event);
-          this.currentGatewayDeltaEvent = new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, events);
-        }
-      }
-    }
-    this.eventQueue.add(event);
-  }
-
-  @SuppressWarnings("unchecked")
-  private void putInRegion(Region region, boolean applyRemotely, Object callbackArgument) {
-    this.hasDelta = true;
-    this.applyRemotely = applyRemotely;
-    region.put(this.id, this, callbackArgument);
-    this.eventQueue.clear();
-  }
-
-  public void commit() {
-    if (!isValidInternal()) throw new IllegalStateException("commit: Session " + getId() +
-        " already invalidated");
-//          (STRING_MANAGER.getString("deltaSession.commit.ise", getId()));
-
-    synchronized (this.changeLock) {
-      // Jens - there used to be a check to only perform this if the queue is
-      // empty, but we want this to always run so that the lastAccessedTime
-      // will be updated even when no attributes have been changed.
-      DeltaSessionManager mgr = (DeltaSessionManager) this.manager;
-      if (this.enableGatewayDeltaReplication && mgr.isPeerToPeer()) {
-        setCurrentGatewayDeltaEvent(
-            new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, this.eventQueue));
-      }
-      this.hasDelta = true;
-      this.applyRemotely = true;
-      putInRegion(getOperatingRegion(), true, null);
-      this.eventQueue.clear();
-    }
-  }
-
-  public void abort() {
-    synchronized (this.changeLock) {
-      this.eventQueue.clear();
-    }
-  }
-
-  private void setExpired(boolean expired) {
-    this.expired = expired;
-  }
-
-  protected boolean getExpired() {
-    return this.expired;
-  }
-
-  public String getContextName() {
-    return contextName;
-  }
-
-  public boolean hasDelta() {
-    return this.hasDelta;
-  }
-
-  public void toDelta(DataOutput out) throws IOException {
-    // Write whether to apply the changes to another DS if necessary
-    out.writeBoolean(this.applyRemotely);
-
-    // Write the events
-    DataSerializer.writeArrayList((ArrayList) this.eventQueue, out);
-
-    out.writeLong(this.lastAccessedTime);
-    out.writeInt(this.maxInactiveInterval);
-  }
-
-  public void fromDelta(DataInput in) throws IOException, InvalidDeltaException {
-    // Read whether to apply the changes to another DS if necessary
-    this.applyRemotely = in.readBoolean();
-
-    // Read the events
-    List<DeltaSessionAttributeEvent> events = null;
-    try {
-      events = DataSerializer.readArrayList(in);
-    } catch (ClassNotFoundException e) {
-      throw new InvalidDeltaException(e);
-    }
-
-    // This allows for backwards compatibility with 2.1 clients
-    if (((InputStream) in).available() > 0) {
-      this.lastAccessedTime = in.readLong();
-      this.maxInactiveInterval = in.readInt();
-    }
-
-    // Iterate and apply the events
-    for (DeltaSessionAttributeEvent event : events) {
-      event.apply(this);
-    }
-
-    // Add the events to the gateway delta region if necessary
-    if (this.enableGatewayDeltaReplication && this.applyRemotely) {
-      setCurrentGatewayDeltaEvent(new DeltaSessionAttributeEventBatch(this.sessionRegionName, this.id, events));
-    }
-
-    // Access it to set the last accessed time. End access it to set not new.
-    access();
-    endAccess();
-  }
-
-  @Override
-  public void toData(DataOutput out) throws IOException {
-    // Write the StandardSession state
-    DataSerializer.writeString(this.id, out);
-    out.writeLong(this.creationTime);
-    out.writeLong(this.lastAccessedTime);
-    out.writeLong(this.thisAccessedTime);
-    out.writeInt(this.maxInactiveInterval);
-    out.writeBoolean(this.isNew);
-    out.writeBoolean(this.isValid);
-    DataSerializer.writeObject(getSerializedAttributes(), out);
-    DataSerializer.writeByteArray(getSerializedPrincipal(), out);
-
-    // Write the DeltaSession state
-    out.writeBoolean(this.enableGatewayDeltaReplication);
-    DataSerializer.writeString(this.sessionRegionName, out);
-
-    DataSerializer.writeString(this.contextName, out);
-  }
-
-  @Override
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    // Read the StandardSession state
-    this.id = DataSerializer.readString(in);
-    this.creationTime = in.readLong();
-    this.lastAccessedTime = in.readLong();
-    this.thisAccessedTime = in.readLong();
-    this.maxInactiveInterval = in.readInt();
-    this.isNew = in.readBoolean();
-    this.isValid = in.readBoolean();
-    this.attributes = DataSerializer.readObject(in);
-    this.serializedPrincipal = DataSerializer.readByteArray(in);
-
-    // Read the DeltaSession state
-    this.enableGatewayDeltaReplication = in.readBoolean();
-    this.sessionRegionName = DataSerializer.readString(in);
-
-    // This allows for backwards compatibility with 2.1 clients
-    if (((InputStream) in).available() > 0) {
-      this.contextName = DataSerializer.readString(in);
-    }
-
-    // Initialize the transients if necessary
-    if (this.listeners == null) {
-      this.listeners = new ArrayList();
-    }
-
-    if (this.notes == null) {
-      this.notes = new Hashtable();
-    }
-  }
-
-  @Override
-  public int getSizeInBytes() {
-    int size = 0;
-    for (Enumeration<String> e = getAttributeNames(); e.hasMoreElements(); ) {
-      // Don't use this.getAttribute() because we don't want to deserialize
-      // the value.
-      Object value = super.getAttribute(e.nextElement());
-      if (value instanceof byte[]) {
-        size += ((byte[]) value).length;
-      }
-    }
-
-    return size;
-  }
-
-  @SuppressWarnings({"unchecked", "rawtypes"})
-  private Map<String, byte[]> getSerializedAttributes() {
-    // Iterate the values and serialize them if necessary before sending them to the server. This makes the application classes unnecessary on the server.
-    Map<String, byte[]> serializedAttributes = new ConcurrentHashMap<String, byte[]>();
-    for (Iterator i = this.attributes.entrySet().iterator(); i.hasNext(); ) {
-      Map.Entry<String, Object> entry = (Map.Entry<String, Object>) i.next();
-      Object value = entry.getValue();
-      byte[] serializedValue = value instanceof byte[] ? (byte[]) value : serialize(value);
-      serializedAttributes.put(entry.getKey(), serializedValue);
-    }
-    return serializedAttributes;
-  }
-
-  private byte[] serialize(Object obj) {
-    byte[] serializedValue = null;
-    try {
-      serializedValue = BlobHelper.serializeToBlob(obj);
-    } catch (IOException e) {
-      StringBuilder builder = new StringBuilder();
-      builder.append(this)
-          .append(": Object ")
-          .append(obj)
-          .append(" cannot be serialized due to the following exception");
-      ((DeltaSessionManager) getManager()).getLogger().warn(builder.toString(), e);
-    }
-    return serializedValue;
-  }
-
-  @Override
-  public String toString() {
-    return new StringBuilder().append("DeltaSession[")
-        .append("id=")
-        .append(getId())
-        .append("; context=")
-        .append(this.contextName)
-        .append("; sessionRegionName=")
-        .append(this.sessionRegionName)
-        .append("; operatingRegionName=")
-        .append(getOperatingRegion() == null ? "unset" : getOperatingRegion().getFullPath())
-        .append("]")
-        .toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionFacade.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionFacade.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionFacade.java
deleted file mode 100644
index 1ac4da2..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionFacade.java
+++ /dev/null
@@ -1,49 +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.catalina;
-
-import org.apache.catalina.session.StandardSessionFacade;
-
-import javax.servlet.http.HttpSession;
-
-public class DeltaSessionFacade extends StandardSessionFacade {
-
-  private DeltaSession session;
-
-  /**
-   * Construct a new session facade.
-   */
-  public DeltaSessionFacade(DeltaSession session) {
-    super((HttpSession) session);
-    // Store session locally since the super session is private and provides no accessor.
-    this.session = session;
-  }
-
-  // ----------- DeltaSession Methods
-
-  public void commit() {
-    this.session.commit();
-  }
-
-  public void abort() {
-    this.session.abort();
-  }
-
-  boolean isValid() {
-    return this.session.isValid();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionManager.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionManager.java
deleted file mode 100644
index 92d9ef6..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/DeltaSessionManager.java
+++ /dev/null
@@ -1,992 +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.catalina;
-
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.query.Query;
-import com.gemstone.gemfire.cache.query.QueryService;
-import com.gemstone.gemfire.cache.query.SelectResults;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionStatistics;
-import com.gemstone.gemfire.modules.util.ContextMapper;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-import com.gemstone.gemfire.modules.util.RegionHelper;
-import org.apache.catalina.Container;
-import org.apache.catalina.Context;
-import org.apache.catalina.Lifecycle;
-import org.apache.catalina.LifecycleListener;
-import org.apache.catalina.Loader;
-import org.apache.catalina.Session;
-import org.apache.catalina.Valve;
-import org.apache.catalina.session.ManagerBase;
-import org.apache.catalina.session.StandardSession;
-import org.apache.catalina.util.CustomObjectInputStream;
-import org.apache.catalina.util.LifecycleSupport;
-import org.apache.juli.logging.Log;
-import org.apache.juli.logging.LogFactory;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-
-abstract public class DeltaSessionManager extends ManagerBase implements Lifecycle, PropertyChangeListener, SessionManager {
-
-  /**
-   * The <code>LifecycleSupport</code> for this component.
-   */
-  protected LifecycleSupport lifecycle = new LifecycleSupport(this);
-
-  /**
-   * The number of rejected sessions.
-   */
-  private AtomicInteger rejectedSessions;
-
-  /**
-   * The maximum number of active Sessions allowed, or -1 for no limit.
-   */
-  protected int maxActiveSessions = -1;
-
-  /**
-   * Has this <code>Manager</code> been started?
-   */
-  protected AtomicBoolean started = new AtomicBoolean(false);
-
-  /**
-   * The name of this <code>Manager</code>
-   */
-  protected String name;
-
-  protected Valve jvmRouteBinderValve;
-
-  protected Valve commitSessionValve;
-
-  protected SessionCache sessionCache;
-
-  protected static final String DEFAULT_REGION_NAME = RegionHelper.NAME + "_sessions";
-
-  protected static final boolean DEFAULT_ENABLE_GATEWAY_DELTA_REPLICATION = false;
-
-  protected static final boolean DEFAULT_ENABLE_GATEWAY_REPLICATION = false;
-
-  protected static final boolean DEFAULT_ENABLE_DEBUG_LISTENER = false;
-
-  protected static final boolean DEFAULT_ENABLE_COMMIT_VALVE = true;
-
-  protected static final boolean DEFAULT_ENABLE_COMMIT_VALVE_FAILFAST = false;
-
-  protected static final boolean DEFAULT_PREFER_DESERIALIZED_FORM = true;
-
-  /*
-   * This *MUST* only be assigned during start/startInternal otherwise it will be associated
-   * with the incorrect context class loader.
-   */
-  protected Log LOGGER;
-
-  protected String regionName = DEFAULT_REGION_NAME;
-
-  protected String regionAttributesId; // the default is different for client-server and peer-to-peer
-
-  protected Boolean enableLocalCache; // the default is different for client-server and peer-to-peer
-
-  protected boolean enableCommitValve = DEFAULT_ENABLE_COMMIT_VALVE;
-
-  protected boolean enableCommitValveFailfast = DEFAULT_ENABLE_COMMIT_VALVE_FAILFAST;
-
-  protected boolean enableGatewayDeltaReplication = DEFAULT_ENABLE_GATEWAY_DELTA_REPLICATION;
-
-  protected boolean enableGatewayReplication = DEFAULT_ENABLE_GATEWAY_REPLICATION;
-
-  protected boolean enableDebugListener = DEFAULT_ENABLE_DEBUG_LISTENER;
-
-  protected boolean preferDeserializedForm = DEFAULT_PREFER_DESERIALIZED_FORM;
-
-  private Timer timer;
-
-  private final Set<String> sessionsToTouch;
-
-  private static final long TIMER_TASK_PERIOD = Long.getLong("gemfiremodules.sessionTimerTaskPeriod", 10000);
-
-  private static final long TIMER_TASK_DELAY = Long.getLong("gemfiremodules.sessionTimerTaskDelay", 10000);
-
-  public DeltaSessionManager() {
-    // Create the set to store sessions to be touched after get attribute requests
-    this.sessionsToTouch = Collections.newSetFromMap(new ConcurrentHashMap<String, Boolean>());
-  }
-
-  @Override
-  public String getRegionName() {
-    return this.regionName;
-  }
-
-  public void setRegionName(String regionName) {
-    this.regionName = regionName;
-  }
-
-  @Override
-  public String getRegionAttributesId() {
-    // This property will be null if it hasn't been set in the context.xml file.
-    // Since its default is dependent on the session cache, get the default from
-    // the session cache.
-    if (this.regionAttributesId == null) {
-      this.regionAttributesId = getSessionCache().getDefaultRegionAttributesId();
-    }
-    return this.regionAttributesId;
-  }
-
-  public void setRegionAttributesId(String regionType) {
-    this.regionAttributesId = regionType;
-  }
-
-  @Override
-  public boolean getEnableLocalCache() {
-    // This property will be null if it hasn't been set in the context.xml file.
-    // Since its default is dependent on the session cache, get the default from
-    // the session cache.
-    if (this.enableLocalCache == null) {
-      this.enableLocalCache = getSessionCache().getDefaultEnableLocalCache();
-    }
-    return this.enableLocalCache;
-  }
-
-  public void setEnableLocalCache(boolean enableLocalCache) {
-    this.enableLocalCache = enableLocalCache;
-  }
-
-  public int getMaxActiveSessions() {
-    return this.maxActiveSessions;
-  }
-
-  public void setMaxActiveSessions(int maxActiveSessions) {
-    int oldMaxActiveSessions = this.maxActiveSessions;
-    this.maxActiveSessions = maxActiveSessions;
-    support.firePropertyChange("maxActiveSessions", new Integer(oldMaxActiveSessions),
-        new Integer(this.maxActiveSessions));
-  }
-
-  @Override
-  public boolean getEnableGatewayDeltaReplication() {
-    //return this.enableGatewayDeltaReplication;
-    return false; // disabled
-  }
-
-  public void setEnableGatewayDeltaReplication(boolean enableGatewayDeltaReplication) {
-    this.enableGatewayDeltaReplication = enableGatewayDeltaReplication;
-  }
-
-  @Override
-  public boolean getEnableGatewayReplication() {
-    return this.enableGatewayReplication;
-  }
-
-  public void setEnableGatewayReplication(boolean enableGatewayReplication) {
-    this.enableGatewayReplication = enableGatewayReplication;
-  }
-
-  @Override
-  public boolean getEnableDebugListener() {
-    return this.enableDebugListener;
-  }
-
-  public void setEnableDebugListener(boolean enableDebugListener) {
-    this.enableDebugListener = enableDebugListener;
-  }
-
-  @Override
-  public boolean isCommitValveEnabled() {
-    return this.enableCommitValve;
-  }
-
-  public void setEnableCommitValve(boolean enable) {
-    this.enableCommitValve = enable;
-  }
-
-  @Override
-  public boolean isCommitValveFailfastEnabled() {
-    return this.enableCommitValveFailfast;
-  }
-
-  public void setEnableCommitValveFailfast(boolean enable) {
-    this.enableCommitValveFailfast = enable;
-  }
-
-  @Override
-  public boolean isBackingCacheAvailable() {
-    return sessionCache.isBackingCacheAvailable();
-  }
-
-  public void setPreferDeserializedForm(boolean enable) {
-    this.preferDeserializedForm = enable;
-  }
-
-  @Override
-  public boolean getPreferDeserializedForm() {
-    return this.preferDeserializedForm;
-  }
-
-  @Override
-  public String getStatisticsName() {
-    return getContainer().getName().replace("/", "");
-  }
-
-  @Override
-  public Log getLogger() {
-    if (LOGGER == null) {
-      LOGGER = LogFactory.getLog(DeltaSessionManager.class);
-    }
-    return LOGGER;
-  }
-
-  public SessionCache getSessionCache() {
-    return this.sessionCache;
-  }
-
-  public DeltaSessionStatistics getStatistics() {
-    return getSessionCache().getStatistics();
-  }
-
-  public boolean isPeerToPeer() {
-    return getSessionCache().isPeerToPeer();
-  }
-
-  public boolean isClientServer() {
-    return getSessionCache().isClientServer();
-  }
-
-  /**
-   * This method was taken from StandardManager to set the default maxInactiveInterval based on the container (to 30
-   * minutes).
-   * <p>
-   * Set the Container with which this Manager has been associated. If it is a Context (the usual case), listen for
-   * changes to the session timeout property.
-   *
-   * @param container The associated Container
-   */
-  @Override
-  public void setContainer(Container container) {
-    // De-register from the old Container (if any)
-    if ((this.container != null) && (this.container instanceof Context)) {
-      ((Context) this.container).removePropertyChangeListener(this);
-    }
-
-    // Default processing provided by our superclass
-    super.setContainer(container);
-
-    // Register with the new Container (if any)
-    if ((this.container != null) && (this.container instanceof Context)) {
-      // Overwrite the max inactive interval with the context's session timeout.
-      setMaxInactiveInterval(((Context) this.container).getSessionTimeout() * 60);
-      ((Context) this.container).addPropertyChangeListener(this);
-    }
-  }
-
-  @Override
-  public Session findSession(String id) throws IOException {
-    if (id == null) {
-      return null;
-    }
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Finding session " + id + " in " + getSessionCache().getOperatingRegionName());
-    }
-    DeltaSession session = (DeltaSession) getSessionCache().getSession(id);
-    /*
-     * Check that the context name for this session is the same as this manager's.
-     * This comes into play when multiple versions of a webapp are deployed and
-     * active at the same time; the context name will contain an embedded
-     * version number; something like /test###2.
-     */
-    if (session != null &&
-        !session.getContextName().isEmpty() &&
-        !getContainer().getName().equals(session.getContextName())) {
-      getLogger().info(this + ": Session " + id +
-          " rejected as container name and context do not match: " +
-          getContainer().getName() + " != " + session.getContextName());
-      session = null;
-    }
-
-    if (session == null) {
-      if (getLogger().isDebugEnabled()) {
-        getLogger().debug(this + ": Did not find session " + id + " in " + getSessionCache().getOperatingRegionName());
-      }
-    } else {
-      if (getLogger().isDebugEnabled()) {
-        getLogger().debug(
-            this + ": Found session " + id + " in " + getSessionCache().getOperatingRegionName() + ": " + session);
-      }
-      // The session was previously stored. Set new to false.
-      session.setNew(false);
-
-      // Check the manager.
-      // If the manager is null, the session was replicated and this is a
-      // failover situation. Reset the manager and activate the session.
-      if (session.getManager() == null) {
-        DeltaSession ds = (DeltaSession) session;
-        ds.setOwner(this);
-        ds.activate();
-      }
-    }
-    return session;
-  }
-
-  protected void initializeSessionCache() {
-    // Retrieve the cache
-    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.");
-    }
-
-    // Create the appropriate session cache
-    this.sessionCache = cache.isClient() ? new ClientServerSessionCache(this, cache) : new PeerToPeerSessionCache(this,
-        cache);
-
-    // Initialize the session cache
-    this.sessionCache.initialize();
-  }
-
-  @Override
-  protected StandardSession getNewSession() {
-    return new DeltaSession(this);
-  }
-
-  @Override
-  public void remove(Session session) {
-    remove(session, false);
-  }
-
-  public void remove(Session session, boolean update) {
-    //super.remove(session);
-    // Remove the session from the region if necessary.
-    // It will have already been removed if it expired implicitly.
-    DeltaSession ds = (DeltaSession) session;
-    if (ds.getExpired()) {
-      if (getLogger().isDebugEnabled()) {
-        getLogger().debug(
-            this + ": Expired session " + session.getId() + " from " + getSessionCache().getOperatingRegionName());
-      }
-    } else {
-      if (getLogger().isDebugEnabled()) {
-        getLogger().debug(
-            this + ": Destroying session " + session.getId() + " from " + getSessionCache().getOperatingRegionName());
-      }
-      getSessionCache().destroySession(session.getId());
-      if (getLogger().isDebugEnabled()) {
-        getLogger().debug(
-            this + ": Destroyed session " + session.getId() + " from " + getSessionCache().getOperatingRegionName());
-      }
-    }
-  }
-
-  @Override
-  public void add(Session session) {
-    //super.add(session);
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(
-          this + ": Storing session " + session.getId() + " into " + getSessionCache().getOperatingRegionName());
-    }
-    getSessionCache().putSession(session);
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(
-          this + ": Stored session " + session.getId() + " into " + getSessionCache().getOperatingRegionName());
-    }
-    getSessionCache().getStatistics().incSessionsCreated();
-  }
-
-  @Override
-  public int getRejectedSessions() {
-    return this.rejectedSessions.get();
-  }
-
-  public void setRejectedSessions(int rejectedSessions) {
-    this.rejectedSessions.set(rejectedSessions);
-  }
-
-  private void incrementRejectedSessions() {
-    this.rejectedSessions.incrementAndGet();
-  }
-
-  /**
-   * Returns the number of active sessions
-   *
-   * @return number of sessions active
-   */
-  @Override
-  public int getActiveSessions() {
-    return getSessionCache().size();
-  }
-
-  /**
-   * For debugging: return a list of all session ids currently active
-   */
-  @Override
-  public String listSessionIds() {
-    StringBuilder builder = new StringBuilder();
-    Iterator<String> sessionIds = getSessionCache().keySet().iterator();
-    while (sessionIds.hasNext()) {
-      builder.append(sessionIds.next());
-      if (sessionIds.hasNext()) {
-        builder.append(" ");
-      }
-    }
-    return builder.toString();
-  }
-
-  /*
-   * If local caching is enabled, add the session to the set of sessions to be
-   * touched. A timer task will be periodically invoked to get the session in
-   * the session region to update its last accessed time. This prevents the
-   * session from expiring in the case where the application is only getting
-   * attributes from the session and never putting attributes into the
-   * session. If local caching is disabled. the session's last accessed time
-   * would already have been updated properly in the sessions region.
-   *
-   * Note: Due to issues in GemFire expiry, sessions are always asynchronously
-   * touched using a function regardless whether or not local caching is
-   * enabled. This prevents premature expiration.
-   */
-  protected void addSessionToTouch(String sessionId) {
-    this.sessionsToTouch.add(sessionId);
-  }
-
-  protected Set<String> getSessionsToTouch() {
-    return this.sessionsToTouch;
-  }
-
-  protected boolean removeTouchedSession(String sessionId) {
-    return this.sessionsToTouch.remove(sessionId);
-  }
-
-  protected void scheduleTimerTasks() {
-    // Create the timer
-    this.timer = new Timer("Timer for " + toString(), true);
-
-    // Schedule the task to handle sessions to be touched
-    scheduleTouchSessionsTask();
-
-    // Schedule the task to maintain the maxActive sessions
-    scheduleDetermineMaxActiveSessionsTask();
-  }
-
-  private void scheduleTouchSessionsTask() {
-    TimerTask task = new TimerTask() {
-      @Override
-      public void run() {
-        // Get the sessionIds to touch and clear the set inside synchronization
-        Set<String> sessionIds = null;
-        sessionIds = new HashSet<String>(getSessionsToTouch());
-        getSessionsToTouch().clear();
-
-        // Touch the sessions we currently have
-        if (sessionIds != null && (!sessionIds.isEmpty())) {
-          getSessionCache().touchSessions(sessionIds);
-          if (getLogger().isDebugEnabled()) {
-            getLogger().debug(DeltaSessionManager.this + ": Touched sessions: " + sessionIds);
-          }
-        }
-      }
-    };
-    this.timer.schedule(task, TIMER_TASK_DELAY, TIMER_TASK_PERIOD);
-  }
-
-  protected void cancelTimer() {
-    if (timer != null) {
-      this.timer.cancel();
-    }
-  }
-
-  private void scheduleDetermineMaxActiveSessionsTask() {
-    TimerTask task = new TimerTask() {
-      @Override
-      public void run() {
-        int currentActiveSessions = getSessionCache().size();
-        if (currentActiveSessions > getMaxActive()) {
-          setMaxActive(currentActiveSessions);
-          if (getLogger().isDebugEnabled()) {
-            getLogger().debug(DeltaSessionManager.this + ": Set max active sessions: " + currentActiveSessions);
-          }
-        }
-      }
-    };
-    this.timer.schedule(task, TIMER_TASK_DELAY, TIMER_TASK_PERIOD);
-  }
-
-  @Override
-  public void load() throws ClassNotFoundException, IOException {
-    doLoad();
-    ContextMapper.addContext(getContainer().getName(), this);
-  }
-
-  @Override
-  public void unload() throws IOException {
-    doUnload();
-    ContextMapper.removeContext(getContainer().getName());
-  }
-
-  protected void registerJvmRouteBinderValve() {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Registering JVM route binder valve");
-    }
-    jvmRouteBinderValve = new JvmRouteBinderValve();
-    getContainer().getPipeline().addValve(jvmRouteBinderValve);
-  }
-
-  protected void unregisterJvmRouteBinderValve() {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Unregistering JVM route binder valve");
-    }
-    if (jvmRouteBinderValve != null) {
-      getContainer().getPipeline().removeValve(jvmRouteBinderValve);
-    }
-  }
-
-  protected void registerCommitSessionValve() {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Registering CommitSessionValve");
-    }
-    commitSessionValve = new CommitSessionValve();
-    getContainer().getPipeline().addValve(commitSessionValve);
-  }
-
-  protected void unregisterCommitSessionValve() {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Unregistering CommitSessionValve");
-    }
-    if (commitSessionValve != null) {
-      getContainer().getPipeline().removeValve(commitSessionValve);
-    }
-  }
-
-  // ------------------------------ Lifecycle Methods
-
-  /**
-   * Add a lifecycle event listener to this component.
-   *
-   * @param listener The listener to add
-   */
-  @Override
-  public void addLifecycleListener(LifecycleListener listener) {
-    this.lifecycle.addLifecycleListener(listener);
-  }
-
-  /**
-   * Get the lifecycle listeners associated with this lifecycle. If this Lifecycle has no listeners registered, a
-   * zero-length array is returned.
-   */
-  @Override
-  public LifecycleListener[] findLifecycleListeners() {
-    return this.lifecycle.findLifecycleListeners();
-  }
-
-  /**
-   * Remove a lifecycle event listener from this component.
-   *
-   * @param listener The listener to remove
-   */
-  @Override
-  public void removeLifecycleListener(LifecycleListener listener) {
-    this.lifecycle.removeLifecycleListener(listener);
-  }
-
-  /**
-   * Process property change events from our associated Context.
-   * <p>
-   * Part of this method implementation was taken from StandardManager. The sessionTimeout can be changed in the web.xml
-   * which is processed after the context.xml. The context (and the default session timeout) would already have been set
-   * in this Manager. This is the way to get the new session timeout value specified in the web.xml.
-   * <p>
-   * The precedence order for setting the session timeout value is:
-   * <p>
-   * <ol> <li>the max inactive interval is set based on the Manager defined in the context.xml <li>the max inactive
-   * interval is then overwritten by the value of the Context's session timeout when setContainer is called <li>the max
-   * inactive interval is then overwritten by the value of the session-timeout specified in the web.xml (if any) </ol>
-   *
-   * @param event The property change event that has occurred
-   */
-  @Override
-  public void propertyChange(PropertyChangeEvent event) {
-
-    // Validate the source of this event
-    if (!(event.getSource() instanceof Context)) {
-      return;
-    }
-    Context context = (Context) event.getSource();
-
-    // Process a relevant property change
-    if (event.getPropertyName().equals("sessionTimeout")) {
-      try {
-        int interval = ((Integer) event.getNewValue()).intValue();
-        if (interval < RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
-          getLogger().warn(
-              "The configured session timeout of " + interval + " minutes is invalid. Using the original value of " + event
-                  .getOldValue() + " minutes.");
-          interval = ((Integer) event.getOldValue()).intValue();
-          ;
-        }
-        // StandardContext.setSessionTimeout passes -1 if the configured timeout
-        // is 0; otherwise it passes the value set in web.xml. If the interval
-        // parameter equals the default, set the max inactive interval to the
-        // default (no expiration); otherwise set it in seconds.
-        setMaxInactiveInterval(
-            interval == RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL ? RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL : interval * 60);
-      } catch (NumberFormatException e) {
-        getLogger().error(sm.getString("standardManager.sessionTimeout", event.getNewValue().toString()));
-      }
-    }
-  }
-
-  /**
-   * Save any currently active sessions in the appropriate persistence mechanism, if any.  If persistence is not
-   * supported, this method returns without doing anything.
-   *
-   * @throws IOException if an input/output error occurs
-   */
-  protected void doUnload() throws IOException {
-    QueryService querySvc = sessionCache.getCache().getQueryService();
-    Context context;
-    if (getContainer() instanceof Context) {
-      context = (Context) getContainer();
-    } else {
-      getLogger().error("Unable to unload sessions - container is of type " +
-          getContainer().getClass().getName() + " instead of StandardContext");
-      return;
-    }
-    String regionName;
-    if (getRegionName().startsWith("/")) {
-      regionName = getRegionName();
-    } else {
-      regionName = "/" + getRegionName();
-    }
-    Query query = querySvc.newQuery("select s.id from " + regionName +
-        " as s where s.contextName = '" + context.getPath() + "'");
-    getLogger().debug("Query: " + query.getQueryString());
-
-    SelectResults results;
-    try {
-      results = (SelectResults) query.execute();
-    } catch (Exception ex) {
-      getLogger().error("Unable to perform query during doUnload", ex);
-      return;
-    }
-
-    if (results.isEmpty()) {
-      getLogger().debug("No sessions to unload for context " + context.getPath());
-      return; // nothing to do
-    }
-
-    // Open an output stream to the specified pathname, if any
-    File store = sessionStore(context.getPath());
-    if (store == null) {
-      return;
-    }
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug("Unloading sessions to " + store.getAbsolutePath());
-    }
-    FileOutputStream fos = null;
-    BufferedOutputStream bos = null;
-    ObjectOutputStream oos = null;
-    boolean error = false;
-    try {
-      fos = new FileOutputStream(store.getAbsolutePath());
-      bos = new BufferedOutputStream(fos);
-      oos = new ObjectOutputStream(bos);
-    } catch (IOException e) {
-      error = true;
-      getLogger().error("Exception unloading sessions", e);
-      throw e;
-    } finally {
-      if (error) {
-        if (oos != null) {
-          try {
-            oos.close();
-          } catch (IOException ioe) {
-            // Ignore
-          }
-        }
-        if (bos != null) {
-          try {
-            bos.close();
-          } catch (IOException ioe) {
-            // Ignore
-          }
-        }
-        if (fos != null) {
-          try {
-            fos.close();
-          } catch (IOException ioe) {
-            // Ignore
-          }
-        }
-      }
-    }
-
-    ArrayList<StandardSession> list = new ArrayList<StandardSession>();
-    Iterator<String> elements = results.iterator();
-    while (elements.hasNext()) {
-      String id = elements.next();
-      DeltaSession session = (DeltaSession) findSession(id);
-      if (session != null) {
-        list.add(session);
-      }
-    }
-
-    // Write the number of active sessions, followed by the details
-    if (getLogger().isDebugEnabled()) getLogger().debug("Unloading " + list.size() + " sessions");
-    try {
-      oos.writeObject(new Integer(list.size()));
-      for (StandardSession session : list) {
-        session.passivate();
-        session.writeObjectData(oos);
-      }
-    } catch (IOException e) {
-      getLogger().error("Exception unloading sessions", e);
-      try {
-        oos.close();
-      } catch (IOException f) {
-        // Ignore
-      }
-      throw e;
-    }
-
-    // Flush and close the output stream
-    try {
-      oos.flush();
-    } finally {
-      try {
-        oos.close();
-      } catch (IOException f) {
-        // Ignore
-      }
-    }
-
-    // Locally destroy the sessions we just wrote
-    if (getSessionCache().isClientServer()) {
-      for (StandardSession session : list) {
-        if (getLogger().isDebugEnabled()) {
-          getLogger().debug("Locally destroying session " + session.getId());
-        }
-        getSessionCache().getOperatingRegion().localDestroy(session.getId());
-      }
-    }
-
-//    // Expire all the sessions we just wrote
-//    if (getLogger().isDebugEnabled()) {
-//      getLogger().debug("Expiring " + list.size() + " persisted sessions");
-//    }
-//    Iterator<StandardSession> expires = list.iterator();
-//    while (expires.hasNext()) {
-//      StandardSession session = expires.next();
-//      try {
-//        session.expire(false);
-//      } catch (Throwable t) {
-////        ExceptionUtils.handleThrowable(t);
-//      } finally {
-//        session.recycle();
-//      }
-//    }
-
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug("Unloading complete");
-    }
-  }
-
-  /**
-   * Load any currently active sessions that were previously unloaded to the appropriate persistence mechanism, if any.
-   * If persistence is not supported, this method returns without doing anything.
-   *
-   * @throws ClassNotFoundException if a serialized class cannot be found during the reload
-   * @throws IOException            if an input/output error occurs
-   */
-  protected void doLoad() throws ClassNotFoundException, IOException {
-    Context context;
-    if (getContainer() instanceof Context) {
-      context = (Context) getContainer();
-    } else {
-      getLogger().error("Unable to unload sessions - container is of type " +
-          getContainer().getClass().getName() + " instead of StandardContext");
-      return;
-    }
-
-    // Open an input stream to the specified pathname, if any
-    File store = sessionStore(context.getPath());
-    if (store == null) {
-      getLogger().debug("No session store file found");
-      return;
-    }
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug("Loading sessions from " + store.getAbsolutePath());
-    }
-    FileInputStream fis = null;
-    BufferedInputStream bis = null;
-    ObjectInputStream ois = null;
-    Loader loader = null;
-    ClassLoader classLoader = null;
-    try {
-      fis = new FileInputStream(store.getAbsolutePath());
-      bis = new BufferedInputStream(fis);
-      if (container != null) {
-        loader = container.getLoader();
-      }
-      if (loader != null) {
-        classLoader = loader.getClassLoader();
-      }
-      if (classLoader != null) {
-        if (getLogger().isDebugEnabled()) {
-          getLogger().debug("Creating custom object input stream for class loader");
-        }
-        ois = new CustomObjectInputStream(bis, classLoader);
-      } else {
-        if (getLogger().isDebugEnabled()) {
-          getLogger().debug("Creating standard object input stream");
-        }
-        ois = new ObjectInputStream(bis);
-      }
-    } catch (FileNotFoundException e) {
-      if (getLogger().isDebugEnabled()) {
-        getLogger().debug("No persisted data file found");
-      }
-      return;
-    } catch (IOException e) {
-      getLogger().error("Exception loading sessions", e);
-      if (fis != null) {
-        try {
-          fis.close();
-        } catch (IOException f) {
-          // Ignore
-        }
-      }
-      if (bis != null) {
-        try {
-          bis.close();
-        } catch (IOException f) {
-          // Ignore
-        }
-      }
-      throw e;
-    }
-
-    // Load the previously unloaded active sessions
-    try {
-      Integer count = (Integer) ois.readObject();
-      int n = count.intValue();
-      if (getLogger().isDebugEnabled()) {
-        getLogger().debug("Loading " + n + " persisted sessions");
-      }
-      for (int i = 0; i < n; i++) {
-        StandardSession session = getNewSession();
-        session.readObjectData(ois);
-        session.setManager(this);
-
-        Region region = getSessionCache().getOperatingRegion();
-        DeltaSession existingSession = (DeltaSession) region.get(session.getId());
-        // Check whether the existing session is newer
-        if (existingSession != null && existingSession.getLastAccessedTime() > session.getLastAccessedTime()) {
-          if (getLogger().isDebugEnabled()) {
-            getLogger().debug("Loaded session " + session.getId() + " is older than cached copy");
-          }
-          continue;
-        }
-
-        // Check whether the new session has already expired
-        if (!session.isValid()) {
-          if (getLogger().isDebugEnabled()) {
-            getLogger().debug("Loaded session " + session.getId() + " is invalid");
-          }
-          continue;
-        }
-
-        getLogger().debug("Loading session " + session.getId());
-        session.activate();
-        add(session);
-      }
-    } catch (ClassNotFoundException e) {
-      getLogger().error(e);
-      try {
-        ois.close();
-      } catch (IOException f) {
-        // Ignore
-      }
-      throw e;
-    } catch (IOException e) {
-      getLogger().error(e);
-      try {
-        ois.close();
-      } catch (IOException f) {
-        // Ignore
-      }
-      throw e;
-    } finally {
-      // Close the input stream
-      try {
-        ois.close();
-      } catch (IOException f) {
-        // ignored
-      }
-
-      // Delete the persistent storage file
-      if (store.exists()) {
-        store.delete();
-      }
-    }
-  }
-
-  /**
-   * Return a File object representing the pathname to our persistence file, if any.
-   */
-  private File sessionStore(String ctxPath) {
-    String storeDir = System.getProperty("catalina.base");
-    if (storeDir == null || storeDir.isEmpty()) {
-      storeDir = System.getProperty("java.io.tmpdir");
-    } else {
-      storeDir += System.getProperty("file.separator") + "temp";
-    }
-    File file = new File(storeDir, ctxPath.replaceAll("/", "_") + ".sessions.ser");
-
-    return (file);
-  }
-
-  @Override
-  public String toString() {
-    return new StringBuilder().append(getClass().getSimpleName())
-        .append("[")
-        .append("container=")
-        .append(getContainer())
-        .append("; regionName=")
-        .append(this.regionName)
-        .append("; regionAttributesId=")
-        .append(this.regionAttributesId)
-        .append("]")
-        .toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/JvmRouteBinderValve.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/JvmRouteBinderValve.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/JvmRouteBinderValve.java
deleted file mode 100644
index 98481c7..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/JvmRouteBinderValve.java
+++ /dev/null
@@ -1,108 +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.catalina;
-
-import org.apache.catalina.Manager;
-import org.apache.catalina.Session;
-import org.apache.catalina.connector.Request;
-import org.apache.catalina.connector.Response;
-import org.apache.catalina.valves.ValveBase;
-
-import javax.servlet.ServletException;
-import java.io.IOException;
-
-public class JvmRouteBinderValve extends ValveBase {
-
-  protected static final String info = "com.gemstone.gemfire.modules.session.JvmRouteBinderValve/1.0";
-
-  @Override
-  public void invoke(Request request, Response response) throws IOException, ServletException {
-
-    // Get the Manager
-    Manager manager = request.getContext().getManager();
-
-    // If it is an AbstractManager, handle possible failover
-    if (manager instanceof DeltaSessionManager) {
-      DeltaSessionManager absMgr = (DeltaSessionManager) manager;
-      String localJvmRoute = absMgr.getJvmRoute();
-      if (localJvmRoute != null) {
-        handlePossibleFailover(request, absMgr, localJvmRoute);
-      }
-    }
-
-    // Invoke the next Valve
-    getNext().invoke(request, response);
-  }
-
-  private void handlePossibleFailover(Request request, DeltaSessionManager manager, String localJvmRoute) {
-    String sessionId = request.getRequestedSessionId();
-    if (sessionId != null) {
-      // Get request JVM route
-      String requestJvmRoute = null;
-      int index = sessionId.indexOf(".");
-      if (index > 0) {
-        requestJvmRoute = sessionId.substring(index + 1, sessionId.length());
-      }
-
-      // If the requested JVM route doesn't equal the session's JVM route, handle failover
-      if (requestJvmRoute != null && !requestJvmRoute.equals(localJvmRoute)) {
-        if (manager.getLogger().isDebugEnabled()) {
-          StringBuilder builder = new StringBuilder();
-          builder.append(this)
-              .append(": Handling failover of session ")
-              .append(sessionId)
-              .append(" from ")
-              .append(requestJvmRoute)
-              .append(" to ")
-              .append(localJvmRoute);
-          manager.getLogger().debug(builder.toString());
-        }
-        // Get the original session
-        Session session = null;
-        try {
-          session = manager.findSession(sessionId);
-        } catch (IOException e) {
-          StringBuilder builder = new StringBuilder();
-          builder.append(this)
-              .append(": Caught exception attempting to find session ")
-              .append(sessionId)
-              .append(" in ")
-              .append(manager);
-          manager.getLogger().warn(builder.toString(), e);
-        }
-
-        if (session == null) {
-          StringBuilder builder = new StringBuilder();
-          builder.append(this)
-              .append(": Did not find session ")
-              .append(sessionId)
-              .append(" to failover in ")
-              .append(manager);
-          manager.getLogger().warn(builder.toString());
-        } else {
-          // Change its session id. This removes the previous session and creates the new one.
-          String baseSessionId = sessionId.substring(0, index);
-          String newSessionId = baseSessionId + "." + localJvmRoute;
-          session.setId(newSessionId);
-
-          // Change the request's session id
-          request.changeSessionId(newSessionId);
-        }
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/LocalStrings.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/LocalStrings.properties b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/LocalStrings.properties
deleted file mode 100644
index 679cad3..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/LocalStrings.properties
+++ /dev/null
@@ -1,16 +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.
-
-deltaSession.commit.ise=commit: Session {0} already invalidated

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerCacheLifecycleListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerCacheLifecycleListener.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerCacheLifecycleListener.java
deleted file mode 100644
index a86486c..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerCacheLifecycleListener.java
+++ /dev/null
@@ -1,29 +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.catalina;
-
-import com.gemstone.gemfire.modules.session.bootstrap.PeerToPeerCache;
-
-/**
- * This is a thin wrapper around a peer-to-peer cache.
- */
-public class PeerToPeerCacheLifecycleListener extends AbstractCacheLifecycleListener {
-
-  public PeerToPeerCacheLifecycleListener() {
-    cache = PeerToPeerCache.getInstance();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerSessionCache.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerSessionCache.java
deleted file mode 100644
index 2c76ca5..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/PeerToPeerSessionCache.java
+++ /dev/null
@@ -1,215 +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.catalina;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionFactory;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.execute.Execution;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.cache.execute.ResultCollector;
-import com.gemstone.gemfire.modules.session.catalina.callback.LocalSessionCacheLoader;
-import com.gemstone.gemfire.modules.session.catalina.callback.LocalSessionCacheWriter;
-import com.gemstone.gemfire.modules.session.catalina.callback.SessionExpirationCacheListener;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-import com.gemstone.gemfire.modules.util.RegionHelper;
-import com.gemstone.gemfire.modules.util.SessionCustomExpiry;
-import com.gemstone.gemfire.modules.util.TouchPartitionedRegionEntriesFunction;
-import com.gemstone.gemfire.modules.util.TouchReplicatedRegionEntriesFunction;
-
-import javax.servlet.http.HttpSession;
-import java.util.Set;
-
-public class PeerToPeerSessionCache extends AbstractSessionCache {
-
-  private Cache cache;
-
-  protected static final String DEFAULT_REGION_ATTRIBUTES_ID = RegionShortcut.REPLICATE.toString();
-
-  protected static final boolean DEFAULT_ENABLE_LOCAL_CACHE = false;
-
-  public PeerToPeerSessionCache(SessionManager sessionManager, Cache cache) {
-    super(sessionManager);
-    this.cache = cache;
-  }
-
-  @Override
-  public void initialize() {
-    // Register Functions
-    registerFunctions();
-
-    // Create or retrieve the region
-    createOrRetrieveRegion();
-
-    // If local cache is enabled, create the local region fronting the session region
-    // and set it as the operating region; otherwise, use the session region directly
-    // as the operating region.
-    this.operatingRegion = getSessionManager().getEnableLocalCache() ? createOrRetrieveLocalRegion() : this.sessionRegion;
-
-    // Create or retrieve the statistics
-    createStatistics();
-  }
-
-  @Override
-  public String getDefaultRegionAttributesId() {
-    return DEFAULT_REGION_ATTRIBUTES_ID;
-  }
-
-  @Override
-  public boolean getDefaultEnableLocalCache() {
-    return DEFAULT_ENABLE_LOCAL_CACHE;
-  }
-
-  @Override
-  public void touchSessions(Set<String> sessionIds) {
-    // Get the region attributes id to determine the region type. This is
-    // problematic since the region attributes id doesn't really define the
-    // region type. This should look at the actual session region.
-    String regionAttributesID = getSessionManager().getRegionAttributesId().toLowerCase();
-
-    // Invoke the appropriate function depending on the type of region
-    ResultCollector collector = null;
-    if (regionAttributesID.startsWith("partition")) {
-      // Execute the partitioned touch function on the primary server(s)
-      Execution execution = FunctionService.onRegion(getSessionRegion()).withFilter(sessionIds);
-      collector = execution.execute(TouchPartitionedRegionEntriesFunction.ID, true, false, true);
-    } else {
-      // Execute the member touch function on all the server(s)
-      Execution execution = FunctionService.onMembers(getCache().getDistributedSystem())
-          .withArgs(new Object[]{this.sessionRegion.getFullPath(), sessionIds});
-      collector = execution.execute(TouchReplicatedRegionEntriesFunction.ID, true, false, false);
-    }
-
-    // Get the result
-    try {
-      collector.getResult();
-    } catch (Exception e) {
-      // If an exception occurs in the function, log it.
-      getSessionManager().getLogger().warn("Caught unexpected exception:", e);
-    }
-  }
-
-  @Override
-  public boolean isPeerToPeer() {
-    return true;
-  }
-
-  @Override
-  public boolean isClientServer() {
-    return false;
-  }
-
-  @Override
-  public Set<String> keySet() {
-    return getSessionRegion().keySet();
-  }
-
-  @Override
-  public int size() {
-    return getSessionRegion().size();
-  }
-
-  @Override
-  public GemFireCache getCache() {
-    return this.cache;
-  }
-
-  /**
-   * For peer-to-peer the backing cache *is* what's embedded in tomcat so it's always available
-   *
-   * @return boolean indicating whether a backing cache is available
-   */
-  @Override
-  public boolean isBackingCacheAvailable() {
-    return true;
-  }
-
-  private void registerFunctions() {
-    // Register the touch partitioned region entries function if it is not already registered
-    if (!FunctionService.isRegistered(TouchPartitionedRegionEntriesFunction.ID)) {
-      FunctionService.registerFunction(new TouchPartitionedRegionEntriesFunction());
-    }
-
-    // Register the touch replicated region entries function if it is not already registered
-    if (!FunctionService.isRegistered(TouchReplicatedRegionEntriesFunction.ID)) {
-      FunctionService.registerFunction(new TouchReplicatedRegionEntriesFunction());
-    }
-  }
-
-  @SuppressWarnings("unchecked")
-  protected void createOrRetrieveRegion() {
-    // Create the RegionConfiguration
-    RegionConfiguration configuration = createRegionConfiguration();
-    configuration.setSessionExpirationCacheListener(true);
-
-    // Attempt to retrieve the region
-    // If it already exists, validate it
-    // If it doesn't already exist, create it
-    Region region = this.cache.getRegion(getSessionManager().getRegionName());
-    if (region == null) {
-      // Create the region
-      region = RegionHelper.createRegion((Cache) getCache(), configuration);
-      if (getSessionManager().getLogger().isDebugEnabled()) {
-        getSessionManager().getLogger().debug("Created new session region: " + region);
-      }
-    } else {
-      // Validate the existing region
-      if (getSessionManager().getLogger().isDebugEnabled()) {
-        getSessionManager().getLogger().debug("Retrieved existing session region: " + region);
-      }
-      RegionHelper.validateRegion((Cache) getCache(), configuration, region);
-    }
-
-    // Set the session region
-    this.sessionRegion = region;
-  }
-
-  private Region<String, HttpSession> createOrRetrieveLocalRegion() {
-    // Attempt to retrieve the fronting region
-    String frontingRegionName = this.sessionRegion.getName() + "_local";
-    Region<String, HttpSession> frontingRegion = this.cache.getRegion(frontingRegionName);
-    if (frontingRegion == null) {
-      // Create the region factory
-      RegionFactory<String, HttpSession> factory = this.cache.createRegionFactory(RegionShortcut.LOCAL_HEAP_LRU);
-
-      // Add the cache loader and writer
-      factory.setCacheLoader(new LocalSessionCacheLoader(this.sessionRegion));
-      factory.setCacheWriter(new LocalSessionCacheWriter(this.sessionRegion));
-
-      // Set the expiration time, action and listener if necessary
-      int maxInactiveInterval = getSessionManager().getMaxInactiveInterval();
-      if (maxInactiveInterval != RegionConfiguration.DEFAULT_MAX_INACTIVE_INTERVAL) {
-        factory.setStatisticsEnabled(true);
-        factory.setCustomEntryIdleTimeout(new SessionCustomExpiry());
-        factory.addCacheListener(new SessionExpirationCacheListener());
-      }
-
-      // Create the region
-      frontingRegion = factory.create(frontingRegionName);
-      if (getSessionManager().getLogger().isDebugEnabled()) {
-        getSessionManager().getLogger().debug("Created new local session region: " + frontingRegion);
-      }
-    } else {
-      if (getSessionManager().getLogger().isDebugEnabled()) {
-        getSessionManager().getLogger().debug("Retrieved existing local session region: " + frontingRegion);
-      }
-    }
-    return frontingRegion;
-  }
-}  

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionCache.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionCache.java
deleted file mode 100644
index b1128e7..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionCache.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 com.gemstone.gemfire.modules.session.catalina;
-
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionStatistics;
-import org.apache.catalina.Session;
-
-import javax.servlet.http.HttpSession;
-import java.util.Set;
-
-public interface SessionCache {
-
-  public void initialize();
-
-  public String getDefaultRegionAttributesId();
-
-  public boolean getDefaultEnableLocalCache();
-
-  public String getSessionRegionName();
-
-  public String getOperatingRegionName();
-
-  public void putSession(Session session);
-
-  public HttpSession getSession(String sessionId);
-
-  public void destroySession(String sessionId);
-
-  public void touchSessions(Set<String> sessionIds);
-
-  public DeltaSessionStatistics getStatistics();
-
-  public GemFireCache getCache();
-
-  public Region<String, HttpSession> getSessionRegion();
-
-  public Region<String, HttpSession> getOperatingRegion();
-
-  public boolean isPeerToPeer();
-
-  public boolean isClientServer();
-
-  public Set<String> keySet();
-
-  public int size();
-
-  public boolean isBackingCacheAvailable();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionManager.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionManager.java
deleted file mode 100644
index e3d6c7e..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/SessionManager.java
+++ /dev/null
@@ -1,48 +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.catalina;
-
-import org.apache.juli.logging.Log;
-
-public interface SessionManager {
-
-  public String getRegionName();
-
-  public String getRegionAttributesId();
-
-  public int getMaxInactiveInterval();
-
-  public boolean getEnableGatewayReplication();
-
-  public boolean getEnableGatewayDeltaReplication();
-
-  public boolean getEnableDebugListener();
-
-  public boolean getEnableLocalCache();
-
-  public boolean isCommitValveEnabled();
-
-  public boolean isCommitValveFailfastEnabled();
-
-  public boolean isBackingCacheAvailable();
-
-  public boolean getPreferDeserializedForm();
-
-  public String getStatisticsName();
-
-  public Log getLogger();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat6DeltaSessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat6DeltaSessionManager.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat6DeltaSessionManager.java
deleted file mode 100644
index d5b5991..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat6DeltaSessionManager.java
+++ /dev/null
@@ -1,98 +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.catalina;
-
-import org.apache.catalina.LifecycleException;
-
-public class Tomcat6DeltaSessionManager extends DeltaSessionManager {
-
-  /**
-   * Prepare for the beginning of active use of the public methods of this component.  This method should be called
-   * after <code>configure()</code>, and before any of the public methods of the component are utilized.
-   *
-   * @throws LifecycleException if this component detects a fatal error that prevents this component from being used
-   */
-  @Override
-  public void start() throws LifecycleException {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Starting");
-    }
-    if (this.started.get()) {
-      return;
-    }
-    this.lifecycle.fireLifecycleEvent(START_EVENT, null);
-    try {
-      init();
-    } catch (Throwable t) {
-      getLogger().error(t.getMessage(), t);
-    }
-
-    // Register our various valves
-    registerJvmRouteBinderValve();
-
-    if (isCommitValveEnabled()) {
-      registerCommitSessionValve();
-    }
-
-    // Initialize the appropriate session cache interface
-    initializeSessionCache();
-
-    // Create the timer and schedule tasks
-    scheduleTimerTasks();
-
-    this.started.set(true);
-  }
-
-  /**
-   * Gracefully terminate the active use of the public methods of this component.  This method should be the last one
-   * called on a given instance of this component.
-   *
-   * @throws LifecycleException if this component detects a fatal error that needs to be reported
-   */
-  @Override
-  public void stop() throws LifecycleException {
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Stopping");
-    }
-    this.started.set(false);
-    this.lifecycle.fireLifecycleEvent(STOP_EVENT, null);
-
-    // StandardManager expires all Sessions here.
-    // All Sessions are not known by this Manager.
-
-    // Require a new random number generator if we are restarted
-    this.random = null;
-
-    // Remove from RMI registry
-    if (this.initialized) {
-      destroy();
-    }
-
-    // Clear any sessions to be touched
-    getSessionsToTouch().clear();
-
-    // Cancel the timer
-    cancelTimer();
-
-    // Unregister the JVM route valve
-    unregisterJvmRouteBinderValve();
-
-    if (isCommitValveEnabled()) {
-      unregisterCommitSessionValve();
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheLoader.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheLoader.java b/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheLoader.java
deleted file mode 100644
index a4afad4..0000000
--- a/extensions/gemfire-modules/src/main/java/com/gemstone/gemfire/modules/session/catalina/callback/LocalSessionCacheLoader.java
+++ /dev/null
@@ -1,45 +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.catalina.callback;
-
-import com.gemstone.gemfire.cache.CacheLoader;
-import com.gemstone.gemfire.cache.CacheLoaderException;
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.LoaderHelper;
-import com.gemstone.gemfire.cache.Region;
-
-import javax.servlet.http.HttpSession;
-import java.util.Properties;
-
-public class LocalSessionCacheLoader implements CacheLoader<String, HttpSession>, Declarable {
-
-  private final Region<String, HttpSession> backingRegion;
-
-  public LocalSessionCacheLoader(Region<String, HttpSession> backingRegion) {
-    this.backingRegion = backingRegion;
-  }
-
-  public HttpSession load(LoaderHelper<String, HttpSession> helper) throws CacheLoaderException {
-    return this.backingRegion.get(helper.getKey());
-  }
-
-  public void close() {
-  }
-
-  public void init(Properties p) {
-  }
-}


[50/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/COMPILING.txt
----------------------------------------------------------------------
diff --git a/COMPILING.txt b/COMPILING.txt
index d2556ca..f2d1098 100644
--- a/COMPILING.txt
+++ b/COMPILING.txt
@@ -15,7 +15,7 @@ or
 
 ./gradlew distZip
 
-the distribution archives will be located in gemfire-assembly/build/distributions/.
+the distribution archives will be located in geode-assembly/build/distributions/.
 
 To create an unzipped distribution run
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/RUNNING.txt
----------------------------------------------------------------------
diff --git a/RUNNING.txt b/RUNNING.txt
index 8286657..616b2f1 100755
--- a/RUNNING.txt
+++ b/RUNNING.txt
@@ -2,7 +2,7 @@ Create a distribution archive using
 
 ./gradlew distTar
 
-Unpack the archive found in gemfire-assembly/build/distributions and run the gfsh shell
+Unpack the archive found in geode-assembly/build/distributions and run the gfsh shell
 
 cd apache-geode-*
 bin/gfsh

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 8fa7e5d..19f72a0 100755
--- a/build.gradle
+++ b/build.gradle
@@ -68,7 +68,7 @@ task clean(type: Delete) {
 }
 
 // allow external projects to override include location
-if (name == 'gemfire') {
+if (name == 'geode') {
   ext.scriptDir = 'gradle'
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/docker/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/Dockerfile b/docker/Dockerfile
index e7d0ba0..e68d5d4 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -26,12 +26,12 @@ LABEL version=unstable
 RUN	git clone -b develop https://github.com/apache/incubator-geode.git \
 	&& cd incubator-geode \
 	&& ./gradlew build -Dskip.tests=true \
-	&& ls /incubator-geode | grep -v gemfire-assembly | xargs rm -rf \
+	&& ls /incubator-geode | grep -v geode-assembly | xargs rm -rf \
 	&& rm -rf /root/.gradle/ \
-	&& rm -rf /incubator-geode/gemfire-assembly/build/distributions/ \
+	&& rm -rf /incubator-geode/geode-assembly/build/distributions/ \
     && yum remove -y perl
 
-ENV GEODE_HOME /incubator-geode/gemfire-assembly/build/install/apache-geode
+ENV GEODE_HOME /incubator-geode/geode-assembly/build/install/apache-geode
 ENV PATH $PATH:$GEODE_HOME/bin
 
 # Default ports:

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/build.gradle b/extensions/gemfire-modules-assembly/build.gradle
deleted file mode 100644
index b20ddff..0000000
--- a/extensions/gemfire-modules-assembly/build.gradle
+++ /dev/null
@@ -1,247 +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.
- */
-
-import org.apache.tools.ant.filters.ReplaceTokens
-
-configurations {
-  slf4jDeps
-  servletApiDeps
-  moduleDistOutputs
-}
-
-dependencies {
-  slf4jDeps 'org.slf4j:slf4j-api:' + project.'slf4j-api.version'
-  slf4jDeps 'org.slf4j:slf4j-jdk14:' + project.'slf4j-api.version'
-
-  servletApiDeps 'javax.servlet:servlet-api:2.5'
-}
-
-jar.enabled = false
-extraArchive {
-  sources = false
-  javadoc = false
-  tests = false
-}
-
-disableMavenPublishing()
-
-def getJarArtifact(module) {
-  project(module).configurations.archives.artifacts.findAll {
-    it instanceof PublishArtifact && it.classifier == '' && it.type == 'jar'
-  }.collect { it.file }
-}
-
-def configureTcServerAssembly = {
-  archiveName = "Apache_Geode_Modules-${version}-tcServer.zip"
-
-  // All client-server files
-  into('gemfire-cs/lib') {
-    from getJarArtifact(':extensions/gemfire-modules')
-    from getJarArtifact(':extensions/gemfire-modules-tomcat7')
-    from configurations.slf4jDeps
-  }
-  into('gemfire-cs/bin') {
-    from('release/scripts') {
-      include '*'
-    }
-    from('release/tcserver/gemfire-cs') {
-      include 'modules.env'
-    }
-    filter(ReplaceTokens, tokens:['GEMFIRE_MODULES_VERSION': version])
-  }
-  into('gemfire-cs/conf') {
-    from('release/conf') {
-      exclude 'cache-peer.xml'
-    }
-    from('release/tcserver/gemfire-cs') {
-      include 'context-fragment.xml'
-      include 'server-fragment.xml'
-    }
-  }
-  into('gemfire-cs') {
-    from('release/tcserver/gemfire-cs') {
-      include 'configuration-prompts.properties'
-      include 'README.txt'
-      filter(ReplaceTokens, tokens:['VERSION': version])
-    }
-  }
-
-  // Tomncat 7 specifics
-  into('gemfire-cs-tomcat-7/conf') {
-    from('release/tcserver/gemfire-cs-tomcat-7') {
-      include 'context-fragment.xml'
-    }
-  }
-  into('gemfire-cs-tomcat-7/bin') {
-    from('release/tcserver/gemfire-cs-tomcat-7') {
-      include 'modules.env'
-    }
-  }
-  // All peer-to-peer files
-  into('gemfire-p2p/lib') {
-    from getJarArtifact(':extensions/gemfire-modules')
-    from getJarArtifact(':extensions/gemfire-modules-tomcat7')
-    from configurations.slf4jDeps
-    from('release/3rdparty_license') {
-      include "open_source_licenses*${version}.txt"
-    }
-  }
-  into('gemfire-p2p/bin') {
-    from('release/scripts') {
-      include 'gemfire.*'
-      include 'setenv.properties'
-    }
-    from('release/tcserver/gemfire-p2p') {
-      include 'modules.env'
-    }
-  }
-  into('gemfire-p2p/conf') {
-    from('release/conf') {
-      include 'cache-peer.xml'
-    }
-    from('release/tcserver/gemfire-p2p') {
-      include 'context-fragment.xml'
-      include 'server-fragment.xml'
-    }
-  }
-  into('gemfire-p2p') {
-    from('release/tcserver/gemfire-p2p') {
-      include 'configuration-prompts.properties'
-      include 'README.txt'
-      filter(ReplaceTokens, tokens:['VERSION': version])
-    }
-  }
-
-  // Tomncat 7 specifics
-  into('gemfire-p2p-tomcat-7/conf') {
-    from('release/tcserver/gemfire-p2p-tomcat-7') {
-      include 'context-fragment.xml'
-    }
-  }
-  into('gemfire-p2p-tomcat-7/bin') {
-    from('release/tcserver/gemfire-p2p-tomcat-7') {
-      include 'modules.env'
-    }
-  }
-}
-
-def configureTcServer30Assembly = {
-  archiveName = "Apache_Geode_Modules-${version}-tcServer30.zip"
-
-  into('gemfire-cs-tomcat-8/bin') {
-    from('release/tcserver/gemfire-cs-tomcat-8') {
-      include 'modules.env'
-    }
-  }
-  into('gemfire-cs-tomcat-8/conf') {
-    from('release/tcserver/gemfire-cs-tomcat-8') {
-      include 'context-fragment.xml'
-    }
-  }
-
-  into('gemfire-p2p-tomcat-8/bin') {
-    from('release/tcserver/gemfire-p2p-tomcat-8') {
-      include 'modules.env'
-    }
-  }
-  into('gemfire-p2p-tomcat-8/conf') {
-    from('release/tcserver/gemfire-p2p-tomcat-8') {
-      include 'context-fragment.xml'
-    }
-  }
-}
-
-task distTomcat(type: Zip, dependsOn: ':extensions/gemfire-modules:build') {
-  archiveName = "Apache_Geode_Modules-${version}-Tomcat.zip"
-
-  // All client-server files
-  into('lib') {
-    from getJarArtifact(':extensions/gemfire-modules')
-    from getJarArtifact(':extensions/gemfire-modules-tomcat7')
-    from configurations.slf4jDeps
-  }
-  into('bin') {
-    from('release/scripts') {
-      include '*'
-      exclude 'setenv.properties'
-    }
-  }
-  into('conf') {
-    from('release/conf') {
-      include '*'
-    }
-  }
-}
-
-task distHibernate(type: Zip, dependsOn: ':extensions/gemfire-modules-hibernate:build') {
-  archiveName = "Apache_Geode_Modules-${version}-Hibernate.zip"
-
-  into('lib') {
-    from getJarArtifact(':extensions/gemfire-modules')
-    from getJarArtifact(':extensions/gemfire-modules-hibernate')
-  }
-}
-
-task distAppServer(type: Zip, dependsOn: ':extensions/gemfire-modules-session:build') {
-  archiveName = "Apache_Geode_Modules-${version}-AppServer.zip"
-
-  into('lib') {
-    from getJarArtifact(':extensions/gemfire-modules')
-    from getJarArtifact(':extensions/gemfire-modules-session')
-    from configurations.slf4jDeps
-    from configurations.servletApiDeps
-  }
-
-  into('bin') {
-    from('release/session/bin/') {
-      include 'setenv.properties'
-      include 'modify_war'
-      include 'cacheserver.*'
-      include 'gemfire.*'
-
-      filter(ReplaceTokens, tokens:['GEMFIRE_MODULES_VERSION': version])
-      filter(ReplaceTokens, tokens:['SLF4J_VERSION': project.'slf4j-api.version'])
-      filter(ReplaceTokens, tokens:['SERVLET_API_VERSION': project.'javax.servlet-api.version'])
-      filter(ReplaceTokens, tokens:['GEMFIRE_VERSION': version])
-    }
-  }
-
-  into('conf') {
-    from('release/conf')
-  }
-}
-
-task distTcServer(type: Zip, dependsOn: [':extensions/gemfire-modules:build', ':extensions/gemfire-modules-tomcat7:build']) {
-  configure(configureTcServerAssembly)
-}
-
-task distTcServer30(type: Zip, dependsOn: [':extensions/gemfire-modules:build', ':extensions/gemfire-modules-tomcat7:build']) {
-  configure(configureTcServerAssembly)
-  configure(configureTcServer30Assembly)
-}
-
-dependencies {
-  moduleDistOutputs distTcServer.outputs.files
-  moduleDistOutputs distTcServer30.outputs.files
-  moduleDistOutputs distHibernate.outputs.files
-  moduleDistOutputs distAppServer.outputs.files
-  moduleDistOutputs distTomcat.outputs.files
-}
-
-task dist(type: Task, dependsOn: ['distTcServer', 'distTcServer30', 'distTomcat', 'distHibernate', 'distAppServer'])
-
-build.dependsOn dist

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/conf/cache-client.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/conf/cache-client.xml b/extensions/gemfire-modules-assembly/release/conf/cache-client.xml
deleted file mode 100755
index 3ae9ba7..0000000
--- a/extensions/gemfire-modules-assembly/release/conf/cache-client.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-	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.
--->
-<client-cache
-    xmlns="http://schema.pivotal.io/gemfire/cache"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache http://schema.pivotal.io/gemfire/cache/cache-9.0.xsd"
-    version="9.0">
-
-  <!-- The default pool connects to a cache server running on  localhost at
-       port 40404. To connect to a different server host and port, modify
-       the following pool server host and port. -->
-  <pool name="sessions" subscription-enabled="true">
-    <server host="localhost" port="40404"/>
-  </pool>
-
-  <!-- To configure the client to use a locator instead of a server, replace
-       the server pool above with the locator pool below and modify the locator
-       host and port as necessary. -->
-  <!--
-  <pool name="sessions" subscription-enabled="true">
-    <locator host="localhost" port="10334"/>
-  </pool>
-  -->
-  
-</client-cache>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/conf/cache-peer.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/conf/cache-peer.xml b/extensions/gemfire-modules-assembly/release/conf/cache-peer.xml
deleted file mode 100755
index 1f62cb1..0000000
--- a/extensions/gemfire-modules-assembly/release/conf/cache-peer.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-	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.
--->
-<cache
-    xmlns="http://schema.pivotal.io/gemfire/cache"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache http://schema.pivotal.io/gemfire/cache/cache-9.0.xsd"
-    version="9.0">
-
-  <!-- Uncomment the following disk-store element to modify the default disk store directory -->
-  <!--
-  <disk-store name="DEFAULT">
-    <disk-dirs>
-      <disk-dir>/path/to/persistent/data</disk-dir>
-    </disk-dirs>
-  </disk-store>
-  -->
-
-  <!-- This is the definition of the default session region -->
-  <!--
-  <region name="gemfire_modules_sessions">
-    <region-attributes scope="distributed-ack" enable-gateway="false" data-policy="replicate" statistics-enabled="true">
-      <entry-idle-time>
-        <expiration-attributes timeout="0" action="invalidate">
-          <custom-expiry>
-            <class-name>com.gemstone.gemfire.modules.util.SessionCustomExpiry</class-name>
-          </custom-expiry>
-        </expiration-attributes>
-      </entry-idle-time>
-    </region-attributes>
-  </region>
-  -->
-  
-</cache>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/conf/cache-server.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/conf/cache-server.xml b/extensions/gemfire-modules-assembly/release/conf/cache-server.xml
deleted file mode 100755
index b9d8c2c..0000000
--- a/extensions/gemfire-modules-assembly/release/conf/cache-server.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-	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.
--->
-<cache
-    xmlns="http://schema.pivotal.io/gemfire/cache"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache http://schema.pivotal.io/gemfire/cache/cache-9.0.xsd"
-    version="9.0">
-
-  <!-- Uncomment the following gateway-hub element to create a gateway hub -->
-  <!--
-  <gateway-hub id="NY" port="11110">
-    <gateway id="LN">
-      <gateway-endpoint id="LN-1" host="localhost" port="22220"/>
-      <gateway-queue disk-store-name="NY_GATEWAY"/>
-    </gateway>
-  </gateway-hub>
-  -->
-
-  <!-- Uncomment the following cache-server element to modify the listen port -->
-  <!--
-  <cache-server port="44444"/>
-  -->
-
-  <!-- Uncomment the following disk-store element to modify the default disk store directory -->
-  <!--
-  <disk-store name="DEFAULT">
-    <disk-dirs>
-      <disk-dir>/path/to/persistent/data</disk-dir>
-    </disk-dirs>
-  </disk-store>
-  -->
-  
-  <!-- Uncomment the following disk-store element to create the NY_GATEWAY disk store
-       (for the gateway-hub element defined above) -->
-  <!--
-  <disk-store name="NY_GATEWAY">
-    <disk-dirs>
-      <disk-dir>/path/to/persistent/data</disk-dir>
-    </disk-dirs>
-  </disk-store>
-  -->
-  
-  <!-- This is the definition of the default session region -->
-  <!--
-  <region name="gemfire_modules_sessions">
-    <region-attributes enable-gateway="false" data-policy="partition" statistics-enabled="true">
-      <entry-idle-time>
-        <expiration-attributes timeout="0" action="invalidate">
-          <custom-expiry>
-            <class-name>com.gemstone.gemfire.modules.util.SessionCustomExpiry</class-name>
-          </custom-expiry>
-        </expiration-attributes>
-      </entry-idle-time>
-      <partition-attributes redundant-copies="1" total-num-buckets="113"/>
-    </region-attributes>
-  </region>
-  -->
-
-</cache>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/scripts/cacheserver.bat
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/scripts/cacheserver.bat b/extensions/gemfire-modules-assembly/release/scripts/cacheserver.bat
deleted file mode 100755
index 8ae0776..0000000
--- a/extensions/gemfire-modules-assembly/release/scripts/cacheserver.bat
+++ /dev/null
@@ -1,133 +0,0 @@
-@echo off
-rem
-rem Licensed to the Apache Software Foundation (ASF) under one or more
-rem contributor license agreements.  See the NOTICE file distributed with
-rem this work for additional information regarding copyright ownership.
-rem The ASF licenses this file to You under the Apache License, Version 2.0
-rem (the "License"); you may not use this file except in compliance with
-rem the License.  You may obtain a copy of the License at
-rem
-rem      http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing, software
-rem distributed under the License is distributed on an "AS IS" BASIS,
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-rem See the License for the specific language governing permissions and
-rem limitations under the License.
-rem
-
-setlocal
-setlocal enableextensions
-setlocal enabledelayedexpansion
-set scriptdir=%~dp0
-set gf=%scriptdir:\bin\=%
-if exist "%gf%\lib\gemfire.jar" @goto gfok
-echo Could not determine GEMFIRE location
-rem verify other 2>nul
-goto done
-:gfok
-
-if exist "%gf%\bin\modules.env" (
-  FOR /F "tokens=*" %%i in ('type %gf%\bin\modules.env') do SET %%i
-)
-
-rem Check for the -d argument
-set /a FOUND_ARG=0
-set TC_INSTALL_DIR=
-FOR %%A IN (%*) DO (
-  if !FOUND_ARG! == 1 (
-    set /a FOUND_ARG-=1
-    set TC_INSTALL_DIR=%%~fA
-  )
-  if %%A == -d (
-    set /a FOUND_ARG+=1
-  )
-)
-
-rem Pull out the unused args for the java class
-set CLASS_ARGS=
-:loop
-IF "%1"=="" GOTO ENDLOOP
-  if "%1" == "-d" (
-    shift
-    shift
-  ) else ( 
-    set "CLASS_ARGS=!CLASS_ARGS! %1" 
-    shift
-  )
-GOTO loop
-
-:ENDLOOP
-
-IF NOT "%TC_INSTALL_DIR%" == "" goto SET_TOMCAT_DIR
-FOR /f %%f in ('forfiles /P %gf%\.. /m tomcat-%TOMCAT_MAJOR_VER%* /c "cmd /c echo @path"') do set TOMCAT_DIR=%%f
-REM Strip the surrounding quotes
-set TOMCAT_DIR=%TOMCAT_DIR:"=%
-goto TEST_TOMCAT_DIR
-
-:SET_TOMCAT_DIR
-set /p TOMCAT_VER=<"%gf%\conf\tomcat.version"
-set TOMCAT_DIR="!TC_INSTALL_DIR!\tomcat-!TOMCAT_VER!"
-
-:TEST_TOMCAT_DIR
-if not exist "!TOMCAT_DIR!\lib\catalina.jar" goto TOMCAT_NOT_FOUND
-goto FIND_MOD_JAR
-
-:FIND_MOD_JAR
-FOR %%f in (!gf!\lib\gemfire-modules-?.*.jar) do set MOD_JAR=%%f
-IF NOT "%MOD_JAR%" == "" goto FIND_LOG_API
-rem This is the default modules jar
-set MOD_JAR="!gf!\lib\gemfire-modules.jar"
-
-:FIND_LOG_API
-FOR %%f in (!gf!\lib\log4j-api*.jar) do set LOG_API_JAR=%%f
-IF NOT "%LOG_API_JAR%" == "" goto FIND_LOG_CORE
-echo ERROR: Log4J API jar not found.
-goto LIBS_NOT_FOUND
-
-:FIND_LOG_CORE
-FOR %%f in (!gf!\lib\log4j-core*.jar) do set LOG_CORE_JAR=%%f
-IF NOT "%LOG_CORE_JAR%" == "" goto MAIN_PROCESSING
-echo ERROR: Log4J Core jar not found.
-goto LIBS_NOT_FOUND
-
-
-:LIBS_NOT_FOUND
-echo ERROR: The required libraries could not be located. 
-echo Try using the -d ^<tc Server installation directory^> option or make sure it was installed correctly.
-echo Example: cacheserver.bat start -d "c:\Program Files\Pivotal\tcServer\pivotal-tc-server-standard"
-exit /b 1
-
-:TOMCAT_NOT_FOUND
-echo ERROR: The TOMCAT libraries could not be located. 
-echo Try using the -d ^<tc Server installation directory^> option or make sure it was installed correctly.
-echo Example: cacheserver.bat start -d "c:\Program Files\Pivotal\tcServer\pivotal-tc-server-standard"
-exit /b 1
-
-:MAIN_PROCESSING
-REM Initialize classpath
-
-REM Add GemFire classes
-set GEMFIRE_JARS=%MOD_JAR%;%LOG_API_JAR%;%LOG_CORE_JAR%;%gf%/lib/gemfire.jar;%gf%/lib/antlr.jar;%gf%/lib/mail.jar
-
-REM Add Tomcat classes
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%TOMCAT_DIR%/lib/servlet-api.jar;%TOMCAT_DIR%/lib/catalina.jar;%gf%/lib/gemfire-modules.jar;%TOMCAT_DIR%/bin/tomcat-juli.jar;%TOMCAT_DIR%/lib/tomcat-util.jar
-
-REM Add conf directory
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%/conf
-
-
-if defined CLASSPATH set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
-
-if not defined GF_JAVA (
-  REM %GF_JAVA% is not defined, assume it is on the PATH
-  set GF_JAVA=java
-)
-
-"%GF_JAVA%" %JAVA_ARGS% -classpath "%GEMFIRE_JARS%" com.gemstone.gemfire.internal.cache.CacheServerLauncher !CLASS_ARGS!
-:done
-set scriptdir=
-set gf=
-set GEMFIRE_JARS=
-
-endlocal

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/scripts/cacheserver.sh
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/scripts/cacheserver.sh b/extensions/gemfire-modules-assembly/release/scripts/cacheserver.sh
deleted file mode 100755
index 24946a6..0000000
--- a/extensions/gemfire-modules-assembly/release/scripts/cacheserver.sh
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-#
-
-# Set GEMFIRE to the product toplevel directory
-GEMFIRE=`dirname $0`
-OLDPWD=$PWD
-cd $GEMFIRE
-GEMFIRE=`dirname $PWD`
-cd $OLDPWD
-
-TOMCAT_VER=`cat "${GEMFIRE}/conf/tomcat.version"`
-
-if [ -f $GEMFIRE/bin/modules.env ]; then
-  # Pull in TOMCAT_MAJOR_VER
-  . $GEMFIRE/bin/modules.env
-fi
-
-# Pull out the installation directory arguments passed in
-ARGS=( "$@" )
-ARGS_LENGTH=${#ARGS[@]}
-CLASS_ARGS=()
-for (( i=0; i<$ARGS_LENGTH; i++ ));
-do
-	if [ "${ARGS[$i]}" == "-d" ]; then
-		i=$(($i+1))
-	else 
-		CLASS_ARGS="${CLASS_ARGS} ${ARGS[$i]}"
-	fi
-done
-# End pulling out arguments
-
-# See if the user specified the tomcat installation directory location
-while [ $# -gt 0 ]; do
-  case $1 in
-    -d )
-      TC_INSTALL_DIR="$2"
-      break
-      ;;
-  esac
-  shift
-done
-
-
-if [[ -n $TC_INSTALL_DIR && -d $TC_INSTALL_DIR ]]; then
-  TOMCAT_DIR="$TC_INSTALL_DIR/tomcat-${TOMCAT_VER}"
-else
-  TOMCAT_DIR=`ls -d "${GEMFIRE}"/../tomcat-${TOMCAT_MAJOR_VER}* 2> /dev/null`
-fi
-
-if [[ -z "$TOMCAT_DIR" || ! -f "$TOMCAT_DIR/lib/catalina.jar" ]]; then
-  echo "ERROR: Could not determine TOMCAT library location."
-  echo "       Use the -d <tc Server installation directory> option."
-  echo "       Example: ./cacheserver.sh start -d /opt/pivotal/tcserver/pivotal-tc-server-standard"
-  exit 1
-fi
-
-if [ "x$WINDIR" != "x" ]; then
-  echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
-  exit 1
-fi
-
-GEMFIRE_DEP_JAR=$GEMFIRE/lib/gemfire-core-dependencies.jar
-if [ ! -f "$GEMFIRE_DEP_JAR" ]; then
-  echo "ERROR: Could not determine GEMFIRE location."
-  exit 1
-fi
-
-MOD_JAR=`ls $GEMFIRE/lib/gemfire-modules-?.*.jar` 2>/dev/null
-if [ -z "$MOD_JAR" ]; then
-  MOD_JAR=$GEMFIRE/lib/gemfire-modules.jar
-fi
-
-# Add Tomcat classes
-GEMFIRE_JARS=$GEMFIRE_DEP_JAR:$MOD_JAR:$TOMCAT_DIR/lib/servlet-api.jar:$TOMCAT_DIR/lib/catalina.jar:$TOMCAT_DIR/lib/tomcat-util.jar:$TOMCAT_DIR/bin/tomcat-juli.jar
-
-# Add configuration
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/conf
-
-if [ "x$CLASSPATH" != "x" ]; then
-  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
-fi
-
-${GF_JAVA:-java} ${JAVA_ARGS} -classpath ${GEMFIRE_JARS} com.gemstone.gemfire.internal.cache.CacheServerLauncher ${CLASS_ARGS}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/scripts/gemfire.bat
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/scripts/gemfire.bat b/extensions/gemfire-modules-assembly/release/scripts/gemfire.bat
deleted file mode 100755
index 6102b88..0000000
--- a/extensions/gemfire-modules-assembly/release/scripts/gemfire.bat
+++ /dev/null
@@ -1,41 +0,0 @@
-@echo off
-rem
-rem Licensed to the Apache Software Foundation (ASF) under one or more
-rem contributor license agreements.  See the NOTICE file distributed with
-rem this work for additional information regarding copyright ownership.
-rem The ASF licenses this file to You under the Apache License, Version 2.0
-rem (the "License"); you may not use this file except in compliance with
-rem the License.  You may obtain a copy of the License at
-rem
-rem      http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing, software
-rem distributed under the License is distributed on an "AS IS" BASIS,
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-rem See the License for the specific language governing permissions and
-rem limitations under the License.
-rem
-
-@setlocal enableextensions
-@set scriptdir=%~dp0
-@set gf=%scriptdir:\bin\=%
-@if exist "%gf%\lib\gemfire.jar" @goto gfok
-@echo Could not determine GEMFIRE location
-@verify other 2>nul
-@goto done
-:gfok
-
-@set GEMFIRE_JARS=%gf%/lib/gemfire.jar;%gf%/lib/antlr.jar;%gf%/lib/mail.jar
-@if defined CLASSPATH set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
-
-@if not defined GF_JAVA (
-@REM %GF_JAVA% is not defined, assume it is on the PATH
-@set GF_JAVA=java
-)
-
-@"%GF_JAVA%" %JAVA_ARGS% -classpath "%GEMFIRE_JARS%" com.gemstone.gemfire.internal.SystemAdmin %*
-:done
-@set scriptdir=
-@set gf=
-@set GEMFIRE_JARS=
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/scripts/gemfire.sh
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/scripts/gemfire.sh b/extensions/gemfire-modules-assembly/release/scripts/gemfire.sh
deleted file mode 100755
index 7ca2c21..0000000
--- a/extensions/gemfire-modules-assembly/release/scripts/gemfire.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/bash
-# 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.
-#
-
-# Set GEMFIRE to the product toplevel directory
-GEMFIRE=`dirname $0`
-OLDPWD=$PWD
-cd $GEMFIRE
-GEMFIRE=`dirname $PWD`
-cd $OLDPWD
-
-if [ "x$WINDIR" != "x" ]; then
-  echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
-  exit 1
-fi
-
-GEMFIRE_DEP_JAR=$GEMFIRE/lib/gemfire-core-dependencies.jar
-if [ ! -f "$GEMFIRE_DEP_JAR" ]; then
-  echo "ERROR: Could not determine GEMFIRE location."
-  exit 1
-fi
-
-GEMFIRE_JARS=$GEMFIRE_DEP_JAR
-
-if [ "x$CLASSPATH" != "x" ]; then
-  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
-fi
-
-# Command line args that start with -J will be passed to the java vm in JARGS.
-# See java --help for a listing of valid vm args.
-# Example: -J-Xmx1g sets the max heap size to 1 gigabyte.
-
-JARGS=
-GEMFIRE_ARGS=
-for i in "$@"
-do
-  if [ "-J" == "${i:0:2}" ]
-  then
-    JARGS="${JARGS} \"${i#-J}\""
-  else
-    GEMFIRE_ARGS="${GEMFIRE_ARGS} \"${i}\""
-  fi
-done
-
-eval ${GF_JAVA:-java} ${JAVA_ARGS} ${JARGS} -classpath ${GEMFIRE_JARS} com.gemstone.gemfire.internal.SystemAdmin ${GEMFIRE_ARGS}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/scripts/setenv.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/scripts/setenv.properties b/extensions/gemfire-modules-assembly/release/scripts/setenv.properties
deleted file mode 100644
index fc8918b..0000000
--- a/extensions/gemfire-modules-assembly/release/scripts/setenv.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-java.opt.1=-Xms${initial.vm.heap.size.mb:512}M
-java.opt.2=-Xmx${maximum.vm.heap.size.mb:512}M
-java.opt.hotspot.1=-XX:+UseParNewGC
-java.opt.hotspot.2=-XX:+UseConcMarkSweepGC
-java.opt.hotspot.3=-XX:CMSInitiatingOccupancyFraction=${cms.initiating.heap.percentage:50}
-java.opt.j9.1=-Xgcpolicy:gencon
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/session/bin/cacheserver.bat
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/session/bin/cacheserver.bat b/extensions/gemfire-modules-assembly/release/session/bin/cacheserver.bat
deleted file mode 100755
index eb60d3d..0000000
--- a/extensions/gemfire-modules-assembly/release/session/bin/cacheserver.bat
+++ /dev/null
@@ -1,56 +0,0 @@
-@echo off
-rem
-rem Licensed to the Apache Software Foundation (ASF) under one or more
-rem contributor license agreements.  See the NOTICE file distributed with
-rem this work for additional information regarding copyright ownership.
-rem The ASF licenses this file to You under the Apache License, Version 2.0
-rem (the "License"); you may not use this file except in compliance with
-rem the License.  You may obtain a copy of the License at
-rem
-rem      http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing, software
-rem distributed under the License is distributed on an "AS IS" BASIS,
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-rem See the License for the specific language governing permissions and
-rem limitations under the License.
-rem
-
-setlocal enableextensions
-set scriptdir=%~dp0
-set gf=%scriptdir:\bin\=%
-
-set GEMFIRE_JARS=%gf%\lib\gemfire.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\antlr.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\spring-core-3.1.1.RELEASE.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\spring-shell-1.0.0.RC1.jar
-if exist "%GEMFIRE_JARS%" goto gfok
-echo Could not determine GEMFIRE location
-verify other 2>nul
-goto done
-:gfok
-
-REM Initialize classpath
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\gemfire-modules-@GEMFIRE_MODULES_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\gemfire-modules-session-@GEMFIRE_MODULES_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\gemfire-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\servlet-api-@SERVLET_API_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\slf4j-api-@SLF4J_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\slf4j-jdk14-@SLF4J_VERSION@.jar
-
-REM Add conf directory
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\conf
-
-if defined CLASSPATH set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
-
-if not defined GF_JAVA (
-REM %GF_JAVA% is not defined, assume it is on the PATH
-set GF_JAVA=java
-)
-
-"%GF_JAVA%" %JAVA_ARGS% -classpath "%GEMFIRE_JARS%" com.gemstone.gemfire.internal.cache.CacheServerLauncher %*
-:done
-set scriptdir=
-set gf=
-set GEMFIRE_JARS=
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/session/bin/cacheserver.sh
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/session/bin/cacheserver.sh b/extensions/gemfire-modules-assembly/release/session/bin/cacheserver.sh
deleted file mode 100755
index 1ac8e0d..0000000
--- a/extensions/gemfire-modules-assembly/release/session/bin/cacheserver.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/bash
-# 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.
-#
-
-# Set GEMFIRE to the product toplevel directory
-GEMFIRE=`dirname $0`
-OLDPWD=$PWD
-cd $GEMFIRE
-GEMFIRE=`dirname $PWD`
-cd $OLDPWD
-
-if [ "x$WINDIR" != "x" ]; then
-  echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
-  exit 1
-fi
-
-GEMFIRE_JARS=$GEMFIRE/lib/gemfire.jar
-
-if [ ! -f "${GEMFIRE_JARS}" ]; then
-  echo "ERROR: Could not determine GEMFIRE location."
-  exit 1
-fi
-
-LOG4J_API=$( ls $GEMFIRE/lib/log4j-api*jar )
-LOG4J_CORE=$( ls $GEMFIRE/lib/log4j-core*jar )
-
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/antlr.jar:$LOG4J_API:$LOG4J_CORE
-
-# Initialize classpath
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/gemfire-modules-@GEMFIRE_MODULES_VERSION@.jar \
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/gemfire-modules-session-@GEMFIRE_MODULES_VERSION@.jar \
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/servlet-api-@SERVLET_API_VERSION@.jar \
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/gemfire-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar \
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/slf4j-api-@SLF4J_VERSION@.jar \
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/slf4j-jdk14-@SLF4J_VERSION@.jar
-
-# Add configuration
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/conf
-
-if [ "x$CLASSPATH" != "x" ]; then
-  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
-fi
-
-${GF_JAVA:-java} ${JAVA_ARGS} -classpath ${GEMFIRE_JARS} com.gemstone.gemfire.internal.cache.CacheServerLauncher "$@"

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/session/bin/gemfire.bat
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/session/bin/gemfire.bat b/extensions/gemfire-modules-assembly/release/session/bin/gemfire.bat
deleted file mode 100755
index abf1138..0000000
--- a/extensions/gemfire-modules-assembly/release/session/bin/gemfire.bat
+++ /dev/null
@@ -1,53 +0,0 @@
-@echo off
-rem
-rem Licensed to the Apache Software Foundation (ASF) under one or more
-rem contributor license agreements.  See the NOTICE file distributed with
-rem this work for additional information regarding copyright ownership.
-rem The ASF licenses this file to You under the Apache License, Version 2.0
-rem (the "License"); you may not use this file except in compliance with
-rem the License.  You may obtain a copy of the License at
-rem
-rem      http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing, software
-rem distributed under the License is distributed on an "AS IS" BASIS,
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-rem See the License for the specific language governing permissions and
-rem limitations under the License.
-rem
-
-setlocal enableextensions
-set scriptdir=%~dp0
-set gf=%scriptdir:\bin\=%
-
-set GEMFIRE_JARS=%gf%\lib\gemfire.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\antlr.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\spring-core-3.1.1.RELEASE.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\spring-shell-1.0.0.RC1.jar
-if exist "%GEMFIRE_JARS%" goto gfok
-echo Could not determine GEMFIRE location
-verify other 2>nul
-goto done
-:gfok
-
-REM Initialize classpath
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\gemfire-modules-@GEMFIRE_MODULES_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\gemfire-modules-session-@GEMFIRE_MODULES_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\gemfire-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\servlet-api-@SERVLET_API_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\slf4j-api-@SLF4J_VERSION@.jar
-set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\slf4j-jdk14-@SLF4J_VERSION@.jar
-
-if defined CLASSPATH set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
-
-if not defined GF_JAVA (
-REM %GF_JAVA% is not defined, assume it is on the PATH
-set GF_JAVA=java
-)
-
-"%GF_JAVA%" %JAVA_ARGS% -classpath "%GEMFIRE_JARS%" com.gemstone.gemfire.internal.SystemAdmin %*
-:done
-set scriptdir=
-set gf=
-set GEMFIRE_JARS=
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/session/bin/gemfire.sh
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/session/bin/gemfire.sh b/extensions/gemfire-modules-assembly/release/session/bin/gemfire.sh
deleted file mode 100755
index 1d8abb4..0000000
--- a/extensions/gemfire-modules-assembly/release/session/bin/gemfire.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/bash
-# 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.
-#
-
-# Set GEMFIRE to the product toplevel directory
-GEMFIRE=`dirname $0`
-OLDPWD=$PWD
-cd $GEMFIRE
-GEMFIRE=`dirname $PWD`
-cd $OLDPWD
-
-if [ "x$WINDIR" != "x" ]; then
-  echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
-  exit 1
-fi
-
-GEMFIRE_JARS=$GEMFIRE/lib/gemfire.jar
-if [ ! -f "${GEMFIRE_JARS}" ]; then
-  echo "ERROR: Could not determine GEMFIRE location."
-  exit 1
-fi
-
-LOG4J_API=$( ls $GEMFIRE/lib/log4j-api*jar )
-LOG4J_CORE=$( ls $GEMFIRE/lib/log4j-core*jar )
-
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/antlr.jar:$LOG4J_API:$LOG4J_CORE
-
-# Initialize classpath
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/gemfire-modules-@GEMFIRE_MODULES_VERSION@.jar
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/gemfire-modules-session-@GEMFIRE_MODULES_VERSION@.jar
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/gemfire-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/servlet-api-@SERVLET_API_VERSION@.jar
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/slf4j-api-@SLF4J_VERSION@.jar
-GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/slf4j-jdk14-@SLF4J_VERSION@.jar
-
-if [ "x$CLASSPATH" != "x" ]; then
-  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
-fi
-
-# Command line args that start with -J will be passed to the java vm in JARGS.
-# See java --help for a listing of valid vm args.
-# Example: -J-Xmx1g sets the max heap size to 1 gigabyte.
-
-JARGS=
-GEMFIRE_ARGS=
-for i in "$@"
-do
-  if [ "-J" == "${i:0:2}" ]
-  then
-    JARGS="${JARGS} \"${i#-J}\""
-  else
-    GEMFIRE_ARGS="${GEMFIRE_ARGS} \"${i}\""
-  fi
-done
-
-eval ${GF_JAVA:-java} ${JAVA_ARGS} ${JARGS} -classpath ${GEMFIRE_JARS} com.gemstone.gemfire.internal.SystemAdmin ${GEMFIRE_ARGS}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/session/bin/modify_war
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/session/bin/modify_war b/extensions/gemfire-modules-assembly/release/session/bin/modify_war
deleted file mode 100755
index 617a33b..0000000
--- a/extensions/gemfire-modules-assembly/release/session/bin/modify_war
+++ /dev/null
@@ -1,392 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-#
-
-X=`dirname $0`
-EXE_DIR=`cd $X; pwd`
-LIB_DIR=`cd ${X}/../lib; pwd`
-
-SESSION_JAR="${LIB_DIR}/gemfire-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar"
-
-declare -a OTHER_JARS
-OTHER_JARS=(${LIB_DIR}/gemfire.jar \
-    ${LIB_DIR}/antlr.jar
-    ${LIB_DIR}/gemfire-modules-@GEMFIRE_MODULES_VERSION@.jar \
-    ${LIB_DIR}/gemfire-modules-session-@GEMFIRE_MODULES_VERSION@.jar \
-    ${LIB_DIR}/slf4j-api-@SLF4J_VERSION@.jar)
-
-# This is required for GemFire 8.1
-LOG4J_API=$(ls ${LIB_DIR}/log4j-api*jar)
-LOG4J_CORE=$(ls ${LIB_DIR}/log4j-core*jar)
-if [ -f ${LOG4J_API} -a -f ${LOG4J_CORE} ]; then
-    OTHER_JARS[${#OTHER_JARS[*]}]=$LOG4J_API
-    OTHER_JARS[${#OTHER_JARS[*]}]=$LOG4J_CORE
-fi
-
-TMP_DIR="/tmp/modify_war.$$"
-
-ARG_INPUT_FILE=""
-ARG_WAR_LIB_DIR="WEB-INF/lib"
-ARG_EAR_LIB_DIR="lib"
-ARG_OUTPUT_FILE=""
-ARG_TEST_RUN=0
-ARG_CACHE_TYPE="peer-to-peer"
-ARG_PROCESS_LIBS=1
-declare -a ARG_GEMFIRE_PARAMETERS=""
-declare -a ARG_WAR_LIBS="$SESSION_JAR"
-declare -a ARG_EAR_LIBS=""
-declare -a ARG_JVM_OPTS=""
-
-function usage() {
-    cat <<EOF
-USAGE: modify_war <args>
-WHERE <args>:
-
-    -e <jar>
-                    Assumes the input file is an .ear file and will add the
-                    given jar as a shared, application library. The file will
-                    be added in a /lib directory (by default) and any embedded
-                    .war files will have a corresponding Class-Path entry added
-                    to their MANIFEST.MF file. The option can be given multiple times.
-
-    -h
-                    Displays this help message.
-
-    -j <jar>
-                    Additional library to add to the input file. Can be given
-                    multiple times.
-
-    -J <jvm opt>
-                    JVM argument to pass to sub-commands. Typically this might
-                    be to define proxy values. For example -J"-Dhttp.proxyHost=my-proxy"
-
-    -l <lib>
-                    Library directory where new jars will be placed inside war.
-                    Defaults to WEB-INF/lib.
-
-    -m <lib>
-                    Library directory where new jars will be placed inside ear.
-                    Defaults to /lib.
-
-    -o <file>
-                    The output file.
-
-    -p <param=value>
-                    Specific parameter for inclusion into the session filter
-                    definition as a regular init-param. Can be given multiple times.
-
-    -r
-                    Test run which only outputs an updated web.xml file.
-
-    -t <cache-type>
-                    Type of cache. Must be one of 'peer-to-peer' or
-                    'client-server'. Default is peer-to-peer.
-
-    -v              
-                    Verbose output
- 
-    -w <war/ear file>
-                    The input file - either a WAR or EAR. The following actions
-                    will be performed depending on the type of file:
-                    WARs will have a <filter> element added to the web.xml and
-                    will have the appropriate jars copied to WEB-INF/lib.
-                    If the file is an EAR, then the appropriate jars will be
-                    copied to lib, within the ear and each embedded war files'
-                    manifest will have a Class-Path entry added (if one does
-                    not already exist).
-                    An appropriate slf4j binding jar must be included for ears
-                    or wars using -e or -j respectively. The following jars are
-                    provided:
-                        slf4j-jdk14
-                        slf4j-log4j12
-                        gemfire-modules-slf4j-weblogic
-
-    -x
-                    Do not create a self-contained war/ear file by copying all
-                    necessary jars into the file. When this option is used,
-                    additional jars will need to be made available to the
-                    container:
-                        gemfire.jar
-                        gemfire-modules.jar
-                        gemfire-modules-session.jar
-                        slf4j-api.jar
-                        slf4j-jdk14.jar (not for WebLogic)
-                        gemfire-modules-slf4j-weblogic.jar (WebLogic only)
-                    This option still modifes any web.xml files.
-                        
-EOF
-}
-
-
-# Two logging levels - 'I'nfo and 'D'ebug
-function log() {
-    local MSG=$1
-    local LVL=${2:-I}
-
-    if [ "$LVL" == "D" ]; then
-        if [ -n "$DEBUG" ]; then
-            echo "$(date '+%Y-%m-%d %H:%M:%S')  $LVL  $MSG" >&2
-        fi
-    else
-        echo "$(date '+%Y-%m-%d %H:%M:%S')  $LVL  $MSG" >&2
-    fi
-}
-
-
-function exiting() {
-    local MSG=$1
-    local CODE=${2:-0}
-
-    if [ -n "$MSG" ]; then
-        echo "ERROR: $MSG"
-    fi
-
-    rm -rf $TMP_DIR
-    exit $CODE
-}
-
-
-function add_war_jars() {
-    local WAR_LIB_DIR=$1/$ARG_WAR_LIB_DIR/
-    mkdir -p $WAR_LIB_DIR
-
-    log "Copying jar(s) into war's '$ARG_WAR_LIB_DIR' directory" D
-    for J in ${ARG_WAR_LIBS[*]}; do
-        log "    $J" D
-        cp $J $WAR_LIB_DIR || exiting "Unable to copy $J to temp location $WAR_LIB_DIR" 1
-    done
-}
-
-
-function process_manifest() {
-    local MANIFEST=$1
-    local TMP_MANIFEST
-
-    log "Processing manifest $MANIFEST" D
-
-    CP_LIBS=""
-    for J in ${OTHER_JARS[*]} ${ARG_EAR_LIBS[*]}; do
-        CP_LIBS="$CP_LIBS $ARG_EAR_LIB_DIR/$(basename $J)"
-    done
-
-    TMP_MANIFEST="$TMP_DIR/manifest.mf.$$"
-    cp $MANIFEST $TMP_MANIFEST
-
-    awk -v CP_LIBS="$CP_LIBS" '
-        BEGIN {
-            cp = 0
-            split(CP_LIBS, cp_array)
-        }
-        /^Class-Path/ {print $0 CP_LIBS; cp = 1; getline}
-        /^ *\r?$/ {
-            if (cp == 0) {
-                print "Class-Path:" CP_LIBS
-                cp = 1
-            }
-        }
-        {print $0}
-        END { if (cp == 0) print "Class-Path:" CP_LIBS }
-    ' $TMP_MANIFEST > $MANIFEST
-
-    rm $TMP_MANIFEST
-}
-
-
-function process_web_xml() {
-    local WORK_DIR=$1
-    local ARG_P=""
-    local JVM_OPTS=""
-
-    for i in ${ARG_GEMFIRE_PARAMETERS[*]}; do
-        ARG_P="$ARG_P -p $i"
-    done
-
-    for j in ${ARG_JVM_OPTS[*]}; do
-        JVM_OPTS="$JVM_OPTS $j"
-    done
-    
-    WEB_XML=$(find $WORK_DIR -name web.xml)
-    TMP_WEB_XML="${WORK_DIR}/web.xml.$$"
-    JAVA_CMD="java $JVM_OPTS -jar $SESSION_JAR $ARG_P -t $ARG_CACHE_TYPE -w $WEB_XML"
-    log "Executing java cmd: $JAVA_CMD" D
-
-    if [ $ARG_TEST_RUN -eq 0 ]; then
-        eval $JAVA_CMD > $TMP_WEB_XML || exiting "Error updating web.xml" 1
-        cp $TMP_WEB_XML $WEB_XML
-        rm -f $TMP_WEB_XML
-    else
-        eval $JAVA_CMD || exiting "Error updating web.xml" 1
-    fi
-}
-
-
-function process_input_file() {
-    local WORK_DIR=$1
-
-    if [[ "$ARG_INPUT_FILE" =~ \.war$ ]]; then
-        process_web_xml $WORK_DIR
-        add_war_jars $WORK_DIR
-        return
-    fi
- 
-    WAR_LIST=$( find $WORK_DIR -name '*.war' )
-    for WAR in $WAR_LIST; do
-        log "Processing embedded war file $WAR" D
-        TMP_WAR_DIR="${WAR}.$$"
-
-        log "Unzipping war to $TMP_WAR_DIR" D
-        unzip -q -o -d $TMP_WAR_DIR $WAR
-
-        process_web_xml $TMP_WAR_DIR
-        if [ $ARG_TEST_RUN -eq 0 ]; then
-            add_war_jars $TMP_WAR_DIR
-
-            MANIFEST=$( find $TMP_WAR_DIR -name MANIFEST.MF )
-
-            if [ $ARG_PROCESS_LIBS -eq 1 -a -n "$MANIFEST" ]; then
-                process_manifest $MANIFEST
-            fi
-
-            log "Creating new war $WAR" D
-            if [ -n "$MANIFEST" ]; then
-                jar cmf $MANIFEST $WAR -C $TMP_WAR_DIR .
-            else
-                jar cf $WAR -C $TMP_WAR_DIR .
-            fi
-        fi
-
-        rm -rf $TMP_WAR_DIR
-    done
-}
-
-trap exiting INT QUIT TERM
-
-mkdir $TMP_DIR
-
-CMD_ARGS="-j $SESSION_JAR"
-
-while getopts "e:hj:J:l:m:o:p:rt:vw:x" OPT; do
-    case $OPT in
-        e)
-            if [ ! -f $OPTARG ]; then
-                exiting "Cannot read file '$OPTARG' given with option -e" 1
-            fi
-            ARG_EAR_LIBS[${#ARG_EAR_LIBS[@]}]=$OPTARG
-            ;;
-        h)
-            usage
-            exiting "" 1
-            ;;
-        j)
-            if [ ! -f $OPTARG ]; then
-                exiting "Cannot read file '$OPTARG' given with option -j" 1
-            fi
-            ARG_WAR_LIBS[${#ARG_WAR_LIBS[@]}]=$OPTARG
-            ;;
-        J)
-            ARG_JVM_OPTS[${#ARG_JVM_OPTS[@]}]=$OPTARG
-            ;;
-        l)
-            ARG_WAR_LIB_DIR=$OPTARG
-            ;;
-        m)
-            ARG_EAR_LIB_DIR=$OPTARG
-            ;;
-        o)
-            ARG_OUTPUT_FILE=$OPTARG
-            ;;
-        p)
-            ARG_GEMFIRE_PARAMETERS[${#ARG_GEMFIRE_PARAMETERS[@]}]=$OPTARG
-            ;;
-        r)
-            ARG_TEST_RUN=1
-            ;;
-        t)
-            case $OPTARG in
-                peer-to-peer|client-server)
-                    ARG_CACHE_TYPE=$OPTARG
-                    ;;
-                *)
-                    exiting "Invalid cache type '$OPTARG' given with option -t. Options are 'peer-to-peer' or 'client-server'." 1
-                    ;;
-            esac
-            ;;
-        v)
-            DEBUG=1
-            ;;
-        w)
-            if [ ! -f $OPTARG ]; then
-                exiting "Cannot read file '$OPTARG' given with option -w" 1
-            fi
-            ARG_INPUT_FILE=$OPTARG
-            ;;
-        x)
-            ARG_PROCESS_LIBS=0
-            ;;
-        [?])
-            echo "Unknown option '$OPTARG'"
-            echo
-            usage
-            exit 1
-            ;;
-        :)
-            echo "Option '$OPTARG' requires an argument"
-            echo
-            usage
-            exit 1
-            ;;
-    esac
-done
-
-# Some validation
-if [ -z "$ARG_INPUT_FILE" ]; then
-    exiting "Please supply an input file with the -w option" 1
-fi
-
-if [ -z "$ARG_OUTPUT_FILE" ]; then
-    ARG_OUTPUT_FILE="sessions-$(basename $ARG_INPUT_FILE)"
-fi
-
-if [[ "$ARG_INPUT_FILE" =~ \.war$ && -n "${ARG_EAR_LIBS[*]}" ]]; then
-    log "Input file appears to be a war but -e also specified. EAR processing will be skipped." W
-fi
-
-if [[ "$ARG_INPUT_FILE" =~ \.war$ && $ARG_PROCESS_LIBS -eq 1 ]]; then
-    for J in ${OTHER_JARS[*]}; do
-        ARG_WAR_LIBS[${#ARG_WAR_LIBS[@]}]=$J
-    done
-fi
-
-unzip -q -o -d $TMP_DIR $ARG_INPUT_FILE
-process_input_file $TMP_DIR
-
-if [[ $ARG_TEST_RUN -eq 0 && $ARG_PROCESS_LIBS -eq 1 && "$ARG_INPUT_FILE" =~ \.ear$ ]]; then
-    log "Copying additional jars into ear's '$ARG_EAR_LIB_DIR' directory" D
-    mkdir -p $TMP_DIR/$ARG_EAR_LIB_DIR
-    for i in ${OTHER_JARS[*]} ${ARG_EAR_LIBS[*]}; do
-        log "    $i" D
-        cp $i $TMP_DIR/$ARG_EAR_LIB_DIR/ || exiting "Unable to copy $i to $TMP_DIR/$ARG_EAR_LIB_DIR" 1
-    done
-fi
-
-if [ $ARG_TEST_RUN -eq 0 ]; then
-    mkdir -p $TMP_DIR/META-INF
-    touch $TMP_DIR/META-INF/MANIFEST.MF
-    jar cmf $TMP_DIR/META-INF/MANIFEST.MF $ARG_OUTPUT_FILE -C $TMP_DIR .
-    log "Created file: $ARG_OUTPUT_FILE" I
-fi
-
-exiting

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/session/bin/setenv.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/session/bin/setenv.properties b/extensions/gemfire-modules-assembly/release/session/bin/setenv.properties
deleted file mode 100644
index fc8918b..0000000
--- a/extensions/gemfire-modules-assembly/release/session/bin/setenv.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-java.opt.1=-Xms${initial.vm.heap.size.mb:512}M
-java.opt.2=-Xmx${maximum.vm.heap.size.mb:512}M
-java.opt.hotspot.1=-XX:+UseParNewGC
-java.opt.hotspot.2=-XX:+UseConcMarkSweepGC
-java.opt.hotspot.3=-XX:CMSInitiatingOccupancyFraction=${cms.initiating.heap.percentage:50}
-java.opt.j9.1=-Xgcpolicy:gencon
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/context-fragment.xml b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/context-fragment.xml
deleted file mode 100644
index 72faee2..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/context-fragment.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Context>
-
-    <remove:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"/>
-
-    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager"
-      enableDebugListener="${enable.debug.listener:false}"
-      enableGatewayReplication="${enable.gateway.replication:false}"
-      enableLocalCache="${enable.local.cache:true}"
-      enableCommitValve="${enable.commit.valve:true}"
-      preferDeserializedForm="${prefer.deserialized.form:true}"
-      regionAttributesId="${region.attributes.id:PARTITION_REDUNDANT}"
-      regionName="${region.name:gemfire_modules_sessions}"/>
-
-</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/modules.env
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/modules.env b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/modules.env
deleted file mode 100644
index 1c14a6c..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/modules.env
+++ /dev/null
@@ -1 +0,0 @@
-TOMCAT_MAJOR_VER=7

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/context-fragment.xml b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/context-fragment.xml
deleted file mode 100644
index 72faee2..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/context-fragment.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Context>
-
-    <remove:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"/>
-
-    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager"
-      enableDebugListener="${enable.debug.listener:false}"
-      enableGatewayReplication="${enable.gateway.replication:false}"
-      enableLocalCache="${enable.local.cache:true}"
-      enableCommitValve="${enable.commit.valve:true}"
-      preferDeserializedForm="${prefer.deserialized.form:true}"
-      regionAttributesId="${region.attributes.id:PARTITION_REDUNDANT}"
-      regionName="${region.name:gemfire_modules_sessions}"/>
-
-</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/modules.env
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/modules.env b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/modules.env
deleted file mode 100644
index d220675..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/modules.env
+++ /dev/null
@@ -1 +0,0 @@
-TOMCAT_MAJOR_VER=8

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/configuration-prompts.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/configuration-prompts.properties b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/configuration-prompts.properties
deleted file mode 100644
index 0ebae97..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/configuration-prompts.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-cache.configuration.file=Please enter the name of the GemFire cache configuration file. Default '${default}':
-critical.heap.percentage=Please enter the percentage of heap at which updates to the cache are refused. 0.0 means disabled. Default '${default}':
-enable.debug.listener=Please specify whether to enable a GemFire listener that logs session create, update, destroy and expiration events. Default '${default}':
-enable.gateway.replication=Please specify whether session modifications should be replicated across the WAN. Default '${default}':
-enable.local.cache=Please specify whether to maintain a local GemFire cache. Default '${default}':
-enable.commit.valve=Please specify whether to commit sessions once per request. Default '${default}':
-prefer.deserialized.form=Please specify whether to prefer keeping attributes in deserialized form. Default '${default}':
-eviction.heap.percentage=Please enter the percentage of heap at which sessions will be evicted from the local cache. Default '${default}':
-log.file=Please enter the name of the file used to log GemFire messages. Default '${default}':
-region.attributes.id=Please enter the id of the attributes of the GemFire region used to cache sessions. Default '${default}':
-region.name=Please enter the name of the GemFire region used to cache sessions. Default '${default}':
-statistic.archive.file=Please enter the name of the file used to store GemFire statistics. Default '${default}':
-statistic.sampling.enabled=Please specify whether GemFire statistic sampling should be enabled. Default '${default}':
-initial.vm.heap.size.mb=Please specify the initial VM heap size in MB (-Xms). Default '${default}':
-maximum.vm.heap.size.mb=Please specify the maximum VM heap size in MB (-Xmx). Default '${default}':
-cms.initiating.heap.percentage=Please specify the percentage of VM heap utilization before a concurrent collection is initiated (--XX:CMSInitiatingOccupancyFraction [Hotspot-only]). Default '${default}':
-tomcat.version=Please enter the major version of Tomcat you will be using (6, 7 or 8). Default '${default}'

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/context-fragment.xml b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/context-fragment.xml
deleted file mode 100644
index fac3044..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/context-fragment.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Context>
-
-    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"
-      enableDebugListener="${enable.debug.listener:false}"
-      enableGatewayReplication="${enable.gateway.replication:false}"
-      enableLocalCache="${enable.local.cache:true}"
-      enableCommitValve="${enable.commit.valve:true}"
-      preferDeserializedForm="${prefer.deserialized.form:true}"
-      regionAttributesId="${region.attributes.id:PARTITION_REDUNDANT}"
-      regionName="${region.name:gemfire_modules_sessions}"/>
-
-</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/modules.env
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/modules.env b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/modules.env
deleted file mode 100644
index 9c4c00a..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/modules.env
+++ /dev/null
@@ -1 +0,0 @@
-TOMCAT_MAJOR_VER=6

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/server-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/server-fragment.xml b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/server-fragment.xml
deleted file mode 100644
index c4adc66..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-cs/server-fragment.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<Server>
-
-    <add:Listener className="com.gemstone.gemfire.modules.session.catalina.ClientServerCacheLifecycleListener"
-      cache-xml-file="${cache.configuration.file:cache-client.xml}"
-      criticalHeapPercentage="${critical.heap.percentage:0.0}"
-      evictionHeapPercentage="${eviction.heap.percentage:80.0}"
-      log-file="${log.file:gemfire_modules.log}"
-      statistic-archive-file="${statistic.archive.file:gemfire_modules.gfs}"
-      statistic-sampling-enabled="${statistic.sampling.enabled:false}"/>
-
-</Server>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/context-fragment.xml b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/context-fragment.xml
deleted file mode 100644
index 155aa2a..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/context-fragment.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Context>
-
-    <remove:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"/>
-
-    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager"
-      enableDebugListener="${enable.debug.listener:false}"
-      enableGatewayReplication="${enable.gateway.replication:false}"
-      enableLocalCache="${enable.local.cache:false}"
-      enableCommitValve="${enable.commit.valve:true}"
-      preferDeserializedForm="${prefer.deserialized.form:true}"
-      regionAttributesId="${region.attributes.id:REPLICATE}"
-      regionName="${region.name:gemfire_modules_sessions}"/>
-
-</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/modules.env
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/modules.env b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/modules.env
deleted file mode 100644
index 1c14a6c..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/modules.env
+++ /dev/null
@@ -1 +0,0 @@
-TOMCAT_MAJOR_VER=7

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/context-fragment.xml b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/context-fragment.xml
deleted file mode 100644
index 155aa2a..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/context-fragment.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Context>
-
-    <remove:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"/>
-
-    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager"
-      enableDebugListener="${enable.debug.listener:false}"
-      enableGatewayReplication="${enable.gateway.replication:false}"
-      enableLocalCache="${enable.local.cache:false}"
-      enableCommitValve="${enable.commit.valve:true}"
-      preferDeserializedForm="${prefer.deserialized.form:true}"
-      regionAttributesId="${region.attributes.id:REPLICATE}"
-      regionName="${region.name:gemfire_modules_sessions}"/>
-
-</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/modules.env
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/modules.env b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/modules.env
deleted file mode 100644
index d220675..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/modules.env
+++ /dev/null
@@ -1 +0,0 @@
-TOMCAT_MAJOR_VER=8

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/configuration-prompts.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/configuration-prompts.properties b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/configuration-prompts.properties
deleted file mode 100644
index fdead44..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/configuration-prompts.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-cache.configuration.file=Please enter the name of the GemFire cache configuration file. Default '${default}':
-critical.heap.percentage=Please enter the percentage of heap at which updates to the cache are refused. 0.0 means disabled. Default '${default}':
-enable.debug.listener=Please specify whether to enable a GemFire listener that logs session create, update, destroy and expiration events. Default '${default}':
-enable.gateway.replication=Please specify whether session modifications should be replicated across the WAN. Default '${default}':
-enable.local.cache=Please specify whether to maintain a local GemFire cache. Default '${default}':
-enable.commit.valve=Please specify whether to commit sessions once per request. Default '${default}':
-prefer.deserialized.form=Please specify whether to prefer keeping attributes in deserialized form. Default '${default}':
-eviction.heap.percentage=Please enter the percentage of heap at which sessions will be evicted from the local cache. Default '${default}':
-locators=Please enter the list of locators used by GemFire members to discover each other. The format is a comma-separated list of host[port]. Default '${default}':
-log.file=Please enter the name of the file used to log GemFire messages. Default '${default}':
-rebalance=Please specify whether to rebalance the GemFire cache at startup. Default '${default}':
-region.attributes.id=Please enter the id of the attributes of the GemFire region used to cache sessions. Default '${default}':
-region.name=Please enter the name of the GemFire region used to cache sessions. Default '${default}':
-statistic.archive.file=Please enter the name of the file used to store GemFire statistics. Default '${default}':
-statistic.sampling.enabled=Please specify whether GemFire statistic sampling should be enabled. Default '${default}':
-initial.vm.heap.size.mb=Please specify the initial VM heap size in MB (-Xms). Default '${default}':
-maximum.vm.heap.size.mb=Please specify the maximum VM heap size in MB (-Xmx). Default '${default}':
-cms.initiating.heap.percentage=Please specify the percentage of VM heap utilization before a concurrent collection is initiated (--XX:CMSInitiatingOccupancyFraction [Hotspot-only]). Default '${default}':
-tomcat.version=Please enter the major version of Tomcat you will be using (6, 7 or 8). Default '${default}':

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/context-fragment.xml b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/context-fragment.xml
deleted file mode 100644
index 2b3d25c..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/context-fragment.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Context>
-
-    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"
-      enableDebugListener="${enable.debug.listener:false}"
-      enableGatewayReplication="${enable.gateway.replication:false}"
-      enableLocalCache="${enable.local.cache:false}"
-      enableCommitValve="${enable.commit.valve:true}"
-      preferDeserializedForm="${prefer.deserialized.form:true}"
-      regionAttributesId="${region.attributes.id:REPLICATE}"
-      regionName="${region.name:gemfire_modules_sessions}"/>
-
-</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/modules.env
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/modules.env b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/modules.env
deleted file mode 100644
index 9c4c00a..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/modules.env
+++ /dev/null
@@ -1 +0,0 @@
-TOMCAT_MAJOR_VER=6

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/server-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/server-fragment.xml b/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/server-fragment.xml
deleted file mode 100644
index cf7dc0d..0000000
--- a/extensions/gemfire-modules-assembly/release/tcserver/gemfire-p2p/server-fragment.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version='1.0' encoding='utf-8'?>
-<Server>
-
-    <add:Listener className="com.gemstone.gemfire.modules.session.catalina.PeerToPeerCacheLifecycleListener"
-      cache-xml-file="${cache.configuration.file:cache-peer.xml}"
-      criticalHeapPercentage="${critical.heap.percentage:0.0}"
-      evictionHeapPercentage="${eviction.heap.percentage:80.0}"
-      locators="${locators:localhost[10334]}"
-      log-file="${log.file:gemfire_modules.log}"
-      rebalance="${rebalance:false}"
-      statistic-archive-file="${statistic.archive.file:gemfire_modules.gfs}"
-      statistic-sampling-enabled="${statistic.sampling.enabled:false}"/>
-
-</Server>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/build.gradle b/extensions/gemfire-modules-hibernate/build.gradle
deleted file mode 100644
index 9d6cc5d..0000000
--- a/extensions/gemfire-modules-hibernate/build.gradle
+++ /dev/null
@@ -1,33 +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.
- */
-
-dependencies {
-  compile project(':extensions/gemfire-modules')
-  compile 'org.hibernate:hibernate-core:' + project.'hibernate.version'
-  compile 'org.hibernate:hibernate-annotations:' + project.'hibernate.version'
-  compile 'org.eclipse.persistence:javax.persistence:' + project.'javax.persistence-api.version'
-
-  runtime 'dom4j:dom4j:' + project.'dom4j.version'
-
-  testRuntime 'commons-collections:commons-collections:' + project.'commons-collections.version'
-  testRuntime 'org.hibernate:hibernate-commons-annotations:' + project.'hibernate-commons-annotations.version'
-  testRuntime 'org.slf4j:slf4j-jdk14:' + project.'slf4j-api.version'
-  testRuntime 'org.hsqldb:hsqldb:' + project.'hsqldb.version'
-  testRuntime 'org.javassist:javassist:' + project.'javassist.version'
-
-  testCompile project(path: ':gemfire-junit')
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/EnumType.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/EnumType.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/EnumType.java
deleted file mode 100644
index 55b824c..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/EnumType.java
+++ /dev/null
@@ -1,58 +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.hibernate;
-
-import java.io.Serializable;
-
-import org.hibernate.HibernateException;
-
-/**
- * Extends {@link org.hibernate.type.EnumType} so as to
- * override methods responsible for cached representation
- * of enums in hibernate.
- * This class must be used in place of {@link org.hibernate.type.EnumType}
- * in client-server topology when the application classes are
- * not available on the server.
- * e.g. a typical enum configuration should look like this:
- * <pre>
- * &lt;property name="myEnum"&gt;
- *   &lt;type name="<b>com.gemstone.gemfire.modules.hibernate.EnumType</b>"&gt;
- *     &lt;param name="enumClass"&gt;com.mycompany.MyEntity$MyEnum&lt;/param&gt;
- *     &lt;param name="type"&gt;12&lt;/param&gt;
- *   &lt;/type&gt;
- * &lt;/property&gt;
- * </pre>
- * @author sbawaska
- */
-public class EnumType extends org.hibernate.type.EnumType {
-
-  private static final long serialVersionUID = 3414902482639744676L;
-  
-  @Override
-  public Object assemble(Serializable cached, Object owner)
-      throws HibernateException {
-    String name = (String) cached;
-    Class<? extends Enum> clazz = returnedClass();
-    return Enum.valueOf(clazz, name);
-  }
-  
-  @Override
-  public Serializable disassemble(Object value) throws HibernateException {
-    return ((Enum)value).name();
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCache.java b/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCache.java
deleted file mode 100644
index 7548061..0000000
--- a/extensions/gemfire-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCache.java
+++ /dev/null
@@ -1,238 +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.hibernate;
-
-import java.util.Map;
-
-import org.hibernate.cache.Cache;
-import org.hibernate.cache.CacheException;
-import org.hibernate.cache.Timestamper;
-
-import com.gemstone.gemfire.cache.EntryNotFoundException;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.Scope;
-import com.gemstone.gemfire.distributed.DistributedLockService;
-import com.gemstone.gemfire.internal.cache.LocalRegion;
-
-public class GemFireCache implements Cache {
-  private Region region;
-
-  private boolean clientRegion = false;
-
-  private final DistributedLockService distributedLockService;
-
-  public GemFireCache(Region region, DistributedLockService lockService) {
-    this.region = region;
-    this.distributedLockService = lockService;
-    this.clientRegion = isClient(region);
-  }
-
-  private boolean isClient(Region region) {
-    return region.getAttributes().getPoolName() != null;
-  }
-
-  /**
-   * Clear the cache
-   */
-  public void clear() throws CacheException {
-    GemFireCacheProvider.getLogger().info("GemFireCache: clear called");
-    region.clear();
-  }
-
-  /**
-   * Clean up
-   */
-  public void destroy() throws CacheException {
-    GemFireCacheProvider.getLogger().info("GemFireCache: destroy called");
-    region.localDestroyRegion();
-  }
-
-  /**
-   * Get an item from the cache
-   * 
-   * @param key
-   * @return the cached object or <tt>null</tt>
-   * @throws CacheException
-   */
-  public Object get(Object key) throws CacheException {
-    GemFireCacheProvider.getLogger().debug(
-        "GemFireCache: get called for: " + key);
-    try {
-      Object value = region.get(key);
-      GemFireCacheProvider.getLogger().debug(
-          "GemFireCache: retrieved: " + key + "-->" + value);
-      return value;
-    }
-    catch (com.gemstone.gemfire.cache.CacheException e) {
-      throw new CacheException(e);
-    }
-  }
-
-  /**
-   * The count of entries currently contained in the regions in-memory store.
-   * 
-   * @return The count of entries in memory; -1 if unknown or unsupported.
-   */
-  public long getElementCountInMemory() {
-    return ((LocalRegion)region).entryCount();
-  }
-
-  /**
-   * The count of entries currently contained in the regions disk store.
-   * 
-   * @return The count of entries on disk; -1 if unknown or unsupported.
-   */
-  public long getElementCountOnDisk() {
-    return -1;
-  }
-
-  /**
-   * Get the name of the cache region
-   */
-  public String getRegionName() {
-    return region.getName();
-  }
-
-  /**
-   * The number of bytes is this cache region currently consuming in memory.
-   * 
-   * @return The number of bytes consumed by this region; -1 if unknown or
-   *         unsupported.
-   */
-  public long getSizeInMemory() {
-    return -1;
-  }
-
-  /**
-   * Return the lock timeout for this cache.
-   */
-  public int getTimeout() {
-    GemFireCacheProvider.getLogger().debug("GemFireCache: getTimeout");
-    return Timestamper.ONE_MS * 60000;
-  }
-
-  /**
-   * If this is a clustered cache, lock the item
-   */
-  public void lock(Object key) throws CacheException {
-    GemFireCacheProvider.getLogger().info(
-        "GemFireCache: lock called for: " + key);
-
-    if (!clientRegion) {
-      // If we're using GLOBAL scope, we don't have to worry about
-      // locking.
-      if (!Scope.GLOBAL.equals(region.getAttributes().getScope())) {
-        this.distributedLockService.lock(key, -1, -1);
-      }
-    }
-    else {
-      // We assume the server region is GLOBAL for now. Else, use command
-      // pattern to acquire lock on the server
-      GemFireCacheProvider.getLogger().info(
-          "GemFireCache: client region, ignoring lock : " + key);
-    }
-  }
-
-  /**
-   * Generate the next timestamp
-   */
-  public long nextTimestamp() {
-    GemFireCacheProvider.getLogger().debug("GemFireCache: nextTimestamp called");
-    // TODO : Need a counter, cache-wide
-    return Timestamper.next();
-  }
-
-  /**
-   * Add an item to the cache
-   * 
-   * @param key
-   * @param value
-   * @throws CacheException
-   */
-  public void put(Object key, Object value) throws CacheException {
-    GemFireCacheProvider.getLogger().debug(
-        "GemFireCache: put called for key: " + key + "value: " + value);
-    try {
-      region.put(key, value);
-      GemFireCacheProvider.getLogger().debug(
-          "GemFireCache: put " + key + "-->" + value);
-    }
-    catch (com.gemstone.gemfire.cache.CacheException e) {
-      throw new CacheException(e);
-    }
-  }
-
-  public Object read(Object key) throws CacheException {
-    GemFireCacheProvider.getLogger().info(
-        "GemFireCache: read called for: " + key);
-    return region.get(key);
-  }
-
-  /**
-   * Remove an item from the cache
-   */
-  public void remove(Object key) throws CacheException {
-    GemFireCacheProvider.getLogger().debug(
-        "GemFireCache: remove called for: " + key);
-    try {
-      region.destroy(key);
-      GemFireCacheProvider.getLogger().debug("GemFireCache: removed: " + key);
-    }
-    catch (EntryNotFoundException e) {
-      // We can silently ignore this
-    }
-    catch (com.gemstone.gemfire.cache.CacheException e) {
-      throw new CacheException(e);
-    }
-  }
-
-  public String toString() {
-    StringBuffer buffer = new StringBuffer();
-    buffer.append("Hibernate cache on GemFire region: ");
-    buffer.append(region);
-    return buffer.toString();
-  }
-
-  /**
-   * If this is a clustered cache, unlock the item
-   */
-  public void unlock(Object key) throws CacheException {
-    GemFireCacheProvider.getLogger().info(
-        "GemFireCache: unlock called for: " + key);
-
-    if (!clientRegion) {
-      // If we're using GLOBAL scope, we don't have to worry about locking.
-      if (!Scope.GLOBAL.equals(region.getAttributes().getScope())) {
-        this.distributedLockService.unlock(key);
-      }
-    }
-    else {
-      GemFireCacheProvider.getLogger().info(
-          "GemFireCache: client region, ignoring lock : " + key);
-    }
-  }
-
-  public void update(Object key, Object value) throws CacheException {
-    GemFireCacheProvider.getLogger().info(
-        "GemFireCache: update called for: " + key);
-    this.region.put(key, value);
-  }
-
-  public Map<?, ?> toMap() {
-    return null;
-  }
-}



[19/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/AbstractHealthEvaluator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/AbstractHealthEvaluator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/AbstractHealthEvaluator.java
deleted file mode 100644
index 337bc9e..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/AbstractHealthEvaluator.java
+++ /dev/null
@@ -1,185 +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.admin.internal;
-
-import java.util.List;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.GemFireHealth;
-import com.gemstone.gemfire.admin.GemFireHealthConfig;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * The abstract superclass of all GemFire health evaluators.
- * Basically, this class specifies what the health evaluators need and
- * what they should do.
- *
- * <P>
- *
- * Note that evaluators never reside in the administration VM, they
- * only in member VMs.  They are not <code>Serializable</code> and
- * aren't meant to be.
- *
- * @author David Whitlock
- *
- * @since 3.5
- * */
-public abstract class AbstractHealthEvaluator  {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** The number of times this evaluator has been evaluated.  Certain
-   * checks are not made the first time an evaluation occurs.  */
-  private int numEvaluations;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>AbstractHealthEvaluator</code> with the given
-   * <code>GemFireHealthConfig</code> and
-   * <code>DistributionManager</code>.  
-   *
-   * Originally, this method took an
-   * <code>InternalDistributedSystem</code>, but we found there were
-   * race conditions during initialization.  Namely, that a
-   * <code>DistributionMessage</code> can be processed before the
-   * <code>InternalDistributedSystem</code>'s
-   * <code>DistributionManager</code> is set.
-   */
-  protected AbstractHealthEvaluator(GemFireHealthConfig config,
-                                    DM dm)
-  {
-    this.numEvaluations = 0;
-  }
-
-  /////////////////////  Instance Methods  /////////////////////
-
-  /**
-   * Evaluates the health of a component of a GemFire distributed
-   * system. 
-   *
-   * @param status
-   *        A list of {@link AbstractHealthEvaluator.HealthStatus
-   *        HealthStatus} objects that is populated when ill health is
-   *        detected.
-   */
-  public final void evaluate(List status) {
-    this.numEvaluations++;
-    check(status);
-  }
-
-  /**
-   * Checks the health of a component of a GemFire distributed
-   * system. 
-   *
-   * @see #evaluate
-   */
-  protected abstract void check(List status);
-
-  /**
-   * Returns whether or not this is the first evaluation
-   */
-  protected final boolean isFirstEvaluation() {
-    return this.numEvaluations <= 1;
-  }
-
-  /**
-   * A factory method that creates a {@link
-   * AbstractHealthEvaluator.HealthStatus HealthStats} with
-   * {@linkplain GemFireHealth#OKAY_HEALTH okay} status.
-   */
-  protected HealthStatus okayHealth(String diagnosis) {
-    logger.info(LocalizedMessage.create(LocalizedStrings.AbstractHealthEvaluator_OKAY_HEALTH__0, diagnosis));
-    return new HealthStatus(GemFireHealth.OKAY_HEALTH, diagnosis);
-  }
-
-  /**
-   * A factory method that creates a {@link
-   * AbstractHealthEvaluator.HealthStatus HealthStats} with
-   * {@linkplain GemFireHealth#POOR_HEALTH poor} status.
-   */
-  protected HealthStatus poorHealth(String diagnosis) {
-    logger.info(LocalizedMessage.create(LocalizedStrings.AbstractHealthEvaluator_POOR_HEALTH__0, diagnosis));
-    return new HealthStatus(GemFireHealth.POOR_HEALTH, diagnosis);
-  }
-
-  /**
-   * Returns a <code>String</code> describing the component whose
-   * health is evaluated by this evaluator.
-   */
-  protected abstract String getDescription();
-
-  /**
-   * Closes this evaluator and releases all of its resources
-   */
-  abstract void close();
-
-  ///////////////////////  Inner Classes  //////////////////////
-
-  /**
-   * Represents the health of a GemFire component.
-   */
-  public class HealthStatus  {
-    /** The health of a GemFire component */
-    private GemFireHealth.Health healthCode;
-
-    /** The diagnosis of the illness */
-    private String diagnosis;
-
-    //////////////////////  Constructors  //////////////////////
-
-    /**
-     * Creates a new <code>HealthStatus</code> with the give
-     * <code>health</code> code and <code>dianosis</code> message.
-     *
-     * @see GemFireHealth#OKAY_HEALTH
-     * @see GemFireHealth#POOR_HEALTH
-     */
-    HealthStatus(GemFireHealth.Health healthCode, String diagnosis) {
-      this.healthCode = healthCode;
-      this.diagnosis =
-        "[" + AbstractHealthEvaluator.this.getDescription() + "] " +
-        diagnosis;
-    }
-
-    /////////////////////  Instance Methods  /////////////////////
-
-    /**
-     * Returns the health code
-     *
-     * @see GemFireHealth#OKAY_HEALTH
-     * @see GemFireHealth#POOR_HEALTH
-     */
-    public GemFireHealth.Health getHealthCode() {
-      return this.healthCode;
-    }
-
-    /**
-     * Returns the diagnosis prepended with a description of the
-     * component that is ill.
-     */
-    public String getDiagnosis() {
-      return this.diagnosis;
-    }
-
-  }
-
-}


[03/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberRegionJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberRegionJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberRegionJmxImpl.java
deleted file mode 100644
index 3d1a280..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberRegionJmxImpl.java
+++ /dev/null
@@ -1,140 +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.admin.jmx.internal;
-
-import com.gemstone.gemfire.admin.internal.SystemMemberCacheImpl;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-
-/**
- * MBean representation of {@link 
- * com.gemstone.gemfire.admin.SystemMemberRegion}.
- *
- * @author    Darrel Schneider
- * @author    Kirk Lund
- * @since     3.5
- */
-public class SystemMemberRegionJmxImpl 
-extends com.gemstone.gemfire.admin.internal.SystemMemberRegionImpl
-implements com.gemstone.gemfire.admin.jmx.internal.ManagedResource {
-
-  /** The object name of this managed resource */
-  private ObjectName objectName;
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-
-  /** 
-   * Constructs an instance of SystemMemberRegionJmxImpl.
-   *
-   * @param cache   the cache this region belongs to
-   * @param region  internal region to delegate real work to
-   */
-  public SystemMemberRegionJmxImpl(SystemMemberCacheImpl cache, 
-                                   Region region)
-                            throws com.gemstone.gemfire.admin.AdminException {
-    super(cache, region);
-    initializeMBean(cache);
-  }
-
-  /** Create and register the MBean to manage this resource */
-  private void initializeMBean(SystemMemberCacheImpl cache)
-  throws com.gemstone.gemfire.admin.AdminException {
-    
-    GemFireVM vm = cache.getVM();
-    this.mbeanName = new StringBuffer("GemFire.Cache:")
-        .append("path=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(getFullPath()))
-        .append(",name=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(cache.getName()))
-        .append(",id=")
-        .append(cache.getId())
-        .append(",owner=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(vm.getId().toString()))
-        .append(",type=Region").toString();
-      
-    this.objectName = MBeanUtil.createMBean(this);
-  }
-  
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-	public String getMBeanName() {
-		return this.mbeanName;
-	}
-  
-	public ModelMBean getModelMBean() {
-		return this.modelMBean;
-	}
-	public void setModelMBean(ModelMBean modelMBean) {
-		this.modelMBean = modelMBean;
-	}
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.SYSTEM_MEMBER_REGION;
-  }
-  
-  public void cleanupResource() {}
-
-  /**
-   * Checks equality of the given object with <code>this</code> based on the
-   * type (Class) and the MBean Name returned by <code>getMBeanName()</code>
-   * methods.
-   * 
-   * @param obj
-   *          object to check equality with
-   * @return true if the given object is if the same type and its MBean Name is
-   *         same as <code>this</code> object's MBean Name, false otherwise
-   */
-  @Override
-  public boolean equals(Object obj) {
-    if ( !(obj instanceof SystemMemberRegionJmxImpl) ) {
-      return false;
-    }
-    
-    SystemMemberRegionJmxImpl other = (SystemMemberRegionJmxImpl) obj; 
-    
-    return this.getMBeanName().equals(other.getMBeanName());
-  }
-
-  /**
-   * Returns hash code for <code>this</code> object which is based on the MBean 
-   * Name generated. 
-   * 
-   * @return hash code for <code>this</code> object
-   */
-  @Override
-  public int hashCode() {
-    return this.getMBeanName().hashCode();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/package.html
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/package.html b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/package.html
deleted file mode 100755
index 1700ab7..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/package.html
+++ /dev/null
@@ -1,166 +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.
--->
-<HTML>
-<BODY>
-
-<P>Contains the implementation of the external JMX APIs from
-<a href="{@docRoot}/com/gemstone/gemfire/admin/jmx/package-summary.html#package_description">com.gemstone.gemfire.admin.jmx</a>.</P>
-
-<H2>JMX Support in GemFire</H2>
-
-Our goal was to provide JMX administrative support in GemFire.  The design was influenced by these important factors:
-<p>
-<ul>
-<li/>1) Requirement to not impact performance of the product
-<li/>2) Desire to introduce JMX without altering the existing product or the management console
-<li/>3) Similar functionality already existed in the console and the internal.admin pkg which the console uses
-<li/>4) Requirement to also introduce a simple and usable Admin API which or may not be related to JMX
-</ul>
-
-From a functional stand point, the JMX support was supposed to provide most of the same administrative and operational monitoring that the console already provides.  In some cases we limited the functionality due to security concerns and in others because it was hard to express the features as JMX beans.  The JMX Agent also provides some functionality (such as Health monitoring) that is not currently in the console.
-<p>
-The Agent communicates with the distributed system using the same distribution manager {@link com.gemstone.gemfire.distributed.internal.DistributionManager} as the console uses and thus has the same requirements that determine what distributed system it can manage.  Although the Console currently supports managing multiple distributed systems, we decided that a given Agent should only be able to manage a single system.  We have not tested the use of more than one Agent for the same system, however nothing currently prohibits this.
-<p>
-We decided to develop a simple public Admin API which in essence wraps the internal.admin API that the Console currently uses extensively.  The Admin API also contains implementations of new functionality not in internal.admin.  Our JMX support is an extension to this Admin API.  In an overly simplified view, the GemFire JMX MBeans are ModelMBeans that manage instances of the Admin API objects housed in the Agent's MBeanServer.
-<p>
-The selected architecture consists of a Daemon Agent, which exists in a separate VM that GemFire does not depend on.  This Agent hosts an MBeanServer, instances of any and all MBeans registered for managing a GemFire distributed system, and server connectors/adaptors that various types of clients can connect to.
-<p>
-The two server connectors we selected are the HttpAdaptor and the RMI Connector.  The HttpAdaptor provides an HTML user interface of all MBeans in the MBeanServer.  Although this generic UI is not as rich as an RMI client (or the GemFire Console) could be, it provides a functional and easy to use UI with no development required.  The JMX Remote specification details the standard connectors.  Although the HttpAdaptor is not required by this Sun spec. it is included in some form with all JMX implementations that I investigated.  It should be noted that our JMX Agent currently starts up the HttpAdaptor, but not the RMI Connector.  The latter is deferred as later work since some form of client must be developed for testing.  Further research may also uncover a generic, configurable open-source RMI client for JMX.  The GemFire Console could in theory be reworked as an RMI Connector client, but this is not currently planned.
-<p>
-Two open-source JMX implementations made it to our final review for consideration: <a href="http://www.xmojo.org">XMOJO</a> and <a href="http://www.mx4j.org">MX4J</a>.  The decision to go with MX4J was based mainly on our perceptions of MX4J being more active and widespread in use.  Additionally, XMOJO is associated with <a href="http://www.adventnet.com/">AdventNet</a> which produces commercial products.  This made MX4J seem more true to open-source and safer from corporate tampering.
-<p>
-ModelMBeans are very dynamic and capable of managing aggregate resources.  Use of a ModelMBean entails specifying meta-data to an instance of javax.management.modelmbean.RequiredModelMBean.  This meta-data identifies the manageble resource(s) which can consist of a single object, or many objects, including those in one VM or in any number of distributed VMs.  We decided to subclass classes in the Admin API in order to massage them a little and make them easier to use as a managed resource by the ModelMBean.  For example, com.gemstone.gemfire.admin.GemFireManager represents a type of member in a GemFire system which manages shared memory.  When an MBean is registered for managing the GemFireManager, the JMX Agent instantiates a "JMX friendlier" subclass: com.gemstone.gemfire.admin.jmx.internal.GemFireMangerJmxImpl.  Comparison of this class with the non-JMX super class com.gemstone.gemfire.admin.internal.GemFireManagerImpl will illustrate what "JMX friendly" means better than trying 
 to explain it here...
-<p>
-One standard approach to defining a ModelMBean is to programmatically
-build the necessary meta-data.  The folks on the Tomcat approach
-developed a better solution... an XML definition file which Jakarta
-Commons-Modeler parses to create the meta-data objects required to
-definie the ModelMBean.  We currently have our XML descriptor file at
-com.gemstone.gemfire.admin.jmx.mbeans-descriptors.xml.
-Commons-Modeler can be found at <A href="http://jakarta.apache.org/commons/modeler">http://jakarta.apache.org/commons/modeler/</A>
-<p>
-Here's a quick run-down of the Admin and JMX pkgs in GemFire...
-<p>
-<b>com.gemstone.gemfire.admin</b>
-<ul>
-<li/>interfaces describing GemFire entities and resources for managing or monitoring
-</ul>
-<p>
-<b>com.gemstone.gemfire.admin.internal</b>
-<ul>
-<li/>implementations of the admin pkg which could be used to managing GemFire
-<li/>recommendation is to create one set on non-JMX unit tests for these and then wrap that unit test within another test that is specific to its use in JMX
-</ul>
-<p>
-<b>com.gemstone.gemfire.admin.jmx</b>
-<ul>
-<li/>Commons-Modeler descriptor file mbeans-descriptors.xml
-<li/>AgentMBean - non-required interface that simply represents a public documentation of what the Agent does
-<li/>VersionMBean and Version - unused (but functional) examples of a standard MBean (other MBeans as defined in mbeans-descriptors.xml also provide version info)
-</ul>
-<p>
-<b>com.gemstone.gemfire.admin.jmx.internal</b>
-<ul>
-<li/>subclasses of com.gemstone.gemfire.admin.internal classes that use JMX services, implement ManagedResource, register ModelMBeans to manage themselves, and other JMX related details
-<li/>ManagedResource - simple interface we use to create a more uniform approach in using JMX
-<li/>Agent - application with main, registers HttpAdaptor, acts as a factory to DistributedSystemJmxImpl (which is the entry point to using JMX with a GemFire system)
-<li/>AgentConfig - configuration for Agent that reads/writes to a properties file
-<li/>MBeanUtil - utility class with static methods for defining MBeans, registering for timer-based refresh notifications, and lots of other JMX stuff
-<li/>StatisticAttributeInfo and ConfigAttributeInfo - these are the results of refactoring common code from some of the JmxImpl classes that required runtime dynamic (ie, not known at design time) MBean attributes
-<li/>SpecManagedBean - subclass of part of Commons-Modeler, this class acts as a workaround for a bug in Commons-Modeler (I hope to remove this after working with Jakarta-Commons to correct the bug)
-<li/>AgentPrintStream - this is a hack workaround for suppressing warnings from Xalan that derive from a purported incompatibility between the XSLT sheets in MX4J and the version of Xalan in JDK1.4.2 - experts with Xalan recommend upgrading to the very latest version of Xalan which is not currently desired for GemFire
-</ul>
-<p>
-<h3>Some caveats, workarounds, and GemFire bugs to be aware of:</h3>
-<p>
-1) MX4J uses XSLT style sheets that are intended to work with the latest version of Xalan.  JDK1.4.2 bundles an older version of Xalan which generates warnings.
-<p>
-2) MX4J's implementation of javax.management.modelmbean.RequiredModelMBean contains a bug such that any return type defined as an array of some object results in it attempting to Class.forName the class name with the "[]" still in the name of the class.  Our current workaround is to return java.lang.Object where we'd like to return an array of some non-primitive type.  I hope to look at this closer and work with MX4J to correct it (unless that latest code base at MX4J already has a fix).
-<p>
-3) Our MBeans currently have some return types of Admin interfaces and GemFire MBean types.  This is not recommended.  The correct approach is to return javax.management.ObjectName or an array of ObjectName so that remotability is not broken.  We have a bug filed to correct this in GemFire.
-<p>
-4) Commons-Modeler provides a simple, incomplete implementation of ModelMBean called org.apache.commons.modeler.BaseModelMBean. We decided to use the standard RequiredModelMBean which all JMX implementations are required to supply.  The JMX spec details several "managed resource types" that a ModelMBean can support.  ObjectReference is the type that both MX4J's RequiredModelMBean and Modeler's BaseModelMBean support.  However, MX4J is more strict in it's interpretation of the spec which spells it out as "ObjectReference".  Modeler's BaseModelMBean performs no enforcement and simply assumes it is managing type ObjectReference.  Modeler has a bug in org.apache.commons.modeler.ManagedBean because it specifies "objectReference" which is the incorrect case in comparison to the specification.  I intend to work with the Jakarta-Commons folks to change this to comply with the spec.  The Modeler will use BaseModelMBean by default even though it is actually depending on a JMX implementation s
 uch as MX4J or XMOJO.  com.gemstone.gemfire.admin.jmx.internal.MBeanUtil tells Modeler to use RequiredModelMBean instead and also uses com.gemstone.gemfire.admin.jmx.internal.SpecManagedBean as a workaround to the whole "objectReference" issue.  You could feasibly use org.apache.commons.modeler.BaseModelMBean or RequiredModelMBean.
-<p>
-
-<h3>Capabilities currently supported in GemFire via JMX:</h3>
-<ul>
-<li/>1) View overall system and its settings and start/stop all members
-<li/>2) View all managers and applications
-<li/>3) View and modify config (includes optional use of JMX Timer service to auto-refresh)
-<li/>4) View any statistics (includes optional use of JMX Timer service to auto-refresh)
-<li/>5) View member's cache and its statistics
-<li/>6) View a cache's region and its attributes, statistics, but not the data
-<li/>7) Health monitoring (ask David W. for more info... I haven't had a chance to look at this yet)
-<li/>8) Create, start, and stop managers
-</ul>
-<p>
-<h3>TODO:</h3>
-<ul>
-<li/>1) Creation and control of Locators
-<li/>2) Enable the RMI Connector and build tests
-<li/>3) Bind Address support (bug 30898)
-<li/>4) SSL Configuration support
-<li/>5) JMX Connector security
-<li/>6) more thorough automated tests!!
-<li/>7) Documentation of use w/ built-in Connectors (RMI and HTTP)
-<li/>8) Documentation of use w/ AdventNet SNMP Adaptor
-<li/>9) Documentation of use w/ selected commercial management products
-<li/>10) Determine high-availability requirements if any (mentioned by Jags)
-</ul>
-See also <a href="#deferred_ops">deferred backlog from Hardening/Operations sprint</a>
-<p>
-It's very easy to use the JMX Monitor service to monitor an MBean's attribute and fire JMX Notifications.  Statistics and Config Parameters are "MBean attributes".
-
-<p>
-<h3>Using Third Party Management Consoles/Tools</h3>
-There is information on <a href="http://www.adventnet.com/">AdventNet's website</a> detailing the use of their <a href="http://www.adventnet.com/products/snmpadaptor/index.html">SNMP Adaptor</a> to enable connectivity to <a href="http://www.openview.hp.com/">HP OpenView</a>, <a href="http://www.ibm.com/software/tivoli/">IBM Tivoli</a>, <a href="http://www3.ca.com/solutions/solution.asp?id=315">CA Unicenter</a>, and other SNMP managers.
-<p>
-Aside from using AdventNet's SNMP Adaptor, HPOpenView is the first I've seen of the big players offering what appears to be a way to plug our JMX support into their product for management of GemFire.  I haven't had a chance to look at it yet.  Most likely their <a href="http://www.openview.hp.com/products/spi/">SPI</a> supports writing a small amount of glue code to have their console become an RMI client to our JMX VM (which is essentially an MBeanServer "server" that hosts our MBeans).  I think it's unlikely that such vendors would want to support hosting of third party MBeans and the classpath/versioning headaches involved in that.  The JMX Remote specification really is meant to cover how such console's would perform the remote connections to custom MBeans in external VMs/products.  It is likely that the other management tool vendors such as Tivoli have a similar SPI available or in the works.
-<p>
-See HP Dev Resource Central's page on <a href="http://devresource.hp.com/jmx.htm">JMX</a> for info and links on using JMX to integrate with HP OpenView.  You can also sign up for <a href="http://www.hpdev.com/.docs/pg/5">HP Developer News</a>
-<p>
-<h3><a name="deferred_ops">Deferred Backlog from Hardening/Operations Sprint</a></h3>
-Note: some of these tasks may no longer be worded properly or even needed...
-<ul>
-<li/>Provide a consolidated view of all cache Regions via JMX
-<li/>Send an alert upon system failure, communication failure, etc.
-<li/>Monitor cache system failures, comm failures, loader failures, etc via JMX
-<li/>Detect/handle stuck shared memory locks via JMX
-<li/>Provide a "combination view" (distributed system-wide) of certain statistics via JMX
-<li/>Integrate with Tivoli and produce a document
-<li/>Test managing caches via JMX with a large number of Regions, Entries, etc.
-<li/>Create XDoclet module to auto-generate mbeans-descriptors.xml (Note: we're using JavaDoc 1.4.2 which is incompatible with XDoclet; Sun intends to restore compatibility in the next version of JavaDoc)
-<li/>Investigate AdventNet's JMX administration console
-<li/>View percentage of VM memory used by a Cache via JMX
-<li/>Investigate modifying the GemFire Console to use JMX
-<li/>Investigate providing secure management via JMX
-<li/>Document security usage for JMX management
-<li/>Investigate managing GemFire via BMC Patrol
-<li/>Investigate managing GemFire via HP OpenView
-<li/>Investigate managing GemFire via UniCenter
-<li/>Submit fix to Jakrta Commons-Modeler for ObjectReference fix in ManagedBean
-<li/>Submit fix to MX4J for classload error in RequiredModelMBean
-<li/>Enable the RMI Connector (currently commented out in Agent)
-<li/>Create tests for RMI Connector
-<li/>Document and JavaDoc usage of the RMI Connector
-<li/>Add support to MBeanUtil to determine which MBeanServer the Agent is in
-<li/>Correlate information from GemFire MBeans with MBeans from other products
-<li/>Test deploying GemFire MBeans into other products' MBean containers
-</ul>
-
-</BODY>
-</HTML>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/package.html
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/package.html b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/package.html
deleted file mode 100755
index acbefa8..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/package.html
+++ /dev/null
@@ -1,28 +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.
--->
-<HTML>
-<BODY>
-
-<P>Provides administrative access to a GemFire distributed system via
-the Java Management Extensions (JMX).</P>
-
-<P>Click <A href="doc-files/mbeans-descriptions.html">here</A> for a
-description of the attributes, operations, and notifications of the
-GemFire JMX MBeans.</P>
-
-</BODY>
-</HTML>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/package.html
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/package.html b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/package.html
deleted file mode 100644
index 86d7651..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/package.html
+++ /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.
--->
-<HTML>
-<BODY>
-
-<P>Provides an API for administering various GemFire components such
-as a GemFire distributed
-system, and processes that host GemFire Caches.</P>
-
-<H3>Administration of a GemFire Distributed System</H3>
-
-The Admin API provides interfaces for administrative control, 
-monitoring, and custom management of a GemFire system.
-<P>
-The {@link com.gemstone.gemfire.admin.AdminDistributedSystemFactory}
-is the starting point.  It creates an instance of
-<code>AdminDistributedSystem</code> that administers the distributed
-system to which a VM is {@linkplain
-com.gemstone.gemfire.distributed.DistributedSystem connected}.
-<P>
-<pre><code>
-DistributedSystem connection = DistributedSystem.connect(new Properties());
-AdminDistributedSystem system = 
-    AdminDistributedSystemFactory.getDistributedSystem(connection);
-system.connect(new File("admin.log"), "info");
-</code></pre>
-<P>
-This {@link com.gemstone.gemfire.admin.AdminDistributedSystem}
-interface exposes methods for such tasks as connecting to the system,
-merging system logs, getting administrative interfaces to 
-applications that host GemFire Caches.
-
-<H3>Monitoring the Health of GemFire</H3>
-
-<P>The {@link com.gemstone.gemfire.admin.GemFireHealth} interface
-allows the overall health of GemFire to be monitored.
-<code>GemFireHealth</code> monitors the behavior the members of a
-distributed system namely 
-application VMs that may host {@link com.gemstone.gemfire.cache.Cache
-cache} instances.  There are three levels of health: {@linkplain
-com.gemstone.gemfire.admin.GemFireHealth#GOOD_HEALTH good health} that
-indicates that all GemFire components are behaving reasonably,
-{@linkplain com.gemstone.gemfire.admin.GemFireHealth#OKAY_HEALTH okay
-health} that indicates that one or more GemFire components is slightly
-unhealthy and may need some attention, and {@linkplain
-com.gemstone.gemfire.admin.GemFireHealth#POOR_HEALTH poor health} that
-indicates that a GemFire component is unhealthy and needs immediate
-attention.</P>
-
-<P>Because each GemFire application has its own definition of what it
-means to be "healthy", the metrics that are used to determine health
-are configurable.  {@link
-com.gemstone.gemfire.admin.GemFireHealthConfig} provides methods for
-configuring how the health of {@linkplain
-com.gemstone.gemfire.admin.DistributedSystemHealthConfig the
-distributed system},
-{@linkplain com.gemstone.gemfire.admin.CacheHealthConfig members that
-host Cache instances}, and {@linkplain
-com.gemstone.gemfire.admin.MemberHealthConfig individual members} of
-the distributed system.  <code>GemFireHealthConfig</code> also allows
-you to configure how often GemFire's health is evaluated.</P>
-
-</BODY>
-</HTML>


[27/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationEndToEndDUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationEndToEndDUnitTest.java b/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationEndToEndDUnitTest.java
deleted file mode 100644
index edd056b..0000000
--- a/gemfire-assembly/src/test/java/com/gemstone/gemfire/management/internal/configuration/SharedConfigurationEndToEndDUnitTest.java
+++ /dev/null
@@ -1,450 +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.management.internal.configuration;
-
-import static com.gemstone.gemfire.test.dunit.Wait.*;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.RegionShortcut;
-
-import com.gemstone.gemfire.cache.wan.GatewaySender.OrderPolicy;
-import com.gemstone.gemfire.distributed.Locator;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.InternalLocator;
-import com.gemstone.gemfire.internal.AvailablePortHelper;
-import com.gemstone.gemfire.internal.ClassBuilder;
-import com.gemstone.gemfire.internal.FileUtil;
-import com.gemstone.gemfire.internal.JarDeployer;
-import com.gemstone.gemfire.internal.admin.remote.ShutdownAllRequest;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.lang.StringUtils;
-import com.gemstone.gemfire.management.cli.Result.Status;
-import com.gemstone.gemfire.management.internal.cli.CliUtil;
-import com.gemstone.gemfire.management.internal.cli.HeadlessGfsh;
-import com.gemstone.gemfire.management.internal.cli.commands.CliCommandTestBase;
-import com.gemstone.gemfire.management.internal.cli.i18n.CliStrings;
-import com.gemstone.gemfire.management.internal.cli.result.CommandResult;
-import com.gemstone.gemfire.management.internal.cli.util.CommandStringBuilder;
-import com.gemstone.gemfire.test.dunit.DistributedTestCase;
-import com.gemstone.gemfire.test.dunit.Host;
-import com.gemstone.gemfire.test.dunit.IgnoredException;
-import com.gemstone.gemfire.test.dunit.LogWriterUtils;
-import com.gemstone.gemfire.test.dunit.SerializableCallable;
-import com.gemstone.gemfire.test.dunit.VM;
-import com.gemstone.gemfire.test.dunit.WaitCriterion;
-
-import org.apache.commons.io.FileUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-
-public class SharedConfigurationEndToEndDUnitTest extends CliCommandTestBase {
-  private static final int TIMEOUT = 10000;
-  private static final int INTERVAL = 500;
-  private static final String REGION1 = "R1";
-  private static final String REGION2 = "R2";
-  private static final String INDEX1 = "ID1";
-  private transient ClassBuilder classBuilder = new ClassBuilder();
-  public static Set<String> serverNames = new HashSet<String>();
-  public static Set<String> jarFileNames = new HashSet<String>();
-
-  public SharedConfigurationEndToEndDUnitTest(String name) {
-    super(name);
-    // TODO Auto-generated constructor stub
-  }
-
-  private static final long serialVersionUID = -2276690105585944041L;
-
-  public Set<String> startServers(HeadlessGfsh gfsh, String locatorString, int numServers, String serverNamePrefix, int startNum) throws ClassNotFoundException, IOException {
-    Set<String> serverNames = new HashSet<String>();
-
-    final int[] serverPorts = AvailablePortHelper.getRandomAvailableTCPPorts(numServers);
-    for (int i=0; i<numServers; i++) {
-      int port = serverPorts[i];
-      String serverName = serverNamePrefix+ Integer.toString(i+startNum) + "-" + port;
-      CommandStringBuilder csb = new CommandStringBuilder(CliStrings.START_SERVER);
-      csb.addOption(CliStrings.START_SERVER__NAME, serverName);
-      csb.addOption(CliStrings.START_SERVER__LOCATORS, locatorString);
-      csb.addOption(CliStrings.START_SERVER__SERVER_PORT, Integer.toString(port));
-      CommandResult cmdResult = executeCommand(gfsh, csb.getCommandString());
-      assertEquals(Status.OK, cmdResult.getStatus());
-    }
-    return serverNames;
-  }
-
-  public void testStartServerAndExecuteCommands() throws InterruptedException, ClassNotFoundException, IOException, ExecutionException {
-    IgnoredException.addIgnoredException("EntryDestroyedException");
-    Object[] result = setup();
-    final int locatorPort = (Integer) result[0];
-    final String jmxHost = (String) result[1];
-    final int jmxPort = (Integer) result[2];
-    final int httpPort = (Integer) result[3];
-    final String locatorString = "localHost[" + locatorPort + "]";
-
-    final HeadlessGfsh gfsh = new HeadlessGfsh("gfsh2", 300);
-    assertNotNull(gfsh);
-    shellConnect(jmxHost, jmxPort, httpPort, gfsh);
-
-    serverNames.addAll(startServers(gfsh, locatorString, 2, "Server", 1));
-    doCreateCommands();
-    serverNames.addAll(startServers(gfsh, locatorString, 1, "NewMember", 4));
-    verifyRegionCreateOnAllMembers(REGION1);
-    verifyRegionCreateOnAllMembers(REGION2);
-    verifyIndexCreationOnAllMembers(INDEX1);
-    verifyAsyncEventQueueCreation();
-   
-
-
-    //shutdown everything
-    LogWriterUtils.getLogWriter().info("Shutting down all the members");
-    shutdownAll();
-    deleteSavedJarFiles();
-  }
-
-
-  private void doCreateCommands() {
-    createRegion(REGION1, RegionShortcut.REPLICATE, null);
-    createRegion(REGION2, RegionShortcut.PARTITION, null);
-    createIndex(INDEX1 , "AAPL", REGION1, null);
-    createAndDeployJar("Deploy1.jar");
-    createAsyncEventQueue("q1");
-    final String autoCompact = "true";
-    final String allowForceCompaction = "true";
-    final String compactionThreshold = "50";
-    final String duCritical = "90";
-    final String duWarning = "85";
-    final String maxOplogSize = "1000";
-    final String queueSize = "300";
-    final String timeInterval = "10";
-    final String writeBufferSize="100";
-    final String diskStoreName = "ds1";
-    final String diskDirs = "ds1";
-    
-    createDiskStore(diskStoreName, diskDirs, autoCompact, allowForceCompaction, compactionThreshold, duCritical, duWarning, maxOplogSize, queueSize, timeInterval, writeBufferSize);
-  }
-
-
-  protected void executeAndVerifyCommand(String commandString) {
-    CommandResult cmdResult = executeCommand(commandString);
-    LogWriterUtils.getLogWriter().info("Command Result : \n" + commandResultToString(cmdResult));
-    assertEquals(Status.OK, cmdResult.getStatus());
-    assertFalse(cmdResult.failedToPersist());
-  }
-
-  private void createRegion(String regionName, RegionShortcut regionShortCut, String group) {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.CREATE_REGION);
-    csb.addOption(CliStrings.CREATE_REGION__REGION, regionName);
-    csb.addOption(CliStrings.CREATE_REGION__REGIONSHORTCUT, regionShortCut.name());
-    executeAndVerifyCommand(csb.getCommandString());
-  }
-
-  private void destroyRegion(String regionName) {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.DESTROY_REGION);
-    csb.addOption(CliStrings.DESTROY_REGION__REGION, regionName);
-    executeAndVerifyCommand(csb.getCommandString());
-  }
-
-  private void stopServer(String serverName) {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.STOP_SERVER);
-    csb.addOption(CliStrings.STOP_SERVER__MEMBER, serverName);
-    executeAndVerifyCommand(csb.getCommandString());
-  }
-
-  public void createAsyncEventQueue(String queueName) {
-    String queueCommandsJarName = "testEndToEndSC-QueueCommands.jar";
-    final File jarFile = new File(queueCommandsJarName);
-
-    try {
-      ClassBuilder classBuilder = new ClassBuilder();
-      byte[] jarBytes = classBuilder.createJarFromClassContent("com/qcdunit/QueueCommandsDUnitTestListener",
-          "package com.qcdunit;" +
-              "import java.util.List; import java.util.Properties;" +
-              "import com.gemstone.gemfire.internal.cache.xmlcache.Declarable2; import com.gemstone.gemfire.cache.asyncqueue.AsyncEvent;" +
-              "import com.gemstone.gemfire.cache.asyncqueue.AsyncEventListener;" +
-              "public class QueueCommandsDUnitTestListener implements Declarable2, AsyncEventListener {" +
-              "Properties props;" +
-              "public boolean processEvents(List<AsyncEvent> events) { return true; }" +
-              "public void close() {}" +
-              "public void init(final Properties props) {this.props = props;}" +
-          "public Properties getConfig() {return this.props;}}");
-
-      FileUtils.writeByteArrayToFile(jarFile, jarBytes);
-      CommandStringBuilder csb = new CommandStringBuilder(CliStrings.DEPLOY);
-      csb.addOption(CliStrings.DEPLOY__JAR, queueCommandsJarName);
-      executeAndVerifyCommand(csb.getCommandString());
-
-      csb = new CommandStringBuilder(CliStrings.CREATE_ASYNC_EVENT_QUEUE);
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__ID, queueName);
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__LISTENER, "com.qcdunit.QueueCommandsDUnitTestListener");
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__BATCH_SIZE, "100");
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__BATCHTIMEINTERVAL, "200");
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__DISPATCHERTHREADS, "4");
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__ENABLEBATCHCONFLATION, "true");
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__DISKSYNCHRONOUS, "true");
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__MAXIMUM_QUEUE_MEMORY, "1000");
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__ORDERPOLICY, OrderPolicy.KEY.toString());
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__PERSISTENT, "true");
-      csb.addOption(CliStrings.CREATE_ASYNC_EVENT_QUEUE__PARALLEL, "true");
-      
-      executeAndVerifyCommand(csb.getCommandString());
-
-    } catch (IOException e) {
-      e.printStackTrace();
-    } finally {
-      FileUtils.deleteQuietly(jarFile);
-    }
-  }
-  private void createDiskStore(String diskStoreName, 
-      String diskDirs, 
-      String autoCompact, 
-      String allowForceCompaction, 
-      String compactionThreshold, 
-      String duCritical, 
-      String duWarning,
-      String maxOplogSize,
-      String queueSize,
-      String timeInterval,
-      String writeBufferSize) {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.CREATE_DISK_STORE);
-    csb.addOption(CliStrings.CREATE_DISK_STORE__NAME, diskStoreName);
-    csb.addOption(CliStrings.CREATE_DISK_STORE__DIRECTORY_AND_SIZE, diskDirs);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__AUTO_COMPACT, autoCompact);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__ALLOW_FORCE_COMPACTION, allowForceCompaction);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__COMPACTION_THRESHOLD, compactionThreshold);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__DISK_USAGE_CRITICAL_PCT, duCritical);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__DISK_USAGE_WARNING_PCT, duWarning);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__MAX_OPLOG_SIZE, maxOplogSize);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__QUEUE_SIZE, queueSize);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__TIME_INTERVAL, timeInterval);
-    csb.addOptionWithValueCheck(CliStrings.CREATE_DISK_STORE__WRITE_BUFFER_SIZE, writeBufferSize);
-    executeAndVerifyCommand(csb.getCommandString());
-  }
-  
-  private void destroyDiskStore(String diskStoreName, String group) {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.DESTROY_DISK_STORE);
-    csb.addOption(CliStrings.DESTROY_DISK_STORE__NAME, diskStoreName);
-    csb.addOptionWithValueCheck(CliStrings.DESTROY_DISK_STORE__GROUP, group);
-    executeAndVerifyCommand(csb.toString());
-  }
-  public void createIndex(String indexName, String expression, String regionName, String group) {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.CREATE_INDEX);
-    csb.addOption(CliStrings.CREATE_INDEX__NAME, indexName);
-    csb.addOption(CliStrings.CREATE_INDEX__EXPRESSION, expression);
-    csb.addOption(CliStrings.CREATE_INDEX__REGION, regionName);
-    executeAndVerifyCommand(csb.getCommandString());
-  }
-
-  public void destoyIndex(String indexName, String regionName, String group) {
-    if (StringUtils.isBlank(indexName) && StringUtils.isBlank(regionName) && StringUtils.isBlank(group)) {
-      return;
-    }
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.DESTROY_INDEX);
-    if (!StringUtils.isBlank(indexName)) {
-      csb.addOption(CliStrings.DESTROY_INDEX__NAME, indexName);
-    }
-
-    if (!StringUtils.isBlank(regionName)) {
-      csb.addOption(CliStrings.DESTROY_INDEX__REGION, regionName);
-    }
-
-    if (!StringUtils.isBlank(group)) {
-      csb.addOption(CliStrings.DESTROY_INDEX__GROUP, group);
-    }
-    executeAndVerifyCommand(csb.getCommandString());
-  }
-
-  public void createAndDeployJar(String jarName) {
-    File newDeployableJarFile = new File(jarName);
-    try {
-      this.classBuilder.writeJarFromName("ShareConfigClass", newDeployableJarFile);
-      CommandStringBuilder csb = new CommandStringBuilder(CliStrings.DEPLOY);
-      csb.addOption(CliStrings.DEPLOY__JAR, jarName);
-      executeAndVerifyCommand(csb.getCommandString());
-      jarFileNames.add(jarName);
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-  }
-
-  public void deleteSavedJarFiles() {
-    try {
-      FileUtil.deleteMatching(new File("."), "^" + JarDeployer.JAR_PREFIX + "Deploy1.*#\\d++$");
-      FileUtil.delete(new File("Deploy1.jar"));
-    } catch (IOException ioe) {
-      ioe.printStackTrace();
-    }
-  }
-
-  public Object[] setup() {
-    disconnectAllFromDS();
-    final int [] ports = AvailablePortHelper.getRandomAvailableTCPPorts(3);
-    final int locator1Port = ports[0];
-    final String locator1Name = "locator1-" + locator1Port;
-    VM locatorAndMgr = Host.getHost(0).getVM(3);
-
-    Object[] result = (Object[]) locatorAndMgr.invoke(new SerializableCallable() {
-      @Override
-      public Object call() {
-        int httpPort;
-        int jmxPort;
-        String jmxHost;
-
-        try {
-          jmxHost = InetAddress.getLocalHost().getHostName();
-        }
-        catch (UnknownHostException ignore) {
-          jmxHost = "localhost";
-        }
-
-        final int[] ports = AvailablePortHelper.getRandomAvailableTCPPorts(2);
-
-        jmxPort = ports[0];
-        httpPort = ports[1];
-
-        final File locatorLogFile = new File("locator-" + locator1Port + ".log");
-
-        final Properties locatorProps = new Properties();
-        locatorProps.setProperty(DistributionConfig.NAME_NAME, locator1Name);
-        locatorProps.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
-        locatorProps.setProperty(DistributionConfig.LOG_LEVEL_NAME, "config");
-        locatorProps.setProperty(DistributionConfig.ENABLE_CLUSTER_CONFIGURATION_NAME, "true");
-        locatorProps.setProperty(DistributionConfig.JMX_MANAGER_NAME, "true");
-        locatorProps.setProperty(DistributionConfig.JMX_MANAGER_START_NAME, "true");
-        locatorProps.setProperty(DistributionConfig.JMX_MANAGER_BIND_ADDRESS_NAME, String.valueOf(jmxHost));
-        locatorProps.setProperty(DistributionConfig.JMX_MANAGER_PORT_NAME, String.valueOf(jmxPort));
-        locatorProps.setProperty(DistributionConfig.HTTP_SERVICE_PORT_NAME, String.valueOf(httpPort));
-
-        try {
-          final InternalLocator locator = (InternalLocator) Locator.startLocatorAndDS(locator1Port, locatorLogFile, null,
-              locatorProps);
-          WaitCriterion wc = new WaitCriterion() {
-            @Override
-            public boolean done() {
-              return locator.isSharedConfigurationRunning();
-            }
-
-            @Override
-            public String description() {
-              return "Waiting for shared configuration to be started";
-            }
-          };
-          waitForCriterion(wc, TIMEOUT, INTERVAL, true);
-        } catch (IOException ioex) {
-          fail("Unable to create a locator with a shared configuration");
-        }
-
-        final Object[] result = new Object[4];
-        result[0] = locator1Port;
-        result[1] = jmxHost;
-        result[2] = jmxPort;
-        result[3] = httpPort;
-        return result;
-      }
-    });
-
-    HeadlessGfsh gfsh = getDefaultShell();
-    String jmxHost = (String)result[1];
-    int jmxPort = (Integer)result[2];
-    int httpPort = (Integer)result[3];
-
-    shellConnect(jmxHost, jmxPort, httpPort, gfsh);
-    // Create a cache in VM 1
-    VM dataMember = Host.getHost(0).getVM(1);
-    dataMember.invoke(new SerializableCallable() {
-      @Override
-      public Object call() {
-        Properties localProps = new Properties();
-        localProps.setProperty(DistributionConfig.MCAST_PORT_NAME, "0");
-        localProps.setProperty(DistributionConfig.LOCATORS_NAME, "localhost:" + locator1Port);
-        localProps.setProperty(DistributionConfig.NAME_NAME, "DataMember");
-        getSystem(localProps);
-        Cache cache = getCache();
-        assertNotNull(cache);
-        return CliUtil.getAllNormalMembers(cache);
-      }
-    });
-    return result;
-  }
-
-  private void shutdownAll() throws IOException {
-    VM locatorAndMgr = Host.getHost(0).getVM(3);
-    locatorAndMgr.invoke(new SerializableCallable() {
-      /**
-       * 
-       */
-      private static final long serialVersionUID = 1L;
-
-      @Override
-      public Object call() throws Exception {
-        GemFireCacheImpl cache = (GemFireCacheImpl)CacheFactory.getAnyInstance();
-        ShutdownAllRequest.send(cache.getDistributedSystem().getDistributionManager(), -1);
-        return null;
-      }
-    });
-
-    locatorAndMgr.invoke(SharedConfigurationDUnitTest.locatorCleanup);
-    //Clean up the directories
-    if (!serverNames.isEmpty()) {
-      for (String serverName : serverNames) {
-        final File serverDir = new File(serverName);
-        FileUtils.cleanDirectory(serverDir);
-        FileUtils.deleteDirectory(serverDir);
-      }
-    }
-    serverNames.clear();
-    serverNames = null;
-  }
-
-  private void verifyRegionCreateOnAllMembers(String regionName) {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.DESCRIBE_REGION);
-    csb.addOption(CliStrings.DESCRIBE_REGION__NAME, regionName);
-    CommandResult cmdResult = executeCommand(csb.getCommandString());
-    String resultAsString = commandResultToString(cmdResult);
-
-    for (String serverName : serverNames) {
-      assertTrue(resultAsString.contains(serverName));
-    }
-  }     
-
-  private void verifyIndexCreationOnAllMembers(String indexName) {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.LIST_INDEX);
-    CommandResult cmdResult = executeCommand(csb.getCommandString());
-    String resultAsString = commandResultToString(cmdResult);
-
-    for (String serverName : serverNames) {
-      assertTrue(resultAsString.contains(serverName));
-    }
-  }
-  
-  private void verifyAsyncEventQueueCreation() {
-    CommandStringBuilder csb = new CommandStringBuilder(CliStrings.LIST_ASYNC_EVENT_QUEUES);
-    CommandResult cmdResult = executeCommand(csb.toString());
-    String resultAsString = commandResultToString(cmdResult);
-    
-    for (String serverName : serverNames) {
-      assertTrue(resultAsString.contains(serverName));
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-common/build.gradle
----------------------------------------------------------------------
diff --git a/gemfire-common/build.gradle b/gemfire-common/build.gradle
deleted file mode 100755
index 2b6d9c7..0000000
--- a/gemfire-common/build.gradle
+++ /dev/null
@@ -1,20 +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.
- */
-
-dependencies {
-  testCompile project(':gemfire-junit')
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-common/src/main/java/com/gemstone/gemfire/annotations/Experimental.java
----------------------------------------------------------------------
diff --git a/gemfire-common/src/main/java/com/gemstone/gemfire/annotations/Experimental.java b/gemfire-common/src/main/java/com/gemstone/gemfire/annotations/Experimental.java
deleted file mode 100755
index 0ce94a1..0000000
--- a/gemfire-common/src/main/java/com/gemstone/gemfire/annotations/Experimental.java
+++ /dev/null
@@ -1,56 +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.annotations;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Signifies that a public API (public class, method or field) is subject to
- * incompatible changes, or even removal, in a future release. An API bearing
- * this annotation is exempt from any compatibility guarantees made by its
- * containing library. 
- * 
- * <p>Note that the presence of this annotation implies nothing
- * about the quality or performance of the API in question, only the fact that
- * it is not "API-frozen."
- *
- * <p>It is generally safe for <i>applications</i> to depend on beta APIs, at
- * the cost of some extra work during upgrades. However, it is generally
- * inadvisable for <i>libraries</i> (which get included on users' class paths,
- * outside the library developers' control) to do so.
- * 
- * <p>Inspired by similar annotations in JGroups, Spark, DataflowJavaSDK.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target({
-  ElementType.ANNOTATION_TYPE,
-  ElementType.CONSTRUCTOR, 
-  ElementType.FIELD, 
-  ElementType.METHOD, 
-  ElementType.PACKAGE,
-  ElementType.TYPE})
-public @interface Experimental {
-  
-  /** Optional description */
-  String value() default "";
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/ExperimentalJUnitTest.java
----------------------------------------------------------------------
diff --git a/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/ExperimentalJUnitTest.java b/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/ExperimentalJUnitTest.java
deleted file mode 100755
index 097dca9..0000000
--- a/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/ExperimentalJUnitTest.java
+++ /dev/null
@@ -1,199 +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.annotations;
-
-import static org.assertj.core.api.Assertions.*;
-
-import java.lang.reflect.AnnotatedElement;
-
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-import com.gemstone.gemfire.annotations.experimentalpackage.ClassInExperimentalPackage;
-import com.gemstone.gemfire.experimental.nonexperimentalpackage.ClassInNonExperimentalPackage;
-import com.gemstone.gemfire.test.junit.categories.UnitTest;
-
-/**
- * Unit tests for the <tt>Experimental</tt> annotation. Verifies that the
- * annotation can be applied to Interfaces, Classes, Public and Protected
- * Fields, Enums, Enum Constants, Public and Protected Methods, Packages,
- * and Constructors.
- * 
- * @author Kirk Lund
- */
-@Category(UnitTest.class)
-public class ExperimentalJUnitTest {
-
-  private static final String FIELD_NAME = "field";
-  private static final String METHOD_NAME = "method";
-  
-  @Test
-  public void shouldIdentifyExperimentalInterface() throws Exception {
-    assertThat(isExperimental(RegularInterface.class)).isFalse();
-    assertThat(isExperimental(ExperimentalInterface.class)).isTrue();
-  }
-
-  @Test
-  public void shouldIdentifyExperimentalClass() throws Exception {
-    assertThat(isExperimental(RegularClass.class)).isFalse();
-    assertThat(isExperimental(ExperimentalClass.class)).isTrue();
-  }
-  
-  @Test
-  public void shouldIdentifyExperimentalPublicField() throws Exception {
-    assertThat(isExperimental(RegularPublicField.class.getField(FIELD_NAME))).isFalse();
-    assertThat(isExperimental(ExperimentalPublicField.class.getField(FIELD_NAME))).isTrue();
-  }
-  
-  @Test
-  public void shouldIdentifyExperimentalProtectedField() throws Exception {
-    assertThat(isExperimental(RegularProtectedField.class.getDeclaredField(FIELD_NAME))).isFalse();
-    assertThat(isExperimental(ExperimentalProtectedField.class.getDeclaredField(FIELD_NAME))).isTrue();
-  }
-  
-  @Test
-  public void shouldIdentifyExperimentalEnum() throws Exception {
-    assertThat(isExperimental(RegularEnum.class)).isFalse();
-    assertThat(isExperimental(ExperimentalEnum.class)).isTrue();
-  }
-  
-  @Test
-  public void shouldIdentifyExperimentalEnumConstant() throws Exception {
-    assertThat(isExperimental(RegularEnumInstance.class.getField(RegularEnumInstance.THREE.name()))).isFalse();
-    assertThat(isExperimental(ExperimentalEnumInstance.class.getField(ExperimentalEnumInstance.THREE.name()))).isTrue();
-  }
-
-  @Test
-  public void shouldIdentifyExperimentalPublicMethod() throws Exception {
-    assertThat(isExperimental(RegularPublicMethod.class.getMethod(METHOD_NAME))).isFalse();
-    assertThat(isExperimental(ExperimentalPublicMethod.class.getMethod(METHOD_NAME))).isTrue();
-  }
-
-  @Test
-  public void shouldIdentifyExperimentalProtectedMethod() throws Exception {
-    assertThat(isExperimental(RegularProtectedMethod.class.getDeclaredMethod(METHOD_NAME))).isFalse();
-    assertThat(isExperimental(ExperimentalProtectedMethod.class.getDeclaredMethod(METHOD_NAME))).isTrue();
-  }
-
-  @Test
-  public void shouldIdentifyExperimentalPackage() throws Exception {
-    assertThat(isExperimental(ClassInNonExperimentalPackage.class.getPackage())).isFalse();
-    assertThat(isExperimental(ClassInExperimentalPackage.class.getPackage())).isTrue();
-  }
-  
-  @Test
-  public void shouldIdentifyExperimentalPublicConstructor() throws Exception {
-    assertThat(isExperimental(RegularPublicConstructor.class.getConstructor())).isFalse();
-    assertThat(isExperimental(ExperimentalPublicConstructor.class.getConstructor())).isTrue();
-  }
-
-  @Test
-  public void shouldIdentifyExperimentalProtectedConstructor() throws Exception {
-    assertThat(isExperimental(RegularProtectedConstructor.class.getConstructor())).isFalse();
-    assertThat(isExperimental(ExperimentalProtectedConstructor.class.getConstructor())).isTrue();
-  }
-
-  private static boolean isExperimental(final AnnotatedElement element) {
-    return element.getAnnotation(Experimental.class) != null;
-  }
-  
-  public static interface RegularInterface {
-  }
-  @Experimental("This is an experimental interface")
-  public static interface ExperimentalInterface {
-  }
-
-  public static class RegularClass {
-  }
-  @Experimental("This is an experimental class")
-  public static class ExperimentalClass {
-  }
-
-  public static class RegularPublicField {
-    public final boolean field = false;
-  }
-  public static class ExperimentalPublicField {
-    @Experimental("This is an experimental public field")
-    public final boolean field = false;
-  }
-  
-  public static class RegularProtectedField {
-    protected final boolean field = false;
-  }
-  public static class ExperimentalProtectedField {
-    @Experimental("This is an experimental protected field")
-    protected final boolean field = false;
-  }
-
-  public static enum RegularEnum {
-    ONE, TWO, THREE
-  }
-  @Experimental("This is an experimental enum")
-  public static enum ExperimentalEnum {
-    ONE, TWO, THREE
-  }
-
-  public static enum RegularEnumInstance {
-    ONE, TWO, THREE
-  }
-  public static enum ExperimentalEnumInstance {
-    ONE, 
-    TWO, 
-    @Experimental("This is an experimental enum constant")
-    THREE
-  }
-  
-  public static class RegularPublicMethod {
-    public void method() {
-    }
-  }
-  public static class ExperimentalPublicMethod {
-    @Experimental("This is an experimental public method")
-    public void method() {
-    }
-  }
-
-  public static class RegularProtectedMethod {
-    public void method() {
-    }
-  }
-  public static class ExperimentalProtectedMethod {
-    @Experimental("This is an experimental protected method")
-    protected void method() {
-    }
-  }
-  
-  public static class RegularPublicConstructor {
-    public RegularPublicConstructor() {
-    }
-  }
-  public static class ExperimentalPublicConstructor {
-    @Experimental("This is an experimental public constructor")
-    public ExperimentalPublicConstructor() {
-    }
-  }
-
-  public static class RegularProtectedConstructor {
-    public RegularProtectedConstructor() {
-    }
-  }
-  public static class ExperimentalProtectedConstructor {
-    @Experimental("This is an experimental protected constructor")
-    public ExperimentalProtectedConstructor() {
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/experimentalpackage/ClassInExperimentalPackage.java
----------------------------------------------------------------------
diff --git a/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/experimentalpackage/ClassInExperimentalPackage.java b/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/experimentalpackage/ClassInExperimentalPackage.java
deleted file mode 100755
index de0a09f..0000000
--- a/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/experimentalpackage/ClassInExperimentalPackage.java
+++ /dev/null
@@ -1,27 +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.annotations.experimentalpackage;
-
-/**
- * Used by <tt>ExperimentalJUnitTest</tt>. This is a class in an
- * <tt>Experimental</tt> package.
- * 
- * @author Kirk Lund
- * @see com.gemstone.gemfire.annotations.ExperimentalJUnitTest
- */
-public class ClassInExperimentalPackage {
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/experimentalpackage/package-info.java
----------------------------------------------------------------------
diff --git a/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/experimentalpackage/package-info.java b/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/experimentalpackage/package-info.java
deleted file mode 100755
index d723092..0000000
--- a/gemfire-common/src/test/java/com/gemstone/gemfire/annotations/experimentalpackage/package-info.java
+++ /dev/null
@@ -1,27 +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.
- */
-/**
- * Used by <tt>ExperimentalJUnitTest</tt>. This is an <tt>Experimental</tt> 
- * package.
- * 
- * @author Kirk Lund
- * @see com.gemstone.gemfire.annotations.ExperimentalJUnitTest
- */
-@Experimental("This is an experimental package")
-package com.gemstone.gemfire.annotations.experimentalpackage;
-
-import com.gemstone.gemfire.annotations.Experimental;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-common/src/test/java/com/gemstone/gemfire/experimental/nonexperimentalpackage/ClassInNonExperimentalPackage.java
----------------------------------------------------------------------
diff --git a/gemfire-common/src/test/java/com/gemstone/gemfire/experimental/nonexperimentalpackage/ClassInNonExperimentalPackage.java b/gemfire-common/src/test/java/com/gemstone/gemfire/experimental/nonexperimentalpackage/ClassInNonExperimentalPackage.java
deleted file mode 100755
index 3fefc9c..0000000
--- a/gemfire-common/src/test/java/com/gemstone/gemfire/experimental/nonexperimentalpackage/ClassInNonExperimentalPackage.java
+++ /dev/null
@@ -1,27 +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.experimental.nonexperimentalpackage;
-
-/**
- * Used by <tt>ExperimentalJUnitTest</tt>. This is a class in an
- * <tt>Experimental</tt> package.
- * 
- * @author Kirk Lund
- * @see com.gemstone.gemfire.annotations.ExperimentalJUnitTest
- */
-public class ClassInNonExperimentalPackage {
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-common/src/test/java/com/gemstone/gemfire/experimental/nonexperimentalpackage/package-info.java
----------------------------------------------------------------------
diff --git a/gemfire-common/src/test/java/com/gemstone/gemfire/experimental/nonexperimentalpackage/package-info.java b/gemfire-common/src/test/java/com/gemstone/gemfire/experimental/nonexperimentalpackage/package-info.java
deleted file mode 100755
index a41fd36..0000000
--- a/gemfire-common/src/test/java/com/gemstone/gemfire/experimental/nonexperimentalpackage/package-info.java
+++ /dev/null
@@ -1,24 +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.
- */
-/**
- * Used by <tt>ExperimentalJUnitTest</tt>. This is a non-<tt>Experimental</tt> 
- * package.
- * 
- * @author Kirk Lund
- * @see com.gemstone.gemfire.annotations.ExperimentalJUnitTest
- */
-package com.gemstone.gemfire.experimental.nonexperimentalpackage;

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/build.gradle
----------------------------------------------------------------------
diff --git a/gemfire-core/build.gradle b/gemfire-core/build.gradle
deleted file mode 100755
index d1a3854..0000000
--- a/gemfire-core/build.gradle
+++ /dev/null
@@ -1,204 +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.
- */
-
-sourceSets {
-  jca {
-    compileClasspath += configurations.compile
-    runtimeClasspath += configurations.runtime
-  }
-}
-
-configurations {
-  //declaring new configuration that will be used to associate with artifacts
-  archives
-}
-
-dependencies {
-   // Source Dependencies
-  // External 
-  provided files("${System.getProperty('java.home')}/../lib/tools.jar")
-  compile 'org.jgroups:jgroups:3.6.7.Final'
-  compile 'antlr:antlr:' + project.'antlr.version'
-  compile 'com.fasterxml.jackson.core:jackson-annotations:' + project.'jackson.version'
-  compile 'com.fasterxml.jackson.core:jackson-core:' + project.'jackson.version'
-  compile 'com.fasterxml.jackson.core:jackson-databind:' + project.'jackson.version'
-  provided 'com.google.guava:guava:' + project.'guava.version'
-  compile 'commons-io:commons-io:' + project.'commons-io.version'
-  compile 'commons-lang:commons-lang:' + project.'commons-lang.version'
-  compile 'commons-logging:commons-logging:' + project.'commons-logging.version'
-  compile 'commons-modeler:commons-modeler:' + project.'commons-modeler.version'
-  compile 'io.netty:netty-all:' + project.'netty-all.version'
-  compile 'it.unimi.dsi:fastutil:' + project.'fastutil.version'
-  compile 'javax.activation:activation:' + project.'activation.version'
-  compile 'javax.mail:javax.mail-api:' + project.'javax.mail-api.version'
-  compile 'javax.resource:javax.resource-api:' + project.'javax.resource-api.version'
-  compile 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version'
-  compile 'javax.transaction:javax.transaction-api:' + project.'javax.transaction-api.version'
-  compile 'mx4j:mx4j:' + project.'mx4j.version'
-  compile 'mx4j:mx4j-remote:' + project.'mx4j.version'
-  compile 'mx4j:mx4j-tools:' + project.'mx4j.version'
-  compile 'net.java.dev.jna:jna:' + project.'jna.version'
-  compile 'jline:jline:' + project.'jline.version'
-  provided 'org.apache.hadoop:hadoop-common:' + project.'hadoop.version'
-  provided 'org.apache.hadoop:hadoop-annotations:' + project.'hadoop.version'
-  provided 'org.apache.hadoop:hadoop-hdfs:' + project.'hadoop.version'
-  provided 'org.apache.hadoop:hadoop-mapreduce-client-core:' + project.'hadoop.version'
-  compile 'org.apache.hbase:hbase:' + project.'hbase.version'
-  compile 'org.apache.logging.log4j:log4j-api:' + project.'log4j.version'
-  compile 'org.apache.logging.log4j:log4j-core:' + project.'log4j.version'
-  runtime 'org.apache.logging.log4j:log4j-slf4j-impl:' + project.'log4j.version'
-  runtime 'org.apache.logging.log4j:log4j-jcl:' + project.'log4j.version'
-  runtime 'org.apache.logging.log4j:log4j-jul:' + project.'log4j.version'
-  compile 'org.eclipse.jetty:jetty-http:' + project.'jetty.version'
-  compile 'org.eclipse.jetty:jetty-io:' + project.'jetty.version'
-  compile 'org.eclipse.jetty:jetty-security:' + project.'jetty.version'
-  compile 'org.eclipse.jetty:jetty-server:' + project.'jetty.version'
-  compile 'org.eclipse.jetty:jetty-servlet:' + project.'jetty.version'
-  compile 'org.eclipse.jetty:jetty-util:' + project.'jetty.version'
-  compile 'org.eclipse.jetty:jetty-webapp:' + project.'jetty.version'
-  compile 'org.eclipse.jetty:jetty-xml:' + project.'jetty.version'
-  compile 'org.fusesource.jansi:jansi:' + project.'jansi.version'
-  compile 'org.slf4j:slf4j-api:' + project.'slf4j-api.version'
-  compile 'org.springframework.data:spring-data-commons:' + project.'spring-data-commons.version'
-  provided 'org.springframework.data:spring-data-gemfire:' + project.'spring-data-gemfire.version'
-  compile 'org.springframework:spring-tx:' + project.'springframework.version'
-  compile 'org.springframework.shell:spring-shell:' + project.'spring-shell.version'
-  compile 'org.xerial.snappy:snappy-java:' + project.'snappy-java.version'
-  compile 'org.apache.hbase:hbase:' + project.'hbase.version'
- 
-  compile project(':gemfire-common')
-  compile project(':gemfire-joptsimple')
-  compile project(':gemfire-json')
-  
-  jcaCompile sourceSets.main.output
-
-  testCompile project(':gemfire-junit')
-
-  // Test Dependencies
-  // External
-  testCompile 'org.apache.bcel:bcel:' + project.'bcel.version'
-  testRuntime 'org.apache.derby:derby:' + project.'derby.version'
-  testRuntime 'org.apache.hadoop:hadoop-auth:' + project.'hadoop.version'
-  testCompile 'org.mockito:mockito-core:' + project.'mockito-core.version'
-  testRuntime 'commons-collections:commons-collections:' + project.'commons-collections.version'
-  testRuntime 'commons-configuration:commons-configuration:' + project.'commons-configuration.version'
-  testRuntime 'commons-io:commons-io:' + project.'commons-io.version'
-  testCompile 'net.spy:spymemcached:' + project.'spymemcached.version'
-  testCompile 'redis.clients:jedis:' + project.'jedis.version'
-
-  testCompile 'org.powermock:powermock-core:' + project.'powermock.version'
-  testCompile 'org.powermock:powermock-module-junit4:' + project.'powermock.version'
-  testCompile 'org.powermock:powermock-api-mockito:' + project.'powermock.version'
-}
-
-def generatedResources = "$buildDir/generated-resources/main"
-
-sourceSets {
-  main {
-    output.dir(generatedResources, builtBy: 'createVersionPropertiesFile')
-  }
-}
- 
-// Creates the version properties file and writes it to the classes dir
-task createVersionPropertiesFile {
-  def propertiesFile = file(generatedResources + "/com/gemstone/gemfire/internal/GemFireVersion.properties");
-  outputs.file propertiesFile
-  inputs.dir compileJava.destinationDir
-
-  doLast {
-
-    try {
-      def grgit = org.ajoberstar.grgit.Grgit.open(currentDir: projectDir)
-      ext.branch = grgit.branch.getCurrent().name
-      ext.commitId = grgit.head().id
-      ext.sourceDate = grgit.head().getDate().format('yyyy-MM-dd HH:mm:ss Z')
-      grgit.close()
-    } catch (Exception e) {
-      logger.warn( '***** Unable to find Git workspace. Using default version information *****' )
-      ext.branch = 'UNKNOWN'
-      ext.commitId = 'UNKNOWN'
-      ext.sourceDate = new Date().format('yyyy-MM-dd HH:mm:ss Z')
-    }
-
-    ext.osArch = System.getProperty('os.arch')
-    ext.osName = System.getProperty('os.name')
-    ext.osVersion = System.getProperty('os.version')
-    ext.buildDate = new Date().format('yyyy-MM-dd HH:mm:ss Z')
-    ext.buildNumber = new Date().format('MMddyy')
-    ext.jdkVersion = System.getProperty('java.version')
-
-    def props = [
-      "Product-Name"      : "Apache Geode (incubating)",
-      "Product-Version"   : version,
-      "Build-Id"          : System.env.USER + ' ' + ext.buildNumber,
-      "Build-Date"        : ext.buildDate,
-      "Build-Platform"    : ext.osName + ' ' + ext.osVersion + ' ' + ext.osArch,
-      "Build-Java-Version": ext.jdkVersion,
-      "Source-Date"       : ext.sourceDate,
-      "Source-Revision"   : ext.commitId,
-      "Source-Repository" : ext.branch
-    ] as Properties
-
-    propertiesFile.getParentFile().mkdirs();
-    new FileOutputStream(propertiesFile).withStream { fos ->
-      props.store(fos, '')
-    }
-  }
-}
-
-jar {
-
-  from sourceSets.main.output
-  from sourceSets.jca.output
-  
-  exclude 'com/gemstone/gemfire/management/internal/web/**'
-  exclude 'com/gemstone/gemfire/internal/i18n/StringIdResourceBundle_ja.txt'
-  exclude 'com/gemstone/gemfire/admin/doc-files/ds4_0.dtd'
-}
-
-task webJar (type: Jar, dependsOn: classes) {
-  description 'Assembles the jar archive containing the gemfire management web classes.'
-  from sourceSets.main.output
-  baseName 'gemfire-web'
-  include 'com/gemstone/gemfire/management/internal/web/**'
-}
-
-task raJar (type: Jar, dependsOn: classes) {
-  description 'Assembles the jar archive that contains the JCA classes'
-  from sourceSets.jca.output
-  exclude 'com/gemstone/gemfire/ra/**'
-  archiveName 'ra.jar'
-}
-
-task jcaJar (type: Jar, dependsOn: raJar) {
-  description 'Assembles the jar archive that contains the JCA bundle'
-  baseName 'gemfire-jca'
-  extension 'rar'
-  metaInf { from 'src/jca/ra.xml' }
-  from raJar.archivePath
-}
-
-configurations {
-  classesOutput {
-    extendsFrom compile
-    description  'a dependency that exposes the compiled classes'
-  }
-}
-
-dependencies {
-  classesOutput sourceSets.main.output
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/GFConnectionFactoryImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/GFConnectionFactoryImpl.java b/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/GFConnectionFactoryImpl.java
deleted file mode 100644
index d82adfc..0000000
--- a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/GFConnectionFactoryImpl.java
+++ /dev/null
@@ -1,66 +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.internal.ra;
-
-import javax.naming.NamingException;
-import javax.naming.Reference;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionManager;
-import javax.resource.spi.ManagedConnectionFactory;
-
-import com.gemstone.gemfire.ra.GFConnectionFactory;
-/**
- * 
- * @author asif
- *
- */
-public class GFConnectionFactoryImpl implements GFConnectionFactory
-{
-  final private ConnectionManager cm;
-
-  final private ManagedConnectionFactory mcf;
-
-  private Reference ref;
-
-  public GFConnectionFactoryImpl(ManagedConnectionFactory mcf) {
-    this.cm = null;
-    this.mcf = mcf;
-  }
-
-  public GFConnectionFactoryImpl(ConnectionManager cm,
-      ManagedConnectionFactory mcf) {
-    this.cm = cm;
-    this.mcf = mcf;
-  }
-
-  public GFConnectionImpl getConnection() throws ResourceException
-  {
-    return (GFConnectionImpl)cm.allocateConnection(mcf, null);
-  }
-
-  public void setReference(Reference ref)
-  {
-    this.ref = ref;
-
-  }
-
-  public Reference getReference() throws NamingException
-  {
-    return this.ref;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/GFConnectionImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/GFConnectionImpl.java b/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/GFConnectionImpl.java
deleted file mode 100644
index fa439e5..0000000
--- a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/GFConnectionImpl.java
+++ /dev/null
@@ -1,71 +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.internal.ra;
-
-import javax.naming.NamingException;
-import javax.naming.Reference;
-import javax.resource.ResourceException;
-
-import com.gemstone.gemfire.internal.ra.spi.JCAManagedConnection;
-import com.gemstone.gemfire.ra.GFConnection;
-
-/**
- * 
- * @author asif
- *
- */
-public class GFConnectionImpl implements GFConnection
-{
-  private JCAManagedConnection mc;
-
-  private Reference ref;
-
-  public GFConnectionImpl(JCAManagedConnection mc) {
-    this.mc = mc;
-  }
-
-  public void resetManagedConnection(JCAManagedConnection mc)
-  {
-    this.mc = mc;
-  }
-
-  public void close() throws ResourceException
-  {
-    // Check if the connection is associated with a JTA. If yes, then
-    // we should throw an exception on close being invoked.
-    if (this.mc != null) {
-      this.mc.onClose(this);
-    }
-  }
-
-  public void invalidate()
-  {
-    this.mc = null;
-  }
-
-  public void setReference(Reference ref)
-  {
-    this.ref = ref;
-
-  }
-
-  public Reference getReference() throws NamingException
-  {
-    return this.ref;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCALocalTransaction.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCALocalTransaction.java b/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCALocalTransaction.java
deleted file mode 100644
index c3ff6d0..0000000
--- a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCALocalTransaction.java
+++ /dev/null
@@ -1,236 +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.internal.ra.spi;
-
-import javax.resource.ResourceException;
-import javax.resource.spi.LocalTransaction;
-import javax.resource.spi.LocalTransactionException;
-import javax.transaction.SystemException;
-import javax.transaction.TransactionManager;
-
-import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.TransactionId;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.cache.TXStateProxy;
-
-import com.gemstone.gemfire.internal.cache.TXManagerImpl;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * 
- * @author asif
- *
- */
-public class JCALocalTransaction implements LocalTransaction
-{
-  private volatile GemFireCacheImpl cache;
-
-  private volatile TXManagerImpl gfTxMgr;
-
-  private volatile TransactionId tid;
-
-  private static final boolean DEBUG = false;
-
-  private volatile boolean initDone = false;
-
-  JCALocalTransaction(GemFireCacheImpl cache, TXManagerImpl tm) {
-    this.cache = cache;
-    this.gfTxMgr = tm;
-    this.initDone = true;
-    // System.out.println("Asif:JCALocalTransaction:Param contrcutr for tx ="+
-    // this );
-  }
-
-  JCALocalTransaction() {
-    this.cache = null;
-    this.gfTxMgr = null;
-    this.initDone = false;
-    // System.out.println("Asif:JCALocalTransaction:Empty constructor for tx ="+
-    // this );
-  }
-
-  public void begin() throws ResourceException
-  {
-    if (DEBUG) {
-      try {
-        throw new NullPointerException("Asif:JCALocalTransaction:begin");
-      }
-      catch (NullPointerException npe) {
-        npe.printStackTrace();
-      }
-    }
-    try {
-      if (!initDone || this.cache.isClosed()) {
-        this.init();
-      }
-      // System.out.println("JCALocalTransaction:Asif: cache is ="+cache +
-      // " for tx ="+this);
-      LogWriter logger = cache.getLogger();
-      if (logger.fineEnabled()) {
-        logger.fine("JCALocalTransaction::begin:");
-      }
-      TransactionManager tm = cache.getJTATransactionManager();
-      if (this.tid != null) {
-        throw new LocalTransactionException(
-            " A transaction is already in progress");
-      }
-      if (tm != null && tm.getTransaction() != null) {
-        if (logger.fineEnabled()) {
-          logger.fine("JCAManagedConnection: JTA transaction is on");
-        }
-        // This is having a JTA transaction. Assuming ignore jta flag is true,
-        // explicitly being a gemfire transaction.
-        TXStateProxy tsp = this.gfTxMgr.getTXState();
-        if (tsp == null) {
-          this.gfTxMgr.begin();
-          tsp = this.gfTxMgr.getTXState();
-          tsp.setJCATransaction();
-          this.tid = tsp.getTransactionId();
-          if (logger.fineEnabled()) {
-            logger.fine("JCALocalTransaction:begun GFE transaction");
-          }
-        }
-        else {
-          throw new LocalTransactionException(
-              "GemFire is already associated with a transaction");
-        }
-      }
-      else {
-        if (logger.fineEnabled()) {
-          logger.fine("JCAManagedConnection: JTA Transaction does not exist.");
-        }
-      }
-    }
-    catch (SystemException e) {
-      // this.onError();
-      throw new ResourceException(e);
-    }
-    // Not to be invoked for local transactions managed by the container
-    // Iterator<ConnectionEventListener> itr = this.listeners.iterator();
-    // ConnectionEvent ce = new ConnectionEvent(this,
-    // ConnectionEvent.LOCAL_TRANSACTION_STARTED);
-    // while (itr.hasNext()) {
-    // itr.next().localTransactionStarted(ce);
-    // }
-
-  }
-
-  public void commit() throws ResourceException
-  {
-    if (DEBUG) {
-      try {
-        throw new NullPointerException("Asif:JCALocalTransaction:commit");
-      }
-      catch (NullPointerException npe) {
-        npe.printStackTrace();
-      }
-    }
-    LogWriter logger = cache.getLogger();
-    if (logger.fineEnabled()) {
-      logger.fine("JCALocalTransaction:invoked commit");
-    }
-    TXStateProxy tsp = this.gfTxMgr.getTXState();
-    if (tsp != null && this.tid != tsp.getTransactionId()) {
-      throw new IllegalStateException(
-          "Local Transaction associated with Tid = " + this.tid
-              + " attempting to commit a different transaction");
-    }
-    try {
-      this.gfTxMgr.commit();
-      this.tid = null;
-    }
-    catch (Exception e) {
-      throw new LocalTransactionException(e.toString());
-    }
-    // Iterator<ConnectionEventListener> itr = this.listeners.iterator();
-    // ConnectionEvent ce = new
-    // ConnectionEvent(this,ConnectionEvent.LOCAL_TRANSACTION_COMMITTED);
-    // while( itr.hasNext()) {
-    // itr.next().localTransactionCommitted(ce);
-    // }
-
-  }
-
-  public void rollback() throws ResourceException
-  {
-    if (DEBUG) {
-      try {
-        throw new NullPointerException("Asif:JJCALocalTransaction:rollback");
-      }
-      catch (NullPointerException npe) {
-        npe.printStackTrace();
-      }
-    }
-    TXStateProxy tsp = this.gfTxMgr.getTXState();
-    if (tsp != null && this.tid != tsp.getTransactionId()) {
-      throw new IllegalStateException(
-          "Local Transaction associated with Tid = " + this.tid
-              + " attempting to commit a different transaction");
-    }
-    LogWriter logger = cache.getLogger();
-    if (logger.fineEnabled()) {
-      logger.fine("JCALocalTransaction:invoked rollback");
-    }
-    try {
-      this.gfTxMgr.rollback();
-    }
-    catch (IllegalStateException ise) {
-      // It is possible that the GFE transaction has already been rolled back.
-      if (ise
-          .getMessage()
-          .equals(
-              LocalizedStrings.TXManagerImpl_THREAD_DOES_NOT_HAVE_AN_ACTIVE_TRANSACTION
-                  .toLocalizedString())) {
-        // /ignore;
-      }
-      else {
-        throw new ResourceException(ise);
-      }
-    }
-    catch (Exception e) {
-      throw new ResourceException(e);
-    }
-    finally {
-      this.tid = null;
-    }
-    // Iterator<ConnectionEventListener> itr = this.listeners.iterator();
-    // ConnectionEvent ce = new ConnectionEvent(this,
-    // ConnectionEvent.LOCAL_TRANSACTION_ROLLEDBACK);
-    // while (itr.hasNext()) {
-    // itr.next().localTransactionRolledback(ce);
-    // }
-
-  }
-
-  private void init() throws SystemException
-  {
-    this.cache = (GemFireCacheImpl)CacheFactory.getAnyInstance();
-    LogWriter logger = this.cache.getLogger();
-    if (logger.fineEnabled()) {
-      logger.fine("JCAManagedConnection:init. Inside init");
-    }
-    gfTxMgr = cache.getTxManager();
-    this.initDone = true;
-  }
-
-  boolean transactionInProgress()
-  {
-    return this.tid != null;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnection.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnection.java b/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnection.java
deleted file mode 100644
index c32c843..0000000
--- a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnection.java
+++ /dev/null
@@ -1,299 +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.internal.ra.spi;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import javax.resource.NotSupportedException;
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionEvent;
-import javax.resource.spi.ConnectionEventListener;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.LocalTransaction;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionMetaData;
-import javax.security.auth.Subject;
-import javax.transaction.SystemException;
-import javax.transaction.xa.XAResource;
-
-import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.cache.TXManagerImpl;
-import com.gemstone.gemfire.internal.ra.GFConnectionImpl;
-
-/**
- * 
- * @author asif
- *
- */
-public class JCAManagedConnection implements ManagedConnection
-
-{
-  private final List<ConnectionEventListener> listeners;
-
-  private volatile TXManagerImpl gfTxMgr;
-
-  // private volatile TransactionId currentTxID;
-  private volatile GemFireCacheImpl cache;
-
-  private volatile boolean initDone = false;
-
-  private volatile PrintWriter logger;
-
-  private JCAManagedConnectionFactory factory;
-
-  private volatile Set<GFConnectionImpl> connections;
-
-  private volatile JCALocalTransaction localTran;
-
-  private final static boolean DEBUG = false;
-
-  public JCAManagedConnection(JCAManagedConnectionFactory fact) {
-    this.factory = fact;
-    this.listeners = Collections
-        .<ConnectionEventListener> synchronizedList(new ArrayList<ConnectionEventListener>());
-    this.localTran = new JCALocalTransaction();
-    this.connections = Collections
-        .<GFConnectionImpl> synchronizedSet(new HashSet<GFConnectionImpl>());
-  }
-
-  public void addConnectionEventListener(ConnectionEventListener listener)
-  {
-    this.listeners.add(listener);
-
-  }
-
-  public void associateConnection(Object conn) throws ResourceException
-  {
-    if (!(conn instanceof GFConnectionImpl)) {
-      throw new ResourceException("Connection is not of type GFConnection");
-    }
-
-    ((GFConnectionImpl)conn).resetManagedConnection(this);
-    this.connections.add((GFConnectionImpl)conn);
-  }
-
-  public void cleanup() throws ResourceException
-  {
-    if (DEBUG) {
-      try {
-        throw new NullPointerException("Asif:JCAManagedConnection:cleanup");
-      }
-      catch (NullPointerException npe) {
-        npe.printStackTrace();
-      }
-    }
-    synchronized (this.connections) {
-      Iterator<GFConnectionImpl> connsItr = this.connections.iterator();
-      while (connsItr.hasNext()) {
-        GFConnectionImpl conn = connsItr.next();
-        conn.invalidate();
-        connsItr.remove();
-      }
-    }
-    if (this.localTran == null || this.localTran.transactionInProgress()) {
-      if (this.initDone && !this.cache.isClosed()) {
-        this.localTran = new JCALocalTransaction(cache, gfTxMgr);
-      }
-      else {
-        this.localTran = new JCALocalTransaction();
-      }
-    }
-
-  }
-
-  public void destroy() throws ResourceException
-  {
-    if (DEBUG) {
-      try {
-        throw new NullPointerException("Asif:JCAManagedConnection:destroy");
-      }
-      catch (NullPointerException npe) {
-        npe.printStackTrace();
-      }
-    }
-    synchronized (this.connections) {
-      Iterator<GFConnectionImpl> connsItr = this.connections.iterator();
-      while (connsItr.hasNext()) {
-        GFConnectionImpl conn = connsItr.next();
-        conn.invalidate();
-        connsItr.remove();
-      }
-    }
-    this.gfTxMgr = null;
-    this.cache = null;
-    this.localTran = null;
-    this.listeners.clear();
-  }
-
-  public Object getConnection(Subject arg0, ConnectionRequestInfo arg1)
-      throws ResourceException
-  {
-    if (DEBUG) {
-      try {
-        throw new NullPointerException(
-            "Asif:JCAManagedConnection:getConnection");
-      }
-      catch (NullPointerException npe) {
-        npe.printStackTrace();
-      }
-    }
-    try {
-      if (!this.initDone || this.cache.isClosed()) {
-        init();
-      }
-      LogWriter logger = this.cache.getLogger();
-      if (logger.fineEnabled()) {
-        logger
-            .fine("JCAManagedConnection:getConnection. Returning new Connection");
-      }
-
-      GFConnectionImpl conn = new GFConnectionImpl(this);
-      this.connections.add(conn);
-      return conn;
-    }
-    catch (SystemException e) {
-      this.onError(e);
-      throw new ResourceException("GemFire Resource unavailable", e);
-    }
-  }
-
-  private void init() throws SystemException
-  {
-    this.cache = (GemFireCacheImpl)CacheFactory.getAnyInstance();
-    LogWriter logger = this.cache.getLogger();
-    if (logger.fineEnabled()) {
-      logger.fine("JCAManagedConnection:init. Inside init");
-    }
-    gfTxMgr = cache.getTxManager();
-    this.initDone = true;
-  }
-
-  public LocalTransaction getLocalTransaction() throws ResourceException
-  {
-    if (DEBUG) {
-      try {
-        throw new NullPointerException(
-            "Asif:JCAManagedConnection:getLocalTransaction");
-      }
-      catch (NullPointerException npe) {
-        npe.printStackTrace();
-      }
-    }
-
-    return this.localTran;
-  }
-
-  public PrintWriter getLogWriter() throws ResourceException
-  {
-    return this.logger;
-  }
-
-  public ManagedConnectionMetaData getMetaData() throws ResourceException
-  {
-    if (DEBUG) {
-      try {
-        throw new NullPointerException("Asif:JCAManagedConnection:getMetaData");
-      }
-      catch (NullPointerException npe) {
-        npe.printStackTrace();
-      }
-    }
-    if (this.initDone && !this.cache.isClosed()) {
-      LogWriter logger = this.cache.getLogger();
-      if (logger.fineEnabled()) {
-        logger.fine("JCAManagedConnection:getMetaData");
-      }
-    }
-    return new JCAManagedConnectionMetaData(this.factory.getProductName(),
-        this.factory.getVersion(), this.factory.getUserName());
-  }
-
-  public XAResource getXAResource() throws ResourceException
-  {
-    throw new NotSupportedException("XA Transaction not supported");
-  }
-
-  public void removeConnectionEventListener(ConnectionEventListener arg0)
-  {
-    this.listeners.remove(arg0);
-
-  }
-
-  public void setLogWriter(PrintWriter logger) throws ResourceException
-  {
-    this.logger = logger;
-  }
-
-  private void onError(Exception e)
-  {
-
-    this.localTran = null;
-
-    synchronized (this.connections) {
-      Iterator<GFConnectionImpl> connsItr = this.connections.iterator();
-      while (connsItr.hasNext()) {
-        GFConnectionImpl conn = connsItr.next();
-        conn.invalidate();
-        synchronized (this.listeners) {
-          Iterator<ConnectionEventListener> itr = this.listeners.iterator();
-          ConnectionEvent ce = new ConnectionEvent(this,
-              ConnectionEvent.CONNECTION_ERROR_OCCURRED, e);
-          ce.setConnectionHandle(conn);
-          while (itr.hasNext()) {
-            itr.next().connectionErrorOccurred(ce);
-          }
-        }
-        connsItr.remove();
-      }
-    }
-
-  }
-
-  public void onClose(GFConnectionImpl conn) throws ResourceException
-  {
-    conn.invalidate();
-    this.connections.remove(conn);
-    synchronized (this.listeners) {
-      Iterator<ConnectionEventListener> itr = this.listeners.iterator();
-      ConnectionEvent ce = new ConnectionEvent(this,
-          ConnectionEvent.CONNECTION_CLOSED);
-      ce.setConnectionHandle(conn);
-      while (itr.hasNext()) {
-        itr.next().connectionClosed(ce);
-      }
-    }
-    if (this.connections.isEmpty()) {
-      // safe to dissociate this managedconnection so that it can go to pool
-      if (this.initDone && !this.cache.isClosed()) {
-        this.localTran = new JCALocalTransaction(this.cache, this.gfTxMgr);
-      }
-      else {
-        this.localTran = new JCALocalTransaction();
-      }
-    }
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnectionFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnectionFactory.java b/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnectionFactory.java
deleted file mode 100644
index 6911e4e..0000000
--- a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnectionFactory.java
+++ /dev/null
@@ -1,145 +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.internal.ra.spi;
-
-import java.io.PrintWriter;
-import java.util.Set;
-
-import javax.resource.ResourceException;
-import javax.resource.spi.ConnectionManager;
-import javax.resource.spi.ConnectionRequestInfo;
-import javax.resource.spi.ManagedConnection;
-import javax.resource.spi.ManagedConnectionFactory;
-import javax.security.auth.Subject;
-
-import com.gemstone.gemfire.internal.ra.GFConnectionFactoryImpl;
-/**
- * 
- * @author asif
- *
- */
-public class JCAManagedConnectionFactory implements ManagedConnectionFactory
-{
-  private String productName;
-
-  private String version;
-
-  private String user;
-
-  private PrintWriter logger;
-
-  public Object createConnectionFactory() throws ResourceException
-  {
-
-    return new GFConnectionFactoryImpl(this);
-  }
-
-  public Object createConnectionFactory(ConnectionManager cm)
-      throws ResourceException
-  {
-
-    return new GFConnectionFactoryImpl(cm, this);
-  }
-
-  public ManagedConnection createManagedConnection(Subject arg0,
-      ConnectionRequestInfo arg1) throws ResourceException
-  {
-    return new JCAManagedConnection(this);
-
-  }
-
-  public PrintWriter getLogWriter() throws ResourceException
-  {
-
-    return this.logger;
-  }
-
-  public ManagedConnection matchManagedConnections(Set arg0, Subject arg1,
-      ConnectionRequestInfo arg2) throws ResourceException
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public void setLogWriter(PrintWriter logger) throws ResourceException
-  {
-    this.logger = logger;
-
-  }
-
-  public boolean equals(Object obj)
-  {
-    if (obj instanceof JCAManagedConnectionFactory) {
-      return true;
-    }
-    else {
-      return false;
-    }
-  }
-
-  public int hashCode()
-  {
-    return 0;
-  }
-
-  public void setUserName(String user)
-  {
-
-    if (this.logger != null) {
-      logger.println("JCAManagedConnectionFactory::setUserName:. user name is="
-          + user);
-    }
-    this.user = user;
-  }
-
-  public String getUserName()
-  {
-    return this.user;
-  }
-
-  public void setProductName(String name)
-  {
-
-    if (this.logger != null) {
-      logger
-          .println("JCAManagedConnectionFactory::setProductName:. Product name is="
-              + name);
-    }
-    this.productName = name;
-  }
-
-  public String getProductName()
-  {
-    return this.productName;
-  }
-
-  public void setVersion(String version)
-  {
-
-    if (this.logger != null) {
-      logger.println("JCAManagedConnectionFactory::setVersion:. version is="
-          + version);
-    }
-    this.version = version;
-  }
-
-  public String getVersion()
-  {
-    return this.version;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnectionMetaData.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnectionMetaData.java b/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnectionMetaData.java
deleted file mode 100644
index fa23829..0000000
--- a/gemfire-core/src/jca/java/com/gemstone/gemfire/internal/ra/spi/JCAManagedConnectionMetaData.java
+++ /dev/null
@@ -1,67 +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.internal.ra.spi;
-
-import javax.resource.ResourceException;
-import javax.resource.spi.ManagedConnectionMetaData;
-/**
- * 
- * @author asif
- *
- */
-public class JCAManagedConnectionMetaData implements ManagedConnectionMetaData
-{
-  private final String prodName;
-
-  private final String version;
-
-  private final String user;
-
-  public JCAManagedConnectionMetaData(String prodName, String version,
-      String user) {
-    this.prodName = prodName;
-    this.version = version;
-    this.user = user;
-  }
-
-  
-  public String getEISProductName() throws ResourceException
-  {
-    return this.prodName;
-  }
-
-  
-  public String getEISProductVersion() throws ResourceException
-  {
-
-    return this.version;
-  }
-
-  
-  public int getMaxConnections() throws ResourceException
-  {
-
-    return 0;
-  }
-
-  
-  public String getUserName() throws ResourceException
-  {
-    return this.user;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/jca/ra.xml
----------------------------------------------------------------------
diff --git a/gemfire-core/src/jca/ra.xml b/gemfire-core/src/jca/ra.xml
deleted file mode 100644
index 78b4579..0000000
--- a/gemfire-core/src/jca/ra.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-
-<!DOCTYPE connector PUBLIC '-//Sun Microsystems, Inc.//DTD Connector 1.0//EN' 'http://java.sun.com/j2ee/dtds/connector_1_0.dtd'>
-
-<connector>
-    <display-name>GFE JCA Adaptor</display-name>
-    <vendor-name></vendor-name>
-    <spec-version>1.5</spec-version>
-    <eis-type>GFE JCA</eis-type>
-    <version>1.5</version>
-    <resourceadapter>
-        <managedconnectionfactory-class>com.gemstone.gemfire.internal.ra.spi.JCAManagedConnectionFactory</managedconnectionfactory-class>
-                <config-property>
-                    <config-property-name>ProductName</config-property-name>
-                    <config-property-type>java.lang.String</config-property-type>
-                    <config-property-value>GemFire</config-property-value>
-                </config-property>
-                <config-property>
-                    <config-property-name>UserName</config-property-name>
-                    <config-property-type>java.lang.String</config-property-type>
-                    <config-property-value/>
-                </config-property>
-                <config-property>
-                    <config-property-name>Version</config-property-name>
-                    <config-property-type>java.lang.String</config-property-type>
-                    <config-property-value>8.0</config-property-value>
-                </config-property>
-        
-        <connectionfactory-interface>com.gemstone.gemfire.ra.GFConnectionFactory</connectionfactory-interface>
-        <connectionfactory-impl-class>com.gemstone.gemfire.internal.ra.GFConnectionFactoryImpl</connectionfactory-impl-class>
-        <connection-interface>com.gemstone.gemfire.ra.GFConnection</connection-interface>
-        <connection-impl-class>com.gemstone.gemfire.internal.ra.GFConnectionImpl</connection-impl-class>
-        <transaction-support>LocalTransaction</transaction-support>
-        <reauthentication-support>false</reauthentication-support> 
-    </resourceadapter>
-</connector>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/CancelCriterion.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/CancelCriterion.java b/gemfire-core/src/main/java/com/gemstone/gemfire/CancelCriterion.java
deleted file mode 100644
index 175ebe3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/CancelCriterion.java
+++ /dev/null
@@ -1,109 +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;
-
-/**
- * Abstract cancellation proxy for cancelling an operation, esp. a thread.
- * 
- * Creators of services or threads should implement a subclass of CancelCriterion,
- * and implement the two methods - cancelInProgress, and generateCancelledException(e).
- * 
- * Code inside the service can check to see if the service is cancelled by calling
- * {@link #checkCancelInProgress(Throwable)}. Generally the pattern is to check
- * before performing an operation, check if the service is canceled before propgrating 
- * an exception futher up the stack, and check for cancelation inside a long loop.
- * Eg.
- * 
- * <code>
- * while(true) {
- *   c.checkCancelInProgress(null);
- *   try {
- *      dispatchEvents();
- *   } catch(IOException e) {
- *     c.checkCancelInProgress(e);
- *     throw e;
- *   }
- * }
- * </code>
- * 
- * @author jpenney
- * @see CancelException
- * @since 5.1
- */
-public abstract class CancelCriterion
-{
-  /**
-   * Indicate if the service is in the progress of being cancelled.  The
-   * typical use of this is to indicate, in the case of an {@link InterruptedException},
-   * that the current operation should be cancelled.
-   * @return null if the service is not shutting down, or a message that can be used to
-   * construct an exception indicating the service is shut down.
-   */
-  public abstract String cancelInProgress();
-//import com.gemstone.gemfire.distributed.internal.DistributionManager;
-//    * <p>
-//    * In particular, a {@link DistributionManager} returns a non-null result if
-//    * message distribution has been terminated.
-  
-  /**
-   * Use this utility  function in your implementation of cancelInProgress()
-   * and cancelled() to indicate a system failure
-   * 
-   * @return failure string if system failure has occurred
-   */
-  protected final String checkFailure() {
-    Throwable tilt = SystemFailure.getFailure();
-    if (tilt != null) {
-      // Allocate no objects here!
-      return SystemFailure.JVM_CORRUPTION;
-    }
-    return null;
-  }
-
-  /**
-   * See if the current operation is being cancelled.  If so, it either
-   * throws a {@link RuntimeException} (usually a {@link CancelException}).
-   * 
-   * @param e an underlying exception or null if there is no exception 
-   * that triggered this check
-   * @see #cancelInProgress()
-   */
-  public final void checkCancelInProgress(Throwable e) {
-    SystemFailure.checkFailure();
-    String reason = cancelInProgress();
-    if (reason == null) {
-      return;
-    }
-    throw generateCancelledException(e);
-  }
-
-  /**
-   * Template factory method for generating the exception to be thrown by
-   * {@link #checkCancelInProgress(Throwable)}. Override this to specify
-   * different exception for checkCancelInProgress() to throw.
-   * 
-   * This method should wrap the exception in a service specific 
-   * CancelationException (eg CacheClosedException). 
-   * or return null if the service is not being canceled.
-   * 
-   * @param e
-   *          an underlying exception, if any
-   * @return RuntimeException to be thrown by checkCancelInProgress(), null if
-   *         the receiver has not been cancelled.
-   */
-  abstract public RuntimeException generateCancelledException(Throwable e);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/CancelException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/CancelException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/CancelException.java
deleted file mode 100644
index cbf2322..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/CancelException.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 com.gemstone.gemfire;
-
-import com.gemstone.gemfire.cache.CacheRuntimeException;
-
-/**
- * Abstract root class of all GemFire exceptions representing system
- * cancellation
- * 
- * @author jpenney
- * @since 6.0
- */
-public abstract class CancelException extends CacheRuntimeException {
-
-  /**
-   * for serialization
-   */
-  public CancelException() {
-  }
-
-  /**
-   * Create instance with given message
-   * @param message the message
-   */
-  public CancelException(String message) {
-    super(message);
-  }
-
-  /**
-   * Create instance with given message and cause
-   * @param message the message
-   * @param cause the cause
-   */
-  public CancelException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-  /**
-   * Create instance with empty message and given cause
-   * @param cause the cause
-   */
-  public CancelException(Throwable cause) {
-    super(cause);
-  }
-
-}



[12/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentConfig.java
deleted file mode 100644
index ccfca39..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentConfig.java
+++ /dev/null
@@ -1,884 +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.admin.jmx;
-
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-//import com.gemstone.gemfire.admin.internal.InetAddressUtil;
-
-/**
- * A configuration object for a JMX administration {@linkplain Agent
- * agent} that is hosted by a GemFire application VM.  A file named
- * {@link #DEFAULT_PROPERTY_FILE "agent.properties"} can be used to
- * override the default values of <code>AgentConfig</code> attributes.
- * The "gfAgentPropertyFile" {@linkplain System#getProperty(java.lang.String) system
- * property} can be used to specify an agent properties file other
- * than "agent.properties".  System properties prefixed with
- * {@linkplain #SYSTEM_PROPERTY_PREFIX "gemfire.agent."} can be used to
- * override the values in the properties file.  For instance
- * "-Dgemfire.agent.http-port=8081" can be used to override the
- * default port for the HTTP adapter.  Configuration related to the
- * distributed system that the JMX agent administers is inherited from
- * and described in <code>AgentConfig</code>'s superinterface, {@link
- * DistributedSystemConfig}.
- *
- * <P>
- *
- * An <code>AgentConfig</code> can be modified using a number of
- * mutator methods until it is used to create an <code>Agent</code>.
- * After that, attempts to modify most attributes in the
- * <code>AgentConfig</code> will result in an {@link
- * IllegalStateException} being thrown.  If you wish to use the same
- * <code>AgentConfig</code> to configure multiple <code>Agent</code>s,
- * a copy of the <code>AgentConfig</code> object can be made by
- * invoking its {@link #clone} method.
- *
- * <P>
- *
- * <B>JMX Administation Agent Configuration Properties</B>
- *
- * <dl>
- *   <a name="auto-connect"><dt>{@linkplain #AUTO_CONNECT_NAME auto-connect}</dt></a>
- *   <dd><U>Description</U>: whether or not a JMX agent will
- *   automatically connect to the distributed system it is configured to
- *   administer.</dd>
- *   <dd><U>{@linkplain #DEFAULT_AUTO_CONNECT Default}</U>: false</dd>
- * </dl>
- *
- * <B>JMX Agent SSL Configuration Properties</B>
- *
- * <P>
- *
- * These parameters configure sockets that are created by the GemFire
- * JMX Agent regardless of which adapters are enabled.  These setting
- * apply to all adapters.  For example, if clients connect to the RMI
- * adapter using SSL, then clients must also connect to the HTTP
- * adapter using SSL (HTTPS).  Note that these configuration
- * attributes do <b>not</b> effect how the agent connects to the
- * distributed system it administers, only how JMX clients connect to
- * the agent.
- *
- * <dl>
- *   <a name="agent-ssl-enabled"><dt>{@linkplain #AGENT_SSL_ENABLED_NAME agent-ssl-enabled}</dt></a>
- *   <dd><U>Description</U>: whether or not connections to the JMX agent
- *   require SSL
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_AGENT_SSL_ENABLED Default}</U>: false</dd>
- * </dl>
- * 
- * <dl>
- *   <a name="agent-ssl-protocols"><dt>{@linkplain #AGENT_SSL_PROTOCOLS_NAME agent-ssl-protocols}</dt></a>
- *   <dd><U>Description</U>: the SSL protocols to be used when connecting
- *   to the JMX agent
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_AGENT_SSL_PROTOCOLS Default}</U>: any</dd>
- * </dl>
- *
- * <dl>
- *   <a name="agent-ssl-ciphers"><dt>{@linkplain #AGENT_SSL_CIPHERS_NAME agent-ssl-ciphers}</dt></a>
- *   <dd><U>Description</U>: the SSL ciphers to be used when connecting
- *   to the JMX agent
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_AGENT_SSL_CIPHERS Default}</U>: any</dd>
- * </dl>
- *
- * <dl>
- *   <a name="agent-ssl-require-authentication"><dt>{@linkplain #AGENT_SSL_REQUIRE_AUTHENTICATION_NAME agent-ssl-require-authentication}</dt></a>
- *   <dd><U>Description</U>: whether or not SSL connections to the RMI
- *   adapter require authentication
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION Default}</U>: true</dd>
- * </dl>
- *
- * <dl>
- *   <a name="http-ssl-require-authentication"><dt>{@linkplain #HTTP_SSL_REQUIRE_AUTHENTICATION_NAME http-ssl-require-authentication}</dt></a>
- *   <dd><U>Description</U>: whether or not SSL connections to the HTTP
- *   adapter require authentication
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION Default}</U>: false</dd>
- * </dl>
- *
- * <B>HTTP Adapter Configuration</B>
- *
- * <dl>
- *   <a name="http-enabled"><dt>{@linkplain #HTTP_ENABLED_NAME http-enabled}</dt></a>
- *   <dd><U>Description</U>: whether or not the HTTP adapter is
- *   enabled in the JMX agent.</dd>
- *   <dd><U>{@linkplain #DEFAULT_HTTP_ENABLED Default}</U>: true</dd>
- * </dl>
- * 
- * <dl>
- *   <a name="http-port"><dt>{@linkplain #HTTP_PORT_NAME http-port}</dt></a>
- *   <dd><U>Description</U>: the port on which the HTTP adapter should
- *   listen for client connections.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_HTTP_PORT Default}</U>: 8080</dd>
- * </dl>
- *
- * <dl>
- *   <a name="http-bind-address"><dt>{@linkplain #HTTP_BIND_ADDRESS_NAME http-bind-address}</dt></a>
- *   <dd><U>Description</U>: the machine name or IP address to which
- *   the HTTP listening socket should be bound.  If this value is
- *   "localhost", then the socket will be bound to the loopback
- *   address (127.0.0.1) and the adapter will only be accessible via
- *   the URL <code>http://localhost:8080</code>.</dd>
- *   <dd><U>{@linkplain #DEFAULT_HTTP_BIND_ADDRESS Default}</U>: ""
- *   (all network addresses)</dd>
- * </dl>
- *
- * <dl>
- *   <a name="http-authentication-enabled"><dt>{@linkplain #HTTP_AUTHENTICATION_ENABLED_NAME http-authentication-enabled}</dt></a>
- *   <dd><U>Description</U>: Whether or not connections to the HTTP
- *   adapter should be authenticated with a user name and password.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_HTTP_AUTHENTICATION_ENABLED Default}</U>: false</dd>
- * </dl>
- *
- * <dl>
- *   <a name="http-authentication-user"><dt>{@linkplain #HTTP_AUTHENTICATION_USER_NAME http-authentication-user}</dt></a>
- *   <dd><U>Description</U>: the user name for authenticating secure
- *   communication. 
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_HTTP_AUTHENTICATION_USER Default}</U>: admin</dd>
- * </dl>
- *
- * <dl>
- *   <a name="http-authentication-password"><dt>{@linkplain #HTTP_AUTHENTICATION_PASSWORD_NAME http-authentication-password}</dt></a>
- *   <dd><U>Description</U>: the password for authenticating secure
- *   communication. 
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_HTTP_AUTHENTICATION_PASSWORD Default}</U>: password</dd>
- * </dl>
- *
- * <B>RMI Adapter Configuration Properties</B>
- *
- * <dl>
- *   <a name="rmi-enabled"><dt>{@linkplain #RMI_ENABLED_NAME rmi-enabled}</dt></a>
- *   <dd><U>Description</U>: whether or not the RMI JMX adapter is enabled
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_RMI_ENABLED Default}</U>: true</dd>
- * </dl>
- *
- * <dl>
- *   <a name="rmi-registry-enabled"><dt>{@linkplain #RMI_REGISTRY_ENABLED_NAME rmi-registry-enabled}</dt></a>
- *   <dd><U>Description</U>: whether or not the JMX agent should start
- *   an RMI registry.  Alternatively, a registry outside of the JMX
- *   agent VM can be used.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_RMI_REGISTRY_ENABLED Default}</U>: true</dd>
- * </dl>
- *
- * <dl>
- *   <a name="rmi-port"><dt>{@linkplain #RMI_PORT_NAME rmi-port}</dt></a>
- *   <dd><U>Description</U>: the port of the RMI registry in which the
- *   JMX Agent should bind remote objects.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_RMI_PORT Default}</U>: 1099</dd>
- * </dl>
- * 
- * <dl>
- *   <a name="rmi-server-port"><dt>{@linkplain #RMI_PORT_NAME rmi-server-port}</dt></a>
- *   <dd><U>Description</U>: the port to be used by the RMI Server started by
- *   JMX Agent.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_RMI_SERVER_PORT Default}</U>: 0</dd>
- * </dl> 
- *
- * <dl>
- *   <a name="rmi-bind-address"><dt>{@linkplain #RMI_BIND_ADDRESS_NAME rmi-bind-address}</dt></a>
- *   <dd><U>Description</U>: the bind address on which the RMI
- *   registry binds its sockets.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_RMI_BIND_ADDRESS Default}</U>: ""
- *   (all network addresses)</dd>
- * </dl>
- *
- * <B>AdventNet SNMP Adapter Configuration Properties</B>
- *
- * <dl>
- *   <a name="snmp-enabled"><dt>{@linkplain #SNMP_ENABLED_NAME snmp-enabled}</dt></a>
- *   <dd><U>Description</U>: whether or not the SNMP JMX adapter is
- *   enabled 
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_SNMP_ENABLED Default}</U>: false</dd>
- * </dl>
- * 
- * <dl>
- *   <a name="snmp-bind-address"><dt>{@linkplain #SNMP_BIND_ADDRESS_NAME snmp-bind-address}</dt></a>
- *   <dd><U>Description</U>: the host name to which sockets used by the
- *   SNMP adapter should be bound.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_SNMP_BIND_ADDRESS Default}</U>: the name of
- *   the local machine (not <code>localhost</code>)</dd>
- * </dl>
- *
- * <dl>
- *   <a name="snmp-directory"><dt>{@linkplain #SNMP_DIRECTORY_NAME snmp-directory}</dt></a>
- *   <dd><U>Description</U>: the deployment directory for AdventNet
- *   SNMP Adaptor 
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_SNMP_DIRECTORY Default}</U>: ""</dd>
- * </dl>
- * 
- * <B>JMX Agent Email Notification Properties (for statistics alerts)</B>
- * 
- * <dl>
- *   <a name="email-notification-enabled"><dt>{@linkplain #EMAIL_NOTIFICATIONS_ENABLED_NAME email-notification-enabled}</dt></a>
- *   <dd><U>Description</U>: Whether or not email notifications are enabled for statistics alerts.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_EMAIL_NOTIFICATIONS_ENABLED Default}</U>: false</dd>
- * </dl>
- * 
- * <dl>
- *   <a name="email-notification-from"><dt>{@linkplain #EMAIL_NOTIFICATIONS_FROM_NAME email-notification-from}</dt></a>
- *   <dd><U>Description</U>: Email address to be used to send email notifications.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_EMAIL_FROM Default}</U>: ""</dd>
- * </dl>
- * 
- * <dl>
- *   <a name="email-notification-host"><dt>{@linkplain #EMAIL_NOTIFICATIONS_HOST_NAME email-notification-host}</dt></a>
- *   <dd><U>Description</U>: The host name of the mail server to be used for email communication. 
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_EMAIL_HOST Default}</U>: ""</dd>
- * </dl>
- * 
- * <dl>
- *   <a name="email-notification-to"><dt>{@linkplain #EMAIL_NOTIFICATIONS_TO_LIST_NAME email-notification-to}</dt></a>
- *   <dd><U>Description</U>: Email address where the email notifications should be sent.
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_EMAIL_TO_LIST Default}</U>: ""</dd>
- * </dl>
- * 
- * <dl>
- *   <a name="state-save-file"><dt>{@linkplain #STATE_SAVE_FILE_NAME state-save-file}</dt></a>
- *   <dd><U>Description</U>: The name of the file to be used for saving agent state. The file
-         is stored in the same directory in which the agent.properties file is located
- *   </dd>
- *   <dd><U>{@linkplain #DEFAULT_STATE_SAVE_FILE Default}</U>: ""</dd>
- * </dl>
- * 
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface AgentConfig extends DistributedSystemConfig {
-
-  /** The prefix for JMX Agent configuration system properties */
-  public static final String SYSTEM_PROPERTY_PREFIX =
-    "gemfire.agent.";
-
-  /** The default "propertyFile" value */
-  public static final String DEFAULT_PROPERTY_FILE = "agent.properties";
-
-  /** The default name for file that has "agent state saved serialized" */
-  public static final String DEFAULT_STATE_SAVE_FILE = "agent.ser";
-  
-  /** The name of the "auto-connect" property */
-  public static final String AUTO_CONNECT_NAME = "auto-connect";
-
-  /** The default value of the "auto-connect" property  */
-  public static final boolean DEFAULT_AUTO_CONNECT = true;
-
-  // -------------------------------------------------------------------------
-  //   HttpAdaptor properties...
-  // -------------------------------------------------------------------------
-  
-  /** The name of the "httpEnabled" property */
-  public static final String HTTP_ENABLED_NAME = "http-enabled";
-
-  /** The default value of the "httpEnabled" property  */
-  public static final boolean DEFAULT_HTTP_ENABLED = true;
-  
-  /** The name of the "httpBindAddress" property */
-  public static final String HTTP_BIND_ADDRESS_NAME = "http-bind-address";
-
-  /** The default value of the "httpBindAddress" property */
-  public static final String DEFAULT_HTTP_BIND_ADDRESS = "";
-  
-  /** The name of the "httpPort" property */
-  public static final String HTTP_PORT_NAME = "http-port";
-
-  /** The default value of the "httpPort" property (8080) */
-  public static final int DEFAULT_HTTP_PORT = 8080;
-
-  /** The minimum httpPort (0) */
-  public static final int MIN_HTTP_PORT = 0;
-
-  /** The maximum httpPort (65535) */
-  public static final int MAX_HTTP_PORT = 65535;
-
-  /** The name of the "state-save-file-name" property */
-  public static final String STATE_SAVE_FILE_NAME =
-    "state-save-file";
-
-  /** The name of the "http-authentication-enabled" property */
-  public static final String HTTP_AUTHENTICATION_ENABLED_NAME =
-    "http-authentication-enabled";
-
-  /** The default value of the "http-authentication-enabled" property
-   *  */ 
-  public static final boolean DEFAULT_HTTP_AUTHENTICATION_ENABLED = false;
-
-  /** The name of the "http-authentication-user" property */
-  public static final String HTTP_AUTHENTICATION_USER_NAME =
-    "http-authentication-user";
-
-  /** The default value of the "http-authentication-user" property  */
-  public static final String DEFAULT_HTTP_AUTHENTICATION_USER = "admin";
-
-  /** The name of the "http-authentication-password" property */
-  public static final String HTTP_AUTHENTICATION_PASSWORD_NAME =
-    "http-authentication-password";
-
-  /** The default value of the "http-authentication-password" property
-   *  */
-  public static final String DEFAULT_HTTP_AUTHENTICATION_PASSWORD =
-    "password";
-
-  /** The name of the "email-notification-enabled" property */
-  public static final String EMAIL_NOTIFICATIONS_ENABLED_NAME =
-    "email-notification-enabled";
-
-  /** The default value of the "email-notification-enabled" property
-   *  */ 
-  public static final boolean DEFAULT_EMAIL_NOTIFICATIONS_ENABLED = false;
-
-  /** The name of the "email-notification-from" property */
-  public static final String EMAIL_NOTIFICATIONS_FROM_NAME =
-    "email-notification-from";
-
-  /** The default value of the "email-notification-from" property
-   *  */ 
-  public static final String DEFAULT_EMAIL_FROM = "";
-
-  /** The name of the "email-notification-host" property */
-  public static final String EMAIL_NOTIFICATIONS_HOST_NAME =
-    "email-notification-host";
-
-  /** The default value of the "email-notification-host" property
-   *  */ 
-  public static final String DEFAULT_EMAIL_HOST = "";
-
-  /** The name of the "email-notification-to" property */
-  public static final String EMAIL_NOTIFICATIONS_TO_LIST_NAME =
-    "email-notification-to";
-
-  /** The default value of the "email-notification-to" property
-   *  */ 
-  public static final String DEFAULT_EMAIL_TO_LIST = "";
-
-  // -------------------------------------------------------------------------
-  //   RMIConnectorServer properties...
-  // -------------------------------------------------------------------------
-  
-  /** The name of the "rmiEnabled" property */
-  public static final String RMI_ENABLED_NAME = "rmi-enabled";
-
-  /** The default value of the {@linkplain #RMI_ENABLED_NAME rmi-enabled} property  */
-  public static final boolean DEFAULT_RMI_ENABLED = true;
-  
-  /** The name of the "rmi-registry-enabled" property */
-  public static final String RMI_REGISTRY_ENABLED_NAME =
-    "rmi-registry-enabled"; 
-
-  /** The default value of the {@linkplain #RMI_REGISTRY_ENABLED_NAME rmi-registry-enabled} property*/
-  public static final boolean DEFAULT_RMI_REGISTRY_ENABLED = true;
-  
-  /** The name of the "rmiBindAddress" property */
-  public static final String RMI_BIND_ADDRESS_NAME = "rmi-bind-address";
-
-  /** The default value of the {@linkplain #RMI_BIND_ADDRESS_NAME rmi-bind-address} property  */
-  public static final String DEFAULT_RMI_BIND_ADDRESS = "";
-
-  /** The name of the "rmiPort" property */
-  public static final String RMI_PORT_NAME = "rmi-port";
-
-  /** The default value of the {@linkplain #RMI_PORT_NAME rmi-port} property (1099) */
-  public static final int DEFAULT_RMI_PORT = 1099;
-  
-  /** 
-   * The name of the "rmi-server-port" property
-   * 
-   * @since 6.5
-   */
-  public static final String RMI_SERVER_PORT_NAME = "rmi-server-port";
-
-  /** 
-   * The default value of the {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} 
-   * property (0)
-   * 
-   * @since 6.5
-   */
-  public static final int DEFAULT_RMI_SERVER_PORT = 0;
-
-  /**
-   * The minimum value for {@linkplain #RMI_PORT_NAME rmi-port} or
-   * {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} (0)
-   */
-  public static final int MIN_RMI_PORT = 0;
-
-  /**
-   * The maximum value for {@linkplain #RMI_PORT_NAME rmi-port} or
-   * {@linkplain #RMI_SERVER_PORT_NAME rmi-server-port} (65535)
-   */
-  public static final int MAX_RMI_PORT = 65535;
-  
-  // -------------------------------------------------------------------------
-  //   AdventNetSNMPAdaptor properties...
-  // -------------------------------------------------------------------------
-  
-  /** The name of the "snmpEnabled" property */
-  public static final String SNMP_ENABLED_NAME = "snmp-enabled";
-
-  /** The default value of the "snmpEnabled" property  */
-  public static final boolean DEFAULT_SNMP_ENABLED = false;
-  
-  /** The name of the "snmpBindAddress" property */
-  public static final String SNMP_BIND_ADDRESS_NAME = "snmp-bind-address";
-
-  /** The default value of the "snmpBindAddress" property */
-  public static final String DEFAULT_SNMP_BIND_ADDRESS = "";
-
-  /** The name of the "snmpDirectory" property */
-  public static final String SNMP_DIRECTORY_NAME = "snmp-directory";
-
-  /** The default value of the "snmpDirectory" property  */
-  public static final String DEFAULT_SNMP_DIRECTORY = "";
-
-  // -------------------------------------------------------------------------
-  //   JMX SSL properties...
-  // -------------------------------------------------------------------------
-
-  /** The name of the "agent-ssl-enabled" property */
-  public static final String AGENT_SSL_ENABLED_NAME = "agent-ssl-enabled";
-
-  /** The default value of the "agent-ssl-enabled" property  */
-  public static final boolean DEFAULT_AGENT_SSL_ENABLED = false;
-
-  /** The name of the "agent-ssl-protocols" property */
-  public static final String AGENT_SSL_PROTOCOLS_NAME = "agent-ssl-protocols";
-
-   /** The default value of the "agent-ssl-protocols" property  */
-  public static final String DEFAULT_AGENT_SSL_PROTOCOLS = "any";
-
-  /** The name of the "agent-ssl-ciphers" property */
-  public static final String AGENT_SSL_CIPHERS_NAME = "agent-ssl-ciphers";
-
-   /** The default value of the "agent-ssl-ciphers" property  */
-  public static final String DEFAULT_AGENT_SSL_CIPHERS = "any";
-
-  /** The name of the "agent-ssl-require-authentication" property */
-  public static final String AGENT_SSL_REQUIRE_AUTHENTICATION_NAME =
-    "agent-ssl-require-authentication";
-
-   /** The default value of the "agent-ssl-require-authentication"
-    * property  */
-  public static final boolean DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION = true;
-    
-  /** The name of the "http-ssl-require-authentication" property */
-  public static final String HTTP_SSL_REQUIRE_AUTHENTICATION_NAME =
-    "http-ssl-require-authentication";
-
-   /** The default value of the "http-ssl-require-authentication"
-    * property  */
-  public static final boolean DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION = false;
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Returns whether or not the JMX agent will automatically connect
-   * to the distributed system it administers.
-   *
-   * See <a href="#auto-connect">description</a> above.
-   */
-  public boolean getAutoConnect();
-
-  /**
-   * Sets whether or not the JMX agent will automatically connect
-   * to the distributed system it administers.
-   *
-   * See <a href="#auto-connect">description</a> above.
-   */
-  public void setAutoConnect(boolean autoConnect);
-
-  /**
-   * Returns whether or not the HTTP adapter is enabled.
-   *
-   * See <a href="#http-enabled">description</a> above.
-   */
-  public boolean isHttpEnabled();
-
-  /**
-   * Sets whether or not the HTTP adapter is enabled.
-   *
-   * See <a href="#http-enabled">description</a> above.
-   */
-  public void setHttpEnabled(boolean httpEnabled);
-
-  /**
-   * Returns the port of the HTTP adapter.
-   *
-   * See <a href="#http-port">description</a> above.
-   */
-  public int getHttpPort();
-
-  /**
-   * Sets the port of the HTTP adapter.
-   *
-   * See <a href="#http-port">description</a> above.
-   */
-  public void setHttpPort(int port);
-
-  /**
-   * Returns the bind address to which the HTTP adapter's listening
-   * socket is bound.
-   *
-   * See <a href="#http-bind-address">description</a> above.
-   */
-  public String getHttpBindAddress();
-
-  /**
-   * Sets the bind address to which the HTTP adapter's listening
-   * socket is bound.
-   *
-   * See <a href="#http-bind-address">description</a> above.
-   */
-  public void setHttpBindAddress(String address);
-
-  /**
-   * Returns whether or not the HTTP adapter authenticates
-   * connections.
-   *
-   * See <a href="#http-authentication-enabled">description</a>
-   * above.
-   */ 
-  public boolean isHttpAuthEnabled();
-
-  /**
-   * Sets whether or not the HTTP adapter authenticates connections.
-   *
-   * See <a href="#http-authentication-enabled">description</a>
-   * above.
-   */
-  public void setHttpAuthEnabled(boolean enabled);
-
-  /**
-   * Returns the user name for HTTP adapter authentication.
-   *
-   * See <a href="#http-authentication-user">description</a>
-   * above.
-   */
-  public String getHttpAuthUser();
-  
-  /**
-   * Sets the user name for HTTP adapter authentication.
-   *
-   * See <a href="#http-authentication-user">description</a>
-   * above.
-   */
-  public void setHttpAuthUser(String user);
-
-  /**
-   * Returns the password for HTTP adapter authentication.
-   *
-   * See <a href="#http-authentication-password">description</a>
-   * above.
-   */
-  public String getHttpAuthPassword();
-  
-  /**
-   * Sets the password for HTTP adapter authentication.
-   *
-   * See <a href="#http-authentication-password">description</a>
-   * above.
-   */
-  public void setHttpAuthPassword(String password);
-
-  /**
-   * Returns whether or not the RMI adapter is enabled.
-   *
-   * See <a href="#rmi-enabled">description</a> above.
-   */
-  public boolean isRmiEnabled();
-
-  /**
-   * Sets whether or not the RMI adapter is enabled.
-   *
-   * See <a href="#rmi-enabled">description</a> above.
-   */
-  public void setRmiEnabled(boolean rmiEnabled);
-
-  /**
-   * Returns whether or not the agent hosts an RMI registry.
-   *
-   * See <a href="#rmi-registry-enabled">description</a> above.
-   */
-  public boolean isRmiRegistryEnabled();
-
-  /**
-   * Sets whether or not the agent hosts an RMI registry.
-   *
-   * See <a href="#rmi-registry-enabled">description</a> above.
-   */
-  public void setRmiRegistryEnabled(boolean enabled);
-
-  /**
-   * Returns the port of the RMI adapter.
-   *
-   * See <a href="#rmi-port">description</a> above.
-   */
-  public int getRmiPort();
-
-  /**
-   * Sets the port of the RMI adapter.
-   *
-   * See <a href="#rmi-port">description</a> above.
-   */
-  public void setRmiPort(int port);
-  
-  /**
-   * Returns the port of the RMI Connector Server.
-   *
-   * See <a href="#rmi-server-port">description</a> above.
-   * 
-   * @return the value set for rmi-server-port
-   * @since 6.5
-   */
-  public int getRmiServerPort();
-
-  /**
-   * Sets the port of the RMI Connector Server.
-   *
-   * See <a href="#rmi-server-port">description</a> above.
-   * 
-   * @param port rmi-server-port to set. 
-   * @since 6.5
-   */
-  public void setRmiServerPort(int port);
-
-  /**
-   * Returns the bind address to which the RMI adapter's listening
-   * sockets are bound.
-   *
-   * See <a href="#rmi-bind-address">description</a> above.
-   */
-  public String getRmiBindAddress();
-
-  /**
-   * Sets the bind address to which the RMI adapter's listening
-   * sockets are bound.
-   *
-   * See <a href="#rmi-bind-address">description</a> above.
-   */
-  public void setRmiBindAddress(String address);
-
-  /**
-   * Returns whether or not the SNMP adapter is enabled.
-   *
-   * See <a href="#snmp-enabled">description</a> above.
-   */
-  public boolean isSnmpEnabled();
-
-  /**
-   * Sets whether or not the SNMP adapter is enabled.
-   *
-   * See <a href="#snmp-enabled">description</a> above.
-   */
-  public void setSnmpEnabled(boolean enabled);
-
-  /**
-   * Returns the bind address used with the SNMP adapter.
-   *
-   * See <a href="#snmp-bind-address">description</a> above.
-   */
-  public String getSnmpBindAddress();
-
-  /**
-   * Sets the bind address used with the SNMP adapter.
-   *
-   * See <a href="#snmp-bind-address">description</a> above.
-   */
-  public void setSnmpBindAddress(String address);
-
-  /**
-   * Returns the directory for the SNMP adapater.
-   *
-   * See <a href="#snmp-directory">description</a> above.
-   */
-  public String getSnmpDirectory();
-
-  /**
-   * Sets the directory for the SNMP adapater.
-   *
-   * See <a href="#snmp-directory">description</a> above.
-   */
-  public void setSnmpDirectory(String snmpDirectory);
-  
-  /**
-   * Returns whether or not SSL is required for the JMX agent.
-   *
-   * See <a href="#agent-ssl-enabled">description</a> above.
-   */
-  public boolean isAgentSSLEnabled();
-
-  /**
-   * Sets whether or not SSL is required for the JMX agent.
-   *
-   * See <a href="#agent-ssl-enabled">description</a> above.
-   */
-  public void setAgentSSLEnabled(boolean enabled);
-
-  /**
-   * Returns the SSL protocols used when connecting to the JMX agent.
-   *
-   * See <a href="#agent-ssl-protocols">description</a> above.
-   */
-  public String getAgentSSLProtocols();
-
-  /**
-   * Sets the SSL protocols used when connecting to the JMX agent.
-   *
-   * See <a href="#agent-ssl-protocols">description</a> above.
-   */
-  public void setAgentSSLProtocols(String protocols);
-
-  /**
-   * Returns the SSL ciphers used when connecting to the JMX agent.
-   *
-   * See <a href="#agent-ssl-ciphers">description</a> above.
-   */
-  public String getAgentSSLCiphers();
-
-  /**
-   * Sets the SSL ciphers used when connecting to the JMX agent.
-   *
-   * See <a href="#agent-ssl-ciphers">description</a> above.
-   */
-  public void setAgentSSLCiphers(String ciphers);
-
-  /**
-   * Returns whether SSL authentication is used when connecting to the
-   * RMI connector.
-   *
-   * See <a href="#agent-ssl-require-authentication">description</a> above.
-   */
-  public boolean isAgentSSLRequireAuth();
-  
-  /**
-   * Sets whether SSL authentication is used when connecting to the
-   * RMI connector.
-   *
-   * See <a href="#agent-ssl-require-authentication">description</a> above.
-   */
-  public void setAgentSSLRequireAuth(boolean require);
-
-  /**
-   * Returns whether SSL authentication is used when connecting to the
-   * HTTP connector.
-   *
-   * See <a href="#http-ssl-require-authentication">description</a> above.
-   */
-  public boolean isHttpSSLRequireAuth();
-  
-  /**
-   * Sets whether SSL authentication is used when connecting to the
-   * HTTP connector.
-   *
-   * See <a href="#http-ssl-require-authentication">description</a> above.
-   */
-  public void setHttpSSLRequireAuth(boolean require);
-
-  /**
-   * Returns whether Emails for Notifications is enabled
-   *
-   * See <a href="#email-notification-enabled">description</a> above.
-   */
-  public boolean isEmailNotificationEnabled();
-
-  /**
-   * Sets whether Emails for Notifications is enabled
-   *
-   * See <a href="#email-notification-enabled">description</a> above.
-   */
-  public void setEmailNotificationEnabled(boolean enabled);
-
-  /**
-   * Returns the EmailID from whom notification emails are sent.
-   *
-   * See <a href="#email-notification-from">description</a> above.
-   */
-  public String getEmailNotificationFrom();
-  
-  /**
-   * Sets the EmailID from whom notification emails are sent.
-   *
-   * See <a href="#email-notification-from">description</a> above.
-   */
-  public void setEmailNotificationFrom(String emailID);
-
-  /**
-   * Returns the Host Name using which notification emails are sent.
-   *
-   * See <a href="#email-notification-host">description</a> above.
-   */
-  public String getEmailNotificationHost();
-  
-  /**
-   * Sets the Host Name from whom notification emails are sent.
-   *
-   * See <a href="#email-notification-host">description</a> above.
-   */
-  public void setEmailNotificationHost(String hostName);
-
-  /**
-   * Returns the comma separated EmailID list to whom notification
-   * emails are sent.
-   *
-   * See <a href="#email-notification-to">description</a> above.
-   */
-  public String getEmailNotificationToList();
-  
-  /**
-   * Sets the EmailID from whom notification emails are sent as a
-   * comma separated list.
-   *
-   * See <a href="#email-notification-to">description</a> above.
-   */
-  public void setEmailNotificationToList(String emailIDs);
-  
-  /**
-   * Returns the name of the file to be used for saving agent state
-   *
-   * See <a href="#state-save-file">description</a> above.
-   */
-  public String getStateSaveFile();
-
-  /**
-   * Sets the name of the file to be used for saving agent state
-   *
-   * See <a href="#state-save-file">description</a> above.
-   */
-  public void setStateSaveFile(String file);
-
-  /**
-   * Returns an <code>AgentConfig</code> with the same configuration
-   * as this <code>AgentConfig</code>.
-   */
-  public Object clone() throws CloneNotSupportedException; 
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentFactory.java
deleted file mode 100644
index 2c6b002..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/AgentFactory.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.admin.jmx;
-
-//import com.gemstone.gemfire.admin.AdminDistributedSystem;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.jmx.internal.AgentConfigImpl;
-import com.gemstone.gemfire.admin.jmx.internal.AgentImpl;
-
-/**
- * A factory class that creates JMX administration entities.
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class AgentFactory {
-
-  /**
-   * Defines a "default" GemFire JMX administration agent
-   * configuration.
-   */
-  public static AgentConfig defineAgent() {
-    return new AgentConfigImpl();
-  }
-
-  /**
-   * Creates an unstarted GemFire JMX administration agent with the
-   * given configuration.
-   *
-   * @see Agent#start
-   */
-  public static Agent getAgent(AgentConfig config) 
-    throws AdminException {
-    return new AgentImpl((AgentConfigImpl) config);
-  }
-
-}


[25/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializer.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializer.java b/gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializer.java
deleted file mode 100644
index 3b15085..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/DataSerializer.java
+++ /dev/null
@@ -1,3565 +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;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.File;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.lang.reflect.Array;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.IdentityHashMap;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Stack;
-import java.util.TreeMap;
-import java.util.TreeSet;
-import java.util.Vector;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.RegionNotFoundException;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.internal.DSCODE;
-import com.gemstone.gemfire.internal.HeapDataOutputStream;
-import com.gemstone.gemfire.internal.InternalDataSerializer;
-import com.gemstone.gemfire.internal.ObjToByteArraySerializer;
-import com.gemstone.gemfire.internal.Sendable;
-import com.gemstone.gemfire.internal.Version;
-import com.gemstone.gemfire.internal.cache.CachedDeserializable;
-import com.gemstone.gemfire.internal.cache.EventID;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.cache.tier.sockets.ClientProxyMembershipID;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LogMarker;
-import com.gemstone.gemfire.internal.offheap.StoredObject;
-import com.gemstone.gemfire.pdx.PdxInstance;
-
-/**
- * Provides static helper methods for reading and writing
- * non-primitive data when working with a {@link DataSerializable}.
- * For instance, classes that implement <code>DataSerializable</code>
- * can use the <code>DataSerializer</code> in their
- * <code>toData</code> and <code>fromData</code> methods:
- *
- * <!--
- * The source code for the Employee class resides in
- *         tests/com/examples/ds/Employee.java
- * Please keep the below code snippet in sync with that file.
- * -->
- *
- * <PRE>
-public class Employee implements DataSerializable {
-  private int id;
-  private String name;
-  private Date birthday;
-  private Company employer;
-
-  public void toData(DataOutput out) throws IOException {
-    out.writeInt(this.id);
-    out.writeUTF(this.name);
-    DataSerializer.writeDate(this.birthday, out);
-    DataSerializer.writeObject(this.employer, out);
-  }
-
-  public void fromData(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    this.id = in.readInt();
-    this.name = in.readUTF();
-    this.birthday = DataSerializer.readDate(in);
-    this.employer = (Company) DataSerializer.readObject(in);
-  }
-}
-
- * </PRE>
- *
- * <P>
- *
- * Instances of <code>DataSerializer</code> are used to data serialize
- * objects (such as instances of standard Java classes or third-party
- * classes for which the source code is not available) that do not
- * implement the <code>DataSerializable</code> interface.
- *
- * <P>
- *
- * The following <code>DataSerializer</code> data serializes instances
- * of <code>Company</code>.  In order for the data serialization
- * framework to consult this custom serializer, it must be {@linkplain
- * #register(Class) registered} with the framework.
- *
- * <!--
- * The source code for the CompanySerializer class resides in
- *         tests/com/examples/ds/CompanySerializer.java
- * Please keep the below code snippet in sync with that file.
- * -->
- *
- * <PRE>
-public class CompanySerializer extends DataSerializer {
-
-  static {
-    DataSerializer.register(CompanySerializer.class);
-  }
-
-  &#47;**
-   * May be invoked reflectively if instances of Company are
-   * distributed to other VMs.
-   *&#47;
-  public CompanySerializer() {
-
-  }
-
-  public Class[] getSupportedClasses() {
-    return new Class[] { Company.class };
-  }
-  public int getId() {
-    return 42;
-  }
-
-  public boolean toData(Object o, DataOutput out)
-    throws IOException {
-    if (o instanceof Company) {
-      Company company = (Company) o;
-      out.writeUTF(company.getName());
-
-      // Let's assume that Address is java.io.Serializable
-      Address address = company.getAddress();
-      writeObject(address, out);
-      return true;
-
-    } else {
-      return false;
-    }
-  }
-
-  public Object fromData(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    String name = in.readUTF();
-    Address address = (Address) readObject(in);
-    return new Company(name, address);
-  }
-}
- * </PRE>
- *
- * Just like {@link Instantiator}s, a <code>DataSerializer</code> may
- * be sent to other members of the distributed system when it is
- * {@linkplain #register(Class) registered}.  The data serialization
- * framework does not require that a <code>DataSerializer</code> be
- * {@link Serializable}, but it does require that it provide a
- * {@linkplain #DataSerializer() zero-argument constructor}.
- *
- * @see #writeObject(Object, DataOutput)
- * @see #readObject
- *
- * @author David Whitlock
- * @since 3.5 */
-public abstract class DataSerializer {
-  
-  private static final Logger logger = LogService.getLogger();
-  
-  /** The eventId of this <code>DataSerializer</code> */
-  private EventID eventId;
-
-  /** The originator of this <code>DataSerializer</code> */
-  private ClientProxyMembershipID context;
-
-  protected static final boolean TRACE_SERIALIZABLE =
-    Boolean.getBoolean("DataSerializer.TRACE_SERIALIZABLE");
-
-  /* Used to prevent standard Java serialization when sending data to a non-Java client */
-  protected static final ThreadLocal<Boolean> DISALLOW_JAVA_SERIALIZATION = new ThreadLocal<Boolean>();
-
-  //////////////////////  Instance Fields  /////////////////////
-
-  //////////////////////  Static Methods  //////////////////////
-
-  /**
-   * Writes an instance of <code>Class</code> to a
-   * <code>DataOutput</code>.
-   * This method will handle a
-   * <code>null</code> value and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readClass
-   */
-  public static void writeClass(Class<?> c, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Class {}", c);
-    }
-
-    if (c == null || c.isPrimitive()) {
-      InternalDataSerializer.writePrimitiveClass(c, out);
-    }
-    else {
-      // non-primitive classes have a second CLASS byte
-      // if readObject/writeObject is called:
-      // the first CLASS byte indicates it's a Class, the second
-      // one indicates it's a non-primitive Class
-      out.writeByte(DSCODE.CLASS);
-      String cname = c.getName();
-      cname = swizzleClassNameForWrite(cname);
-      writeString(cname, out);
-    }
-  }
-
-  /**
-   * Writes class name to a <code>DataOutput</code>. This method will handle a
-   * <code>null</code> value and not throw a <code>NullPointerException</code>.
-   * 
-   * @throws IOException
-   *           A problem occurs while writing to <code>out</code>
-   * 
-   * @see #readNonPrimitiveClassName(DataInput)
-   */
-  public static void writeNonPrimitiveClassName(String className, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Class name {}", className);
-    }
-
-    writeString(swizzleClassNameForWrite(className), out);
-  }
-
-  /**
-   * Reads an instance of <code>Class</code> from a
-   * <code>DataInput</code>.  The class will be loaded using the
-   * {@linkplain Thread#getContextClassLoader current content class
-   * loader}.
-   * The return value may be <code>null</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class cannot be loaded
-   */
-  public static Class<?> readClass(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    byte typeCode = in.readByte();
-    if (typeCode == DSCODE.CLASS) {
-      String className = readString(in);
-      className = swizzleClassNameForRead(className);
-      Class<?> c = InternalDataSerializer.getCachedClass(className); // fix for bug 41206
-      return c;
-    }
-    else {
-      return InternalDataSerializer.decodePrimitiveClass(typeCode);
-    }
-  }
-  
-  /**
-   * For backward compatibility we must swizzle the package of
-   * some classes that had to be moved when GemFire was open-
-   * sourced.  This preserves backward-compatibility.
-   * 
-   * @param name the fully qualified class name
-   * @return the name of the class in this implementation
-   */
-  private static String swizzleClassNameForRead(String name) {
-    String oldPackage = "com.gemstone.org.jgroups.stack.tcpserver";
-    String newPackage = "com.gemstone.gemfire.distributed.internal.tcpserver";
-    String result = name;
-    if (name.startsWith(oldPackage)) {
-      result = newPackage + name.substring(oldPackage.length());
-    }
-    return result;
-  }
-  
-  /**
-   * For backward compatibility we must swizzle the package of
-   * some classes that had to be moved when GemFire was open-
-   * sourced.  This preserves backward-compatibility.
-   * 
-   * @param name the fully qualified class name
-   * @return the name of the class in this implementation
-   */
-  private static String swizzleClassNameForWrite(String name) {
-    String oldPackage = "com.gemstone.org.jgroups.stack.tcpserver";
-    String newPackage = "com.gemstone.gemfire.distributed.internal.tcpserver";
-    String result = name;
-    if (name.startsWith(newPackage)) {
-      result = oldPackage + name.substring(newPackage.length());
-    }
-    return result;
-  }
-  
-  /**
-   * Reads name of an instance of <code>Class</code> from a
-   * <code>DataInput</code>.
-   * 
-   * The return value may be <code>null</code>.
-   * 
-   * @throws IOException
-   *           A problem occurs while reading from <code>in</code>
-   * @see #writeNonPrimitiveClassName(String, DataOutput)
-   */
-  public static String readNonPrimitiveClassName(DataInput in)
-      throws IOException {
-
-    InternalDataSerializer.checkIn(in);
-
-    return swizzleClassNameForRead(readString(in));
-  }
-
-  /**
-   * Writes an instance of Region. A Region is serialized as just a reference
-   * to a full path only. It will be recreated on the other end by calling
-   * {@link CacheFactory#getAnyInstance} and then calling
-   * <code>getRegion</code> on it.
-   * This method will handle a
-   * <code>null</code> value and not throw a
-   * <code>NullPointerException</code>.
-   */
-  public static void writeRegion(Region<?,?> rgn, DataOutput out)
-  throws IOException {
-    writeString((rgn != null) ? rgn.getFullPath() : null, out);
-  }
-
-  /**
-   * Reads an instance of Region. A Region is serialized as a reference to a
-   * full path only. It is recreated on the other end by calling
-   * {@link CacheFactory#getAnyInstance} and then calling
-   * <code>getRegion</code> on it.
-   * The return value may be <code>null</code>.
-   *
-   * @param in the input stream
-   * @return the Region instance
-   * @throws com.gemstone.gemfire.cache.CacheClosedException if a cache has not been created or the only
-   * created one is closed.
-   * @throws RegionNotFoundException if there is no region by this name
-   * in the Cache
-   */
-  public static <K,V> Region<K,V> readRegion(DataInput in)
-  throws IOException, ClassNotFoundException {
-    String fullPath = readString(in);
-    Region<K,V> rgn = null;
-    if (fullPath != null) {
-      // use getExisting to fix bug 43151
-      rgn = ((Cache)GemFireCacheImpl.getExisting("Needed cache to find region.")).getRegion(fullPath);
-      if (rgn == null) {
-      throw new RegionNotFoundException(LocalizedStrings.DataSerializer_REGION_0_COULD_NOT_BE_FOUND_WHILE_READING_A_DATASERIALIZER_STREAM.toLocalizedString(fullPath));
-      }
-    }
-    return rgn;
-  }
-
-
-  /**
-   * Writes an instance of <code>Date</code> to a
-   * <code>DataOutput</code>.  Note that even though <code>date</code>
-   * may be an instance of a subclass of <code>Date</code>,
-   * <code>readDate</code> will always return an instance of
-   * <code>Date</code>, <B>not</B> an instance of the subclass.  To
-   * preserve the class type of <code>date</code>,\
-   * {@link #writeObject(Object, DataOutput)} should be used for data serialization.
-   * This method will handle a
-   * <code>null</code> value and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readDate
-   */
-  public static void writeDate(Date date, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Date {}", date);
-    }
-
-    long v;
-    if (date == null) {
-      v = -1L;
-    } else {
-      v = date.getTime();
-      if (v == -1L) {
-        throw new IllegalArgumentException("Dates whose getTime returns -1 can not be DataSerialized.");
-      }
-    }
-    out.writeLong(v);
-  }
-
-  /**
-   * Reads an instance of <code>Date</code> from a
-   * <code>DataInput</code>.
-   * The return value may be <code>null</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Date readDate(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    long time = in.readLong();
-    Date date = null;
-    if (time != -1L) {
-      date = new Date(time);
-    }
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Date {}", date);
-    }
-
-    return date;
-  }
-
-  /**
-   * Writes an instance of <code>File</code> to a
-   * <code>DataOutput</code>.  Note that even though <code>file</code>
-   * may be an instance of a subclass of <code>File</code>,
-   * <code>readFile</code> will always return an instance of
-   * <code>File</code>, <B>not</B> an instance of the subclass.  To
-   * preserve the class type of <code>file</code>,
-   * {@link #writeObject(Object, DataOutput)} should be used for data serialization.
-   * This method will handle a
-   * <code>null</code> value and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readFile
-   * @see File#getCanonicalPath
-   */
-  public static void writeFile(File file, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing File {}", file);
-    }
-
-    writeString((file != null) ? file.getCanonicalPath() : null, out);
-  }
-
-  /**
-   * Reads an instance of <code>File</code> from a
-   * <code>DataInput</code>.
-   * The return value may be <code>null</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static File readFile(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    String s = readString(in);
-    File file = null;
-    if (s != null) {
-      file = new File(s);
-    }
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read File {}", file);
-    }
-
-    return file;
-  }
-
-  /**
-   * Writes an instance of <code>InetAddress</code> to a
-   * <code>DataOutput</code>.  The <code>InetAddress</code> is data
-   * serialized by writing its {@link InetAddress#getAddress byte}
-   * representation to the <code>DataOutput</code>.  {@link
-   * #readInetAddress} converts the <code>byte</code> representation
-   * to an instance of <code>InetAddress</code> using {@link
-   * InetAddress#getAddress}.  As a result, if <code>address</code>
-   * is an instance of a user-defined subclass of
-   * <code>InetAddress</code> (that is, not an instance of one of the
-   * subclasses from the <code>java.net</code> package), its class
-   * will not be preserved.  In order to be able to read an instance
-   * of the user-defined class, {@link #writeObject(Object, DataOutput)} should be used.
-   * This method will handle a
-   * <code>null</code> value and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readInetAddress
-   */
-  public static void writeInetAddress(InetAddress address,
-                                      DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing InetAddress {}", address);
-    }
-
-    writeByteArray((address != null) ? address.getAddress() : null, out);
-  }
-
-  /**
-   * Reads an instance of <code>InetAddress</code> from a
-   * <code>DataInput</code>.
-   * The return value may be <code>null</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *         or the address read from <code>in</code> is unknown
-   *
-   * @see InetAddress#getAddress
-   */
-  public static InetAddress readInetAddress(DataInput in)
-    throws IOException {
-
-    InternalDataSerializer.checkIn(in);
-
-    byte[] address = readByteArray(in);
-    if (address == null) {
-      return null;
-    }
-
-    try {
-      InetAddress addr = InetAddress.getByAddress(address);
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read InetAddress {}", addr);
-      }
-      return addr;
-    } catch (UnknownHostException ex) {
-      IOException ex2 = new IOException(LocalizedStrings.DataSerializer_WHILE_READING_AN_INETADDRESS.toLocalizedString());
-      ex2.initCause(ex);
-      throw ex2;
-    }
-
-  }
-
-  /**
-   * Writes an instance of <code>String</code> to a
-   * <code>DataOutput</code>.
-   * This method will handle a
-   * <code>null</code> value and not throw a
-   * <code>NullPointerException</code>.
-   * <p>As of 5.7 strings longer than 0xFFFF can be serialized.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readString
-   */
-  public static void writeString(String value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    final boolean isDebugEnabled = logger.isTraceEnabled(LogMarker.SERIALIZER);
-    if (isDebugEnabled) {
-      logger.trace(LogMarker.SERIALIZER, "Writing String \"{}\"", value);
-    }
-
-    if (value == null) {
-      if (isDebugEnabled) {
-        logger.trace(LogMarker.SERIALIZER, "Writing NULL_STRING");
-      }
-      out.writeByte(DSCODE.NULL_STRING);
-
-    } else {
-      // [bruce] writeUTF is expensive - it creates a char[] to fetch
-      // the string's contents, iterates over the array to compute the
-      // encoded length, creates a byte[] to hold the encoded bytes,
-      // iterates over the char[] again to create the encode bytes,
-      // then writes the bytes.  Since we usually deal with ISO-8859-1
-      // strings, we can accelerate this by accessing chars directly
-      // with charAt and fill a single-byte buffer.  If we run into
-      // a multibyte char, we revert to using writeUTF()
-      int len = value.length();
-      int utfLen = len; // added for bug 40932
-      for (int i=0; i<len; i++) {
-        char c = value.charAt(i);
-        if ((c <= 0x007F) && (c >= 0x0001)) {
-          // nothing needed
-        } else if (c > 0x07FF) {
-          utfLen += 2;
-        } else {
-          utfLen += 1;
-        }
-        // Note we no longer have an early out when we detect the first
-        // non-ascii char because we need to compute the utfLen for bug 40932.
-        // This is not a performance problem because most strings are ascii
-        // and they never did the early out.
-      }
-      boolean writeUTF = utfLen > len;
-      if (writeUTF) {
-        if (utfLen > 0xFFFF) {
-          if (isDebugEnabled) {
-            logger.trace(LogMarker.SERIALIZER, "Writing utf HUGE_STRING of len={}", len);
-          }
-          out.writeByte(DSCODE.HUGE_STRING);
-          out.writeInt(len);
-          out.writeChars(value);
-        } else {
-          if (isDebugEnabled) {
-            logger.trace(LogMarker.SERIALIZER, "Writing utf STRING of len={}", len);
-          }
-          out.writeByte(DSCODE.STRING);
-          out.writeUTF(value);
-        }
-      }
-      else {
-        if (len > 0xFFFF) {
-          if (isDebugEnabled) {
-            logger.trace(LogMarker.SERIALIZER, "Writing HUGE_STRING_BYTES of len={}", len);
-          }
-          out.writeByte(DSCODE.HUGE_STRING_BYTES);
-          out.writeInt(len);
-          out.writeBytes(value);
-        } else {
-          if (isDebugEnabled) {
-            logger.trace(LogMarker.SERIALIZER, "Writing STRING_BYTES of len={}", len);
-          }
-          out.writeByte(DSCODE.STRING_BYTES);
-          out.writeShort(len);
-          out.writeBytes(value);
-        }
-      }
-    }
-  }
-
-  /**
-   * Reads an instance of <code>String</code> from a
-   * <code>DataInput</code>.  The return value may be
-   * <code>null</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeString
-   */
-  public static String readString(DataInput in) throws IOException {
-    return InternalDataSerializer.readString(in, in.readByte());
-  }
-
-  /**
-   * Writes an instance of <code>Boolean</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   * @throws NullPointerException if value is null.
-   *
-   * @see #readBoolean
-   */
-  public static void writeBoolean(Boolean value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Boolean {}", value);
-    }
-
-    out.writeBoolean(value.booleanValue());
-  }
-
-  /**
-   * Reads an instance of <code>Boolean</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Boolean readBoolean(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    Boolean value = Boolean.valueOf(in.readBoolean());
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Boolean {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes an instance of <code>Character</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   * @throws NullPointerException if value is null.
-   *
-   * @see #readCharacter
-   */
-  public static void writeCharacter(Character value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Character {}", value);
-    }
-
-    out.writeChar(value.charValue());
-  }
-
-  /**
-   * Reads an instance of <code>Character</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Character readCharacter(DataInput in)
-    throws IOException {
-
-    InternalDataSerializer.checkIn(in);
-
-    Character value = Character.valueOf(in.readChar());
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Character {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes an instance of <code>Byte</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   * @throws NullPointerException if value is null.
-   *
-   * @see #readByte
-   */
-  public static void writeByte(Byte value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Byte {}", value);
-    }
-
-    out.writeByte(value.byteValue());
-  }
-
-  /**
-   * Reads an instance of <code>Byte</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Byte readByte(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    Byte value = Byte.valueOf(in.readByte());
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Byte {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes an instance of <code>Short</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   * @throws NullPointerException if value is null.
-   *
-   * @see #readShort
-   */
-  public static void writeShort(Short value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Short {}", value);
-    }
-
-    out.writeShort(value.shortValue());
-  }
-
-  /**
-   * Reads an instance of <code>Short</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Short readShort(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    Short value = Short.valueOf(in.readShort());
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Short {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes an instance of <code>Integer</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   * @throws NullPointerException if value is null.
-   *
-   * @see #readInteger
-   */
-  public static void writeInteger(Integer value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Integer {}", value);
-    }
-
-    out.writeInt(value.intValue());
-  }
-
-  /**
-   * Reads an instance of <code>Integer</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Integer readInteger(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    Integer value = Integer.valueOf(in.readInt());
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Integer {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes an instance of <code>Long</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   * @throws NullPointerException if value is null.
-   *
-   * @see #readLong
-   */
-  public static void writeLong(Long value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Long {}", value);
-    }
-
-    out.writeLong(value.longValue());
-  }
-
-  /**
-   * Reads an instance of <code>Long</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Long readLong(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    Long value = Long.valueOf(in.readLong());
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Long {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes an instance of <code>Float</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   * @throws NullPointerException if value is null.
-   *
-   * @see #readFloat
-   */
-  public static void writeFloat(Float value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Float {}", value);
-    }
-
-    out.writeFloat(value.floatValue());
-  }
-
-  /**
-   * Reads an instance of <code>Float</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Float readFloat(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    Float value = Float.valueOf(in.readFloat());
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Float {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes an instance of <code>Double</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   * @throws NullPointerException if value is null.
-   *
-   * @see #readDouble
-   */
-  public static void writeDouble(Double value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Double {}", value);
-    }
-
-    out.writeDouble(value.doubleValue());
-  }
-
-  /**
-   * Reads an instance of <code>Double</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static Double readDouble(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    Double value = Double.valueOf(in.readDouble());
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Double {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive <code>boolean</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeBoolean
-   * @since 5.1
-   */
-  public static void writePrimitiveBoolean(boolean value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Boolean {}", value);
-    }
-
-    out.writeBoolean(value);
-  }
-
-  /**
-   * Reads a primitive <code>boolean</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @see DataInput#readBoolean
-   * @since 5.1
-   */
-  public static boolean readPrimitiveBoolean(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    boolean value = in.readBoolean();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Boolean {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive <code>byte</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeByte
-   * @since 5.1
-   */
-  public static void writePrimitiveByte(byte value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Byte {}", value);
-    }
-
-    out.writeByte(value);
-  }
-
-  /**
-   * Reads a primitive <code>byte</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @see DataInput#readByte
-   * @since 5.1
-   */
-  public static byte readPrimitiveByte(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    byte value = in.readByte();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Byte {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive  <code>char</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeChar
-   * @since 5.1
-   */
-  public static void writePrimitiveChar(char value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Char {}", value);
-    }
-
-    out.writeChar(value);
-  }
-
-  /**
-   * Reads a primitive <code>char</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @see DataInput#readChar
-   * @since 5.1
-   */
-  public static char readPrimitiveChar(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    char value = in.readChar();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Char {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive <code>short</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeShort
-   * @since 5.1
-   */
-  public static void writePrimitiveShort(short value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Short {}", value);
-    }
-
-    out.writeShort(value);
-  }
-
-  /**
-   * Reads a primitive <code>short</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @see DataInput#readShort
-   * @since 5.1
-   */
-  public static short readPrimitiveShort(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    short value = in.readShort();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Short {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive <code>int</code> as an unsigned byte to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeByte
-   * @see DataInput#readUnsignedByte
-   * @since 5.1
-   */
-  public static void writeUnsignedByte(int value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Unsigned Byte {}", value);
-    }
-
-    out.writeByte(value);
-  }
-
-  /**
-   * Reads a primitive <code>int</code> as an unsigned byte from a
-   * <code>DataInput</code> using {@link DataInput#readUnsignedByte}.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @since 5.1
-   */
-  public static int readUnsignedByte(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    int value = in.readUnsignedByte();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Unsigned Byte {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive <code>int</code> as an unsigned short to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeShort
-   * @see DataInput#readUnsignedShort
-   * @since 5.1
-   */
-  public static void writeUnsignedShort(int value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Unsigned Short {}", value);
-    }
-
-    out.writeShort(value);
-  }
-
-  /**
-   * Reads a primitive <code>int</code> as an unsigned short from a
-   * <code>DataInput</code> using {@link DataInput#readUnsignedShort}.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @since 5.1
-   */
-  public static int readUnsignedShort(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    int value = in.readUnsignedShort();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Unsigned Short {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive <code>int</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeInt
-   */
-  public static void writePrimitiveInt(int value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Integer {}", value);
-    }
-
-    out.writeInt(value);
-  }
-
-  /**
-   * Reads a primitive <code>int</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @see DataInput#readInt
-   * @since 5.1
-   */
-  public static int readPrimitiveInt(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    int value = in.readInt();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Integer {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive <code>long</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeLong
-   * @since 5.1
-   */
-  public static void writePrimitiveLong(long value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Long {}", value);
-    }
-
-    out.writeLong(value);
-  }
-
-  /**
-   * Reads a primitive <code>long</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @see DataInput#readLong
-   * @since 5.1
-   */
-  public static long readPrimitiveLong(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    long value = in.readLong();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Long {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primitive <code>float</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeFloat
-   * @since 5.1
-   */
-  public static void writePrimitiveFloat(float value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Float {}", value);
-    }
-
-    out.writeFloat(value);
-  }
-
-  /**
-   * Reads a primitive <code>float</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @see DataInput#readFloat
-   * @since 5.1
-   */
-  public static float readPrimitiveFloat(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    float value = in.readFloat();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Float {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes a primtive <code>double</code> to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see DataOutput#writeDouble
-   * @since 5.1
-   */
-  public static void writePrimitiveDouble(double value, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Double {}", value);
-    }
-
-    out.writeDouble(value);
-  }
-
-  /**
-   * Reads a primitive <code>double</code> from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @see DataInput#readDouble
-   * @since 5.1
-   */
-  public static double readPrimitiveDouble(DataInput in) throws IOException {
-    InternalDataSerializer.checkIn(in);
-
-    double value = in.readDouble();
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Read Double {}", value);
-    }
-    return value;
-  }
-
-  /**
-   * Writes an array of <code>byte</code>s to a
-   * <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readByteArray
-   */
-  public static void writeByteArray(byte[] array, DataOutput out)
-    throws IOException {
-    int len = 0;
-    if (array != null) {
-      len = array.length;
-    }
-    writeByteArray(array, len, out);
-  }
-
-  /**
-   * Writes the first <code>len</code> elements
-   * of an array of <code>byte</code>s to a
-   * <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @param len the actual number of entries to write. If len is greater
-   * than then length of the array then the entire array is written.
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readByteArray
-   */
-  public static void writeByteArray(byte[] array, int len, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int length = len; // to avoid warnings about parameter assignment
-    
-    if (array == null) {
-      length = -1;
-    } else {
-      if (length > array.length) {
-        length = array.length;
-      }
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing byte array of length {}", length);
-    }
-    if (length > 0) {
-      out.write(array, 0, length);
-    }
-  }
-  /**
-   * Serialize the given object <code>obj</code> into a byte array
-   * using {@link #writeObject(Object, DataOutput)} and then writes the byte array
-   * to the given data output <code>out</code> in the same format
-   * {@link #writeByteArray(byte[], DataOutput)} does.
-   * This method will serialize a
-   * <code>null</code> obj and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @param obj the object to serialize and write
-   * @param out the data output to write the byte array to
-   * @throws IllegalArgumentException
-   *         if a problem occurs while serialize <code>obj</code>
-   * @throws IOException
-   *         if a problem occurs while writing to <code>out</code>
-   *
-   * @see #readByteArray
-   * @since 5.0.2
-   */
-  public static void writeObjectAsByteArray(Object obj, DataOutput out)
-    throws IOException {
-    Object object = obj;
-    if (obj instanceof CachedDeserializable) {
-      if (obj instanceof StoredObject) {
-        StoredObject so = (StoredObject)obj;
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "writeObjectAsByteArray StoredObject");
-        }
-        so.sendAsByteArray(out);
-        return;
-      } else {
-        object = ((CachedDeserializable) obj).getSerializedValue();
-      }
-    }
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      if (object == null) {
-        logger.trace(LogMarker.SERIALIZER, "writeObjectAsByteArray null");
-      } else {
-        logger.trace(LogMarker.SERIALIZER, "writeObjectAsByteArray obj.getClass={}", object.getClass());
-      }
-    }
-    if (object instanceof byte[] || object == null) {
-      writeByteArray((byte[])object, out);
-    } else if (out instanceof ObjToByteArraySerializer) {
-      ((ObjToByteArraySerializer)out).writeAsSerializedByteArray(object);
-    }/*else if (obj instanceof Sendable) {
-      ((Sendable)obj).sendTo(out); 
-    } */ 
-    else {
-      HeapDataOutputStream hdos;
-      if (object instanceof HeapDataOutputStream) {
-        hdos = (HeapDataOutputStream)object;
-      } else {
-        Version v = InternalDataSerializer.getVersionForDataStreamOrNull(out);
-        if (v == null) {
-          v = Version.CURRENT;
-        }
-        hdos = new HeapDataOutputStream(v);
-        try {
-          DataSerializer.writeObject(object, hdos);
-        } catch (IOException e) {
-          RuntimeException e2 = new IllegalArgumentException(LocalizedStrings.DataSerializer_PROBELM_WHILE_SERIALIZING.toLocalizedString());
-          e2.initCause(e);
-          throw e2;
-        }
-      }
-      InternalDataSerializer.writeArrayLength(hdos.size(), out);
-      hdos.sendTo(out);
-    }
-  }
-
-  /**
-   * Reads an array of <code>byte</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeByteArray(byte[], DataOutput)
-   */
-  public static byte[] readByteArray(DataInput in)
-    throws IOException {
-
-      InternalDataSerializer.checkIn(in);
-
-      int length = InternalDataSerializer.readArrayLength(in);
-      if (length == -1) {
-        return null;
-      } else {
-        byte[] array = new byte[length];
-        in.readFully(array, 0, length);
-
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "Read byte array of length {}", length);
-        }
-
-        return array;
-      }
-    }
-
-  /**
-   * Writes an array of <code>String</code>s to a
-   * <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readStringArray
-   * @see #writeString
-   */
-  public static void writeStringArray(String[] array, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int length;
-    if (array == null) {
-      length = -1;
-    } else {
-      length = array.length;
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing String array of length {}", length);
-    }
-    if (length > 0) {
-      for (int i = 0; i < length; i++) {
-        writeString(array[i], out);
-      }
-    }
-  }
-
-  /**
-   * Reads an array of <code>String</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeStringArray
-   */
-  public static String[] readStringArray(DataInput in)
-    throws IOException {
-
-      InternalDataSerializer.checkIn(in);
-
-      int length = InternalDataSerializer.readArrayLength(in);
-      if (length == -1) {
-        return null;
-      } else {
-        String[] array = new String[length];
-        for (int i = 0; i < length; i++) {
-          array[i] = readString(in);
-        }
-
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "Read String array of length {}", length);
-        }
-
-        return array;
-      }
-    }
-
-  /**
-   * Writes an array of <code>short</code>s to a
-   * <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readShortArray
-   */
-  public static void writeShortArray(short[] array, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int length;
-    if (array == null) {
-      length = -1;
-    } else {
-      length = array.length;
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing short array of length {}", length);
-    }
-    if (length > 0) {
-      for (int i = 0; i < length; i++) {
-        out.writeShort(array[i]);
-      }
-    }
-  }
-
-  /**
-   * Reads an array of <code>short</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeShortArray
-   */
-  public static short[] readShortArray(DataInput in)
-    throws IOException {
-
-      InternalDataSerializer.checkIn(in);
-
-      int length = InternalDataSerializer.readArrayLength(in);
-      if (length == -1) {
-        return null;
-      } else {
-        short[] array = new short[length];
-        for (int i = 0; i < length; i++) {
-          array[i] = in.readShort();
-        }
-
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "Read short array of length {}", length);
-        }
-
-        return array;
-      }
-    }
-
-  /**
-   * Writes an array of <code>char</code>s to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readCharArray
-   * @since 5.7
-   */
-  public static void writeCharArray(char[] array, DataOutput out)
-      throws IOException {
-
-    InternalDataSerializer.writeCharArray(array, array != null ? array.length
-        : -1, out);
-  }
-
-  /**
-   * Reads an array of <code>char</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeCharArray
-   * @since 5.7 
-   */
-  public static char[] readCharArray(DataInput in)
-    throws IOException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int length = InternalDataSerializer.readArrayLength(in);
-    if (length == -1) {
-      return null;
-    } else {
-      char[] array = new char[length];
-      for (int i = 0; i < length; i++) {
-        array[i] = in.readChar();
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read char array of length {}", length);
-      }
-
-      return array;
-    }
-  }
-  /**
-   * Writes an array of <code>boolean</code>s to a
-   * <code>DataOutput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readBooleanArray
-   * @since 5.7
-   */
-  public static void writeBooleanArray(boolean[] array, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int length;
-    if (array == null) {
-      length = -1;
-    } else {
-      length = array.length;
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing boolean array of length {}", length);
-    }
-    if (length > 0) {
-      for (int i = 0; i < length; i++) {
-        out.writeBoolean(array[i]);
-      }
-    }
-  }
-
-  /**
-   * Reads an array of <code>boolean</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeBooleanArray
-   * @since 5.7
-   */
-  public static boolean[] readBooleanArray(DataInput in)
-    throws IOException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int length = InternalDataSerializer.readArrayLength(in);
-    if (length == -1) {
-      return null;
-    } else {
-      boolean[] array = new boolean[length];
-      for (int i = 0; i < length; i++) {
-        array[i] = in.readBoolean();
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read boolean array of length {}", length);
-      }
-
-      return array;
-    }
-  }
-  /**
-   * Writes an <code>int</code> array to a <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readIntArray
-   */
-  public static void writeIntArray(int[] array, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int length;
-    if (array == null) {
-      length = -1;
-    } else {
-      length = array.length;
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing int array of length {}", length);
-    }
-    if (length > 0) {
-      for (int i = 0; i < length; i++) {
-        out.writeInt(array[i]);
-      }
-    }
-  }
-
-  /**
-   * Reads an <code>int</code> array from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeIntArray
-   */
-  public static int[] readIntArray(DataInput in)
-    throws IOException {
-
-      InternalDataSerializer.checkIn(in);
-
-      int length = InternalDataSerializer.readArrayLength(in);
-      if (length == -1) {
-        return null;
-      } else {
-        int[] array = new int[length];
-        for (int i = 0; i < length; i++) {
-          array[i] = in.readInt();
-        }
-
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "Read int array of length {}", length);
-        }
-
-        return array;
-      }
-    }
-
-  /**
-   * Writes an array of <code>long</code>s to a
-   * <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readLongArray
-   */
-  public static void writeLongArray(long[] array, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int length;
-    if (array == null) {
-      length = -1;
-    } else {
-      length = array.length;
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing long array of length {}", length);
-    }
-    if (length > 0) {
-      for (int i = 0; i < length; i++) {
-        out.writeLong(array[i]);
-      }
-    }
-  }
-
-  /**
-   * Reads an array of <code>long</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeLongArray
-   */
-  public static long[] readLongArray(DataInput in)
-    throws IOException {
-
-      InternalDataSerializer.checkIn(in);
-
-      int length = InternalDataSerializer.readArrayLength(in);
-      if (length == -1) {
-        return null;
-      } else {
-        long[] array = new long[length];
-        for (int i = 0; i < length; i++) {
-          array[i] = in.readLong();
-        }
-
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "Read long array of length {}", length);
-        }
-
-        return array;
-      }
-    }
-
-  /**
-   * Writes an array of <code>float</code>s to a
-   * <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readFloatArray
-   */
-  public static void writeFloatArray(float[] array, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int length;
-    if (array == null) {
-      length = -1;
-    } else {
-      length = array.length;
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing float array of length {}", length);
-    }
-    if (length > 0) {
-      for (int i = 0; i < length; i++) {
-        out.writeFloat(array[i]);
-      }
-    }
-  }
-
-  /**
-   * Reads an array of <code>float</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeFloatArray
-   */
-  public static float[] readFloatArray(DataInput in)
-    throws IOException {
-
-      InternalDataSerializer.checkIn(in);
-
-      int length = InternalDataSerializer.readArrayLength(in);
-      if (length == -1) {
-        return null;
-      } else {
-        float[] array = new float[length];
-        for (int i = 0; i < length; i++) {
-          array[i] = in.readFloat();
-        }
-
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "Read float array of length {}", length);
-        }
-
-        return array;
-      }
-    }
-
-  /**
-   * Writes an array of <code>double</code>s to a
-   * <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readDoubleArray
-   */
-  public static void writeDoubleArray(double[] array, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int length;
-    if (array == null) {
-      length = -1;
-    } else {
-      length = array.length;
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing double array of length {}", length);
-    }
-    if (length > 0) {
-      for (int i = 0; i < length; i++) {
-        out.writeDouble(array[i]);
-      }
-    }
-  }
-
-  /**
-   * Reads an array of <code>double</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeDoubleArray
-   */
-  public static double[] readDoubleArray(DataInput in)
-    throws IOException {
-
-      InternalDataSerializer.checkIn(in);
-
-      int length = InternalDataSerializer.readArrayLength(in);
-      if (length == -1) {
-        return null;
-      } else {
-        double[] array = new double[length];
-        for (int i = 0; i < length; i++) {
-          array[i] = in.readDouble();
-        }
-
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "Read double array of length {}", length);
-        }
-
-        return array;
-      }
-    }
-
-  /**
-   * Writes an array of <code>Object</code>s to a
-   * <code>DataOutput</code>.
-   * This method will serialize a
-   * <code>null</code> array and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readObjectArray
-   * @see #writeObject(Object, DataOutput)
-   */
-  public static void writeObjectArray(Object[] array, DataOutput out)
-    throws IOException {
-    InternalDataSerializer.writeObjectArray(array, out, false);
-  }
-  
-  /**
-   * Reads an array of <code>Object</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   *
-   * @see #writeObjectArray
-   * @see #readObject
-   */
-  public static Object[] readObjectArray(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-      InternalDataSerializer.checkIn(in);
-
-      int length = InternalDataSerializer.readArrayLength(in);
-      if (length == -1) {
-        return null;
-      } else {
-        Class<?> c = null;
-        byte typeCode = in.readByte();
-        String typeString = null;
-        if (typeCode == DSCODE.CLASS) {
-          typeString = readString(in);
-        }
-        
-        GemFireCacheImpl cache = GemFireCacheImpl.getInstance();
-        boolean lookForPdxInstance = false;
-        ClassNotFoundException cnfEx = null;
-        if (typeCode == DSCODE.CLASS
-            && cache != null && cache.getPdxReadSerializedByAnyGemFireServices()) {
-          try {
-            c = InternalDataSerializer.getCachedClass(typeString);
-            lookForPdxInstance = true;
-          } catch (ClassNotFoundException ignore) {
-            c = Object.class;
-            cnfEx = ignore;
-          }
-        } else {
-          if (typeCode == DSCODE.CLASS) {
-            c = InternalDataSerializer.getCachedClass(typeString);
-          } else {
-            c = InternalDataSerializer.decodePrimitiveClass(typeCode);
-          }
-        }
-        Object o = null;
-        if (length > 0) {
-          o = readObject(in);
-          if (lookForPdxInstance && o instanceof PdxInstance) {
-            lookForPdxInstance = false;
-            c = Object.class;
-          }
-        }
-        Object[] array = (Object[]) Array.newInstance(c, length);
-        if (length > 0) {
-          array[0] = o;
-        }
-        for (int i = 1; i < length; i++) {
-          o = readObject(in);
-          if (lookForPdxInstance && o instanceof PdxInstance) {
-            // create an Object[] and copy all the entries we already did into it
-            lookForPdxInstance = false;
-            c = Object.class;
-            Object[] newArray = (Object[])Array.newInstance(c, length);
-            System.arraycopy(array, 0, newArray, 0, i);
-            array = newArray;
-          }
-          array[i] = o;
-        }
-        if (lookForPdxInstance && cnfEx != null && length > 0) {
-          // We have a non-empty array and didn't find any
-          // PdxInstances in it. So we should have been able
-          // to load the element type.
-          // Note that empty arrays in this case will deserialize
-          // as an Object[] since we can't tell if the element
-          // type is a pdx one.
-          throw cnfEx;
-        }
-
-        if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-          logger.trace(LogMarker.SERIALIZER, "Read Object array of length {}", length);
-        }
-
-        return array;
-      }
-    }
-  
-  /**
-   * Writes an array of <tt>byte[]</tt> to a <tt>DataOutput</tt>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <tt>out</tt>.
-   *
-   */
-  public static void writeArrayOfByteArrays(byte[][] array, DataOutput out)
-  throws IOException {    
-    
-    InternalDataSerializer.checkOut(out);
-    int length;
-    if (array == null) {
-      length = -1;
-    }
-    else {
-      length = array.length;
-    }
-    InternalDataSerializer.writeArrayLength(length, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing byte[][] of length {}", length);
-    }
-    if (length >= 0) {
-      for (int i = 0; i < length; i++) {
-        writeByteArray(array[i], out);
-      }
-    }
-  }
-  
-  /**
-   * Reads an array of <code>byte[]</code>s from a
-   * <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   */
-  public static byte[][] readArrayOfByteArrays(DataInput in)
-  throws IOException, ClassNotFoundException {
-    
-    InternalDataSerializer.checkIn(in);
-    
-    int length = InternalDataSerializer.readArrayLength(in);
-    if (length == -1) {
-      return null;
-    } else {
-      byte[][] array = new byte[length][];
-      for (int i = 0; i < length; i++) {
-        array[i] = readByteArray(in);
-      }
-      
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read byte[][] of length {}", length);
-      }
-      
-      return array;
-    }
-  }
-  
-  
-  /**
-   * Writes an <code>ArrayList</code> to a <code>DataOutput</code>.
-   * Note that even though <code>list</code> may be an instance of a
-   * subclass of <code>ArrayList</code>, <code>readArrayList</code>
-   * will always return an instance of <code>ArrayList</code>,
-   * <B>not</B> an instance of the subclass.  To preserve the class
-   * type of <code>list</code>, {@link #writeObject(Object, DataOutput)} should be used
-   * for data serialization.
-   * This method will serialize a
-   * <code>null</code> list and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readArrayList
-   */
-  public static void writeArrayList(ArrayList<?> list, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int size;
-    if (list == null) {
-      size = -1;
-    } else {
-      size = list.size();
-    }
-    InternalDataSerializer.writeArrayLength(size, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing ArrayList with {} elements: {}", size, list);
-    }
-    if (size > 0) {
-      for (int i=0; i < size; i++) {
-        writeObject(list.get(i), out);
-      }
-    }
-  }
-  
-  
-
-  /**
-   * Reads an <code>ArrayList</code> from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>ArrayList</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeArrayList
-   */
-  public static <E> ArrayList<E> readArrayList(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      ArrayList<E> list = new ArrayList<E>(size);
-      for (int i = 0; i < size; i++) {
-        E element = DataSerializer.<E>readObject(in);
-        list.add(element);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read ArrayList with {} elements: {}", size, list);
-      }
-
-      return list;
-    }
-  }
-
-  /**
-   * Writes an <code>Vector</code> to a <code>DataOutput</code>.
-   * Note that even though <code>list</code> may be an instance of a
-   * subclass of <code>Vector</code>, <code>readVector</code>
-   * will always return an instance of <code>Vector</code>,
-   * <B>not</B> an instance of the subclass.  To preserve the class
-   * type of <code>list</code>, {@link #writeObject(Object, DataOutput)} should be used
-   * for data serialization.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readVector
-   * @since 5.7
-   */
-  public static void writeVector(Vector<?> list, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int size;
-    if (list == null) {
-      size = -1;
-    } else {
-      size = list.size();
-    }
-    InternalDataSerializer.writeArrayLength(size, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Vector with {} elements: {}", size, list);
-    }
-    if (size > 0) {
-      for (int i=0; i < size; i++) {
-        writeObject(list.get(i), out);
-      }
-    }
-  }
-
-  /**
-   * Reads an <code>Vector</code> from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>Vector</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeVector
-   * @since 5.7
-   */
-  public static <E> Vector<E> readVector(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      Vector<E> list = new Vector<E>(size);
-      for (int i = 0; i < size; i++) {
-        E element = DataSerializer.<E>readObject(in);
-        list.add(element);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read Vector with {} elements: {}", size, list);
-      }
-
-      return list;
-    }
-  }
-
-  /**
-   * Writes an <code>Stack</code> to a <code>DataOutput</code>.
-   * Note that even though <code>list</code> may be an instance of a
-   * subclass of <code>Stack</code>, <code>readStack</code>
-   * will always return an instance of <code>Stack</code>,
-   * <B>not</B> an instance of the subclass.  To preserve the class
-   * type of <code>list</code>, {@link #writeObject(Object, DataOutput)} should be used
-   * for data serialization.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readStack
-   * @since 5.7
-   */
-  public static void writeStack(Stack<?> list, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int size;
-    if (list == null) {
-      size = -1;
-    } else {
-      size = list.size();
-    }
-    InternalDataSerializer.writeArrayLength(size, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing Stack with {} elements: {}", size, list);
-    }
-    if (size > 0) {
-      for (int i=0; i < size; i++) {
-        writeObject(list.get(i), out);
-      }
-    }
-  }
-
-  /**
-   * Reads an <code>Stack</code> from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>Stack</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeStack
-   * @since 5.7
-   */
-  public static <E> Stack<E> readStack(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      Stack<E> list = new Stack<E>();
-      for (int i = 0; i < size; i++) {
-        E element = DataSerializer.<E>readObject(in);
-        list.add(element);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read Stack with {} elements: {}", size, list);
-      }
-
-      return list;
-    }
-  }
-
-  /**
-   * Writes an <code>LinkedList</code> to a <code>DataOutput</code>.
-   * Note that even though <code>list</code> may be an instance of a
-   * subclass of <code>LinkedList</code>, <code>readLinkedList</code>
-   * will always return an instance of <code>LinkedList</code>,
-   * <B>not</B> an instance of the subclass.  To preserve the class
-   * type of <code>list</code>, {@link #writeObject(Object, DataOutput)} should be used
-   * for data serialization.
-   * This method will serialize a
-   * <code>null</code> list and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readLinkedList
-   */
-  public static void writeLinkedList(LinkedList<?> list, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int size;
-    if (list == null) {
-      size = -1;
-    } else {
-      size = list.size();
-    }
-    InternalDataSerializer.writeArrayLength(size, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing LinkedList with {} elements: {}", size, list);
-    }
-    if (size > 0) {
-      for (Object e: list) {
-        writeObject(e, out);
-      }
-    }
-  }
-
-  /**
-   * Reads an <code>LinkedList</code> from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>LinkedList</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeLinkedList
-   */
-  public static <E> LinkedList<E> readLinkedList(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      LinkedList<E> list = new LinkedList<E>();
-      for (int i = 0; i < size; i++) {
-        E element = DataSerializer.<E>readObject(in);
-        list.add(element);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read LinkedList with {} elements: {}", size, list);
-      }
-
-      return list;
-    }
-  }
-
-  /**
-   * Writes a <code>HashSet</code> to a <code>DataOutput</code>.  Note
-   * that even though <code>set</code> may be an instance of a
-   * subclass of <code>HashSet</code>, <code>readHashSet</code> will
-   * always return an instance of <code>HashSet</code>, <B>not</B> an
-   * instance of the subclass.  To preserve the class type of
-   * <code>set</code>, {@link #writeObject(Object, DataOutput)} should be used for data
-   * serialization.
-   * This method will serialize a
-   * <code>null</code> set and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readHashSet
-   */
-  public static void writeHashSet(HashSet<?> set, DataOutput out)
-    throws IOException {
-    InternalDataSerializer.writeSet(set, out);
-  }
-
-  /**
-   * Reads a <code>HashSet</code> from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>HashSet</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeHashSet
-   */
-  public static <E> HashSet<E> readHashSet(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      HashSet<E> set = new HashSet<E>(size);
-      for (int i = 0; i < size; i++) {
-        E element = DataSerializer.<E>readObject(in);
-        set.add(element);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read HashSet with {} elements: {}", size, set);
-      }
-
-      return set;
-    }
-  }
-
-  /**
-   * Writes a <code>LinkedHashSet</code> to a <code>DataOutput</code>.  Note
-   * that even though <code>set</code> may be an instance of a
-   * subclass of <code>LinkedHashSet</code>, <code>readLinkedHashSet</code> will
-   * always return an instance of <code>LinkedHashSet</code>, <B>not</B> an
-   * instance of the subclass.  To preserve the class type of
-   * <code>set</code>, {@link #writeObject(Object, DataOutput)} should be used for data
-   * serialization.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readLinkedHashSet
-   * @since 5.7
-   */
-  public static void writeLinkedHashSet(LinkedHashSet<?> set, DataOutput out)
-    throws IOException {
-    InternalDataSerializer.writeSet(set, out);
-  }
-
-  /**
-   * Reads a <code>LinkedHashSet</code> from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>LinkedHashSet</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeLinkedHashSet
-   * @since 5.7
-   */
-  public static <E> LinkedHashSet<E> readLinkedHashSet(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      LinkedHashSet<E> set = new LinkedHashSet<E>(size);
-      for (int i = 0; i < size; i++) {
-        E element = DataSerializer.<E>readObject(in);
-        set.add(element);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read LinkedHashSet with {} elements: {}", size, set);
-      }
-
-      return set;
-    }
-  }
-
-  /**
-   * Writes a <code>HashMap</code> to a <code>DataOutput</code>.  Note
-   * that even though <code>map</code> may be an instance of a
-   * subclass of <code>HashMap</code>, <code>readHashMap</code> will
-   * always return an instance of <code>HashMap</code>, <B>not</B> an
-   * instance of the subclass.  To preserve the class type of
-   * <code>map</code>, {@link #writeObject(Object, DataOutput)} should be used for data
-   * serialization.
-   * This method will serialize a
-   * <code>null</code> map and not throw a
-   * <code>NullPointerException</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readHashMap
-   */
-  public static void writeHashMap(Map<?,?> map, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int size;
-    if (map == null) {
-      size = -1;
-    } else {
-      size = map.size();
-    }
-    InternalDataSerializer.writeArrayLength(size, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing HashMap with {} elements: {}", size, map);
-    }
-    if (size > 0) {
-      for (Map.Entry<?,?> entry: map.entrySet()) {
-        writeObject(entry.getKey(), out);
-        writeObject(entry.getValue(), out);
-      }
-    }
-  }
-
-  /**
-   * Reads a <code>HashMap</code> from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>HashMap</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeHashMap
-   */
-  public static <K,V> HashMap<K,V> readHashMap(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      HashMap<K,V> map = new HashMap<K,V>(size);
-      for (int i = 0; i < size; i++) {
-        K key = DataSerializer.<K>readObject(in);
-        V value = DataSerializer.<V>readObject(in);
-        map.put(key, value);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read HashMap with {} elements: {}", size, map);
-      }
-
-      return map;
-    }
-  }
-
-  /**
-   * Writes a <code>IdentityHashMap</code> to a <code>DataOutput</code>.  Note
-   * that even though <code>map</code> may be an instance of a
-   * subclass of <code>IdentityHashMap</code>, <code>readIdentityHashMap</code> will
-   * always return an instance of <code>IdentityHashMap</code>, <B>not</B> an
-   * instance of the subclass.  To preserve the class type of
-   * <code>map</code>, {@link #writeObject(Object, DataOutput)} should be used for data
-   * serialization.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readIdentityHashMap
-   */
-  public static void writeIdentityHashMap(IdentityHashMap<?,?> map, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int size;
-    if (map == null) {
-      size = -1;
-    } else {
-      size = map.size();
-    }
-    InternalDataSerializer.writeArrayLength(size, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing IdentityHashMap with {} elements: {}", size, map);
-    }
-    if (size > 0) {
-      for (Map.Entry<?,?> entry: map.entrySet()){
-        writeObject(entry.getKey(), out);
-        writeObject(entry.getValue(), out);
-      }
-    }
-  }
-
-  /**
-   * Reads a <code>IdentityHashMap</code> from a <code>DataInput</code>.
-   * Note that key identity is not preserved unless the keys belong to a class
-   * whose serialization preserves identity.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>IdentityHashMap</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeIdentityHashMap
-   */
-  public static <K,V> IdentityHashMap<K,V> readIdentityHashMap(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      IdentityHashMap<K,V> map = new IdentityHashMap<K,V>(size);
-      for (int i = 0; i < size; i++) {
-        K key = DataSerializer.<K>readObject(in);
-        V value = DataSerializer.<V>readObject(in);
-        map.put(key, value);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read IdentityHashMap with {} elements: {}", size, map);
-      }
-
-      return map;
-    }
-  }
-
-  /**
-   * Writes a <code>ConcurrentHashMap</code> to a <code>DataOutput</code>.  Note
-   * that even though <code>map</code> may be an instance of a
-   * subclass of <code>ConcurrentHashMap</code>, <code>readConcurrentHashMap</code> will
-   * always return an instance of <code>ConcurrentHashMap</code>, <B>not</B> an
-   * instance of the subclass.  To preserve the class type of
-   * <code>map</code>, {@link #writeObject(Object, DataOutput)} should be used for data
-   * serialization.
-   * <P>At this time if {@link #writeObject(Object, DataOutput)} is called with an instance
-   * of ConcurrentHashMap then it will be serialized with normal java.io Serialization. So
-   * if you want the keys and values of a ConcurrentHashMap to take advantage of GemFire serialization
-   * it must be serialized with this method.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readConcurrentHashMap
-   * @since 6.6
-   */
-  public static void writeConcurrentHashMap(ConcurrentHashMap<?,?> map, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int size;
-    Collection<Map.Entry<?,?>> entrySnapshot = null;
-    if (map == null) {
-      size = -1;
-    } else {
-      // take a snapshot to fix bug 44562
-      entrySnapshot = new ArrayList<Map.Entry<?,?>>(map.entrySet());
-      size = entrySnapshot.size();
-    }
-    InternalDataSerializer.writeArrayLength(size, out);
-    if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-      logger.trace(LogMarker.SERIALIZER, "Writing ConcurrentHashMap with {} elements: {}", size, entrySnapshot);
-    }
-    if (size > 0) {
-      for (Map.Entry<?,?> entry: entrySnapshot) {
-        writeObject(entry.getKey(), out);
-        writeObject(entry.getValue(), out);
-      }
-    }
-  }
-
-  /**
-   * Reads a <code>ConcurrentHashMap</code> from a <code>DataInput</code>.
-   *
-   * @throws IOException
-   *         A problem occurs while reading from <code>in</code>
-   * @throws ClassNotFoundException
-   *         The class of one of the <Code>ConcurrentHashMap</code>'s
-   *         elements cannot be found.
-   *
-   * @see #writeConcurrentHashMap
-   * @since 6.6
-   */
-  public static <K,V> ConcurrentHashMap<K,V> readConcurrentHashMap(DataInput in)
-    throws IOException, ClassNotFoundException {
-
-    InternalDataSerializer.checkIn(in);
-
-    int size = InternalDataSerializer.readArrayLength(in);
-    if (size == -1) {
-      return null;
-    } else {
-      ConcurrentHashMap<K,V> map = new ConcurrentHashMap<K,V>(size);
-      for (int i = 0; i < size; i++) {
-        K key = DataSerializer.<K>readObject(in);
-        V value = DataSerializer.<V>readObject(in);
-        map.put(key, value);
-      }
-
-      if (logger.isTraceEnabled(LogMarker.SERIALIZER)) {
-        logger.trace(LogMarker.SERIALIZER, "Read ConcurrentHashMap with {} elements: {}", size, map);
-      }
-
-      return map;
-    }
-  }
-
-  /**
-   * Writes a <code>Hashtable</code> to a <code>DataOutput</code>.  Note
-   * that even though <code>map</code> may be an instance of a
-   * subclass of <code>Hashtable</code>, <code>readHashtable</code> will
-   * always return an instance of <code>Hashtable</code>, <B>not</B> an
-   * instance of the subclass.  To preserve the class type of
-   * <code>map</code>, {@link #writeObject(Object, DataOutput)} should be used for data
-   * serialization.
-   *
-   * @throws IOException
-   *         A problem occurs while writing to <code>out</code>
-   *
-   * @see #readHashtable
-   * @since 5.7
-   */
-  public static void writeHashtable(Hashtable<?,?> map, DataOutput out)
-    throws IOException {
-
-    InternalDataSerializer.checkOut(out);
-
-    int size;
-    if (map =

<TRUNCATED>


[13/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberBridgeServerImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberBridgeServerImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberBridgeServerImpl.java
deleted file mode 100644
index f38bd57..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberBridgeServerImpl.java
+++ /dev/null
@@ -1,234 +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.admin.internal;
-
-import java.io.Serializable;
-
-import com.gemstone.gemfire.InternalGemFireException;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.SystemMemberBridgeServer;
-import com.gemstone.gemfire.admin.SystemMemberCacheServer;
-import com.gemstone.gemfire.cache.server.ServerLoadProbe;
-import com.gemstone.gemfire.internal.admin.*;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * Implementation of an object used for managing cache servers.
- *
- * @author David Whitlock
- * @since 4.0
- */
-public class SystemMemberBridgeServerImpl
-  implements SystemMemberCacheServer, SystemMemberBridgeServer {
-
-  /** The VM in which the bridge server resides */
-  private final GemFireVM vm;
-
-  /** The cache server by this bridge server */
-  private CacheInfo cache;
-
-  /** Information about the bridge server */
-  private AdminBridgeServer bridgeInfo;
-
-  /////////////////////  Constructors  /////////////////////
-
-  /**
-   * Creates a new <code>SystemMemberBridgeServerImpl</code> that
-   * administers the given bridge server in the given VM.
-   */
-  protected SystemMemberBridgeServerImpl(SystemMemberCacheImpl cache,
-                                         AdminBridgeServer bridgeInfo)
-                                         
-    throws AdminException {
-
-    this.vm = cache.getVM();
-    this.cache = cache.getCacheInfo();
-    this.bridgeInfo = bridgeInfo;
-  }
-
-  ////////////////////  Instance Methods  ////////////////////
-
-  /**
-   * Throws an <code>AdminException</code> if this bridge server is
-   * running.
-   */
-  private void checkRunning() throws AdminException {
-    if (this.isRunning()) {
-      throw new AdminException(LocalizedStrings.SystemMemberBridgeServerImpl_CANNOT_CHANGE_THE_CONFIGURATION_OF_A_RUNNING_BRIDGE_SERVER.toLocalizedString());
-    }
-  }
-
-  public int getPort() {
-    return this.bridgeInfo.getPort();
-  }
-
-  public void setPort(int port) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setPort(port);
-  }
-
-  public void start() throws AdminException {
-    this.vm.startBridgeServer(this.cache, this.bridgeInfo);
-  }
-
-  public boolean isRunning() {
-    return this.bridgeInfo.isRunning();
-  }
-
-  public void stop() throws AdminException {
-    this.vm.stopBridgeServer(this.cache, this.bridgeInfo);
-  }
-
-  /**
-   * Returns the VM-unique id of this bridge server
-   */
-  protected int getBridgeId() {
-    return this.bridgeInfo.getId();
-  }
-
-  public void refresh() {
-    try {
-      this.bridgeInfo =
-        this.vm.getBridgeInfo(this.cache, this.bridgeInfo.getId());
-
-    } catch (AdminException ex) {
-      throw new InternalGemFireException(LocalizedStrings.SystemMemberBridgeServerImpl_UNEXPECTED_EXCEPTION_WHILE_REFRESHING.toLocalizedString(), ex);
-    }
-  }
-
-  public String getBindAddress() {
-    return this.bridgeInfo.getBindAddress();
-  }
-
-  public void setBindAddress(String address) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setBindAddress(address);
-  }
-
-  public String getHostnameForClients() {
-    return this.bridgeInfo.getHostnameForClients();
-  }
-
-  public void setHostnameForClients(String name) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setHostnameForClients(name);
-  }
-
-  public void setNotifyBySubscription(boolean b) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setNotifyBySubscription(b);
-  }
-
-  public boolean getNotifyBySubscription() {
-    return this.bridgeInfo.getNotifyBySubscription();
-  }
-
-  public void setSocketBufferSize(int socketBufferSize) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setSocketBufferSize(socketBufferSize);
-  }
-
-  public int getSocketBufferSize() {
-    return this.bridgeInfo.getSocketBufferSize();
-  }
-  
-  public void setTcpDelay(boolean setting) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setTcpNoDelay(setting);
-  }
-  
-  public boolean getTcpDelay() {
-    return this.bridgeInfo.getTcpNoDelay();
-  }
-
-  public void setMaximumTimeBetweenPings(int maximumTimeBetweenPings) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setMaximumTimeBetweenPings(maximumTimeBetweenPings);
-  }
-
-  public int getMaximumTimeBetweenPings() {
-    return this.bridgeInfo.getMaximumTimeBetweenPings();
-  }
-
-  public int getMaxConnections() {
-    return this.bridgeInfo.getMaxConnections();
-  }
-
-  public void setMaxConnections(int maxCons) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setMaxConnections(maxCons);
-  }
-
-  public int getMaxThreads() {
-    return this.bridgeInfo.getMaxThreads();
-  }
-
-  public void setMaxThreads(int maxThreads) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setMaxThreads(maxThreads);
-  }
-
-  public int getMaximumMessageCount() {
-    return this.bridgeInfo.getMaximumMessageCount();
-  }
-
-  public void setMaximumMessageCount(int maxMessageCount) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setMaximumMessageCount(maxMessageCount);
-  }
-
-  public int getMessageTimeToLive() {
-    return this.bridgeInfo.getMessageTimeToLive();
-  }
-
-  public void setMessageTimeToLive(int messageTimeToLive) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setMessageTimeToLive(messageTimeToLive);
-  }
-
-  public void setGroups(String[] groups) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setGroups(groups);
-  }
-
-  public String[] getGroups() {
-    return this.bridgeInfo.getGroups();
-  }
-  
-  public String getLoadProbe() {
-    return this.bridgeInfo.getLoadProbe().toString();
-  }
-
-  public void setLoadProbe(ServerLoadProbe loadProbe) throws AdminException {
-    checkRunning();
-    if(!(loadProbe instanceof Serializable)) {
-      throw new IllegalArgumentException("Load probe must be Serializable to be used with admin API");
-    }
-    this.bridgeInfo.setLoadProbe(loadProbe);
-  }
-
-  public long getLoadPollInterval() {
-    return this.bridgeInfo.getLoadPollInterval();
-  }
-
-  public void setLoadPollInterval(long loadPollInterval) throws AdminException {
-    checkRunning();
-    this.bridgeInfo.setLoadPollInterval(loadPollInterval);
-  }
-  
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheEventImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheEventImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheEventImpl.java
deleted file mode 100644
index 9b0ae26..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheEventImpl.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 com.gemstone.gemfire.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.cache.Operation;
-
-/**
- * An event that describes an operation on a cache.
- * Instances of this are delivered to a {@link SystemMemberCacheListener} when a
- * a cache is created or closed.
- *
- * @author Darrel Schneider
- * @since 5.0
- */
-public class SystemMemberCacheEventImpl
-  extends SystemMembershipEventImpl
-  implements SystemMemberCacheEvent
-{
-
-  /** The operation done by this event */
-  private Operation op;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>SystemMemberCacheEvent</code> for the member
-   * with the given id.
-   */
-  protected SystemMemberCacheEventImpl(DistributedMember id, Operation op) {
-    super(id);
-    this.op = op;
-  }
-
-  /////////////////////  Instance Methods  /////////////////////
-
-  public Operation getOperation() {
-    return this.op;
-  }
-
-  @Override
-  public String toString() {
-    return super.toString() + " op=" + this.op;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheEventProcessor.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheEventProcessor.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheEventProcessor.java
deleted file mode 100644
index 8dc19ae..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheEventProcessor.java
+++ /dev/null
@@ -1,148 +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.admin.internal;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.admin.SystemMemberCacheEvent;
-import com.gemstone.gemfire.admin.SystemMemberCacheListener;
-import com.gemstone.gemfire.admin.SystemMemberRegionEvent;
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.Operation;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.distributed.internal.HighPriorityDistributionMessage;
-import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * This class processes the message to be delivered to admin node.
- * [This needs to be redesigned and reimplemented... see 32887]
- * @author Darrel Schneider
- * @since 5.0
- */
-public class SystemMemberCacheEventProcessor {
-  private static final Logger logger = LogService.getLogger();
-
-  
-  /*
-   * Sends cache create/close message to Admin VMs
-   */
-  public static void send(Cache c, Operation op) {
-    send(c, null, op);
-  }
-
-  /*
-   * Sends region creation/destroy message to Admin VMs
-   */
-  public static void send(Cache c, Region region, Operation op) {
-    InternalDistributedSystem system = (InternalDistributedSystem)c.getDistributedSystem();
-    Set recps = system.getDistributionManager().getAdminMemberSet();
-    // @todo darrel: find out if any of these guys have region listeners
-    if (recps.isEmpty()) {
-      return;
-    }
-    SystemMemberCacheMessage msg = new SystemMemberCacheMessage();
-    if (region == null) {
-      msg.regionPath = null;
-    } else {
-      msg.regionPath = region.getFullPath();
-    }
-    msg.setRecipients(recps);
-    msg.op = op;
-    system.getDistributionManager().putOutgoing(msg);
-  }
-  
-  
-  public static final class SystemMemberCacheMessage extends HighPriorityDistributionMessage
-  {
-    protected String regionPath;
-    protected Operation op;
-
-    @Override
-    protected void process(DistributionManager dm) {
-      AdminDistributedSystemImpl admin = AdminDistributedSystemImpl.getConnectedInstance();
-      if (admin == null) {
-        if (logger.isDebugEnabled()) {
-          logger.debug("Ignoring message because there is no admin distributed system present: {}", this);
-        }
-        return;  // probably shutting down or still connecting
-      }
-      List listeners = admin.getCacheListeners();
-      Iterator itr = listeners.iterator();
-      SystemMemberCacheListener listener = null;
-      while(itr.hasNext()){
-        listener = (SystemMemberCacheListener)itr.next();
-        if (this.regionPath == null) {
-          SystemMemberCacheEvent event = new SystemMemberCacheEventImpl(getSender(), this.op);
-          if (this.op == Operation.CACHE_CREATE) {
-            listener.afterCacheCreate(event);
-          } else {
-            listener.afterCacheClose(event);
-          }
-        } else {
-          SystemMemberRegionEvent event = new SystemMemberRegionEventImpl(getSender(), this.op, this.regionPath);
-          if (this.op.isRegionDestroy()) {
-            listener.afterRegionLoss(event);
-          } else {
-            listener.afterRegionCreate(event);
-          }
-        }
-      }
-    }
-
-    public int getDSFID() {
-      return ADMIN_CACHE_EVENT_MESSAGE;
-    }
-
-    @Override
-    public void fromData(DataInput in)
-      throws IOException, ClassNotFoundException {
-      super.fromData(in);
-      this.regionPath = DataSerializer.readString(in);
-      this.op = Operation.fromOrdinal(in.readByte());
-    }
-
-    @Override
-    public void toData(DataOutput out) throws IOException {
-      super.toData(out);
-      DataSerializer.writeString(this.regionPath, out);
-      out.writeByte(this.op.ordinal);
-    }
-
-    @Override
-    public String toString() {
-      StringBuffer buff = new StringBuffer();
-      buff.append("SystemMemberCacheMessage (region='");
-      buff.append(this.regionPath);
-      buff.append("'; sender=");
-      buff.append(this.sender);
-      buff.append("; op=");
-      buff.append(this.op);
-      buff.append(")");
-      return buff.toString();
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheImpl.java
deleted file mode 100644
index cc835de..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberCacheImpl.java
+++ /dev/null
@@ -1,313 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.cache.*;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.ObjIdMap;
-import com.gemstone.gemfire.internal.admin.*;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import java.util.*;
-
-/**
- * View of a GemFire system member's cache.
- *
- * @author    Darrel Schneider
- * @since     3.5
- */
-public class SystemMemberCacheImpl implements SystemMemberCache {
-  protected final GemFireVM vm;
-  protected CacheInfo info;
-  protected Statistic[] statistics;
-
-  /** Maps the id of a bridge server to its SystemMemberBridgeServer */ 
-  private ObjIdMap bridgeServers = new ObjIdMap();
-  
-  // constructors
-  public SystemMemberCacheImpl(GemFireVM vm)
-    throws CacheDoesNotExistException
-  {
-    this.vm = vm;
-    this.info = vm.getCacheInfo();
-    if (this.info == null) {
-      throw new CacheDoesNotExistException(LocalizedStrings.SystemMemberCacheImpl_THE_VM_0_DOES_NOT_CURRENTLY_HAVE_A_CACHE.toLocalizedString(vm.getId()));
-    }
-    initStats();
-  }
-  
-  // attributes
-  /**
-   * The name of the cache.
-   */
-  public String getName() {
-    String result = this.info.getName();
-    if (result == null || result.length() == 0) {
-      result = "default";
-    }
-    return result;
-  }
-  /**
-   * Value that uniquely identifies an instance of a cache for a given member.
-   */
-  public int getId() {
-    return this.info.getId();
-  }
-
-  public boolean isClosed() {
-    return this.info.isClosed();
-  }
-  public int getLockTimeout() {
-    return this.info.getLockTimeout();
-  }
-  public void setLockTimeout(int seconds) throws AdminException {
-    this.info = this.vm.setCacheLockTimeout(this.info, seconds);
-  }
-  public int getLockLease() {
-    return this.info.getLockLease();
-  }
-  public void setLockLease(int seconds) throws AdminException {
-    this.info = this.vm.setCacheLockLease(this.info, seconds);
-  }
-  public int getSearchTimeout() {
-    return this.info.getSearchTimeout();
-  }
-  public void setSearchTimeout(int seconds) throws AdminException {
-    this.info = this.vm.setCacheSearchTimeout(this.info, seconds);
-  }
-  public int getUpTime() {
-    return this.info.getUpTime();
-  }
-  public java.util.Set getRootRegionNames() {
-    Set set = this.info.getRootRegionNames();
-    if (set == null) {
-      set = Collections.EMPTY_SET;
-    }
-    return set;
-  }
-  // operations
-
-  public void refresh() {
-    if (!this.info.isClosed()) {
-      CacheInfo cur = vm.getCacheInfo();
-      if (cur == null || (this.info.getId() != cur.getId())) {
-        // it is a different instance of the cache. So set our version
-        // to closed
-        this.info.setClosed();
-      } else {
-        this.info = cur;
-        updateStats();
-      }
-    }
-  }
-
-  public GemFireMemberStatus getSnapshot()
-  {
-	  //System.out.println(">>>SystemMemberCacheJmxImpl::getSnapshot:pre::: " + this.vm);
-	  GemFireMemberStatus stat = this.vm.getSnapshot();
-	  //System.out.println(">>>SystemMemberCacheJmxImpl::getSnapshot:post::: " + stat);
-	  return stat;
-  }
-
-  public RegionSubRegionSnapshot getRegionSnapshot()
-  {
-	  //System.out.println(">>>SystemMemberCacheJmxImpl::getRegionSnapshot:pre::: " + this.vm);
-	  RegionSubRegionSnapshot snap = this.vm.getRegionSnapshot();
-	  //System.out.println(">>>SystemMemberCacheJmxImpl::getRegionSnapshot:post::: " + snap);
-	  return snap;
-  }
-  
-  public Statistic[] getStatistics() {
-    return this.statistics;
-  }
-
-  public SystemMemberRegion getRegion(String path)
-    throws com.gemstone.gemfire.admin.AdminException
-  {
-    Region r = this.vm.getRegion(this.info, path);
-    if (r == null) {
-      return null;
-    } else {
-      return createSystemMemberRegion(r);
-    }
-  }
-
-  public SystemMemberRegion createRegion(String name,
-                                         RegionAttributes attrs)
-    throws AdminException
-  {
-    Region r = this.vm.createVMRootRegion(this.info, name, attrs);
-    if (r == null) {
-      return null;
-
-    } else {
-      return createSystemMemberRegion(r);
-    }
-  }
-  
-  public SystemMemberRegion createVMRegion(String name,
-                                           RegionAttributes attrs)
-    throws AdminException
-  {
-    return createRegion(name, attrs);
-  }
-
-
-  // internal methods
-  private void initStats() {
-    StatResource resource = this.info.getPerfStats();
-    if (resource == null) {
-      // See bug 31397
-      Assert.assertTrue(this.isClosed());
-      return;
-    }
-
-    Stat[] stats = resource.getStats();
-    if (stats == null || stats.length < 1) {
-      this.statistics = new Statistic[0];
-      return;
-    }
-    
-    // define new statistics instances...
-    List statList = new ArrayList();
-    for (int i = 0; i < stats.length; i++) {
-      statList.add(createStatistic(stats[i]));
-    }
-    this.statistics = (Statistic[]) statList.toArray(new Statistic[statList.size()]);
-  }
-  private void updateStats() {
-    StatResource resource = this.info.getPerfStats();
-    if (resource == null) {
-      // See bug 31397
-      Assert.assertTrue(this.isClosed());
-      return;
-    }
-
-    Stat[] stats = resource.getStats();
-    if (stats == null || stats.length < 1) {
-      return;
-    }
-    
-    for (int i = 0; i < stats.length; i++) {
-      updateStatistic(stats[i]);
-    }
-  }
-
-  private void updateStatistic(Stat stat) {
-    for (int i = 0; i < this.statistics.length; i++) {
-      if (this.statistics[i].getName().equals(stat.getName())) {
-        ((StatisticImpl)this.statistics[i]).setStat(stat);
-        return;
-      }
-    }
-    Assert.assertTrue(false, "Unknown stat: " + stat.getName());
-  }
-
-  /**
-   * Returns the <code>CacheInfo</code> that describes this cache.
-   * Note that this operation does not {@link #refresh} the
-   * <code>CacheInfo</code>. 
-   */
-  public CacheInfo getCacheInfo() {
-    return this.info;
-  }
-
-  public GemFireVM getVM() {
-    return this.vm;
-  }
-
-  protected Statistic createStatistic(Stat stat) {
-    return new StatisticImpl(stat);
-  }
-  protected SystemMemberRegion createSystemMemberRegion(Region r)
-    throws com.gemstone.gemfire.admin.AdminException
-  {
-    SystemMemberRegionImpl sysMemberRegion = new SystemMemberRegionImpl(this, r);
-    sysMemberRegion.refresh();
-    return sysMemberRegion;
-  }
-
-  public SystemMemberCacheServer addCacheServer()
-    throws AdminException {
-
-    AdminBridgeServer bridge = this.vm.addCacheServer(this.info);
-    SystemMemberCacheServer admin =
-      createSystemMemberBridgeServer(bridge);
-    bridgeServers.put(bridge.getId(), admin);
-    return admin;
-  }
-
-  private Collection getCacheServersCollection()
-    throws AdminException {
-    Collection bridges = new ArrayList();
-
-    int[] bridgeIds = this.info.getBridgeServerIds();
-    for (int i = 0; i < bridgeIds.length; i++) {
-      int id = bridgeIds[i];
-      SystemMemberBridgeServer bridge =
-        (SystemMemberBridgeServer) bridgeServers.get(id);
-      if (bridge == null) {
-        AdminBridgeServer info = this.vm.getBridgeInfo(this.info, id);
-        if (info != null) {
-          bridge = createSystemMemberBridgeServer(info);
-          bridgeServers.put(info.getId(), bridge);
-        }
-      }
-
-      if (bridge != null) {
-        bridges.add(bridge);
-      }
-    }
-    return bridges;
-  }
-
-  public SystemMemberCacheServer[] getCacheServers()
-    throws AdminException {
-    Collection bridges = getCacheServersCollection();
-    SystemMemberCacheServer[] array =
-      new SystemMemberCacheServer[bridges.size()];
-    return (SystemMemberCacheServer[]) bridges.toArray(array);
-  };
-
-  /**
-   * Creates a new instance of <Code>SystemMemberBridgeServer</code>
-   * with the given configuration.
-   */
-  protected SystemMemberBridgeServerImpl
-    createSystemMemberBridgeServer(AdminBridgeServer bridge) 
-    throws AdminException {
-
-    return new SystemMemberBridgeServerImpl(this, bridge);
-  }
-
-  public boolean isServer() throws AdminException {
-    return this.info.isServer();
-  }
-  
-  
-  /**
-   * Returns a string representation of the object.
-   * 
-   * @return a string representation of the object
-   */
-  @Override
-  public String toString() {
-	return getName();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberImpl.java
deleted file mode 100755
index 17eec09..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberImpl.java
+++ /dev/null
@@ -1,520 +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.admin.internal;
-
-import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminDistributedSystem;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.CacheDoesNotExistException;
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.admin.RuntimeAdminException;
-import com.gemstone.gemfire.admin.StatisticResource;
-import com.gemstone.gemfire.admin.SystemMemberCache;
-import com.gemstone.gemfire.admin.SystemMemberType;
-import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.distributed.Role;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfigImpl;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.Config;
-import com.gemstone.gemfire.internal.ConfigSource;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.StatResource;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * Member of a GemFire system.
- *
- * @author    Kirk Lund
- * @since     3.5
- */
-public class SystemMemberImpl 
-implements com.gemstone.gemfire.admin.SystemMember,
-           com.gemstone.gemfire.admin.internal.ConfigurationParameterListener {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** Identifying name of this member.
-   * Note that by default this is the string form of internalId but the
-   * ManagedSystemMemberImpl subclass resets it to getNewId()
-   */
-  protected String id;
-
-  /** Unique internal id that the system impl identifies this member with */
-  protected InternalDistributedMember internalId;
-
-  /** The name of this system member */
-  protected String name;
-
-  /** Host name of the machine this member resides on */
-  protected String host;
-
-  /** The internal configuration this impl delegates to for runtime config */
-//  private Config config;
-
-  /** The configuration parameters for this member.  Maps the name of
-      the ConfigurationParameter to the ConfigurationParameter. */
-  protected Map parms = new HashMap();
-
-  /** The {@link AdminDistributedSystem} this is a member of */
-  protected AdminDistributedSystem system;
-
-  /** Internal GemFire vm to delegate to */
-  private GemFireVM vm;
-  
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-
-  /** 
-   * Constructs new <code>SystemMemberImpl</code> for a
-   * <code>ManagedEntity</code> that has yet to be started.
-   *
-   * @param system  the distributed system this member belongs to
-   */
-  protected SystemMemberImpl(AdminDistributedSystem system) 
-    throws AdminException {
-
-    this.system = system;
-    refreshConfig(getDefaultConfig());
-  }
-
-  /** 
-   * Constructs new <code>SystemMemberImpl</code> from the given
-   * <code>GemFireVM</code>.  This constructor is invoked when we
-   * discover a new member of the distributed system.
-   *
-   * @param system      the distributed system this member belongs to
-   * @param vm internal GemFire vm to delegate to
-   */
-  public SystemMemberImpl(AdminDistributedSystem system, 
-                          GemFireVM vm)
-    throws AdminException {
-
-    this(system);
-    setGemFireVM(vm);
-  }
-
-  /**
-   * Constructs the instance of SystemMember using the corresponding
-   * InternalDistributedMember instance of a DS member for the given
-   * AdminDistributedSystem.
-   * 
-   * @param system
-   *          Current AdminDistributedSystem instance
-   * @param member
-   *          InternalDistributedMember instance for which a SystemMember
-   *          instance is to be constructed.
-   * @throws AdminException
-   *           if construction of SystemMember fails
-   *           
-   * @since 6.5
-   */
-  protected SystemMemberImpl(AdminDistributedSystem system,
-                          InternalDistributedMember member) 
-                          throws AdminException {
-    this(system);
-    updateByInternalDistributedMember(member);
-  }
-
-  // -------------------------------------------------------------------------
-  //   Attribute accessors and mutators
-  // -------------------------------------------------------------------------
-
-  /**
-   * Returns a <code>Config</code> object with the appropriate default
-   * values for a newly-created system member.
-   */
-  protected Config getDefaultConfig() {
-    Properties props = new Properties();
-    return new DistributionConfigImpl(props);
-  }
-
-  public final AdminDistributedSystem getDistributedSystem() {
-    return this.system;
-  }
-  
-  public final InternalDistributedMember getInternalId() {
-    return internalId;
-  }
-
-  public final String getId() {
-    return this.id;
-  }
-
-  public final String getName() {
-    return this.name;
-  }
-  
-  public String getHost() {
-    return this.host;
-  }
-  
-  public final InetAddress getHostAddress() {
-    return InetAddressUtil.toInetAddress(this.getHost());
-  }
-
-  // -------------------------------------------------------------------------
-  //   Operations
-  // -------------------------------------------------------------------------
-  
-  public final String getLog() {
-    String childTail = null;
-    String mainTail = null;
-    GemFireVM vm = getGemFireVM();
-    if (vm != null) {
-      String[] log = vm.getSystemLogs();
-      if (log != null && log.length > 0) mainTail = log[0];
-      if (log != null && log.length > 1) childTail = log[1];
-    }
-    
-    if (childTail == null && mainTail == null) {
-      return LocalizedStrings.SystemMemberImpl_NO_LOG_FILE_CONFIGURED_LOG_MESSAGES_WILL_BE_DIRECTED_TO_STDOUT.toLocalizedString();
-    } 
-    else {
-      StringBuffer result = new StringBuffer();
-      if (mainTail != null) {
-        result.append(mainTail);
-      }
-      if (childTail != null) {
-        result.append("\n" + LocalizedStrings.SystemMemberImpl_TAIL_OF_CHILD_LOG.toLocalizedString() + "\n");
-        result.append(childTail);
-      }
-      return result.toString();
-    }
-  }
-
-  public final java.util.Properties getLicense() {
-    GemFireVM vm = getGemFireVM();
-    if (vm == null) return null;
-    return new Properties();
-  }
-
-  public final String getVersion() {
-    GemFireVM vm = getGemFireVM();
-    if (vm == null) return null;
-    return vm.getVersionInfo();
-  }
-
-  public StatisticResource[] getStat(String statisticsTypeName) 
-  throws com.gemstone.gemfire.admin.AdminException {
-    StatisticResource[] res = new StatisticResource[0];
-    if (this.vm != null) {
-      res = getStatsImpl(this.vm.getStats(statisticsTypeName));
-    }
-    return res.length==0 ? null : res;
-  }
-
-  public StatisticResource[] getStats() 
-  throws com.gemstone.gemfire.admin.AdminException {
-    StatisticResource[] statsImpl = new StatisticResource[0];
-    if (this.vm != null) {
-      statsImpl = getStatsImpl(this.vm.getStats(null));
-    }
-    return statsImpl;
-  }
-
-  public final boolean hasCache() {
-    GemFireVM member = getGemFireVM();
-    if (member == null) {
-      return false;
-
-    } else {
-      return member.getCacheInfo() != null;
-    }
-  }
-
-  public final SystemMemberCache getCache()
-    throws com.gemstone.gemfire.admin.AdminException
-  {
-    GemFireVM vm = getGemFireVM(); // fix for bug 33505
-    if (vm == null) return null;
-    try {
-      return createSystemMemberCache(vm);
-
-    } catch (CancelException ex) {
-      return null;
-
-    } catch (CacheDoesNotExistException ex) {
-      return null;
-    }
-  }
-  
-  public void refreshConfig() 
-  throws com.gemstone.gemfire.admin.AdminException {
-    GemFireVM vm = getGemFireVM();
-    if (vm == null) return;
-    refreshConfig(vm.getConfig());
-  }
-  
-  /**
-   * Sets the value of this system member's distribution-related
-   * configuration based on the given <code>Config</code> object.
-   */
-  public final void refreshConfig(Config config) 
-  throws com.gemstone.gemfire.admin.AdminException {
-    if (config == null) {
-      throw new AdminException(LocalizedStrings.SystemMemberImpl_FAILED_TO_REFRESH_CONFIGURATION_PARAMETERS_FOR_0.toLocalizedString(new Object[] {getId()}));
-    }
-    
-    String[] names = config.getAttributeNames();
-    if (names == null || names.length < 1) {
-      throw new AdminException(LocalizedStrings.SystemMemberImpl_FAILED_TO_REFRESH_CONFIGURATION_PARAMETERS_FOR_0.toLocalizedString(new Object[] {getId()}));
-    }
-    
-    for (int i = 0; i < names.length; i++) {
-      String name = names[i];
-      Object value = config.getAttributeObject(name);
-      if (value != null) {
-        ConfigurationParameter parm = createConfigurationParameter(
-              name,                                 // name
-              config.getAttributeDescription(name), // description
-              value,      // value
-              config.getAttributeType(name),        // valueType
-              config.isAttributeModifiable(name) ); // isModifiable
-        ((ConfigurationParameterImpl) parm).addConfigurationParameterListener(this);
-        this.parms.put(name, parm);
-      }
-    }
-  }
-  
-  public final ConfigurationParameter[] getConfiguration() {
-    ConfigurationParameter[] array =
-      new ConfigurationParameter[this.parms.size()];
-    this.parms.values().toArray(array);
-    return array;
-  }
-  
-  public ConfigurationParameter[]
-    setConfiguration(ConfigurationParameter[] parms) 
-    throws AdminException {
-
-    for (int i = 0; i < parms.length; i++) {
-      ConfigurationParameter parm = parms[i];
-      this.parms.put(parm.getName(), parm);
-    }
-
-    GemFireVM vm = getGemFireVM();
-    if (vm != null) {
-      // update internal vm's config...    
-      Config config = vm.getConfig();
-      for (int i = 0; i < parms.length; i++) {
-        config.setAttributeObject(parms[i].getName(), parms[i].getValue(), ConfigSource.runtime());
-      }
-      vm.setConfig(config);
-    }
-
-    return this.getConfiguration();
-  }
-  
-  public SystemMemberType getType() {
-    return SystemMemberType.APPLICATION;
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Listener callbacks
-  // -------------------------------------------------------------------------
-  
-  // -- com.gemstone.gemfire.admin.internal.ConfigurationParameterListener ---
-  public void configurationParameterValueChanged(ConfigurationParameter parm) {
-    try {
-      setConfiguration(new ConfigurationParameter[] { parm });
-    } catch (com.gemstone.gemfire.admin.AdminException e) {
-      // this shouldn't occur since this is a config listener method...
-      logger.warn(e.getMessage(), e);
-      throw new RuntimeAdminException(e);
-    } catch (java.lang.Exception e) {
-      logger.warn(e.getMessage(), e);
-    }
-//    catch (java.lang.RuntimeException e) {
-//      logWriter.warning(e);
-//      throw e;
-//    }
-    catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (java.lang.Error e) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e);
-      throw e;
-    }
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Overridden method(s) from java.lang.Object
-  // -------------------------------------------------------------------------
-  
-  @Override
-  public String toString() {
-    return getName();
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Template methods with default behavior impl'ed.  Override if needed.
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Returns the <code>GemFireVM</code> that underlies this
-   * <code>SystemMember</code>. 
-   */
-  protected final GemFireVM getGemFireVM() {
-    return this.vm;
-  }
-
-  /**
-   * Sets the <code>GemFireVM</code> that underlies this
-   * <code>SystemMember</code>.  This method is used when a member,
-   * such as a cache server, is started by the admin API.
-   */
-  void setGemFireVM(GemFireVM vm) throws AdminException {
-    this.vm = vm;
-    if (vm != null) {
-      this.internalId = vm.getId();
-      this.id = this.internalId.toString();
-      this.name = vm.getName();
-      this.host = InetAddressUtil.toString(vm.getHost());
-    } else {
-      this.internalId = null;
-      this.id = null;
-      // leave this.name set to what it is (how come?)
-      this.host = this.getHost();
-    }
-
-    if (DistributionConfig.DEFAULT_NAME.equals(this.name)) {
-      // Fix bug 32877
-      this.name = this.id;
-    }
-
-    if (vm != null) {
-      this.refreshConfig();
-    }
-  }
-
-  /**
-   * Updates this SystemMember instance using the corresponding
-   * InternalDistributedMember
-   * 
-   * @param member
-   *          InternalDistributedMember instance to update this SystemMember
-   *          
-   * @since 6.5
-   */
-  private void updateByInternalDistributedMember(
-      InternalDistributedMember member) {
-    if (member != null) {
-      this.internalId = member;
-      this.id         = this.internalId.toString();
-      this.host       = this.internalId.getHost();
-      this.name       = this.internalId.getName();      
-      if (this.name == null || 
-          DistributionConfig.DEFAULT_NAME.equals(this.name)) { 
-        /*
-         * name could be null & referring to description of a fix for 32877
-         */
-        this.name = this.id;
-      }
-    }
-  }
-  
-  /**
-   * Template method for creating {@link StatisticResource}.
-   *
-   * @param stat  the internal stat resource to wrap with {@link StatisticResource}
-   * @return new impl instance of {@link StatisticResource}
-   */
-  protected StatisticResource createStatisticResource(StatResource stat)
-  throws com.gemstone.gemfire.admin.AdminException {
-    return new StatisticResourceImpl(stat, this);
-  }
-  
-  /**
-   * Template method for creating {@link ConfigurationParameter}.
-   *
-   * @param name            the name of this parameter which cannot change
-   * @param description     full description to use
-   * @param value           the value of this parameter
-   * @param type            the class type of the value
-   * @param userModifiable  true if this is modifiable; false if read-only
-   * @return new impl instance of {@link ConfigurationParameter}
-   */
-  protected ConfigurationParameter createConfigurationParameter(String name,
-                                                                String description,
-                                                                Object value,
-                                                                Class type,
-                                                                boolean userModifiable) {
-    return new ConfigurationParameterImpl(
-        name, description, value, type, userModifiable);
-  }
-  
-  /**
-   * Template method for creating {@link SystemMemberCache}.
-   *
-   * @param vm  the GemFire vm to retrieve cache info from
-   * @return new impl instance of {@link SystemMemberCache}
-   */
-  protected SystemMemberCache createSystemMemberCache(GemFireVM vm)
-    throws com.gemstone.gemfire.admin.AdminException
-  {
-    return new SystemMemberCacheImpl(vm);
-  }
-
-  /** Wrap the internal stats with impls of {@link StatisticResource} */
-  protected StatisticResource[] getStatsImpl(StatResource[] stats)
-  throws com.gemstone.gemfire.admin.AdminException {
-    List statList = new ArrayList();
-    for (int i = 0; i < stats.length; i++) {
-      statList.add(createStatisticResource(stats[i]));
-    }
-    return (StatisticResource[]) statList.toArray(new StatisticResource[0]);
-  }
-
-  public String[] getRoles() {
-    Set roles = this.internalId.getRoles();
-    String[] roleNames = new String[roles.size()];
-    Iterator iter = roles.iterator();
-    for (int i = 0; i < roleNames.length; i++) {
-      Role role = (Role) iter.next();
-      roleNames[i] = role.getName();
-    }
-    return roleNames;
-  }
-  
-  public DistributedMember getDistributedMember() {
-    return this.internalId;    
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionEventImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionEventImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionEventImpl.java
deleted file mode 100644
index 313e829..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionEventImpl.java
+++ /dev/null
@@ -1,63 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.cache.Operation;
-
-/**
- * An event that describes an operation on a region.
- * Instances of this are delivered to a {@link SystemMemberCacheListener} when a
- * a region comes or goes.
- *
- * @author Darrel Schneider
- * @since 5.0
- */
-public class SystemMemberRegionEventImpl
-  extends SystemMemberCacheEventImpl
-  implements SystemMemberRegionEvent
-{
-
-  /** 
-   * The path of region created/destroyed 
-   */
-  private final String regionPath;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>SystemMemberRegionEvent</code> for the member
-   * with the given id.
-   */
-  protected SystemMemberRegionEventImpl(DistributedMember id, Operation op, String regionPath) {
-    super(id, op);
-    this.regionPath = regionPath;
-  }
-
-  /////////////////////  Instance Methods  /////////////////////
-
-  public String getRegionPath() {
-    return this.regionPath;
-  }
-
-  @Override
-  public String toString() {
-    return super.toString() + " region=" + this.regionPath;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionImpl.java
deleted file mode 100644
index 9f8ad06..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMemberRegionImpl.java
+++ /dev/null
@@ -1,381 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.cache.*;
-//import com.gemstone.gemfire.internal.Assert;
-//import com.gemstone.gemfire.internal.admin.*;
-import com.gemstone.gemfire.internal.admin.remote.*;
-
-import java.io.File;
-import java.util.*;
-
-/**
- * View of a region in a GemFire system member's cache.
- *
- * @author    Darrel Schneider
- * @since     3.5
- */
-public class SystemMemberRegionImpl implements SystemMemberRegion {
-
-  private AdminRegion r;
-  private RegionAttributes ra;
-  private CacheStatistics rs;
-  private Set subregionNames;
-  private Set subregionFullPaths;
-  private int entryCount;
-  private int subregionCount;
-
-  /** The cache to which this region belongs */
-  private final SystemMemberCacheImpl cache;
-
-  // constructors
-  public SystemMemberRegionImpl(SystemMemberCacheImpl cache, Region r)
-  {
-    this.cache = cache;
-    this.r = (AdminRegion)r;
-  }
-
-  private void refreshFields() {
-    this.ra = this.r.getAttributes();
-    if (getStatisticsEnabled() && !this.ra.getDataPolicy().withPartitioning()) {
-      this.rs = this.r.getStatistics();
-    } else {
-      this.rs = null;
-    }
-    { // set subregionNames
-      Set s = this.r.subregions(false);
-      Set names = new TreeSet();
-      Set paths = new TreeSet();
-      Iterator it = s.iterator();
-      while (it.hasNext()) {
-        Region r = (Region)it.next();
-        String name = r.getName();
-        names.add(name);
-        paths.add(this.getFullPath() + Region.SEPARATOR_CHAR + name);
-      }
-      this.subregionNames = names;
-      this.subregionFullPaths = paths;
-    }
-    try {
-      int[] sizes = this.r.sizes();
-      this.entryCount = sizes[0];
-      this.subregionCount = sizes[1];
-    } catch (CacheException ignore) {
-      this.entryCount = 0;
-      this.subregionCount = 0;
-    }
-  }
-  
-  // attributes
-  public String getName() {
-    return this.r.getName();
-  }
-  
-  public String getFullPath() {
-    return this.r.getFullPath();
-  }
-
-  public java.util.Set getSubregionNames() {
-    return this.subregionNames;
-  }
-
-  public java.util.Set getSubregionFullPaths() {
-    return this.subregionFullPaths;
-  }
-
-  public String getUserAttribute() {
-    return (String)r.getUserAttribute();
-  }
-
-  public String getCacheLoader() {
-    Object o = this.ra.getCacheLoader();
-    if (o == null) {
-      return "";
-    } else {
-      return o.toString();
-    }
-  }
-  public String getCacheWriter() {
-    Object o = this.ra.getCacheWriter();
-    if (o == null) {
-      return "";
-    } else {
-      return o.toString();
-    }
-  }
-
-  public String getKeyConstraint() {
-    Class constraint = this.ra.getKeyConstraint();
-    if (constraint == null) {
-      return "";
-    } else {
-      return constraint.getName();
-    }
-  }
-
-  public String getValueConstraint() {
-    Class constraint = this.ra.getValueConstraint();
-    if (constraint == null) {
-      return "";
-    } else {
-      return constraint.getName();
-    }
-  }
-
-  public boolean getEarlyAck() {
-    return this.ra.getEarlyAck();
-  }
-
-  public int getRegionTimeToLiveTimeLimit() {
-    return this.ra.getRegionTimeToLive().getTimeout();
-  }
-
-  public ExpirationAction getRegionTimeToLiveAction() {
-    return this.ra.getRegionTimeToLive().getAction();
-  }
-
-  public int getEntryTimeToLiveTimeLimit() {
-    return this.ra.getEntryTimeToLive().getTimeout();
-  }
-
-  public ExpirationAction getEntryTimeToLiveAction() {
-    return this.ra.getEntryTimeToLive().getAction();
-  }
-
-  public String getCustomEntryTimeToLive() {
-    Object o = this.ra.getCustomEntryTimeToLive();
-    if (o == null) {
-      return "";
-    } else {
-      return o.toString();
-    }
-  }
-  
-  public int getRegionIdleTimeoutTimeLimit() {
-    return this.ra.getRegionIdleTimeout().getTimeout();
-  }
-
-  public ExpirationAction getRegionIdleTimeoutAction() {
-    return this.ra.getRegionIdleTimeout().getAction();
-  }
-
-  public int getEntryIdleTimeoutTimeLimit() {
-    return this.ra.getEntryIdleTimeout().getTimeout();
-  }
-
-  public ExpirationAction getEntryIdleTimeoutAction() {
-    return this.ra.getEntryIdleTimeout().getAction();
-  }
-
-  public String getCustomEntryIdleTimeout() {
-    Object o = this.ra.getCustomEntryIdleTimeout();
-    if (o == null) {
-      return "";
-    } else {
-      return o.toString();
-    }
-  }
-  
-  public MirrorType getMirrorType() {
-    return this.ra.getMirrorType();
-  }
-  
-  public DataPolicy getDataPolicy() {
-    return this.ra.getDataPolicy();
-  }
-  
-  public Scope getScope() {
-    return this.ra.getScope();
-  }
-
-  public EvictionAttributes getEvictionAttributes() {
-    return this.ra.getEvictionAttributes();
-  }
-
-  /**
-   * This method will return an empty string if there are no CacheListeners
-   * defined on the region. If there are more than 1 CacheListeners defined,
-   * this method will return the description of the 1st CacheListener in the
-   * list returned by the getCacheListeners method. If there is only one
-   * CacheListener defined this method will return it's description
-   * 
-   * @return String the region's <code>CacheListener</code> description
-   * @deprecated as of 6.0, use {@link #getCacheListeners} instead
-   */
-  @Deprecated
-  public String getCacheListener() {
-    String[] o = this.getCacheListeners();
-    if (o.length == 0) {
-      return "";
-    }
-    else {
-      return o[0].toString();
-    }
-  }
-
-  /**
-   * This method will return an empty array if there are no CacheListeners
-   * defined on the region. If there are one or more than 1 CacheListeners
-   * defined, this method will return an array which has the description of all
-   * the CacheListeners
-   * 
-   * @return String[] the region's <code>CacheListeners</code> descriptions as a
-   *         String array
-   * @since 6.0
-   */
-  public String[] getCacheListeners() {
-    Object[] o = this.ra.getCacheListeners();
-    String[] ret = null;
-    if (o == null || o.length == 0) {
-      ret = new String[0];
-    }
-    else {
-      ret = new String[o.length];
-      for (int i = 0; i < o.length; i++) {
-        ret[i] = o[i].toString();
-      }
-    }
-    return ret;
-  }
-
-  public int getInitialCapacity() {
-    return this.ra.getInitialCapacity();
-  }
-
-  public float getLoadFactor() {
-    return this.ra.getLoadFactor();
-  }
-
-  public int getConcurrencyLevel() {
-    return this.ra.getConcurrencyLevel();
-  }
-
-  public boolean getConcurrencyChecksEnabled() {
-    return this.ra.getConcurrencyChecksEnabled();
-  }
-
-  public boolean getStatisticsEnabled() {
-    return this.ra.getStatisticsEnabled();
-  }
-
-  public boolean getPersistBackup() {
-    return this.ra.getPersistBackup();
-  }
-
-  public DiskWriteAttributes getDiskWriteAttributes() {
-    return this.ra.getDiskWriteAttributes();
-  }
-
-  public File[] getDiskDirs() {
-    return this.ra.getDiskDirs();
-  }
-
-  public int getEntryCount() {
-    return this.entryCount;
-  }
-  
-  public int getSubregionCount() {
-    return this.subregionCount;
-  }
-
-  public long getLastModifiedTime() {
-    if (this.rs == null) {
-      return 0;
-    } else {
-      return this.rs.getLastModifiedTime();
-    }
-  }
-
-  public long getLastAccessedTime() {
-    if (this.rs == null) {
-      return 0;
-    } else {
-      return this.rs.getLastAccessedTime();
-    }
-  }
-
-  public long getHitCount() {
-    if (this.rs == null) {
-      return 0;
-    } else {
-      return this.rs.getHitCount();
-    }
-  }
-
-  public long getMissCount() {
-    if (this.rs == null) {
-      return 0;
-    } else {
-      return this.rs.getMissCount();
-    }
-  }
-
-  public float getHitRatio() {
-    if (this.rs == null) {
-      return 0;
-    } else {
-      return this.rs.getHitRatio();
-    }
-  }
-  
-  // operations
-  public void refresh() {
-    refreshFields();
-  }
-
-	/**
-	 * Returns a string representation of the object.
-	 * 
-	 * @return a string representation of the object
-	 */
-  @Override
-	public String toString() {
-		return getName();
-	}
-
-  public SystemMemberRegion createSubregion(String name,
-                                            RegionAttributes attrs)
-    throws AdminException {
-
-    Region r =
-      this.cache.getVM().createSubregion(this.cache.getCacheInfo(),
-                                         this.getFullPath(), name, attrs);
-    if (r == null) {
-      return null;
-
-    } else {
-      return this.cache.createSystemMemberRegion(r);
-    }
-
-  }
-
-  public MembershipAttributes getMembershipAttributes() {
-    return this.ra.getMembershipAttributes();
-  }
-  
-  public SubscriptionAttributes getSubscriptionAttributes() {
-    return this.ra.getSubscriptionAttributes();
-  }
-  
-  public PartitionAttributes getPartitionAttributes() {
-    return this.ra.getPartitionAttributes();
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMembershipEventImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMembershipEventImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMembershipEventImpl.java
deleted file mode 100644
index e90f4d3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/SystemMembershipEventImpl.java
+++ /dev/null
@@ -1,71 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.distributed.DistributedMember;
-
-/**
- * An event delivered to a {@link SystemMembershipListener} when a
- * member has joined or left the distributed system.
- *
- * @author Darrel Schneider
- * @since 5.0
- */
-public class SystemMembershipEventImpl implements SystemMembershipEvent {
-
-  /** The id of the member that generated this event */
-  private DistributedMember id;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>SystemMembershipEvent</code> for the member
-   * with the given id.
-   */
-  protected SystemMembershipEventImpl(DistributedMember id) {
-    this.id = id;
-  }
-
-  /////////////////////  Instance Methods  /////////////////////
-
-  public String getMemberId() {
-    return this.id.toString();
-  }
-  
-  public DistributedMember getDistributedMember() {
-    return this.id;
-  }
-
-//   /**
-//    * Returns the user specified callback object associated with this
-//    * membership event.  Note that the callback argument is always
-//    * <code>null</code> for the event delivered to the {@link
-//    * SystemMembershipListener#memberCrashed} method.
-//    *
-//    * @since 4.0
-//    */
-//   public Object getCallbackArgument() {
-//     throw new UnsupportedOperationException("Not implemented yet");
-//   }
-
-  @Override
-  public String toString() {
-    return "Member " + this.getMemberId();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/config-hierarchy.fig
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/config-hierarchy.fig b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/config-hierarchy.fig
deleted file mode 100644
index 7d3f34d..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/config-hierarchy.fig
+++ /dev/null
@@ -1,156 +0,0 @@
-#FIG 3.2
-Portrait
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-6 150 3825 2325 4725
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 150 4200 2325 4200
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 150 4725 2325 4725 2325 3825 150 3825 150 4725
-4 0 0 50 -1 1 12 0.0000 4 180 630 300 4425 port : int\001
-4 0 0 50 -1 1 12 0.0000 4 180 1485 300 4665 bindAddress : String\001
-4 0 0 50 -1 1 12 0.0000 4 180 1920 300 4050 DistributionLocatorConfig\001
--6
-6 2475 3825 4500 4125
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2475 3825 4500 3825 4500 4125 2475 4125 2475 3825
-4 0 0 50 -1 1 12 0.0000 4 180 1785 2625 4050 GemFireManagerConfig\001
--6
-6 4650 3825 6375 4500
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 4650 4500 6375 4500 6375 3825 4650 3825 4650 4500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 4650 4200 6375 4200
-4 0 0 50 -1 1 12 0.0000 4 180 1545 4725 4425 cacheXmlFile : String\001
-4 0 0 50 -1 1 12 0.0000 4 180 1395 4800 4050 CacheServerConfig\001
--6
-6 6525 3825 7950 4125
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 6525 3825 7950 3825 7950 4125 6525 4125 6525 3825
-4 0 0 50 -1 1 12 0.0000 4 180 1290 6600 4050 GFXServerConfig\001
--6
-6 3225 675 5250 2925
-6 3300 2400 4575 2850
-6 3300 2400 4575 2625
-4 0 0 50 -1 1 12 0.0000 4 180 1245 3300 2565 +validate() : void\001
--6
-4 0 0 50 -1 1 12 0.0000 4 180 1230 3300 2805 +clone() : Object\001
--6
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3225 2925 5250 2925 5250 675 3225 675 3225 2925
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3225 1050 5250 1050
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3225 2325 5250 2325
-4 0 0 50 -1 1 12 0.0000 4 180 885 3300 1275 host : String\001
-4 0 0 50 -1 1 12 0.0000 4 180 1860 3300 1515 workingDirectory : String\001
-4 0 0 50 -1 1 12 0.0000 4 180 1830 3300 1755 productDirectory : String\001
-4 0 0 50 -1 1 12 0.0000 4 180 1830 3300 1995 remoteCommand : String\001
-4 0 0 50 -1 1 12 0.0000 4 180 720 3300 2235 id : String\001
-4 0 0 50 -1 1 12 0.0000 4 180 1560 3450 900 ManagedEntityConfig\001
--6
-6 6750 7725 7650 8025
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 6750 7725 7650 7725 7650 8025 6750 8025 6750 7725
-4 0 0 50 -1 1 12 0.0000 4 135 810 6825 7950 GFXServer\001
--6
-6 525 7725 2100 8025
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 525 7725 2100 7725 2100 8025 525 8025 525 7725
-4 0 0 50 -1 1 12 0.0000 4 135 1440 600 7950 DistributionLocator\001
--6
-6 2025 5625 3600 7050
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2025 7050 3600 7050 3600 5625 2025 5625 2025 7050
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 2025 6000 3600 6000
-4 0 0 50 -1 1 12 0.0000 4 180 1440 2100 6225 isRunning : boolean\001
-4 0 0 50 -1 1 12 0.0000 4 180 900 2100 6465 start() : void\001
-4 0 0 50 -1 1 12 0.0000 4 180 870 2100 6705 stop() : void\001
-4 0 0 50 -1 1 12 0.0000 4 180 1200 2100 6945 getLog() : String\001
-4 0 0 50 -1 1 12 0.0000 4 180 1080 2250 5850 ManagedEntity\001
--6
-6 5175 5625 7275 6975
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 5175 6975 7275 6975 7275 5625 5175 5625 5175 6975
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5175 6000 7275 6000
-4 0 0 50 -1 1 12 0.0000 4 180 1875 5325 6225 type : SystemMemberType\001
-4 0 0 50 -1 1 12 0.0000 4 180 1455 5325 6465 licsense : Properties\001
-4 0 0 50 -1 1 12 0.0000 4 180 1110 5325 6705 version : String\001
-4 0 0 50 -1 1 12 0.0000 4 135 1425 5325 6945 hasCache : boolean\001
-4 0 0 50 -1 1 12 0.0000 4 180 1095 5700 5850 SystemMember\001
--6
-6 4875 7725 5925 8025
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 4875 7725 5925 7725 5925 8025 4875 8025 4875 7725
-4 0 0 50 -1 1 12 0.0000 4 135 915 4950 7950 CacheServer\001
--6
-6 2925 7725 4350 8025
-6 2925 7725 4350 8025
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2925 7725 4350 7725 4350 8025 2925 8025 2925 7725
-4 0 0 50 -1 1 12 0.0000 4 180 1305 3000 7950 GemFireManager\001
--6
--6
-6 150 9375 2550 9675
-2 2 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
-	 150 9375 2550 9375 2550 9675 150 9675 150 9375
-4 0 0 50 -1 2 12 0.0000 4 180 2250 225 9600 DistributionLocatorJmxImpl\001
--6
-6 525 8625 2625 8925
-2 2 0 1 0 7 50 -1 -1 4.000 0 0 -1 0 0 5
-	 525 8625 2625 8625 2625 8925 525 8925 525 8625
-4 0 0 50 -1 2 12 0.0000 4 180 1920 600 8850 DistributionLocatorImpl\001
--6
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
-	 1050 3825 1050 3375 7200 3375 7200 3825
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3450 3375 3450 3825
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5475 3375 5475 3825
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 120.00 120.00
-	 4200 3375 4200 2925
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
-	 1125 7725 1125 7500 7200 7500 7200 7725
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 3375 7725 3375 7500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5250 7725 5250 7500
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 120.00 120.00
-	 2700 7500 2700 7050
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
-	 4200 7725 4200 7275 7350 7275 7350 7725
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 120.00 120.00
-	 6150 7275 6150 6975
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 5475 7725 5475 7275
-2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	0 0 1.00 120.00 120.00
-	 750 7725 750 4725
-2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	0 0 1.00 120.00 120.00
-	 3825 7725 3825 4125
-2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	0 0 1.00 120.00 120.00
-	 4950 7725 4950 4500
-2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	0 0 1.00 120.00 120.00
-	 7500 7725 7500 4125
-2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	1 0 1.00 120.00 120.00
-	 300 9375 300 4725
-2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	1 0 1.00 120.00 120.00
-	 1275 8625 1275 8025
-2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	1 0 1.00 120.00 120.00
-	 1275 9375 1275 8925

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.fig
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.fig b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.fig
deleted file mode 100644
index b2f8342..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.fig
+++ /dev/null
@@ -1,233 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Inches
-Letter  
-100.00
-Single
--2
-1200 2
-6 300 2475 4050 4050
-6 2550 3000 4050 3300
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2550 3000 4050 3000 4050 3300 2550 3300 2550 3000
-4 1 0 50 -1 1 12 0.0000 4 180 1410 3300 3225 CacheHealthConfig\001
--6
-6 300 3000 1950 3300
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 300 3000 1950 3000 1950 3300 300 3300 300 3000
-4 1 0 50 -1 1 12 0.0000 4 180 1560 1125 3225 MemberHealthConfig\001
--6
-6 1350 3750 3150 4050
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1350 3750 3150 3750 3150 4050 1350 4050 1350 3750
-4 1 0 50 -1 1 12 0.0000 4 180 1605 2250 3975 GemFireHealthConfig\001
--6
-6 1200 2475 3450 2775
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1200 2475 3450 2475 3450 2775 1200 2775 1200 2475
-4 1 0 50 -1 1 12 0.0000 4 180 2115 2325 2700 SystemManagerHealthConfig\001
--6
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 1 4
-	1 0 1.00 150.00 150.00
-	1 0 1.00 150.00 150.00
-	 1125 3300 1125 3600 3300 3600 3300 3300
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 2
-	1 0 1.00 150.00 150.00
-	 2250 2775 2250 3750
--6
-6 1125 5925 3525 6225
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 1125 5925 3525 5925 3525 6225 1125 6225 1125 5925
-4 1 0 50 -1 1 12 0.0000 4 180 2265 2325 6150 DistributedSystemHealthConfig\001
--6
-6 2325 5025 3525 5325
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2325 5025 3525 5025 3525 5325 2325 5325 2325 5025
-4 1 0 50 -1 1 12 0.0000 4 135 1125 2925 5250 GemFireHealth\001
--6
-6 4950 5925 7950 6225
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 4950 5925 7950 5925 7950 6225 4950 6225 4950 5925
-4 1 0 50 -1 2 12 0.0000 4 180 2850 6450 6150 DistributedSystemHealthConfigImpl\001
--6
-6 9000 6750 12150 7425
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 9075 6825 12075 6825 12075 7350 9075 7350 9075 6825
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 9000 6750 12150 6750 12150 7425 9000 7425 9000 6750
-4 2 0 50 -1 -1 10 0.0000 4 135 2760 11925 7050 Class Hierarchy of the "Health" admin classes\001
-4 2 0 50 -1 -1 10 0.0000 6 105 765 11925 7230 GemFire 3.5\001
--6
-6 5775 1050 7275 1350
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 7275 1350 5775 1350 5775 1050 7275 1050 7275 1350
-4 1 0 50 -1 1 12 0.0000 4 180 1365 6525 1275 java.io.Serializable\001
--6
-6 5475 1725 7725 2025
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 5475 1725 7725 1725 7725 2025 5475 2025 5475 1725
-4 1 0 50 -1 2 12 0.0000 4 180 2055 6600 1950 MemberHealthConfigImpl\001
--6
-6 5475 3750 7725 4050
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 5475 3750 7725 3750 7725 4050 5475 4050 5475 3750
-4 1 0 50 -1 2 12 0.0000 4 180 2070 6600 3975 GemFireHealthConfigImpl\001
--6
-6 5625 2400 7725 2700
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 5625 2400 7725 2400 7725 2700 5625 2700 5625 2400
-4 1 0 50 -1 2 12 0.0000 4 180 1890 6675 2625 CacheHealthConfigImpl\001
--6
-6 5325 3075 8175 3375
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 5325 3075 8175 3075 8175 3375 5325 3375 5325 3075
-4 1 0 50 -1 2 12 0.0000 4 180 2655 6750 3300 SystemManagerHealthConfigImpl\001
--6
-6 8775 3075 11475 3375
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 8775 3075 11475 3075 11475 3375 8775 3375 8775 3075
-4 1 0 50 -1 2 12 0.0000 4 180 2520 10125 3300 SystemManagerHealthEvaluator\001
--6
-6 10125 3750 12225 4050
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 10125 3750 12225 3750 12225 4050 10125 4050 10125 3750
-4 1 0 50 -1 2 12 0.0000 4 135 1935 11175 3975 GemFireHealthEvaluator\001
--6
-6 8025 975 8775 1275
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 8025 975 8775 975 8775 1275 8025 1275 8025 975
-4 1 0 50 -1 1 12 0.0000 4 135 630 8400 1200 Statistics\001
--6
-6 9600 975 11625 1275
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 9600 975 11625 975 11625 1275 9600 1275 9600 975
-4 0 0 50 -1 3 12 0.0000 4 135 1845 9675 1200 AbstractHealthEvaluator\001
--6
-6 9000 2400 10950 2700
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 9000 2400 10950 2400 10950 2700 9000 2700 9000 2400
-4 1 0 50 -1 2 12 0.0000 4 135 1755 9975 2625 CacheHealthEvaluator\001
--6
-6 8325 1725 10425 2025
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 8325 1725 10425 1725 10425 2025 8325 2025 8325 1725
-4 1 0 50 -1 2 12 0.0000 4 135 1920 9375 1950 MemberHealthEvaluator\001
--6
-6 4725 4350 6150 4650
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 4725 4350 6150 4350 6150 4650 4725 4650 4725 4350
-4 1 0 50 -1 1 12 0.0000 4 135 1305 5475 4575 JoinLeaveListener\001
--6
-6 6600 4350 9600 4650
-6 6600 4350 7875 4650
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 6600 4350 7875 4350 7875 4650 6600 4650 6600 4350
-4 1 0 50 -1 1 12 0.0000 4 135 1065 7275 4575 HealthListener\001
--6
-6 8550 4350 9600 4650
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 8550 4350 9600 4350 9600 4650 8550 4650 8550 4350
-4 1 0 50 -1 1 12 0.0000 4 135 900 9075 4575 GemFireVM\001
--6
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 7875 4500 8550 4500
--6
-6 5175 5025 6900 5325
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 5175 5025 6900 5025 6900 5325 5175 5325 5175 5025
-4 1 0 50 -1 2 12 0.0000 4 180 1545 6000 5250 GemFireHealthImpl\001
--6
-6 10350 4725 12000 5025
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 10350 4725 12000 4725 12000 5025 10350 5025 10350 4725
-4 0 0 50 -1 2 12 0.0000 4 180 1515 10425 4950 HealthMonitorImpl\001
--6
-6 8625 5925 11475 6225
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 8625 5925 11475 5925 11475 6225 8625 6225 8625 5925
-4 1 0 50 -1 2 12 0.0000 4 180 2715 10050 6150 DistributedSystemHealthEvaluator\001
--6
-2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
-	 4500 525 4500 7500
-2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 1 2
-	1 0 1.00 150.00 150.00
-	 3150 3900 5475 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 2625 5025 2625 4050
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 2925 5325 2925 5925
-2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 1 2
-	1 0 1.00 150.00 150.00
-	 3525 5175 5175 5175
-2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 0 1 2
-	1 0 1.00 150.00 150.00
-	 3525 6075 4950 6075
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 5550 5325 5550 5925
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 8625 6075 7950 6075
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 6375 5025 6375 4050
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 6525 3750 6525 3375
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 6525 3075 6525 2700
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 6525 2400 6525 2025
-2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 6525 1725 6525 1350
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 8775 3225 8175 3225
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 10125 3900 7725 3900
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 8325 1875 7725 1875
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 75.00 150.00
-	 8925 2550 7725 2550
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 11325 3075 11325 1275
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 9975 1725 9975 1275
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 9600 1125 8775 1125
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 3
-	0 0 1.00 60.00 120.00
-	 10425 1875 11925 1875 11925 3750
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 1 2
-	0 0 1.00 60.00 120.00
-	 10950 2550 11925 2550
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 10800 2400 10800 1275
-2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 5475 5025 5475 4650
-2 1 1 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
-	1 0 1.00 150.00 150.00
-	 6750 5025 6750 4650
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	0 0 1.00 60.00 120.00
-	 11100 4725 11100 4050
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 4
-	0 0 1.00 60.00 120.00
-	 6375 5325 6375 5625 9975 5625 9975 5925
-4 1 0 50 -1 -1 12 0.0000 4 75 90 2700 4200 *\001
-4 2 0 50 -1 -1 12 0.0000 4 180 2085 4350 675 com.gemstone.gemfire.admin\001
-4 0 0 50 -1 -1 12 0.0000 4 180 2655 4650 675 com.gemstone.gemfire.admin.internal\001
-4 1 0 50 -1 -1 12 0.0000 4 75 90 8925 1050 *\001

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.gif
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.gif b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.gif
deleted file mode 100644
index 131347a..0000000
Binary files a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/doc-files/health-classes.gif and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/package.html
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/package.html b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/package.html
deleted file mode 100644
index 13cf928..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/package.html
+++ /dev/null
@@ -1,53 +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.
--->
-<HTML>
-<BODY>
-
-<P>Contains the implementation of the external admin APIs from
-<a href="{@docRoot}/com/gemstone/gemfire/admin/package-summary.html#package_description">com.gemstone.gemfire.admin</a>.</P>
-
-<H2>Monitoring the "health" of GemFire</H2>
-
-<P>The health monitoring implementation comes in two pieces.  On the
-client (administrator) side there is a {@link
-com.gemstone.gemfire.admin.internal.GemFireHealthImpl} object that is
-responsible for configuring a {@link
-com.gemstone.gemfire.distributed.internal.HealthMonitorImpl} that runs
-in the member VMs.  The communication between the administration
-process and the member process is accomplised via a {@link
-com.gemstone.gemfire.internal.admin.GemFireVM GemFireVM} from the
-"internal admin" API.  The <code>HealthMonitorImpl</code> is a thread
-that periodically consults a {@link
-com.gemstone.gemfire.admin.internal.GemFireHealthEvaluator} that uses
-a {@link com.gemstone.gemfire.admin.internal.GemFireHealthConfigImpl}
-to determine the health of a GemFire component.  Most of the health
-criteria are based on {@linkplain com.gemstone.gemfire.Statistics
-statistics} that are maintained by GemFire.  When the
-<code>HealthMonitorImpl</code> determines that the health of a GemFire
-component has changed, it alerts the administrator process via a
-{@link com.gemstone.gemfire.internal.admin.HealthListener}.</P>
-
-
-<P>The below diagram explains how the classes that monitor the health
-of GemFire are implemented.</P>
-
-<CENTER>
-<IMG src="doc-files/health-classes.gif" HEIGHT="803" WIDTH="473"/>
-</CENTER>
-
-</BODY>
-</HTML>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/Agent.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/Agent.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/Agent.java
deleted file mode 100644
index f79e0c3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/Agent.java
+++ /dev/null
@@ -1,165 +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.admin.jmx;
-
-import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.AdminDistributedSystem;
-
-//import javax.management.MBeanException;
-import javax.management.MalformedObjectNameException;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-
-/**
- * A server component that provides administration-related information
- * about a GemFire distributed system via the Java Management
- * Extension JMX API.  When a JMX <code>Agent</code> is created, it
- * registers an MBean that represents {@link #getObjectName itself}. 
- * Click <A href="doc-files/mbeans-descriptions.html">here</A> for a
- * description of the attributes, operations, and notifications of
- * this and other GemFire JMX MBeans.
- *
- * <P>
- *
- * The GemFire JMX Agent currently supports three JMX "adapters"
- * through which clients can access the GemFire management beans: an
- * "HTTP adapter" that allows a web browser client to view and modify
- * management beans via HTTP or HTTPS, an "RMI adapter" that allows
- * Java programs to access management beans using Remote Method
- * Invocation, and an "SNMP adapter" that allows SNMP to access
- * management beans.  Information about configuring these adapters can
- * be found in {@link AgentConfig}.
- *
- * <P>
- *
- * In most distributed caching architectures, JMX administration
- * agents are run in their own processes.  A stand-alone JMX agent is
- * managed using the <code>agent</code> command line utility:
- *
- * <PRE>
- * $ agent start
- * </PRE>
- *
- * This class allows a GemFire application VM to host a JMX management
- * agent.  Architectures with "co-located" JMX agents reduce the
- * number of overall proceses required.  However, hosting a JMX
- * management agent in the same VM as a GemFire application is not
- * generally recommended because it adds extra burden to an
- * application VM and in the event that the application VM exits the
- * administration information will no longer be available.
- *
- * @see AgentConfig
- * @see AgentFactory
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface Agent {
-
-  /** Lookup name for RMIConnector when rmi-registry-enabled is true */
-  public static final String JNDI_NAME = "/jmxconnector";
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Returns the configuration object for this JMX Agent.
-   */
-  public AgentConfig getConfig();
-
-  /**
-   * Starts this JMX Agent and its associated adapters.  This method
-   * does not {@linkplain #connectToSystem connect} to the distributed
-   * system.
-   */
-  public void start();
-
-  /**
-   * Returns the JMX <code>MBeanServer</code> with which GemFire
-   * MBeans are registered or <code>null</code> if this
-   * <code>Agent</code> is not started.
-   */
-  public MBeanServer getMBeanServer();
-
-  /**
-   * {@linkplain #disconnectFromSystem Disconnects} from the
-   * distributed system and stops this JMX Agent and all of its
-   * associated adapters.
-   */
-  public void stop();
-
-  /**
-   * Returns the <code>ObjectName</code> of the JMX management bean
-   * that represents this agent or <code>null</code> if this
-   * <code>Agent</code> has not been started.
-   */
-  public ObjectName getObjectName();
-
-  /**
-   * Returns whether or not this JMX <code>Agent</code> is currently
-   * providing information about a distributed system.
-   */
-  public boolean isConnected();
-
-  /**
-   * Connects to the distributed system described by this <code>Agent</code>'s 
-   * configuration.
-   *
-   * @return The object name of the system that the <code>Agent</code>
-   *         is now connected to.
-   */
-  public ObjectName connectToSystem()
-    throws AdminException, MalformedObjectNameException;
-
-  /**
-   * Returns the <code>AdminDistributedSystem</code> that underlies
-   * this JMX <code>Agent</code> or <code>null</code> is this agent is
-   * not {@linkplain #isConnected connected}.
-   */
-  public AdminDistributedSystem getDistributedSystem();
-
-  /**
-   * Returns the object name of the JMX MBean that represents the
-   * distributed system administered by this <code>Agent</code> or
-   * <code>null</code> if this <code>Agent</code> has not {@linkplain
-   * #connectToSystem connected} to the distributed system.
-   */
-  public ObjectName manageDistributedSystem()
-    throws MalformedObjectNameException;
-
-  /**
-   * Disconnects this agent from the distributed system and
-   * unregisters the management beans that provided information about
-   * it.  However, this agent's adapters are not stopped and it is
-   * possible to reconfigure this <code>Agent</code> to connect to
-   * another distributed system.
-   */
-  public void disconnectFromSystem();
-
-  /**
-   * Saves the configuration for this <code>Agent</code> to the file
-   * specified by @link AgentConfig#getPropertyFile.
-   */
-  public void saveProperties();
-
-  /**
-   * Returns the <code>LogWriter</code> used for logging information.
-   */
-  public LogWriter getLogWriter();
-
-}


[02/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java
deleted file mode 100644
index 8c715dc..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/cache/AttributesFactory.java
+++ /dev/null
@@ -1,2056 +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.cache;
-
-import java.io.File;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import com.gemstone.gemfire.GemFireIOException;
-import com.gemstone.gemfire.cache.client.ClientCache;
-import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
-import com.gemstone.gemfire.cache.client.PoolManager;
-import com.gemstone.gemfire.compression.Compressor;
-import com.gemstone.gemfire.internal.cache.AbstractRegion;
-import com.gemstone.gemfire.internal.cache.CustomEvictionAttributesImpl;
-import com.gemstone.gemfire.internal.cache.DiskStoreFactoryImpl;
-import com.gemstone.gemfire.internal.cache.DiskWriteAttributesImpl;
-import com.gemstone.gemfire.internal.cache.EvictionAttributesImpl;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.cache.PartitionAttributesImpl;
-import com.gemstone.gemfire.internal.cache.PartitionedRegionHelper;
-import com.gemstone.gemfire.internal.cache.UserSpecifiedRegionAttributes;
-import com.gemstone.gemfire.internal.cache.xmlcache.RegionAttributesCreation;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/** Creates instances of {@link RegionAttributes}. An <code>AttributesFactory</code>
- * instance maintains state for creating <code>RegionAttributes</code> instances.
- * The setter methods are used to change the settings that will be used for
- * creating the next attributes instance with the {@link #create}
- * method. If you create a factory with the default constructor, then the
- * factory is set up to create attributes with all default settings. You can
- * also create a factory by providing a <code>RegionAttributes</code>, which
- * will set up the new factory with the settings provided in that attributes
- * instance.
- *
- * <p>Once a <code>RegionAttributes</code> is created, it can only be modified
- * after it has been used to create a <code>Region</code>, and then only by
- * using an {@link AttributesMutator} obtained from the region.
- *
- * <h3>Attributes</h3>
- * <h4>Callbacks</h4>
- * <dl>
- * <dt>{@link CacheLoader} [<em>default:</em> <code>null</code>, meaning no loader]</dt>
- *     <dd>User-implemented plug-in for loading data on cache misses.<br>
- *        {@link #setCacheLoader} {@link RegionAttributes#getCacheLoader}
- *        {@link AttributesMutator#setCacheLoader}</dd>
- *
- * <dt>{@link CacheWriter} [<em>default:</em> <code>null</code>, meaning no writer]</dt>
- *     <dd>User-implemented plug-in for intercepting cache modifications, e.g.
- *         for writing to an external data source.<br>
- *         {@link #setCacheWriter} {@link RegionAttributes#getCacheWriter}
- *         {@link AttributesMutator#setCacheWriter}</dd>
- *
- * <dt>{@link CacheListener} [<em>default:</em> <code>null</code>, meaning no listener ]</dt>
- *     <dd>User-implemented plug-in for receiving and handling cache related events.<br>
- *         {@link #addCacheListener} {@link #initCacheListeners}
- *         {@link #initCacheListeners}
- *         {@link RegionAttributes#getCacheListeners}
- *         {@link AttributesMutator#initCacheListeners}
- *         {@link AttributesMutator#addCacheListener}
- *         {@link AttributesMutator#removeCacheListener}</dd>
- * </dl>
- * <h4>Expiration</h4>
- * <dl>
- * <dt>RegionTimeToLive [<em>default:</em> no expiration]</dt>
- * <dd>Expiration configuration for the entire region based on the
- * {@link CacheStatistics#getLastModifiedTime lastModifiedTime}.<br>
- * {@link #setRegionTimeToLive} {@link RegionAttributes#getRegionTimeToLive}
- * {@link AttributesMutator#setRegionTimeToLive}</dd>
- *
- * <dt>RegionIdleTimeout [<em>default:</em> no expiration]</dt>
- * <dd>Expiration configuration for the entire region based on the
- * {@link CacheStatistics#getLastAccessedTime lastAccessedTime}.<br>
- * {@link #setRegionIdleTimeout} {@link RegionAttributes#getRegionIdleTimeout}
- * {@link AttributesMutator#setRegionIdleTimeout}</dd>
- *
- * <dt>EntryTimeToLive [<em>default:</em> no expiration]</dt>
- * <dd>Expiration configuration for individual entries based on the
- * {@link CacheStatistics#getLastModifiedTime lastModifiedTime}.<br>
- * {@link #setEntryTimeToLive} {@link RegionAttributes#getEntryTimeToLive}
- * {@link AttributesMutator#setEntryTimeToLive}</dd>
- *
- * <dt>EntryIdleTimeout [<em>default:</em> no expiration]</dt>
- * <dd>Expiration configuration for individual entries based on the
- * {@link CacheStatistics#getLastAccessedTime lastAccessedTime}.<br>
- * {@link #setEntryIdleTimeout} {@link RegionAttributes#getEntryIdleTimeout}
- * {@link AttributesMutator#setEntryIdleTimeout}</dd>
- * </dl>
- * <h4>Distribution</h4>
- * <dl>
- * <dt>{@link Scope}[<em>default:</em> {@link Scope#DISTRIBUTED_NO_ACK}]
- * </dt>
- * <dd>Properties of distribution for the region, including whether it is
- * distributed at all, whether acknowledgements are required, and whether
- * distributed synchronization is required. <br>
- * {@link #setScope} {@link RegionAttributes#getScope}</dd>
- *
- * <dt>EarlyAck [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Whether or not acks required by <code>Scope.DISTRIBUTED_ACK</code>
- *     are sent after an operation is processed. If <code>true</code>
- *     then remote caches will ACK before processing an operation sent
- *     by the cache that has set earlyAck to <code>true</code>.
- *     Note that this attribute is only meaningful on the cache that
- *     is initiating an operation; it does not matter what it is set to
- *     on the cache that receives the operation.<br>
- *     {@link #setEarlyAck} {@link RegionAttributes#getEarlyAck}</dd>
-
- * <dt>{@link SubscriptionAttributes} [<em>default:</em> {@link InterestPolicy#DEFAULT}]</dt>
- *     <dd>How will the region in this cache subscribe to other distributed
- *     instances of this region.
- *     <br>
- *     {@link #setSubscriptionAttributes} {@link RegionAttributes#getSubscriptionAttributes}</dd>
- *
- * <dt>EnableAsyncConflation [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Whether or not conflation is enabled for sending
- *     messages to async peers. Async peers are those whose
- *     <code>async-distribution-timeout</code> gemfire.property is greater
- *     than zero. AsyncConflation is ignored if the scope is
- *     <code>DISTRIBUTED_ACK</code> or <code>GLOBAL</code>.
- *     Conflation is only done on entry update operations. It is done
- *     by dropping the earlier update from the message queue.
- *     {@link #setEnableAsyncConflation} {@link RegionAttributes#getEnableAsyncConflation}</dd>
- * <dt>poolName [<em>default:</em> <code>null</code>, meaning no pool]</dt>
- *     <dd>Whether or not this region is a client that is to use
- *     connections from the named pool to communicate with servers.
- *     If <code>null</code>, then it is not a client.
- *     If <code>non-null</code>, then the named pool will be used.
- *     {@link #setPoolName} {@link RegionAttributes#getPoolName}</dd>
- * 
- *
- * <dt>EnableSubscriptionConflation [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Whether or not conflation is enabled for sending
- *     messages from a cache server to its clients. Note: This parameter
- *     is only valid for cache server to client communication. It has no
- *     effect in peer to peer communication.
- *     If <code>true</code>, messages will be conflated before they are
- *     sent from a cache server to its clients. Only the latest value
- *     will be sent.
- *     Note that this attribute is only meaningful in a client server
- *     topology.
- *     {@link #setEnableSubscriptionConflation} {@link RegionAttributes#getEnableSubscriptionConflation}</dd>
- * <dt>Publisher [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Whether or not a region is a publisher. Publishers are regions
- *         that will have distributed write operations done on them.
- *         If a publisher is also a replicate then it will be used
- *         as the preferred source for initializing other replicates.
- *     {@link #setPublisher} {@link RegionAttributes#getPublisher}</dd>
- * <dt>isCloningEnabled [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Whether or not value is cloned before appling <code>Delta</code>s
- *     If <code>false</code>, value will not be cloned
- *     {@link #setCloningEnabled} {@link RegionAttributes#getCloningEnabled()}</dd></dt>
- * </dl>
- * <h4>Storage (see also <a href="package-summary.html#storage">package summary
- * </a>)</h4>
- * <dl>
- * <dt>{@link DataPolicy} [<em>default:</em> <code>DataPolicy.NORMAL</code>]</dt>
- *     <dd>Specifies the data storage policy.<br>
- *         {@link #setDataPolicy} {@link RegionAttributes#getDataPolicy}</dd>
- *
- * <dt>{@link MirrorType} [<em>default:</em> <code>MirrorType.NONE</code>]</dt>
- *     <dd><em>Deprecated</em>, use DataPolicy instead.</dd>
- *
- * <dt>{@link #setEvictionAttributes(EvictionAttributes) EvictionAttributes}</dt>
- *      <dd>{@link EvictionAttributes} are the replacement for the deprecated and removed CapacityController interface.
- *          EvictionAttributes describe the {@link EvictionAlgorithm} and the {@link EvictionAction}
- *          as well as the various conditions under which the algorithm perform the action
- *          e.g. when the maximum number of entries has been reached or
- *          the maximum percentage of JVM heap has been consumed.
- *          Setting <code>EvictionAttributes</code> installs an eviction controller
- *          on the Region instantiated with the associated RegionAttributes </dd>
- *
- * <dt>KeyConstraint [<em>default:</em> <code>null</code>, meaning no constraint]</dt>
- *     <dd>The Class to constrain the keys to in the region.<br>
- *         {@link #setKeyConstraint} {@link RegionAttributes#getKeyConstraint}</dd>
- *
- * <dt>ValueConstraint [<em>default:</em> <code>null</code>, meaning no constraint]</dt>
- *     <dd>The Class to constrain the values to in the region. In addition to the
- *         utility of this for applications in general, a <code>valueConstraint</code>
- *         is helpful for compiling queries.<br>
- *         {@link #setValueConstraint} {@link RegionAttributes#getValueConstraint}</dd>
- *
- * <dt>InitialCapacity [<em>default:</em> <code>16</code>]</dt>
- * <dd>The initial capacity of the map used for storing the entries. <br>
- * {@link java.util.HashMap} {@link #setInitialCapacity}
- * {@link RegionAttributes#getInitialCapacity}</dd>
- *
- * <dt>LoadFactor [<em>default:</em> <code>0.75</code>]</dt>
- * <dd>The load factor of the map used for storing the entries. <br>
- * {@link java.util.HashMap} {@link #setLoadFactor}
- * {@link RegionAttributes#getLoadFactor}</dd>
- *
- * <dt>ConcurrencyLevel [<em>default:</em> <code>16</code>]</dt>
- * <dd>The allowed concurrency among updates to values in the region is guided
- * by the <tt>concurrencyLevel</tt>, which is used as a hint for internal
- * sizing. The actual concurrency will vary. Ideally, you should choose a value
- * to accommodate as many threads as will ever concurrently modify values in the
- * region. Using a significantly higher value than you need can waste space and
- * time, and a significantly lower value can lead to thread contention. But
- * overestimates and underestimates within an order of magnitude do not usually
- * have much noticeable impact. A value of one is appropriate when it is known
- * that only one thread will modify and all others will only read. <br>
- * {@link #setConcurrencyLevel} {@link RegionAttributes#getConcurrencyLevel}
- * </dd>
- * 
- * <dt>ConcurrencyChecksEnabled [<em>default:</em> <code>false</code>]</dt>
- * <dd>Enables a distributed versioning algorithm that detects concurrency
- * conflicts in regions and ensures that changes to an
- * entry are not applied in a different order in other members.  This can
- * cause operations to be conflated, so that some cache listeners may see
- * an event while others do not, but it guarantees that the system will
- * be consistent.
- * </dd>
- *
- * <dt>StatisticsEnabled [<em>default:</em> <code>false</code>]</dt>
- * <dd>Whether statistics are enabled for this region. The default is disabled,
- * which conserves on memory. <br>
- * {@link #setStatisticsEnabled} {@link RegionAttributes#getStatisticsEnabled}
- * </dd>
- *
- * <dt>IgnoreJTA [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Whether JTA transactions are ignored for this region.  The
- *     default is to look for and join JTA transactions for operations
- *     performed on a region.
- *
- * <dt>DiskStoreName [<em>default:</em> <code>null</code>, meaning no disk store]</dt>
- *    <dd>If not <code>null</code> then this region will write its data
- *    to the named {@link DiskStore}.<br>
- *    {@link #setDiskStoreName} {@link RegionAttributes#getDiskStoreName}</dd>
- *
- * <dt>DiskSynchronous [<em>default:</em> <code>true</code>]</dt>
- *    <dd>If <code>true</code> then any writes to disk done for this region
- *    will be done synchronously. This means that they will be in the file system
- *    buffer before the operation doing the write returns.<br>
- *    If <code>false</code> then any writes to disk done for this region
- *    will be done asynchronously. This means that they are queued up to be written
- *    and when they are actually written to the file system buffer is determined
- *    by the region's {@link DiskStore} configuration.
- *    Asynchronous writes will be conflated if the same entry is written while a
- *    previous operation for the same entry is still in the queue.<br>
- *    {@link #setDiskSynchronous} {@link RegionAttributes#isDiskSynchronous}</dd>
-
- * <dt>PersistBackup [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Whether or not a persistent backup should be made of the
- *     region.<br>
- *     {@link #setPersistBackup} {@link RegionAttributes#getPersistBackup}</dd>
- *     <dd><em>Deprecated</em>, use {@link DataPolicy#PERSISTENT_REPLICATE} or {@link DataPolicy#PERSISTENT_PARTITION} instead.</dd>
- *
- * <dt>DiskWriteAttributes [<em>default:</em> Asynchronously write to
- *            disk every second (a <code>timeInterval</code> of 1000 and a
- *            <code>byteThreshold</codE> of 0). <code>rollOplogs</code> is set to true and
- *            <code>maxOplogSize</code> is set to 1024 MB]</dt>
- *     <dd>How region data should be written to disk.  Determines
- *     whether data should be written synchronously or asynchronously.
- *     Data that is written asynchronously can be written at a certain
- *     {@linkplain DiskWriteAttributes#getTimeInterval time interval}
- *     or once a certain number of {@linkplain
- *     DiskWriteAttributes#getBytesThreshold bytes of data} have been
- *     enqueued.<br>
- *     {@link DiskWriteAttributes} {@link #setDiskWriteAttributes} {@link RegionAttributes#getDiskWriteAttributes}</dd>
- *     <dd><em>Deprecated</em>, use {@link #setDiskStoreName} and {@link #setDiskSynchronous} instead.</dd>
- *
- * <dt>DiskDirs [<em>default:</em> Current working directory (<code>user.dir</code> {@linkplain System#getProperties system property})]</dt>
- *     <dd>The directories to which the region's data are written.  If
- *     multiple directories are used, GemFire will attempt to distribute the
- *     data evenly among them. <br>
- *     {@link #setDiskDirs} {@link RegionAttributes#getDiskDirs}</dd>
- *     <dd><em>Deprecated</em>, use {@link #setDiskStoreName} instead.</dd>
- *
- * <dt>DiskDirSizes [<em>default:</em> 10240 MB]</dt>
- * <dd> The size of the directory to which region's data is written.<br>
- * {@link #setDiskDirsAndSizes} {@link RegionAttributes#getDiskDirSizes}</dd>
- * <dd><em>Deprecated</em>, use {@link #setDiskStoreName} instead.</dd>
- *
- *
- * <dt>{@link PartitionAttributes} [<em>default:</em> <code>null</code>, meaning no region partitioning]</dt>
- *     <dd>How region data is partitioned among the members of the
- *     distributed system.
- *     <br>
- *     {@link #setPartitionAttributes} {@link RegionAttributes#getPartitionAttributes}</dd>
- *
- * <dt>{@link MembershipAttributes} [<em>default:</em> no required roles]</dt>
- *     <dd>How access to the region is affected when one or more required roles
- *     are missing from the region membership.
- *     <br>
- *     {@link #setMembershipAttributes} {@link RegionAttributes#getMembershipAttributes}</dd>
- *
- * </dt>
- * </dl>
- *
- * <h4>Locking</h4>
- * <dl>
- * <dt>LockGrantor [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Should this process become lock grantor for the region?</dd><br>
- *     {@link #setLockGrantor} {@link RegionAttributes#isLockGrantor}
- *     {@link Region#becomeLockGrantor}
- * </dl>
- *
- * <h4>Querying</h4>
- * <dl>
- * <dt>IndexMaintenanceSynchronous [<em>default:</em> <code>false</code>]</dt>
- *     <dd>Are indexes built over in this region updated
- *         synchronously when the underlying data is
- *         modified?</dd><br>
- *     {@link #setIndexMaintenanceSynchronous} {@link
- *     RegionAttributes#getIndexMaintenanceSynchronous}
- * </dl>
- *
- * <p>Note that the RegionAttributes are not distributed with the region.
- *
- * <a name="compatibility"><h3>Compatibility Rules</h3>
- * <h4>RegionAttributes Creation Constraints</h4>
- * If any of the following compatibility rules are violated when
- * {@link #create}</code> is called then an
- * {@link IllegalStateException} is thrown.
- * See {@link #validateAttributes}.
- *
- * <a name="creationConstraints"><h3>Creation Constraints</h3>
- * <h4>Region Creation Constraints on RegionAttributes</h4>
- *
- * If any of the following rules are violated when {@link
- * Region#createSubregion createSubregion} or {@link Cache#createRegion
- * createRegion} are called, then an
- * <code>IllegalStateException</code> is thrown.
- *
- * <ul>
- * <li>A region with <code>Scope.LOCAL</code> can only have subregions with
- * <code>Scope.LOCAL</code>.</li>
- * <li><code>Scope.GLOBAL</code> is illegal if there is any other cache in
- * the distributed system that has the same region with
- * <code>Scope.DISTRIBUTED_NO_ACK</code> or <code>Scope.DISTRIBUTED_ACK</code>.
- * </li>
- * <li><code>Scope.DISTRIBUTED_ACK</code> is illegal if there is any other
- * cache in the distributed system that has the same region with
- * <code>Scope.DISTRIBUTED_NO_ACK</code> or <code>Scope.GLOBAL</code>.
- * </li>
- * <li><code>Scope.DISTRIBUTED_NO_ACK</code> is illegal if there is any other
- * cache in the distributed system that has the same region with
- * <code>Scope.DISTRIBUTED_ACK</code> or <code>Scope.GLOBAL</code>.</li>
- * </ul>
- *
- * @see RegionAttributes
- * @see AttributesMutator
- * @see Region#createSubregion(String, RegionAttributes)
- *
- * @author Eric Zoerner
- * @since 3.0
- * @deprecated as of 6.5 use {@link Cache#createRegionFactory(RegionShortcut)} or {@link ClientCache#createClientRegionFactory(ClientRegionShortcut)} instead.
- */
-@SuppressWarnings("synthetic-access")
-public class AttributesFactory<K,V> {
-  private final RegionAttributesImpl<K,V> regionAttributes = new RegionAttributesImpl<K,V>();
-
-  /**
-   * The default disk synchronous write setting
-   * <p>Current value: <code>true</code> each.
-   * @since 6.5
-   */
-  public static final boolean DEFAULT_DISK_SYNCHRONOUS = true;
-  
-  /**
-   * Creates a new instance of AttributesFactory ready to create a
-   * <code>RegionAttributes</code> with default settings.
-   */
-  public AttributesFactory() {
-  }
-
-  /**
-   * Creates a new instance of AttributesFactory ready to create a
-   * <code>RegionAttributes</code> with the same settings as those in the
-   * specified <code>RegionAttributes</code>.
-   *
-   * @param regionAttributes
-   *          the <code>RegionAttributes</code> used to initialize this
-   *          AttributesFactory
-   */
-  @SuppressWarnings("deprecation")
-  public AttributesFactory(RegionAttributes<K,V> regionAttributes) {
-    synchronized (this.regionAttributes) {
-      this.regionAttributes.cacheListeners = new ArrayList<CacheListener<K,V>>(Arrays.asList(regionAttributes.getCacheListeners()));
-    }
-    this.regionAttributes.cacheLoader = regionAttributes.getCacheLoader();
-    this.regionAttributes.cacheWriter = regionAttributes.getCacheWriter();
-    this.regionAttributes.regionTimeToLive = regionAttributes
-        .getRegionTimeToLive().getTimeout();
-    this.regionAttributes.regionTimeToLiveExpirationAction = regionAttributes
-        .getRegionTimeToLive().getAction();
-    this.regionAttributes.regionIdleTimeout = regionAttributes
-        .getRegionIdleTimeout().getTimeout();
-    this.regionAttributes.regionIdleTimeoutExpirationAction = regionAttributes
-        .getRegionIdleTimeout().getAction();
-    
-    this.regionAttributes.entryTimeToLive = regionAttributes
-        .getEntryTimeToLive().getTimeout();
-    this.regionAttributes.entryTimeToLiveExpirationAction = regionAttributes
-        .getEntryTimeToLive().getAction();
-    this.regionAttributes.customEntryTimeToLive = regionAttributes
-        .getCustomEntryTimeToLive();
-    this.regionAttributes.entryIdleTimeout = regionAttributes
-        .getEntryIdleTimeout().getTimeout();
-    this.regionAttributes.entryIdleTimeoutExpirationAction = regionAttributes
-        .getEntryIdleTimeout().getAction();
-    this.regionAttributes.customEntryIdleTimeout = regionAttributes
-        .getCustomEntryIdleTimeout();
-    
-    this.regionAttributes.scope = regionAttributes.getScope();
-    this.regionAttributes.dataPolicy = regionAttributes.getDataPolicy();
-    this.regionAttributes.statisticsEnabled = regionAttributes.getStatisticsEnabled();
-    this.regionAttributes.ignoreJTA = regionAttributes.getIgnoreJTA();
-    this.regionAttributes.keyConstraint = regionAttributes.getKeyConstraint();
-    this.regionAttributes.valueConstraint = regionAttributes
-        .getValueConstraint();
-    this.regionAttributes.initialCapacity = regionAttributes
-        .getInitialCapacity();
-    this.regionAttributes.loadFactor = regionAttributes.getLoadFactor();
-    this.regionAttributes.concurrencyLevel = regionAttributes
-        .getConcurrencyLevel();
-    this.regionAttributes.concurrencyChecksEnabled = regionAttributes.getConcurrencyChecksEnabled();
-    this.regionAttributes.earlyAck = regionAttributes.getEarlyAck();
-    this.regionAttributes.diskStoreName = regionAttributes.getDiskStoreName();
-    if (this.regionAttributes.diskStoreName == null) {
-      this.regionAttributes.diskWriteAttributes = regionAttributes
-      .getDiskWriteAttributes();
-      this.regionAttributes.diskDirs = regionAttributes.getDiskDirs();
-      this.regionAttributes.diskSizes = regionAttributes.getDiskDirSizes();
-    }
-    this.regionAttributes.diskSynchronous = regionAttributes.isDiskSynchronous();
-    this.regionAttributes.indexMaintenanceSynchronous = regionAttributes
-        .getIndexMaintenanceSynchronous();
-    this.regionAttributes.partitionAttributes = regionAttributes
-        .getPartitionAttributes();
-    this.regionAttributes.evictionAttributes = (EvictionAttributesImpl)regionAttributes
-        .getEvictionAttributes();
-    this.regionAttributes.customEvictionAttributes = regionAttributes
-        .getCustomEvictionAttributes();
-
-    this.regionAttributes.membershipAttributes = regionAttributes.getMembershipAttributes();
-    this.regionAttributes.subscriptionAttributes = regionAttributes.getSubscriptionAttributes();
-    this.regionAttributes.evictionAttributes = (EvictionAttributesImpl) regionAttributes.getEvictionAttributes();
-
-    this.regionAttributes.publisher = regionAttributes.getPublisher();
-    this.regionAttributes.enableAsyncConflation = regionAttributes.getEnableAsyncConflation();
-    this.regionAttributes.enableSubscriptionConflation = regionAttributes.getEnableSubscriptionConflation();
-    this.regionAttributes.poolName = regionAttributes.getPoolName();
-    this.regionAttributes.isCloningEnabled = regionAttributes.getCloningEnabled();
-    this.regionAttributes.multicastEnabled = regionAttributes.getMulticastEnabled();
-    this.regionAttributes.gatewaySenderIds = new CopyOnWriteArraySet<String>(regionAttributes.getGatewaySenderIds());
-    this.regionAttributes.asyncEventQueueIds = new CopyOnWriteArraySet<String>(regionAttributes.getAsyncEventQueueIds());
-    this.regionAttributes.isLockGrantor = regionAttributes.isLockGrantor(); // fix for bug 47067
-    if (regionAttributes instanceof UserSpecifiedRegionAttributes) {
-      this.regionAttributes.setIndexes(((UserSpecifiedRegionAttributes<K,V>) regionAttributes).getIndexes());
-    }
-
-    if (regionAttributes instanceof UserSpecifiedRegionAttributes) {
-      // Selectively set has* fields to true, propigating those non-default 
-      // (aka user specified) fields as such
-      UserSpecifiedRegionAttributes<K,V> nonDefault = (UserSpecifiedRegionAttributes<K,V>) regionAttributes;
-      this.regionAttributes.initHasFields(nonDefault);
-      this.regionAttributes.requiresPoolName = nonDefault.requiresPoolName;
-    } else {
-      // Set all fields to false, essentially starting with a new set of defaults
-      this.regionAttributes.setAllHasFields(false);
-      
-      
-      
-//      
-//      // Special Partitioned Region handling by
-//      // pretending the user didn't explicitly ask for the default scope
-//      if (AbstractRegion.DEFAULT_SCOPE.equals(this.regionAttributes.getScope())) {
-//        this.regionAttributes.setHasScope(false); 
-//      }
-    }
-    
-    this.regionAttributes.compressor = regionAttributes.getCompressor();
-    this.regionAttributes.offHeap = regionAttributes.getOffHeap();
-  }
-
-  // CALLBACKS
-
-  /**
-   * Sets the cache loader for the next <code>RegionAttributes</code> created.
-   *
-   * @param cacheLoader
-   *          the cache loader or null if no loader
-   * @throws IllegalStateException if this region has a {@link #setPoolName pool name set}
-   */
-  public void setCacheLoader(CacheLoader<K,V> cacheLoader)
-  {
-    this.regionAttributes.cacheLoader = cacheLoader;
-    this.regionAttributes.setHasCacheLoader(true);
-  }
-
-  /**
-   * Sets the cache writer for the next <code>RegionAttributes</code> created.
-   *
-   * @param cacheWriter
-   *          the cache writer or null if no cache writer
-   * @throws IllegalStateException if this region has a {@link #setPoolName pool name set}
-   */
-  public void setCacheWriter(CacheWriter<K,V> cacheWriter)
-  {
-    this.regionAttributes.cacheWriter = cacheWriter;
-    this.regionAttributes.setHasCacheWriter(true);
-  }
-
-  /** Sets the CacheListener for the next <code>RegionAttributes</code> created.
-   * Any existing cache listeners on this factory are removed.
-   * @param aListener a user defined CacheListener, null if no listener
-   * @deprecated as of GemFire 5.0, use {@link #addCacheListener} instead.
-   */
-  @Deprecated
-  public void setCacheListener(CacheListener<K,V> aListener) {
-    ArrayList<CacheListener<K,V>> col;
-    if (aListener == null) {
-      col = null;
-    } else {
-      col = new ArrayList<CacheListener<K,V>>(1);
-      col.add(aListener);
-    }
-    synchronized (this.regionAttributes) {
-      this.regionAttributes.cacheListeners = col;
-    }
-    this.regionAttributes.setHasCacheListeners(true);
-  }
-  /**
-   * Adds a cache listener to the end of the list of cache listeners on this factory.
-   * @param aListener the cache listener to add to the factory.
-   * @throws IllegalArgumentException if <code>aListener</code> is null
-   * @since 5.0
-   */
-  public void addCacheListener(CacheListener<K,V> aListener) {
-    if (aListener == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_ADDCACHELISTENER_PARAMETER_WAS_NULL.toLocalizedString());
-    }
-    synchronized (this.regionAttributes) {
-      this.regionAttributes.addCacheListener(aListener);
-    }
-  }
-  /**
-   * Removes all cache listeners and then adds each listener in the specified array.
-   * @param newListeners a possibly null or empty array of listeners to add to this factory.
-   * @throws IllegalArgumentException if the <code>newListeners</code> array has a null element
-   * @since 5.0
-   */
-  public void initCacheListeners(CacheListener<K,V>[] newListeners) {
-    synchronized (this.regionAttributes) {
-      if (newListeners == null || newListeners.length == 0) {
-        this.regionAttributes.cacheListeners = null;
-      } else {
-        List<CacheListener<K,V>> nl = Arrays.asList(newListeners);
-        if (nl.contains(null)) {
-          throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_INITCACHELISTENERS_PARAMETER_HAD_A_NULL_ELEMENT.toLocalizedString());
-        }
-        this.regionAttributes.cacheListeners = new ArrayList<CacheListener<K,V>>(nl);
-      }
-    }
-    this.regionAttributes.setHasCacheListeners(true);
-  }
-
-
-  // EXPIRATION ATTRIBUTES
-
-  /**
-   * Sets the idleTimeout expiration attributes for region entries for the next
-   * <code>RegionAttributes</code> created.
-   * Default is 0 which indicates no expiration of this type.
-   *
-   * @param idleTimeout
-   *          the idleTimeout ExpirationAttributes for entries in this region
-   * @throws IllegalArgumentException
-   *           if idleTimeout is null
-   */
-  public void setEntryIdleTimeout(ExpirationAttributes idleTimeout)
-  {
-    if (idleTimeout == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_IDLETIMEOUT_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    this.regionAttributes.entryIdleTimeout = idleTimeout.getTimeout();
-    this.regionAttributes.entryIdleTimeoutExpirationAction = idleTimeout
-        .getAction();
-    this.regionAttributes.setHasEntryIdleTimeout(true);
-  }
-
-  /**
-   * Sets the idleTimeout CustomExpiry for the next <code>RegionAttributes</code>
-   * created.
-   * 
-   * @param custom the CustomExpiry to use; null means none will be used.
-   */
-  public void setCustomEntryIdleTimeout(CustomExpiry<K,V> custom) {
-    this.regionAttributes.customEntryIdleTimeout = custom;
-    this.regionAttributes.setHasCustomEntryIdleTimeout(true);
-  }
-  
-  /**
-   * Sets the timeToLive expiration attributes for region entries for the next
-   * <code>RegionAttributes</code> created.
-   * Default is 0 which indicates no expiration of this type.
-   *
-   * @param timeToLive
-   *          the timeToLive ExpirationAttributes for entries in this region
-   * @throws IllegalArgumentException
-   *           if timeToLive is null
-   */
-  public void setEntryTimeToLive(ExpirationAttributes timeToLive)
-  {
-    if (timeToLive == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_TIMETOLIVE_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    this.regionAttributes.entryTimeToLive = timeToLive.getTimeout();
-    this.regionAttributes.entryTimeToLiveExpirationAction = timeToLive
-        .getAction();
-    this.regionAttributes.setHasEntryTimeToLive(true);
-  }
-
-  /**
-   * Sets the custom timeToLive for the next <code>RegionAttributes</code>
-   * created.
-   * 
-   * @param custom the CustomExpiry to use, none if the default for the region
-   * is to be used.
-   */
-  public void setCustomEntryTimeToLive(CustomExpiry<K,V> custom) {
-    this.regionAttributes.customEntryTimeToLive = custom;
-    this.regionAttributes.setHasCustomEntryTimeToLive(true);
-  }
-  
-  /**
-   * Sets the idleTimeout expiration attributes for the region itself for the
-   * next <code>RegionAttributes</code> created.
-   * Default is 0 which indicates no expiration of this type is set. 
-   *
-   * @param idleTimeout
-   *          the ExpirationAttributes for this region idleTimeout
-   * @throws IllegalArgumentException
-   *           if idleTimeout is null
-   */
-  public void setRegionIdleTimeout(ExpirationAttributes idleTimeout)
-  {
-    if (idleTimeout == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_IDLETIMEOUT_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    this.regionAttributes.regionIdleTimeout = idleTimeout.getTimeout();
-    this.regionAttributes.regionIdleTimeoutExpirationAction = idleTimeout
-        .getAction();
-    this.regionAttributes.setHasRegionIdleTimeout(true);
-  }
-  
-
-  /**
-   * Sets the timeToLive expiration attributes for the region itself for the
-   * next <code>RegionAttributes</code> created.
-   * Default is 0 i.e. no expiration of this type.
-   *
-   * @param timeToLive
-   *          the ExpirationAttributes for this region timeToLive
-   * @throws IllegalArgumentException
-   *           if timeToLive is null
-   */
-  public void setRegionTimeToLive(ExpirationAttributes timeToLive)
-  {
-    if (timeToLive == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_TIMETOLIVE_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    this.regionAttributes.regionTimeToLive = timeToLive.getTimeout();
-    this.regionAttributes.regionTimeToLiveExpirationAction = timeToLive
-        .getAction();
-    this.regionAttributes.setHasRegionTimeToLive(true);
-  }
-
-  // DISTRIBUTION ATTRIBUTES
-
-  /**
-   * Sets the scope for the next <code>RegionAttributes</code> created.
-   * Default scope is DISTRIBUTED_NO_ACK. Refer gemfire documentation for more details on this.
-   * @param scopeType
-   *          the type of Scope to use for the region
-   * @throws IllegalArgumentException
-   *           if scopeType is null
-   */
-  public void setScope(Scope scopeType)
-  {
-    if (scopeType == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_SCOPETYPE_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    this.regionAttributes.setScope(scopeType);
-  }
-
-  // STORAGE ATTRIBUTES
-
-  /**
-   * Sets the EvictionController for the next <code>RegionAttributes</code>
-   * created. Use one of the creation methods on {@link EvictionAttributes} e.g.
-   * {@link EvictionAttributes#createLRUHeapAttributes()} to create the desired
-   * instance for this <code>AttributesFactory</code>
-   *
-   * @param evictAttrs
-   *          Explains how and when eviction occurs in the Region.
-   */
-   public void setEvictionAttributes(EvictionAttributes evictAttrs) {
-     if (evictAttrs != null) {
-       this.regionAttributes.evictionAttributes = (EvictionAttributesImpl) evictAttrs;
-     } else {
-       this.regionAttributes.evictionAttributes = new EvictionAttributesImpl();
-     }
-     this.regionAttributes.setHasEvictionAttributes(true);
-   }
-
-  /**
-   * Set custom {@link EvictionCriteria} for the region with start time and
-   * frequency of evictor task to be run in milliseconds, or evict incoming rows
-   * in case both start and frequency are specified as zero.
-   * 
-   * @param criteria
-   *          an {@link EvictionCriteria} to be used for eviction for HDFS
-   *          persistent regions
-   * @param start
-   *          the start time at which periodic evictor task should be first
-   *          fired to apply the provided {@link EvictionCriteria}; if this is
-   *          zero then current time is used for the first invocation of evictor
-   * @param interval
-   *          the periodic frequency at which to run the evictor task after the
-   *          initial start; if this is if both start and frequency are zero
-   *          then {@link EvictionCriteria} is applied on incoming insert/update
-   *          to determine whether it is to be retained
-   */
-  public void setCustomEvictionAttributes(EvictionCriteria<K, V> criteria,
-      long start, long interval) {
-    this.regionAttributes.customEvictionAttributes =
-        new CustomEvictionAttributesImpl(criteria, start, interval,
-            start == 0 && interval == 0);
-    this.regionAttributes.setHasCustomEviction(true);
-  }
-
-   /** Sets the mirror type for the next <code>RegionAttributes</code> created.
-   * @param mirrorType The type of mirroring to use for the region
-   * @throws IllegalArgumentException if mirrorType is null
-   * @deprecated use {@link #setDataPolicy} instead.
-   */
-  @Deprecated
-  public void setMirrorType(MirrorType mirrorType) {
-    if (mirrorType == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_MIRRORTYPE_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    DataPolicy dp = mirrorType.getDataPolicy();
-    if (dp.withReplication()) {
-      // requested a mirror type that has replication
-      // if current data policy is not replicated change it
-      if (!this.regionAttributes.getDataPolicy().withReplication()) {
-        setDataPolicy(dp);
-      }
-    } else {
-      // requested a mirror type none;
-      // if current data policy is replicated change it
-      if (this.regionAttributes.getDataPolicy().withReplication()) {
-        setDataPolicy(dp);
-      }
-    }
-  }
-  /** Sets the data policy for the next <code>RegionAttributes</code> created.
-   * Default data policy is 'Normal'. Please refer gemfire documentation for more details on this.
-   * @param dataPolicy The data policy to use for the region
-   * @throws IllegalArgumentException if dataPolicy is null
-   */
-  public void setDataPolicy(DataPolicy dataPolicy) {
-    if (dataPolicy == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_DATAPOLICY_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    if (this.regionAttributes.partitionAttributes != null) {
-      if ( !PartitionedRegionHelper.ALLOWED_DATA_POLICIES.contains(dataPolicy) ) {
-        throw new IllegalStateException( LocalizedStrings.AttributesFactory_DATA_POLICIES_OTHER_THAN_0_ARE_NOT_SUPPORTED_FOR_PARTITIONED_REGIONS
-            .toLocalizedString(PartitionedRegionHelper.ALLOWED_DATA_POLICIES));
-      }
-    }
-    this.regionAttributes.setDataPolicy(dataPolicy);
-  }
-
-
-
-  /** Sets the key constraint for the next <code>RegionAttributes</code> created.
-   * Keys in the region will be constrained to this class (or subclass).
-   * Any attempt to store a key of an incompatible type in the region will
-   * cause a <code>ClassCastException</code> to be thrown.
-   * @param keyConstraint The Class to constrain the keys to, or null if no constraint
-   * @throws IllegalArgumentException if <code>keyConstraint</code> is a class
-   * denoting a primitive type
-   */
-  public void setKeyConstraint(Class<K> keyConstraint) {
-    if (keyConstraint != null && keyConstraint.isPrimitive())
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_KEYCONSTRAINT_MUST_NOT_BE_A_PRIMITIVE_TYPE.toLocalizedString());
-    this.regionAttributes.keyConstraint = keyConstraint;
-    this.regionAttributes.setHasKeyConstraint(true);
-  }
-
-  /** Sets the value constraint for the next <code>RegionAttributes</code> created.
-   * Values in the region will be constrained to this class (or subclass).
-   * Any attempt to store a value of an incompatible type in the region will
-   * cause a <code>ClassCastException</code> to be thrown.
-   * @param valueConstraint The Class to constrain the values to, or null if no constraint
-   * @throws IllegalArgumentException if <code>valueConstraint</code> is a class
-   * denoting a primitive type
-   */
-  public void setValueConstraint(Class<V> valueConstraint) {
-    if (valueConstraint != null && valueConstraint.isPrimitive())
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_VALUECONSTRAINT_MUST_NOT_BE_A_PRIMITIVE_TYPE.toLocalizedString());
-    this.regionAttributes.valueConstraint = valueConstraint;
-    this.regionAttributes.setHasValueConstraint(true);
-  }
-
-
-
-  // MAP ATTRIBUTES
-  /** Sets the entry initial capacity for the next <code>RegionAttributes</code>
-   * created. This value
-   * is used in initializing the map that holds the entries.
-   * Default is 16.
-   * @param initialCapacity the initial capacity of the entry map
-   * @throws IllegalArgumentException if initialCapacity is negative.
-   * @see java.util.HashMap
-   */
-  public void setInitialCapacity(int initialCapacity) {
-    if (initialCapacity < 0)
-        throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_INITIALCAPACITY_MUST_BE_0.toLocalizedString());
-    this.regionAttributes.initialCapacity = initialCapacity;
-    this.regionAttributes.setHasInitialCapacity(true);
-  }
-
-  /** Sets the entry load factor for the next <code>RegionAttributes</code>
-   * created. This value is
-   * used in initializing the map that holds the entries.
-   * Default is 0.75.
-   * @param loadFactor the load factor of the entry map
-   * @throws IllegalArgumentException if loadFactor is nonpositive
-   * @see java.util.HashMap
-   */
-  public void setLoadFactor(float loadFactor) {
-    if (loadFactor <= 0)
-        throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_LOADFACTOR_MUST_BE_0_VALUE_IS_0.toLocalizedString(new Float(loadFactor)));
-    this.regionAttributes.loadFactor = loadFactor;
-    this.regionAttributes.setHasLoadFactor(true);
-  }
-
-  /** Sets the concurrency level of the next <code>RegionAttributes</code>
-   * created. This value is used in initializing the map that holds the entries.
-   * Default is 16.
-   * @param concurrencyLevel the concurrency level of the entry map
-   * @throws IllegalArgumentException if concurrencyLevel is nonpositive
-   */
-  public void setConcurrencyLevel(int concurrencyLevel) {
-    if (concurrencyLevel <= 0)
-        throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_CONCURRENCYLEVEL_MUST_BE_0.toLocalizedString());
-    this.regionAttributes.concurrencyLevel = concurrencyLevel;
-    this.regionAttributes.setHasConcurrencyLevel(true);
-  }
-  
-  /**
-   * Enables or disabled concurrent modification checks.  Concurrency checks are enabled
-   * by default.
-   * @since 7.0
-   * @param concurrencyChecksEnabled whether to perform concurrency checks on operations
-   */
-  public void setConcurrencyChecksEnabled(boolean concurrencyChecksEnabled) {
-    this.regionAttributes.concurrencyChecksEnabled = concurrencyChecksEnabled;
-    this.regionAttributes.setHasConcurrencyChecksEnabled(true);
-  }
-
-  /**
-   * Sets whether or not a persistent backup should be made of the
-   * region.
-   *
-   * @since 3.2
-   * @deprecated as of GemFire 5.0, use {@link DataPolicy#PERSISTENT_REPLICATE} instead
-   */
-  @Deprecated
-  public void setPersistBackup(boolean persistBackup) {
-    if (persistBackup) {
-      if (!this.regionAttributes.getDataPolicy().withPersistence()) {
-        if (this.regionAttributes.getDataPolicy().withPartitioning()) {
-          setDataPolicy(DataPolicy.PERSISTENT_PARTITION);
-        } else {
-          setDataPolicy(DataPolicy.PERSISTENT_REPLICATE);
-        }
-      }
-    } else {
-      // It is less clear what we should do here for backwards compat.
-      // If the current data policy is persist then we need to change it
-      // otherwise just leave it alone
-      if (this.regionAttributes.getDataPolicy().withReplication()) {
-        setDataPolicy(DataPolicy.REPLICATE);
-      } else if (this.regionAttributes.getDataPolicy().withPartitioning()) {
-        setDataPolicy(DataPolicy.PARTITION);
-      }
-    }
-  }
-  /**
-   * Sets whether or not acks are sent after an operation is processed.
-   *
-   * @since 4.1
-   * @deprecated This setting no longer has any effect. 
-   */
-  @Deprecated
-  public void setEarlyAck(boolean earlyAck) {
-    this.regionAttributes.earlyAck = earlyAck;
-    this.regionAttributes.setHasEarlyAck(true);
-  }
-  
-  /**
-   * Sets whether or not this region should be considered a publisher.
-   *
-   * @since 4.2.3
-   * @deprecated as of 6.5
-   */
-  @Deprecated
-  public void setPublisher(boolean v) {
-//    this.regionAttributes.publisher = v;
-//    this.regionAttributes.setHasPublisher(true);
-  }
-
-  /**
-   * Sets whether or not conflation is enabled for sending messages
-   * to async peers.
-   * Default value is false.
-   *
-   * @since 4.2.3
-   */
-  public void setEnableAsyncConflation(boolean enableAsyncConflation) {
-    this.regionAttributes.enableAsyncConflation = enableAsyncConflation;
-    this.regionAttributes.setHasEnableAsyncConflation(true);
-  }
-  
-
-  /**
-   * Sets whether or not conflation is enabled for sending messages
-   * from a cache server to its clients.
-   * Default is false.
-   *
-   * @since 5.0
-   */
-  public void setEnableSubscriptionConflation(boolean enableSubscriptionConflation) {
-    this.regionAttributes.enableSubscriptionConflation = enableSubscriptionConflation;
-    this.regionAttributes.setHasEnableSubscriptionConflation(true);
-  }
-
-  /**
-   * adds a gateway sender to the end of list of gateway senders on this factory
-   * @param gatewaySenderId
-   * @throws IllegalArgumentException if <code>gatewaySender</code> is null
-   * @since 7.0
-   */
-  public void addGatewaySenderId(String gatewaySenderId) {
-    if (gatewaySenderId == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_GATEWAY_SENDER_ID_IS_NULL.toLocalizedString());
-    }
-    synchronized (this.regionAttributes) {
-      this.regionAttributes.addGatewaySenderId(gatewaySenderId);
-    }
-  }
-  
-  /**
-   * Adds a AsyncEventQueue to the end of list of async event queues on this factory
-   * @param asyncEventQueueId
-   * @throws IllegalArgumentException if <code>gatewaySender</code> is null
-   * @since 7.0
-   */
-  public void addAsyncEventQueueId(String asyncEventQueueId) {
-    if (asyncEventQueueId == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_GATEWAY_SENDER_ID_IS_NULL.toLocalizedString());
-    }
-    synchronized (this.regionAttributes) {
-      this.regionAttributes.addAsyncEventQueueId(asyncEventQueueId);
-    }
-  }
-  
-  /**
-   * Sets whether or not conflation is enabled for sending messages
-   * from a cache server to its clients.
-   *
-   * @since 5.0
-   * @deprecated as of 5.7 use {@link #setEnableSubscriptionConflation} instead.
-   */
-  @Deprecated
-  public void setEnableBridgeConflation(boolean enableBridgeConflation) {
-    setEnableSubscriptionConflation(enableBridgeConflation);
-  }
-
-  /**
-   * Sets whether or not conflation is enabled for sending messages
-   * from a cache server to its clients.
-   *
-   * @deprecated as of GemFire 5.0, use {@link #setEnableSubscriptionConflation}
-  */
-  @Deprecated
-  public void setEnableConflation(boolean enableBridgeConflation) {
-    setEnableSubscriptionConflation(enableBridgeConflation);
-  }
-
-  /**
-   * Returns whether or not disk writes are asynchronous.
-   *
-   * @see Region#writeToDisk
-   *
-   * @since 3.2
-   * @deprecated as of 6.5 use {@link #setDiskStoreName} instead
-   */
-  @Deprecated
-  public void setDiskWriteAttributes(DiskWriteAttributes attrs) {
-    if (this.regionAttributes.getDiskStoreName() != null) {
-      throw new IllegalStateException(LocalizedStrings.DiskStore_Deprecated_API_0_Cannot_Mix_With_DiskStore_1
-          .toLocalizedString(new Object[] {"setDiskWriteAttributes", this.regionAttributes.getDiskStoreName()}));
-    }
-    this.regionAttributes.diskWriteAttributes = attrs;
-    this.regionAttributes.setHasDiskWriteAttributes(true);
-    if (attrs != null) {
-      // keep new apis in sync with old
-      this.regionAttributes.diskSynchronous = attrs.isSynchronous();
-    }
-  }
-
-  /**
-   * Sets the directories with
-   * the default size of 10240 MB to which the region's data is written
-   *
-   * @throws GemFireIOException if a directory does not exist
-   *
-   * @since 3.2
-   * @deprecated as of 6.5 use {@link DiskStoreFactory#setDiskDirs} instead
-   */
-  @Deprecated
-  public void setDiskDirs(File[] diskDirs) {
-    if (this.regionAttributes.getDiskStoreName() != null) {
-      throw new IllegalStateException(LocalizedStrings.DiskStore_Deprecated_API_0_Cannot_Mix_With_DiskStore_1
-          .toLocalizedString(new Object[] {"setDiskDirs", this.regionAttributes.getDiskStoreName()}));
-    }
-    DiskStoreFactoryImpl.checkIfDirectoriesExist(diskDirs);
-    this.regionAttributes.diskDirs = diskDirs;
-    this.regionAttributes.diskSizes = new int[diskDirs.length];
-    for (int i=0; i < diskDirs.length; i++) {
-      this.regionAttributes.diskSizes[i] = DiskStoreFactory.DEFAULT_DISK_DIR_SIZE;
-    }
-    if (!this.regionAttributes.hasDiskWriteAttributes()
-        && !this.regionAttributes.hasDiskSynchronous()) {
-      // switch to the old default
-      this.regionAttributes.diskSynchronous = false;
-      this.regionAttributes.diskWriteAttributes = DiskWriteAttributesImpl.getDefaultAsyncInstance();
-    }
-    this.regionAttributes.setHasDiskDirs(true);
-  }
-
-  /**
-   * Sets the DiskStore name attribute.
-   * This causes the region to use the {@link DiskStore}.
-   * @param name the name of the diskstore
-   * @since 6.5 
-   */
-  public void setDiskStoreName(String name) {
-    if (this.regionAttributes.hasDiskDirs() ||  this.regionAttributes.hasDiskWriteAttributes()) {
-      throw new IllegalStateException(LocalizedStrings.DiskStore_Deprecated_API_0_Cannot_Mix_With_DiskStore_1
-          .toLocalizedString(new Object[] {"setDiskDirs or setDiskWriteAttributes", name}));
-    }
-    this.regionAttributes.diskStoreName = name;
-    this.regionAttributes.setHasDiskStoreName(true);
-  }
-  
-  /**
-   * Sets whether or not the writing to the disk is synchronous.
-   * Default is true.
-   * 
-   * @param isSynchronous
-   *          boolean if true indicates synchronous writes
-   * @since 6.5 
-   */
-  @SuppressWarnings("deprecation")
-  public void setDiskSynchronous(boolean isSynchronous)
-  {
-    this.regionAttributes.diskSynchronous = isSynchronous;
-    this.regionAttributes.setHasDiskSynchronous(true);
-    if (this.regionAttributes.hasDiskWriteAttributes()) {
-      DiskWriteAttributesFactory dwaf = new DiskWriteAttributesFactory(this.regionAttributes.diskWriteAttributes);
-      dwaf.setSynchronous(isSynchronous);
-      this.regionAttributes.diskWriteAttributes = dwaf.create();
-    } else {
-      if (isSynchronous) {
-        this.regionAttributes.diskWriteAttributes = DiskWriteAttributesImpl.getDefaultSyncInstance();
-      } else {
-        this.regionAttributes.diskWriteAttributes = DiskWriteAttributesImpl.getDefaultAsyncInstance();
-      }
-    }
-  }
-
-  /**
-   * Sets the directories to which the region's data is written and also set their sizes in megabytes
-   *
-   * @throws IllegalArgumentException if a dir does not exist or the length of the size array
-   * does not match to the length of the dir array or the given length is not a valid positive number
-   *
-   * @since 5.1
-   * @deprecated as of 6.5 use {@link DiskStoreFactory#setDiskDirsAndSizes} instead
-   */
-  @Deprecated
-  public void setDiskDirsAndSizes(File[] diskDirs,int[] diskSizes) {
-    if (this.regionAttributes.getDiskStoreName() != null) {
-      throw new IllegalStateException(LocalizedStrings.DiskStore_Deprecated_API_0_Cannot_Mix_With_DiskStore_1
-          .toLocalizedString(new Object[] {"setDiskDirsAndSizes", this.regionAttributes.getDiskStoreName()}));
-    }
-    DiskStoreFactoryImpl.checkIfDirectoriesExist(diskDirs);
-    this.regionAttributes.diskDirs = diskDirs;
-    if(diskSizes.length != this.regionAttributes.diskDirs.length) {
-      throw new IllegalArgumentException(LocalizedStrings.AttributesFactory_NUMBER_OF_DISKSIZES_IS_0_WHICH_IS_NOT_EQUAL_TO_NUMBER_OF_DISK_DIRS_WHICH_IS_1.toLocalizedString(new Object[] {Integer.valueOf(diskSizes.length), Integer.valueOf(diskDirs.length)}));
-    }
-    DiskStoreFactoryImpl.verifyNonNegativeDirSize(diskSizes);
-    this.regionAttributes.diskSizes = diskSizes;
-    if (!this.regionAttributes.hasDiskWriteAttributes()
-        && !this.regionAttributes.hasDiskSynchronous()) {
-      // switch to the old default
-      this.regionAttributes.diskSynchronous = false;
-      this.regionAttributes.diskWriteAttributes = DiskWriteAttributesImpl.getDefaultAsyncInstance();
-    }
-    this.regionAttributes.setHasDiskDirs(true);
-  }
-
-  /**
-   * Sets the <code>PartitionAttributes</code> that describe how the
-   * region is partitioned among members of the distributed system.  This
-   * also establishes a data policy of {@link DataPolicy#PARTITION PARTITION},
-   * if the data policy has not already been set.
-   *
-   * @since 5.0
-   */
-  public void setPartitionAttributes(PartitionAttributes partition) {
-    if (partition != null) {
-      if (! this.regionAttributes.hasDataPolicy()) { 
-          this.regionAttributes.dataPolicy = PartitionedRegionHelper.DEFAULT_DATA_POLICY;        
-      }
-      else if ( !PartitionedRegionHelper.ALLOWED_DATA_POLICIES.contains(this.regionAttributes.dataPolicy) ) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_DATA_POLICY_0_IS_NOT_ALLOWED_FOR_A_PARTITIONED_REGION_DATAPOLICIES_OTHER_THAN_1_ARE_NOT_ALLOWED
-            .toLocalizedString(new Object[] {this.regionAttributes.dataPolicy, PartitionedRegionHelper.ALLOWED_DATA_POLICIES}));
-      }
-      if (this.regionAttributes.hasPartitionAttributes() 
-          && this.regionAttributes.partitionAttributes instanceof PartitionAttributesImpl
-          && partition instanceof PartitionAttributesImpl) {
-        // Make a copy and call merge on it to prevent bug 51616
-        PartitionAttributesImpl copy = ((PartitionAttributesImpl) this.regionAttributes.partitionAttributes).copy();
-        copy.merge((PartitionAttributesImpl) partition);
-        this.regionAttributes.partitionAttributes = copy;
-      } else {
-        this.regionAttributes.partitionAttributes = partition;
-        this.regionAttributes.setHasPartitionAttributes(true);
-      }
-      
-      ((PartitionAttributesImpl) this.regionAttributes.partitionAttributes).setOffHeap(this.regionAttributes.offHeap);
-    }
-    else {
-      this.regionAttributes.partitionAttributes = null;
-      this.regionAttributes.setHasPartitionAttributes(false);
-    }
-  }
-
-  protected void setBucketRegion(boolean b) {
-    this.regionAttributes.isBucketRegion = b;
-  }   
-   
-  /**
-   * Sets the <code>MembershipAttributes</code> that describe the membership
-   * roles required for reliable access to the region.
-   *
-   * @since 5.0
-   */
-  public void setMembershipAttributes(MembershipAttributes membership) {
-    this.regionAttributes.membershipAttributes = membership;
-    this.regionAttributes.setHasMembershipAttributes(true);
-  }
-
-  /**
-   * Sets the <code>SubscriptionAttributes</code> that describe how the region
-   * will subscribe to other distributed cache instances of the region.
-   *
-   * @since 5.0
-   */
-  public void setSubscriptionAttributes(SubscriptionAttributes subscription) {
-    this.regionAttributes.subscriptionAttributes = subscription;
-    this.regionAttributes.setHasSubscriptionAttributes(true);
-  }
-
-  /**
-   * Set how indexes on the region should be maintained. It will be either synchronous
-   * or asynchronous.
-   * Default is true.
-   */
-  public void setIndexMaintenanceSynchronous(boolean synchronous) {
-    this.regionAttributes.indexMaintenanceSynchronous = synchronous;
-    this.regionAttributes.setHasIndexMaintenanceSynchronous(true);
-  }
-
-  // STATISTICS
-  /** Sets whether statistics are enabled for this region and its entries.
-   * Default is false.
-   * @param statisticsEnabled whether statistics are enabled
-   */
-  public void setStatisticsEnabled(boolean statisticsEnabled) {
-    this.regionAttributes.statisticsEnabled = statisticsEnabled;
-    this.regionAttributes.setHasStatisticsEnabled(true);
-  }
-
-  /**
-   * Sets the flag telling a region to ignore JTA transactions.
-   * Default is false.
-   * @since 5.0
-   */
-  public void setIgnoreJTA(boolean flag) {
-    this.regionAttributes.ignoreJTA = flag;
-    this.regionAttributes.setHasIgnoreJTA(true);
-  }
-
-  /** Sets whether this region should become lock grantor.
-   * Default value is false.
-   * @param isLockGrantor whether this region should become lock grantor
-   */
-  public void setLockGrantor(boolean isLockGrantor) {
-    this.regionAttributes.isLockGrantor = isLockGrantor;
-    this.regionAttributes.setHasIsLockGrantor(true);
-  }
-
-  /** Sets whether distributed operations on this region should attempt
-      to use multicast.  Multicast must also be enabled in the
-      cache's DistributedSystem (see
-      <a href=../distributed/DistributedSystem.html#mcast-port">"mcast-port"</a>).
-      Default is false.
-      @since 5.0
-      @see RegionAttributes#getMulticastEnabled
-   */
-  public void setMulticastEnabled(boolean value) {
-    this.regionAttributes.multicastEnabled = value;
-    this.regionAttributes.setHasMulticastEnabled(true);
-  }  
-  /**
-   * Sets cloning on region.
-   * Default is false.
-   * 
-   * @param cloningEnable
-   * @since 6.1
-   * @see RegionAttributes#getCloningEnabled()
-   */
-  public void setCloningEnabled(boolean cloningEnable) {
-    this.regionAttributes.isCloningEnabled = cloningEnable;
-    this.regionAttributes.setHasCloningEnabled(true);
-  }
-
-  
-  /**
-   * Sets the pool name attribute.
-   * This causes regions that use these attributes
-   * to be a client region which communicates with the
-   * servers that the connection pool communicates with.
-   * <p>If this attribute is set to <code>null</code> or <code>""</code>
-   * then the connection pool is disabled causing regions that use these attributes
-   * to be communicate with peers instead of servers.
-   * <p>The named connection pool must exist on the cache at the time these
-   * attributes are used to create a region. See {@link PoolManager#createFactory}
-   * for how to create a connection pool.
-   * @param name the name of the connection pool to use; if <code>null</code>
-   * or <code>""</code> then the connection pool is disabled for regions
-   * using these attributes.
-   * @since 5.7
-   */
-  public void setPoolName(String name) {
-    String nm = name;
-    if ("".equals(nm)) {
-      nm = null;
-    }
-    this.regionAttributes.poolName = nm;
-    this.regionAttributes.setHasPoolName(true);
-    
-  }
-  
-  /**
-   * Sets this region's compressor for compressing entry values.
-   * @since 8.0
-   * @param compressor a compressor.
-   */
-  public void setCompressor(Compressor compressor) {
-    this.regionAttributes.compressor = compressor;
-    this.regionAttributes.setHasCompressor(true);
-    
-    // Cloning must be enabled when a compressor is set
-    if (compressor != null) {
-      setCloningEnabled(true);
-    }
-  }
-
-  /**
-   * Enables this region's usage of off-heap memory if true.
-   * @since 9.0
-   * @param offHeap boolean flag to enable off-heap memory
-   */
-  public void setOffHeap(boolean offHeap) {
-    this.regionAttributes.offHeap = offHeap;
-    this.regionAttributes.setHasOffHeap(true);
-    
-    if (this.regionAttributes.partitionAttributes != null) {
-      ((PartitionAttributesImpl) this.regionAttributes.partitionAttributes).setOffHeap(offHeap);
-    }
-  }
-  
-  // FACTORY METHOD
-
-  /** Creates a <code>RegionAttributes</code> with the current settings.
-   * @return the newly created <code>RegionAttributes</code>
-   * @throws IllegalStateException if the current settings violate the
-   * <a href="#compatibility">compatibility rules</a>
-   * @deprecated as of GemFire 5.0, use {@link #create} instead
-   */
-  @Deprecated
-  public RegionAttributes<K,V> createRegionAttributes() {
-    return create();
-  }
-  /** Creates a <code>RegionAttributes</code> with the current settings.
-   * @return the newly created <code>RegionAttributes</code>
-   * @throws IllegalStateException if the current settings violate the
-   * <a href="#compatibility">compatibility rules</a>
-   * @since 5.0
-   */
-  @SuppressWarnings("unchecked")
-  public RegionAttributes<K,V> create() {
-    if (this.regionAttributes.hasDataPolicy() &&
-        this.regionAttributes.dataPolicy.withPartitioning() &&
-        this.regionAttributes.partitionAttributes == null) {
-      this.regionAttributes.partitionAttributes = (new PartitionAttributesFactory()).create();
-      // fix bug #52033 by invoking setOffHeap now (localMaxMemory may now be the temporary placeholder for off-heap until DistributedSystem is created
-      ((PartitionAttributesImpl)this.regionAttributes.partitionAttributes).setOffHeap(this.regionAttributes.getOffHeap());
-    }
-    // As of 6.5 we automatically enable stats if expiration is used.
-    {
-      RegionAttributesImpl attrs = this.regionAttributes;
-      if (!attrs.hasStatisticsEnabled() && !attrs.getStatisticsEnabled() &&
-          (attrs.getRegionTimeToLive().getTimeout() != 0 ||
-           attrs.getRegionIdleTimeout().getTimeout() != 0 ||
-           attrs.getEntryTimeToLive().getTimeout() != 0 ||
-           attrs.getEntryIdleTimeout().getTimeout() != 0 ||
-           attrs.getCustomEntryIdleTimeout() != null ||
-           attrs.getCustomEntryTimeToLive() != null)
-          ) {
-        // @todo we could do some more implementation work so that we would
-        // not need to enable stats unless entryIdleTimeout is enabled.
-        // We need the stats in that case because we need a new type of RegionEntry
-        // so we know that last time it was accessed. But for all the others we
-        // the stat less region keeps track of everything we need.
-        // The only problem is that some places in the code are conditionalized
-        // on statisticsEnabled.
-        setStatisticsEnabled(true);
-      }
-      // SQLFabric does not handle PRELOADED, so do not change the policy
-      if (attrs.getDataPolicy().withReplication()
-          && !attrs.getDataPolicy().withPersistence()
-          && attrs.getScope().isDistributed()
-          && !GemFireCacheImpl.sqlfSystem()) {
-        RegionAttributesImpl<?,?> rattr = attrs;
-        if (!rattr.isForBucketRegion()) {
-          if (attrs.getEvictionAttributes().getAction().isLocalDestroy()
-              || attrs.getEntryIdleTimeout().getAction().isLocal()
-              || attrs.getEntryTimeToLive().getAction().isLocal()
-              || attrs.getRegionIdleTimeout().getAction().isLocalInvalidate()
-              || attrs.getRegionTimeToLive().getAction().isLocalInvalidate()) {
-            // new to 6.5; switch to PRELOADED and interest ALL
-            setDataPolicy(DataPolicy.PRELOADED);
-            setSubscriptionAttributes(new SubscriptionAttributes(InterestPolicy.ALL));
-          }
-        }
-      }
-    }
-    validateAttributes(this.regionAttributes);
-    return (RegionAttributes<K,V>)this.regionAttributes.clone();
-  }
-
-  /**
-   * Validates that the attributes are consistent with each other.
-   * The following rules are checked and enforced:
-   <ul>
-   <li>If the data policy {@link DataPolicy#withReplication uses replication}
-       and the scope is {@link Scope#isDistributed distributed} then the
-       following are incompatible:
-      <ul>
-      <li>ExpirationAction.LOCAL_INVALIDATE on the region</li
-      <li>ExpirationAction.LOCAL_DESTROY on the entries</li>
-      <li>ExpirationAction.LOCAL_INVALIDATE on the entries</li>
-      <li>An LRU with local destroy eviction action</li>
-      </ul>
-   </li>
-   <li>Region or entry expiration
-      is incompatible with disabled statistics on the region</li>
-   <li>Entry expiration
-      is incompatible with the {@link DataPolicy#EMPTY} data policy</li>
-   <li>{@link EvictionAttributes Eviction}
-      is incompatible with the {@link DataPolicy#EMPTY} data policy</li>
-   </ul>
-   * @param attrs the attributes to validate
-   * @throws IllegalStateException if the attributes are not consistent with each other.
-   * @since 3.5
-   */
-  public static void validateAttributes(RegionAttributes<?, ?> attrs) {
-    // enforce the creation constraints
-
-    if (attrs.getDataPolicy().withReplication()
-        && attrs.getScope().isDistributed()) {
-      boolean isForBucketRegion = false; 
-      if (attrs instanceof RegionAttributesImpl) {
-        RegionAttributesImpl<?,?> regionAttributes = (RegionAttributesImpl<?,?>)attrs;
-        if (regionAttributes.isForBucketRegion()) {
-          isForBucketRegion = true;
-        }
-      }
-      if (!isForBucketRegion) {
-        ExpirationAction idleAction = attrs.getEntryIdleTimeout().getAction();
-        ExpirationAction ttlAction = attrs.getEntryTimeToLive().getAction();
-
-        if (idleAction == ExpirationAction.LOCAL_DESTROY
-            || ttlAction == ExpirationAction.LOCAL_DESTROY) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_EXPIRATIONACTIONLOCAL_DESTROY_ON_THE_ENTRIES_IS_INCOMPATIBLE_WITH_DISTRIBUTED_REPLICATION.toLocalizedString());
-        }
-
-        if (attrs.getEvictionAttributes().getAction().isLocalDestroy()) {
-          throw new IllegalStateException(LocalizedStrings.AttributesFactory_AN_EVICTION_CONTROLLER_WITH_LOCAL_DESTROY_EVICTION_ACTION_IS_INCOMPATIBLE_WITH_DISTRIBUTED_REPLICATION.toLocalizedString());
-        }
-
-        if (attrs.getRegionIdleTimeout().getAction() == ExpirationAction.LOCAL_INVALIDATE
-            || attrs.getRegionTimeToLive().getAction() == ExpirationAction.LOCAL_INVALIDATE) {
-          throw new IllegalStateException(LocalizedStrings.AttributesFactory_EXPIRATIONACTIONLOCAL_INVALIDATE_ON_THE_REGION_IS_INCOMPATIBLE_WITH_DISTRIBUTED_REPLICATION.toLocalizedString());
-        }
-
-        if (idleAction == ExpirationAction.LOCAL_INVALIDATE
-            || ttlAction == ExpirationAction.LOCAL_INVALIDATE) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_EXPIRATIONACTIONLOCAL_INVALIDATE_ON_THE_ENTRIES_IS_INCOMPATIBLE_WITH_DISTRIBUTED_REPLICATION.toLocalizedString());
-        }
-         //TODO: Is it possible to add this check while region is getting created
-//        for(String senderId : attrs.getGatewaySenderIds()){
-//          if(sender.isParallel()){
-//            throw new IllegalStateException(
-//                LocalizedStrings.AttributesFactory_PARALLELGATEWAYSENDER_0_IS_INCOMPATIBLE_WITH_DISTRIBUTED_REPLICATION
-//                    .toLocalizedString(sender));
-//          }
-//        }
-      }
-    }
-    
-    if (attrs.getDiskStoreName() != null) {
-      EvictionAttributes ea = attrs.getEvictionAttributes();
-      if (!attrs.getDataPolicy().withPersistence() && (ea != null && ea.getAction() != EvictionAction.OVERFLOW_TO_DISK)) {
-        throw new IllegalStateException(LocalizedStrings.DiskStore_IS_USED_IN_NONPERSISTENT_REGION.toLocalizedString());        
-      }
-    }
-    
-    if (attrs.getHDFSStoreName() != null) {
-      if (!attrs.getDataPolicy().withHDFS() && (attrs.getPartitionAttributes() == null || attrs.getPartitionAttributes().getLocalMaxMemory() != 0)) {
-        throw new IllegalStateException(LocalizedStrings.HDFSSTORE_IS_USED_IN_NONHDFS_REGION.toLocalizedString());        
-      }
-    }
-
-    if (!attrs.getStatisticsEnabled() &&
-          (attrs.getRegionTimeToLive().getTimeout() != 0 ||
-           attrs.getRegionIdleTimeout().getTimeout() != 0 ||
-           attrs.getEntryTimeToLive().getTimeout() != 0 ||
-           attrs.getEntryIdleTimeout().getTimeout() != 0 ||
-           attrs.getCustomEntryIdleTimeout() != null ||
-           attrs.getCustomEntryTimeToLive() != null)
-           ) {
-      throw new IllegalStateException(LocalizedStrings.AttributesFactory_STATISTICS_MUST_BE_ENABLED_FOR_EXPIRATION.toLocalizedString());
-    }
-
-    if (attrs.getDataPolicy() == DataPolicy.EMPTY) {
-      if (attrs.getEntryTimeToLive().getTimeout() != 0 ||
-          attrs.getEntryIdleTimeout().getTimeout() != 0 ||
-          attrs.getCustomEntryTimeToLive() != null ||
-          attrs.getCustomEntryIdleTimeout() != null
-          ) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_IF_THE_DATA_POLICY_IS_0_THEN_ENTRY_EXPIRATION_IS_NOT_ALLOWED
-            .toLocalizedString(attrs.getDataPolicy()));
-      }
-      if (!attrs.getEvictionAttributes().getAlgorithm().isNone()) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_IF_THE_DATA_POLICY_IS_0_THEN_EVICTION_IS_NOT_ALLOWED
-            .toLocalizedString(attrs.getDataPolicy()));
-      }
-    }
-    if (attrs.getMembershipAttributes().hasRequiredRoles()) {
-      if (attrs.getScope().isLocal()) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_IF_THE_MEMBERSHIP_ATTRIBUTES_HAS_REQUIRED_ROLES_THEN_SCOPE_MUST_NOT_BE_LOCAL.toLocalizedString());
-      }
-    }
-    
-    final PartitionAttributes pa = attrs.getPartitionAttributes();
-    // Validations for PartitionRegion Attributes
-    if (pa != null) {
-      ((PartitionAttributesImpl)pa).validateWhenAllAttributesAreSet(attrs instanceof RegionAttributesCreation);
-      ExpirationAttributes regionIdleTimeout = attrs.getRegionIdleTimeout();
-      ExpirationAttributes regionTimeToLive = attrs.getRegionTimeToLive();
-      AbstractRegion.validatePRRegionExpirationAttributes(regionIdleTimeout);
-      AbstractRegion.validatePRRegionExpirationAttributes(regionTimeToLive);
-      
-      ExpirationAttributes entryIdleTimeout = attrs.getEntryIdleTimeout();
-      ExpirationAttributes entryTimeToLive = attrs.getEntryTimeToLive();
-      if ((entryIdleTimeout.getAction().isLocalDestroy() && entryIdleTimeout.getTimeout() > 0)
-          || (entryTimeToLive.getAction().isLocalDestroy() && entryTimeToLive.getTimeout() > 0)) {
-        throw new IllegalStateException(
-            LocalizedStrings.AttributesFactory_LOCAL_DESTROY_IS_NOT_SUPPORTED_FOR_PR.toLocalizedString());
-      }
-      if ((entryIdleTimeout.getAction().isLocalInvalidate() && entryIdleTimeout.getTimeout() > 0)
-          || (entryTimeToLive.getAction().isLocalInvalidate() && entryTimeToLive.getTimeout() > 0)) {
-        throw new IllegalStateException(
-            LocalizedStrings.AttributesFactory_LOCAL_INVALIDATE_IS_NOT_SUPPORTED_FOR_PR.toLocalizedString());
-      }
-
-      if (attrs instanceof UserSpecifiedRegionAttributes<?,?>) {
-        UserSpecifiedRegionAttributes<?,?> rac = (UserSpecifiedRegionAttributes<?,?>) attrs;
-        if (rac.hasScope()) {
-          throw new IllegalStateException(LocalizedStrings.AttributesFactory_SETTING_SCOPE_ON_A_PARTITIONED_REGIONS_IS_NOT_ALLOWED.toLocalizedString());
-        }
-      }
-      
-      if (attrs.getPoolName() != null) {
-        throw new IllegalStateException("Setting pool name on a Partitioned Region is not allowed");
-      }
-      
-//    if (attrs.getScope() == Scope.GLOBAL) {
-//    throw new IllegalStateException(
-//    "Global Scope is incompatible with Partitioned Regions");
-//  }
-//  if (attrs.getScope() == Scope.LOCAL) {
-//    throw new IllegalStateException(
-//        "Local Scope is incompatible with Partitioned Regions");
-//  }
-      if (pa.getTotalMaxMemory() <= 0) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_TOTAL_SIZE_OF_PARTITION_REGION_MUST_BE_0.toLocalizedString());
-      }
-// listeners are supported here as of v5.1
-//      if (attrs.getCacheListeners().length > 0) {
-//        throw new IllegalStateException(
-//            "Can not add cache listeners to RegionAttributes when PartitionAttributes are set.");
-//      }
-// loaders are supported here as of v5.1
-//      if (attrs.getCacheLoader() != null) {
-//        throw new IllegalStateException(
-//            "Can not set CacheLoader in RegionAttributes when PartitionAttributes are set.");
-//      }
-      if ( ! PartitionedRegionHelper.ALLOWED_DATA_POLICIES.contains(attrs.getDataPolicy())) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_DATA_POLICIES_OTHER_THAN_0_ARE_NOT_ALLOWED_IN_PARTITIONED_REGIONS
-            .toLocalizedString(PartitionedRegionHelper.ALLOWED_DATA_POLICIES));
-      }
-//      if ( attrs.getDataPolicy().isEmpty() && pa.getLocalMaxMemory() != 0) {
-//        throw new IllegalStateException(
-//            "A non-zero PartitionAttributes localMaxMemory setting is not compatible" +
-//            " with an empty DataPolicy.  Please use DataPolicy.NORMAL instead.");
-//      }
-      
-      // fix bug #52033 by invoking getLocalMaxMemoryForValidation here
-      if (((PartitionAttributesImpl)pa).getLocalMaxMemoryForValidation() < 0) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_PARTITIONATTRIBUTES_LOCALMAXMEMORY_MUST_NOT_BE_NEGATIVE.toLocalizedString());
-      }
-      
-      if (attrs.isLockGrantor() == true) {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_SETLOCKGRANTERTRUE_IS_NOT_ALLOWED_IN_PARTITIONED_REGIONS.toLocalizedString());
-      }
-      
-      // fix bug #52033 by invoking getLocalMaxMemoryForValidation here
-      if (((PartitionAttributesImpl)pa).getLocalMaxMemoryForValidation() == 0 && attrs.getDataPolicy() == DataPolicy.PERSISTENT_PARTITION) {
-        throw new IllegalStateException("Persistence is not allowed when local-max-memory is zero.");
-      }
-    }
-    
-    if (null != attrs.getCompressor() && !attrs.getCloningEnabled()) {
-      throw new IllegalStateException("Cloning cannot be disabled when a compressor is set.");
-    }
-  }
-
-
-  private static class RegionAttributesImpl<K,V>
-  extends UserSpecifiedRegionAttributes<K,V> implements Cloneable, Serializable {
-    public Set<String> gatewaySenderIds;
-    public Set<String>  asyncEventQueueIds;
-    private static final long serialVersionUID = -3663000883567530374L;
-
-    ArrayList<CacheListener<K,V>> cacheListeners;
-    CacheLoader<K,V> cacheLoader;
-    CacheWriter<K,V> cacheWriter;
-    int regionTimeToLive = 0;
-    ExpirationAction regionTimeToLiveExpirationAction = ExpirationAction.INVALIDATE;
-    int regionIdleTimeout = 0;
-    ExpirationAction regionIdleTimeoutExpirationAction = ExpirationAction.INVALIDATE;
-
-    int entryTimeToLive = 0;
-    ExpirationAction entryTimeToLiveExpirationAction = ExpirationAction.INVALIDATE;
-    CustomExpiry<K,V> customEntryTimeToLive = null;
-    int entryIdleTimeout = 0;
-    ExpirationAction entryIdleTimeoutExpirationAction = ExpirationAction.INVALIDATE;
-    CustomExpiry<K,V> customEntryIdleTimeout = null;
-
-    Scope scope = AbstractRegion.DEFAULT_SCOPE;
-    DataPolicy dataPolicy = DataPolicy.DEFAULT;
-    boolean statisticsEnabled = false;
-    boolean ignoreJTA = false;
-    boolean isLockGrantor = false;
-    Class<K> keyConstraint = null;
-    Class<V> valueConstraint = null;
-    int initialCapacity = 16;
-    float loadFactor = 0.75f;
-    int concurrencyLevel = 16;
-    boolean concurrencyChecksEnabled = true;
-    boolean earlyAck = false;
-    boolean publisher = false;
-    boolean enableAsyncConflation = false;
-    boolean enableSubscriptionConflation = false;
-    @SuppressWarnings("deprecation")
-    DiskWriteAttributes diskWriteAttributes = DiskWriteAttributesImpl.getDefaultSyncInstance();
-    File[] diskDirs = DiskStoreFactory.DEFAULT_DISK_DIRS;
-    int[] diskSizes = new int[] {DiskStoreFactory.DEFAULT_DISK_DIR_SIZE}; // 10* 1024 MB }
-    boolean indexMaintenanceSynchronous = true;
-    PartitionAttributes partitionAttributes = null; //new PartitionAttributes();
-    MembershipAttributes membershipAttributes = new MembershipAttributes();
-    SubscriptionAttributes subscriptionAttributes = new SubscriptionAttributes();
-    boolean multicastEnabled = false;
-    EvictionAttributesImpl evictionAttributes = new EvictionAttributesImpl();  // TODO need to determine the constructor
-    transient CustomEvictionAttributes customEvictionAttributes;
-    String poolName = null;
-    String diskStoreName = null;
-    String hdfsStoreName = null;
-    private boolean hdfsWriteOnly = false;
-    boolean diskSynchronous = DEFAULT_DISK_SYNCHRONOUS;
-    protected boolean isBucketRegion = false;
-    private boolean isCloningEnabled = false;
-    Compressor compressor = null;
-    
-    boolean offHeap = false;
-
-    /** Constructs an instance of <code>RegionAttributes</code> with default settings.
-     * @see AttributesFactory
-     */
-    public RegionAttributesImpl() {
-    }
-    @Override
-    public String toString() {
-      StringBuffer buf = new StringBuffer(1000);
-      buf
-        .append("RegionAttributes@").append(System.identityHashCode(this)).append(": ")
-        .append("scope=").append(scope)
-        .append("; earlyAck=").append(earlyAck)
-        .append("; publisher=").append(publisher)
-        .append("; partitionAttrs=").append(partitionAttributes)
-        .append("; membershipAttrs=").append(membershipAttributes)
-        .append("; subscriptionAttrs=").append(subscriptionAttributes)
-        .append("; regionTTL=").append(regionTimeToLive)
-        .append("; action=").append(regionTimeToLiveExpirationAction)
-        .append("; regionIdleTimeout=").append(regionIdleTimeout)
-        .append("; action=").append(regionIdleTimeoutExpirationAction)
-        .append("; TTL=").append(entryTimeToLive)
-        .append("; action=").append(entryTimeToLiveExpirationAction)
-        .append("; custom=").append(customEntryTimeToLive)
-        .append("; idleTimeout=").append(entryIdleTimeout)
-        .append("; action=").append(entryIdleTimeoutExpirationAction)
-        .append("; custom=").append(customEntryIdleTimeout)
-        .append("; dataPolicy=").append(dataPolicy)
-        .append("; statisticsEnabled=").append(statisticsEnabled)
-        .append("; ignoreJTA=").append(ignoreJTA)
-        .append("; isLockGrantor=").append(isLockGrantor)
-        .append("; keyConstraint=").append(keyConstraint)
-        .append("; valueConstraint=").append(valueConstraint)
-        .append("; initialCapacity=").append(initialCapacity)
-        .append("; loadFactor=").append(loadFactor)
-        .append("; concurrencyLevel=").append(concurrencyLevel)
-        .append("; concurrencyChecksEnabled=").append(concurrencyChecksEnabled)
-        .append("; enableAsyncConflation=").append(enableAsyncConflation)
-        .append("; enableSubscriptionConflation=").append(enableSubscriptionConflation)
-        .append("; isBucketRegion=").append(isBucketRegion) 
-        .append("; poolName=").append(poolName)
-        .append("; diskSynchronous=").append(diskSynchronous)
-        .append("; multicastEnabled=").append(multicastEnabled)
-        .append("; isCloningEnabled=").append(isCloningEnabled)
-        ;
-      if (hasDiskWriteAttributes() || hasDiskDirs()) {
-        buf.append("; diskAttrs=").append(diskWriteAttributes)
-          .append("; diskDirs=").append(Arrays.toString(diskDirs))
-          .append("; diskDirSizes=").append(Arrays.toString(diskSizes));
-      } else {
-        buf.append("; diskStoreName=").append(diskStoreName);
-      }
-      buf.append("; hdfsStoreName=").append(hdfsStoreName);
-      buf.append("; hdfsWriteOnly=").append(hdfsWriteOnly);
-      buf.append("; GatewaySenderIds=").append(gatewaySenderIds);
-      buf.append("; AsyncEventQueueIds=").append(asyncEventQueueIds);
-      buf.append("; compressor=").append(compressor == null ? null : compressor.getClass().getName());
-      buf.append("; offHeap=").append(offHeap);
-      return buf.toString();
-    }
-    public CacheLoader<K,V> getCacheLoader() {
-      return this.cacheLoader;
-    }
-    public CacheWriter<K,V> getCacheWriter() {
-      return this.cacheWriter;
-    }
-    public Class<K> getKeyConstraint() {
-      return this.keyConstraint;
-    }
-    public Class<V> getValueConstraint() {
-      return this.valueConstraint;
-    }
-    private boolean isForBucketRegion() {
-      return this.isBucketRegion;
-    } 
-    public ExpirationAttributes getRegionTimeToLive() {
-      return new ExpirationAttributes(
-      this.regionTimeToLive, this.regionTimeToLiveExpirationAction);
-    }
-    public ExpirationAttributes getRegionIdleTimeout() {
-      return new ExpirationAttributes(
-      this.regionIdleTimeout, this.regionIdleTimeoutExpirationAction);
-    }
-
-    public ExpirationAttributes getEntryTimeToLive() {
-      return new ExpirationAttributes(
-      this.entryTimeToLive, this.entryTimeToLiveExpirationAction);
-    }
-    public CustomExpiry<K,V> getCustomEntryTimeToLive() {
-      return this.customEntryTimeToLive;
-    }
-    public ExpirationAttributes getEntryIdleTimeout() {
-      return new ExpirationAttributes(
-      this.entryIdleTimeout, this.entryIdleTimeoutExpirationAction);
-    }
-    public CustomExpiry<K,V> getCustomEntryIdleTimeout() {
-      return this.customEntryIdleTimeout;
-    }
-
-    @SuppressWarnings("deprecation")
-    public MirrorType getMirrorType() {
-      if (this.dataPolicy.isNormal() || this.dataPolicy.isPreloaded()
-          || this.dataPolicy.isEmpty() || this.dataPolicy.withPartitioning()) {
-        return MirrorType.NONE;
-      } else if (this.dataPolicy.withReplication()) {
-        return MirrorType.KEYS_VALUES;
-      } else {
-        throw new IllegalStateException(LocalizedStrings.AttributesFactory_NO_MIRROR_TYPE_CORRESPONDS_TO_DATA_POLICY_0
-            .toLocalizedString(this.dataPolicy));
-      }
-    }
-    public DataPolicy getDataPolicy() {
-      return this.dataPolicy;
-    }
-    public void setDataPolicy(DataPolicy dp) {
-      this.dataPolicy = dp;
-      setHasDataPolicy(true);
-    }
-    
-    public Scope getScope() {
-      return this.scope;
-    }
-    public void setScope(Scope s) {
-      this.scope = s;
-      setHasScope(true);
-    }
-    private static final CacheListener<?,?>[] EMPTY_LISTENERS = new CacheListener[0];
-    @SuppressWarnings("unchecked")
-    public CacheListener<K,V>[] getCacheListeners() {
-      ArrayList<CacheListener<K,V>> listeners = this.cacheListeners;
-      if (listeners == null) {
-        return (CacheListener<K,V>[])EMPTY_LISTENERS;
-      } else {
-        synchronized (listeners) {
-          if (listeners.size() == 0) {
-            return (CacheListener<K,V>[])EMPTY_LISTENERS;
-          } else {
-            CacheListener<K,V>[] result = new CacheListener[listeners.size()];
-            listeners.toArray(result);
-            return result;
-          }
-        }
-      }
-    }
-    public CacheListener<K,V> getCacheListener() {
-      ArrayList<CacheListener<K,V>> listeners = this.cacheListeners;
-      if (listeners == null) {
-        return null;
-      }
-      synchronized (listeners) {
-        if (listeners.size() == 0) {
-          return null;
-        }
-        if (listeners.size() == 1) {
-          return this.cacheListeners.get(0);
-        }
-      }
-      throw new IllegalStateException(LocalizedStrings.AttributesFactory_MORE_THAN_ONE_CACHE_LISTENER_EXISTS.toLocalizedString());
-    }
-    protected void addCacheListener(CacheListener<K,V> aListener) {
-      ArrayList<CacheListener<K,V>> listeners = this.cacheListeners;
-      if (listeners == null) {
-        ArrayList<CacheListener<K,V>> al = new ArrayList<CacheListener<K,V>>(1);
-        al.add(aListener);
-        this.cacheListeners = al;
-      } else {
-        synchronized (listeners) {
-          listeners.add(aListener);
-        }
-      }
-      setHasCacheListeners(true);
-    }
-    
-    public void addGatewaySenderId(String gatewaySenderId) {
-      if(this.gatewaySenderIds == null){
-        this.gatewaySenderIds = new CopyOnWriteArraySet<String>();
-        this.gatewaySenderIds.add(gatewaySenderId);
-      }else{
-        synchronized (this.gatewaySenderIds) { // TODO: revisit this
-          // synchronization : added as per
-          // above code
-          if (this.gatewaySenderIds.contains(gatewaySenderId)) {
-            throw new IllegalArgumentException(
-                LocalizedStrings.AttributesFactory_GATEWAY_SENDER_ID_0_IS_ALREADY_ADDED
-                .toLocalizedString(gatewaySenderId));
-          }
-          this.gatewaySenderIds.add(gatewaySenderId);
-        }
-      }
-      setHasGatewaySenderIds(true);
-    }
-    
-    public void addAsyncEventQueueId(String asyncEventQueueId) {
-      if(this.asyncEventQueueIds == null){
-        this.asyncEventQueueIds = new CopyOnWriteArraySet<String>();
-        this.asyncEventQueueIds.add(asyncEventQueueId);
-      } else{
-        synchronized (this.asyncEventQueueIds) { // TODO: revisit this
-          // synchronization : added as per
-          // above code
-          if (this.asyncEventQueueIds.contains(asyncEventQueueId)) {
-            throw new IllegalArgumentException(
-                LocalizedStrings.AttributesFactory_ASYNC_EVENT_QUEUE_ID_0_IS_ALREADY_ADDED
-                .toLocalizedString(asyncEventQueueId));
-          }
-          this.asyncEventQueueIds.add(asyncEventQueueId);
-        }
-      }
-      setHasAsyncEventListeners(true);
-    }
-    
-    public int getInitialCapacity() {
-      return this.initialCapacity;
-    }
-    public float getLoadFactor() {
-      return this.loadFactor;
-    }
-    public boolean getStatisticsEnabled() {
-      return this.statisticsEnabled;
-    }
-    public boolean getIgnoreJTA() {
-      return this.ignoreJTA;
-    }
-    public boolean isLockGrantor() {
-      return this.isLockGrantor;
-    }
-    public int getConcurrencyLevel() {
-      return this.concurrencyLevel;
-    }
-    public boolean getConcurrencyChecksEnabled() {
-      return this.concurrencyChecksEnabled;
-    }
-    @SuppressWarnings({ "rawtypes", "unchecked" })
-    @Override
-    public Object clone() {
-      try {
-        RegionAttributesImpl<K,V> copy = (RegionAttributesImpl<K,V>) super.clone();
-        if (copy.getIndexes() != null) {
-          copy.setIndexes(new ArrayList(copy.getIndexes()));
-        }
-        if (copy.partitionAttributes != null) {
-          copy.partitionAttributes = ((PartitionAttributesImpl)copy.partitionAttributes).copy();
-        }
-        if (copy.cacheListeners != null) {
-          copy.cacheListeners = new ArrayList<CacheListener<K,V>>(copy.cacheListeners);
-        }
-        if (copy.gatewaySenderIds != null) {
-          copy.gatewaySenderIds =  new CopyOnWriteArraySet<String>(copy.gatewaySenderIds);
-        }
-        if (copy.asyncEventQueueIds != null) {
-          copy.asyncEventQueueIds = new CopyOnWriteArraySet<String>(copy.asyncEventQueueIds);
-        }
-        return copy;
-      }
-      catch (CloneNotSupportedException e) {
-        throw new InternalError(LocalizedStrings.AttributesFactory_CLONENOTSUPPORTEDEXCEPTION_THROWN_IN_CLASS_THAT_IMPLEMENTS_CLONEABLE.toLocalizedString());
-      }
-    }
-
-    public boolean getPersistBackup() {
-      return getDataPolicy().withPersistence();
-    }
-
-    public boolean getEarlyAck() {
-      return this.earlyAck;
-    }
-
-    /*
-     * @deprecated as of 6.5
-     */
-    @Deprecated
-    public boolean getPublisher() {
-      return this.publisher;
-    }
-
-    public boolean getEnableConflation() { // deprecated in 5.0
-      return getEnableSubscriptionConflation();
-    }
-
-    public boolean getEnableAsyncConflation() {
-      return this.enableAsyncConflation;
-    }
-
-    public boolean getEnableBridgeConflation() { // deprecated in 5.7
-      return getEnableSubscriptionConflation();
-    }
-
-    public boolean getEnableSubscriptionConflation() {
-      return this.enableSubscriptionConflation;
-    }
-    
-    /**
-     * @deprecated as of 6.5
-     */
-    @Deprecated
-    public DiskWriteAttributes getDiskWriteAttributes() {
-      if (this.diskStoreName != null) {
-        throw new IllegalStateException(LocalizedStrings.DiskStore_Deprecated_API_0_Cannot_Mix_With_DiskStore_1


<TRUNCATED>


[44/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
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/SessionReplicationIntegrationJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationIntegrationJUnitTest.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationIntegrationJUnitTest.java
deleted file mode 100644
index 0abd85e..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationIntegrationJUnitTest.java
+++ /dev/null
@@ -1,1558 +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.File;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.EnumSet;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.concurrent.TimeUnit;
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.modules.session.junit.PerTestClassLoaderRunner;
-import com.gemstone.gemfire.modules.session.filter.SessionCachingFilter;
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
-import org.apache.jasper.servlet.JspServlet;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.eclipse.jetty.servlet.FilterHolder;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.jetty.http.HttpTester;
-
-import static org.junit.Assert.*;
-
-/**
- * In-container testing using Jetty. This allows us to test context listener
- * events as well as dispatching actions.
- */
-@Category(IntegrationTest.class)
-@RunWith(PerTestClassLoaderRunner.class)
-public class SessionReplicationIntegrationJUnitTest {
-
-  private MyServletTester tester;
-
-  private HttpTester.Request request;
-
-  private HttpTester.Response response;
-
-  private ServletHolder servletHolder;
-
-  private FilterHolder filterHolder;
-
-  private static final File tmpdir;
-
-  private static final String gemfire_log;
-
-  static {
-    // Create a per-user scratch directory
-    tmpdir = new File(System.getProperty("java.io.tmpdir"),
-        "gemfire_modules-" + System.getProperty("user.name"));
-    tmpdir.mkdirs();
-    tmpdir.deleteOnExit();
-
-    gemfire_log = tmpdir.getPath() +
-        System.getProperty("file.separator") + "gemfire_modules.log";
-  }
-
-  @Before
-  public void setUp() throws Exception {
-    request = HttpTester.newRequest();
-
-    tester = new MyServletTester();
-    tester.setContextPath("/test");
-
-    filterHolder = tester.addFilter(SessionCachingFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
-    filterHolder.setInitParameter("gemfire.property.mcast-port", "0");
-    filterHolder.setInitParameter("gemfire.property.log-file", gemfire_log);
-    filterHolder.setInitParameter("cache-type", "peer-to-peer");
-
-    servletHolder = tester.addServlet(BasicServlet.class, "/hello");
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    /**
-     * This starts the servlet. Our wrapped servlets *must* start
-     * immediately otherwise the ServletContext is not captured correctly.
-     */
-    servletHolder.setInitOrder(0);
-  }
-
-  @After
-  public void tearDown() throws Exception {
-//    if (tester.isStarted()) {
-//      ContextManager.getInstance().removeContext(
-//          servletHolder.getServlet().getServletConfig().getServletContext());
-//    }
-    tester.stop();
-  }
-
-  @Test
-  public void testSanity() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        PrintWriter out = response.getWriter();
-        out.write("Hello World");
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals(200, response.getStatus());
-    assertEquals("Hello World", response.getContent());
-  }
-
-  @Test
-  public void testSessionGenerated() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        PrintWriter out = response.getWriter();
-        out.write(request.getSession().getId());
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertTrue("Not a correctly generated session id",
-        response.getContent().endsWith("-GF"));
-
-    List<Cookie> cookies = getCookies(response);
-    assertEquals("Session id != JSESSIONID from cookie",
-        response.getContent(), cookies.get(0).getValue());
-
-    Region r = getRegion();
-    assertNotNull("Session not found in region",
-        r.get(cookies.get(0).getValue()));
-  }
-
-
-  /**
-   * Test that getSession(false) does not create a new session
-   */
-  @Test
-  public void testSessionNotGenerated() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        String output = "OK";
-        HttpSession s = request.getSession(false);
-        if (s != null) {
-          output = s.getId();
-        }
-        PrintWriter out = response.getWriter();
-        out.write(output);
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("Session should not have been created", "OK",
-        response.getContent());
-  }
-
-
-  @Test
-  public void testUnknownAttributeIsNull() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        Object o = request.getSession().getAttribute("unknown");
-        PrintWriter out = response.getWriter();
-        if (o == null) {
-          out.write("null");
-        } else {
-          out.write(o.toString());
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("Unknown attribute should be null", "null",
-        response.getContent());
-  }
-
-
-  @Test
-  public void testSessionRemains1() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        String output = "null";
-        HttpSession session = request.getSession();
-        if (session.isNew()) {
-          output = "new";
-          session.setAttribute("foo", output);
-        } else {
-          output = (String) session.getAttribute("foo");
-          if (output != null) {
-            output = "old";
-          }
-        }
-        PrintWriter out = response.getWriter();
-        out.write(output);
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("Session should be new", "new", response.getContent());
-
-    List<Cookie> cookies = getCookies(response);
-    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("Session should be old", "old", response.getContent());
-
-    List<Cookie> cookies2 = getCookies(response);
-    assertEquals("Session IDs should be the same", cookies.get(0).getValue(),
-        cookies2.get(0).getValue());
-
-    Region r = getRegion();
-    assertNotNull("Session object should exist in region",
-        r.get(cookies.get(0).getValue()));
-  }
-
-  /**
-   * Test that attributes are updated on the backend
-   */
-  @Test
-  public void testAttributesUpdatedInRegion() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        request.getSession().setAttribute("foo", "bar");
-      }
-    };
-
-    // This is the callback used to invalidate the session
-    Callback c_2 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        request.getSession().setAttribute("foo", "baz");
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-    tester.setAttribute("callback_2", c_2);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    ServletHolder sh2 = tester.addServlet(BasicServlet.class, "/request2");
-    sh2.setInitParameter("test.callback", "callback_2");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    List<Cookie> cookies = getCookies(response);
-
-    Region r = getRegion();
-    assertEquals("bar",
-        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute("foo"));
-
-    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
-    request.setURI("/test/request2");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("baz",
-        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute(
-            "foo"));
-  }
-
-  /**
-   * Test setting an attribute to null deletes it
-   */
-  @Test
-  public void testSetAttributeNullDeletesIt() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        request.getSession().setAttribute("foo", "bar");
-      }
-    };
-
-    // This is the callback used to invalidate the session
-    Callback c_2 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        request.getSession().setAttribute("foo", null);
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-    tester.setAttribute("callback_2", c_2);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    ServletHolder sh2 = tester.addServlet(BasicServlet.class, "/request2");
-    sh2.setInitParameter("test.callback", "callback_2");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    List<Cookie> cookies = getCookies(response);
-
-    Region r = getRegion();
-    assertEquals("bar",
-        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute(
-            "foo"));
-
-    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
-    request.setURI("/test/request2");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertNull(
-        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute(
-            "foo"));
-  }
-
-// Don't see how to do this currently as the SessionListener needs a full
-// web context to work in.
-
-//    /**
-//     * Test that sessions expire correctly
-//     */
-//    public void testSessionExpiration() throws Exception {
-//        Callback c_1 = new Callback() {
-//            @Override
-//            public void call(HttpServletRequest request, HttpServletResponse response)
-//                    throws IOException, ServletException {
-//                HttpSession s = request.getSession();
-//                s.setAttribute("foo", "bar");
-//                s.setMaxInactiveInterval(1);
-//
-//                PrintWriter out = response.getWriter();
-//                out.write(s.getId());
-//            }
-//        };
-//
-//        // This is the callback used to check if the session is still there
-//        Callback c_2 = new Callback() {
-//            @Override
-//            public void call(HttpServletRequest request, HttpServletResponse response)
-//                    throws IOException, ServletException {
-//                HttpSession s = request.getSession(false);
-//                String output;
-//                if (s == null) {
-//                    output = "null";
-//                } else {
-//                    output = s.getId();
-//                }
-//
-//                PrintWriter out = response.getWriter();
-//                out.write(output);
-//            }
-//        };
-//
-//        tester.addEventListener(new SessionListener());
-//        tester.setAttribute("callback_1", c_1);
-//        tester.setAttribute("callback_2", c_2);
-//
-//        servletHolder.setInitParameter("test.callback", "callback_1");
-//
-//        ServletHolder sh2 = tester.addServlet(BasicServlet.class, "/request2");
-//        sh2.setInitParameter("test.callback", "callback_2");
-//
-//        tester.start();
-//        ContextManager.getInstance().putContext(
-//                servletHolder.getServlet().getServletConfig().getServletContext());
-//
-//        request.setMethod("GET");
-//        request.setURI("/test/hello");
-//        request.setHeader("Host", "tester");
-//        request.setVersion("HTTP/1.0");
-//        response.parse(tester.getResponses(request.generate()));
-//
-//        String id = response.getContent();
-//
-//        // Wait for the session to expire
-//        Thread.sleep(2000);
-//
-//        request.setHeader("Cookie", "JSESSIONID=" + id);
-//        request.setURI("/test/request2");
-//        response.parse(tester.getResponses(request.generate()));
-//
-//        assertEquals("null", response.getContent());
-//
-//        Region r = getRegion();
-//        assertNull("Region should not contain session", r.get(id));
-//    }
-
-  /**
-   * Test that invalidating a session destroys it as well as the backend
-   * object.
-   */
-  @Test
-  public void testInvalidateSession1() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        request.getSession().setAttribute("foo", "bar");
-      }
-    };
-
-    // This is the callback used to invalidate the session
-    Callback c_2 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        request.getSession(false).invalidate();
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-    tester.setAttribute("callback_2", c_2);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    ServletHolder sh2 = tester.addServlet(BasicServlet.class, "/request2");
-    sh2.setInitParameter("test.callback", "callback_2");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    List<Cookie> cookies = getCookies(response);
-    Region r = getRegion();
-    assertEquals("bar",
-        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute("foo"));
-
-    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
-    request.setURI("/test/request2");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertNull("Region should not contain session",
-        r.get(cookies.get(0).getValue()));
-  }
-
-  /**
-   * Test that invalidating a session throws an exception on subsequent access.
-   */
-  @Test
-  public void testInvalidateSession2() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        PrintWriter out = response.getWriter();
-        try {
-          s.getAttribute("foo");
-        } catch (IllegalStateException iex) {
-          out.write("OK");
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session throws an exception on subsequent access.
-   */
-  @Test
-  public void testInvalidateSession3() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        PrintWriter out = response.getWriter();
-        try {
-          s.getAttributeNames();
-        } catch (IllegalStateException iex) {
-          out.write("OK");
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session throws an exception on subsequent access.
-   */
-  @Test
-  public void testInvalidateSession4() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        PrintWriter out = response.getWriter();
-        try {
-          s.getCreationTime();
-        } catch (IllegalStateException iex) {
-          out.write("OK");
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session does not throw an exception for subsequent
-   * getId calls.
-   */
-  @Test
-  public void testInvalidateSession5() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        s.getId();
-        PrintWriter out = response.getWriter();
-        out.write("OK");
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session throws an exception on subsequent access.
-   */
-  @Test
-  public void testInvalidateSession6() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        PrintWriter out = response.getWriter();
-        try {
-          s.getLastAccessedTime();
-        } catch (IllegalStateException iex) {
-          out.write("OK");
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session does not throw an exception for
-   * subsequent getMaxInactiveInterval calls.
-   */
-
-// I've commented this out for now as Jetty seems to want to throw an
-// Exception here where the HttpServlet api doesn't specify that.
-  @Test
-  public void testInvalidateSession7() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request,
-          HttpServletResponse response) throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        s.getMaxInactiveInterval();
-        PrintWriter out = response.getWriter();
-        out.write("OK");
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session does not throw an exception for subsequent
-   * getServletContext calls.
-   */
-  @Test
-  public void testInvalidateSession8() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        s.getServletContext();
-        PrintWriter out = response.getWriter();
-        out.write("OK");
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session throws an exception on subsequent access.
-   */
-  @Test
-  public void testInvalidateSession9() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        PrintWriter out = response.getWriter();
-        try {
-          s.isNew();
-        } catch (IllegalStateException iex) {
-          out.write("OK");
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session throws an exception on subsequent access.
-   */
-  @Test
-  public void testInvalidateSession10() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        PrintWriter out = response.getWriter();
-        try {
-          s.removeAttribute("foo");
-        } catch (IllegalStateException iex) {
-          out.write("OK");
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session throws an exception on subsequent access.
-   */
-  @Test
-  public void testInvalidateSession11() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        PrintWriter out = response.getWriter();
-        try {
-          s.setAttribute("foo", "bar");
-        } catch (IllegalStateException iex) {
-          out.write("OK");
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session does not throw an exception for subsequent
-   * setMaxInactiveInterval calls.
-   */
-  @Test
-  public void testInvalidateSession12() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        s.setMaxInactiveInterval(1);
-        PrintWriter out = response.getWriter();
-        out.write("OK");
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-  /**
-   * Test that invalidating a session results in null being returned on
-   * subsequent getSession(false) calls.
-   */
-  @Test
-  public void testInvalidateSession13() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-        s = request.getSession(false);
-        PrintWriter out = response.getWriter();
-        if (s == null) {
-          out.write("OK");
-        } else {
-          out.write(s.toString());
-        }
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-
-    servletHolder.setInitParameter("test.callback", "callback_1");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("OK", response.getContent());
-  }
-
-
-  /**
-   * Test that we can invalidate and then recreate a new session
-   */
-  @Test
-  public void testInvalidateAndRecreateSession() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-
-        PrintWriter out = response.getWriter();
-        out.write(request.getSession().getId());
-      }
-    };
-
-    Callback c_2 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.invalidate();
-
-        PrintWriter out = response.getWriter();
-        out.write(request.getSession().getId());
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-    tester.setAttribute("callback_2", c_2);
-
-    ServletHolder sh = tester.addServlet(BasicServlet.class, "/dispatch");
-    sh.setInitParameter("test.callback", "callback_2");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        sh.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    String session1 = response.getContent();
-
-    request.setHeader("Cookie", "JSESSIONID=" + session1);
-    request.setURI("/test/request2");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    String session12 = response.getContent();
-    assertFalse("First and subsequent session ids must not be the same",
-        session1.equals(session12));
-  }
-
-
-  /**
-   * Test that creation time does not change on subsequent access
-   */
-  @Test
-  public void testGetCreationTime() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession session = request.getSession();
-        PrintWriter out = response.getWriter();
-        out.write(Long.toString(session.getCreationTime()));
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    long time1 = Long.parseLong(response.getContent());
-    assertTrue("Creation time should be positive", time1 > 0);
-
-    List<Cookie> cookies = getCookies(response);
-    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
-
-    try {
-      Thread.sleep(1000);
-    } catch (Exception ex) {
-    }
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    long time2 = Long.parseLong(response.getContent());
-    assertTrue("Creation time should be the same across requests",
-        time1 == time2);
-  }
-
-  /**
-   * Test that the last accessed time is updated on subsequent access
-   */
-  @Test
-  public void testGetLastAccessedTime() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession session = request.getSession();
-        PrintWriter out = response.getWriter();
-        out.write(Long.toString(session.getLastAccessedTime()));
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    long time1 = Long.parseLong(response.getContent());
-//        assertTrue("Last accessed time should be positive", time1 > 0);
-
-    List<Cookie> cookies = getCookies(response);
-    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
-
-    Thread.sleep(1000);
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    long time2 = Long.parseLong(response.getContent());
-    assertTrue("Last accessed time should be increasing across requests",
-        time2 > time1);
-  }
-
-  /**
-   * Test that the underlying native session remains the same across requests
-   */
-  @Test
-  public void testNativeSessionRemainsUnchanged() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        GemfireHttpSession session = (GemfireHttpSession) request.getSession();
-        PrintWriter out = response.getWriter();
-        out.write(session.getNativeSession().getId());
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    String nativeSessionId = response.getContent();
-
-    List<Cookie> cookies = getCookies(response);
-    String sessionId = cookies.get(0).getValue();
-    Region r = getRegion();
-
-    assertEquals(
-        "Cached native session id does not match servlet returned native session id",
-        nativeSessionId,
-        ((GemfireHttpSession) r.get(sessionId)).getNativeSession().getId());
-
-    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals(
-        "Underlying native sessions must remain the same across requests",
-        nativeSessionId,
-        ((GemfireHttpSession) r.get(sessionId)).getNativeSession().getId());
-  }
-
-  /**
-   * Test session id embedded in the URL
-   */
-  @Test
-  public void testSessionIdEmbeddedInUrl() throws Exception {
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        GemfireHttpSession session = (GemfireHttpSession) request.getSession();
-        PrintWriter out = response.getWriter();
-        out.write(session.getId());
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    List<Cookie> cookies = getCookies(response);
-    String sessionId = response.getContent();
-    assertEquals("Session ids should be the same", sessionId,
-        cookies.get(0).getValue());
-
-    request.setURI("/test/hello;jsessionid=" + sessionId);
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    cookies = getCookies(response);
-
-    assertEquals("Session ids should be the same", sessionId,
-        cookies.get(0).getValue());
-  }
-
-
-  /**
-   * Test that request forward dispatching works
-   */
-  @Test
-  public void testDispatchingForward1() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException, ServletException {
-        RequestDispatcher dispatcher = request.getRequestDispatcher("dispatch");
-        dispatcher.forward(request, response);
-
-        // This should not appear in the output
-        PrintWriter out = response.getWriter();
-        out.write("bang");
-      }
-    };
-
-    // This is the callback used by the forward servlet
-    Callback c_2 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException, ServletException {
-        PrintWriter out = response.getWriter();
-        out.write("dispatched");
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-    tester.setAttribute("callback_2", c_2);
-
-    ServletHolder sh = tester.addServlet(BasicServlet.class, "/dispatch");
-    sh.setInitParameter("test.callback", "callback_2");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        sh.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    assertEquals("dispatched", response.getContent());
-
-//    ContextManager.getInstance().removeContext(
-//        sh.getServlet().getServletConfig().getServletContext());
-  }
-
-
-  /**
-   * Test that request include dispatching works
-   */
-  @Test
-  public void testDispatchingInclude() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException, ServletException {
-        RequestDispatcher dispatcher = request.getRequestDispatcher("dispatch");
-        dispatcher.include(request, response);
-
-        // This *should* appear in the output
-        PrintWriter out = response.getWriter();
-        out.write("_bang");
-      }
-    };
-
-    // This is the callback used by the include servlet
-    Callback c_2 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException, ServletException {
-        PrintWriter out = response.getWriter();
-        out.write("dispatched");
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-    tester.setAttribute("callback_2", c_2);
-
-    ServletHolder sh = tester.addServlet(BasicServlet.class, "/dispatch");
-    sh.setInitParameter("test.callback", "callback_2");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        sh.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    assertEquals("dispatched_bang", response.getContent());
-
-//    ContextManager.getInstance().removeContext(
-//        sh.getServlet().getServletConfig().getServletContext());
-  }
-
-
-  /**
-   * Test to try and simulate a failover scenario
-   */
-  @Test
-  public void testFailover1() throws Exception {
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException, ServletException {
-        HttpSession s = request.getSession();
-        s.setAttribute("foo", "bar");
-
-        PrintWriter out = response.getWriter();
-        out.write(request.getSession().getId());
-      }
-    };
-
-    Callback c_2 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException, ServletException {
-        HttpSession s = request.getSession();
-
-        PrintWriter out = response.getWriter();
-        out.write((String) s.getAttribute("foo"));
-      }
-    };
-
-    tester.setAttribute("callback_1", c_1);
-    tester.setAttribute("callback_2", c_2);
-
-    ServletHolder sh = tester.addServlet(BasicServlet.class, "/request2");
-    sh.setInitParameter("test.callback", "callback_2");
-
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        sh.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-    String id = response.getContent();
-
-    // Now we simulate the failover by removing the native session from
-    // the stored session
-    Region r = getRegion();
-    GemfireHttpSession sessObj = (GemfireHttpSession) r.get(id);
-    sessObj.setNativeSession(null);
-
-    r.put(id, sessObj);
-
-    request.setHeader("Cookie", "JSESSIONID=" + id);
-    request.setURI("/test/request2");
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals("bar", response.getContent());
-  }
-
-  @Test
-  public void testHttpSessionListener1() throws Exception {
-    HttpSessionListenerImpl listener = new HttpSessionListenerImpl();
-    tester.getContext().getSessionHandler().addEventListener(listener);
-
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        // This is set in HttpSessionListenerImpl
-        String result = (String) s.getAttribute("gemfire-session-id");
-        response.getWriter().write(result);
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals(200, response.getStatus());
-
-    List<Cookie> cookies = getCookies(response);
-
-//        AbstractListener listener = RendezvousManager.getListener();
-    tester.stop();
-
-    assertTrue("Timeout waiting for events",
-        listener.await(1, TimeUnit.SECONDS));
-    assertEquals(ListenerEventType.SESSION_CREATED,
-        listener.events.get(0));
-    assertEquals(ListenerEventType.SESSION_DESTROYED,
-        listener.events.get(1));
-    assertEquals(cookies.get(0).getValue(), response.getContent());
-  }
-
-  @Test
-  public void testHttpSessionListener2() throws Exception {
-    HttpSessionListenerImpl2 listener = new HttpSessionListenerImpl2();
-    tester.getContext().getSessionHandler().addEventListener(listener);
-
-    Callback c = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException {
-        HttpSession s = request.getSession();
-        s.setAttribute("test01", "test01");
-        s = request.getSession(false);
-        s.invalidate();
-        response.getWriter().write(s.getId());
-      }
-    };
-
-    tester.setAttribute("callback_1", c);
-    tester.start();
-//    ContextManager.getInstance().putContext(
-//        servletHolder.getServlet().getServletConfig().getServletContext());
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals(200, response.getStatus());
-
-    List<Cookie> cookies = getCookies(response);
-
-    tester.stop();
-
-    assertTrue("Timeout waiting for events",
-        listener.await(1, TimeUnit.SECONDS));
-    assertEquals(ListenerEventType.SESSION_CREATED,
-        listener.events.get(0));
-    assertEquals(ListenerEventType.SESSION_DESTROYED,
-        listener.events.get(1));
-    assertEquals(cookies.get(0).getValue(), response.getContent());
-  }
-
-
-
-
-//  @Test
-  public void testJsp() throws Exception {
-    tester.setResourceBase("target/test-classes");
-    ServletHolder jspHolder = tester.addServlet(JspServlet.class, "/test/*");
-    jspHolder.setInitOrder(1);
-
-    jspHolder.setInitParameter("scratchdir", tmpdir.getPath());
-
-    Callback c_1 = new Callback() {
-      @Override
-      public void call(HttpServletRequest request, HttpServletResponse response)
-          throws IOException, ServletException {
-        request.getSession().setAttribute("foo", "bar");
-        request.setAttribute("foo", "baz");
-        RequestDispatcher dispatcher = request.getRequestDispatcher(
-            "pagecontext.jsp");
-        dispatcher.forward(request, response);
-      }
-    };
-
-    tester.getContext().setClassLoader(Thread.currentThread().getContextClassLoader());
-    tester.setAttribute("callback_1", c_1);
-
-    tester.start();
-
-    request.setMethod("GET");
-    request.setURI("/test/hello");
-    request.setHeader("Host", "tester");
-    request.setVersion("HTTP/1.0");
-
-    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
-
-    assertEquals(200, response.getStatus());
-    assertEquals("baz", response.getContent().trim());
-  }
-
-
-  ////////////////////////////////////////////////////////////////////
-  // Private methods
-
-  /**
-   * Why doesn't HttpTester do this already??
-   */
-  private List<Cookie> getCookies(HttpTester.Response response) {
-    List<Cookie> cookies = new ArrayList<Cookie>();
-
-    Enumeration e = response.getValues("Set-Cookie");
-
-    while (e != null && e.hasMoreElements()) {
-      String header = (String) e.nextElement();
-      Cookie c = null;
-
-      StringTokenizer st = new StringTokenizer(header, ";");
-      while (st.hasMoreTokens()) {
-        String[] split = st.nextToken().split("=");
-        String param = split[0].trim();
-        String value = null;
-        if (split.length > 1) {
-          value = split[1].trim();
-        }
-        if ("version".equalsIgnoreCase(param)) {
-          c.setVersion(Integer.parseInt(value));
-        } else if ("comment".equalsIgnoreCase(param)) {
-          c.setComment(value);
-        } else if ("domain".equalsIgnoreCase(param)) {
-          c.setDomain(value);
-        } else if ("max-age".equalsIgnoreCase(param)) {
-          c.setMaxAge(Integer.parseInt(value));
-        } else if ("discard".equalsIgnoreCase(param)) {
-          c.setMaxAge(-1);
-        } else if ("path".equalsIgnoreCase(param)) {
-          c.setPath(value);
-        } else if ("secure".equalsIgnoreCase(param)) {
-          c.setSecure(true);
-        } else if ("httponly".equalsIgnoreCase(param)) {
-          // Ignored??
-        } else {
-          if (c == null) {
-            c = new Cookie(param, value);
-          } else {
-            throw new IllegalStateException("Unknown cookie param: " + param);
-          }
-        }
-      }
-
-      if (c != null) {
-        cookies.add(c);
-      }
-    }
-
-    return cookies;
-  }
-
-  private Region getRegion() {
-    // Yuck...
-    return ((GemfireSessionManager) ((SessionCachingFilter) filterHolder.getFilter()).getSessionManager()).getCache().getCache().getRegion(
-        "gemfire_modules_sessions");
-  }
-}

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/SessionReplicationJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationJUnitTest.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationJUnitTest.java
deleted file mode 100644
index ba4cbd9..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationJUnitTest.java
+++ /dev/null
@@ -1,53 +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.modules.session.filter.SessionCachingFilter;
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
-import com.mockrunner.mock.web.MockFilterConfig;
-import com.mockrunner.mock.web.WebMockObjectFactory;
-import org.junit.Before;
-import org.junit.experimental.categories.Category;
-
-/**
- * This runs all tests with a local cache disabled
- */
-@Category(IntegrationTest.class)
-public class SessionReplicationJUnitTest extends CommonTests {
-
-  @Before
-  public void setUp() throws Exception {
-    super.setUp();
-
-    WebMockObjectFactory factory = getWebMockObjectFactory();
-    MockFilterConfig config = factory.getMockFilterConfig();
-
-    config.setInitParameter("gemfire.property.mcast-port", "0");
-    config.setInitParameter("cache-type", "peer-to-peer");
-
-    factory.getMockServletContext().setContextPath(CONTEXT_PATH);
-
-    factory.getMockRequest().setRequestURL("/test/foo/bar");
-    factory.getMockRequest().setContextPath(CONTEXT_PATH);
-
-    createFilter(SessionCachingFilter.class);
-    createServlet(CallbackServlet.class);
-
-    setDoChain(true);
-  }
-}

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/SessionReplicationLocalCacheJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationLocalCacheJUnitTest.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationLocalCacheJUnitTest.java
deleted file mode 100644
index 4016c7c..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationLocalCacheJUnitTest.java
+++ /dev/null
@@ -1,54 +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.modules.session.filter.SessionCachingFilter;
-import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
-import com.mockrunner.mock.web.MockFilterConfig;
-import com.mockrunner.mock.web.WebMockObjectFactory;
-import org.junit.Before;
-import org.junit.experimental.categories.Category;
-
-/**
- * This runs all tests with a local cache enabled
- */
-@Category(IntegrationTest.class)
-public class SessionReplicationLocalCacheJUnitTest extends CommonTests {
-
-  @Before
-  public void setUp() throws Exception {
-    super.setUp();
-
-    WebMockObjectFactory factory = getWebMockObjectFactory();
-    MockFilterConfig config = factory.getMockFilterConfig();
-
-    config.setInitParameter("gemfire.property.mcast-port", "0");
-    config.setInitParameter("cache-type", "peer-to-peer");
-    config.setInitParameter("gemfire.cache.enable_local_cache", "true");
-
-    factory.getMockServletContext().setContextPath(CONTEXT_PATH);
-
-    factory.getMockRequest().setRequestURL("/test/foo/bar");
-    factory.getMockRequest().setContextPath(CONTEXT_PATH);
-
-    createFilter(SessionCachingFilter.class);
-    createServlet(CallbackServlet.class);
-
-    setDoChain(true);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/ChildFirstClassLoader.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/ChildFirstClassLoader.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/ChildFirstClassLoader.java
deleted file mode 100644
index dd4441b..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/ChildFirstClassLoader.java
+++ /dev/null
@@ -1,86 +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.junit;
-
-import java.net.URL;
-import java.net.URLClassLoader;
-
-public class ChildFirstClassLoader extends URLClassLoader {
-
-  public ChildFirstClassLoader() {
-    super(new URL[]{});
-  }
-
-  public ChildFirstClassLoader(URL[] urls) {
-    super(urls);
-  }
-
-  public ChildFirstClassLoader(URL[] urls, ClassLoader parent) {
-    super(urls, parent);
-  }
-
-  @Override
-  public void addURL(URL url) {
-    super.addURL(url);
-  }
-
-  @Override
-  public Class loadClass(String name) throws ClassNotFoundException {
-    return loadClass(name, false);
-  }
-
-  /**
-   * We override the parent-first behavior established by
-   * java.lang.Classloader.
-   */
-  @Override
-  protected Class loadClass(String name, boolean resolve)
-      throws ClassNotFoundException {
-    Class c = null;
-
-    if (name.startsWith("com.gemstone")) {
-      // First, check if the class has already been loaded
-      c = findLoadedClass(name);
-
-      // if not loaded, search the local (child) resources
-      if (c == null) {
-        try {
-          c = findClass(name);
-        } catch (ClassNotFoundException cnfe) {
-          // ignore
-        }
-      }
-    }
-
-    // if we could not find it, delegate to parent
-    // Note that we don't attempt to catch any ClassNotFoundException
-    if (c == null) {
-      if (getParent() != null) {
-        c = getParent().loadClass(name);
-      } else {
-        c = getSystemClassLoader().loadClass(name);
-      }
-    }
-
-    if (resolve) {
-      resolveClass(c);
-    }
-
-    return c;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/NamedRunner.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/NamedRunner.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/NamedRunner.java
deleted file mode 100644
index e717c9a..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/NamedRunner.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.junit;
-
-import org.junit.runner.notification.RunNotifier;
-import org.junit.runners.BlockJUnit4ClassRunner;
-import org.junit.runners.model.FrameworkMethod;
-import org.junit.runners.model.InitializationError;
-
-/**
- * A Junit 4 runner that stores the name of the method that runs.  The methods
- * marked with @After and @Before (but also the Test method itself) can request
- * this name for which it is running.
- *
- * @author Rudy De Busscher
- */
-public class NamedRunner extends BlockJUnit4ClassRunner {
-
-  /**
-   * The Constant PREFIX_KEY.
-   */
-  private static final String PREFIX_KEY = "ClassLoaderRunner_TestMethodName_";
-
-  /**
-   * The Constant NO_NAME.
-   */
-  private static final String NO_NAME = "null";
-
-  /**
-   * Instantiates a new named runner.
-   *
-   * @param klass the klass
-   * @throws InitializationError the initialization error
-   */
-  public NamedRunner(Class<?> klass) throws InitializationError {
-    super(klass);
-  }
-
-  @Override
-  protected void runChild(FrameworkMethod method, RunNotifier notifier)
-
-  {
-    storeTestMethodName(method.getName());
-    super.runChild(method, notifier);
-    removeTestMethodName();
-  }
-
-  /**
-   * Gets the test method name.
-   *
-   * @return the test method name
-   */
-  public static String getTestMethodName() {
-    return retrieveTestMethodName();
-  }
-
-  /**
-   * Retrieve test method name.
-   *
-   * @return the string
-   */
-  private static String retrieveTestMethodName() {
-    // We can't use a ThreadLocal variable in the case the TestPerClassLoader runner is used.  Then this
-    // Method is accessed from another classloader and thus reinitialized variables.
-    String result = null;
-    String storedName = System.getProperty(getKey());
-    if (!NO_NAME.equals(storedName)) {
-      result = storedName;
-    }
-    return result;
-  }
-
-  /**
-   * Removes the test method name.
-   */
-  private static void removeTestMethodName() {
-    // We can't use a ThreadLocal variable in the case the TestPerClassLoader runner is used.  Then this
-    // Method is accessed from another classloader and thus reinitialized variables.
-    System.setProperty(getKey(), NO_NAME);
-
-  }
-
-  /**
-   * Store test method name.
-   *
-   * @param name the name
-   */
-  private static void storeTestMethodName(String name) {
-
-    // We can't use a ThreadLocal variable in the case the TestPerClassLoader runner is used.  Then this
-    // Method is accessed from another classloader and thus reinitialized variables.
-    System.setProperty(getKey(), name);
-  }
-
-  /**
-   * Gets the key.
-   *
-   * @return the key
-   */
-  private static String getKey() {
-    StringBuffer buffer = new StringBuffer();
-    buffer.append(PREFIX_KEY).append(Thread.currentThread().getName());
-    return buffer.toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/PerTestClassLoaderRunner.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/PerTestClassLoaderRunner.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/PerTestClassLoaderRunner.java
deleted file mode 100644
index 3e5c998..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/PerTestClassLoaderRunner.java
+++ /dev/null
@@ -1,283 +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.junit;
-
-/**
- * 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.
- */
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.internal.runners.statements.Fail;
-import org.junit.internal.runners.statements.RunAfters;
-import org.junit.internal.runners.statements.RunBefores;
-import org.junit.runners.model.FrameworkMethod;
-import org.junit.runners.model.InitializationError;
-import org.junit.runners.model.Statement;
-import org.junit.runners.model.TestClass;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-import java.util.logging.Logger;
-
-public class PerTestClassLoaderRunner extends NamedRunner {
-  private static final Logger LOGGER = Logger
-      .getLogger(PerTestClassLoaderRunner.class.getName());
-
-  // The classpath is needed because the custom class loader looks there to find the classes.
-  private static String classPath;
-  private static boolean classPathDetermined = false;
-
-  // Some data related to the class from the custom class loader.
-  private TestClass testClassFromClassLoader;
-  private Object beforeFromClassLoader;
-  private Object afterFromClassLoader;
-
-  /**
-   * Instantiates a new test per class loader runner.
-   *
-   * @param klass the klass
-   * @throws InitializationError the initialization error
-   */
-  public PerTestClassLoaderRunner(Class<?> klass) throws InitializationError {
-    super(klass);
-  }
-
-  @Override
-  protected Object createTest() throws Exception {
-    // Need an instance now from the class loaded by the custom loader.
-    return testClassFromClassLoader.getJavaClass().newInstance();
-  }
-
-  /**
-   * Load classes (TestCase, @Before and @After with custom class loader.
-   *
-   * @throws ClassNotFoundException the class not found exception
-   */
-  private void loadClassesWithCustomClassLoader()
-      throws ClassNotFoundException {
-    String classPath = System.getProperty("java.class.path");
-    StringTokenizer st = new StringTokenizer(classPath, ":");
-    List<URL> urls = new ArrayList<URL>();
-    while (st.hasMoreTokens()) {
-      String u = st.nextToken();
-      try {
-        if (!u.endsWith(".jar")) {
-          u += "/";
-        }
-        URL url = new URL("file://" + u);
-        urls.add(url);
-      } catch (MalformedURLException e) {
-        e.printStackTrace();
-      }
-    }
-
-    ClassLoader classLoader = new ChildFirstClassLoader(
-        urls.toArray(new URL[]{}),
-        Thread.currentThread().getContextClassLoader()
-    );
-
-    Thread.currentThread().setContextClassLoader(classLoader);
-
-    testClassFromClassLoader = new TestClass(classLoader
-        .loadClass(getTestClass().getJavaClass().getName()));
-    // See withAfters and withBefores for the reason.
-    beforeFromClassLoader = classLoader.loadClass(Before.class.getName());
-    afterFromClassLoader = classLoader.loadClass(After.class.getName());
-  }
-
-  @Override
-  protected Statement methodBlock(FrameworkMethod method) {
-    FrameworkMethod newMethod = null;
-    try {
-      // Need the class from the custom loader now, so lets load the class.
-      loadClassesWithCustomClassLoader();
-      // The method as parameter is from the original class and thus not found in our
-      // class loaded by the custom name (reflection is class loader sensitive)
-      // So find the same method but now in the class from the class Loader.
-      Method methodFromNewlyLoadedClass = testClassFromClassLoader
-          .getJavaClass().getMethod(method.getName());
-      newMethod = new FrameworkMethod(methodFromNewlyLoadedClass);
-    } catch (ClassNotFoundException e) {
-      // Show any problem nicely as a JUnit Test failure.
-      return new Fail(e);
-    } catch (SecurityException e) {
-      return new Fail(e);
-    } catch (NoSuchMethodException e) {
-      return new Fail(e);
-    }
-
-    // We can carry out the normal JUnit functionality with our newly discovered method now.
-    return super.methodBlock(newMethod);
-  }
-
-  @SuppressWarnings("unchecked")
-  @Override
-  protected Statement withAfters(FrameworkMethod method, Object target,
-      Statement statement) {
-    // We now to need to search in the class from the custom loader.
-    // We also need to search with the annotation loaded by the custom
-    // class loader or otherwise we don't find any method.
-    List<FrameworkMethod> afters = testClassFromClassLoader
-        .getAnnotatedMethods(
-            (Class<? extends Annotation>) afterFromClassLoader);
-    return new RunAfters(statement, afters, target);
-  }
-
-  @SuppressWarnings("unchecked")
-  @Override
-  protected Statement withBefores(FrameworkMethod method, Object target,
-      Statement statement) {
-    // We now to need to search in the class from the custom loader.
-    // We also need to search with the annotation loaded by the custom
-    // class loader or otherwise we don't find any method.
-    List<FrameworkMethod> befores = testClassFromClassLoader
-        .getAnnotatedMethods(
-            (Class<? extends Annotation>) beforeFromClassLoader);
-    return new RunBefores(statement, befores, target);
-  }
-
-//    /**
-//     * Gets the class path. This value is cached in a static variable for performance reasons.
-//     *
-//     * @return the class path
-//     */
-//    private static String getClassPath()
-//    {
-//        if (classPathDetermined)
-//        {
-//            return classPath;
-//        }
-//
-//        classPathDetermined = true;
-//        // running from maven, we have the classpath in this property.
-//        classPath = System.getProperty("surefire.test.class.path");
-//        if (classPath != null)
-//        {
-//            return classPath;
-//        }
-//
-//        // For a multi module project, running it from the top we have to find it using another way.
-//        // We also need to set useSystemClassLoader=true in the POM so that we gets a jar with the classpath in it.
-//        String booterClassPath = System.getProperty("java.class.path");
-//        Vector<String> pathItems = null;
-//        if (booterClassPath != null)
-//        {
-//            pathItems = scanPath(booterClassPath);
-//        }
-//        // Do we have just 1 entry as classpath which is a jar?
-//        if (pathItems != null && pathItems.size() == 1
-//                && isJar((String) pathItems.get(0)))
-//        {
-//            classPath = loadJarManifestClassPath((String) pathItems.get(0),
-//                    "META-INF/MANIFEST.MF");
-//        }
-//        return classPath;
-//
-//    }
-
-//    /**
-//     * Load jar manifest class path.
-//     *
-//     * @param path the path
-//     * @param fileName the file name
-//     *
-//     * @return the string
-//     */
-//    private static String loadJarManifestClassPath(String path, String fileName)
-//    {
-//        File archive = new File(path);
-//        if (!archive.exists()) {
-//            return null;
-//        }
-//        ZipFile zipFile = null;
-//
-//        try {
-//            zipFile = new ZipFile(archive);
-//        } catch (IOException io) {
-//            return null;
-//        }
-//
-//        ZipEntry entry = zipFile.getEntry(fileName);
-//        if (entry == null) {
-//            return null;
-//        } try {
-//            Manifest mf = new Manifest();
-//            mf.read(zipFile.getInputStream(entry));
-//
-//            return mf.getMainAttributes().getValue(Attributes.Name.CLASS_PATH)
-//                    .replaceAll(" ", System.getProperty("path.separator"))
-//                    .replaceAll("file:/", "");
-//        } catch (MalformedURLException e) {
-//            LOGGER.throwing("ClassLoaderTestSuite", "loadJarManifestClassPath", e);
-//        } catch (IOException e) {
-//            LOGGER.throwing("ClassLoaderTestSuite", "loadJarManifestClassPath", e);
-//        }
-//        return null;
-//    }
-//
-//    /**
-//     * Checks if is jar.
-//     *
-//     * @param pathEntry the path entry
-//     *
-//     * @return true, if is jar
-//     */
-//    private static boolean isJar(String pathEntry)
-//    {
-//        return pathEntry.endsWith(".jar") || pathEntry.endsWith(".zip");
-//    }
-//
-//    /**
-//     * Scan path for all directories.
-//     *
-//     * @param classPath the class path
-//     *
-//     * @return the vector< string>
-//     */
-//    private static Vector<String> scanPath(String classPath)
-//    {
-//        String separator = System.getProperty("path.separator");
-//        Vector<String> pathItems = new Vector<String>(10);
-//        StringTokenizer st = new StringTokenizer(classPath, separator);
-//        while (st.hasMoreTokens())
-//        {
-//            pathItems.addElement(st.nextToken());
-//        }
-//        return pathItems;
-//    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/SeparateClassloaderTestRunner.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/SeparateClassloaderTestRunner.java b/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/SeparateClassloaderTestRunner.java
deleted file mode 100644
index 4337f5a..0000000
--- a/extensions/gemfire-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/SeparateClassloaderTestRunner.java
+++ /dev/null
@@ -1,56 +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.junit;
-
-import org.junit.runners.BlockJUnit4ClassRunner;
-import org.junit.runners.model.InitializationError;
-
-import java.net.URLClassLoader;
-
-/**
- * @author StackOverflow
- */
-public class SeparateClassloaderTestRunner extends BlockJUnit4ClassRunner {
-
-  public SeparateClassloaderTestRunner(Class<?> clazz) throws InitializationError {
-    super(getFromTestClassloader(clazz));
-  }
-
-  private static Class<?> getFromTestClassloader(Class<?> clazz) throws InitializationError {
-    try {
-      ClassLoader testClassLoader = new TestClassLoader();
-      return Class.forName(clazz.getName(), true, testClassLoader);
-    } catch (ClassNotFoundException e) {
-      throw new InitializationError(e);
-    }
-  }
-
-  public static class TestClassLoader extends URLClassLoader {
-    public TestClassLoader() {
-      super(((URLClassLoader)getSystemClassLoader()).getURLs());
-    }
-
-    @Override
-    public Class<?> loadClass(String name) throws ClassNotFoundException {
-      if (name.startsWith("com.gemstone.gemfire.modules.session.")) {
-        return super.findClass(name);
-      }
-      return super.loadClass(name);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/test/resources/log4j.properties b/extensions/gemfire-modules-session/src/test/resources/log4j.properties
deleted file mode 100644
index b346714..0000000
--- a/extensions/gemfire-modules-session/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-# To change this template, choose Tools | Templates
-# and open the template in the editor.
-
-# Set root logger level to DEBUG and its only appender to A1.
-log4j.rootLogger=DEBUG, A1
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-tomcat7/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-tomcat7/build.gradle b/extensions/gemfire-modules-tomcat7/build.gradle
deleted file mode 100644
index edb070f..0000000
--- a/extensions/gemfire-modules-tomcat7/build.gradle
+++ /dev/null
@@ -1,54 +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.
- */
-
-test  {
-  doFirst {
-    copy {
-      from 'build/resources/test/tomcat'
-      into 'build/test/tomcat/'
-    }
-  }
-}
-
-dependencies {
-  compile(project(':extensions/gemfire-modules')) {
-    // Remove everything related to Tomcat 6.x
-    exclude group: 'org.apache.tomcat'
-  }
-
-  compile 'org.apache.tomcat:tomcat-api:' + project.'tomcat7.version'
-  compile 'org.apache.tomcat:tomcat-catalina:' + project.'tomcat7.version'
-  compile 'org.apache.tomcat:tomcat-coyote:' + project.'tomcat7.version'
-  compile 'org.apache.tomcat:tomcat-util:' + project.'tomcat7.version'
-  compile 'org.apache.tomcat:tomcat-juli:' + project.'tomcat7.version'
-
-  testCompile 'org.httpunit:httpunit:' + project.'httpunit.version'
-
-  testRuntime 'javax.annotation:jsr250-api:' + project.'javax.jsr250-api.version'
-  testRuntime 'javax.ejb:ejb-api:' + project.'javax.ejb-api.version'
-  testRuntime 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version'
-  testRuntime 'org.eclipse.persistence:javax.persistence:' + project.'javax.persistence-api.version'
-
-  provided(project(path: ':extensions/gemfire-modules', configuration: 'testOutput')) {
-    // Remove everything related to Tomcat 6.x
-    exclude group: 'org.apache.tomcat', module: 'catalina'
-    exclude group: 'org.apache.tomcat', module: 'catalina-ha'
-    exclude group: 'org.apache.tomcat', module: 'juli'
-  }
-  testCompile project(path: ':gemfire-junit')
-  provided project(path: ':gemfire-core', configuration: 'testOutput')
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-tomcat7/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat7DeltaSessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-tomcat7/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat7DeltaSessionManager.java b/extensions/gemfire-modules-tomcat7/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat7DeltaSessionManager.java
deleted file mode 100644
index d1f44bb..0000000
--- a/extensions/gemfire-modules-tomcat7/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat7DeltaSessionManager.java
+++ /dev/null
@@ -1,112 +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.catalina;
-
-import org.apache.catalina.LifecycleException;
-import org.apache.catalina.LifecycleState;
-
-import java.io.IOException;
-
-public class Tomcat7DeltaSessionManager extends DeltaSessionManager {
-
-  /**
-   * Prepare for the beginning of active use of the public methods of this component.  This method should be called
-   * after <code>configure()</code>, and before any of the public methods of the component are utilized.
-   *
-   * @throws LifecycleException if this component detects a fatal error that prevents this component from being used
-   */
-  @Override
-  public void startInternal() throws LifecycleException {
-    super.startInternal();
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Starting");
-    }
-    if (this.started.get()) {
-      return;
-    }
-
-    this.lifecycle.fireLifecycleEvent(START_EVENT, null);
-
-    // Register our various valves
-    registerJvmRouteBinderValve();
-
-    if (isCommitValveEnabled()) {
-      registerCommitSessionValve();
-    }
-
-    // Initialize the appropriate session cache interface
-    initializeSessionCache();
-
-    try {
-      load();
-    } catch (ClassNotFoundException e) {
-      throw new LifecycleException("Exception starting manager", e);
-    } catch (IOException e) {
-      throw new LifecycleException("Exception starting manager", e);
-    }
-
-    // Create the timer and schedule tasks
-    scheduleTimerTasks();
-
-    this.started.set(true);
-    this.setState(LifecycleState.STARTING);
-  }
-
-  /**
-   * Gracefully terminate the active use of the public methods of this component.  This method should be the last one
-   * called on a given instance of this component.
-   *
-   * @throws LifecycleException if this component detects a fatal error that needs to be reported
-   */
-  @Override
-  public void stopInternal() throws LifecycleException {
-    super.stopInternal();
-    if (getLogger().isDebugEnabled()) {
-      getLogger().debug(this + ": Stopping");
-    }
-
-    try {
-      unload();
-    } catch (IOException e) {
-      getLogger().error("Unable to unload sessions", e);
-    }
-
-    this.started.set(false);
-    this.lifecycle.fireLifecycleEvent(STOP_EVENT, null);
-
-    // StandardManager expires all Sessions here.
-    // All Sessions are not known by this Manager.
-
-    super.destroyInternal();
-
-    // Clear any sessions to be touched
-    getSessionsToTouch().clear();
-
-    // Cancel the timer
-    cancelTimer();
-
-    // Unregister the JVM route valve
-    unregisterJvmRouteBinderValve();
-
-    if (isCommitValveEnabled()) {
-      unregisterCommitSessionValve();
-    }
-
-    this.setState(LifecycleState.STOPPING);
-  }
-
-}



[34/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationIntegrationJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationIntegrationJUnitTest.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationIntegrationJUnitTest.java
new file mode 100644
index 0000000..0abd85e
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationIntegrationJUnitTest.java
@@ -0,0 +1,1558 @@
+/*
+* 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.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.EnumSet;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.util.concurrent.TimeUnit;
+import javax.servlet.DispatcherType;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.modules.session.junit.PerTestClassLoaderRunner;
+import com.gemstone.gemfire.modules.session.filter.SessionCachingFilter;
+import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import org.apache.jasper.servlet.JspServlet;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.eclipse.jetty.servlet.FilterHolder;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.http.HttpTester;
+
+import static org.junit.Assert.*;
+
+/**
+ * In-container testing using Jetty. This allows us to test context listener
+ * events as well as dispatching actions.
+ */
+@Category(IntegrationTest.class)
+@RunWith(PerTestClassLoaderRunner.class)
+public class SessionReplicationIntegrationJUnitTest {
+
+  private MyServletTester tester;
+
+  private HttpTester.Request request;
+
+  private HttpTester.Response response;
+
+  private ServletHolder servletHolder;
+
+  private FilterHolder filterHolder;
+
+  private static final File tmpdir;
+
+  private static final String gemfire_log;
+
+  static {
+    // Create a per-user scratch directory
+    tmpdir = new File(System.getProperty("java.io.tmpdir"),
+        "gemfire_modules-" + System.getProperty("user.name"));
+    tmpdir.mkdirs();
+    tmpdir.deleteOnExit();
+
+    gemfire_log = tmpdir.getPath() +
+        System.getProperty("file.separator") + "gemfire_modules.log";
+  }
+
+  @Before
+  public void setUp() throws Exception {
+    request = HttpTester.newRequest();
+
+    tester = new MyServletTester();
+    tester.setContextPath("/test");
+
+    filterHolder = tester.addFilter(SessionCachingFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
+    filterHolder.setInitParameter("gemfire.property.mcast-port", "0");
+    filterHolder.setInitParameter("gemfire.property.log-file", gemfire_log);
+    filterHolder.setInitParameter("cache-type", "peer-to-peer");
+
+    servletHolder = tester.addServlet(BasicServlet.class, "/hello");
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    /**
+     * This starts the servlet. Our wrapped servlets *must* start
+     * immediately otherwise the ServletContext is not captured correctly.
+     */
+    servletHolder.setInitOrder(0);
+  }
+
+  @After
+  public void tearDown() throws Exception {
+//    if (tester.isStarted()) {
+//      ContextManager.getInstance().removeContext(
+//          servletHolder.getServlet().getServletConfig().getServletContext());
+//    }
+    tester.stop();
+  }
+
+  @Test
+  public void testSanity() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        PrintWriter out = response.getWriter();
+        out.write("Hello World");
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals(200, response.getStatus());
+    assertEquals("Hello World", response.getContent());
+  }
+
+  @Test
+  public void testSessionGenerated() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        PrintWriter out = response.getWriter();
+        out.write(request.getSession().getId());
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertTrue("Not a correctly generated session id",
+        response.getContent().endsWith("-GF"));
+
+    List<Cookie> cookies = getCookies(response);
+    assertEquals("Session id != JSESSIONID from cookie",
+        response.getContent(), cookies.get(0).getValue());
+
+    Region r = getRegion();
+    assertNotNull("Session not found in region",
+        r.get(cookies.get(0).getValue()));
+  }
+
+
+  /**
+   * Test that getSession(false) does not create a new session
+   */
+  @Test
+  public void testSessionNotGenerated() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        String output = "OK";
+        HttpSession s = request.getSession(false);
+        if (s != null) {
+          output = s.getId();
+        }
+        PrintWriter out = response.getWriter();
+        out.write(output);
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("Session should not have been created", "OK",
+        response.getContent());
+  }
+
+
+  @Test
+  public void testUnknownAttributeIsNull() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        Object o = request.getSession().getAttribute("unknown");
+        PrintWriter out = response.getWriter();
+        if (o == null) {
+          out.write("null");
+        } else {
+          out.write(o.toString());
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("Unknown attribute should be null", "null",
+        response.getContent());
+  }
+
+
+  @Test
+  public void testSessionRemains1() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        String output = "null";
+        HttpSession session = request.getSession();
+        if (session.isNew()) {
+          output = "new";
+          session.setAttribute("foo", output);
+        } else {
+          output = (String) session.getAttribute("foo");
+          if (output != null) {
+            output = "old";
+          }
+        }
+        PrintWriter out = response.getWriter();
+        out.write(output);
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("Session should be new", "new", response.getContent());
+
+    List<Cookie> cookies = getCookies(response);
+    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("Session should be old", "old", response.getContent());
+
+    List<Cookie> cookies2 = getCookies(response);
+    assertEquals("Session IDs should be the same", cookies.get(0).getValue(),
+        cookies2.get(0).getValue());
+
+    Region r = getRegion();
+    assertNotNull("Session object should exist in region",
+        r.get(cookies.get(0).getValue()));
+  }
+
+  /**
+   * Test that attributes are updated on the backend
+   */
+  @Test
+  public void testAttributesUpdatedInRegion() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        request.getSession().setAttribute("foo", "bar");
+      }
+    };
+
+    // This is the callback used to invalidate the session
+    Callback c_2 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        request.getSession().setAttribute("foo", "baz");
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+    tester.setAttribute("callback_2", c_2);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    ServletHolder sh2 = tester.addServlet(BasicServlet.class, "/request2");
+    sh2.setInitParameter("test.callback", "callback_2");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    List<Cookie> cookies = getCookies(response);
+
+    Region r = getRegion();
+    assertEquals("bar",
+        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute("foo"));
+
+    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
+    request.setURI("/test/request2");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("baz",
+        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute(
+            "foo"));
+  }
+
+  /**
+   * Test setting an attribute to null deletes it
+   */
+  @Test
+  public void testSetAttributeNullDeletesIt() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        request.getSession().setAttribute("foo", "bar");
+      }
+    };
+
+    // This is the callback used to invalidate the session
+    Callback c_2 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        request.getSession().setAttribute("foo", null);
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+    tester.setAttribute("callback_2", c_2);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    ServletHolder sh2 = tester.addServlet(BasicServlet.class, "/request2");
+    sh2.setInitParameter("test.callback", "callback_2");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    List<Cookie> cookies = getCookies(response);
+
+    Region r = getRegion();
+    assertEquals("bar",
+        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute(
+            "foo"));
+
+    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
+    request.setURI("/test/request2");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertNull(
+        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute(
+            "foo"));
+  }
+
+// Don't see how to do this currently as the SessionListener needs a full
+// web context to work in.
+
+//    /**
+//     * Test that sessions expire correctly
+//     */
+//    public void testSessionExpiration() throws Exception {
+//        Callback c_1 = new Callback() {
+//            @Override
+//            public void call(HttpServletRequest request, HttpServletResponse response)
+//                    throws IOException, ServletException {
+//                HttpSession s = request.getSession();
+//                s.setAttribute("foo", "bar");
+//                s.setMaxInactiveInterval(1);
+//
+//                PrintWriter out = response.getWriter();
+//                out.write(s.getId());
+//            }
+//        };
+//
+//        // This is the callback used to check if the session is still there
+//        Callback c_2 = new Callback() {
+//            @Override
+//            public void call(HttpServletRequest request, HttpServletResponse response)
+//                    throws IOException, ServletException {
+//                HttpSession s = request.getSession(false);
+//                String output;
+//                if (s == null) {
+//                    output = "null";
+//                } else {
+//                    output = s.getId();
+//                }
+//
+//                PrintWriter out = response.getWriter();
+//                out.write(output);
+//            }
+//        };
+//
+//        tester.addEventListener(new SessionListener());
+//        tester.setAttribute("callback_1", c_1);
+//        tester.setAttribute("callback_2", c_2);
+//
+//        servletHolder.setInitParameter("test.callback", "callback_1");
+//
+//        ServletHolder sh2 = tester.addServlet(BasicServlet.class, "/request2");
+//        sh2.setInitParameter("test.callback", "callback_2");
+//
+//        tester.start();
+//        ContextManager.getInstance().putContext(
+//                servletHolder.getServlet().getServletConfig().getServletContext());
+//
+//        request.setMethod("GET");
+//        request.setURI("/test/hello");
+//        request.setHeader("Host", "tester");
+//        request.setVersion("HTTP/1.0");
+//        response.parse(tester.getResponses(request.generate()));
+//
+//        String id = response.getContent();
+//
+//        // Wait for the session to expire
+//        Thread.sleep(2000);
+//
+//        request.setHeader("Cookie", "JSESSIONID=" + id);
+//        request.setURI("/test/request2");
+//        response.parse(tester.getResponses(request.generate()));
+//
+//        assertEquals("null", response.getContent());
+//
+//        Region r = getRegion();
+//        assertNull("Region should not contain session", r.get(id));
+//    }
+
+  /**
+   * Test that invalidating a session destroys it as well as the backend
+   * object.
+   */
+  @Test
+  public void testInvalidateSession1() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        request.getSession().setAttribute("foo", "bar");
+      }
+    };
+
+    // This is the callback used to invalidate the session
+    Callback c_2 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        request.getSession(false).invalidate();
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+    tester.setAttribute("callback_2", c_2);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    ServletHolder sh2 = tester.addServlet(BasicServlet.class, "/request2");
+    sh2.setInitParameter("test.callback", "callback_2");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    List<Cookie> cookies = getCookies(response);
+    Region r = getRegion();
+    assertEquals("bar",
+        ((HttpSession) r.get(cookies.get(0).getValue())).getAttribute("foo"));
+
+    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
+    request.setURI("/test/request2");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertNull("Region should not contain session",
+        r.get(cookies.get(0).getValue()));
+  }
+
+  /**
+   * Test that invalidating a session throws an exception on subsequent access.
+   */
+  @Test
+  public void testInvalidateSession2() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        PrintWriter out = response.getWriter();
+        try {
+          s.getAttribute("foo");
+        } catch (IllegalStateException iex) {
+          out.write("OK");
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session throws an exception on subsequent access.
+   */
+  @Test
+  public void testInvalidateSession3() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        PrintWriter out = response.getWriter();
+        try {
+          s.getAttributeNames();
+        } catch (IllegalStateException iex) {
+          out.write("OK");
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session throws an exception on subsequent access.
+   */
+  @Test
+  public void testInvalidateSession4() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        PrintWriter out = response.getWriter();
+        try {
+          s.getCreationTime();
+        } catch (IllegalStateException iex) {
+          out.write("OK");
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session does not throw an exception for subsequent
+   * getId calls.
+   */
+  @Test
+  public void testInvalidateSession5() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        s.getId();
+        PrintWriter out = response.getWriter();
+        out.write("OK");
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session throws an exception on subsequent access.
+   */
+  @Test
+  public void testInvalidateSession6() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        PrintWriter out = response.getWriter();
+        try {
+          s.getLastAccessedTime();
+        } catch (IllegalStateException iex) {
+          out.write("OK");
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session does not throw an exception for
+   * subsequent getMaxInactiveInterval calls.
+   */
+
+// I've commented this out for now as Jetty seems to want to throw an
+// Exception here where the HttpServlet api doesn't specify that.
+  @Test
+  public void testInvalidateSession7() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request,
+          HttpServletResponse response) throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        s.getMaxInactiveInterval();
+        PrintWriter out = response.getWriter();
+        out.write("OK");
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session does not throw an exception for subsequent
+   * getServletContext calls.
+   */
+  @Test
+  public void testInvalidateSession8() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        s.getServletContext();
+        PrintWriter out = response.getWriter();
+        out.write("OK");
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session throws an exception on subsequent access.
+   */
+  @Test
+  public void testInvalidateSession9() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        PrintWriter out = response.getWriter();
+        try {
+          s.isNew();
+        } catch (IllegalStateException iex) {
+          out.write("OK");
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session throws an exception on subsequent access.
+   */
+  @Test
+  public void testInvalidateSession10() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        PrintWriter out = response.getWriter();
+        try {
+          s.removeAttribute("foo");
+        } catch (IllegalStateException iex) {
+          out.write("OK");
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session throws an exception on subsequent access.
+   */
+  @Test
+  public void testInvalidateSession11() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        PrintWriter out = response.getWriter();
+        try {
+          s.setAttribute("foo", "bar");
+        } catch (IllegalStateException iex) {
+          out.write("OK");
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session does not throw an exception for subsequent
+   * setMaxInactiveInterval calls.
+   */
+  @Test
+  public void testInvalidateSession12() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        s.setMaxInactiveInterval(1);
+        PrintWriter out = response.getWriter();
+        out.write("OK");
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+  /**
+   * Test that invalidating a session results in null being returned on
+   * subsequent getSession(false) calls.
+   */
+  @Test
+  public void testInvalidateSession13() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+        s = request.getSession(false);
+        PrintWriter out = response.getWriter();
+        if (s == null) {
+          out.write("OK");
+        } else {
+          out.write(s.toString());
+        }
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+
+    servletHolder.setInitParameter("test.callback", "callback_1");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("OK", response.getContent());
+  }
+
+
+  /**
+   * Test that we can invalidate and then recreate a new session
+   */
+  @Test
+  public void testInvalidateAndRecreateSession() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+
+        PrintWriter out = response.getWriter();
+        out.write(request.getSession().getId());
+      }
+    };
+
+    Callback c_2 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.invalidate();
+
+        PrintWriter out = response.getWriter();
+        out.write(request.getSession().getId());
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+    tester.setAttribute("callback_2", c_2);
+
+    ServletHolder sh = tester.addServlet(BasicServlet.class, "/dispatch");
+    sh.setInitParameter("test.callback", "callback_2");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        sh.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    String session1 = response.getContent();
+
+    request.setHeader("Cookie", "JSESSIONID=" + session1);
+    request.setURI("/test/request2");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    String session12 = response.getContent();
+    assertFalse("First and subsequent session ids must not be the same",
+        session1.equals(session12));
+  }
+
+
+  /**
+   * Test that creation time does not change on subsequent access
+   */
+  @Test
+  public void testGetCreationTime() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession session = request.getSession();
+        PrintWriter out = response.getWriter();
+        out.write(Long.toString(session.getCreationTime()));
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    long time1 = Long.parseLong(response.getContent());
+    assertTrue("Creation time should be positive", time1 > 0);
+
+    List<Cookie> cookies = getCookies(response);
+    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
+
+    try {
+      Thread.sleep(1000);
+    } catch (Exception ex) {
+    }
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    long time2 = Long.parseLong(response.getContent());
+    assertTrue("Creation time should be the same across requests",
+        time1 == time2);
+  }
+
+  /**
+   * Test that the last accessed time is updated on subsequent access
+   */
+  @Test
+  public void testGetLastAccessedTime() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession session = request.getSession();
+        PrintWriter out = response.getWriter();
+        out.write(Long.toString(session.getLastAccessedTime()));
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    long time1 = Long.parseLong(response.getContent());
+//        assertTrue("Last accessed time should be positive", time1 > 0);
+
+    List<Cookie> cookies = getCookies(response);
+    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
+
+    Thread.sleep(1000);
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    long time2 = Long.parseLong(response.getContent());
+    assertTrue("Last accessed time should be increasing across requests",
+        time2 > time1);
+  }
+
+  /**
+   * Test that the underlying native session remains the same across requests
+   */
+  @Test
+  public void testNativeSessionRemainsUnchanged() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        GemfireHttpSession session = (GemfireHttpSession) request.getSession();
+        PrintWriter out = response.getWriter();
+        out.write(session.getNativeSession().getId());
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    String nativeSessionId = response.getContent();
+
+    List<Cookie> cookies = getCookies(response);
+    String sessionId = cookies.get(0).getValue();
+    Region r = getRegion();
+
+    assertEquals(
+        "Cached native session id does not match servlet returned native session id",
+        nativeSessionId,
+        ((GemfireHttpSession) r.get(sessionId)).getNativeSession().getId());
+
+    request.setHeader("Cookie", "JSESSIONID=" + cookies.get(0).getValue());
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals(
+        "Underlying native sessions must remain the same across requests",
+        nativeSessionId,
+        ((GemfireHttpSession) r.get(sessionId)).getNativeSession().getId());
+  }
+
+  /**
+   * Test session id embedded in the URL
+   */
+  @Test
+  public void testSessionIdEmbeddedInUrl() throws Exception {
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        GemfireHttpSession session = (GemfireHttpSession) request.getSession();
+        PrintWriter out = response.getWriter();
+        out.write(session.getId());
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    List<Cookie> cookies = getCookies(response);
+    String sessionId = response.getContent();
+    assertEquals("Session ids should be the same", sessionId,
+        cookies.get(0).getValue());
+
+    request.setURI("/test/hello;jsessionid=" + sessionId);
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    cookies = getCookies(response);
+
+    assertEquals("Session ids should be the same", sessionId,
+        cookies.get(0).getValue());
+  }
+
+
+  /**
+   * Test that request forward dispatching works
+   */
+  @Test
+  public void testDispatchingForward1() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException, ServletException {
+        RequestDispatcher dispatcher = request.getRequestDispatcher("dispatch");
+        dispatcher.forward(request, response);
+
+        // This should not appear in the output
+        PrintWriter out = response.getWriter();
+        out.write("bang");
+      }
+    };
+
+    // This is the callback used by the forward servlet
+    Callback c_2 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException, ServletException {
+        PrintWriter out = response.getWriter();
+        out.write("dispatched");
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+    tester.setAttribute("callback_2", c_2);
+
+    ServletHolder sh = tester.addServlet(BasicServlet.class, "/dispatch");
+    sh.setInitParameter("test.callback", "callback_2");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        sh.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    assertEquals("dispatched", response.getContent());
+
+//    ContextManager.getInstance().removeContext(
+//        sh.getServlet().getServletConfig().getServletContext());
+  }
+
+
+  /**
+   * Test that request include dispatching works
+   */
+  @Test
+  public void testDispatchingInclude() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException, ServletException {
+        RequestDispatcher dispatcher = request.getRequestDispatcher("dispatch");
+        dispatcher.include(request, response);
+
+        // This *should* appear in the output
+        PrintWriter out = response.getWriter();
+        out.write("_bang");
+      }
+    };
+
+    // This is the callback used by the include servlet
+    Callback c_2 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException, ServletException {
+        PrintWriter out = response.getWriter();
+        out.write("dispatched");
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+    tester.setAttribute("callback_2", c_2);
+
+    ServletHolder sh = tester.addServlet(BasicServlet.class, "/dispatch");
+    sh.setInitParameter("test.callback", "callback_2");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        sh.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    assertEquals("dispatched_bang", response.getContent());
+
+//    ContextManager.getInstance().removeContext(
+//        sh.getServlet().getServletConfig().getServletContext());
+  }
+
+
+  /**
+   * Test to try and simulate a failover scenario
+   */
+  @Test
+  public void testFailover1() throws Exception {
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException, ServletException {
+        HttpSession s = request.getSession();
+        s.setAttribute("foo", "bar");
+
+        PrintWriter out = response.getWriter();
+        out.write(request.getSession().getId());
+      }
+    };
+
+    Callback c_2 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException, ServletException {
+        HttpSession s = request.getSession();
+
+        PrintWriter out = response.getWriter();
+        out.write((String) s.getAttribute("foo"));
+      }
+    };
+
+    tester.setAttribute("callback_1", c_1);
+    tester.setAttribute("callback_2", c_2);
+
+    ServletHolder sh = tester.addServlet(BasicServlet.class, "/request2");
+    sh.setInitParameter("test.callback", "callback_2");
+
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        sh.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+    String id = response.getContent();
+
+    // Now we simulate the failover by removing the native session from
+    // the stored session
+    Region r = getRegion();
+    GemfireHttpSession sessObj = (GemfireHttpSession) r.get(id);
+    sessObj.setNativeSession(null);
+
+    r.put(id, sessObj);
+
+    request.setHeader("Cookie", "JSESSIONID=" + id);
+    request.setURI("/test/request2");
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals("bar", response.getContent());
+  }
+
+  @Test
+  public void testHttpSessionListener1() throws Exception {
+    HttpSessionListenerImpl listener = new HttpSessionListenerImpl();
+    tester.getContext().getSessionHandler().addEventListener(listener);
+
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        // This is set in HttpSessionListenerImpl
+        String result = (String) s.getAttribute("gemfire-session-id");
+        response.getWriter().write(result);
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals(200, response.getStatus());
+
+    List<Cookie> cookies = getCookies(response);
+
+//        AbstractListener listener = RendezvousManager.getListener();
+    tester.stop();
+
+    assertTrue("Timeout waiting for events",
+        listener.await(1, TimeUnit.SECONDS));
+    assertEquals(ListenerEventType.SESSION_CREATED,
+        listener.events.get(0));
+    assertEquals(ListenerEventType.SESSION_DESTROYED,
+        listener.events.get(1));
+    assertEquals(cookies.get(0).getValue(), response.getContent());
+  }
+
+  @Test
+  public void testHttpSessionListener2() throws Exception {
+    HttpSessionListenerImpl2 listener = new HttpSessionListenerImpl2();
+    tester.getContext().getSessionHandler().addEventListener(listener);
+
+    Callback c = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException {
+        HttpSession s = request.getSession();
+        s.setAttribute("test01", "test01");
+        s = request.getSession(false);
+        s.invalidate();
+        response.getWriter().write(s.getId());
+      }
+    };
+
+    tester.setAttribute("callback_1", c);
+    tester.start();
+//    ContextManager.getInstance().putContext(
+//        servletHolder.getServlet().getServletConfig().getServletContext());
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals(200, response.getStatus());
+
+    List<Cookie> cookies = getCookies(response);
+
+    tester.stop();
+
+    assertTrue("Timeout waiting for events",
+        listener.await(1, TimeUnit.SECONDS));
+    assertEquals(ListenerEventType.SESSION_CREATED,
+        listener.events.get(0));
+    assertEquals(ListenerEventType.SESSION_DESTROYED,
+        listener.events.get(1));
+    assertEquals(cookies.get(0).getValue(), response.getContent());
+  }
+
+
+
+
+//  @Test
+  public void testJsp() throws Exception {
+    tester.setResourceBase("target/test-classes");
+    ServletHolder jspHolder = tester.addServlet(JspServlet.class, "/test/*");
+    jspHolder.setInitOrder(1);
+
+    jspHolder.setInitParameter("scratchdir", tmpdir.getPath());
+
+    Callback c_1 = new Callback() {
+      @Override
+      public void call(HttpServletRequest request, HttpServletResponse response)
+          throws IOException, ServletException {
+        request.getSession().setAttribute("foo", "bar");
+        request.setAttribute("foo", "baz");
+        RequestDispatcher dispatcher = request.getRequestDispatcher(
+            "pagecontext.jsp");
+        dispatcher.forward(request, response);
+      }
+    };
+
+    tester.getContext().setClassLoader(Thread.currentThread().getContextClassLoader());
+    tester.setAttribute("callback_1", c_1);
+
+    tester.start();
+
+    request.setMethod("GET");
+    request.setURI("/test/hello");
+    request.setHeader("Host", "tester");
+    request.setVersion("HTTP/1.0");
+
+    response = HttpTester.parseResponse(tester.getResponses(request.generate()));
+
+    assertEquals(200, response.getStatus());
+    assertEquals("baz", response.getContent().trim());
+  }
+
+
+  ////////////////////////////////////////////////////////////////////
+  // Private methods
+
+  /**
+   * Why doesn't HttpTester do this already??
+   */
+  private List<Cookie> getCookies(HttpTester.Response response) {
+    List<Cookie> cookies = new ArrayList<Cookie>();
+
+    Enumeration e = response.getValues("Set-Cookie");
+
+    while (e != null && e.hasMoreElements()) {
+      String header = (String) e.nextElement();
+      Cookie c = null;
+
+      StringTokenizer st = new StringTokenizer(header, ";");
+      while (st.hasMoreTokens()) {
+        String[] split = st.nextToken().split("=");
+        String param = split[0].trim();
+        String value = null;
+        if (split.length > 1) {
+          value = split[1].trim();
+        }
+        if ("version".equalsIgnoreCase(param)) {
+          c.setVersion(Integer.parseInt(value));
+        } else if ("comment".equalsIgnoreCase(param)) {
+          c.setComment(value);
+        } else if ("domain".equalsIgnoreCase(param)) {
+          c.setDomain(value);
+        } else if ("max-age".equalsIgnoreCase(param)) {
+          c.setMaxAge(Integer.parseInt(value));
+        } else if ("discard".equalsIgnoreCase(param)) {
+          c.setMaxAge(-1);
+        } else if ("path".equalsIgnoreCase(param)) {
+          c.setPath(value);
+        } else if ("secure".equalsIgnoreCase(param)) {
+          c.setSecure(true);
+        } else if ("httponly".equalsIgnoreCase(param)) {
+          // Ignored??
+        } else {
+          if (c == null) {
+            c = new Cookie(param, value);
+          } else {
+            throw new IllegalStateException("Unknown cookie param: " + param);
+          }
+        }
+      }
+
+      if (c != null) {
+        cookies.add(c);
+      }
+    }
+
+    return cookies;
+  }
+
+  private Region getRegion() {
+    // Yuck...
+    return ((GemfireSessionManager) ((SessionCachingFilter) filterHolder.getFilter()).getSessionManager()).getCache().getCache().getRegion(
+        "gemfire_modules_sessions");
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationJUnitTest.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationJUnitTest.java
new file mode 100644
index 0000000..ba4cbd9
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationJUnitTest.java
@@ -0,0 +1,53 @@
+/*
+* 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.modules.session.filter.SessionCachingFilter;
+import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import com.mockrunner.mock.web.MockFilterConfig;
+import com.mockrunner.mock.web.WebMockObjectFactory;
+import org.junit.Before;
+import org.junit.experimental.categories.Category;
+
+/**
+ * This runs all tests with a local cache disabled
+ */
+@Category(IntegrationTest.class)
+public class SessionReplicationJUnitTest extends CommonTests {
+
+  @Before
+  public void setUp() throws Exception {
+    super.setUp();
+
+    WebMockObjectFactory factory = getWebMockObjectFactory();
+    MockFilterConfig config = factory.getMockFilterConfig();
+
+    config.setInitParameter("gemfire.property.mcast-port", "0");
+    config.setInitParameter("cache-type", "peer-to-peer");
+
+    factory.getMockServletContext().setContextPath(CONTEXT_PATH);
+
+    factory.getMockRequest().setRequestURL("/test/foo/bar");
+    factory.getMockRequest().setContextPath(CONTEXT_PATH);
+
+    createFilter(SessionCachingFilter.class);
+    createServlet(CallbackServlet.class);
+
+    setDoChain(true);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationLocalCacheJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationLocalCacheJUnitTest.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationLocalCacheJUnitTest.java
new file mode 100644
index 0000000..4016c7c
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/internal/filter/SessionReplicationLocalCacheJUnitTest.java
@@ -0,0 +1,54 @@
+/*
+* 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.modules.session.filter.SessionCachingFilter;
+import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import com.mockrunner.mock.web.MockFilterConfig;
+import com.mockrunner.mock.web.WebMockObjectFactory;
+import org.junit.Before;
+import org.junit.experimental.categories.Category;
+
+/**
+ * This runs all tests with a local cache enabled
+ */
+@Category(IntegrationTest.class)
+public class SessionReplicationLocalCacheJUnitTest extends CommonTests {
+
+  @Before
+  public void setUp() throws Exception {
+    super.setUp();
+
+    WebMockObjectFactory factory = getWebMockObjectFactory();
+    MockFilterConfig config = factory.getMockFilterConfig();
+
+    config.setInitParameter("gemfire.property.mcast-port", "0");
+    config.setInitParameter("cache-type", "peer-to-peer");
+    config.setInitParameter("gemfire.cache.enable_local_cache", "true");
+
+    factory.getMockServletContext().setContextPath(CONTEXT_PATH);
+
+    factory.getMockRequest().setRequestURL("/test/foo/bar");
+    factory.getMockRequest().setContextPath(CONTEXT_PATH);
+
+    createFilter(SessionCachingFilter.class);
+    createServlet(CallbackServlet.class);
+
+    setDoChain(true);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/ChildFirstClassLoader.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/ChildFirstClassLoader.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/ChildFirstClassLoader.java
new file mode 100644
index 0000000..dd4441b
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/ChildFirstClassLoader.java
@@ -0,0 +1,86 @@
+/*
+* 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.junit;
+
+import java.net.URL;
+import java.net.URLClassLoader;
+
+public class ChildFirstClassLoader extends URLClassLoader {
+
+  public ChildFirstClassLoader() {
+    super(new URL[]{});
+  }
+
+  public ChildFirstClassLoader(URL[] urls) {
+    super(urls);
+  }
+
+  public ChildFirstClassLoader(URL[] urls, ClassLoader parent) {
+    super(urls, parent);
+  }
+
+  @Override
+  public void addURL(URL url) {
+    super.addURL(url);
+  }
+
+  @Override
+  public Class loadClass(String name) throws ClassNotFoundException {
+    return loadClass(name, false);
+  }
+
+  /**
+   * We override the parent-first behavior established by
+   * java.lang.Classloader.
+   */
+  @Override
+  protected Class loadClass(String name, boolean resolve)
+      throws ClassNotFoundException {
+    Class c = null;
+
+    if (name.startsWith("com.gemstone")) {
+      // First, check if the class has already been loaded
+      c = findLoadedClass(name);
+
+      // if not loaded, search the local (child) resources
+      if (c == null) {
+        try {
+          c = findClass(name);
+        } catch (ClassNotFoundException cnfe) {
+          // ignore
+        }
+      }
+    }
+
+    // if we could not find it, delegate to parent
+    // Note that we don't attempt to catch any ClassNotFoundException
+    if (c == null) {
+      if (getParent() != null) {
+        c = getParent().loadClass(name);
+      } else {
+        c = getSystemClassLoader().loadClass(name);
+      }
+    }
+
+    if (resolve) {
+      resolveClass(c);
+    }
+
+    return c;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/NamedRunner.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/NamedRunner.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/NamedRunner.java
new file mode 100644
index 0000000..e717c9a
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/NamedRunner.java
@@ -0,0 +1,120 @@
+/*
+* 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.junit;
+
+import org.junit.runner.notification.RunNotifier;
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.InitializationError;
+
+/**
+ * A Junit 4 runner that stores the name of the method that runs.  The methods
+ * marked with @After and @Before (but also the Test method itself) can request
+ * this name for which it is running.
+ *
+ * @author Rudy De Busscher
+ */
+public class NamedRunner extends BlockJUnit4ClassRunner {
+
+  /**
+   * The Constant PREFIX_KEY.
+   */
+  private static final String PREFIX_KEY = "ClassLoaderRunner_TestMethodName_";
+
+  /**
+   * The Constant NO_NAME.
+   */
+  private static final String NO_NAME = "null";
+
+  /**
+   * Instantiates a new named runner.
+   *
+   * @param klass the klass
+   * @throws InitializationError the initialization error
+   */
+  public NamedRunner(Class<?> klass) throws InitializationError {
+    super(klass);
+  }
+
+  @Override
+  protected void runChild(FrameworkMethod method, RunNotifier notifier)
+
+  {
+    storeTestMethodName(method.getName());
+    super.runChild(method, notifier);
+    removeTestMethodName();
+  }
+
+  /**
+   * Gets the test method name.
+   *
+   * @return the test method name
+   */
+  public static String getTestMethodName() {
+    return retrieveTestMethodName();
+  }
+
+  /**
+   * Retrieve test method name.
+   *
+   * @return the string
+   */
+  private static String retrieveTestMethodName() {
+    // We can't use a ThreadLocal variable in the case the TestPerClassLoader runner is used.  Then this
+    // Method is accessed from another classloader and thus reinitialized variables.
+    String result = null;
+    String storedName = System.getProperty(getKey());
+    if (!NO_NAME.equals(storedName)) {
+      result = storedName;
+    }
+    return result;
+  }
+
+  /**
+   * Removes the test method name.
+   */
+  private static void removeTestMethodName() {
+    // We can't use a ThreadLocal variable in the case the TestPerClassLoader runner is used.  Then this
+    // Method is accessed from another classloader and thus reinitialized variables.
+    System.setProperty(getKey(), NO_NAME);
+
+  }
+
+  /**
+   * Store test method name.
+   *
+   * @param name the name
+   */
+  private static void storeTestMethodName(String name) {
+
+    // We can't use a ThreadLocal variable in the case the TestPerClassLoader runner is used.  Then this
+    // Method is accessed from another classloader and thus reinitialized variables.
+    System.setProperty(getKey(), name);
+  }
+
+  /**
+   * Gets the key.
+   *
+   * @return the key
+   */
+  private static String getKey() {
+    StringBuffer buffer = new StringBuffer();
+    buffer.append(PREFIX_KEY).append(Thread.currentThread().getName());
+    return buffer.toString();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/PerTestClassLoaderRunner.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/PerTestClassLoaderRunner.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/PerTestClassLoaderRunner.java
new file mode 100644
index 0000000..3e5c998
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/PerTestClassLoaderRunner.java
@@ -0,0 +1,283 @@
+/*
+* 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.junit;
+
+/**
+ * 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
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * 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.
+ */
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.internal.runners.statements.Fail;
+import org.junit.internal.runners.statements.RunAfters;
+import org.junit.internal.runners.statements.RunBefores;
+import org.junit.runners.model.FrameworkMethod;
+import org.junit.runners.model.InitializationError;
+import org.junit.runners.model.Statement;
+import org.junit.runners.model.TestClass;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.util.logging.Logger;
+
+public class PerTestClassLoaderRunner extends NamedRunner {
+  private static final Logger LOGGER = Logger
+      .getLogger(PerTestClassLoaderRunner.class.getName());
+
+  // The classpath is needed because the custom class loader looks there to find the classes.
+  private static String classPath;
+  private static boolean classPathDetermined = false;
+
+  // Some data related to the class from the custom class loader.
+  private TestClass testClassFromClassLoader;
+  private Object beforeFromClassLoader;
+  private Object afterFromClassLoader;
+
+  /**
+   * Instantiates a new test per class loader runner.
+   *
+   * @param klass the klass
+   * @throws InitializationError the initialization error
+   */
+  public PerTestClassLoaderRunner(Class<?> klass) throws InitializationError {
+    super(klass);
+  }
+
+  @Override
+  protected Object createTest() throws Exception {
+    // Need an instance now from the class loaded by the custom loader.
+    return testClassFromClassLoader.getJavaClass().newInstance();
+  }
+
+  /**
+   * Load classes (TestCase, @Before and @After with custom class loader.
+   *
+   * @throws ClassNotFoundException the class not found exception
+   */
+  private void loadClassesWithCustomClassLoader()
+      throws ClassNotFoundException {
+    String classPath = System.getProperty("java.class.path");
+    StringTokenizer st = new StringTokenizer(classPath, ":");
+    List<URL> urls = new ArrayList<URL>();
+    while (st.hasMoreTokens()) {
+      String u = st.nextToken();
+      try {
+        if (!u.endsWith(".jar")) {
+          u += "/";
+        }
+        URL url = new URL("file://" + u);
+        urls.add(url);
+      } catch (MalformedURLException e) {
+        e.printStackTrace();
+      }
+    }
+
+    ClassLoader classLoader = new ChildFirstClassLoader(
+        urls.toArray(new URL[]{}),
+        Thread.currentThread().getContextClassLoader()
+    );
+
+    Thread.currentThread().setContextClassLoader(classLoader);
+
+    testClassFromClassLoader = new TestClass(classLoader
+        .loadClass(getTestClass().getJavaClass().getName()));
+    // See withAfters and withBefores for the reason.
+    beforeFromClassLoader = classLoader.loadClass(Before.class.getName());
+    afterFromClassLoader = classLoader.loadClass(After.class.getName());
+  }
+
+  @Override
+  protected Statement methodBlock(FrameworkMethod method) {
+    FrameworkMethod newMethod = null;
+    try {
+      // Need the class from the custom loader now, so lets load the class.
+      loadClassesWithCustomClassLoader();
+      // The method as parameter is from the original class and thus not found in our
+      // class loaded by the custom name (reflection is class loader sensitive)
+      // So find the same method but now in the class from the class Loader.
+      Method methodFromNewlyLoadedClass = testClassFromClassLoader
+          .getJavaClass().getMethod(method.getName());
+      newMethod = new FrameworkMethod(methodFromNewlyLoadedClass);
+    } catch (ClassNotFoundException e) {
+      // Show any problem nicely as a JUnit Test failure.
+      return new Fail(e);
+    } catch (SecurityException e) {
+      return new Fail(e);
+    } catch (NoSuchMethodException e) {
+      return new Fail(e);
+    }
+
+    // We can carry out the normal JUnit functionality with our newly discovered method now.
+    return super.methodBlock(newMethod);
+  }
+
+  @SuppressWarnings("unchecked")
+  @Override
+  protected Statement withAfters(FrameworkMethod method, Object target,
+      Statement statement) {
+    // We now to need to search in the class from the custom loader.
+    // We also need to search with the annotation loaded by the custom
+    // class loader or otherwise we don't find any method.
+    List<FrameworkMethod> afters = testClassFromClassLoader
+        .getAnnotatedMethods(
+            (Class<? extends Annotation>) afterFromClassLoader);
+    return new RunAfters(statement, afters, target);
+  }
+
+  @SuppressWarnings("unchecked")
+  @Override
+  protected Statement withBefores(FrameworkMethod method, Object target,
+      Statement statement) {
+    // We now to need to search in the class from the custom loader.
+    // We also need to search with the annotation loaded by the custom
+    // class loader or otherwise we don't find any method.
+    List<FrameworkMethod> befores = testClassFromClassLoader
+        .getAnnotatedMethods(
+            (Class<? extends Annotation>) beforeFromClassLoader);
+    return new RunBefores(statement, befores, target);
+  }
+
+//    /**
+//     * Gets the class path. This value is cached in a static variable for performance reasons.
+//     *
+//     * @return the class path
+//     */
+//    private static String getClassPath()
+//    {
+//        if (classPathDetermined)
+//        {
+//            return classPath;
+//        }
+//
+//        classPathDetermined = true;
+//        // running from maven, we have the classpath in this property.
+//        classPath = System.getProperty("surefire.test.class.path");
+//        if (classPath != null)
+//        {
+//            return classPath;
+//        }
+//
+//        // For a multi module project, running it from the top we have to find it using another way.
+//        // We also need to set useSystemClassLoader=true in the POM so that we gets a jar with the classpath in it.
+//        String booterClassPath = System.getProperty("java.class.path");
+//        Vector<String> pathItems = null;
+//        if (booterClassPath != null)
+//        {
+//            pathItems = scanPath(booterClassPath);
+//        }
+//        // Do we have just 1 entry as classpath which is a jar?
+//        if (pathItems != null && pathItems.size() == 1
+//                && isJar((String) pathItems.get(0)))
+//        {
+//            classPath = loadJarManifestClassPath((String) pathItems.get(0),
+//                    "META-INF/MANIFEST.MF");
+//        }
+//        return classPath;
+//
+//    }
+
+//    /**
+//     * Load jar manifest class path.
+//     *
+//     * @param path the path
+//     * @param fileName the file name
+//     *
+//     * @return the string
+//     */
+//    private static String loadJarManifestClassPath(String path, String fileName)
+//    {
+//        File archive = new File(path);
+//        if (!archive.exists()) {
+//            return null;
+//        }
+//        ZipFile zipFile = null;
+//
+//        try {
+//            zipFile = new ZipFile(archive);
+//        } catch (IOException io) {
+//            return null;
+//        }
+//
+//        ZipEntry entry = zipFile.getEntry(fileName);
+//        if (entry == null) {
+//            return null;
+//        } try {
+//            Manifest mf = new Manifest();
+//            mf.read(zipFile.getInputStream(entry));
+//
+//            return mf.getMainAttributes().getValue(Attributes.Name.CLASS_PATH)
+//                    .replaceAll(" ", System.getProperty("path.separator"))
+//                    .replaceAll("file:/", "");
+//        } catch (MalformedURLException e) {
+//            LOGGER.throwing("ClassLoaderTestSuite", "loadJarManifestClassPath", e);
+//        } catch (IOException e) {
+//            LOGGER.throwing("ClassLoaderTestSuite", "loadJarManifestClassPath", e);
+//        }
+//        return null;
+//    }
+//
+//    /**
+//     * Checks if is jar.
+//     *
+//     * @param pathEntry the path entry
+//     *
+//     * @return true, if is jar
+//     */
+//    private static boolean isJar(String pathEntry)
+//    {
+//        return pathEntry.endsWith(".jar") || pathEntry.endsWith(".zip");
+//    }
+//
+//    /**
+//     * Scan path for all directories.
+//     *
+//     * @param classPath the class path
+//     *
+//     * @return the vector< string>
+//     */
+//    private static Vector<String> scanPath(String classPath)
+//    {
+//        String separator = System.getProperty("path.separator");
+//        Vector<String> pathItems = new Vector<String>(10);
+//        StringTokenizer st = new StringTokenizer(classPath, separator);
+//        while (st.hasMoreTokens())
+//        {
+//            pathItems.addElement(st.nextToken());
+//        }
+//        return pathItems;
+//    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/SeparateClassloaderTestRunner.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/SeparateClassloaderTestRunner.java b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/SeparateClassloaderTestRunner.java
new file mode 100644
index 0000000..4337f5a
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/java/com/gemstone/gemfire/modules/session/junit/SeparateClassloaderTestRunner.java
@@ -0,0 +1,56 @@
+/*
+* 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.junit;
+
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junit.runners.model.InitializationError;
+
+import java.net.URLClassLoader;
+
+/**
+ * @author StackOverflow
+ */
+public class SeparateClassloaderTestRunner extends BlockJUnit4ClassRunner {
+
+  public SeparateClassloaderTestRunner(Class<?> clazz) throws InitializationError {
+    super(getFromTestClassloader(clazz));
+  }
+
+  private static Class<?> getFromTestClassloader(Class<?> clazz) throws InitializationError {
+    try {
+      ClassLoader testClassLoader = new TestClassLoader();
+      return Class.forName(clazz.getName(), true, testClassLoader);
+    } catch (ClassNotFoundException e) {
+      throw new InitializationError(e);
+    }
+  }
+
+  public static class TestClassLoader extends URLClassLoader {
+    public TestClassLoader() {
+      super(((URLClassLoader)getSystemClassLoader()).getURLs());
+    }
+
+    @Override
+    public Class<?> loadClass(String name) throws ClassNotFoundException {
+      if (name.startsWith("com.gemstone.gemfire.modules.session.")) {
+        return super.findClass(name);
+      }
+      return super.loadClass(name);
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/test/resources/log4j.properties b/extensions/geode-modules-session/src/test/resources/log4j.properties
new file mode 100644
index 0000000..b346714
--- /dev/null
+++ b/extensions/geode-modules-session/src/test/resources/log4j.properties
@@ -0,0 +1,12 @@
+# To change this template, choose Tools | Templates
+# and open the template in the editor.
+
+# Set root logger level to DEBUG and its only appender to A1.
+log4j.rootLogger=DEBUG, A1
+
+# A1 is set to be a ConsoleAppender.
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-tomcat7/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-tomcat7/build.gradle b/extensions/geode-modules-tomcat7/build.gradle
new file mode 100644
index 0000000..c45fa48
--- /dev/null
+++ b/extensions/geode-modules-tomcat7/build.gradle
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+
+test  {
+  doFirst {
+    copy {
+      from 'build/resources/test/tomcat'
+      into 'build/test/tomcat/'
+    }
+  }
+}
+
+dependencies {
+  compile(project(':extensions/geode-modules')) {
+    // Remove everything related to Tomcat 6.x
+    exclude group: 'org.apache.tomcat'
+  }
+
+  compile 'org.apache.tomcat:tomcat-api:' + project.'tomcat7.version'
+  compile 'org.apache.tomcat:tomcat-catalina:' + project.'tomcat7.version'
+  compile 'org.apache.tomcat:tomcat-coyote:' + project.'tomcat7.version'
+  compile 'org.apache.tomcat:tomcat-util:' + project.'tomcat7.version'
+  compile 'org.apache.tomcat:tomcat-juli:' + project.'tomcat7.version'
+
+  testCompile 'org.httpunit:httpunit:' + project.'httpunit.version'
+
+  testRuntime 'javax.annotation:jsr250-api:' + project.'javax.jsr250-api.version'
+  testRuntime 'javax.ejb:ejb-api:' + project.'javax.ejb-api.version'
+  testRuntime 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version'
+  testRuntime 'org.eclipse.persistence:javax.persistence:' + project.'javax.persistence-api.version'
+
+  provided(project(path: ':extensions/geode-modules', configuration: 'testOutput')) {
+    // Remove everything related to Tomcat 6.x
+    exclude group: 'org.apache.tomcat', module: 'catalina'
+    exclude group: 'org.apache.tomcat', module: 'catalina-ha'
+    exclude group: 'org.apache.tomcat', module: 'juli'
+  }
+  testCompile project(path: ':geode-junit')
+  provided project(path: ':geode-core', configuration: 'testOutput')
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-tomcat7/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat7DeltaSessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-tomcat7/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat7DeltaSessionManager.java b/extensions/geode-modules-tomcat7/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat7DeltaSessionManager.java
new file mode 100644
index 0000000..d1f44bb
--- /dev/null
+++ b/extensions/geode-modules-tomcat7/src/main/java/com/gemstone/gemfire/modules/session/catalina/Tomcat7DeltaSessionManager.java
@@ -0,0 +1,112 @@
+/*
+* 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.catalina;
+
+import org.apache.catalina.LifecycleException;
+import org.apache.catalina.LifecycleState;
+
+import java.io.IOException;
+
+public class Tomcat7DeltaSessionManager extends DeltaSessionManager {
+
+  /**
+   * Prepare for the beginning of active use of the public methods of this component.  This method should be called
+   * after <code>configure()</code>, and before any of the public methods of the component are utilized.
+   *
+   * @throws LifecycleException if this component detects a fatal error that prevents this component from being used
+   */
+  @Override
+  public void startInternal() throws LifecycleException {
+    super.startInternal();
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Starting");
+    }
+    if (this.started.get()) {
+      return;
+    }
+
+    this.lifecycle.fireLifecycleEvent(START_EVENT, null);
+
+    // Register our various valves
+    registerJvmRouteBinderValve();
+
+    if (isCommitValveEnabled()) {
+      registerCommitSessionValve();
+    }
+
+    // Initialize the appropriate session cache interface
+    initializeSessionCache();
+
+    try {
+      load();
+    } catch (ClassNotFoundException e) {
+      throw new LifecycleException("Exception starting manager", e);
+    } catch (IOException e) {
+      throw new LifecycleException("Exception starting manager", e);
+    }
+
+    // Create the timer and schedule tasks
+    scheduleTimerTasks();
+
+    this.started.set(true);
+    this.setState(LifecycleState.STARTING);
+  }
+
+  /**
+   * Gracefully terminate the active use of the public methods of this component.  This method should be the last one
+   * called on a given instance of this component.
+   *
+   * @throws LifecycleException if this component detects a fatal error that needs to be reported
+   */
+  @Override
+  public void stopInternal() throws LifecycleException {
+    super.stopInternal();
+    if (getLogger().isDebugEnabled()) {
+      getLogger().debug(this + ": Stopping");
+    }
+
+    try {
+      unload();
+    } catch (IOException e) {
+      getLogger().error("Unable to unload sessions", e);
+    }
+
+    this.started.set(false);
+    this.lifecycle.fireLifecycleEvent(STOP_EVENT, null);
+
+    // StandardManager expires all Sessions here.
+    // All Sessions are not known by this Manager.
+
+    super.destroyInternal();
+
+    // Clear any sessions to be touched
+    getSessionsToTouch().clear();
+
+    // Cancel the timer
+    cancelTimer();
+
+    // Unregister the JVM route valve
+    unregisterJvmRouteBinderValve();
+
+    if (isCommitValveEnabled()) {
+      unregisterCommitSessionValve();
+    }
+
+    this.setState(LifecycleState.STOPPING);
+  }
+
+}


[17/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupDataStoreHelper.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupDataStoreHelper.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupDataStoreHelper.java
deleted file mode 100644
index 58a66bc..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupDataStoreHelper.java
+++ /dev/null
@@ -1,76 +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.admin.internal;
-
-import java.io.File;
-import java.util.Map;
-import java.util.Set;
-
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedLockService;
-import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.internal.Assert;
-
-public class BackupDataStoreHelper {
-
-  public static String LOCK_SERVICE_NAME = BackupDataStoreHelper.class.getSimpleName();
-
-  private static String LOCK_NAME = LOCK_SERVICE_NAME + "_token";
-  
-  private static Object LOCK_SYNC = new Object();
-
-  @SuppressWarnings("rawtypes")
-  public static BackupDataStoreResult backupAllMembers(
-      DM dm, Set recipients, File targetDir, File baselineDir) {
-    FlushToDiskRequest.send(dm, recipients);
-
-    boolean abort= true;
-    Map<DistributedMember, Set<PersistentID>> successfulMembers;
-    Map<DistributedMember, Set<PersistentID>> existingDataStores;
-    try {
-      existingDataStores = PrepareBackupRequest.send(dm, recipients);
-      abort = false;
-    } finally {
-      successfulMembers = FinishBackupRequest.send(dm, recipients, targetDir, baselineDir, abort);
-    }
-    return new BackupDataStoreResult(existingDataStores, successfulMembers);
-  }
-  
-  private static DistributedLockService getLockService(DM dm) {
-    DistributedLockService dls = DistributedLockService.getServiceNamed(LOCK_SERVICE_NAME);
-    if (dls == null) {
-      synchronized (LOCK_SYNC) {
-        dls = DistributedLockService.getServiceNamed(LOCK_SERVICE_NAME);
-        if (dls == null) {
-          // Create the DistributedLockService
-          dls = DistributedLockService.create(LOCK_SERVICE_NAME, dm.getSystem());
-        }
-      }
-    }
-    Assert.assertTrue(dls != null);
-    return dls;
-  }
-  
-  public static boolean obtainLock(DM dm) {
-    return getLockService(dm).lock(LOCK_NAME, 0, -1);
-  }
-  
-  public static void releaseLock(DM dm) {
-    getLockService(dm).unlock(LOCK_NAME);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupDataStoreResult.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupDataStoreResult.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupDataStoreResult.java
deleted file mode 100644
index b939f75..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupDataStoreResult.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.admin.internal;
-
-import java.util.Map;
-import java.util.Set;
-
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedMember;
-
-public class BackupDataStoreResult {
-  
-  private Map<DistributedMember, Set<PersistentID>> existingDataStores;
-
-  private Map<DistributedMember, Set<PersistentID>> successfulMembers;
-
-  public BackupDataStoreResult(
-      Map<DistributedMember, Set<PersistentID>> existingDataStores,
-      Map<DistributedMember, Set<PersistentID>> successfulMembers) {
-    this.existingDataStores = existingDataStores;
-    this.successfulMembers = successfulMembers;
-  }
-
-  public Map<DistributedMember, Set<PersistentID>> getExistingDataStores() {
-    return this.existingDataStores;
-  }
-
-  public Map<DistributedMember, Set<PersistentID>> getSuccessfulMembers() {
-    return this.successfulMembers;
-  }
-  
-  public String toString() {
-    return new StringBuilder()
-      .append(getClass().getSimpleName())
-      .append("[")
-      .append("existingDataStores=")
-      .append(this.existingDataStores)
-      .append("; successfulMembers=")
-      .append(this.successfulMembers)
-      .append("]")
-      .toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupStatusImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupStatusImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupStatusImpl.java
deleted file mode 100644
index aee056e..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/BackupStatusImpl.java
+++ /dev/null
@@ -1,62 +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.admin.internal;
-
-import java.io.Serializable;
-import java.util.Map;
-import java.util.Set;
-
-import com.gemstone.gemfire.admin.BackupStatus;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedMember;
-
-/**
- * Holds the result of a backup operation.
- * 
- * @author dsmith
- *
- */
-public class BackupStatusImpl implements BackupStatus, Serializable {
-  private static final long serialVersionUID = 3704162840296921840L;
-  
-  private Map<DistributedMember, Set<PersistentID>> backedUpDiskStores;
-  private Set<PersistentID> offlineDiskStores;
-  
-  public BackupStatusImpl(
-      Map<DistributedMember, Set<PersistentID>> backedUpDiskStores,
-      Set<PersistentID> offlineDiskStores) {
-    super();
-    this.backedUpDiskStores = backedUpDiskStores;
-    this.offlineDiskStores = offlineDiskStores;
-  }
-
-  public Map<DistributedMember, Set<PersistentID>> getBackedUpDiskStores() {
-    return backedUpDiskStores;
-  }
-
-  public Set<PersistentID> getOfflineDiskStores() {
-    return offlineDiskStores;
-  }
-
-  @Override
-  public String toString() {
-    return "BackupStatus[backedUpDiskStores=" + backedUpDiskStores + ", offlineDiskStores=" + offlineDiskStores + "]"; 
-  }
-  
-  
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheHealthConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheHealthConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheHealthConfigImpl.java
deleted file mode 100644
index 127fe21..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheHealthConfigImpl.java
+++ /dev/null
@@ -1,92 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-
-/**
- * The implementation of <code>CacheHealthConfig</code>
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-public abstract class CacheHealthConfigImpl
-  extends MemberHealthConfigImpl implements CacheHealthConfig {
-
-  /** The maximum number of milliseconds a
-   * <code>netSearch</code> operation can take before the cache member
-   * is considered to be unhealthy. */
-  private long maxNetSearchTime = DEFAULT_MAX_NET_SEARCH_TIME;
-
-  /** The maximum mumber of milliseconds a cache
-   * <code>load</code> operation can take before the cache member is
-   * considered to be unhealthy. */
-  private long maxLoadTime = DEFAULT_MAX_LOAD_TIME;
-
-  /** The minimum hit ratio of a healthy cache member. */
-  private double minHitRatio = DEFAULT_MIN_HIT_RATIO;
-
-  /** The maximum number of entries in the event delivery queue
-   * of a healthy cache member. */
-  private long maxEventQueueSize = DEFAULT_MAX_EVENT_QUEUE_SIZE;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>CacheHealthConfigImpl</code> with the default
-   * configuration.
-   */
-  CacheHealthConfigImpl() {
-
-  }
-
-  //////////////////////  Instance Methods  /////////////////////
-
-  public long getMaxNetSearchTime() {
-    return this.maxNetSearchTime;
-  }
-
-  public void setMaxNetSearchTime(long maxNetSearchTime) {
-    this.maxNetSearchTime = maxNetSearchTime;
-  }
-
-  public long getMaxLoadTime() {
-    return this.maxLoadTime;
-  }
-
-  public void setMaxLoadTime(long maxLoadTime) {
-    this.maxLoadTime = maxLoadTime;
-  }
-
-  public double getMinHitRatio() {
-    return this.minHitRatio;
-  }
-
-  public void setMinHitRatio(double minHitRatio) {
-    this.minHitRatio = minHitRatio;
-  }
-
-  public long getMaxEventQueueSize() {
-    return this.maxEventQueueSize;
-  }
-
-  public void setMaxEventQueueSize(long maxEventQueueSize) {
-    this.maxEventQueueSize = maxEventQueueSize;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheHealthEvaluator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheHealthEvaluator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheHealthEvaluator.java
deleted file mode 100644
index 7df4b85..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheHealthEvaluator.java
+++ /dev/null
@@ -1,324 +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.admin.internal;
-
-import java.util.List;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.admin.CacheHealthConfig;
-import com.gemstone.gemfire.admin.GemFireHealthConfig;
-import com.gemstone.gemfire.cache.CacheFactory;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
-import com.gemstone.gemfire.internal.OSProcess;
-import com.gemstone.gemfire.internal.cache.CacheLifecycleListener;
-import com.gemstone.gemfire.internal.cache.CachePerfStats;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * Contains the logic for evaluating the health of a GemFire
- * <code>Cache</code> instance according to the thresholds provided in
- * a {@link CacheHealthConfig}.
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-class CacheHealthEvaluator extends AbstractHealthEvaluator 
-  implements CacheLifecycleListener {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** The config from which we get the evaulation criteria */
-  private CacheHealthConfig config;
-
-  /** The description of the cache being evaluated */
-  private String description;
-
-  /** Statistics about the <code>Cache</code> instance.  If no cache
-   * has been created in this VM, this field will be <code>null</code>
-   */
-  private CachePerfStats cacheStats;
-
-  /** The previous value of the netsearchTime stat (in nanoseconds) */
-  private long prevNetsearchTime;
-
-  /** The previous value of the netsearchedCompleted stat */
-  private long prevNetsearchesCompleted;
-
-  /** The previous value of the loadTime stat (in nanoseconds) */
-  private long prevLoadTime;
-
-  /** The previous value of the loadedCompleted stat */
-  private long prevLoadsCompleted;
-
-  /** The previous value of the gets stat */
-  private long prevGets;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>CacheHealthEvaluator</code>
-   */
-  CacheHealthEvaluator(GemFireHealthConfig config,
-                       DM dm) {
-    super(config, dm);
-
-    this.config = config;
-    InternalDistributedSystem system = dm.getSystem();
-    GemFireCacheImpl cache;
-    try {
-      cache = (GemFireCacheImpl) CacheFactory.getInstance(system);
-
-    } catch (CancelException ex) {
-      // No cache in this VM
-      cache = null;
-    }
-
-    initialize(cache, dm);
-    GemFireCacheImpl.addCacheLifecycleListener(this);
-  }
-
-  ////////////////////  Instance Methods  ////////////////////
-
-  @Override
-  protected String getDescription() {
-    return this.description;
-  }
-
-  /**
-   * Initializes the state of this evaluator based on the given cache
-   * instance. 
-   */
-  private void initialize(GemFireCacheImpl cache, DM dm) {
-    StringBuffer sb = new StringBuffer();
-    if (cache != null) {
-      this.cacheStats = cache.getCachePerfStats();
-
-      sb.append("Cache \"");
-      sb.append(cache.getName());
-      sb.append("\"");
-
-    } else {
-      sb.append("No Cache");
-    }
-
-    sb.append(" in member ");
-    sb.append(dm.getId());
-    int pid = OSProcess.getId();
-    if (pid != 0) {
-      sb.append(" with pid ");
-      sb.append(pid);
-    }
-    this.description = sb.toString();
-  }
-
-  public void cacheCreated(GemFireCacheImpl cache) {
-    InternalDistributedSystem system =
-      (InternalDistributedSystem) cache.getDistributedSystem();
-    DM dm = system.getDistributionManager();
-    initialize(cache, dm);
-  }
-
-  /**
-   * Checks to make sure that the average <code>netSearch</code> time
-   * during the previous health check interval is less than the
-   * {@linkplain CacheHealthConfig#getMaxNetSearchTime threshold}.  If
-   * not, the status is "okay" health.
-   *
-   * @see CachePerfStats#getNetsearchTime
-   * @see CachePerfStats#getNetsearchesCompleted
-   */
-  void checkNetSearchTime(List status) {
-    if (this.cacheStats == null || isFirstEvaluation() ||
-        this.cacheStats.isClosed()) {
-      return;
-    }
-
-    long deltaNetsearchTime =
-      this.cacheStats.getNetsearchTime() - this.prevNetsearchTime;
-    long deltaNetsearchesCompleted =
-      this.cacheStats.getNetsearchesCompleted() -
-      this.prevNetsearchesCompleted;
-
-    if (deltaNetsearchesCompleted != 0) {
-      long ratio = deltaNetsearchTime / deltaNetsearchesCompleted;
-      ratio /= 1000000;
-      long threshold = this.config.getMaxNetSearchTime();
-        
-      if (ratio > threshold) {
-        String s = LocalizedStrings.CacheHealthEvaluator_THE_AVERAGE_DURATION_OF_A_CACHE_NETSEARCH_0_MS_EXCEEDS_THE_THRESHOLD_1_MS.toLocalizedString(new Object[] { ratio, threshold });
-        status.add(okayHealth(s));
-      }
-    }
-  }
-
-  /**
-   * Checks to make sure that the average <code>load</code> time
-   * during the previous health check interval is less than the
-   * {@linkplain CacheHealthConfig#getMaxLoadTime threshold}.  If
-   * not, the status is "okay" health.
-   *
-   * @see CachePerfStats#getLoadTime
-   * @see CachePerfStats#getLoadsCompleted
-   */
-  void checkLoadTime(List status) {
-    if (this.cacheStats == null || isFirstEvaluation() ||
-        this.cacheStats.isClosed()) {
-      return;
-    }
-
-    if (!isFirstEvaluation()) {
-      long deltaLoadTime =
-        this.cacheStats.getLoadTime() - this.prevLoadTime;
-      long deltaLoadsCompleted =
-        this.cacheStats.getLoadsCompleted() -
-        this.prevLoadsCompleted;
-
-      if (logger.isDebugEnabled()) {
-        logger.debug("Completed {} loads in {} ms", deltaLoadsCompleted, (deltaLoadTime / 1000000));
-      }
-
-      if (deltaLoadsCompleted != 0) {
-        long ratio = deltaLoadTime / deltaLoadsCompleted;
-        ratio /= 1000000;
-        long threshold = this.config.getMaxLoadTime();
-        
-        if (ratio > threshold) {
-          String s = LocalizedStrings.CacheHealthEvaluator_THE_AVERAGE_DURATION_OF_A_CACHE_LOAD_0_MS_EXCEEDS_THE_THRESHOLD_1_MS.toLocalizedString(new Object[] { ratio, threshold });
-          if (logger.isDebugEnabled()) {
-            logger.debug(s);
-          }
-          status.add(okayHealth(s));
-        }
-      }
-    }
-  }
-
-  /**
-   * Checks to make sure that the cache hit ratio during the previous
-   * health check interval is less than the {@linkplain
-   * CacheHealthConfig#getMinHitRatio threshold}.  If not, the status
-   * is "okay" health.
-   *
-   * <P>
-   *
-   * The following formula is used to compute the hit ratio:
-   *
-   * <PRE>
-   * hitRatio = (gets - (loadsCompleted + netsearchesCompleted)) / (gets)
-   * </PRE>
-   *
-   *
-   * @see CachePerfStats#getGets
-   * @see CachePerfStats#getLoadsCompleted
-   * @see CachePerfStats#getNetsearchesCompleted
-   */
-  void checkHitRatio(List status) {
-    if (this.cacheStats == null || isFirstEvaluation() ||
-        this.cacheStats.isClosed()) {
-      return;
-    }
-
-    long deltaGets = this.cacheStats.getGets() - this.prevGets;
-    if (deltaGets != 0) {
-      long deltaLoadsCompleted =
-        this.cacheStats.getLoadsCompleted() - this.prevLoadsCompleted;
-      long deltaNetsearchesCompleted =
-        this.cacheStats.getNetsearchesCompleted() -
-        this.prevNetsearchesCompleted;
-
-      double hits =
-        (deltaGets -
-                (deltaLoadsCompleted + deltaNetsearchesCompleted));
-      double hitRatio = hits / deltaGets;
-      double threshold = this.config.getMinHitRatio();
-      if (hitRatio < threshold) {
-        String s = "The hit ratio of this Cache (" + hitRatio +
-          ") is below the threshold (" + threshold + ")";
-        status.add(okayHealth(s));
-      }
-    }
-  }
-
-  /**
-   * Checks to make sure that the {@linkplain
-   * CachePerfStats#getEventQueueSize cache event queue size} does
-   * not exceed the {@linkplain CacheHealthConfig#getMaxEventQueueSize
-   * threshold}.  If it does, the status is "okay" health.
-   */
-  void checkEventQueueSize(List status) {
-    if (this.cacheStats == null || isFirstEvaluation() ||
-        this.cacheStats.isClosed()) {
-      return;
-    }
-
-    long eventQueueSize = this.cacheStats.getEventQueueSize();
-    long threshold = this.config.getMaxEventQueueSize();
-    if (eventQueueSize > threshold) {
-      String s = LocalizedStrings.CacheHealthEvaluator_THE_SIZE_OF_THE_CACHE_EVENT_QUEUE_0_MS_EXCEEDS_THE_THRESHOLD_1_MS.toLocalizedString(new Object[] { Long.valueOf(eventQueueSize), Long.valueOf(threshold) });
-      status.add(okayHealth(s));
-    }
-  }
-
-
-  /**
-   * Updates the previous values of statistics
-   */
-  private void updatePrevious() {
-    if (this.cacheStats != null && !this.cacheStats.isClosed()) {
-      this.prevLoadTime = this.cacheStats.getLoadTime();
-      this.prevLoadsCompleted = this.cacheStats.getLoadsCompleted();
-      this.prevNetsearchTime = this.cacheStats.getNetsearchTime();
-      this.prevNetsearchesCompleted =
-        this.cacheStats.getNetsearchesCompleted();
-      this.prevGets = this.cacheStats.getGets();
-
-    } else {
-      this.prevLoadTime = 0L;
-      this.prevLoadsCompleted = 0L;
-      this.prevNetsearchTime = 0L;
-      this.prevNetsearchesCompleted = 0L;
-      this.prevGets = 0L;
-    }
-  }
-
-  @Override
-  protected void check(List status) {
-
-    checkNetSearchTime(status);
-    checkLoadTime(status);
-    checkHitRatio(status);
-    checkEventQueueSize(status);
-
-    updatePrevious();
-  }
-
-  @Override
-  public void close() {
-    GemFireCacheImpl.removeCacheLifecycleListener(this);
-  }
-
-  @Override
-  public void cacheClosed(GemFireCacheImpl cache) {
-    // do nothing
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheServerConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheServerConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheServerConfigImpl.java
deleted file mode 100644
index 1518f8b..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheServerConfigImpl.java
+++ /dev/null
@@ -1,136 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.CacheServerConfig;
-import com.gemstone.gemfire.admin.CacheVmConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-
-/**
- * An implementation of <code>CacheVmConfig</code>
- *
- * @author David Whitlock
- * @since 4.0
- */
-public class CacheServerConfigImpl extends ManagedEntityConfigImpl 
-  implements CacheVmConfig, CacheServerConfig {
-
-  /** Declarative caching XML file that is used to initialize the
-   * Cache in the cache server. */
-  private String cacheXMLFile;
-
-  /** Extra classpath for the cache server */
-  private String classpath;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>CacheServerConfigImpl</code> with the default
-   * configuration settings.
-   */
-  public CacheServerConfigImpl() {
-    this.cacheXMLFile = null;
-    this.classpath = null;
-  }
-
-  /**
-   * Creates a new <code>CacheServerConfigImpl</code> for a running
-   * cache server.
-   */
-  public CacheServerConfigImpl(GemFireVM vm) {
-    super(vm);
-
-    String name = DistributionConfig.CACHE_XML_FILE_NAME;
-    this.cacheXMLFile = vm.getConfig().getAttribute(name);
-    this.classpath = null;
-  }
-
-  /**
-   * Copy constructor
-   */
-  public CacheServerConfigImpl(CacheServerConfig other) {
-    super(other);
-    this.cacheXMLFile = other.getCacheXMLFile();
-    this.classpath = other.getClassPath();
-  }
-
-  /**
-   * Copy constructor
-   */
-  public CacheServerConfigImpl(CacheVmConfig other) {
-    super(other);
-    this.cacheXMLFile = other.getCacheXMLFile();
-    this.classpath = other.getClassPath();
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  public String getCacheXMLFile() {
-    return this.cacheXMLFile;
-  }
-
-  public void setCacheXMLFile(String cacheXMLFile) {
-    checkReadOnly();
-    this.cacheXMLFile = cacheXMLFile;
-    configChanged();
-  }
-
-  public String getClassPath() {
-    return this.classpath;
-  }
-
-  public void setClassPath(String classpath) {
-    checkReadOnly();
-    this.classpath = classpath;
-    configChanged();
-  }
-
-  @Override
-  public void validate() {
-    super.validate();
-
-    // Nothing to validate really.  Cache.xml file could live on
-    // different file system.
-  }
-
-  /**
-   * Currently, listeners are not supported on the locator config.
-   */
-  @Override
-  protected void configChanged() {
-
-  }
-
-  @Override
-  public Object clone() throws CloneNotSupportedException {
-    return new CacheServerConfigImpl((CacheVmConfig)this);
-  }
-
-  @Override
-  public String toString() {
-    StringBuffer sb = new StringBuffer();
-    sb.append(super.toString());
-    sb.append(" cacheXMLFile=");
-    sb.append(this.getCacheXMLFile());
-    sb.append(" classPath=");
-    sb.append(this.getClassPath());
-
-    return sb.toString();    
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheServerImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheServerImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheServerImpl.java
deleted file mode 100644
index fd5fef3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/CacheServerImpl.java
+++ /dev/null
@@ -1,199 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.remote.RemoteApplicationVM;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * Implements the administrative interface to a cache server.
- *
- * @author David Whitlock
- * @since 3.5
- */
-public class CacheServerImpl extends ManagedSystemMemberImpl
-  implements CacheVm, CacheServer {
-
-  /** How many new <code>CacheServer</code>s have been created? */
-  private static int newCacheServers = 0;
-
-  ///////////////////////  Instance Fields  ///////////////////////
-
-  /** The configuration object for this cache server */
-  private final CacheServerConfigImpl config;
-
-  /////////////////////////  Constructors  ////////////////////////
-
-  /**
-   * Creates a new <code>CacheServerImpl</code> that represents a
-   * non-existsing (unstarted) cache server in a given distributed
-   * system.
-   */
-  public CacheServerImpl(AdminDistributedSystemImpl system,
-                         CacheVmConfig config) 
-    throws AdminException {
-
-    super(system, config);
-
-    this.config = (CacheServerConfigImpl) config;
-    this.config.setManagedEntity(this);
-  }
-
-  /**
-   * Creates a new <code>CacheServerImpl</code> that represents an
-   * existing dedicated cache server in a given distributed system.
-   */
-  public CacheServerImpl(AdminDistributedSystemImpl system,
-                         GemFireVM vm) 
-    throws AdminException {
-
-    super(system, vm);
-    this.config = new CacheServerConfigImpl(vm);
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  @Override
-  public SystemMemberType getType() {
-    return SystemMemberType.CACHE_VM;
-  }
-
-  public String getNewId() {
-    synchronized (CacheServerImpl.class) {
-      return "CacheVm" + (++newCacheServers);
-    }
-  }
-
-  public void start() throws AdminException {
-    if (!needToStart()) {
-      return;
-    }
-
-    this.config.validate();
-    this.controller.start(this);
-    this.config.setManagedEntity(this);
-  }
-
-  public void stop() {
-    if (!needToStop()) {
-      return;
-    }
-
-    this.controller.stop(this);
-    // NOTE: DistributedSystem nodeLeft will then set this.manager to null
-    this.config.setManagedEntity(null);
-  }
-  
-  public boolean isRunning() {
-    DM dm = ((AdminDistributedSystemImpl)getDistributedSystem()).getDistributionManager();
-    if(dm == null) {
-      try {
-        return this.controller.isRunning(this);
-      }
-      catch (IllegalStateException e) {
-        return false;
-      }
-    }
-    return ((DistributionManager)dm).getDistributionManagerIdsIncludingAdmin().contains(getDistributedMember());
-  }
-
-  public CacheServerConfig getConfig() {
-    return this.config;
-  }
-
-  public CacheVmConfig getVmConfig() {
-    return this.config;
-  }
-
-  ////////////////////////  Command execution  ////////////////////////
-
-  public ManagedEntityConfig getEntityConfig() {
-    return this.getConfig();
-  }
-
-  public String getEntityType() {
-    // Fix bug 32564
-    return "Cache Vm";
-  }
-
-  public String getStartCommand() {
-    StringBuffer sb = new StringBuffer();
-    sb.append(this.controller.getProductExecutable(this, "cacheserver"));
-    sb.append(" start -dir=");
-    sb.append(this.getConfig().getWorkingDirectory());
-
-    String file = this.getConfig().getCacheXMLFile();
-    if (file != null && file.length() > 0) {
-      sb.append(" ");
-      sb.append(com.gemstone.gemfire.distributed.internal.DistributionConfig.CACHE_XML_FILE_NAME);
-      sb.append("=");
-      sb.append(file);
-    }
-
-    String classpath = this.getConfig().getClassPath();
-    if (classpath != null && classpath.length() > 0) {
-      sb.append(" -classpath=");
-      sb.append(classpath);
-    }
-
-    appendConfiguration(sb);
-
-    return sb.toString().trim();
-  }
-
-  public String getStopCommand() {
-    StringBuffer sb = new StringBuffer();
-    sb.append(this.controller.getProductExecutable(this, "cacheserver"));
-    sb.append(" stop -dir=");
-    sb.append(this.getConfig().getWorkingDirectory());
-
-    return sb.toString().trim();
-  }
-
-  public String getIsRunningCommand() {
-    StringBuffer sb = new StringBuffer();
-    sb.append(this.controller.getProductExecutable(this, "cacheserver"));
-    sb.append(" status -dir=");
-    sb.append(this.getConfig().getWorkingDirectory());
-
-    return sb.toString().trim();
-  }
-
-  /**
-   * Find whether this server is primary for given client (durableClientId)
-   * 
-   * @param durableClientId -
-   *                durable-id of the client
-   * @return true if the server is primary for given client
-   * 
-   * @since 5.6
-   */
-  public boolean isPrimaryForDurableClient(String durableClientId)
-  {
-    RemoteApplicationVM vm = (RemoteApplicationVM)this.getGemFireVM();
-    boolean isPrimary = false;
-    if (vm != null) {
-      isPrimary = vm.isPrimaryForDurableClient(durableClientId);
-}
-    return isPrimary;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ConfigurationParameterImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ConfigurationParameterImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ConfigurationParameterImpl.java
deleted file mode 100755
index 909214c..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ConfigurationParameterImpl.java
+++ /dev/null
@@ -1,281 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.admin.UnmodifiableConfigurationException;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import java.io.File;
-//import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * A single configuration parameter of a system member.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public class ConfigurationParameterImpl
-implements com.gemstone.gemfire.admin.ConfigurationParameter {
-  
-  /** Identifying name of this configuration parameter */
-  protected String name;
-  /** Full description of this configuration parameter */
-  protected String description;
-  /** The current value */
-  protected Object value;
-  /** Class type of the value */
-  protected Class type;
-  /** True if this is modifiable; false if read-only */
-  protected boolean userModifiable;
-  /** List of listeners to notify when value changes */
-  private final List listeners = new ArrayList();
-  
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /** 
-   * Constructs new <code>ConfigurationParameterImpl</code>.
-   *
-   * @param name            the name of this parameter which cannot change
-   * @param description     full description to use
-   * @param value           the value of this parameter
-   * @param type            the class type of the value
-   * @param userModifiable  true if this is modifiable; false if read-only
-   */
-  protected ConfigurationParameterImpl(String name,
-                                       String description,
-                                       Object value,
-                                       Class type,
-                                       boolean userModifiable) {
-    if (name == null || name.length() == 0) {
-      throw new IllegalArgumentException(LocalizedStrings.ConfigurationParameterImpl_CONFIGURATIONPARAMETER_NAME_MUST_BE_SPECIFIED.toLocalizedString());
-    }
-    
-    this.name = name;
-    setInternalState(description, value, type, userModifiable);
-  }
-  
-  /** 
-   * Constructs new <code>ConfigurationParameterImpl</code>.
-   *
-   * @param name            the name of this parameter which cannot change
-   * @param value           the value of this parameter
-   */
-  protected ConfigurationParameterImpl(String name,
-                                       Object value) {
-    if (name == null || name.length() == 0) {
-      throw new IllegalArgumentException(LocalizedStrings.ConfigurationParameterImpl_CONFIGURATIONPARAMETER_NAME_MUST_BE_SPECIFIED.toLocalizedString());
-    }
-    
-    this.name = name;
-    setInternalState(name, value, value.getClass(), true);
-  }
-  
-  /** Constructor to allow serialization by subclass */
-  protected ConfigurationParameterImpl() {}
-  
-  // -------------------------------------------------------------------------
-  //   Attribute accessors and mutators
-  // -------------------------------------------------------------------------
-
-  public String getName() {
-    return this.name;
-  }
-  
-  public String getDescription() {
-    return this.description;
-  }
-  
-  public Object getValue() {
-    return this.value;
-  }
-  
-  public String getValueAsString() {
-    if (isString()) {
-      return (String) this.value;
-    }
-    else if (isInetAddress()) {
-      return InetAddressUtil.toString(this.value);
-    }
-    else if (isFile()) {
-      return this.value.toString();
-    }
-    else if (isOctal()) {
-      String strVal = Integer.toOctalString(((Integer) this.value).intValue());
-      if (!strVal.startsWith("0")) {
-        strVal = "0" + strVal;
-      }
-      return strVal;
-    }
-    else if (isArray()) {
-      List list = Arrays.asList((Object[]) this.value);
-      return list.toString();
-    }
-    else {
-      return this.value.toString();
-    }
-  }
-  
-  public Class getValueType() {
-    return this.type;
-  }
-  
-  public boolean isModifiable() {
-    return this.userModifiable;
-  }
-  
-  public boolean isArray() {
-    return "manager-parameters".equals(this.name) || 
-           "manager-classpaths".equals(this.name);
-  }
-  public boolean isInetAddress() {
-    return java.net.InetAddress.class.isAssignableFrom(this.type);
-  }
-  public boolean isFile() {
-    return java.io.File.class.equals(this.type);
-  }
-  public boolean isOctal() {
-    return "shared-memory-permissions".equals(this.name);
-  }
-  public boolean isString() {
-    return java.lang.String.class.equals(this.type);
-  }
-  
-  public void setValue(Object value) throws UnmodifiableConfigurationException {
-    if (!isModifiable()) {
-      throw new UnmodifiableConfigurationException(LocalizedStrings.ConfigurationParameterImpl_0_IS_NOT_A_MODIFIABLE_CONFIGURATION_PARAMETER.toLocalizedString(getName()));
-    }
-    if (value == null) {
-      throw new IllegalArgumentException(LocalizedStrings.ConfigurationParameterImpl_UNABLE_TO_SET_0_TO_NULL_VALUE.toLocalizedString(getName()));
-    }
-    if (!getValueType().equals(value.getClass())) {
-      throw new IllegalArgumentException(LocalizedStrings.ConfigurationParameterImpl_UNABLE_TO_SET_TYPE_0_WITH_TYPE_1.toLocalizedString(new Object[] {getValueType().getName(), value.getClass().getName()}));
-    }
-    
-    if (value instanceof String && !isString()) {
-      // we need to check what the type should be and convert to it...
-      setValueFromString((String) value);
-    }
-    else {
-      this.value = value;
-    }
-    fireConfigurationParameterValueChanged(this);
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Operations for handling the registration of listeners
-  //     Note: this is only for use within impl pkg and subclass pkgs
-  // -------------------------------------------------------------------------
-  
-  /** Adds the listener for any changes to this configuration parameter. */
-  public void addConfigurationParameterListener(ConfigurationParameterListener listener) {
-    if (!this.listeners.contains(listener)) {
-      this.listeners.add(listener);
-    }
-  }
-  
-  /** Removes the listener if it's currently registered. */
-  public void removeConfigurationParameterListener(ConfigurationParameterListener listener) {
-    if (this.listeners.contains(listener)) {
-      this.listeners.remove(listener);
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Implementation methods
-  // -------------------------------------------------------------------------
-
-  protected void setValueFromString(String newValue) {
-    if (newValue == null) {
-      throw new IllegalArgumentException(LocalizedStrings.ConfigurationParameterImpl_UNABLE_TO_SET_0_TO_NULL_VALUE.toLocalizedString(getName()));
-    }
-
-    if (isInetAddress()) {
-      this.value = InetAddressUtil.toInetAddress(newValue);
-    }
-    else if (isFile()) {
-      this.value = new File(newValue);
-    }
-    else if (isOctal()) {
-      if (!newValue.startsWith("0")) {
-        newValue = "0" + newValue;
-      }
-      this.value = Integer.valueOf(Integer.parseInt(newValue, 8));
-    }
-    else if (isArray()) {
-      // parse it TODO
-      throw new IllegalArgumentException(LocalizedStrings.ConfigurationParameterImpl_SETTING_ARRAY_VALUE_FROM_DELIMITED_STRING_IS_NOT_SUPPORTED.toLocalizedString());
-    }
-    else {
-      this.value = newValue;
-    }
-  }
-  
-  /**
-   * Fires changed configuration parameter to registered listeners.
-   *
-   * @param parm  the configuration parameter the changed 
-   */
-  protected void fireConfigurationParameterValueChanged(ConfigurationParameter parm)  {
-    ConfigurationParameterListener[] listeners = 
-        (ConfigurationParameterListener[]) this.listeners.toArray(
-            new ConfigurationParameterListener[0]);
-    for (int i = 0; i < listeners.length; i++) {
-      listeners[i].configurationParameterValueChanged(parm);
-    }
-  }  
-  
-  /**
-   * Sets the internal state of this configuration parameter.  
-   *
-   * @param description     full description to use
-   * @param value           the value of this parameter
-   * @param type            the class type of the value
-   * @param userModifiable  true if this is modifiable; false if read-only
-   */
-  protected void setInternalState(String description,
-                                  Object value,
-                                  Class type,
-                                  boolean userModifiable) {
-    if (description == null || description.length() == 0) {
-      throw new IllegalArgumentException(LocalizedStrings.ConfigurationParameterImpl_CONFIGURATIONPARAMETER_DESCRIPTION_MUST_BE_SPECIFIED.toLocalizedString());
-    }
-    this.description = description;
-    this.type = type;
-    this.userModifiable = userModifiable;
-
-    if (value == null) {
-      throw new IllegalArgumentException(LocalizedStrings.ConfigurationParameterImpl_UNABLE_TO_SET_0_TO_NULL_VALUE.toLocalizedString(getName()));
-    }
-
-    this.value = value;
-  }
-  
-  @Override
-  public String toString() {
-    return this.name;
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ConfigurationParameterListener.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ConfigurationParameterListener.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ConfigurationParameterListener.java
deleted file mode 100755
index 82e0d3c..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ConfigurationParameterListener.java
+++ /dev/null
@@ -1,35 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-
-/**
- * Listens to value changes of a 
- * {@link com.gemstone.gemfire.admin.ConfigurationParameter}.  This is for 
- * internal use only to allow a {@link SystemMemberImpl} to keep track of 
- * configuration changes made through 
- * {@link ConfigurationParameterImpl#setValue}.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public interface ConfigurationParameterListener {
-  public void configurationParameterValueChanged(ConfigurationParameter parm);
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DisabledManagedEntityController.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DisabledManagedEntityController.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DisabledManagedEntityController.java
deleted file mode 100755
index b922078..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/DisabledManagedEntityController.java
+++ /dev/null
@@ -1,92 +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.admin.internal;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LogMarker;
-
-/**
- * This is a disabled implementation of ManagedEntityController for bug #47909.
- *
- * The old ManagedEntityController was a concrete class which has been renamed
- * to ManagedEntityControllerImpl. The build.xml now skips building
- * ManagedEntityControllerImpl. If ManagedEntityControllerImpl is not found
- * in the classpath then the code uses DisabledManagedEntityController as a
- * place holder.
- *
- * @author Kirk Lund
- */
-class DisabledManagedEntityController implements ManagedEntityController {
-
-  private static final Logger logger = LogService.getLogger();
-
-  private static final String EXCEPTION_MESSAGE = "Local and remote OS command invocations are disabled for the Admin API.";
-  
-  DisabledManagedEntityController() {
-  }
-  
-  @Override
-  public void start(InternalManagedEntity entity) {
-    if (logger.isTraceEnabled(LogMarker.MANAGED_ENTITY)){
-      logger.warn(LogMarker.MANAGED_ENTITY, "DisabledManagedEntityController#start {}", EXCEPTION_MESSAGE);
-    }
-    throw new UnsupportedOperationException(EXCEPTION_MESSAGE);
-  }
-
-  @Override
-  public void stop(InternalManagedEntity entity) {
-    if (logger.isTraceEnabled(LogMarker.MANAGED_ENTITY)){
-      logger.warn(LogMarker.MANAGED_ENTITY, "DisabledManagedEntityController#stop {}", EXCEPTION_MESSAGE);
-    }
-    throw new UnsupportedOperationException(EXCEPTION_MESSAGE);
-  }
-
-  @Override
-  public boolean isRunning(InternalManagedEntity entity) {
-    if (logger.isTraceEnabled(LogMarker.MANAGED_ENTITY)){
-      logger.warn(LogMarker.MANAGED_ENTITY, "DisabledManagedEntityController#isRunning {}", EXCEPTION_MESSAGE);
-    }
-    throw new UnsupportedOperationException(EXCEPTION_MESSAGE);
-  }
-
-  @Override
-  public String getLog(DistributionLocatorImpl locator) {
-    if (logger.isTraceEnabled(LogMarker.MANAGED_ENTITY)){
-      logger.warn(LogMarker.MANAGED_ENTITY, "DisabledManagedEntityController#getLog {}", EXCEPTION_MESSAGE);
-    }
-    throw new UnsupportedOperationException(EXCEPTION_MESSAGE);
-  }
-
-  @Override
-  public String buildSSLArguments(DistributedSystemConfig config) {
-    if (logger.isTraceEnabled(LogMarker.MANAGED_ENTITY)){
-      logger.warn(LogMarker.MANAGED_ENTITY, "DisabledManagedEntityController#buildSSLArguments {}", EXCEPTION_MESSAGE);
-    }
-    throw new UnsupportedOperationException(EXCEPTION_MESSAGE);
-  }
-
-  @Override
-  public String getProductExecutable(InternalManagedEntity entity, String executable) {
-    if (logger.isTraceEnabled(LogMarker.MANAGED_ENTITY)){
-      logger.warn(LogMarker.MANAGED_ENTITY, "DisabledManagedEntityController#getProductExecutable {}", EXCEPTION_MESSAGE);
-    }
-    throw new UnsupportedOperationException(EXCEPTION_MESSAGE);
-  }
-}


[04/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatAlertsAggregator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatAlertsAggregator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatAlertsAggregator.java
deleted file mode 100644
index 082c85f..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatAlertsAggregator.java
+++ /dev/null
@@ -1,125 +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.admin.jmx.internal;
-
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.StatAlert;
-import com.gemstone.gemfire.internal.admin.StatAlertDefinition;
-
-/**
- * This interface represents an Aggregator entity and resides in JMXAgent.
- * Responsibilities are as follows:
- * <ol>
- * <li> set AlertsManager in the newly joined members
- * <li> create/update/remove alert
- * <li> manage refresh interval
- * <li> process notification from members
- * <li> Aggregate stats & make available for clients thro' JMXAgent
- * </ol>
- * 
- * @author abhishek
- */
-public interface StatAlertsAggregator {
-
-  /**
-   * This method can be used to get an alert definition.
-   * 
-   * @param alertDefinition
-   *                StatAlertDefinition to retrieve
-   * @return StatAlertDefinition
-   */
-  public StatAlertDefinition getAlertDefinition(
-      StatAlertDefinition alertDefinition);
-
-  /**
-   * This method can be used to retrieve all available stat alert definitions.
-   * 
-   * @return An array of all available StatAlertDefinition objects
-   */
-  public StatAlertDefinition[] getAllStatAlertDefinitions();
-
-  /**
-   * This method can be used to update alert definition for the Stat mentioned.
-   * This method should update the collection maintained at the aggregator and
-   * should notify members for the newly added alert definitions.
-   * <p>
-   * A new alert definition will be created if matching one not found.
-   * 
-   * @param alertDefinition
-   *                alertDefinition to be updated
-   */
-  public void updateAlertDefinition(StatAlertDefinition alertDefinition);
-
-  /**
-   * This method can be used to remove alert definition for the Stat mentioned.
-   * <p>
-   * This method should update the collection maintained at the aggregator and
-   * should notify members for the newly added alert definitions.
-   * 
-   * @param defId
-   *                id of the alert definition to be removed
-   */
-  public void removeAlertDefinition(Integer defId);
-
-  /**
-   * Convenience method to check whether an alert definition is created.
-   * 
-   * @param alert
-   *                alert definition to check whether already created
-   * @return true if the alert definition is already created, false otherwise
-   */
-  public boolean isAlertDefinitionCreated(StatAlertDefinition alert);
-
-  /**
-   * This method can be used to set the AlertManager for the newly joined member
-   * VM.
-   * 
-   * @param memberVM
-   *                Member VM to set AlertsManager for
-   */
-  public void setAlertsManager(GemFireVM memberVM);
-
-  /**
-   * Returns the refresh interval for the Stats in seconds.
-   * 
-   * @return refresh interval for the Stats(in seconds)
-   */
-  public int getRefreshIntervalForStatAlerts();
-
-  /**
-   * This method is used to set the refresh interval for the Stats Alerts in
-   * seconds
-   * 
-   * @param refreshInterval
-   *                refresh interval for the Stats(in seconds)
-   */
-  public void setRefreshIntervalForStatAlerts(int refreshInterval);
-
-  /**
-   * This method can be used to process the notifications sent by the member(s).
-   * Actual aggregation of stats can occur here. The array contains alert
-   * objects with alert def. ID & value. AlertHelper class can be used to
-   * retrieve the corresponding alert definition.
-   * 
-   * @param alerts
-   *                array of Alert class(contains alert def. ID & value)
-   * @param remoteVM
-   */
-  public void processNotifications(StatAlert[] alerts, GemFireVM remoteVM);
-
-  public void processSystemwideNotifications();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatisticAttributeInfo.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatisticAttributeInfo.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatisticAttributeInfo.java
deleted file mode 100755
index c3e8030..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatisticAttributeInfo.java
+++ /dev/null
@@ -1,79 +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.admin.jmx.internal;
-
-import com.gemstone.gemfire.admin.Statistic;
-import com.gemstone.gemfire.internal.Assert;
-
-import javax.management.Descriptor;
-import javax.management.modelmbean.DescriptorSupport;
-import javax.management.modelmbean.ModelMBeanAttributeInfo;
-
-/** 
- * Subclass of AttributeInfo with {@link com.gemstone.gemfire.admin.Statistic} 
- * added for use as the {@link 
- * javax.management.modelmbean.ModelMBeanAttributeInfo} descriptor's 
- * <i>targetObject</i> value.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-class StatisticAttributeInfo extends org.apache.commons.modeler.AttributeInfo {
-  private static final long serialVersionUID = 28022387514935560L;
-    
-  private Statistic stat;
-  
-  public StatisticAttributeInfo() {
-    super();
-  }
-  
-  public Statistic getStat() {
-    return this.stat;
-  }
-  public void setStat(Statistic stat) {
-    //System.out.println(">> stat = " + stat);
-    Assert.assertTrue(stat != null, "Attempting to set stat to null");
-    this.stat = stat;
-  }
-  
-  @Override
-  public ModelMBeanAttributeInfo createAttributeInfo() {
-    Descriptor desc = new DescriptorSupport(
-        new String[] {
-        "name=" + this.displayName,
-        "descriptorType=attribute",
-        "currencyTimeLimit=-1", // always stale
-        "displayName=" + this.displayName,
-        "getMethod=getValue" });
-
-    Assert.assertTrue(this.stat != null, "Stat target object is null!");
-    desc.setField("targetObject", this.stat);
-
-    ModelMBeanAttributeInfo info = new ModelMBeanAttributeInfo(
-        this.displayName, // name
-        this.type,        // type
-        this.description, // description
-        this.readable,    // isReadable
-        this.writeable,   // isWritable
-        this.is,          // isIs
-        desc);
-        
-    return info;
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatisticResourceJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatisticResourceJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatisticResourceJmxImpl.java
deleted file mode 100755
index 9813bdb..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatisticResourceJmxImpl.java
+++ /dev/null
@@ -1,361 +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.admin.jmx.internal;
-
-import javax.management.Notification;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-import javax.naming.OperationNotSupportedException;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.Statistic;
-import com.gemstone.gemfire.internal.admin.StatResource;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * Provides MBean support for the monitoring of a statistic resource.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public class StatisticResourceJmxImpl 
-extends com.gemstone.gemfire.admin.internal.StatisticResourceImpl
-implements javax.management.NotificationListener, 
-           com.gemstone.gemfire.admin.jmx.internal.ManagedResource {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** 
-   * Interval in seconds between refreshes. Values less than one results in no 
-   * refreshing .
-   */
-  private int refreshInterval = 0;
-  
-  /** The JMX object name of this managed resource */
-  private ObjectName objectName;
-
-  /** A flag to indicate if time is inited. MBeanUtil lookup is costly */
-  private boolean timerInited = false;
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Constructor for the StatisticResource object
-   *
-   * @param statResource  the admin StatResource to manage/monitor
-   * @param member        the SystemMember owning this resource
-   * @exception com.gemstone.gemfire.admin.AdminException 
-   *            if unable to create this StatisticResource for administration
-   */
-  public StatisticResourceJmxImpl(StatResource statResource,
-                                  SystemMemberJmx member)
-                           throws com.gemstone.gemfire.admin.AdminException {
-    super(statResource, member);
-    initializeMBean();
-  }
-
-  /** Create and register the MBean to manage this resource */
-  private void initializeMBean() 
-  throws com.gemstone.gemfire.admin.AdminException {
-    this.mbeanName = new StringBuffer("GemFire.Statistic:")
-                      .append("source=").append(MBeanUtil.makeCompliantMBeanNameProperty(this.member.getId()))
-                      .append(",type=").append(MBeanUtil.makeCompliantMBeanNameProperty(getType()))
-                      .append(",name=").append(MBeanUtil.makeCompliantMBeanNameProperty(getName()))
-                      .append(",uid=").append(getUniqueId()).toString();
-      
-    this.objectName =
-      MBeanUtil.createMBean(this, 
-        addDynamicAttributes(MBeanUtil.lookupManagedBean(this)));
-
-    // Refresh Interval
-    AdminDistributedSystemJmxImpl sysJmx = (AdminDistributedSystemJmxImpl)this.member.getDistributedSystem();
-    if (sysJmx.getRefreshInterval()>0)
-      this.refreshInterval = sysJmx.getRefreshInterval();
-  }
-
-  // -------------------------------------------------------------------------
-  //   MBean attributes - accessors/mutators
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Gets the interval in seconds between statistics refreshes
-   *
-   * @return the current refresh interval in seconds
-   */
-  public int getRefreshInterval() {
-    return this.refreshInterval;
-  }
-
-  /**
-   * Sets interval in seconds between statistic refreshes; zero or less turns 
-   * off auto refreshing.  Manual refreshing has no effect on when the next
-   * scheduled refresh will occur.
-   *
-   * @param refreshInterval  the new refresh interval in seconds
-   */
-  private void _setRefreshInterval(int refreshInterval) {
-    boolean isRegistered = MBeanUtil.isRefreshNotificationRegistered(this,
-        RefreshNotificationType.STATISTIC_RESOURCE_STATISTICS);
-
-    if (isRegistered && (getRefreshInterval() == refreshInterval))
-      return;
-
-    try {
-      MBeanUtil.registerRefreshNotification(
-          this, // NotificationListener
-          getMBeanName(), // User Data as MBean Name
-          RefreshNotificationType.STATISTIC_RESOURCE_STATISTICS, 
-          refreshInterval); // int
-
-      this.refreshInterval = refreshInterval;
-      timerInited = true;
-    } catch (RuntimeException e) {
-      logger.warn(e.getMessage(), e); // dead in water, print, and then ignore
-      this.refreshInterval = 0; // zero out to avoid more exceptions
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error. We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above). However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      logger.error(e.getMessage(), e); // dead in water, print, and then ignore
-      this.refreshInterval = 0; // zero out to avoid more exceptions
-    }
-  }
-  
-  /**
-   * RefreshInterval is now set only through the AdminDistributedSystem property
-   * refreshInterval. Attempt to set refreshInterval on StatisticResourceJmx
-   * MBean would result in an OperationNotSupportedException
-   * Auto-refresh is enabled on demand when a call to getStatistics is made
-   * 
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   * @deprecated since 6.0 use DistributedSystemConfig.refreshInterval instead
-   */
-  @Deprecated
-  public void setRefreshInterval(int refreshInterval)
-      throws OperationNotSupportedException {
-    throw new OperationNotSupportedException(
-        LocalizedStrings.MANAGED_RESOURCE_REFRESH_INTERVAL_CANT_BE_SET_DIRECTLY.toLocalizedString());
-  }
-  
-  // -------------------------------------------------------------------------
-  //   JMX Notification listener
-  // -------------------------------------------------------------------------
-
-  /**
-   * Handles notification to refresh. Reacts by refreshing the values of this
-   * SystemMember's ConfigurationParamaters. Any other notification is ignored.
-   * Given notification is handled only if there is any JMX client connected to 
-   * the system.
-   * <p>
-   * TODO: investigate use of NotificationFilter instead of explicit check...
-   * 
-   * @param notification
-   *          the JMX notification being received
-   * @param hb
-   *          handback object is unused
-   */
-  public void handleNotification(Notification notification, Object hb) {
-    AdminDistributedSystemJmxImpl adminDSJmx = 
-      (AdminDistributedSystemJmxImpl) this.member.getDistributedSystem();
-    
-    String typeStatResourceStats = 
-              RefreshNotificationType.STATISTIC_RESOURCE_STATISTICS.getType();
-    
-    if (typeStatResourceStats.equals(notification.getType()) && 
-        getMBeanName().equals(notification.getUserData()) &&
-        !adminDSJmx.isRmiClientCountZero()) {
-      try {
-        refresh();
-
-      } catch (com.gemstone.gemfire.admin.AdminException e) {
-        logger.warn(e.getMessage(), e);
-      } catch (com.gemstone.gemfire.admin.OperationCancelledException e) {
-        // underlying resource is no longer reachable by remote admin
-        logger.warn(e.getMessage(), e);
-        _setRefreshInterval(0);
-      } catch (CancelException e) {
-        // shutting down - okay to ignore
-      } catch (java.lang.RuntimeException e) {
-        logger.debug(e.getMessage(), e); // dead in water, print, and then ignore
-        _setRefreshInterval(0); // zero out to avoid more exceptions
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (java.lang.Error e) {
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.error(e.getMessage(), e); // dead in water, print, and then ignore
-        this.refreshInterval = 0; // zero out to avoid more exceptions
-      }
-    }
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Create MBean attributes for each Statistic
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Add MBean attribute definitions for each Statistic.
-   *
-   * @param managed   the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> but 
-   *         with the new attributes added
-   */
-  ManagedBean addDynamicAttributes(ManagedBean managed) 
-  throws com.gemstone.gemfire.admin.AdminException {
-    if (managed == null) {
-      throw new IllegalArgumentException(LocalizedStrings.StatisticResourceJmxImpl_MANAGEDBEAN_IS_NULL.toLocalizedString());
-    }
-    
-    refresh(); // to get the stats...
-    
-    // need to create a new instance of ManagedBean to clean the "slate"...
-    ManagedBean newManagedBean = new DynamicManagedBean(managed);
-    for (int i = 0; i < this.statistics.length; i++) {
-      StatisticAttributeInfo attrInfo = new StatisticAttributeInfo();
-
-      attrInfo.setName(this.statistics[i].getName());
-      attrInfo.setDisplayName(this.statistics[i].getName());
-      attrInfo.setDescription(this.statistics[i].getDescription());
-      attrInfo.setType("java.lang.Number");
-
-      attrInfo.setIs(false);
-      attrInfo.setReadable(true);
-      attrInfo.setWriteable(false);
-
-      attrInfo.setStat(this.statistics[i]);
-      
-      newManagedBean.addAttribute(attrInfo);
-    }
-    return newManagedBean;
-  }
-
-  public Statistic[] getStatistics() {
-    if (!timerInited) {
-      // 1st call to getStatistics would trigger
-      // the auto-refresh if an interval is set
-      if (this.refreshInterval>0) {
-        this._setRefreshInterval(this.refreshInterval);
-      }
-    }
-
-    if (this.statistics == null) {
-      try {
-        this.refresh();
-      }
-      catch (AdminException e) {
-        this.statistics = new Statistic[0];
-      }
-    }
-
-    return this.statistics;
-  }
-
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-	public String getMBeanName() {
-		return this.mbeanName;
-	}
-  
-	public ModelMBean getModelMBean() {
-		return this.modelMBean;
-	}
-	public void setModelMBean(ModelMBean modelMBean) {
-		this.modelMBean = modelMBean;
-	}
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.STATISTIC_RESOURCE;
-  }
-  
-  public void cleanupResource() {
-    this.modelMBean = null;
-    this.member = null;
-    this.statistics = null;
-    this.statResource = null;
-  }
-  
-  /**
-   * Checks equality of the given object with <code>this</code> based on the
-   * type (Class) and the MBean Name returned by <code>getMBeanName()</code>
-   * methods.
-   * 
-   * @param obj
-   *          object to check equality with
-   * @return true if the given object is if the same type and its MBean Name is
-   *         same as <code>this</code> object's MBean Name, false otherwise
-   */
-  @Override
-  public boolean equals(Object obj) {
-    if ( !(obj instanceof StatisticResourceJmxImpl) ) {
-      return false;
-    }
-    
-    StatisticResourceJmxImpl other = (StatisticResourceJmxImpl) obj;
-
-    return this.getMBeanName().equals(other.getMBeanName());
-  }
-
-  /**
-   * Returns hash code for <code>this</code> object which is based on the MBean 
-   * Name generated. 
-   * 
-   * @return hash code for <code>this</code> object
-   */
-  @Override
-  public int hashCode() {
-    return this.getMBeanName().hashCode();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberBridgeServerJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberBridgeServerJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberBridgeServerJmxImpl.java
deleted file mode 100644
index e011459..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberBridgeServerJmxImpl.java
+++ /dev/null
@@ -1,135 +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.admin.jmx.internal;
-
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.internal.SystemMemberBridgeServerImpl;
-import com.gemstone.gemfire.admin.internal.SystemMemberCacheImpl;
-import com.gemstone.gemfire.internal.admin.AdminBridgeServer;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-
-/**
- * MBean representation of a {@link
- * com.gemstone.gemfire.admin.SystemMemberBridgeServer}. 
- *
- * @author David Whitlock
- * @since 4.0
- */
-public class SystemMemberBridgeServerJmxImpl
-  extends SystemMemberBridgeServerImpl implements ManagedResource {
-
-  /** The object name of this managed resource */
-  private ObjectName objectName;
-
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a new <code>SystemMemberBridgeServerJmxImpl</code> that
-   * serves the contents of the given cache.
-   */
-  SystemMemberBridgeServerJmxImpl(SystemMemberCacheImpl cache,
-                                  AdminBridgeServer bridgeInfo) 
-    throws AdminException {
-
-    super(cache, bridgeInfo);
-    initializeMBean(cache);
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /** 
-   * Creates and registers the MBean to manage this resource
-   */
-  private void initializeMBean(SystemMemberCacheImpl cache)
-    throws AdminException {
-    
-    GemFireVM vm = cache.getVM();
-    this.mbeanName = new StringBuffer("GemFire.Cache:")
-        .append("name=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(cache.getName()))
-        .append(",id=")
-        .append(this.getBridgeId())
-        .append(",owner=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(vm.getId().toString()))
-        .append(",type=CacheServer").toString();
-      
-    this.objectName = MBeanUtil.createMBean(this);
-  }
-
-  public String getMBeanName() {
-    return this.mbeanName;
-  }
-  
-  public ModelMBean getModelMBean() {
-    return this.modelMBean;
-  }
-  public void setModelMBean(ModelMBean modelMBean) {
-    this.modelMBean = modelMBean;
-  }
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.SYSTEM_MEMBER_CACHE_SERVER;
-  }
-  
-  public void cleanupResource() {}
-  
-  /**
-   * Checks equality of the given object with <code>this</code> based on the
-   * type (Class) and the MBean Name returned by <code>getMBeanName()</code>
-   * methods.
-   * 
-   * @param obj
-   *          object to check equality with
-   * @return true if the given object is if the same type and its MBean Name is
-   *         same as <code>this</code> object's MBean Name, false otherwise
-   */
-  @Override
-  public boolean equals(Object obj) {
-    if ( !(obj instanceof SystemMemberBridgeServerJmxImpl) ) {
-      return false;
-    }
-    
-    SystemMemberBridgeServerJmxImpl other = 
-                                (SystemMemberBridgeServerJmxImpl) obj; 
-    
-    return this.getMBeanName().equals(other.getMBeanName());
-  }
-
-  /**
-   * Returns hash code for <code>this</code> object which is based on the MBean 
-   * Name generated. 
-   * 
-   * @return hash code for <code>this</code> object
-   */
-  @Override
-  public int hashCode() {
-    return this.getMBeanName().hashCode();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberCacheJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberCacheJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberCacheJmxImpl.java
deleted file mode 100644
index 155c8a7..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberCacheJmxImpl.java
+++ /dev/null
@@ -1,475 +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.admin.jmx.internal;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Level;
-
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.SystemMemberCacheServer;
-import com.gemstone.gemfire.admin.SystemMemberRegion;
-import com.gemstone.gemfire.admin.internal.SystemMemberBridgeServerImpl;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.internal.admin.AdminBridgeServer;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-
-/**
- * MBean representation of {@link com.gemstone.gemfire.admin.SystemMemberCache}.
- *
- * @author    Darrel Schneider
- * @author    Kirk Lund
- * @since     3.5
- */
-public class SystemMemberCacheJmxImpl 
-extends com.gemstone.gemfire.admin.internal.SystemMemberCacheImpl
-implements com.gemstone.gemfire.admin.jmx.internal.ManagedResource {
-
-  /** The object name of this managed resource */
-  private ObjectName objectName;
-  
-  /** collection to collect all the resources created for this member */
-  private Map<String, SystemMemberRegionJmxImpl> managedRegionResourcesMap = new HashMap<String, SystemMemberRegionJmxImpl>();
-  private Map<Number, SystemMemberBridgeServerJmxImpl> managedCacheServerResourcesMap = new HashMap<Number, SystemMemberBridgeServerJmxImpl>();
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /** 
-   * Constructs an instance of SystemMemberCacheJmxImpl.
-   *
-   * @param vm
-   *        The vm owning the cache this object will manage
-   */
-  public SystemMemberCacheJmxImpl(GemFireVM vm)
-  throws com.gemstone.gemfire.admin.AdminException { 
-    super(vm);
-    initializeMBean();
-  }
-
-  /** Create and register the MBean to manage this resource */
-  private void initializeMBean() 
-  throws com.gemstone.gemfire.admin.AdminException {
-    this.mbeanName = new StringBuffer("GemFire.Cache:")
-        .append("name=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(getName()))
-        .append(",id=")
-        .append(getId())
-        .append(",owner=")
-        .append(MBeanUtil.makeCompliantMBeanNameProperty(vm.getId().toString()))
-        .append(",type=Cache").toString();
-      
-    this.objectName = 
-      MBeanUtil.createMBean(this, 
-                            addDynamicAttributes(MBeanUtil.lookupManagedBean(this)));
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Template methods overriden from superclass...
-  // -------------------------------------------------------------------------
-
-  /**
-   * Override createSystemMemberRegion by instantiating
-   * SystemMemberRegionJmxImpl. This instance is also added to the
-   * managedResources collection.
-   * 
-   * @param r
-   *          reference to Region instance for which this JMX resource is to be
-   *          created
-   * @return SystemMemberRegionJmxImpl - JMX Implementation of
-   *         SystemMemberRegion
-   * @throws AdminException
-   *           if constructing SystemMemberRegionJmxImpl instance fails
-   */
-  @Override  
-  protected SystemMemberRegion createSystemMemberRegion(Region r)
-    throws com.gemstone.gemfire.admin.AdminException {
-    SystemMemberRegionJmxImpl managedSystemMemberRegion = null;
-    boolean needsRefresh = false;
-    synchronized (this.managedRegionResourcesMap) {
-      /* 
-       * Ensuring that a single instance of System Member Region is created 
-       * per Region.
-       */
-      SystemMemberRegionJmxImpl managedResource = managedRegionResourcesMap.get(r.getFullPath());
-      if (managedResource != null) {
-        managedSystemMemberRegion = managedResource;
-      } else {
-        managedSystemMemberRegion = new SystemMemberRegionJmxImpl(this, r);
-        managedRegionResourcesMap.put(r.getFullPath(), managedSystemMemberRegion);
-        needsRefresh = true;
-      }
-    }
-    if (needsRefresh) {
-      managedSystemMemberRegion.refresh();
-    }
-    return managedSystemMemberRegion;
-  }
-
-  /**
-   * Creates a SystemMemberBridgeServerJmxImpl instance. This instance is also
-   * added to the managedResources collection.
-   * 
-   * @param bridge
-   *          reference to AdminBridgeServer for which this JMX resource is to
-   *          be created
-   * @return SystemMemberBridgeServerJmxImpl - JMX Implementation of
-   *         SystemMemberBridgeServerImpl
-   * @throws AdminException
-   *           if constructing SystemMemberBridgeServerJmxImpl instance fails
-   */
-  @Override  
-  protected SystemMemberBridgeServerImpl
-    createSystemMemberBridgeServer(AdminBridgeServer bridge) 
-    throws AdminException {
-    SystemMemberBridgeServerJmxImpl managedSystemMemberBridgeServer = null;
-    synchronized (this.managedCacheServerResourcesMap) {
-      /* 
-       * Ensuring that a single instance of SystemMember BridgeServer is 
-       * created per AdminBridgeServer.
-       */
-      SystemMemberBridgeServerJmxImpl managedCacheServerResource = managedCacheServerResourcesMap.get(bridge.getId());
-      if (managedCacheServerResource != null) {
-        managedSystemMemberBridgeServer = managedCacheServerResource;
-      } else {
-        managedSystemMemberBridgeServer = new SystemMemberBridgeServerJmxImpl(this, bridge);
-        managedCacheServerResourcesMap.put(bridge.getId(), managedSystemMemberBridgeServer);
-      }
-    }
-    return managedSystemMemberBridgeServer;
-  }
-
-  // -------------------------------------------------------------------------
-  //   Create MBean attributes for each Statistic
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Add MBean attribute definitions for each Statistic.
-   *
-   * @param managed   the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> but 
-   *         with the new attributes added
-   */
-  ManagedBean addDynamicAttributes(ManagedBean managed)
-  throws com.gemstone.gemfire.admin.AdminException {
-    if (managed == null) {
-      throw new IllegalArgumentException(LocalizedStrings.SystemMemberCacheJmxImpl_MANAGEDBEAN_IS_NULL.toLocalizedString());
-    }
-    
-    refresh(); // to get the stats...
-    
-    // need to create a new instance of ManagedBean to clean the "slate"...
-    ManagedBean newManagedBean = new DynamicManagedBean(managed);
-    for (int i = 0; i < this.statistics.length; i++) {
-      StatisticAttributeInfo attrInfo = new StatisticAttributeInfo();
-
-      attrInfo.setName(this.statistics[i].getName());
-      attrInfo.setDisplayName(this.statistics[i].getName());
-      attrInfo.setDescription(this.statistics[i].getDescription());
-      attrInfo.setType("java.lang.Number");
-
-      attrInfo.setIs(false);
-      attrInfo.setReadable(true);
-      attrInfo.setWriteable(false);
-
-      attrInfo.setStat(this.statistics[i]);
-      
-      newManagedBean.addAttribute(attrInfo);
-    }
-
-    return newManagedBean;
-  }
-
-  // -------------------------------------------------------------------------
-  //   MBean Operations
-  // -------------------------------------------------------------------------
-
-  /** 
-   * Returns the ObjectName of the Region for the specified path.
-   *
-   * @throws AdminException
-   *         If no region with path <code>path</code> exists
-   */
-  public ObjectName manageRegion(String path)
-  throws AdminException, MalformedObjectNameException {
-    try {
-      SystemMemberRegionJmxImpl region = null;
-
-      try {
-        region = (SystemMemberRegionJmxImpl) getRegion(path);
-
-      } catch (AdminException e) {
-        MBeanUtil.logStackTrace(Level.WARN, e);
-        throw e;
-      }
-
-      if (region == null) {
-        throw new AdminException(LocalizedStrings.SystemMemberCacheJmxImpl_THIS_CACHE_DOES_NOT_CONTAIN_REGION_0.toLocalizedString(path));
-          
-      } else {
-        return ObjectName.getInstance(region.getMBeanName());
-      }
-    } catch (RuntimeException e) { 
-      MBeanUtil.logStackTrace(Level.WARN, e);
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      MBeanUtil.logStackTrace(Level.ERROR, e);
-      throw e; 
-    }
-  }
-
-  /**
-   * Creates a new cache server MBean and returns its
-   * <code>ObjectName</code>.
-   *
-   * @since 5.7
-   */
-  public ObjectName manageCacheServer()
-    throws AdminException, MalformedObjectNameException {
-
-    try {
-      SystemMemberBridgeServerJmxImpl bridge =
-        (SystemMemberBridgeServerJmxImpl) addCacheServer();
-      return ObjectName.getInstance(bridge.getMBeanName());
-    } catch (AdminException e) { 
- 	  MBeanUtil.logStackTrace(Level.WARN, e);
- 	  throw e; 
-    } catch (RuntimeException e) { 
-	  MBeanUtil.logStackTrace(Level.WARN, e); 
-	  throw e;
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      MBeanUtil.logStackTrace(Level.ERROR, e); 
-      throw e; 
-    }
-  }
-
-  /**
-   * Returns the MBean <code>ObjectName</code>s for all cache servers
-   * that serve this cache to clients.
-   *
-   * @since 4.0
-   */
-  public ObjectName[] manageCacheServers()
-    throws AdminException, MalformedObjectNameException {
-
-    try {
-      SystemMemberCacheServer[] bridges = getCacheServers();
-      ObjectName[] names = new ObjectName[bridges.length];
-      for (int i = 0; i < bridges.length; i++) {
-        SystemMemberBridgeServerJmxImpl bridge =
-          (SystemMemberBridgeServerJmxImpl) bridges[i];
-        names[i] = ObjectName.getInstance(bridge.getMBeanName());
-      }
-
-      return names;
-    } catch (AdminException e) { 
-  	  MBeanUtil.logStackTrace(Level.WARN, e); 
-  	  throw e;
-    } catch (RuntimeException e) { 
-      MBeanUtil.logStackTrace(Level.WARN, e); 
-      throw e; 
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Error e) { 
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      MBeanUtil.logStackTrace(Level.ERROR, e); 
-      throw e;
-    }
-  }
-
-  /**
-   * Returns the MBean <code>ObjectName</code>s for all bridge servers
-   * that serve this cache.
-   *
-   * @since 4.0
-   * @deprecated as of 5.7
-   */
-  @Deprecated
-  public ObjectName[] manageBridgeServers()
-    throws AdminException, MalformedObjectNameException {
-    return manageCacheServers();
-  }
-
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-	public String getMBeanName() {
-		return this.mbeanName;
-	}
-  
-	public ModelMBean getModelMBean() {
-		return this.modelMBean;
-	}
-	public void setModelMBean(ModelMBean modelMBean) {
-		this.modelMBean = modelMBean;
-	}
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.SYSTEM_MEMBER_CACHE;
-  }
-
-  
-  /**
-   * Un-registers all the statistics & cache managed resource created for this 
-   * member. After un-registering the resource MBean instances, clears 
-   * this.memberResources collection.
-   * 
-   * Creates ConfigurationParameterJmxImpl, StatisticResourceJmxImpl and 
-   * SystemMemberCacheJmxImpl. But cleans up only StatisticResourceJmxImpl and 
-   * SystemMemberCacheJmxImpl which are of type ManagedResource.  
-   */
-  public void cleanupResource() {
-    synchronized (this.managedRegionResourcesMap) {
-      Collection<SystemMemberRegionJmxImpl> values = managedRegionResourcesMap.values();
-      
-      for (SystemMemberRegionJmxImpl systemMemberRegionJmxImpl : values) {
-        MBeanUtil.unregisterMBean(systemMemberRegionJmxImpl);
-      }
-      
-      this.managedRegionResourcesMap.clear();
-    }
-    
-    synchronized (this.managedCacheServerResourcesMap) {
-      Collection<SystemMemberBridgeServerJmxImpl> values = managedCacheServerResourcesMap.values();
-      
-      for (SystemMemberBridgeServerJmxImpl SystemMemberBridgeServerJmxImpl : values) {
-        MBeanUtil.unregisterMBean(SystemMemberBridgeServerJmxImpl);
-      }
-      
-      this.managedCacheServerResourcesMap.clear();
-    }
-  }
-
-  /**
-   * Cleans up managed resources created for the region that was (created and)
-   * destroyed in a cache represented by this Managed Resource.
-   * 
-   * @param regionPath
-   *          path of the region that got destroyed
-   * @return a managed resource related to this region path
-   */
-  public ManagedResource cleanupRegionResources(String regionPath) {
-    ManagedResource cleaned = null;
-    
-    synchronized (this.managedRegionResourcesMap) {
-      Set<Entry<String, SystemMemberRegionJmxImpl>> entries = managedRegionResourcesMap.entrySet();
-      for (Iterator<Entry<String, SystemMemberRegionJmxImpl>> it = entries.iterator(); it.hasNext();) {
-        Entry<String, SystemMemberRegionJmxImpl> entry = it.next();
-        SystemMemberRegionJmxImpl managedResource = entry.getValue();
-        ObjectName                objName         = managedResource.getObjectName();
-        
-        String pathProp = objName.getKeyProperty("path");
-        if (pathProp != null && pathProp.equals(regionPath)) {
-          cleaned = managedResource;
-          it.remove();
-          
-          break;
-        }
-      }
-    }
-
-    return cleaned;
-  }
-  
-  /**
-   * Checks equality of the given object with <code>this</code> based on the
-   * type (Class) and the MBean Name returned by <code>getMBeanName()</code>
-   * methods.
-   * 
-   * @param obj
-   *          object to check equality with
-   * @return true if the given object is if the same type and its MBean Name is
-   *         same as <code>this</code> object's MBean Name, false otherwise
-   */
-  @Override
-  public boolean equals(Object obj) {
-    if ( !(obj instanceof SystemMemberCacheJmxImpl) ) {
-      return false;
-    }
-    
-    SystemMemberCacheJmxImpl other = (SystemMemberCacheJmxImpl) obj;
-
-    return this.getMBeanName().equals(other.getMBeanName());
-  }
-  
-  /**
-   * Returns hash code for <code>this</code> object which is based on the MBean 
-   * Name generated. 
-   * 
-   * @return hash code for <code>this</code> object
-   */
-  @Override
-  public int hashCode() {
-    return this.getMBeanName().hashCode();
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberJmx.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberJmx.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberJmx.java
deleted file mode 100644
index 132aae1..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberJmx.java
+++ /dev/null
@@ -1,508 +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.admin.jmx.internal;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import javax.management.MBeanException;
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.NotificationListener;
-import javax.management.ObjectName;
-import javax.management.RuntimeOperationsException;
-import javax.naming.OperationNotSupportedException;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.admin.OperationCancelledException;
-import com.gemstone.gemfire.admin.StatisticResource;
-import com.gemstone.gemfire.admin.SystemMember;
-import com.gemstone.gemfire.admin.SystemMemberCache;
-import com.gemstone.gemfire.admin.SystemMemberCacheEvent;
-import com.gemstone.gemfire.admin.SystemMemberRegionEvent;
-import com.gemstone.gemfire.cache.Operation;
-import com.gemstone.gemfire.internal.admin.ClientMembershipMessage;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * Defines methods that all <code>SystemMember</code> MBeans should
- * implement.
- *
- * @author David Whitlock
- * @since 4.0
- */
-public interface SystemMemberJmx
-  extends SystemMember, NotificationListener {
-  /** 
-   * Notification type for indicating a cache got created on a member of this 
-   * distributed system.
-   */
-  public static final String NOTIF_CACHE_CREATED = 
-    "gemfire.distributedsystem.cache.created";
-  /** 
-   * Notification type for indicating a cache is closed on a member of this 
-   * distributed system.
-   */
-  public static final String NOTIF_CACHE_CLOSED = 
-    "gemfire.distributedsystem.cache.closed";
-  /** 
-   * Notification type for indicating a region is created in a cache on a member 
-   * of this distributed system.
-   */
-  public static final String NOTIF_REGION_CREATED = 
-    "gemfire.distributedsystem.cache.region.created";
-  /** 
-   * Notification type for indicating a region was removed from a cache on a 
-   * member of this distributed system.
-   */
-  public static final String NOTIF_REGION_LOST = 
-    "gemfire.distributedsystem.cache.region.lost";
-  
-  /** Notification type for indicating client joined */
-  public static final String NOTIF_CLIENT_JOINED = 
-    "gemfire.distributedsystem.cache.client.joined";
-  
-  /** Notification type for indicating client left */
-  public static final String NOTIF_CLIENT_LEFT =
-    "gemfire.distributedsystem.cache.client.left";
-  
-  /** Notification type for indicating client crashed */
-  public static final String NOTIF_CLIENT_CRASHED =
-    "gemfire.distributedsystem.cache.client.crashed";
-
-  /**
-   * Gets the interval in seconds between config refreshes
-   *
-   * @return the current refresh interval in seconds
-   */
-  public int getRefreshInterval();
-
-  /**
-   * RefreshInterval is now set only through the AdminDistributedSystem property
-   * refreshInterval. Attempt to set refreshInterval on SystemMemberJmx MBean
-   * would result in an OperationNotSupportedException Auto-refresh is enabled
-   * on demand when a call to refreshConfig is made
-   *
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   * @deprecated since 6.0 use DistributedSystemConfig.refreshInterval instead
-   */
-  @Deprecated
-  public void setRefreshInterval(int refreshInterval) throws OperationNotSupportedException;
-
-  /**
-   * Sets the refresh interval field.
-   * Sets interval in seconds between config refreshes; zero or less turns 
-   * off auto refreshing.  Manual refreshing has no effect on when the next
-   * scheduled refresh will occur.
-   */
-  public void _setRefreshInterval(int refreshInterval);
-
-  /** 
-   * Gets this member's cache.
-   *
-   * @return <code>ObjectName</code> for this member's cache
-   *
-   * @throws AdminException
-   *         If this system member does not host a cache
-   */
-  public ObjectName manageCache() 
-    throws AdminException, MalformedObjectNameException;
-
-  /** 
-   * Gets all active StatisticResources for this manager.
-   *
-   * @return array of ObjectName instances
-   */
-  public ObjectName[] manageStats() 
-    throws AdminException, MalformedObjectNameException;
-
-  /** 
-   * Gets the active StatisticResources for this manager, based on the
-   * typeName as the key
-   *
-   * @return ObjectName of StatisticResourceJMX instance
-   */
-  public ObjectName[] manageStat(String statisticsTypeName) 
-    throws AdminException, MalformedObjectNameException;
-
-  /**
-   * Handles notification to refresh. Reacts by refreshing the values of this
-   * GemFireManager's ConfigurationParamaters.  Any other notification is
-   * ignored.
-   *
-   * @param notification  the JMX notification being received
-   * @param hb            handback object is unused
-   */
-  public void handleNotification(Notification notification, Object hb);
-
-  /**
-   * Add MBean attribute definitions for each ConfigurationParameter.
-   *
-   * @param managed the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> but 
-   *         with the new attributes added
-   */
-  public ManagedBean addDynamicAttributes(ManagedBean managed) 
-    throws AdminException;
-
-
-  /**
-   * Implementation should handle creation of cache by extracting the details
-   * from the given event object.
-   * 
-   * @param event
-   *          event object corresponding to the creation of the cache
-   */
-  public void handleCacheCreate(SystemMemberCacheEvent event);
-
-  /**
-   * Implementation should handle closure of cache by extracting the details
-   * from the given event object.
-   * 
-   * @param event
-   *          event object corresponding to the closure of the cache
-   */
-  public void handleCacheClose(SystemMemberCacheEvent event);
-
-  /**
-   * Implementation should handle creation of region by extracting the details
-   * from the given event object.
-   * 
-   * @param event
-   *          event object corresponding to the creation of a region
-   */
-  public void handleRegionCreate(SystemMemberRegionEvent event);
-
-  /**
-   * Implementation should handle loss of region by extracting the details
-   * from the given event object.
-   * 
-   * @param event
-   *          event object corresponding to the loss of a region
-   */
-  public void handleRegionLoss(SystemMemberRegionEvent event);
-
-  /**
-   * Implementation should handle client membership changes.
-   * 
-   * @param clientId
-   *          id of the client for whom membership change happened
-   * @param eventType
-   *          membership change type; one of
-   *          {@link ClientMembershipMessage#JOINED},
-   *          {@link ClientMembershipMessage#LEFT}, 
-   *          {@link ClientMembershipMessage#CRASHED}
-   */
-  public void handleClientMembership(String clientId, int eventType);
-
-  //////////////////////  Inner Classess  //////////////////////
-
-  /**
-   * A helper class that provides implementation of the
-   * <code>SystemMemberJmx</code> interface as static methods.
-   */
-  public static class Helper {
-    private static final Logger logger = LogService.getLogger();
-    
-    private static AtomicInteger notificationSequenceNumber = new AtomicInteger();
-
-    public static int setAndReturnRefreshInterval(SystemMemberJmx member,
-                                          int refreshInterval) {
-      int ret = refreshInterval;
-      
-      try {
-        MBeanUtil.registerRefreshNotification(
-          member, // NotificationListener
-          ((ManagedResource)member).getMBeanName(), // User Data
-          RefreshNotificationType.SYSTEM_MEMBER_CONFIG, 
-          refreshInterval); // int
-
-      } catch (RuntimeException e) {
-        logger.warn(e.getMessage(), e); // dead in water, print, and then ignore
-        ret = 0; // zero out to avoid more exceptions
-
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (Error e) {
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.error(e.getMessage(), e); // dead in water, print, and then ignore
-        ret = 0; // zero out to avoid more exceptions
-      }
-      
-      return ret;
-    }
-
-    public static ObjectName manageCache(SystemMemberJmx member) 
-      throws AdminException, MalformedObjectNameException {
-      boolean IthrewIt = false;
-      try {
-        SystemMemberCache cache = member.getCache();
-        if (cache == null) {
-          IthrewIt = true;
-          throw new AdminException(LocalizedStrings.SystemMemberJmx_THIS_SYSTEM_MEMBER_DOES_NOT_HAVE_A_CACHE.toLocalizedString());
-        }
-//        Assert.assertTrue(cache != null); (cannot be null)
-        SystemMemberCacheJmxImpl cacheJmx = (SystemMemberCacheJmxImpl) cache;
-        return ObjectName.getInstance(cacheJmx.getMBeanName());
-      } catch (AdminException e) { 
-        if (!IthrewIt) {
-          logger.warn(e.getMessage(), e); 
-        }
-        throw e; 
-      } catch (RuntimeException e) { 
-        logger.warn(e.getMessage(), e);
-        throw e; 
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (Error e) { 
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.error(e.getMessage(), e); 
-        throw e; 
-      }
-    }
-
-    public static ObjectName[] manageStats(SystemMemberJmx member) 
-      throws AdminException, MalformedObjectNameException {
-        try {
-          StatisticResource[] stats = member.getStats();
-          ObjectName[] onames = new ObjectName[stats.length];
-          for (int i = 0; i < stats.length; i++) {
-            StatisticResourceJmxImpl stat =
-              (StatisticResourceJmxImpl) stats[i];
-            onames[i] = ObjectName.getInstance(stat.getMBeanName());
-          }
-          return onames;
-        } catch (AdminException e) { 
-          logger.warn(e.getMessage(), e); 
-          throw e;
-        } catch (RuntimeException e) {
-          logger.warn(e.getMessage(), e); 
-          throw e; 
-        } catch (VirtualMachineError err) {
-          SystemFailure.initiateFailure(err);
-          // If this ever returns, rethrow the error.  We're poisoned
-          // now, so don't let this thread continue.
-          throw err;
-        } catch (Error e) { 
-          // Whenever you catch Error or Throwable, you must also
-          // catch VirtualMachineError (see above).  However, there is
-          // _still_ a possibility that you are dealing with a cascading
-          // error condition, so you also need to check to see if the JVM
-          // is still usable:
-          SystemFailure.checkFailure();
-          logger.error(e.getMessage(), e); 
-          throw e; 
-        }
-      }
-
-    public static ObjectName[] manageStat(SystemMemberJmx member, String statisticsTypeName) 
-    throws AdminException, MalformedObjectNameException {
-      try {
-        StatisticResource[] stats = member.getStat(statisticsTypeName);
-        if (stats==null)
-          return null;
-        else {
-          ObjectName[] statNames = new ObjectName[stats.length]; 
-          for (int i=0; i<stats.length; i++) {
-            StatisticResourceJmxImpl statJMX = (StatisticResourceJmxImpl) stats[i];
-            statNames[i] = ObjectName.getInstance(statJMX.getMBeanName()); 
-          }
-          return statNames;
-        }
-      } catch (AdminException e) { 
-        logger.warn(e.getMessage(), e); 
-        throw e; 
-      } catch (RuntimeException e) { 
-        logger.warn(e.getMessage(), e); 
-        throw e;
-      } catch (Error e) { 
-        logger.error(e.getMessage(), e); 
-        throw e;
-      }
-    }
-
-    public static void handleNotification(SystemMemberJmx member,
-                                          Notification notification,
-                                          Object hb) {
-      if (RefreshNotificationType.SYSTEM_MEMBER_CONFIG.
-                           getType().equals(notification.getType()) &&
-          ((ManagedResource)member).getMBeanName().
-                           equals(notification.getUserData())
-         ) {
-          
-        try {
-          member.refreshConfig();
-
-        } catch (com.gemstone.gemfire.admin.AdminException e) {
-          logger.warn(e.getMessage(), e);
-        } catch (OperationCancelledException e) {
-          // underlying resource is no longer reachable by remote admin
-          logger.warn(e.getMessage(), e);
-          member._setRefreshInterval(0);
-
-        } catch (java.lang.RuntimeException e) {
-          logger.warn(e.getMessage(), e); // dead in water, print, and then ignore
-          member._setRefreshInterval(0); // zero out to avoid more exceptions
-
-        } catch (VirtualMachineError err) {
-          SystemFailure.initiateFailure(err);
-          // If this ever returns, rethrow the error.  We're poisoned
-          // now, so don't let this thread continue.
-          throw err;
-        } catch (java.lang.Error e) {
-          // Whenever you catch Error or Throwable, you must also
-          // catch VirtualMachineError (see above).  However, there is
-          // _still_ a possibility that you are dealing with a cascading
-          // error condition, so you also need to check to see if the JVM
-          // is still usable:
-          SystemFailure.checkFailure();
-          logger.error(e.getMessage(), e); // dead in water, print, and then ignore
-          member._setRefreshInterval(0); // zero out to avoid more exceptions
-        }
-      }
-    }
-
-    public static ManagedBean
-      addDynamicAttributes(SystemMemberJmx member, ManagedBean managed)
-      throws AdminException {
-
-      if (managed == null) {
-        throw new IllegalArgumentException(LocalizedStrings.SystemMemberJmx_MANAGEDBEAN_IS_NULL.toLocalizedString());
-      }
-    
-      member.refreshConfig(); // to get the config parms...
-    
-      // need to create a new instance of ManagedBean to clean the "slate"...
-      ManagedBean newManagedBean = new DynamicManagedBean(managed);
-      ConfigurationParameter[] params = member.getConfiguration();
-      for (int i = 0; i < params.length; i++) {
-        ConfigurationParameterJmxImpl parm =
-          (ConfigurationParameterJmxImpl) params[i];
-        ConfigAttributeInfo attrInfo = new ConfigAttributeInfo(parm);
-
-        attrInfo.setName(parm.getName());
-        attrInfo.setDisplayName(parm.getName());
-        attrInfo.setDescription(parm.getDescription());
-        attrInfo.setType(parm.getJmxValueType().getName());
-        
-        attrInfo.setIs(false);
-        attrInfo.setReadable(true);
-        attrInfo.setWriteable(parm.isModifiable());
-        
-        newManagedBean.addAttribute(attrInfo);
-      }
-      return newManagedBean;
-    }
-
-    /**
-     * Returns the next notification sequence number.
-     * 
-     * @return the notificationSequenceNumber
-     */
-    /*default*/static int getNextNotificationSequenceNumber() {
-      return notificationSequenceNumber.incrementAndGet();
-    }
-    
-    /**
-     * Returns the cache event details extracted from the given
-     * SystemMemberCacheEvent
-     * 
-     * @param event
-     *          SystemMemberCacheEvent instance
-     * @return the cache event details extracted from the given
-     *         SystemMemberCacheEvent
-     */
-    /*default*/static String getCacheEventDetails(SystemMemberCacheEvent event) {
-      String    memberId  = event.getMemberId();
-      Operation operation = event.getOperation();
-      
-      return "CacheEvent[MemberId: "+memberId+", operation: "+operation+"]";
-    }
-    
-    /**
-     * Returns the region event details extracted from the given
-     * SystemMemberRegionEvent
-     * 
-     * @param event
-     *          SystemMemberRegionEvent instance
-     * @return the cache event details extracted from the given
-     *         SystemMemberRegionEvent
-     */  
-    /*default*/static String getRegionEventDetails(SystemMemberRegionEvent event) {
-      String    memberId  = event.getMemberId();
-      Operation operation = event.getOperation();
-      
-      return "RegionEvent[MemberId: " + memberId + ", operation: " + operation
-          + ", region:" + event.getRegionPath() + "]";
-    }
-
-    /**
-     * Sends the given notification.
-     * 
-     * @param notif
-     *          notification to send
-     * 
-     * @throws NullPointerException
-     *           if resource or ModelMBean for resource is null
-     */
-    /*default*/static void sendNotification(ManagedResource resource, Notification notif) {
-      try {
-        if (MBeanUtil.isRegistered(resource.getObjectName())) {
-          resource.getModelMBean().sendNotification(notif);
-          if (logger.isDebugEnabled()) {
-            logger.debug("Sent '{}' notification", notif.getType());
-          }
-        }
-      } catch (RuntimeOperationsException e) {
-        logger.info(LocalizedMessage.create(
-            LocalizedStrings.SystemMemberJmx_FAILED_TO_SEND_0_NOTIFICATION_FOR_1,
-            new Object[] { "'" + notif.getType() + "'", 
-                          "'" + notif.getMessage() + "'" }), 
-            e);
-      } catch (MBeanException e) {
-        logger.info(LocalizedMessage.create(
-            LocalizedStrings.SystemMemberJmx_FAILED_TO_SEND_0_NOTIFICATION_FOR_1,
-            new Object[] { "'" + notif.getType() + "'", 
-                           "'" + notif.getMessage() + "'" }), 
-            e);
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberJmxImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberJmxImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberJmxImpl.java
deleted file mode 100755
index 03e19b3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/SystemMemberJmxImpl.java
+++ /dev/null
@@ -1,593 +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.admin.jmx.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-import javax.naming.OperationNotSupportedException;
-
-import org.apache.commons.modeler.ManagedBean;
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.admin.StatisticResource;
-import com.gemstone.gemfire.admin.SystemMemberCache;
-import com.gemstone.gemfire.admin.SystemMemberCacheEvent;
-import com.gemstone.gemfire.admin.SystemMemberRegionEvent;
-import com.gemstone.gemfire.admin.internal.ConfigurationParameterImpl;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.i18n.LogWriterI18n;
-import com.gemstone.gemfire.internal.admin.ApplicationVM;
-import com.gemstone.gemfire.internal.admin.ClientMembershipMessage;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.StatResource;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * Provides MBean support for managing a SystemMember application.
- * <p>
- * TODO: refactor to implement SystemMember and delegate to SystemMemberImpl. 
- * Wrap all delegate calls w/ e.printStackTrace() since the HttpAdaptor devours 
- * them
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public class SystemMemberJmxImpl 
-extends com.gemstone.gemfire.admin.internal.SystemMemberImpl
-implements SystemMemberJmx, javax.management.NotificationListener,
-           com.gemstone.gemfire.admin.jmx.internal.ManagedResource {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** 
-   * Interval in seconds between refreshes. Value less than one results in no 
-   * refreshing 
-   */
-  private int refreshInterval = 0;
-  
-  /** The JMX object name of this managed resource */
-  private ObjectName objectName;
-
-  /** Reference to the cache MBean representing a Cache in the Cache VM Member */
-  private SystemMemberCacheJmxImpl managedSystemMemberCache;
-  
-  /** collection to collect all the resources created for this member */
-  private Map<StatResource, StatisticResourceJmxImpl> managedStatisticsResourcesMap = new HashMap<StatResource, StatisticResourceJmxImpl>();
-
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /** 
-   * Constructs an instance of SystemMemberJmxImpl.
-   *
-   * @param system  the distributed system this SystemMember is a member of
-   * @param application the internal admin application to delegate actual work
-   */
-  public SystemMemberJmxImpl(AdminDistributedSystemJmxImpl system,
-                             ApplicationVM application)
-                      throws com.gemstone.gemfire.admin.AdminException { 
-    super(system, application);
-    initializeMBean();
-  }
-  
-  /**
-   * Constructs the instance of SystemMember using the corresponding
-   * InternalDistributedMember instance of a DS member for the given
-   * AdminDistributedSystem.
-   * 
-   * @param system
-   *          Current AdminDistributedSystem instance
-   * @param member
-   *          InternalDistributedMember instance for which a SystemMember
-   *          instance is to be constructed.
-   * @throws AdminException
-   *           if construction of SystemMember fails
-   *           
-   * @since 6.5
-   */
-  protected SystemMemberJmxImpl(AdminDistributedSystemJmxImpl system,
-      InternalDistributedMember member) throws AdminException {
-    super(system, member);
-    initializeMBean();
-  }
-
-  /** Create and register the MBean to manage this resource */
-  private void initializeMBean() 
-  throws com.gemstone.gemfire.admin.AdminException {
-    //initialize Managed Resources for stats & cache first.
-//    initializeManagedResources();
-
-    this.mbeanName = new StringBuffer("GemFire.Member:id=")
-      .append(MBeanUtil.makeCompliantMBeanNameProperty(getId()))
-      .append(",type=").append(MBeanUtil.makeCompliantMBeanNameProperty(getType().getName())).toString();
-      
-    this.objectName =
-      MBeanUtil.createMBean(this, 
-        addDynamicAttributes(MBeanUtil.lookupManagedBean(this)));
-
-    // Refresh Interval
-    AdminDistributedSystemJmxImpl sysJmx = (AdminDistributedSystemJmxImpl)system;
-    if (sysJmx.getRefreshInterval() > 0)
-      this.refreshInterval = sysJmx.getRefreshInterval();
-  }
-  
-  // -------------------------------------------------------------------------
-  //   MBean attributes - accessors/mutators
-  // -------------------------------------------------------------------------
-
-  /**
-   * Gets the interval in seconds between config refreshes
-   *
-   * @return the current refresh interval in seconds
-   */
-  public int getRefreshInterval() {
-    return this.refreshInterval;
-  }
-  
-  /**
-   * RefreshInterval is now set only through the AdminDistributedSystem property
-   * refreshInterval. Attempt to set refreshInterval on SystemMemberJmx MBean
-   * would result in an OperationNotSupportedException Auto-refresh is enabled
-   * on demand when a call to refreshConfig is made
-   * 
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   * @deprecated since 6.0 use DistributedSystemConfig.refreshInterval instead
-   */
-  @Deprecated
-  public void setRefreshInterval(int refreshInterval)
-      throws OperationNotSupportedException {
-    throw new OperationNotSupportedException(
-        LocalizedStrings.MANAGED_RESOURCE_REFRESH_INTERVAL_CANT_BE_SET_DIRECTLY.toLocalizedString());
-  }
-
-  /**
-   * Sets interval in seconds between member config refreshes; zero or less
-   * turns off auto refreshing. Manual refreshing has no effect on when the next
-   * scheduled refresh will occur.
-   * 
-   * @param refreshInterval
-   *          the new refresh interval in seconds
-   */
-  public void _setRefreshInterval(int refreshInterval) {
-    boolean isRegistered = MBeanUtil.isRefreshNotificationRegistered(this,
-        RefreshNotificationType.SYSTEM_MEMBER_CONFIG);
-
-    if (isRegistered && (getRefreshInterval() == refreshInterval))
-      return;
-
-    this.refreshInterval = Helper.setAndReturnRefreshInterval(this,
-        refreshInterval);
-  }
-  
-  // -------------------------------------------------------------------------
-  //   MBean Operations
-  // -------------------------------------------------------------------------
-
-  public void refreshConfig() throws com.gemstone.gemfire.admin.AdminException {
-    // 1st call to refreshConfig would trigger
-    // the auto-refresh if an interval is set
-    if (this.refreshInterval > 0) {
-      this._setRefreshInterval(this.refreshInterval);
-    }
-
-    super.refreshConfig();
-  }
-  
-  /**
-   * Initializes Cache & Statistics managed resources.
-   * 
-   * @throws AdminException
-   *           if initialization of managed resources fails
-   */
-//  private void initializeManagedResources() throws AdminException {
-//    try {
-//      manageCache();
-//    } catch (MalformedObjectNameException e) {
-//      throw new AdminException(LocalizedStrings.SystemMemberJmxImpl_EXCEPTION_OCCURRED_WHILE_INITIALIZING_0_MBEANS_FOR_1.toLocalizedString(
-//              new Object[] {"Cache", getId()}), 
-//              e);
-//    } catch (AdminException ae) {
-//      if (LocalizedStrings.SystemMemberJmx_THIS_SYSTEM_MEMBER_DOES_NOT_HAVE_A_CACHE.toLocalizedString().equals(ae.getMessage())) {
-//        //ignore this exception for a cache-less peer 
-//      } else {
-//        throw ae;
-//      }
-//    }
-//    try {
-//      manageStats();
-//    } catch (MalformedObjectNameException e) {
-//      throw new AdminException(LocalizedStrings.SystemMemberJmxImpl_EXCEPTION_OCCURRED_WHILE_INITIALIZING_0_MBEANS_FOR_1.toLocalizedString(
-//          new Object[] {"Statistics", getId()}), 
-//          e);
-//    }
-//  }
-
-  /** 
-   * Gets this member's cache.
-   *
-   * @return <code>ObjectName</code> for this member's cache
-   *
-   * @throws AdminException
-   *         If this system member does not host a cache
-   */
-  public ObjectName manageCache() 
-    throws AdminException, MalformedObjectNameException {
-
-    return Helper.manageCache(this);
-  }
-  
-  /** 
-   * Gets all active StatisticResources for this manager.
-   *
-   * @return array of ObjectName instances
-   */
-  public ObjectName[] manageStats() 
-    throws AdminException, MalformedObjectNameException {
-
-    return Helper.manageStats(this);
-  }
-  
-  /** 
-   * Gets the active StatisticResources for this manager, based on the
-   * typeName as the key
-   *
-   * @return ObjectName of StatisticResourceJMX instance
-   */
-  public ObjectName[] manageStat(String statisticsTypeName) 
-    throws AdminException, MalformedObjectNameException {
-    
-    return Helper.manageStat(this, statisticsTypeName);
-  }
-  
-  // -------------------------------------------------------------------------
-  //   JMX Notification listener
-  // -------------------------------------------------------------------------
-
-  /**
-   * Handles notification to refresh. Reacts by refreshing the values of this
-   * SystemMember's ConfigurationParamaters. Any other notification is ignored.
-   * Given notification is handled only if there is any JMX client connected to 
-   * the system. 
-   * 
-   * @param notification
-   *          the JMX notification being received
-   * @param hb
-   *          handback object is unused
-   */
-  public void handleNotification(Notification notification, Object hb) {
-    AdminDistributedSystemJmxImpl systemJmx = 
-                                  (AdminDistributedSystemJmxImpl) this.system;
-    
-    if (!systemJmx.isRmiClientCountZero()) {
-      Helper.handleNotification(this, notification, hb);
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Template methods overriden from superclass...
-  // -------------------------------------------------------------------------
-
-  /**
-   * Template method for creating instance of ConfigurationParameter.  
-   * Overridden to return ConfigurationParameterJmxImpl.
-   */
-  @Override
-  protected ConfigurationParameter createConfigurationParameter(String name,
-                                                                String description,
-                                                                Object value,
-                                                                Class type,
-                                                                boolean userModifiable) {
-    return new ConfigurationParameterJmxImpl(
-        name, description, value, type, userModifiable);
-  }
-
-  /**
-   * Override createStatisticResource by instantiating StatisticResourceJmxImpl 
-   * if it was not created earlier otherwise returns the same instance.
-   * 
-   * @param stat
-   *         StatResource reference for which this JMX resource is to be created
-   * @return StatisticResourceJmxImpl - JMX Implementation of StatisticResource
-   * @throws AdminException
-   *           if constructing StatisticResourceJmxImpl instance fails
-   */
-  @Override
-  protected StatisticResource createStatisticResource(StatResource stat)
-    throws com.gemstone.gemfire.admin.AdminException {
-    StatisticResourceJmxImpl managedStatisticResource = null;
-    
-    synchronized (this.managedStatisticsResourcesMap) {
-      /* 
-       * Ensuring that a single instance of Statistic Resource is created per 
-       * StatResource.
-       */
-      StatisticResourceJmxImpl statisticResourceJmxImpl = managedStatisticsResourcesMap.get(stat);
-      if (statisticResourceJmxImpl != null) {
-        managedStatisticResource = statisticResourceJmxImpl;
-      } else {
-        managedStatisticResource = new StatisticResourceJmxImpl(stat, this);
-        managedStatisticResource.getStatistics();//inits timer
-        managedStatisticsResourcesMap.put(stat, managedStatisticResource);
-      }
-    }
-    return managedStatisticResource;
-  }
-
-  /**
-   * Override createSystemMemberCache by instantiating SystemMemberCacheJmxImpl 
-   * if it was not created earlier.
-   * 
-   * @param vm
-   *          GemFireVM reference for which this JMX resource is to be created
-   * @return SystemMemberCacheJmxImpl - JMX Implementation of SystemMemberCache
-   * @throws AdminException
-   *           if constructing SystemMemberCacheJmxImpl instance fails
-   */
-  @Override
-  protected SystemMemberCache createSystemMemberCache(GemFireVM vm)
-    throws com.gemstone.gemfire.admin.AdminException {
-    if (managedSystemMemberCache == null) {
-      managedSystemMemberCache = new SystemMemberCacheJmxImpl(vm);
-    }
-    return managedSystemMemberCache;
-  }
-
-  // -------------------------------------------------------------------------
-  //   Create MBean attributes for each ConfigurationParameter
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Add MBean attribute definitions for each ConfigurationParameter.
-   *
-   * @param managed the mbean definition to add attributes to
-   * @return a new instance of ManagedBean copied from <code>managed</code> but 
-   *         with the new attributes added
-   */
-  public ManagedBean addDynamicAttributes(ManagedBean managed) 
-    throws AdminException {
-
-    return Helper.addDynamicAttributes(this, managed);
-  }
-
-  // -------------------------------------------------------------------------
-  //   ManagedResource implementation
-  // -------------------------------------------------------------------------
-  
-  /** The name of the MBean that will manage this resource */
-  private String mbeanName;
-
-  /** The ModelMBean that is configured to manage this resource */
-  private ModelMBean modelMBean;
-  
-	public String getMBeanName() {
-		return this.mbeanName;
-	}
-  
-	public ModelMBean getModelMBean() {
-		return this.modelMBean;
-	}
-	public void setModelMBean(ModelMBean modelMBean) {
-		this.modelMBean = modelMBean;
-	}
-  
-  public ObjectName getObjectName() {
-    return this.objectName;
-  }
-
-  public ManagedResourceType getManagedResourceType() {
-    return ManagedResourceType.SYSTEM_MEMBER;
-  }
-  
-  /**
-   * Un-registers all the statistics & cache managed resource created for this 
-   * member. After un-registering the resource MBean instances, clears 
-   * managedStatisticsResourcesMap collection.
-   */
-  public void cleanupResource() {
-    synchronized (this.managedStatisticsResourcesMap) {
-      ConfigurationParameter[] names = getConfiguration();
-      if (names != null) {
-        for (int i = 0; i < names.length; i++) {
-          ConfigurationParameter parm = names[i];
-          ((ConfigurationParameterImpl) parm).removeConfigurationParameterListener(this);
-        }
-      }
-      this.parms.clear();
-
-      Collection<StatisticResourceJmxImpl> statisticResources = managedStatisticsResourcesMap.values();
-      
-      for (StatisticResourceJmxImpl statisticResource : statisticResources) {
-        MBeanUtil.unregisterMBean(statisticResource);
-      }
-        
-      this.managedStatisticsResourcesMap.clear();
-    }
-    MBeanUtil.unregisterMBean(managedSystemMemberCache);
-  }
-
-
-  /**
-   * Cleans up Managed Resources created for the client that was connected to
-   * the server represented by this class.
-   * 
-   * @param clientId
-   *          id of the client to be removed
-   * @return List of ManagedResources associated with the client of given client
-   *         id
-   */
-  /*
-   * This clean up is for the clients. The clients are started with a loner DM.
-   * Hence the clientId is not supposed to contain '/' as per 
-   * InternalDistributedMember.toString().  
-   */
-  public List<ManagedResource> cleanupBridgeClientResources(String clientId) {
-    List<ManagedResource> returnedResources = new ArrayList<ManagedResource>();
-
-    String compatibleId = "id_"+MBeanUtil.makeCompliantMBeanNameProperty(clientId);
-    synchronized (this.managedStatisticsResourcesMap) {
-      Set<Entry<StatResource, StatisticResourceJmxImpl>> entrySet = this.managedStatisticsResourcesMap.entrySet();
-      
-      for (Iterator<Entry<StatResource, StatisticResourceJmxImpl>> it = entrySet.iterator(); it.hasNext();) {
-        Entry<StatResource, StatisticResourceJmxImpl> entry = it.next();
-        StatisticResourceJmxImpl resource = entry.getValue();
-        if (resource.getMBeanName().contains(compatibleId)) {
-          it.remove(); //remove matching entry
-          returnedResources.add(resource);
-        }
-      }
-    }
-    return returnedResources;
-  }
-  
-  /**
-   * Implementation handles client membership changes.
-   * 
-   * @param clientId
-   *          id of the client for whom membership change happened
-   * @param eventType
-   *          membership change type; one of
-   *          {@link ClientMembershipMessage#JOINED},
-   *          {@link ClientMembershipMessage#LEFT}, 
-   *          {@link ClientMembershipMessage#CRASHED}
-   */
-  public void handleClientMembership(String clientId, int eventType) {
-    String notifType                = null;
-    List<ManagedResource> cleanedUp = null;
-    
-    if (eventType == ClientMembershipMessage.LEFT) {
-      notifType = NOTIF_CLIENT_LEFT;
-      cleanedUp = cleanupBridgeClientResources(clientId);
-    } else if (eventType == ClientMembershipMessage.CRASHED) {
-      notifType = NOTIF_CLIENT_CRASHED;
-      cleanedUp = cleanupBridgeClientResources(clientId);
-    } else if (eventType == ClientMembershipMessage.JOINED) {
-      notifType = NOTIF_CLIENT_JOINED;
-    }
-    
-    if (cleanedUp != null) {
-      for (ManagedResource resource : cleanedUp) {
-        MBeanUtil.unregisterMBean(resource);
-      }
-    }
-
-    Helper.sendNotification(this, 
-        new Notification(notifType, this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        clientId));
-  }
-  
-  /**
-   * Implementation handles creation of cache by extracting the details from the 
-   * given event object and sending the 
-   * {@link SystemMemberJmx#NOTIF_CACHE_CREATED} notification to the connected 
-   * JMX Clients.
-   * 
-   * @param event
-   *          event object corresponding to the creation of the cache
-   */
-  public void handleCacheCreate(SystemMemberCacheEvent event) {
-    Helper.sendNotification(this, 
-      new Notification(NOTIF_CACHE_CREATED, this.modelMBean, 
-      Helper.getNextNotificationSequenceNumber(),
-      Helper.getCacheEventDetails(event)));
-  }  
-
-  /**
-   * Implementation handles closure of cache by extracting the details from the 
-   * given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_CACHE_CLOSED} notification to the connected 
-   * JMX Clients. 
-   * 
-   * @param event
-   *          event object corresponding to the closure of the cache
-   */
-  public void handleCacheClose(SystemMemberCacheEvent event) {
-    Helper.sendNotification(this, 
-        new Notification(NOTIF_CACHE_CLOSED, this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        Helper.getCacheEventDetails(event)));
-  }
-
-  /**
-   * Implementation handles creation of region by extracting the details from 
-   * the given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_REGION_CREATED} notification to the connected 
-   * JMX Clients. Region Path is set as User Data in Notification. 
-   * 
-   * @param event
-   *          event object corresponding to the creation of a region
-   */
-  public void handleRegionCreate(SystemMemberRegionEvent event) {
-    Notification notification = new Notification(NOTIF_REGION_CREATED, this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        Helper.getRegionEventDetails(event));
-    
-    notification.setUserData(event.getRegionPath());
-
-    Helper.sendNotification(this, notification);
-  }
-
-  /**
-   * Implementation should handle loss of region by extracting the details from 
-   * the given event object and sending the
-   * {@link SystemMemberJmx#NOTIF_REGION_LOST} notification to the connected 
-   * JMX Clients. Region Path is set as User Data in Notification. Additionally, 
-   * it also clears the ManagedResources created for the region that is lost. 
-   * 
-   * @param event
-   *          event object corresponding to the loss of a region
-   */
-  public void handleRegionLoss(SystemMemberRegionEvent event) {
-    SystemMemberCacheJmxImpl cacheResource = this.managedSystemMemberCache;
-    
-    if (cacheResource != null) {
-      ManagedResource cleanedUp = 
-                cacheResource.cleanupRegionResources(event.getRegionPath());
-      
-      if (cleanedUp != null) {
-        MBeanUtil.unregisterMBean(cleanedUp);
-      }
-    }
-    
-    Notification notification = new Notification(NOTIF_REGION_LOST, this.modelMBean, 
-        Helper.getNextNotificationSequenceNumber(),
-        Helper.getRegionEventDetails(event));
-    
-    notification.setUserData(event.getRegionPath());
-
-    Helper.sendNotification(this, notification);
-  }
-}
-



[06/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MX4JModelMBean.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MX4JModelMBean.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MX4JModelMBean.java
deleted file mode 100755
index 1add1ec..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MX4JModelMBean.java
+++ /dev/null
@@ -1,1255 +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.
- */
-/*
- * Copyright (C) MX4J.
- * All rights reserved.
- *
- * This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
- */
-
-package com.gemstone.gemfire.admin.jmx.internal;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Date;
-import java.util.Iterator;
-
-import javax.management.Attribute;
-import javax.management.AttributeChangeNotification;
-import javax.management.AttributeChangeNotificationFilter;
-import javax.management.AttributeList;
-import javax.management.AttributeNotFoundException;
-import javax.management.Descriptor;
-import javax.management.InstanceNotFoundException;
-import javax.management.InvalidAttributeValueException;
-import javax.management.ListenerNotFoundException;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanException;
-import javax.management.MBeanInfo;
-import javax.management.MBeanNotificationInfo;
-import javax.management.MBeanOperationInfo;
-import javax.management.MBeanRegistration;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.NotificationBroadcasterSupport;
-import javax.management.NotificationEmitter;
-import javax.management.NotificationFilter;
-import javax.management.NotificationListener;
-import javax.management.ObjectName;
-import javax.management.ReflectionException;
-import javax.management.RuntimeErrorException;
-import javax.management.RuntimeOperationsException;
-import javax.management.ServiceNotFoundException;
-import javax.management.loading.ClassLoaderRepository;
-import javax.management.modelmbean.InvalidTargetObjectTypeException;
-import javax.management.modelmbean.ModelMBean;
-import javax.management.modelmbean.ModelMBeanAttributeInfo;
-import javax.management.modelmbean.ModelMBeanInfo;
-import javax.management.modelmbean.ModelMBeanOperationInfo;
-
-import mx4j.ImplementationException;
-import mx4j.log.FileLogger;
-import mx4j.log.Log;
-import mx4j.log.Logger;
-import mx4j.log.MBeanLogger;
-import mx4j.persist.FilePersister;
-import mx4j.persist.MBeanPersister;
-import mx4j.persist.PersisterMBean;
-import mx4j.util.Utils;
-
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * @author <a href="mailto:biorn_steedom@users.sourceforge.net">Simone Bordet</a>
- * @version $Revision: 1.14 $
- */
-public class MX4JModelMBean implements ModelMBean, MBeanRegistration, NotificationEmitter
-{
-   private static final String OBJECT_RESOURCE_TYPE = "ObjectReference";
-
-   private static final int ALWAYS_STALE = 1;
-   private static final int NEVER_STALE = 2;
-   private static final int STALE = 3;
-   private static final int NOT_STALE = 4;
-
-   private static final int PERSIST_NEVER = -1;
-   private static final int PERSIST_ON_TIMER = -2;
-   private static final int PERSIST_ON_UPDATE = -3;
-   private static final int PERSIST_NO_MORE_OFTEN_THAN = -4;
-
-   private MBeanServer m_mbeanServer;
-   private Object m_managedResource;
-   private boolean m_canBeRegistered;
-   private ModelMBeanInfo m_modelMBeanInfo;
-   private NotificationBroadcasterSupport m_attributeChangeBroadcaster = new NotificationBroadcasterSupport();
-   private NotificationBroadcasterSupport m_generalBroadcaster = new NotificationBroadcasterSupport();
-
-   public MX4JModelMBean() throws MBeanException, RuntimeOperationsException
-   {
-      try
-      {
-         load();
-      }
-      catch (Exception x)
-      {
-         Logger logger = getLogger();
-         logger.warn(LocalizedStrings.MX4JModelMBean_CANNOT_RESTORE_PREVIOUSLY_SAVED_STATUS.toLocalizedString(), x);
-      }
-   }
-
-   public MX4JModelMBean(ModelMBeanInfo info) throws MBeanException, RuntimeOperationsException
-   {
-      if (info == null)
-         throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_MODELMBEANINFO_PARAMETER_CANT_BE_NULL.toLocalizedString()));
-      else
-         setModelMBeanInfo(info);
-   }
-
-   private Logger getLogger()
-   {
-      return Log.getLogger(getClass().getName());
-   }
-
-   public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
-   {
-      if (m_canBeRegistered)
-      {
-         m_mbeanServer = server;
-         return name;
-      }
-      else
-      {
-         throw new MBeanRegistrationException(new IllegalStateException(LocalizedStrings.MX4JModelMBean_MODELMBEAN_CANNOT_BE_REGISTERED_UNTIL_SETMODELMBEANINFO_HAS_BEEN_CALLED.toLocalizedString()));
-      }
-   }
-
-   public void postRegister(Boolean registrationDone)
-   {
-      if (!registrationDone.booleanValue()) clear();
-   }
-
-   public void preDeregister() throws Exception
-   {
-   }
-
-   public void postDeregister()
-   {
-      clear();
-   }
-
-   private void clear()
-   {
-      m_mbeanServer = null;
-      m_managedResource = null;
-      m_modelMBeanInfo = null;
-      m_generalBroadcaster = null;
-      m_attributeChangeBroadcaster = null;
-      // PENDING: also remove generic listeners, attribute change listeners, log4j appenders...
-   }
-
-   public void setModelMBeanInfo(ModelMBeanInfo modelMBeanInfo) throws MBeanException, RuntimeOperationsException
-   {
-      if (modelMBeanInfo == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_MODELMBEANINFO_CANNOT_BE_NULL.toLocalizedString()));
-      if (!isModelMBeanInfoValid(modelMBeanInfo)) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_MODELMBEANINFO_IS_INVALID.toLocalizedString()));
-
-      m_modelMBeanInfo = (ModelMBeanInfo)modelMBeanInfo.clone();
-
-      Logger logger = getLogger();
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("ModelMBeanInfo successfully set to: " + m_modelMBeanInfo);
-      // Only now the MBean can be registered in the MBeanServer
-      m_canBeRegistered = true;
-   }
-
-   private boolean isModelMBeanInfoValid(ModelMBeanInfo info)
-   {
-      if (info == null || info.getClassName() == null) return false;
-      // PENDING: maybe more checks are needed
-      return true;
-   }
-
-   public void setManagedResource(Object resource, String resourceType) throws MBeanException, RuntimeOperationsException, InstanceNotFoundException, InvalidTargetObjectTypeException
-   {
-      if (resource == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_MANAGED_RESOURCE_CANNOT_BE_NULL.toLocalizedString()));
-      if (!isResourceTypeSupported(resourceType)) throw new InvalidTargetObjectTypeException(resourceType);
-
-      Logger logger = getLogger();
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Setting managed resource to be: " + resource);
-      m_managedResource = resource;
-   }
-
-   private boolean isResourceTypeSupported(String resourceType)
-   {
-      // For now only object reference is supported
-      return OBJECT_RESOURCE_TYPE.equals(resourceType);
-   }
-
-   private Object getManagedResource()
-   {
-      return m_managedResource;
-   }
-
-   public MBeanInfo getMBeanInfo()
-   {
-      return m_modelMBeanInfo == null ? null : (MBeanInfo)m_modelMBeanInfo.clone();
-   }
-
-   public void addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) throws MBeanException, RuntimeOperationsException, IllegalArgumentException
-   {
-      if (listener == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_LISTENER_CANNOT_BE_NULL.toLocalizedString()));
-      AttributeChangeNotificationFilter filter = new AttributeChangeNotificationFilter();
-      if (attributeName != null)
-      {
-         filter.enableAttribute(attributeName);
-      }
-      else
-      {
-         MBeanAttributeInfo[] ai = m_modelMBeanInfo.getAttributes();
-         for (int i = 0; i < ai.length; i++)
-         {
-            Descriptor d = ((ModelMBeanAttributeInfo)ai[i]).getDescriptor();
-            filter.enableAttribute((String)d.getFieldValue("name"));
-         }
-      }
-
-      getAttributeChangeBroadcaster().addNotificationListener(listener, filter, handback);
-
-      Logger logger = getLogger();
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Listener " + listener + " for attribute " + attributeName + " added successfully, handback is " + handback);
-   }
-
-   public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
-   {
-      m_generalBroadcaster.addNotificationListener(listener, filter, handback);
-   }
-
-   public MBeanNotificationInfo[] getNotificationInfo()
-   {
-      return m_modelMBeanInfo.getNotifications();
-   }
-
-   public void removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName) throws RuntimeOperationsException, ListenerNotFoundException
-   {
-      try
-      {
-         removeAttributeChangeNotificationListener(listener, attributeName, null);
-      }
-      catch (MBeanException e)
-      {
-         throw new RuntimeOperationsException(new RuntimeException(e.getMessage()));
-      }
-   }
-
-   // Not in the spec but needed
-   private void removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException
-   {
-      if (listener == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_LISTENER_CANNOT_BE_NULL.toLocalizedString()));
-      AttributeChangeNotificationFilter filter = new AttributeChangeNotificationFilter();
-      if (attributeName != null)
-      {
-         filter.enableAttribute(attributeName);
-      }
-      else
-      {
-         MBeanAttributeInfo[] ai = m_modelMBeanInfo.getAttributes();
-         for (int i = 0; i < ai.length; i++)
-         {
-            Descriptor d = ((ModelMBeanAttributeInfo)ai[i]).getDescriptor();
-            filter.enableAttribute((String)d.getFieldValue("name"));
-         }
-      }
-
-      getAttributeChangeBroadcaster().removeNotificationListener(listener, filter, handback);
-
-      Logger logger = getLogger();
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Listener " + listener + " for attribute " + attributeName + " removed successfully, handback is " + handback);
-   }
-
-   public void removeNotificationListener(NotificationListener listener) throws RuntimeOperationsException, ListenerNotFoundException
-   {
-      m_generalBroadcaster.removeNotificationListener(listener);
-   }
-
-   public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws RuntimeOperationsException, ListenerNotFoundException
-   {
-      m_generalBroadcaster.removeNotificationListener(listener, filter, handback);
-   }
-
-   public void sendAttributeChangeNotification(Attribute oldAttribute, Attribute newAttribute) throws MBeanException, RuntimeOperationsException
-   {
-      if (oldAttribute == null || newAttribute == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_CANNOT_BE_NULL.toLocalizedString()));
-      if (!oldAttribute.getName().equals(newAttribute.getName())) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_NAMES_CANNOT_BE_DIFFERENT.toLocalizedString()));
-
-      // TODO: the source must be the object name of the MBean if the listener was registered through MBeanServer
-      Object oldValue = oldAttribute.getValue();
-      AttributeChangeNotification n = new AttributeChangeNotification(this,
-                                                                      1,
-                                                                      System.currentTimeMillis(),
-                                                                      "Attribute value changed",
-                                                                      oldAttribute.getName(),
-                                                                      oldValue == null ? null : oldValue.getClass().getName(),
-                                                                      oldValue,
-                                                                      newAttribute.getValue());
-      sendAttributeChangeNotification(n);
-   }
-
-   public void sendAttributeChangeNotification(AttributeChangeNotification notification) throws MBeanException, RuntimeOperationsException
-   {
-      if (notification == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_NOTIFICATION_CANNOT_BE_NULL.toLocalizedString()));
-
-      getAttributeChangeBroadcaster().sendNotification(notification);
-
-      Logger modelMBeanLogger = getModelMBeanLogger(notification.getType());
-      if (modelMBeanLogger != null) if (modelMBeanLogger.isEnabledFor(Logger.DEBUG)) modelMBeanLogger.debug("ModelMBean log: " + new Date() + " - " + notification);
-
-      Logger logger = getLogger();
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Attribute change notification " + notification + " sent");
-   }
-
-   public void sendNotification(String message) throws MBeanException, RuntimeOperationsException
-   {
-      Notification notification = new Notification("jmx.modelmbean.general", this, 1, message);
-      sendNotification(notification);
-   }
-
-   public void sendNotification(Notification notification) throws MBeanException, RuntimeOperationsException
-   {
-     if (m_generalBroadcaster != null) {
-       m_generalBroadcaster.sendNotification(notification);
-     }
-   }
-
-   public AttributeList getAttributes(String[] attributes)
-   {
-      if (attributes == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_NAMES_CANNOT_BE_NULL.toLocalizedString()));
-
-      Logger logger = getLogger();
-
-      AttributeList list = new AttributeList();
-      for (int i = 0; i < attributes.length; ++i)
-      {
-         String attrName = attributes[i];
-         Attribute attribute = null;
-         try
-         {
-            Object value = getAttribute(attrName);
-            attribute = new Attribute(attrName, value);
-            list.add(attribute);
-         }
-         catch (Exception x)
-         {
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("getAttribute for attribute " + attrName + " failed", x);
-            // And go on with the next attribute
-         }
-      }
-      return list;
-   }
-
-   public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException
-   {
-      if (attribute == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_NAME_CANNOT_BE_NULL.toLocalizedString()));
-
-      Logger logger = getLogger();
-
-      // I want the real info, not its clone
-      ModelMBeanInfo info = getModelMBeanInfo();
-      if (info == null) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_MODELMBEANINFO_IS_NULL.toLocalizedString());
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("ModelMBeanInfo is: " + info);
-
-      // This is a clone, we use it read only
-      ModelMBeanAttributeInfo attrInfo = info.getAttribute(attribute);
-      if (attrInfo == null) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_CANNOT_FIND_MODELMBEANATTRIBUTEINFO_FOR_ATTRIBUTE_0.toLocalizedString(attribute));
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Attribute info is: " + attrInfo);
-      if (!attrInfo.isReadable()) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_0_IS_NOT_READABLE.toLocalizedString(attribute));
-
-      // This returns a clone of the mbean descriptor, we use it read only
-      Descriptor mbeanDescriptor = info.getMBeanDescriptor();
-      if (mbeanDescriptor == null) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_MBEAN_DESCRIPTOR_CANNOT_BE_NULL.toLocalizedString());
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("MBean descriptor is: " + mbeanDescriptor);
-
-      // This descriptor is a clone
-      Descriptor attributeDescriptor = attrInfo.getDescriptor();
-      if (attributeDescriptor == null) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_DESCRIPTOR_FOR_ATTRIBUTE_0_CANNOT_BE_NULL.toLocalizedString(attribute));
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Attribute descriptor is: " + attributeDescriptor);
-
-      Object returnValue = null;
-
-      String lastUpdateField = "lastUpdatedTimeStamp";
-
-      int staleness = getStaleness(attributeDescriptor, mbeanDescriptor, lastUpdateField);
-
-      if (staleness == ALWAYS_STALE || staleness == STALE)
-      {
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Value is stale");
-
-         String getter = (String)attributeDescriptor.getFieldValue("getMethod");
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("getMethod field is: " + getter);
-         if (getter == null)
-         {
-            // No getter, use default value
-            returnValue = attributeDescriptor.getFieldValue("default");
-
-            if (returnValue != null)
-            {
-               // Check if the return type is of the same type
-               // As an extension allow covariant return type
-               Class returned = returnValue.getClass();
-               Class declared = loadClassWithContextClassLoader(attrInfo.getType());
-
-               checkAssignability(returned, declared);
-            }
-
-            if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("getAttribute for attribute " + attribute + " returns default value: " + returnValue);
-         }
-         else
-         {
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Invoking attribute getter...");
-            // As an extension, allow attributes to be called on target objects also
-            Object target = resolveTargetObject(attributeDescriptor);
-            returnValue = invokeMethod(target, getter, new Class[0], new Object[0]);
-            if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Returned value is: " + returnValue);
-
-            if (returnValue != null)
-            {
-               // Check if the return type is of the same type
-               // As an extension allow covariant return type
-               Class returned = returnValue.getClass();
-               Class declared = loadClassWithContextClassLoader(attrInfo.getType());
-
-               checkAssignability(returned, declared);
-            }
-
-            // Cache the new value only if caching is needed
-            if (staleness != ALWAYS_STALE)
-            {
-               attributeDescriptor.setField("value", returnValue);
-               attributeDescriptor.setField(lastUpdateField, Long.valueOf(System.currentTimeMillis()));
-               if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Returned value has been cached");
-
-               // And now replace the descriptor with the updated clone
-               info.setDescriptor(attributeDescriptor, "attribute");
-            }
-
-            if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("getAttribute for attribute " + attribute + " returns invoked value: " + returnValue);
-         }
-      }
-      else
-      {
-         // Return cached value
-         returnValue = attributeDescriptor.getFieldValue("value");
-
-         if (returnValue != null)
-         {
-            // Check if the return type is of the same type
-            // As an extension allow covariant return type
-            Class returned = returnValue.getClass();
-            Class declared = loadClassWithContextClassLoader(attrInfo.getType());
-
-            checkAssignability(returned, declared);
-         }
-
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("getAttribute for attribute " + attribute + " returns cached value: " + returnValue);
-      }
-
-      // Puff, everything went ok
-      return returnValue;
-   }
-
-   public AttributeList setAttributes(AttributeList attributes)
-   {
-      if (attributes == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_LIST_CANNOT_BE_NULL.toLocalizedString()));
-
-      Logger logger = getLogger();
-
-      AttributeList list = new AttributeList();
-      for (Iterator i = attributes.iterator(); i.hasNext();)
-      {
-         Attribute attribute = (Attribute)i.next();
-         String name = attribute.getName();
-         try
-         {
-            setAttribute(attribute);
-            list.add(attribute);
-         }
-         catch (Exception x)
-         {
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("setAttribute for attribute " + name + " failed", x);
-            // And go on with the next one
-         }
-      }
-      return list;
-   }
-
-   public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
-   {
-      if (attribute == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_CANNOT_BE_NULL.toLocalizedString()));
-
-      Logger logger = getLogger();
-
-      // No need to synchronize: I work mostly on clones
-      // I want the real info, not its clone
-      ModelMBeanInfo info = getModelMBeanInfo();
-      if (info == null) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_MODELMBEANINFO_IS_NULL.toLocalizedString());
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("ModelMBeanInfo is: " + info);
-
-      String attrName = attribute.getName();
-      Object attrValue = attribute.getValue();
-
-      // This is a clone, we use it read only
-      ModelMBeanAttributeInfo attrInfo = info.getAttribute(attrName);
-      if (attrInfo == null) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_CANNOT_FIND_MODELMBEANATTRIBUTEINFO_FOR_ATTRIBUTE_0.toLocalizedString(attrName));
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Attribute info is: " + attrInfo);
-
-      if (!attrInfo.isWritable()) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_0_IS_NOT_WRITABLE.toLocalizedString(attrName));
-
-      // This returns a clone of the mbean descriptor, we use it read only
-      Descriptor mbeanDescriptor = info.getMBeanDescriptor();
-      if (mbeanDescriptor == null) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_MBEAN_DESCRIPTOR_CANNOT_BE_NULL.toLocalizedString());
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("MBean descriptor is: " + mbeanDescriptor);
-
-      // This descriptor is a clone
-      Descriptor attributeDescriptor = attrInfo.getDescriptor();
-      if (attributeDescriptor == null) throw new AttributeNotFoundException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_DESCRIPTOR_FOR_ATTRIBUTE_0_CANNOT_BE_NULL.toLocalizedString(attrName));
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Attribute descriptor is: " + attributeDescriptor);
-
-      String lastUpdateField = "lastUpdatedTimeStamp";
-
-      Object oldValue = null;
-      try
-      {
-         oldValue = getAttribute(attrName);
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Previous value of attribute " + attrName + ": " + oldValue);
-      }
-      catch (Exception x)
-      {
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Cannot get previous value of attribute " + attrName, x);
-      }
-
-      // Check if setMethod is present
-      String method = (String)attributeDescriptor.getFieldValue("setMethod");
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("setMethod field is: " + method);
-      if (method != null)
-      {
-         Class declared = loadClassWithContextClassLoader(attrInfo.getType());
-         if (attrValue != null)
-         {
-            Class parameter = attrValue.getClass();
-            checkAssignability(parameter, declared);
-         }
-
-         // As an extension, allow attributes to be called on target objects also
-         Object target = resolveTargetObject(attributeDescriptor);
-         invokeMethod(target, method, new Class[]{declared}, new Object[]{attrValue});
-
-         // Cache the value only if currencyTimeLimit is not 0, ie it is not always stale
-         int staleness = getStaleness(attributeDescriptor, mbeanDescriptor, lastUpdateField);
-         if (staleness != ALWAYS_STALE)
-         {
-            attributeDescriptor.setField("value", attrValue);
-            attributeDescriptor.setField(lastUpdateField, Long.valueOf(System.currentTimeMillis()));
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Attribute's value has been cached");
-         }
-         else
-         {
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Always stale, avoiding to cache attribute's value");
-         }
-      }
-      else
-      {
-         if (attrValue != null)
-         {
-            Class parameter = attrValue.getClass();
-            Class declared = loadClassWithContextClassLoader(attrInfo.getType());
-
-            checkAssignability(parameter, declared);
-         }
-
-         // Always store the value in the descriptor: no setMethod
-         attributeDescriptor.setField("value", attrValue);
-      }
-
-      // And now replace the descriptor with the updated clone
-      info.setDescriptor(attributeDescriptor, "attribute");
-
-      // Send notifications to listeners
-      if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Sending attribute change notifications");
-      sendAttributeChangeNotification(new Attribute(attrName, oldValue), attribute);
-
-      // Persist this ModelMBean
-      boolean persistNow = shouldPersistNow(attributeDescriptor, mbeanDescriptor, lastUpdateField);
-      if (persistNow)
-      {
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Persisting this ModelMBean...");
-         try
-         {
-            store();
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("ModelMBean persisted successfully");
-         }
-         catch (Exception x)
-         {
-            logger.error(LocalizedStrings.MX4JModelMBean_CANNOT_STORE_MODELMBEAN_AFTER_SETATTRIBUTE, x);
-            if (x instanceof MBeanException)
-               throw (MBeanException)x;
-            else
-               throw new MBeanException(x);
-         }
-      }
-   }
-
-   public Object invoke(String method, Object[] arguments, String[] params) throws MBeanException, ReflectionException
-   {
-      if (method == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_METHOD_NAME_CANNOT_BE_NULL.toLocalizedString()));
-      if (arguments == null) arguments = new Object[0];
-      if (params == null) params = new String[0];
-
-      Logger logger = getLogger();
-
-      // Find operation descriptor
-      ModelMBeanInfo info = getModelMBeanInfo();
-      if (info == null) throw new MBeanException(new ServiceNotFoundException(LocalizedStrings.MX4JModelMBean_MODELMBEANINFO_IS_NULL.toLocalizedString()));
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("ModelMBeanInfo is: " + info);
-
-      // This is a clone, we use it read only
-      ModelMBeanOperationInfo operInfo = info.getOperation(method);
-      if (operInfo == null) throw new MBeanException(new ServiceNotFoundException(LocalizedStrings.MX4JModelMBean_CANNOT_FIND_MODELMBEANOPERATIONINFO_FOR_OPERATION_0.toLocalizedString(method)));
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Operation info is: " + operInfo);
-
-      // This descriptor is a clone
-      Descriptor operationDescriptor = operInfo.getDescriptor();
-      if (operationDescriptor == null) throw new MBeanException(new ServiceNotFoundException(LocalizedStrings.MX4JModelMBean_OPERATION_DESCRIPTOR_FOR_OPERATION_0_CANNOT_BE_NULL.toLocalizedString(method)));
-      String role = (String)operationDescriptor.getFieldValue("role");
-      if (role == null || !role.equals("operation")) throw new MBeanException(new ServiceNotFoundException(LocalizedStrings.MX4JModelMBean_OPERATION_DESCRIPTOR_FIELD_ROLE_MUST_BE_OPERATION_NOT_0.toLocalizedString(role)));
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Operation descriptor is: " + operationDescriptor);
-
-      // This returns a clone of the mbean descriptor, we use it read only
-      Descriptor mbeanDescriptor = info.getMBeanDescriptor();
-      if (mbeanDescriptor == null) throw new MBeanException(new ServiceNotFoundException(LocalizedStrings.MX4JModelMBean_MBEAN_DESCRIPTOR_CANNOT_BE_NULL.toLocalizedString()));
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("MBean descriptor is: " + mbeanDescriptor);
-
-      Object returnValue = null;
-
-      String lastUpdateField = "lastReturnedTimeStamp";
-
-      // Check if the method should be invoked given the cache settings
-      int staleness = getStaleness(operationDescriptor, mbeanDescriptor, lastUpdateField);
-
-      if (staleness == ALWAYS_STALE || staleness == STALE)
-      {
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Value is stale");
-
-         // Find parameters classes
-         Class[] parameters = null;
-         try
-         {
-           parameters = Utils.loadClasses(Thread.currentThread().getContextClassLoader(), params);
-         }
-         catch (ClassNotFoundException x)
-         {
-            logger.error(LocalizedStrings.MX4JModelMBean_CANNOT_FIND_OPERATIONS_PARAMETER_CLASSES, x);
-            throw new ReflectionException(x);
-         }
-
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Invoking operation...");
-
-         // Find target object
-         Object target = resolveTargetObject(operationDescriptor);
-         returnValue = invokeMethod(target, method, parameters, arguments);
-
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Returned value is: " + returnValue);
-
-         if (returnValue != null)
-         {
-            Class parameter = returnValue.getClass();
-            Class declared = loadClassWithContextClassLoader(operInfo.getReturnType());
-
-            checkAssignability(parameter, declared);
-         }
-
-         // Cache the new value only if caching is needed
-         if (staleness != ALWAYS_STALE)
-         {
-            operationDescriptor.setField("lastReturnedValue", returnValue);
-            operationDescriptor.setField(lastUpdateField, Long.valueOf(System.currentTimeMillis()));
-            if (logger.isEnabledFor(Logger.TRACE))
-            {
-               logger.trace("Returned value has been cached");
-            }
-
-            // And now replace the descriptor with the updated clone
-            info.setDescriptor(operationDescriptor, "operation");
-         }
-
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("invoke for operation " + method + " returns invoked value: " + returnValue);
-      }
-      else
-      {
-         // Return cached value
-         returnValue = operationDescriptor.getFieldValue("lastReturnedValue");
-
-         if (returnValue != null)
-         {
-            Class parameter = returnValue.getClass();
-            Class declared = loadClassWithContextClassLoader(operInfo.getReturnType());
-
-            checkAssignability(parameter, declared);
-         }
-
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("invoke for operation " + method + " returns cached value: " + returnValue);
-      }
-
-      // As an extension, persist this model mbean also after operation invocation, but using only
-      // settings provided in the operation descriptor, without falling back to defaults set in
-      // the MBean descriptor
-      boolean persistNow = shouldPersistNow(operationDescriptor, null, lastUpdateField);
-      int impact = operInfo.getImpact();
-      if (persistNow && impact != MBeanOperationInfo.INFO)
-      {
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Persisting this ModelMBean...");
-         try
-         {
-            store();
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("ModelMBean persisted successfully");
-         }
-         catch (Exception x)
-         {
-            logger.error(LocalizedStrings.MX4JModelMBean_CANNOT_STORE_MODELMBEAN_AFTER_OPERATION_INVOCATION, x);
-            if (x instanceof MBeanException)
-               throw (MBeanException)x;
-            else
-               throw new MBeanException(x);
-         }
-      }
-
-      return returnValue;
-   }
-
-   private Object resolveTargetObject(Descriptor descriptor) throws MBeanException
-   {
-      Logger logger = getLogger();
-      Object target = descriptor.getFieldValue("targetObject");
-      if (logger.isEnabledFor(Logger.TRACE)) logger.trace("targetObject is: " + target);
-      if (target == null)
-      {
-         target = getManagedResource();
-      }
-      else
-      {
-         String targetObjectType = (String)descriptor.getFieldValue("targetObjectType");
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("targetObjectType is: " + targetObjectType);
-         if (targetObjectType == null)
-         {
-            // Not defined, assume object reference
-            targetObjectType = OBJECT_RESOURCE_TYPE;
-         }
-
-         if (!isResourceTypeSupported(targetObjectType)) throw new MBeanException(new InvalidTargetObjectTypeException(targetObjectType));
-      }
-      return target;
-   }
-
-   public void load() throws MBeanException, RuntimeOperationsException, InstanceNotFoundException
-   {
-      PersisterMBean persister = findPersister();
-      if (persister != null)
-      {
-         ModelMBeanInfo info = (ModelMBeanInfo)persister.load();
-         setModelMBeanInfo(info);
-      }
-   }
-
-   public void store() throws MBeanException, RuntimeOperationsException, InstanceNotFoundException
-   {
-      PersisterMBean persister = findPersister();
-      if (persister != null)
-      {
-         // Take a clone to avoid synchronization problems
-         ModelMBeanInfo info = (ModelMBeanInfo)getMBeanInfo();
-         persister.store(info);
-      }
-   }
-
-   protected ClassLoaderRepository getClassLoaderRepository()
-   {
-      if (m_mbeanServer != null)
-         return m_mbeanServer.getClassLoaderRepository();
-      else
-         return null;
-   }
-
-
-   private boolean shouldPersistNow(Descriptor attribute, Descriptor mbean, String lastUpdateField)
-   {
-      int persist = getPersistPolicy(attribute, mbean);
-      if (persist == PERSIST_NO_MORE_OFTEN_THAN)
-      {
-         Long period = getFieldTimeValue(attribute, mbean, "persistPeriod");
-         long now = System.currentTimeMillis();
-         Long lastUpdate = (Long)attribute.getFieldValue(lastUpdateField);
-         if (now - lastUpdate.longValue() < period.longValue())
-            return false;
-         else
-            return true;
-      }
-      else if (persist == PERSIST_NEVER)
-      {
-         return false;
-      }
-      else if (persist == PERSIST_ON_TIMER)
-      {
-         return false;
-      }
-      else if (persist == PERSIST_ON_UPDATE)
-      {
-         return true;
-      }
-      else
-      {
-         throw new ImplementationException(LocalizedStrings.MX4JModelMBean_INVALID_PERSIST_VALUE.toLocalizedString());
-      }
-   }
-
-   private int getPersistPolicy(Descriptor descriptor, Descriptor mbean)
-   {
-      Logger logger = getLogger();
-
-      String persist = (String)descriptor.getFieldValue("persistPolicy");
-      if (persist == null && mbean != null) persist = (String)mbean.getFieldValue("persistPolicy");
-      if (persist == null)
-      {
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("No persist policy defined, assuming Never");
-         return PERSIST_NEVER;
-      }
-      else
-      {
-         if (persist.equals("Never"))
-         {
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Persist never");
-            return PERSIST_NEVER;
-         }
-         else if (persist.equals("OnUpdate"))
-         {
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Persist on update");
-            return PERSIST_ON_UPDATE;
-         }
-         else if (persist.equals("OnTimer"))
-         {
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Persist on update");
-            return PERSIST_ON_TIMER;
-         }
-         else if (persist.equals("NoMoreOftenThan"))
-         {
-            if (logger.isEnabledFor(Logger.TRACE))
-            {
-               Long period = getFieldTimeValue(descriptor, mbean, "persistPeriod");
-               logger.trace("Persist no more often than " + period);
-            }
-            return PERSIST_NO_MORE_OFTEN_THAN;
-         }
-         else
-         {
-            // Garbage, assuming Never
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Invalid persist policy, assuming persist never");
-            return PERSIST_NEVER;
-         }
-      }
-   }
-
-   private int getStaleness(Descriptor attribute, Descriptor mbean, String lastUpdateField)
-   {
-      Logger logger = getLogger();
-
-      Long currencyTimeLimit = getFieldTimeValue(attribute, mbean, "currencyTimeLimit");
-      if (currencyTimeLimit == null)
-      {
-         // No time limit defined
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("No currencyTimeLimit defined, assuming always stale");
-         return ALWAYS_STALE;
-      }
-      else
-      {
-         long ctl = currencyTimeLimit.longValue() * 1000;
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("currencyTimeLimit is (ms): " + ctl);
-
-         if (ctl == 0)
-         {
-            // Never stale
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Never stale");
-            return NEVER_STALE;
-         }
-         else if (ctl < 0) // this should be == -1 but the other cases are in the air
-         {
-            // Always stale
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Always stale");
-            return ALWAYS_STALE;
-         }
-         else
-         {
-            Long timestamp = (Long)attribute.getFieldValue(lastUpdateField);
-            long luts = 0;
-
-            if (timestamp != null) luts = timestamp.longValue();
-            if (logger.isEnabledFor(Logger.DEBUG)) logger.debug(lastUpdateField + " is: " + luts);
-
-            long now = System.currentTimeMillis();
-            if (now < luts + ctl)
-            {
-               // Seems to be not stale, but has been set at least once ?
-               if (timestamp == null)
-               {
-                  // Return stale to call it the first time
-                  if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Stale since was never set");
-                  return STALE;
-               }
-               else
-               {
-                  if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Not stale");
-                  return NOT_STALE;
-               }
-            }
-            else
-            {
-               // Stale
-               if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Stale");
-               return STALE;
-            }
-         }
-      }
-   }
-
-   private Long getFieldTimeValue(Descriptor descriptor, Descriptor mbean, String field)
-   {
-      Logger logger = getLogger();
-
-      Object value = descriptor.getFieldValue(field);
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Descriptor's " + field + " field: " + value);
-
-      if (value == null && mbean != null)
-      {
-         value = mbean.getFieldValue(field);
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("MBean's " + field + " field: " + value);
-         if (value == null) return null;
-      }
-
-      if (value instanceof Number) return Long.valueOf(((Number)value).longValue());
-
-      if (value instanceof String)
-      {
-         try
-         {
-            long ctl = Long.parseLong((String)value);
-            return Long.valueOf(ctl);
-         }
-         catch (NumberFormatException x)
-         {
-            return Long.valueOf(0);
-         }
-      }
-      return Long.valueOf(0);
-   }
-
-   private Object invokeMethod(Object target, String methodName, Class[] params, Object[] args) throws MBeanException, ReflectionException
-   {
-      // First try on this instance, then on the target
-      Object realTarget = null;
-      Method method = null;
-      try
-      {
-         realTarget = this;
-         method = realTarget.getClass().getMethod(methodName, params);
-      }
-      catch (NoSuchMethodException x)
-      {
-         realTarget = target;
-      }
-
-      if (realTarget == null) throw new MBeanException(new ServiceNotFoundException(LocalizedStrings.MX4JModelMBean_COULD_NOT_FIND_TARGET.toLocalizedString()));
-
-      if (method == null)
-      {
-         try
-         {
-            method = realTarget.getClass().getMethod(methodName, params);
-         }
-         catch (NoSuchMethodException x)
-         {
-            throw new ReflectionException(x);
-         }
-      }
-
-      try
-      {
-         Object value = method.invoke(realTarget, args);
-         Logger logger = getLogger();
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Method invocation returned value: " + value);
-         return value;
-      }
-      catch (IllegalAccessException x)
-      {
-         throw new ReflectionException(x);
-      }
-      catch (IllegalArgumentException x)
-      {
-         throw new MBeanException(x);
-      }
-      catch (InvocationTargetException x)
-      {
-         Throwable t = x.getTargetException();
-         if (t instanceof Error)
-            throw new MBeanException(new RuntimeErrorException((Error)t));
-         else
-            throw new MBeanException((Exception)t);
-      }
-   }
-
-   private Logger getModelMBeanLogger(String notificationType) throws MBeanException
-   {
-      // Get a copy to avoid synchronization
-      ModelMBeanInfo info = getModelMBeanInfo();
-
-      // First look if there is a suitable notification descriptor, otherwise use MBean descriptor
-      Descriptor descriptor = null;
-      Logger modelMBeanLogger = null;
-      if (notificationType != null)
-      {
-         descriptor = info.getDescriptor(notificationType, "notification");
-         modelMBeanLogger = findLogger(descriptor);
-      }
-
-      if (modelMBeanLogger == null)
-      {
-         descriptor = info.getMBeanDescriptor();
-         modelMBeanLogger = findLogger(descriptor);
-         if (modelMBeanLogger != null) return modelMBeanLogger;
-      }
-
-      return null;
-   }
-
-   private Logger findLogger(Descriptor descriptor)
-   {
-      Logger logger = getLogger();
-
-      if (descriptor == null)
-      {
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Can't find MBean logger, descriptor is null");
-         return null;
-      }
-
-      String log = (String)descriptor.getFieldValue("log");
-      String location = (String)descriptor.getFieldValue("logFile");
-
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Log fields: log=" + log + ", file=" + location);
-
-      if (log == null || !Boolean.valueOf(log).booleanValue())
-      {
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Logging is not supported by this ModelMBean");
-         return null;
-      }
-      // Logger is supported, where log to ?
-      if (location == null)
-      {
-         // As an extension, see if the field logMBean has been defined
-         location = (String)descriptor.getFieldValue("logMBean");
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Log fields: mbean=" + location);
-
-         if (location == null)
-         {
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Logging is not supported by this ModelMBean");
-            return null;
-         }
-
-         // It seems that the user wants to delegate a registered mbean to log
-         try
-         {
-            ObjectName objectName = new ObjectName(location);
-            MBeanServer server = getMBeanServer();
-            if (server == null) throw new MBeanException(new IllegalStateException(LocalizedStrings.MX4JModelMBean_MX4JMODELMBEAN_IS_NOT_REGISTERED.toLocalizedString()));
-            if (server.isRegistered(objectName))
-            {
-               MBeanLogger l = new MBeanLogger(server, objectName);
-               if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("ModelMBean log supported by delegating to this MBean: " + objectName);
-               return l;
-            }
-
-            return null;
-         }
-         catch (MalformedObjectNameException x)
-         {
-            // Ah, was not a correct object name
-            if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Specified logMBean field does not contain a valid ObjectName: " + location);
-            return null;
-         }
-         catch (MBeanException x)
-         {
-            if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("logMBean field does not specify an MBean that supports logging delegation", x);
-            return null;
-         }
-      }
-      else
-      {
-         // User decided to log to a file
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("ModelMBean log supported on file system");
-         return new FileLogger(location);
-      }
-   }
-
-   private NotificationBroadcasterSupport getAttributeChangeBroadcaster()
-   {
-      return m_attributeChangeBroadcaster;
-   }
-
-   private MBeanServer getMBeanServer()
-   {
-      return m_mbeanServer;
-   }
-
-   private ModelMBeanInfo getModelMBeanInfo()
-   {
-      // No cloning performed
-      return m_modelMBeanInfo;
-   }
-
-   private PersisterMBean findPersister() throws MBeanException, InstanceNotFoundException
-   {
-      Logger logger = getLogger();
-
-      ModelMBeanInfo info = getModelMBeanInfo();
-      if (info == null)
-      {
-         // Not yet initialized
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Can't find persister, ModelMBeanInfo is null");
-         return null;
-      }
-      Descriptor mbeanDescriptor = info.getMBeanDescriptor();
-      if (mbeanDescriptor == null)
-      {
-         // This is normally should not happen if ModelMBeanInfoSupport is used
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Can't find persister, MBean descriptor is null");
-         return null;
-      }
-
-      String location = (String)mbeanDescriptor.getFieldValue("persistLocation");
-      String name = (String)mbeanDescriptor.getFieldValue("persistName");
-      String mbeanName = (String)mbeanDescriptor.getFieldValue("name");
-      if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Persistence fields: location=" + location + ", name=" + name);
-
-      if (mbeanName == null && name == null)
-      {
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Persistence is not supported by this ModelMBean");
-         return null;
-      }
-
-      // Try to see if this mbean should delegate to another mbean
-      if (name != null)
-      {
-         try
-         {
-            ObjectName objectName = new ObjectName(name.trim());
-            // OK, a valid object name
-            MBeanServer server = getMBeanServer();
-            if (server == null) throw new MBeanException(new IllegalStateException(LocalizedStrings.MX4JModelMBean_MX4JMODELMBEAN_IS_NOT_REGISTERED.toLocalizedString()));
-
-            if (server.isRegistered(objectName) && server.isInstanceOf(objectName, PersisterMBean.class.getName()))
-            {
-               // OK, the given mbean is registered with this mbean server
-               PersisterMBean persister = new MBeanPersister(server, objectName);
-               if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Persistence is delegated to this MBean: " + objectName);
-               return persister;
-            }
-            else
-            {
-               throw new InstanceNotFoundException(objectName.toString());
-            }
-         }
-         catch (MalformedObjectNameException ignored)
-         {
-            // It does not delegates to another mbean, use default
-            if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Persistence is not delegated to another MBean");
-         }
-
-         // Default is serialization to file
-         FilePersister persister = new FilePersister(location, name);
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Persistence is realized through file system in " + persister.getFileName());
-         return persister;
-      }
-      else
-      {
-         // Only location given, use MBean name
-         FilePersister persister = new FilePersister(location, mbeanName);
-         if (logger.isEnabledFor(Logger.DEBUG)) logger.debug("Persistence is realized through file system in " + persister.getFileName());
-         return persister;
-      }
-   }
-
-   private Class loadClassWithContextClassLoader(String name)
-   {
-      try
-      {
-         return Utils.loadClass(Thread.currentThread().getContextClassLoader(), name);
-      }
-      catch (ClassNotFoundException x)
-      {
-         Logger logger = getLogger();
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Cannot find attribute's declared return class", x);
-         return null;
-      }
-   }
-
-   private void checkAssignability(Class parameter, Class declared) throws MBeanException
-   {
-      Logger logger = getLogger();
-
-      if (logger.isEnabledFor(Logger.DEBUG))
-      {
-         logger.debug("The class of the parameter is: " + parameter);
-         if (parameter != null) logger.debug("The classloder of the parameter's class is: " + parameter.getClassLoader());
-         logger.debug("The class declared as type of the attribute is: " + declared);
-         if (declared != null) logger.debug("The classloader of the declared parameter's class is: " + declared.getClassLoader());
-      }
-
-      boolean assignable = false;
-
-      if (declared == null || parameter == null)
-         assignable = false;
-      else if (declared == boolean.class && parameter == Boolean.class)
-         assignable = true;
-      else if (declared == byte.class && parameter == Byte.class)
-         assignable = true;
-      else if (declared == char.class && parameter == Character.class)
-         assignable = true;
-      else if (declared == short.class && parameter == Short.class)
-         assignable = true;
-      else if (declared == int.class && parameter == Integer.class)
-         assignable = true;
-      else if (declared == long.class && parameter == Long.class)
-         assignable = true;
-      else if (declared == float.class && parameter == Float.class)
-         assignable = true;
-      else if (declared == double.class && parameter == Double.class)
-         assignable = true;
-      else
-         assignable = declared.isAssignableFrom(parameter);
-
-      if (!assignable)
-      {
-         if (logger.isEnabledFor(Logger.TRACE)) logger.trace("Parameter value's class and attribute's declared return class are not assignable");
-         throw new MBeanException(new InvalidAttributeValueException(LocalizedStrings.MX4JModelMBean_RETURNED_TYPE_AND_DECLARED_TYPE_ARE_NOT_ASSIGNABLE.toLocalizedString()));
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MX4JServerSocketFactory.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MX4JServerSocketFactory.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MX4JServerSocketFactory.java
deleted file mode 100644
index 09a7ac0..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MX4JServerSocketFactory.java
+++ /dev/null
@@ -1,160 +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.admin.jmx.internal;
-
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.util.Properties;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-import com.gemstone.gemfire.admin.internal.InetAddressUtil;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.SocketCreator;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * Creates <code>ServerSockets</code> for JMX adaptors.
- * <p>
- * The interface {@link mx4j.tools.adaptor.AdaptorServerSocketFactory} is
- * implemented in order to support securing of {@link 
- * mx4j.tools.adaptor.http.HttpAdaptor}.
- * <p>
- * The interface {@link java.rmi.server.RMIServerSocketFactory} is implemented
- * to support the securing of {@link 
- * javax.management.remote.JMXConnectorServer}.  See {@link
- * javax.management.remote.rmi.RMIConnectorServer} for the actual subclass that
- * is used for the JMX RMI adaptor.
- * <p>
- * Complete info on JSSE, including debugging, can be found at
- * <a href="http://java.sun.com/j2se/1.4.2/docs/guide/security/jsse/JSSERefGuide.html">
- * http://java.sun.com/j2se/1.4.2/docs/guide/security/jsse/JSSERefGuide.html</a>
- *
- * @author    Kirk Lund
- * @since     3.5 (old name was SSLAdaptorServerSocketFactory)
- */
-public class MX4JServerSocketFactory 
-implements mx4j.tools.adaptor.AdaptorServerSocketFactory,
-           java.rmi.server.RMIServerSocketFactory {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  private static final int DEFAULT_BACKLOG = 50;
-  
-  private final SocketCreator socketCreator;
-  private String bindAddress = DistributedSystemConfig.DEFAULT_BIND_ADDRESS;
-  private int backlog = DEFAULT_BACKLOG;
-  
-  /**
-   * Constructs new instance of MX4JServerSocketFactory.
-   * 
-   * @param useSSL
-   *          true if ssl is to be enabled
-   * @param needClientAuth
-   *          true if client authentication is required
-   * @param protocols
-   *          space-delimited list of ssl protocols to use
-   * @param ciphers
-   *          space-delimited list of ssl ciphers to use
-   * @param gfsecurityProps
-   *          vendor properties passed in through gfsecurity.properties
-   */
-  public MX4JServerSocketFactory(boolean useSSL,
-                                       boolean needClientAuth,
-                                       String protocols,
-                                       String ciphers,
-                                       Properties gfsecurityProps) {
-    if (protocols == null || protocols.length() == 0) {
-      protocols = DistributionConfig.DEFAULT_SSL_PROTOCOLS;
-    }
-    if (ciphers == null || ciphers.length() == 0) {
-      ciphers = DistributionConfig.DEFAULT_SSL_CIPHERS;
-    }
-    this.socketCreator = SocketCreator.createNonDefaultInstance(
-        useSSL, needClientAuth, protocols, ciphers, gfsecurityProps);
-  }
-
-  /**
-   * Constructs new instance of MX4JServerSocketFactory.
-   * 
-   * @param useSSL
-   *          true if ssl is to be enabled
-   * @param needClientAuth
-   *          true if client authentication is required
-   * @param protocols
-   *          space-delimited list of ssl protocols to use
-   * @param ciphers
-   *          space-delimited list of ssl ciphers to use
-   * @param bindAddress
-   *          host or address to bind to (bind-address)
-   * @param backlog
-   *          how many connections are queued
-   * @param gfsecurityProps
-   *          vendor properties passed in through gfsecurity.properties
-   */
-  public MX4JServerSocketFactory(boolean useSSL,
-                                       boolean needClientAuth,
-                                       String protocols,
-                                       String ciphers,
-                                       String bindAddress, // optional for RMI impl
-                                       int backlog, // optional for RMI impl
-                                       Properties gfsecurityProps) {
-    this(useSSL, needClientAuth, protocols, ciphers, gfsecurityProps);
-    this.bindAddress = bindAddress;
-    this.backlog = backlog;
-  }
-
-  // -------------------------------------------------------------------------
-  //   mx4j.tools.adaptor.AdaptorServerSocketFactory impl...
-  // -------------------------------------------------------------------------
-  
-	public ServerSocket createServerSocket(int port, 
-                                         int backlog, 
-                                         String bindAddress) throws IOException {
-          if ("".equals(bindAddress)) {
-            return socketCreator.createServerSocket(
-              port, backlog);
-
-          } else {
-            return socketCreator.createServerSocket(
-              port, backlog, InetAddressUtil.toInetAddress(bindAddress));
-          }
-  }
-  
-  // -------------------------------------------------------------------------
-  //   java.rmi.server.RMIServerSocketFactory impl...
-  // -------------------------------------------------------------------------
-  
-   public ServerSocket createServerSocket(int port) throws IOException {
-     ServerSocket sock = null;    
-     if ("".equals(bindAddress)) {
-       sock = socketCreator.createServerSocket(port, this.backlog);
-     } else {
-       sock = socketCreator.createServerSocket(
-               port, this.backlog, InetAddressUtil.toInetAddress(this.bindAddress));
-     }
-     
-     if (logger.isDebugEnabled()) {
-      logger.debug("MX4JServerSocketFactory RMIServerSocketFactory, INetAddress {}, LocalPort {}, LocalSocketAddress {}",
-          sock.getInetAddress(), sock.getLocalPort(), sock.getLocalSocketAddress());
-     }
-     return sock;
-   }
-   
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MailManager.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MailManager.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MailManager.java
deleted file mode 100755
index 0a88722..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MailManager.java
+++ /dev/null
@@ -1,333 +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.admin.jmx.internal;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Properties;
-
-import javax.mail.Message;
-import javax.mail.Session;
-import javax.mail.Transport;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * Provides the ways to send emails to all the registered email id It also
- * provides the way to add/remove email ids. Can be used to send email in case
- * of any alerts raised / warning / failure in gemfire.
- * 
- * @author Harsh Khanna
- * @since 5.1
- */
-public class MailManager {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  public MailManager() {
-  }
-
-  public MailManager(Properties mailProperties) {
-    setMailProperties(mailProperties);
-  }
-
-  public MailManager(File mailPropertiesFile) throws IOException {
-    Properties prop = new Properties();
-    FileInputStream fio = new FileInputStream(mailPropertiesFile);
-    try {
-      prop.load(fio);
-    }
-    finally {
-      fio.close();
-    }
-    setMailProperties(prop);
-  }
-
-  public MailManager(String mailHost, String mailFrom) {
-    this.mailHost = mailHost;
-    this.mailFrom = mailFrom;
-  }
-
-  /**
-   * Send email to all the registered email id with given subject and message
-   */
-  public void sendEmail(String subject, String message) {
-    processEmail(new EmailData(subject, message));
-  }
-
-  /**
-   * Send Emails to all the registered email id
-   * 
-   * @param emailData
-   *                Instance of EmailData
-   */
-  // Why a separate method & class EmailData needed??? 
-  private void processEmail(EmailData emailData) {
-    if (logger.isTraceEnabled()) {
-      logger.trace("Entered MailManager:processEmail");
-    }
-
-    if (mailHost == null || mailHost.length() == 0
-        || emailData == null || mailToAddresses.length == 0) {
-      logger.error(LocalizedMessage.create(LocalizedStrings.MailManager_REQUIRED_MAILSERVER_CONFIGURATION_NOT_SPECIFIED));
-      if (logger.isDebugEnabled()) {
-        logger.debug("Exited MailManager:processEmail: Not sending email as conditions not met");
-      }
-      return;
-    }
-
-    Session session = Session.getDefaultInstance(getMailHostConfiguration());
-    MimeMessage mimeMessage = new MimeMessage(session);
-    String subject = emailData.subject;
-    String message = emailData.message;
-    String mailToList = getMailToAddressesAsString();
-
-    try {
-      for (int i = 0; i < mailToAddresses.length; i++) {
-        mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(
-            mailToAddresses[i]));
-      }
-
-      if (subject == null) {
-        subject = LocalizedStrings.MailManager_ALERT_MAIL_SUBJECT.toLocalizedString();
-      }
-      mimeMessage.setSubject(subject);
-
-      if (message == null) {
-        message = "";
-      }
-      mimeMessage.setText(message);
-
-      Transport.send(mimeMessage);
-      logger.info(LocalizedMessage.create(
-          LocalizedStrings.MailManager_EMAIL_ALERT_HAS_BEEN_SENT_0_1_2,
-          new Object[] { mailToList, subject, message }));
-    } catch (VirtualMachineError err) {
-      SystemFailure.initiateFailure(err);
-      // If this ever returns, rethrow the error.  We're poisoned
-      // now, so don't let this thread continue.
-      throw err;
-    } catch (Throwable ex) {
-      // Whenever you catch Error or Throwable, you must also
-      // catch VirtualMachineError (see above).  However, there is
-      // _still_ a possibility that you are dealing with a cascading
-      // error condition, so you also need to check to see if the JVM
-      // is still usable:
-      SystemFailure.checkFailure();
-      StringBuilder buf = new StringBuilder();
-      buf.append(LocalizedStrings.MailManager_AN_EXCEPTION_OCCURRED_WHILE_SENDING_EMAIL.toLocalizedString());
-      buf.append(LocalizedStrings.MailManager_UNABLE_TO_SEND_EMAIL_PLEASE_CHECK_YOUR_EMAIL_SETTINGS_AND_LOG_FILE.toLocalizedString());
-      buf.append("\n\n").append(LocalizedStrings.MailManager_EXCEPTION_MESSAGE_0.toLocalizedString(ex.getMessage()));
-      buf.append("\n\n").append(LocalizedStrings.MailManager_FOLLOWING_EMAIL_WAS_NOT_DELIVERED.toLocalizedString());
-      buf.append("\n\t").append(LocalizedStrings.MailManager_MAIL_HOST_0.toLocalizedString(mailHost));
-      buf.append("\n\t").append(LocalizedStrings.MailManager_FROM_0.toLocalizedString(mailFrom));
-      buf.append("\n\t").append(LocalizedStrings.MailManager_TO_0.toLocalizedString(mailToList));
-      buf.append("\n\t").append(LocalizedStrings.MailManager_SUBJECT_0.toLocalizedString(subject));
-      buf.append("\n\t").append(LocalizedStrings.MailManager_CONTENT_0.toLocalizedString(message));
-
-      logger.error(buf.toString(), ex);
-    }
-    if (logger.isTraceEnabled()) {
-      logger.trace("Exited MailManager:processEmail");
-    }
-  }
-
-  /**
-   * Not yet implemented
-   */
-  public void close() {
-  }
-
-  /**
-   * @return All the registered email id as string
-   */
-  private String getMailToAddressesAsString() {
-    StringBuffer mailToList = new StringBuffer();
-    for (int i = 0; i < mailToAddresses.length; i++) {
-      mailToList.append(mailToAddresses[i]);
-      mailToList.append(", ");
-    }
-    return mailToList.toString();
-  }
-
-  /**
-   * 
-   * @return Properties consisting mailHost and mailFrom property
-   */
-  private Properties getMailHostConfiguration() {
-    Properties result = new Properties();
-    if (mailHost == null) {
-      mailHost = "";
-    }
-    if (mailFrom == null) {
-      mailFrom = "";
-    }
-    result.setProperty("mail.host", mailHost);
-    result.put("mail.from", mailFrom);
-    return result;
-  }
-
-  /**
-   * 
-   * @param host
-   *                mail host server name
-   */
-  public void setMailHost(String host) {
-    this.mailHost = host;
-  }
-
-  /**
-   * 
-   * @return mail host server name
-   */
-  public String getMailHost() {
-    return this.mailHost;
-  }
-
-  /**
-   * 
-   * @param fromAddress
-   *                mailFrom email id
-   */
-  public void setMailFromAddress(String fromAddress) {
-    mailFrom = fromAddress;
-  }
-
-  /**
-   * 
-   * @return mailFrom email id
-   */
-  public String getMailFromAddress() {
-    return mailFrom;
-  }
-
-  /**
-   * add new mail id to ToList
-   */
-  public void addMailToAddress(String toAddress) {
-    mailToSet.add(toAddress);
-    mailToAddresses = getAllToAddresses();
-  }
-
-  /**
-   * remove given mail id from ToList
-   */
-  public void removeMailToAddress(String toAddress) {
-    mailToSet.remove(toAddress);
-    mailToAddresses = getAllToAddresses();
-  }
-
-  /**
-   * @return list all the registered email id
-   */
-  public String[] getAllToAddresses() {
-    return (String[])mailToSet.toArray(new String[0]);
-  }
-
-  /**
-   * remove all the registered email ids from ToList
-   */
-  public void removeAllMailToAddresses() {
-    mailToSet.clear();
-    mailToAddresses = new String[0];
-  }
-
-  /**
-   * Set the mail properties, e.g mail host, mailFrom, MailTo etc
-   */
-  public void setMailProperties(Properties mailProperties) {
-    mailHost = mailProperties.getProperty(PROPERTY_MAIL_HOST);
-    mailFrom = mailProperties.getProperty(PROPERTY_MAIL_FROM);
-    String mailList = mailProperties.getProperty(PROPERTY_MAIL_TO_LIST, "");
-    String split[] = mailList.split(",");
-    removeAllMailToAddresses();
-    for (int i = 0; i < split.length; i++) {
-      addMailToAddress(split[i].trim());
-    }
-  }
-
-  @Override
-  public String toString() {
-    StringBuffer buffer = new StringBuffer(200);
-    buffer.append("[Mail Host: ");
-    buffer.append(getMailHost());
-    buffer.append("]");
-    buffer.append(" [Mail From: ");
-    buffer.append(getMailFromAddress());
-    buffer.append("]");
-    buffer.append(" [Mail To: ");
-    if (mailToAddresses.length > 0) {
-
-      for (int i = 0; i < mailToAddresses.length; i++) {
-        buffer.append(mailToAddresses[i]);
-        buffer.append(", ");
-      }
-      buffer.replace(buffer.length() - 2, buffer.length(), "");
-    }
-    else {
-      buffer.append(" Undefined");
-    }
-    buffer.append("]");
-    return buffer.toString();
-  }
-
-  private HashSet mailToSet = new HashSet();
-
-  private String mailToAddresses[] = new String[0];
-
-  protected String mailHost;
-
-  protected String mailFrom;
-
-  public final static String PROPERTY_MAIL_HOST = "mail.host";
-
-  public final static String PROPERTY_MAIL_FROM = "mail.from";
-
-  public final static String PROPERTY_MAIL_TO_LIST = "mail.toList";
-
-  /**
-   * Incorporating subject and message of email
-   * 
-   * @author Harsh Khanna
-   * 
-   */
-  static private class EmailData {
-    String subject;
-
-    String message;
-
-    EmailData(String subject, String message) {
-      this.subject = subject;
-      this.message = message;
-    }
-  }
-
-  public static void main(String args[]) {
-    MailManager mailManager = new MailManager("mailsrv1.gemstone.com",
-        "hkhanna@gemstone.com");
-    mailManager.sendEmail("Alert!", "Test");
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ManagedResource.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ManagedResource.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ManagedResource.java
deleted file mode 100755
index f4bc27c..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ManagedResource.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.admin.jmx.internal;
-
-import javax.management.ObjectName;
-import javax.management.modelmbean.ModelMBean;
-
-/**
- * Represents a component or resource that is managed by a 
- * {@link javax.management.modelmbean.ModelMBean}.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public interface ManagedResource {
-  
-  /** 
-   * The prefix of MBean names. Note: this is NOT used by Members, Stats, or
-   * any other MBean that has it's own domain.
-   *
-   * @see #getMBeanName 
-   */
-  public static final String MBEAN_NAME_PREFIX = "GemFire:type=";
-
-  /** 
-   * Returns the name of the ModelMBean that will manage this
-   * resource.  They [some] are of the form
-   *
-   * <PRE>
-   * MBEAN_NAME_PREFIX + typeName + ",id=" + id
-   * </PRE>
-   *
-   * @see #MBEAN_NAME_PREFIX
-   */
-  public String getMBeanName();
-  
-  /** Returns the ModelMBean that is configured to manage this resource */
-  public ModelMBean getModelMBean();
-
-  /** Sets the ModelMBean that is configured to manage this resource */
-  public void setModelMBean(ModelMBean modelMBean);
-  
-  /** 
-   * Returns the enumerated ManagedResourceType of this resource.
-   *
-   * @see ManagedResourceType
-   */
-  public ManagedResourceType getManagedResourceType();
-
-  /**
-   * Returns the JMX <code>ObjectName</code> of this managed resource.
-   *
-   * @see #getMBeanName
-   */
-  public ObjectName getObjectName();
- 
-  /**
-   * Perform any cleanup necessary before stopping management of this resource.
-   */
-  public void cleanupResource();
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ManagedResourceType.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ManagedResourceType.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ManagedResourceType.java
deleted file mode 100755
index 654723a..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/ManagedResourceType.java
+++ /dev/null
@@ -1,210 +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.admin.jmx.internal;
-
-/**
- * Type-safe definition for ModelMBean managed resources.  The class type 
- * ({@link #getClassTypeName}) must match the fully qualified class name listed
- * in the type descriptor in mbeans-descriptors.xml.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public class ManagedResourceType implements java.io.Serializable {
-  private static final long serialVersionUID = 3752874768667480449L;
-  
-  /** Agent managed resource type */
-  public static final ManagedResourceType AGENT = 
-      new ManagedResourceType("Agent", com.gemstone.gemfire.admin.jmx.Agent.class);
-
-  /** DistributedSystem managed resource type */
-  public static final ManagedResourceType DISTRIBUTED_SYSTEM = 
-      new ManagedResourceType("AdminDistributedSystem", com.gemstone.gemfire.admin.AdminDistributedSystem.class);
-
-  /** SystemMember managed resource type */
-  public static final ManagedResourceType SYSTEM_MEMBER = 
-      new ManagedResourceType("SystemMember", com.gemstone.gemfire.admin.SystemMember.class);
-
-  /** SystemMemberCache managed resource type */
-  public static final ManagedResourceType SYSTEM_MEMBER_CACHE = 
-      new ManagedResourceType("SystemMemberCache", com.gemstone.gemfire.admin.SystemMemberCache.class);
-
-  /** SystemMemberCache managed resource type */
-  public static final ManagedResourceType SYSTEM_MEMBER_REGION = 
-      new ManagedResourceType("SystemMemberRegion", com.gemstone.gemfire.admin.SystemMemberRegion.class);
-
-  /** SystemMemberCacheServer managed resource type */
-  public static final ManagedResourceType SYSTEM_MEMBER_CACHE_SERVER = 
-      new ManagedResourceType("SystemMemberCacheServer", com.gemstone.gemfire.admin.SystemMemberCacheServer.class);
-
-  /** CacheVm managed resource type */
-  public static final ManagedResourceType CACHE_VM = 
-      new ManagedResourceType("CacheVm", com.gemstone.gemfire.admin.CacheVm.class);
-
-  /** StatisticResource managed resource type */
-  public static final ManagedResourceType STATISTIC_RESOURCE = 
-      new ManagedResourceType("StatisticResource", com.gemstone.gemfire.admin.StatisticResource.class);
-
-  public static final ManagedResourceType GEMFIRE_HEALTH = 
-      new ManagedResourceType("GemFireHealth", com.gemstone.gemfire.admin.GemFireHealth.class);
-
-  public static final ManagedResourceType DISTRIBUTED_SYSTEM_HEALTH_CONFIG = 
-      new ManagedResourceType("DistributedSystemHealthConfig", com.gemstone.gemfire.admin.DistributedSystemHealthConfig.class);
-
-  public static final ManagedResourceType GEMFIRE_HEALTH_CONFIG = 
-      new ManagedResourceType("GemFireHealthConfig", com.gemstone.gemfire.admin.GemFireHealthConfig.class);
-
-  public static final ManagedResourceType DISTRIBUTION_LOCATOR = 
-      new ManagedResourceType("DistributionLocator", com.gemstone.gemfire.admin.DistributionLocator.class);
-
-  ////////////////////  Instance Fields  ////////////////////
-
-  /** The display-friendly name of this managed resource type. */
-  private final transient String name;
-  
-  /** 
-   * The interface/class used to externally represent this type. Note: this must 
-   * match the mbean type descriptor in mbeans-descriptors.xml.
-   */
-  private final transient Class clazz;
-  
-  // The 4 declarations below are necessary for serialization
-  /** int used as ordinal to represent this Scope */
-  public final int ordinal = nextOrdinal++;
-
-  private static int nextOrdinal = 0;
-  
-  private static final ManagedResourceType[] VALUES =
-    { AGENT, DISTRIBUTED_SYSTEM, SYSTEM_MEMBER,
-      SYSTEM_MEMBER_CACHE, SYSTEM_MEMBER_REGION,
-      SYSTEM_MEMBER_CACHE_SERVER, CACHE_VM,
-      STATISTIC_RESOURCE, GEMFIRE_HEALTH, DISTRIBUTED_SYSTEM_HEALTH_CONFIG, 
-      GEMFIRE_HEALTH_CONFIG, DISTRIBUTION_LOCATOR 
-    };
-
-  private Object readResolve() throws java.io.ObjectStreamException {
-    return VALUES[ordinal];  // Canonicalize
-  }
-  
-  /** Creates a new instance of ManagedResourceType. */
-  private ManagedResourceType(String name, Class clazz) {
-    this.name = name;
-    this.clazz = clazz;
-  }
-    
-  /** Returns the ManagedResourceType represented by specified ordinal */
-  public static ManagedResourceType fromOrdinal(int ordinal) {
-    return VALUES[ordinal];
-  }
-
-  /** Returns the display-friendly name of this managed resource type */
-  public String getName() {
-    return this.name;
-  }
-  
-  /** Returns the interface/class used to externally represent this type */
-  public Class getClassType() {
-    return this.clazz;
-  }
-  
-  /** 
-   * Returns the fully qualified name of the interface/class used to externally 
-   * represent this type 
-   */
-  public String getClassTypeName() {
-    return this.clazz.getName();
-  }
-  
-  /** Returns true if this is <code>AGENT</code>. */
-  public boolean isAgent() {
-    return this.equals(AGENT);
-  }
-    
-  /** Returns true if this is <code>DISTRIBUTED_SYSTEM</code>. */
-  public boolean isDistributedSystem() {
-    return this.equals(DISTRIBUTED_SYSTEM);
-  }
-    
-  /** Returns true if this is <code>SYSTEM_MEMBER</code>. */
-  public boolean isSystemMember() {
-    return this.equals(SYSTEM_MEMBER);
-  }
-    
-  /** Returns whether this is <code>STATISTIC_RESOURCE</code>. */
-  public boolean isStatisticResource() {
-    return this.equals(STATISTIC_RESOURCE);
-  }
-    
-  /** Return whether this is <code>GEMFIRE_HEALTH</code>. */
-  public boolean isGemFireHealth() {
-    return this.equals(GEMFIRE_HEALTH);
-  }
-
-  /** 
-   * Returns a string representation for this type.
-   */
-  @Override
-  public String toString() {
-      return this.name;
-  }
-  
-	/**
-	 * Indicates whether some other object is "equal to" this one.
-	 *
-	 * @param  other  the reference object with which to compare.
-	 * @return true if this object is the same as the obj argument;
-	 *         false otherwise.
-	 */
-  @Override
-	public boolean equals(Object other) {
-		if (other == this) return true;
-		if (other == null) return false;
-		if (!(other instanceof ManagedResourceType)) return  false;
-		final ManagedResourceType that = (ManagedResourceType) other;
-
-		if (this.name != that.name &&
-	  		!(this.name != null &&
-	  		this.name.equals(that.name))) return false;
-		if (this.clazz != that.clazz &&
-	  		!(this.clazz != null &&
-	  		this.clazz.equals(that.clazz))) return false;
-
-		return true;
-	}
-
-	/**
-	 * Returns a hash code for the object. This method is supported for the
-	 * benefit of hashtables such as those provided by java.util.Hashtable.
-	 *
-	 * @return the integer 0 if description is null; otherwise a unique integer.
-	 */
-  @Override
-	public int hashCode() {
-		int result = 17;
-		final int mult = 37;
-
-		result = mult * result + 
-			(this.name == null ? 0 : this.name.hashCode());
-		result = mult * result + 
-			(this.clazz == null ? 0 : this.clazz.hashCode());
-
-		return result;
-	}
-
-}
-


[15/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/EnabledManagedEntityController.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/EnabledManagedEntityController.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/EnabledManagedEntityController.java
deleted file mode 100755
index 8098455..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/EnabledManagedEntityController.java
+++ /dev/null
@@ -1,412 +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.admin.internal;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.Properties;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.AdminDistributedSystem;
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-import com.gemstone.gemfire.admin.ManagedEntity;
-import com.gemstone.gemfire.admin.ManagedEntityConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.ProcessOutputReader;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.LoggingThreadGroup;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * Implements the actual administration (starting, stopping, etc.) of
- * GemFire {@link ManagedEntity}s.  It {@link Runtime#exec(java.lang.String) executes}
- * commands to administer the entities based on information provided
- * by the {@link InternalManagedEntity} object.  Note that it does not
- * use <code>SystemAdmin</code> to manage "local" entities; it always
- * execs the scripts.
- *
- * <P>
- *
- * This class is a refactoring of <code>Systemcontroller</code>,
- * <code>RemoteCommand</code>, and <code>LocatorRemoteCommand</code>.
- *
- * @author David Whitlock
- * @author Kirk Lund (original SystemController)
- * @since 4.0
- */
-class EnabledManagedEntityController implements ManagedEntityController {
-  private static final Logger logger = LogService.getLogger();
-
-//  /** A lock to ensure that only entity is managed at a time.  See bug
-//   * 31374. */
-//  private static Object startStopLock = new Object();
-
-  /** Known strings found in output indicating error. */
-  private static final String[] ERROR_OUTPUTS = new String[] {
-    "No such file or directory",
-    "The system cannot find the file specified.",
-    "Access is denied.",
-    "cannot open",
-    "ERROR"
-  };
-
-  /** Token in command prefix to be replaced with actual HOST */
-  private static final String HOST = "{HOST}";
-
-  /** Token in command prefix to be replaced with actual execution CMD */
-  private static final String CMD = "{CMD}";
-
-  //////////////////////  Instance Fields  //////////////////////
-
-  /** The thread group in which threads launched by this system
-   * controller reside. */
-  private final ThreadGroup threadGroup;
-
-  /** System to which the managed entities belong */
-  private final AdminDistributedSystem system;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>ManagedEntityController</code> for entities
-   * in the given distributed system.
-   */
-  EnabledManagedEntityController(AdminDistributedSystem system) {
-    this.system = system;
-    this.threadGroup =
-      LoggingThreadGroup.createThreadGroup("ManagedEntityController threads", logger);
-  }
-
-  /////////////////////  Instance Methods  /////////////////////
-
-  /**
-   * Returns <code>true</code> if the <code>output</code> string
-   * contains a known error message.
-   */
-  private boolean outputIsError(String output) {
-    if (output == null) return false;
-    boolean error = false;
-    for (int i = 0; i < ERROR_OUTPUTS.length; i++) {
-      error = output.indexOf(ERROR_OUTPUTS[i]) > -1;
-      if (error) return error;
-    }
-    return error;
-  }
-
-  /**
-   * Executes a command using {@link Runtime#exec(java.lang.String)}.
-   *
-   * @param command
-   *        The full command to remotely execute
-   *
-   * @return Output from the command that was executed or
-   *         <code>null</code> if the executing the command failed.
-   */
-  protected String execute(String command,
-                         InternalManagedEntity entity) {
-    /* TODO: this is getting ugly... clients of this method really need to
-       have the ability to do their own parsing/checking of 'output' */
-    if (command == null || command.length() == 0) {
-      throw new IllegalArgumentException(LocalizedStrings.ManagedEntityController_EXECUTION_COMMAND_IS_EMPTY.toLocalizedString());
-    }
-
-    File workingDir =
-      new File(entity.getEntityConfig().getWorkingDirectory());
-    logger.info(LocalizedMessage.create(LocalizedStrings.ManagedEntityController_EXECUTING_REMOTE_COMMAND_0_IN_DIRECTORY_1, new Object[] {command, workingDir}));
-    Process p = null;
-    try {
-      p = Runtime.getRuntime().exec(command, null /* env */,
-                                    workingDir);
-
-    } catch (java.io.IOException e) {
-      logger.fatal(LocalizedMessage.create(LocalizedStrings.ManagedEntityController_WHILE_EXECUTING_0, command), e);
-      return null;
-    }
-
-    final ProcessOutputReader pos = new ProcessOutputReader(p);
-    int retCode = pos.getExitCode();
-    final String output = pos.getOutput();
-    logger.info(LocalizedMessage.create(LocalizedStrings.ManagedEntityController_RESULT_OF_EXECUTING_0_IS_1, new Object[] {command, Integer.valueOf(retCode)}));
-    logger.info(LocalizedMessage.create(LocalizedStrings.ManagedEntityController_OUTPUT_OF_0_IS_1, new Object[] {command, output}));
-
-    if (retCode != 0 || outputIsError(output)) {
-      logger.warn(LocalizedMessage.create(LocalizedStrings.ManagedEntityController_REMOTE_EXECUTION_OF_0_FAILED, command));
-      return null;
-    }
-
-    return output;
-  }
-
-  /** Returns true if the path ends with a path separator. */
-  private boolean endsWithSeparator(String path) {
-    return path.endsWith("/") || path.endsWith("\\");
-  }
-
-  /** Translates the path between Windows and UNIX. */
-  private String getOSPath(String path) {
-    if (pathIsWindows(path)) {
-      return path.replace('/', '\\');
-    } else {
-      return path.replace('\\', '/');
-    }
-  }
-
-//  /** Returns true if the path is on Windows. */
-//  private boolean pathIsWindows(File path) {
-//    return pathIsWindows(path.toString());
-//  }
-
-  /** Returns true if the path is on Windows. */
-  private boolean pathIsWindows(String path) {
-    if (path != null && path.length() > 1) {
-      return (Character.isLetter(path.charAt(0)) && path.charAt(1) == ':') ||
-        (path.startsWith("//") || path.startsWith("\\\\"));
-    }
-    return false;
-  }
-
-  /**
-   * If the managed entity resides on a remote host, then
-   * <code>command</code> is munged to take the remote command into account.
-   *
-   * @throws IllegalStateException
-   *        If a remote command is required, but one has not been
-   *        specified.
-   */
-  private String arrangeRemoteCommand(InternalManagedEntity entity,
-                                      String cmd) {
-
-    String host = entity.getEntityConfig().getHost();
-    if (InetAddressUtil.isLocalHost(host)) {
-      // No arranging necessary
-      return cmd;
-    }
-
-    String prefix = entity.getEntityConfig().getRemoteCommand();
-    if (prefix == null || prefix.length() <= 0) {
-      prefix = entity.getDistributedSystem().getRemoteCommand();
-    }
-
-    if (prefix == null || prefix.length() <= 0) {
-      throw new IllegalStateException(LocalizedStrings.ManagedEntityController_A_REMOTE_COMMAND_MUST_BE_SPECIFIED_TO_OPERATE_ON_A_MANAGED_ENTITY_ON_HOST_0
-          .toLocalizedString(host));
-    }
-
-    int hostIdx = prefix.indexOf(HOST);
-    int cmdIdx = prefix.indexOf(CMD);
-    if (hostIdx == -1 && cmdIdx == -1) {
-      return prefix + " " + host + " " + cmd;
-    }
-
-    if (hostIdx >= 0) {
-      String start = prefix.substring(0, hostIdx);
-      String end = null;
-      if (hostIdx + HOST.length() >= prefix.length()) {
-        end = "";
-      } else {
-        end = prefix.substring(hostIdx + HOST.length());
-      }
-      prefix = start + host + end;
-      cmdIdx = prefix.indexOf(CMD); //recalculate;
-    }
-
-    if (cmdIdx >= 0) {
-      String start = prefix.substring(0, cmdIdx);
-      String end = null;
-      if (cmdIdx + CMD.length() >= prefix.length()) {
-        end = "";
-      } else {
-        end = prefix.substring(cmdIdx + CMD.length());
-      }
-      prefix = start + cmd + end;
-    }
-    return prefix;
-  }
-
-  /**
-   * Returns the full path to the executable in
-   * <code>$GEMFIRE/bin</code> taking into account the {@linkplain
-   * ManagedEntityConfig#getProductDirectory product directory} and the
-   * platform's file separator.
-   *
-   * <P>
-   *
-   * Note: we should probably do a better job of determine whether or
-   * not the machine on which the entity runs is Windows or Linux.
-   *
-   * @param executable
-   *        The name of the executable that resides in
-   *        <code>$GEMFIRE/bin</code>.
-   */
-  public String getProductExecutable(InternalManagedEntity entity,
-                                     String executable) {
-    String productDirectory =
-      entity.getEntityConfig().getProductDirectory();
-    String path = null;
-    File productDir = new File(productDirectory);
-//    if (productDir != null) (cannot be null)
-    {
-      path = productDir.getPath();
-      if (!endsWithSeparator(path)) {
-        path += File.separator;
-      }
-      path += "bin" + File.separator;
-    }
-//    else {
-//      path = "";
-//    }
-
-    String bat = "";
-    if (pathIsWindows(path)) {
-      bat = ".bat";
-    }
-    return getOSPath(path) + executable + bat;
-  }
-
-  /**
-   * Builds optional SSL command-line arguments.  Returns null if SSL is not
-   * enabled for the distributed system.
-   */
-  public String buildSSLArguments(DistributedSystemConfig config) {
-    Properties sslProps = buildSSLProperties(config, true);
-    if (sslProps == null) return null;
-
-    StringBuffer sb = new StringBuffer();
-    for (Iterator iter = sslProps.keySet().iterator(); iter.hasNext();) {
-      String key = (String) iter.next();
-      String value = sslProps.getProperty(key);
-      sb.append(" -J-D" + key + "=" + value);
-    }
-
-    return sb.toString();
-  }
-
-  /**
-   * Builds optional SSL properties for DistributionLocator. Returns null if SSL
-   * is not enabled for the distributed system.
-   *
-   * @param forCommandLine
-   *                true indicates that
-   *                {@link DistributionConfig#GEMFIRE_PREFIX} should be
-   *                prepended so the argument will become -Dgemfire.xxxx
-   */
-  private Properties buildSSLProperties(DistributedSystemConfig config,
-                                        boolean forCommandLine) {
-    if (!config.isSSLEnabled()) return null;
-
-    String prefix = "";
-    if (forCommandLine) prefix = DistributionConfig.GEMFIRE_PREFIX;
-
-    Properties sslProps = (Properties) config.getSSLProperties().clone();
-    // add ssl-enabled, etc...
-    sslProps.setProperty(prefix +
-                         DistributionConfig.MCAST_PORT_NAME,
-                         "0");
-    sslProps.setProperty(prefix +
-                         DistributionConfig.SSL_ENABLED_NAME,
-                         String.valueOf(config.isSSLEnabled()));
-    sslProps.setProperty(prefix +
-                         DistributionConfig.SSL_CIPHERS_NAME,
-                         config.getSSLCiphers());
-    sslProps.setProperty(prefix +
-                         DistributionConfig.SSL_PROTOCOLS_NAME,
-                         config.getSSLProtocols());
-    sslProps.setProperty(prefix +
-                         DistributionConfig.SSL_REQUIRE_AUTHENTICATION_NAME,
-                         String.valueOf(config.isSSLAuthenticationRequired()));
-    return sslProps;
-  }
-
-
-  /**
-   * Starts a managed entity.
-   */
-  public void start(final InternalManagedEntity entity) {
-    final String command =
-      arrangeRemoteCommand(entity, entity.getStartCommand());
-    Thread start = new Thread(this.threadGroup, new Runnable() {
-        public void run() {
-          execute(command, entity);
-        }
-      }, "Start " + entity.getEntityType());
-    start.start();
-  }
-
-  /**
-   * Stops a managed entity.
-   */
-  public void stop(final InternalManagedEntity entity) {
-    final String command =
-      arrangeRemoteCommand(entity, entity.getStopCommand());
-    Thread stop = new Thread(this.threadGroup, new Runnable() {
-        public void run() {
-          execute(command, entity);
-        }
-      }, "Stop " + entity.getEntityType());
-    stop.start();
-  }
-
-  /**
-   * Returns whether or not a managed entity is running
-   */
-  public boolean isRunning(InternalManagedEntity entity) {
-    final String command =
-      arrangeRemoteCommand(entity, entity.getIsRunningCommand());
-    String output = execute(command, entity);
-
-    if (output == null ||
-        (output.indexOf("stop" /* "ing" "ped" */) != -1) ||
-        (output.indexOf("killed") != -1) ||
-        (output.indexOf("starting") != -1)) {
-      return false;
-
-    } else if (output.indexOf("running") != -1) {
-      return true;
-
-    } else {
-      throw new IllegalStateException(LocalizedStrings.ManagedEntityController_COULD_NOT_DETERMINE_IF_MANAGED_ENTITY_WAS_RUNNING_0
-          .toLocalizedString(output));
-    }
-  }
-
-  /**
-   * Returns the contents of a locator's log file.  Other APIs are
-   * used to get the log file of managed entities that are also system
-   * members.
-   */
-  public String getLog(DistributionLocatorImpl locator) {
-    String command =
-      arrangeRemoteCommand(locator, locator.getLogCommand());
-    return execute(command, locator);
-  }
-
-  /**
-   * Returns the contents of the given directory using the given
-   * managed entity to determine the host and remote command.
-   */
-  private String listDirectory(InternalManagedEntity entity,
-                               String dir) {
-    ManagedEntityConfig config = entity.getEntityConfig();
-    String listFile =
-        pathIsWindows(config.getProductDirectory()) ? "dir " : "ls ";
-    String command =
-      arrangeRemoteCommand(entity, listFile + dir);
-    return execute(command, entity);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FinishBackupRequest.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FinishBackupRequest.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FinishBackupRequest.java
deleted file mode 100644
index 58577d6..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FinishBackupRequest.java
+++ /dev/null
@@ -1,172 +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.admin.internal;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.distributed.internal.DistributionMessage;
-import com.gemstone.gemfire.distributed.internal.ReplyException;
-import com.gemstone.gemfire.internal.admin.remote.AdminFailureResponse;
-import com.gemstone.gemfire.internal.admin.remote.AdminMultipleReplyProcessor;
-import com.gemstone.gemfire.internal.admin.remote.AdminResponse;
-import com.gemstone.gemfire.internal.admin.remote.CliLegacyMessage;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * A request send from an admin VM to all of the peers to indicate
- * that that should complete the backup operation.
- * 
- * @author dsmith
- *
- */
-public class FinishBackupRequest  extends CliLegacyMessage {
-  private static final Logger logger = LogService.getLogger();
-  
-  private File targetDir;
-  private File baselineDir;
-  private boolean abort;
-  
-  public FinishBackupRequest() {
-    super();
-  }
-
-  public FinishBackupRequest(File targetDir,File baselineDir, boolean abort) {
-    this.targetDir = targetDir;
-    this.baselineDir = baselineDir;
-    this.abort = abort;
-  }
-  
-  public static Map<DistributedMember, Set<PersistentID>> send(DM dm, Set recipients, File targetDir, File baselineDir, boolean abort) {
-    FinishBackupRequest request = new FinishBackupRequest(targetDir,baselineDir, abort);
-    request.setRecipients(recipients);
-
-    FinishBackupReplyProcessor replyProcessor = new FinishBackupReplyProcessor(dm, recipients);
-    request.msgId = replyProcessor.getProcessorId();
-    dm.putOutgoing(request);
-    try {
-      replyProcessor.waitForReplies();
-    } catch (ReplyException e) {
-      if(!(e.getCause() instanceof CancelException)) {
-        throw e;
-      }
-    } catch (InterruptedException e) {
-      e.printStackTrace();
-    }
-    AdminResponse response = request.createResponse((DistributionManager)dm);
-    response.setSender(dm.getDistributionManagerId());
-    replyProcessor.process(response);
-    return replyProcessor.results;
-  }
-  
-  @Override
-  protected AdminResponse createResponse(DistributionManager dm) {
-    GemFireCacheImpl cache = GemFireCacheImpl.getInstance();
-    HashSet<PersistentID> persistentIds;
-    if(cache == null || cache.getBackupManager() == null) {
-      persistentIds = new HashSet<PersistentID>();
-    } else {
-      try {
-        persistentIds = cache.getBackupManager().finishBackup(targetDir, baselineDir, abort);
-      } catch (IOException e) {
-        logger.error(LocalizedMessage.create(LocalizedStrings.CliLegacyMessage_ERROR, this.getClass()), e);
-        return AdminFailureResponse.create(dm, getSender(), e);
-      }
-    }
-    
-    return new FinishBackupResponse(this.getSender(), persistentIds);
-  }
-
-  public int getDSFID() {
-    return FINISH_BACKUP_REQUEST;
-  }
-  
-  @Override
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    super.fromData(in);
-    targetDir = DataSerializer.readFile(in);
-    baselineDir = DataSerializer.readFile(in);
-    abort = DataSerializer.readBoolean(in);
-  }
-
-  @Override
-  public void toData(DataOutput out) throws IOException {
-    super.toData(out);
-    DataSerializer.writeFile(targetDir, out);
-    DataSerializer.writeFile(baselineDir, out);
-    DataSerializer.writeBoolean(abort, out);
-  }
-
-  private static class FinishBackupReplyProcessor extends AdminMultipleReplyProcessor {
-    Map<DistributedMember, Set<PersistentID>> results = Collections.synchronizedMap(new HashMap<DistributedMember, Set<PersistentID>>());
-    public FinishBackupReplyProcessor(DM dm, Collection initMembers) {
-      super(dm, initMembers);
-    }
-    
-    @Override
-    protected boolean stopBecauseOfExceptions() {
-      return false;
-    }
-
-    
-    
-    @Override
-    protected int getAckWaitThreshold() {
-      //Disable the 15 second warning if the backup is taking a long time
-      return 0;
-    }
-
-    @Override
-    public long getAckSevereAlertThresholdMS() {
-      //Don't log severe alerts for backups either
-      return Long.MAX_VALUE;
-    }
-
-    @Override
-    protected void process(DistributionMessage msg, boolean warn) {
-      if(msg instanceof FinishBackupResponse) {
-        final HashSet<PersistentID> persistentIds = ((FinishBackupResponse) msg).getPersistentIds();
-        if(persistentIds != null && !persistentIds.isEmpty()) {
-          results.put(msg.getSender(), persistentIds);
-        }
-      }
-      super.process(msg, warn);
-    }
-    
-    
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FinishBackupResponse.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FinishBackupResponse.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FinishBackupResponse.java
deleted file mode 100644
index c741bb8..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FinishBackupResponse.java
+++ /dev/null
@@ -1,79 +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.admin.internal;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.HashSet;
-
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.admin.remote.AdminResponse;
-
-/**
- * The reply for a {@link FinishBackupRequest}. The
- * reply contains the persistent ids of the disk stores
- * that were backed up on this member.
- * 
- * @author dsmith
- *
- */
-public class FinishBackupResponse extends AdminResponse {
-  
-  private HashSet<PersistentID> persistentIds;
-  
-  public FinishBackupResponse() {
-    super();
-  }
-
-  public FinishBackupResponse(InternalDistributedMember sender, HashSet<PersistentID> persistentIds) {
-    this.setRecipient(sender);
-    this.persistentIds = persistentIds;
-  }
-  
-  public HashSet<PersistentID> getPersistentIds() {
-    return persistentIds;
-  }
-
-  @Override
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    super.fromData(in);
-    persistentIds = DataSerializer.readHashSet(in);
-  }
-
-  @Override
-  public void toData(DataOutput out) throws IOException {
-    super.toData(out);
-    DataSerializer.writeHashSet(persistentIds, out);
-  }
-
-  @Override
-  protected Object clone() throws CloneNotSupportedException {
-    return super.clone();
-  }
-
-  public int getDSFID() {
-    return FINISH_BACKUP_RESPONSE;
-  }
-  
-  @Override
-  public String toString() {
-    return getClass().getName() + ": " + persistentIds;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FlushToDiskRequest.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FlushToDiskRequest.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FlushToDiskRequest.java
deleted file mode 100644
index 1ab3ef8..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FlushToDiskRequest.java
+++ /dev/null
@@ -1,98 +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.admin.internal;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.distributed.internal.ReplyException;
-import com.gemstone.gemfire.internal.admin.remote.AdminMultipleReplyProcessor;
-import com.gemstone.gemfire.internal.admin.remote.AdminResponse;
-import com.gemstone.gemfire.internal.admin.remote.CliLegacyMessage;
-import com.gemstone.gemfire.internal.cache.DiskStoreImpl;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-
-/**
- * A request to from an admin VM to all non admin members
- * to start a backup. In the prepare phase of the backup,
- * the members will suspend bucket destroys to make sure
- * buckets aren't missed during the backup.
- * 
- * @author dsmith
- *
- */
-public class FlushToDiskRequest  extends CliLegacyMessage {
-  
-  public FlushToDiskRequest() {
-    
-  }
-  
-  public static void send(DM dm, Set recipients) {
-    FlushToDiskRequest request = new FlushToDiskRequest();
-    request.setRecipients(recipients);
-
-    FlushToDiskProcessor replyProcessor = new FlushToDiskProcessor(dm, recipients);
-    request.msgId = replyProcessor.getProcessorId();
-    dm.putOutgoing(request);
-    try {
-      replyProcessor.waitForReplies();
-    } catch (ReplyException e) {
-      if(!(e.getCause() instanceof CancelException)) {
-        throw e;
-      }
-    } catch (InterruptedException e) {
-      e.printStackTrace();
-    }
-    AdminResponse response = request.createResponse((DistributionManager)dm);
-    response.setSender(dm.getDistributionManagerId());
-    replyProcessor.process(response);
-  }
-  
-  @Override
-  protected AdminResponse createResponse(DistributionManager dm) {
-    GemFireCacheImpl cache = GemFireCacheImpl.getInstance();
-    HashSet<PersistentID> persistentIds;
-    if(cache != null) {
-      Collection<DiskStoreImpl> diskStores = cache.listDiskStoresIncludingRegionOwned();
-      for(DiskStoreImpl store : diskStores) {
-        store.flush();
-      }
-    }
-    
-    return new FlushToDiskResponse(this.getSender());
-  }
-
-  public int getDSFID() {
-    return FLUSH_TO_DISK_REQUEST;
-  }
-  
-  private static class FlushToDiskProcessor extends AdminMultipleReplyProcessor {
-    public FlushToDiskProcessor(DM dm, Collection initMembers) {
-      super(dm, initMembers);
-    }
-    
-    @Override
-    protected boolean stopBecauseOfExceptions() {
-      return false;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FlushToDiskResponse.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FlushToDiskResponse.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FlushToDiskResponse.java
deleted file mode 100644
index d3255d3..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/FlushToDiskResponse.java
+++ /dev/null
@@ -1,46 +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.admin.internal;
-
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.admin.remote.AdminResponse;
-
-/**
- * The response to the {@link FlushToDiskRequest}
- * 
- * @author dsmith
- *
- */
-public class FlushToDiskResponse extends AdminResponse {
-
-  public FlushToDiskResponse() {
-    super();
-  }
-
-  public FlushToDiskResponse(InternalDistributedMember sender) {
-    this.setRecipient(sender);
-  }
-  
-  public int getDSFID() {
-    return FLUSH_TO_DISK_RESPONSE;
-  }
-  
-  @Override
-  public String toString() {
-    return getClass().getName();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthConfigImpl.java
deleted file mode 100644
index 0a7ba02..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthConfigImpl.java
+++ /dev/null
@@ -1,84 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-// @todo davidw Delegate to a "parent" config for properties that are not overridden.
-// This will be made easier with a special <code>HealthConfigAttribute</code> class.
-/**
- * The implementation of <code>GemFireHealthConfig</code>
- *
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-public class GemFireHealthConfigImpl
-  extends CacheHealthConfigImpl
-  implements GemFireHealthConfig {
-
-  private static final long serialVersionUID = -6797673296902808018L;
-
-  /** The name of the host to which this configuration applies. */
-  private String hostName;
-
-  /** The number of seconds to wait between evaluating the health of
-   * GemFire. */
-  private int interval = DEFAULT_HEALTH_EVALUATION_INTERVAL;
-
-  ////////////////////////  Constructors  ////////////////////////
-
-  /**
-   * Creates a new <code>GemFireHealthConfigImpl</code> that applies
-   * to the host with the given name.
-   *
-   * @param hostName
-   *        The name of the host to which this configuration applies.
-   *        If <code>null</code>, then this is the "default"
-   *        configuration. 
-   */
-  public GemFireHealthConfigImpl(String hostName) {
-    this.hostName = hostName;
-  }
-
-  ///////////////////////  Instance Methods  ///////////////////////
-
-  public String getHostName() {
-    return this.hostName;
-  }
-
-  public void setHealthEvaluationInterval(int interval) {
-    this.interval = interval;
-  }
-
-  public int getHealthEvaluationInterval() {
-    return this.interval;
-  }
-
-  @Override
-  public String toString() {
-    if (this.hostName == null) {
-      return LocalizedStrings.GemFireHealthConfigImpl_DEFAULT_GEMFIRE_HEALTH_CONFIGURATION.toLocalizedString();
-
-    } else {
-      return LocalizedStrings.GemFireHealthConfigImpl_GEMFIRE_HEALTH_CONFIGURATION_FOR_HOST_0.toLocalizedString(this.hostName);
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthEvaluator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthEvaluator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthEvaluator.java
deleted file mode 100644
index c11f933..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthEvaluator.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.admin.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.admin.GemFireHealth;
-import com.gemstone.gemfire.admin.GemFireHealthConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-/**
- * Evaluates the health of various GemFire components in the VM
- * according to a {@link GemFireHealthConfig}.
- *
- * <P>
- *
- * Note that evaluators never reside in the administration VM, they
- * only in member VMs.  They are not <code>Serializable</code> and
- * aren't meant to be.
- *
- * @see MemberHealthEvaluator
- * @see CacheHealthEvaluator
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-public class GemFireHealthEvaluator {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** Determines how the health of GemFire is determined */
-  private GemFireHealthConfig config;
-
-  /** Evaluates the health of this member of the distributed system */
-  private MemberHealthEvaluator memberHealth;
-
-  /** Evaluates the health of the Cache hosted in this VM */
-  private CacheHealthEvaluator cacheHealth;
-
-  /** The most recent <code>OKAY_HEALTH</code> diagnoses of the
-   * GemFire system */
-  private List okayDiagnoses;
-
-  /** The most recent <code>POOR_HEALTH</code> diagnoses of the
-   * GemFire system */
-  private List poorDiagnoses;
-
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>GemFireHealthEvaluator</code>
-   *
-   * @param config
-   *        The configuration that determines whether or GemFire is
-   *        healthy 
-   * @param dm
-   *        The distribution manager 
-   */
-  public GemFireHealthEvaluator(GemFireHealthConfig config,
-                                DistributionManager dm) {
-    if (config == null) {
-      throw new NullPointerException(LocalizedStrings.GemFireHealthEvaluator_NULL_GEMFIREHEALTHCONFIG.toLocalizedString());
-    }
-
-    this.config = config;
-    this.memberHealth = new MemberHealthEvaluator(config, dm);
-    this.cacheHealth = new CacheHealthEvaluator(config, dm);
-    this.okayDiagnoses = new ArrayList();
-    this.poorDiagnoses = new ArrayList();
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Evaluates the health of the GemFire components in this VM.
-   *
-   * @return The aggregate health code (such as {@link
-   *         GemFireHealth#OKAY_HEALTH}) of the GemFire components.
-   */
-  public GemFireHealth.Health evaluate() {
-    List status = new ArrayList();
-    this.memberHealth.evaluate(status);
-    this.cacheHealth.evaluate(status);
-
-    GemFireHealth.Health overallHealth = GemFireHealth.GOOD_HEALTH;
-    this.okayDiagnoses.clear();
-    this.poorDiagnoses.clear();
-
-    for (Iterator iter = status.iterator(); iter.hasNext(); ) {
-      AbstractHealthEvaluator.HealthStatus health =
-        (AbstractHealthEvaluator.HealthStatus) iter.next();
-      if (overallHealth == GemFireHealth.GOOD_HEALTH) {
-        if ((health.getHealthCode() != GemFireHealth.GOOD_HEALTH)) {
-          overallHealth = health.getHealthCode();
-        }
-
-      } else if (overallHealth == GemFireHealth.OKAY_HEALTH) {
-        if (health.getHealthCode() == GemFireHealth.POOR_HEALTH) {
-          overallHealth = GemFireHealth.POOR_HEALTH;
-        }
-      }
-
-      GemFireHealth.Health healthCode = health.getHealthCode();
-      if (healthCode == GemFireHealth.OKAY_HEALTH) {
-        this.okayDiagnoses.add(health.getDiagnosis());
-
-      } else if (healthCode == GemFireHealth.POOR_HEALTH) {
-        this.poorDiagnoses.add(health.getDiagnosis());
-      }
-    }
-
-    if (logger.isDebugEnabled()) {
-      logger.debug("Evaluated health to be {}", overallHealth);
-    }
-    return overallHealth;
-  }
-
-  /**
-   * Returns detailed information explaining the current health status.
-   * Each array element is a different cause for the current status.
-   * An empty array will be returned if the current status is {@link
-   * GemFireHealth#GOOD_HEALTH}. 
-   */
-  public String[] getDiagnosis(GemFireHealth.Health healthCode) {
-    if (healthCode == GemFireHealth.GOOD_HEALTH) {
-      return new String[0];
-
-    } else if (healthCode == GemFireHealth.OKAY_HEALTH) {
-      String[] array = new String[this.okayDiagnoses.size()];
-      this.okayDiagnoses.toArray(array);
-      return array;
-
-    } else {
-      Assert.assertTrue(healthCode == GemFireHealth.POOR_HEALTH);
-      String[] array = new String[this.poorDiagnoses.size()];
-      this.poorDiagnoses.toArray(array);
-      return array;
-    }
-  }
-
-  /**
-   * Resets the state of this evaluator
-   */
-  public void reset() {
-    this.okayDiagnoses.clear();
-    this.poorDiagnoses.clear();
-  }
-
-  /**
-   * Returns the heath evaluation interval, in seconds.
-   *
-   * @see GemFireHealthConfig#getHealthEvaluationInterval
-   */
-  public int getEvaluationInterval() {
-    return this.config.getHealthEvaluationInterval();
-  }
-
-  /**
-   * Closes this evaluator and releases all of its resources
-   */
-  public void close() {
-    this.memberHealth.close();
-    this.cacheHealth.close();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthImpl.java
deleted file mode 100644
index 2490a6d..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/GemFireHealthImpl.java
+++ /dev/null
@@ -1,536 +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.admin.internal;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.admin.*;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.admin.*;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.*;
-
-/**
- * Provides the implementation of the <code>GemFireHealth</code>
- * administration API.  This class is responsible for {@linkplain
- * GemFireVM#addHealthListener sending} the {@link
- * GemFireHealthConfig}s to the remote member VM in which the health
- * is calcualted.
- *
- * @author David Whitlock
- *
- * @since 3.5
- */
-public class GemFireHealthImpl
-  implements GemFireHealth, JoinLeaveListener, HealthListener {
-
-  /** The distributed system whose health is being monitored */
-  private final GfManagerAgent agent;
-
-  /** The default configuration for checking GemFire health */
-  protected GemFireHealthConfig defaultConfig;
-
-  /** Maps the name of a host to its <code>GemFireHealthConfig</code>.
-   * Note that the mappings are created lazily. */
-  private final Map hostConfigs;
-
-  /** Maps the name of a host to all of the members
-   * (<code>GemFireVM</code>s) that run on that host. */
-  private final Map hostMembers;
-
-  /** The members that are known to be in {@link #OKAY_HEALTH}. */
-  private Collection okayHealth;
-
-  /** The members that are known to be in {@link #POOR_HEALTH}. */
-  private Collection poorHealth;
-
-  /** The overall health of GemFire */
-  private GemFireHealth.Health overallHealth;
-
-  /** Is this GemFireHealthImpl closed? */
-  private boolean isClosed;
-
-  /** The configuration specifying how the health of the distributed
-   * system should be computed.  */
-  protected volatile DistributedSystemHealthConfig dsHealthConfig;
-
-  /** Monitors the health of the entire distributed system */
-  private DistributedSystemHealthMonitor dsHealthMonitor = null;
-
-  /** The distributed system whose health is monitored by this
-   * <Code>GemFireHealth</code>. */
-  private final AdminDistributedSystem system;
-
-  
-  ///////////////////////  Constructors  ///////////////////////
-
-  /**
-   * Creates a new <code>GemFireHealthImpl</code> that monitors the
-   * health of member of the given distributed system.
-   */
-  protected GemFireHealthImpl(GfManagerAgent agent,
-                              AdminDistributedSystem system) {
-//     agent.getDM().getLogger().info("Creating GemFireHealthImpl",
-//                                    new Exception("Stack trace"));
-
-    this.agent = agent;
-    this.system = system;
-
-    this.hostConfigs = new HashMap();
-    this.hostMembers = new HashMap();
-    this.okayHealth = new HashSet();
-    this.poorHealth = new HashSet();
-    this.overallHealth = GOOD_HEALTH;
-    this.isClosed = false;
-
-    GemFireVM[] apps = this.agent.listApplications();
-    for (int i = 0; i < apps.length; i++) {
-      GemFireVM member = apps[i];
-      this.noteNewMember(member);
-    }
-
-    agent.addJoinLeaveListener(this);
-    setDefaultGemFireHealthConfig(createGemFireHealthConfig(null));
-    setDistributedSystemHealthConfig(createDistributedSystemHealthConfig());
-  }
-
-  @Override
-  public String toString() {
-    StringBuffer sb = new StringBuffer();
-    sb.append("closed=" + isClosed);
-    sb.append("; hostMembers=" + hostMembers);
-    sb.append("; okayHealth=" + okayHealth);
-    sb.append("; poorHealth=" + poorHealth);
-    sb.append("; overallHealth=" + overallHealth);
-    sb.append("; diagnosis=" + getDiagnosis());
-    return sb.toString();
-  }
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Returns the <code>DistributedSystem</code> whose health this
-   * <code>GemFireHealth</code> monitors.
-   */
-  public AdminDistributedSystem getDistributedSystem() {
-    return this.system;
-  }
-
-  /**
-   * A "template factory" method for creating a
-   * <code>DistributedSystemHealthConfig</code>. It can be overridden
-   * by subclasses to produce instances of different
-   * <code>DistributedSystemHealthConfig</code> implementations.
-   */
-  protected DistributedSystemHealthConfig
-    createDistributedSystemHealthConfig() {
-
-    return new DistributedSystemHealthConfigImpl();
-  }
-
-  /**
-   * A "template factory" method for creating a
-   * <code>GemFireHealthConfig</code>.  It can be overridden by
-   * subclasses to produce instances of different
-   * <code>GemFireHealthConfig</code> implementations.
-   *
-   * @param hostName
-   *        The host whose health we are configuring
-   */
-  protected GemFireHealthConfig
-    createGemFireHealthConfig(String hostName) {
-
-    return new GemFireHealthConfigImpl(hostName);
-  }
-
-  /**
-   * Throws an {@link IllegalStateException} if this
-   * <code>GemFireHealthImpl</code> is closed.
-   */
-  private void checkClosed() {
-    if (this.isClosed) {
-      throw new IllegalStateException(LocalizedStrings.GemFireHealthImpl_CANNOT_ACCESS_A_CLOSED_GEMFIREHEALTH_INSTANCE.toLocalizedString());
-    }
-  }
-
-  /**
-   * Returns the overall health of GemFire.  Note that this method
-   * does not contact any of the member VMs.  Instead, it relies on
-   * the members to alert it of changes in its health via a {@link
-   * HealthListener}.
-   */
-  public GemFireHealth.Health getHealth() {
-    checkClosed();
-    return this.overallHealth;
-  }
-
-  /**
-   * Resets the overall health to be {@link #GOOD_HEALTH}.  It also
-   * resets the health in the member VMs.
-   *
-   * @see GemFireVM#resetHealthStatus
-   */
-  public void resetHealth() {
-    checkClosed();
-
-    this.overallHealth = GOOD_HEALTH;
-    this.okayHealth.clear();
-    this.poorHealth.clear();
-
-    synchronized (this) {
-      for (Iterator iter = hostMembers.values().iterator();
-           iter.hasNext(); ) {
-        List members = (List) iter.next();
-        for (Iterator iter2 = members.iterator(); iter2.hasNext(); ) {
-          GemFireVM member = (GemFireVM) iter2.next();
-          member.resetHealthStatus();
-        }
-      }
-    }
-  }
-
-  /**
-   * Aggregates the diagnoses from all members of the distributed
-   * system. 
-   */
-  public String getDiagnosis() {
-    checkClosed();
-
-    StringBuffer sb = new StringBuffer();
-
-    synchronized (this) {
-      for (Iterator iter = hostMembers.values().iterator();
-           iter.hasNext(); ) {
-        List members = (List) iter.next();
-        for (Iterator iter2 = members.iterator(); iter2.hasNext(); ) {
-          GemFireVM member = (GemFireVM) iter2.next();
-          String[] diagnoses =
-            member.getHealthDiagnosis(this.overallHealth);
-          for (int i = 0; i < diagnoses.length; i++) {
-            sb.append(diagnoses[i]).append("\n");;
-          }
-        }
-      }
-    }
-
-    return sb.toString();
-  }
-
-  /**
-   * Starts a new {@link DistributedSystemHealthMonitor}
-   */
-  public void setDistributedSystemHealthConfig(DistributedSystemHealthConfig
-                                               config) {
-    synchronized (this.hostConfigs) {
-      // If too many threads are changing the health config, then we
-      // will might get an OutOfMemoryError trying to start a new
-      // health monitor thread.
-
-      if (this.dsHealthMonitor != null) {
-        this.dsHealthMonitor.stop();
-      }
-
-      this.dsHealthConfig = config;
-
-      DistributedSystemHealthEvaluator eval =
-        new DistributedSystemHealthEvaluator(config, this.agent.getDM());
-      int interval =
-        this.getDefaultGemFireHealthConfig().getHealthEvaluationInterval();
-      this.dsHealthMonitor =
-        new DistributedSystemHealthMonitor(eval, this, interval);
-      this.dsHealthMonitor.start();
-    }
-  }
-
-  public DistributedSystemHealthConfig
-    getDistributedSystemHealthConfig() {
-
-    checkClosed();
-    return this.dsHealthConfig;
-  }
-
-  public GemFireHealthConfig getDefaultGemFireHealthConfig() {
-    checkClosed();
-    return this.defaultConfig;
-  }
-
-  public void setDefaultGemFireHealthConfig(GemFireHealthConfig config) {
-    checkClosed();
-
-    if (config.getHostName() != null) {
-      throw new IllegalArgumentException(LocalizedStrings.GemFireHealthImpl_THE_GEMFIREHEALTHCONFIG_FOR_FOR_0_CANNOT_SERVE_AS_THE_DEFAULT_HEALTH_CONFIG.toLocalizedString(config.getHostName()));
-    }
-
-    this.defaultConfig = config;
-
-    synchronized (this) {
-      for (Iterator iter = this.hostMembers.entrySet().iterator();
-           iter.hasNext(); ) {
-        Map.Entry entry = (Map.Entry) iter.next();
-        InetAddress hostIpAddress = (InetAddress) entry.getKey();
-        List members = (List) entry.getValue();
-
-        GemFireHealthConfig hostConfig =
-          (GemFireHealthConfig) hostConfigs.get(hostIpAddress);
-        if (hostConfig == null) {
-          hostConfig = config;
-        }
-
-        for (Iterator iter2 = members.iterator(); iter2.hasNext(); ) {
-          GemFireVM member = (GemFireVM) iter2.next();
-          Assert.assertTrue(member.getHost().equals(hostIpAddress));
-          member.addHealthListener(this, hostConfig);
-        }
-      }
-    }
-
-    // We only need to do this if the health monitoring interval has
-    // change.  This is probably not the most efficient way of doing
-    // things.
-    if (this.dsHealthConfig != null) {
-      setDistributedSystemHealthConfig(this.dsHealthConfig);
-    }
-  }
-
-  /**
-   * Returns the GemFireHealthConfig object for the given host name.
-   * 
-   * @param hostName
-   *          host name for which the GemFire Health Config is needed
-   * 
-   * @throws IllegalArgumentException
-   *           if host with given name could not be found
-   */
-  public synchronized GemFireHealthConfig
-    getGemFireHealthConfig(String hostName){
-
-    checkClosed();
-
-    InetAddress hostIpAddress = null;
-    try {
-      hostIpAddress = InetAddress.getByName(hostName);
-    } catch (UnknownHostException e) {
-      throw new IllegalArgumentException(
-          LocalizedStrings.GemFireHealthImpl_COULD_NOT_FIND_A_HOST_WITH_NAME_0
-              .toLocalizedString(hostName), e);
-    }
-    
-    GemFireHealthConfig config =
-      (GemFireHealthConfig) this.hostConfigs.get(hostIpAddress);
-    if (config == null) {
-      config = createGemFireHealthConfig(hostName);
-      this.hostConfigs.put(hostIpAddress, config);
-    }
-
-    return config;
-  }
-
-  /**
-   * Sets the GemFireHealthConfig object for the given host name.
-   * 
-   * @param hostName
-   *          host name for which the GemFire Health Config is needed
-   * @param config
-   *          GemFireHealthConfig object to set
-   * 
-   * @throws IllegalArgumentException
-   *           if (1) given host name & the host name in the given config do not
-   *           match OR (2) host with given name could not be found OR (3) there
-   *           are no GemFire components running on the given host
-   */
-  public void setGemFireHealthConfig(String hostName,
-                                     GemFireHealthConfig config) {
-    checkClosed();
-
-    synchronized (this) {
-      String configHost = config.getHostName();
-      if (configHost == null || !configHost.equals(hostName)) {
-        StringBuffer sb = new StringBuffer();
-        sb.append("The GemFireHealthConfig configures ");
-        if (configHost == null) {
-          sb.append("the default host ");
-
-        } else {
-          sb.append("host \"");
-          sb.append(config.getHostName());
-          sb.append("\" ");
-        }
-        sb.append("not \"" + hostName + "\"");
-        throw new IllegalArgumentException(sb.toString());
-      }
-      InetAddress hostIpAddress = null;
-      try {
-        hostIpAddress = InetAddress.getByName(hostName);
-      } catch (UnknownHostException e) {
-        throw new IllegalArgumentException(
-            LocalizedStrings.GemFireHealthImpl_COULD_NOT_FIND_A_HOST_WITH_NAME_0
-                .toLocalizedString(hostName), e);
-      }
-      
-      List members = (List) this.hostMembers.get(hostIpAddress);
-      if (members == null || members.isEmpty()) {
-        throw new IllegalArgumentException(
-            LocalizedStrings.GemFireHealthImpl_THERE_ARE_NO_GEMFIRE_COMPONENTS_ON_HOST_0
-                .toLocalizedString(hostName));
-      }
-
-      for (Iterator iter = members.iterator(); iter.hasNext(); ) {
-        GemFireVM member = (GemFireVM) iter.next();
-        member.addHealthListener(this, config);
-      }
-    }
-  }
-
-  /**
-   * Tells the members of the distributed system that we are no longer
-   * interested in monitoring their health.
-   *
-   * @see GemFireVM#removeHealthListener
-   */
-  public void close(){
-    this.agent.removeJoinLeaveListener(this);
-    
-    synchronized (this) {
-      if (this.isClosed) {
-        return;
-      }
-
-      this.isClosed = true;
-
-      if (this.dsHealthMonitor != null) {
-        this.dsHealthMonitor.stop();
-        this.dsHealthMonitor = null;
-      }
-
-      try {
-        for (Iterator iter = hostMembers.values().iterator();
-             iter.hasNext(); ) {
-          List members = (List) iter.next();
-          for (Iterator iter2 = members.iterator(); iter2.hasNext(); ) {
-            GemFireVM member = (GemFireVM) iter2.next();
-            member.removeHealthListener();
-          }
-        }
-      } catch (CancelException e) {
-        // if the DS is disconnected, stop trying to distribute to other members
-      }
-
-      hostConfigs.clear();
-      hostMembers.clear();
-      okayHealth.clear();
-      poorHealth.clear();
-    }
-  }
-
-  public boolean isClosed() {
-    return this.isClosed;
-  }
-
-  /**
-   * Makes note of the newly-joined member
-   */
-  private void noteNewMember(GemFireVM member) {
-    InetAddress hostIpAddress = member.getHost();
-    List members = (List) this.hostMembers.get(hostIpAddress);
-    if (members == null) {
-      members = new ArrayList();
-      this.hostMembers.put(hostIpAddress, members);
-    }
-    members.add(member);
-
-  }
-
-  public synchronized void nodeJoined(GfManagerAgent source,
-                                      GemFireVM joined) {
-    noteNewMember(joined);
-
-    InetAddress hostIpAddress = joined.getHost();
-
-    GemFireHealthConfig config =
-      (GemFireHealthConfig) this.hostConfigs.get(hostIpAddress);
-    if (config == null) {
-      config = this.getDefaultGemFireHealthConfig();
-    }
-    joined.addHealthListener(this, config);
-  }
-
-  /**
-   * Makes note of the newly-left member
-   */
-  public synchronized void nodeLeft(GfManagerAgent source,
-                                    GemFireVM left) {
-    InetAddress hostIpAddress = left.getHost();
-    List members = (List) this.hostMembers.get(hostIpAddress);
-    if (members != null) {
-      members.remove(left);
-      if (members.isEmpty()) {
-        // No more members on the host
-        this.hostConfigs.remove(hostIpAddress);
-        this.hostMembers.remove(hostIpAddress);
-      }
-    }
-
-    this.okayHealth.remove(left);
-    this.poorHealth.remove(left);
-
-    reevaluateHealth();
-  }
-
-  /**
-   * Does the same thing as {@link #nodeLeft}
-   */
-  public void nodeCrashed(GfManagerAgent source, GemFireVM crashed) {
-    nodeLeft(source, crashed);
-  }
-
-  /**
-   * Re-evaluates the overall health of GemFire
-   */
-  private void reevaluateHealth() {
-    if (!this.poorHealth.isEmpty()) {
-      this.overallHealth = POOR_HEALTH;
-
-    } else if (!this.okayHealth.isEmpty()) {
-      this.overallHealth = OKAY_HEALTH;
-
-    } else {
-      this.overallHealth = GOOD_HEALTH;
-    }
-  }
-
-  public void healthChanged(GemFireVM member, GemFireHealth.Health status) {
-    if (status == GOOD_HEALTH) {
-      this.okayHealth.remove(member);
-      this.poorHealth.remove(member);
-
-    } else if (status == OKAY_HEALTH) {
-      this.okayHealth.add(member);
-      this.poorHealth.remove(member);
-
-    } else if (status == POOR_HEALTH) {
-      this.okayHealth.remove(member);
-      this.poorHealth.add(member);
-
-    } else {
-      Assert.assertTrue(false, "Unknown health code: " + status);
-    }
-
-    reevaluateHealth();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/InetAddressUtil.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/InetAddressUtil.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/InetAddressUtil.java
deleted file mode 100755
index bfb46f5..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/InetAddressUtil.java
+++ /dev/null
@@ -1,209 +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.admin.internal;
-
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.net.SocketException;
-import java.util.Enumeration;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.GemFireIOException;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.SocketCreator;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-
-
-/**
- * Provides static utilities for manipulating, validating, and converting
- * InetAddresses and host strings.
- *
- * @author    Kirk Lund
- * @since     3.5
- */
-public class InetAddressUtil {
-  
-  private static final Logger logger = LogService.getLogger();
-  
-  /** InetAddress instance representing the local host  */
-  public static final InetAddress LOCALHOST = createLocalHost();
-  
-  public static  final String LOOPBACK_ADDRESS =
-    SocketCreator.preferIPv6Addresses() ? "::1" : "127.0.0.1"; 
-  
-  public static final InetAddress LOOPBACK = 
-      InetAddressUtil.toInetAddress(LOOPBACK_ADDRESS);
-  
-  /** Disallows InetAddressUtil instantiation. */
-  private InetAddressUtil() {}
-
-  /** 
-   * Returns a string version of InetAddress which can be converted back to an 
-   * InetAddress later.  Essentially any leading slash is trimmed.
-   *
-   * @param val the InetAddress or String to return a formatted string of
-   * @return string version the InetAddress minus any leading slash
-   */
-  public static String toString(Object val) {
-    if (val instanceof String) {
-      return trimLeadingSlash((String) val);
-
-    } else if (val instanceof InetAddress) {
-      return ((InetAddress) val).getHostAddress();
-
-    } else {
-      return trimLeadingSlash(val.toString());
-    }
-  }
-  
-  /** 
-   * Converts the string host to an instance of InetAddress.  Returns null if
-   * the string is empty.  Fails Assertion if the conversion would result in
-   * <code>java.lang.UnknownHostException</code>.
-   * <p>
-   * Any leading slashes on host will be ignored.
-   *
-   * @param   host  string version the InetAddress
-   * @return  the host converted to InetAddress instance
-   */
-  public static InetAddress toInetAddress(String host) {
-    if (host == null || host.length() == 0) {
-      return null;
-    }
-    try {
-      if (host.indexOf("/") > -1) {
-        return InetAddress.getByName(host.substring(host.indexOf("/") + 1));
-      }
-      else {
-        return InetAddress.getByName(host);
-      }
-    } catch (java.net.UnknownHostException e) {
-      logStackTrace(e);
-      Assert.assertTrue(false, "Failed to get InetAddress: " + host);
-      return null; // will never happen since the Assert will fail
-    }
-  }
-
-  /** 
-   * Creates an InetAddress representing the local host.  The checked exception
-   * <code>java.lang.UnknownHostException</code> is captured and results in
-   * an Assertion failure instead.
-   *
-   * @return InetAddress instance representing the local host
-   */
-  public static InetAddress createLocalHost() {
-    try {
-      return SocketCreator.getLocalHost();
-    } catch (java.net.UnknownHostException e) {
-      logStackTrace(e);
-      Assert.assertTrue(false, "Failed to get local host");
-      return null; // will never happen
-    }
-  }
-
-  /** 
-   * Validates the host by making sure it can successfully be used to get an
-   * instance of InetAddress.  If the host string is null, empty or would result
-   * in <code>java.lang.UnknownHostException</code> then null is returned.
-   * <p>
-   * Any leading slashes on host will be ignored.
-   *
-   * @param   host  string version the InetAddress
-   * @return  the host converted to InetAddress instance
-   */
-  public static String validateHost(String host) {
-    if (host == null || host.length() == 0) {
-      return null; 
-    }
-    try {
-      InetAddress.getByName(trimLeadingSlash(host));
-      return host;
-    } catch (java.net.UnknownHostException e) { 
-      logStackTrace(e);
-      return null;
-    }
-  }
-
-  /** Returns true if host matches the LOCALHOST. */
-  public static boolean isLocalHost(Object host) {
-    if (host instanceof InetAddress) {
-      if (LOCALHOST.equals(host)) {
-        return true;
-      }
-      else {
-//        InetAddress hostAddr = (InetAddress)host;
-        try {
-          Enumeration en=NetworkInterface.getNetworkInterfaces();
-          while(en.hasMoreElements()) {
-            NetworkInterface i=(NetworkInterface)en.nextElement();
-            for(Enumeration en2=i.getInetAddresses(); en2.hasMoreElements();) {
-              InetAddress addr=(InetAddress)en2.nextElement();
-              if (host.equals(addr)) {
-                return true;
-              }
-            }
-          }
-          return false;
-        }
-        catch (SocketException e) {
-          throw new GemFireIOException(LocalizedStrings.InetAddressUtil_UNABLE_TO_QUERY_NETWORK_INTERFACE.toLocalizedString(), e);
-        }
-      }
-    }
-    else {
-      return isLocalHost(InetAddressUtil.toInetAddress(host.toString()));
-    }
-  }
-  
-  /** Returns true if host matches the LOOPBACK (127.0.0.1). */
-  public static boolean isLoopback(Object host) {
-    if (host instanceof InetAddress) {
-      return LOOPBACK.equals(host);
-    }
-    else {
-      return isLoopback(InetAddressUtil.toInetAddress(host.toString()));
-    }
-  }
-  
-  /** Returns a version of the value after removing any leading slashes */
-  private static String trimLeadingSlash(String value) {
-    if (value == null) return "";
-    while (value.indexOf("/") > -1) {
-      value = value.substring(value.indexOf("/") + 1);
-    }
-    return value;
-  }
-
-  /**
-   * Logs the stack trace for the given Throwable if logger is initialized else
-   * prints the stack trace using System.out. If logged the logs are logged at 
-   * WARNING level.
-   * 
-   * @param throwable
-   *          Throwable to log stack trace for
-   */
-  private static void logStackTrace(Throwable throwable) {
-    AdminDistributedSystemImpl adminDS = 
-                              AdminDistributedSystemImpl.getConnectedInstance();
-
-    logger.warn(throwable.getMessage(), throwable);
-  }  
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/InternalManagedEntity.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/InternalManagedEntity.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/InternalManagedEntity.java
deleted file mode 100644
index d436c5e..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/InternalManagedEntity.java
+++ /dev/null
@@ -1,106 +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.admin.internal;
-
-import com.gemstone.gemfire.admin.AdminDistributedSystem;
-import com.gemstone.gemfire.admin.ManagedEntity;
-import com.gemstone.gemfire.admin.ManagedEntityConfig;
-
-/**
- * Provides internal-only functionality that is expected of all
- * <code>ManagedEntity<code>s.  This functionality is used by the
- * {@link ManagedEntityController} to manage the entity.
- *
- * @author David Whitlock
- * @since 4.0
- */
-public interface InternalManagedEntity extends ManagedEntity {
-
-  /** The state of a managed entity is unknown. */
-  public static final int UNKNOWN = 10;
-
-  /** A managed entity is stopped */
-  public static final int STOPPED = 11;
-
-  /** A managed entity is stopping (being stopped) */
-  public static final int STOPPING = 12;
-
-  /** A managed entity is starting */
-  public static final int STARTING = 13;
-
-  /** A managed entity is running (is started) */
-  public static final int RUNNING = 14;
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Returns the <code>ManagedEntityConfig</code> for this
-   * <code>ManagedEntity</code>. 
-   */
-  public ManagedEntityConfig getEntityConfig();
-
-  /**
-   * Returns a brief description (such as "locator") of this managed
-   * entity. 
-   */
-  public String getEntityType();
-
-  /**
-   * Returns the (local) command to execute in order to start this
-   * managed entity.  The command includes the full path to the
-   * executable (include <code>$GEMFIRE/bin</code>) and any
-   * command-line arguments.  It does not take the {@linkplain
-   * ManagedEntityConfig#getRemoteCommand remote command} into account.
-   */
-  public String getStartCommand();
-
-  /**
-   * Returns the (local) command to execute in order to stop this
-   * managed entity.
-   */
-  public String getStopCommand();
-
-  /**
-   * Returns the (local) command to execute in order to determine
-   * whether or not this managed entity is runing.
-   */
-  public String getIsRunningCommand();
-
-  /**
-   * Returns a descriptive, one-word, unique id for a newly-created
-   * <code>ManagedEntity</code>.   This ensures that we do not have
-   * collisions in the ids of entities.
-   */
-  public String getNewId();
-
-  /**
-   * Returns the distributed system to which this managed entity
-   * belongs.
-   */
-  public AdminDistributedSystem getDistributedSystem();
-
-  /**
-   * Sets the state of this managed entity and informs threads that
-   * are waiting for a state change.  See bug 32455.
-   *
-   * @return The previous state of this managed entity.
-   *
-   * @see #RUNNING
-   */
-  public int setState(int state);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/LogCollator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/LogCollator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/LogCollator.java
deleted file mode 100755
index 633fa89..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/LogCollator.java
+++ /dev/null
@@ -1,137 +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.admin.internal;
-
-import com.gemstone.gemfire.internal.admin.GfManagerAgent;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.ApplicationVM;
-import com.gemstone.gemfire.internal.logging.MergeLogFiles;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;  
-import java.io.PrintWriter;  
-import java.io.StringWriter;  
-import java.util.ArrayList;
-import java.util.List;
-
-public class LogCollator {
-  
-  private GfManagerAgent system;
-  private List logTails;
-    
-  public LogCollator() {
-  }
-  
-  public String collateLogs(GfManagerAgent system) {
-    try {
-      if (system == null) {
-        return "";
-      }
-      this.system = system;
-      this.logTails = new ArrayList();
-      gatherActiveLogs();
-      gatherInactiveLogs();
-      return mergeLogs();
-    }
-    finally {
-      this.system = null;
-      this.logTails = null;
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  
-  private String mergeLogs() {
-    // combine logs...
-    InputStream[] logFiles = new InputStream[this.logTails.size()];
-    String[] logFileNames = new String[logFiles.length];
-    for (int i = 0; i < this.logTails.size(); i++) {
-      Loglet loglet = (Loglet) this.logTails.get(i);
-      logFiles[i] = new ByteArrayInputStream(loglet.tail.getBytes());
-      logFileNames[i] = loglet.name;
-    }
-    
-    // delegate to MergeLogFiles...
-    StringWriter writer = new StringWriter();
-    PrintWriter mergedLog = new PrintWriter(writer);
-    if (!MergeLogFiles.mergeLogFiles(logFiles, logFileNames, mergedLog)) {
-      return writer.toString();
-    } 
-    else {
-      return "";
-    }
-  }
-
-  private void gatherActiveLogs() {
-    ApplicationVM[] runningsApps = this.system.listApplications();
-    for (int i = 0; i < runningsApps.length; i++) {
-      addLogFrom(runningsApps[i]);
-    }
-  }
-  
-  private void gatherInactiveLogs() {
-    /* not yet supported....
-    if (useStopped) {
-      LogViewHelper helper = new LogViewHelper();
-      for (Iterator iter = stoppedNodes.iterator(); iter.hasNext(); ) {
-        Object adminEntity = iter.next();
-        helper.setAdminEntity(adminEntity);
-        try {
-          if (helper.logViewAvailable()) {
-            String[] logs = helper.getSystemLogs();
-            addTail(allTails, logs, adminEntity.toString());
-          }
-        } catch (Exception e) {
-          Service.getService().reportSystemError(e);
-        }
-      }
-    }
-    */
-  }
-  
-  private void addLogFrom(GemFireVM vm) {
-    String name = null;
-    name = vm.toString();
-    String[] logs = vm.getSystemLogs();
-    addTail(name, logs);
-  }
-
-  private void addTail(String logName, String[] logs) {
-    if (logs.length > 0) {
-      String tail = (logs.length > 1) ? logs[1] : logs[0];      
-      this.logTails.add(new Loglet(logName, tail));
-    }
-  }
-
-  /*
-  public void setUseStoppedManagers(boolean useStopped) {
-    this.useStopped = useStopped;
-  }
-  */
-
-  private static class Loglet {
-    String name;
-    String tail;
-    Loglet(String name, String tail) {
-      this.name = name;
-      this.tail = tail;
-    }
-  }
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigImpl.java
deleted file mode 100644
index c64d43d..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/ManagedEntityConfigImpl.java
+++ /dev/null
@@ -1,263 +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.admin.internal;
-
-//import com.gemstone.gemfire.admin.DistributedSystemConfig;
-//import com.gemstone.gemfire.admin.ManagedEntity;
-import com.gemstone.gemfire.admin.ManagedEntityConfig;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.GemFireVersion;
-import com.gemstone.gemfire.internal.SocketCreator;
-
-import java.io.File;
-import java.net.*;
-
-/**
- * The abstract superclass of objects that configure a managed entity
- * such as a GemFire cache server or a distribution locator.
- * It contains configuration state and behavior common to all managed
- * entities.
- *
- * @author David Whitlock
- * @since 4.0
- */
-public abstract class ManagedEntityConfigImpl
-  implements ManagedEntityConfig {
-
-  /** The name of the host on which the managed entity runs */
-  private String host;
-
-  /** Directory in which the locator runs */
-  private String workingDirectory;
-
-  /** The directory in which GemFire is installed */
-  private String productDirectory;
-
-  /** Command used to launch locator on remote machine */
-  private String remoteCommand;
-
-  /** The managed entity configured by this object.
-   *
-   * @see #isReadOnly */
-  private InternalManagedEntity entity = null;
-
-  /////////////////////  Static Methods  /////////////////////
-
-  /**
-   * Returns the {@linkplain InetAddress#getCanonicalHostName
-   * canonical name} of the local machine.
-   */
-  protected static String getLocalHostName() {
-    try {
-      return SocketCreator.getLocalHost().getCanonicalHostName();
-
-    } catch (UnknownHostException ex) {
-      IllegalStateException ex2 = new IllegalStateException(LocalizedStrings.ManagedEntityConfigImpl_COULD_NOT_DETERMINE_LOCALHOST.toLocalizedString());
-      ex2.initCause(ex);
-      throw ex2;
-    }
-  }
-
-  /**
-   * Returns the current working directory for this VM.
-   */
-  private static File getCurrentWorkingDirectory() {
-    File cwd = new File(System.getProperty("user.dir"));
-    return cwd.getAbsoluteFile();
-  }
-
-  /**
-   * Returns the location of the GemFire product installation.  This
-   * is determined by finding the location of the gemfire jar
-   * and working backwards.
-   */
-  private static File getGemFireInstallation() {
-    URL url = GemFireVersion.getJarURL();
-    if (url == null) {
-      throw new IllegalStateException(LocalizedStrings.ManagedEntityConfigImpl_COULD_NOT_FIND_GEMFIREJAR.toLocalizedString());
-    }
-
-    File gemfireJar = new File(url.getPath());
-    File lib = gemfireJar.getParentFile();
-    File product = lib.getParentFile();
-
-    return product;
-  }
-
-  //////////////////////  Constructors  //////////////////////
-
-  /**
-   * Creates a <code>ManagedEntityConfigImpl</code> with the default
-   * configuration.
-   */
-  protected ManagedEntityConfigImpl() {
-    this.host = getLocalHostName();
-    this.workingDirectory =
-      getCurrentWorkingDirectory().getAbsolutePath(); 
-    this.productDirectory =
-      getGemFireInstallation().getAbsolutePath();
-    this.remoteCommand = null;  // Delegate to AdminDistributedSystem
-  }
-
-  /**
-   * Creates a new <code>ManagedEntityConfigImpl</code> based on the
-   * configuration of a running <code>GemFireVM</code>
-   */
-  protected ManagedEntityConfigImpl(GemFireVM vm) {
-    this.host = SocketCreator.getHostName(vm.getHost());
-    this.workingDirectory = vm.getWorkingDirectory().getAbsolutePath();
-    this.productDirectory = vm.getGemFireDir().getAbsolutePath();
-    this.remoteCommand = null;
-  }
-
-  /**
-   * A copy constructor that creates a new
-   * <code>ManagedEntityConfigImpl</code> with the same configuration
-   * as another <code>ManagedEntityConfig</code>.
-   */
-  protected ManagedEntityConfigImpl(ManagedEntityConfig other) {
-    this.host = other.getHost();
-    this.workingDirectory = other.getWorkingDirectory();
-    this.productDirectory = other.getProductDirectory();
-    this.remoteCommand = other.getRemoteCommand();
-  }
-
-  ////////////////////  Instance Methods  ////////////////////
-
-  /**
-   * Checks to see if this config object is "read only".  If it is,
-   * then an {@link IllegalStateException} is thrown.  It should be
-   * called by every setter method.
-   *
-   * @see #isReadOnly
-   */
-  public void checkReadOnly() {
-    if (this.isReadOnly()) {
-      throw new IllegalStateException(LocalizedStrings.ManagedEntityConfigImpl_THIS_CONFIGURATION_CANNOT_BE_MODIFIED_WHILE_ITS_MANAGED_ENTITY_IS_RUNNING.toLocalizedString());
-    }
-  }
-
-  /**
-   * Returns whether or not this <code>ManagedEntityConfigImpl</code>
-   * is read-only (can be modified).
-   */
-  protected boolean isReadOnly() {
-    return this.entity != null && this.entity.isRunning();
-  }
-
-  /**
-   * Sets the entity that is configured by this config object.  Once
-   * the entity is running, the config object cannot be modified.
-   *
-   * @see #checkReadOnly
-   */
-  public void setManagedEntity(InternalManagedEntity entity) {
-    this.entity = entity;
-  }
-
-  /**
-   * Notifies any configuration listeners that this configuration has
-   * changed.
-   */
-  protected abstract void configChanged();
-
-  public String getHost() {
-    return this.host;
-  }
-
-  public void setHost(String host) {
-    checkReadOnly();
-    this.host = host;
-    configChanged();
-  }
-
-  public String getWorkingDirectory() {
-    String dir = this.workingDirectory;
-    return dir;
-  }
-
-  public void setWorkingDirectory(String workingDirectory) {
-    checkReadOnly();
-    this.workingDirectory = workingDirectory;
-    configChanged();
-  }
-
-  public String getProductDirectory() {
-    return this.productDirectory;
-  }
-
-  public void setProductDirectory(String productDirectory) {
-    checkReadOnly();
-    this.productDirectory = productDirectory;
-    configChanged();
-  }
-
-  public String getRemoteCommand() {
-    return this.remoteCommand;
-  }
-
-  public void setRemoteCommand(String remoteCommand) {
-    checkReadOnly();
-    this.remoteCommand = remoteCommand;
-    configChanged();
-  }
-
-  /**
-   * Validates this configuration.
-   *
-   * @throws IllegalStateException
-   *         If this config is not valid
-   */
-  public void validate() {
-    if (InetAddressUtil.validateHost(this.host) == null) {
-      throw new IllegalStateException(LocalizedStrings.ManagedEntityConfigImpl_INVALID_HOST_0.toLocalizedString(this.host));
-    }
-  }
-
-  @Override
-  public Object clone() throws CloneNotSupportedException {
-    // Since all fields are immutable objects, no deep cloning is
-    // necessary.
-    ManagedEntityConfigImpl clone =
-      (ManagedEntityConfigImpl) super.clone();
-    clone.entity = null;
-    return clone;
-  }
-
-  @Override
-  public String toString() {
-    String className = this.getClass().getName();
-    int index = className.lastIndexOf('.');
-    className = className.substring(index + 1);
-
-    StringBuffer sb = new StringBuffer();
-    sb.append(className);
-    
-    sb.append(" host=");
-    sb.append(this.getHost());
-    sb.append(" workingDirectory=");
-    sb.append(this.getWorkingDirectory());
-    sb.append(" productDirectory=");
-    sb.append(this.getProductDirectory());
-    sb.append(" remoteCommand=\"");
-    sb.append(this.getRemoteCommand());
-    sb.append("\"");
-
-    return sb.toString();
-  }
-}


[18/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/AdminDistributedSystemImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/AdminDistributedSystemImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/AdminDistributedSystemImpl.java
deleted file mode 100755
index 4e84936..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/internal/AdminDistributedSystemImpl.java
+++ /dev/null
@@ -1,2510 +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.admin.internal;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.concurrent.Callable;
-import java.util.concurrent.CancellationException;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-import java.util.concurrent.FutureTask;
-
-import org.apache.logging.log4j.Logger;
-
-import com.gemstone.gemfire.CancelException;
-import com.gemstone.gemfire.LogWriter;
-import com.gemstone.gemfire.SystemFailure;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.Alert;
-import com.gemstone.gemfire.admin.AlertLevel;
-import com.gemstone.gemfire.admin.AlertListener;
-import com.gemstone.gemfire.admin.BackupStatus;
-import com.gemstone.gemfire.admin.CacheServer;
-import com.gemstone.gemfire.admin.CacheServerConfig;
-import com.gemstone.gemfire.admin.CacheVm;
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-import com.gemstone.gemfire.admin.DistributionLocator;
-import com.gemstone.gemfire.admin.DistributionLocatorConfig;
-import com.gemstone.gemfire.admin.GemFireHealth;
-import com.gemstone.gemfire.admin.ManagedEntity;
-import com.gemstone.gemfire.admin.ManagedEntityConfig;
-import com.gemstone.gemfire.admin.OperationCancelledException;
-import com.gemstone.gemfire.admin.RuntimeAdminException;
-import com.gemstone.gemfire.admin.SystemMember;
-import com.gemstone.gemfire.admin.SystemMemberCacheListener;
-import com.gemstone.gemfire.admin.SystemMembershipEvent;
-import com.gemstone.gemfire.admin.SystemMembershipListener;
-import com.gemstone.gemfire.cache.persistence.PersistentID;
-import com.gemstone.gemfire.distributed.DistributedMember;
-import com.gemstone.gemfire.distributed.FutureCancelledException;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionManager;
-import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.Banner;
-import com.gemstone.gemfire.internal.admin.ApplicationVM;
-import com.gemstone.gemfire.internal.admin.GemFireVM;
-import com.gemstone.gemfire.internal.admin.GfManagerAgent;
-import com.gemstone.gemfire.internal.admin.GfManagerAgentConfig;
-import com.gemstone.gemfire.internal.admin.GfManagerAgentFactory;
-import com.gemstone.gemfire.internal.admin.SSLConfig;
-import com.gemstone.gemfire.internal.admin.remote.CompactRequest;
-import com.gemstone.gemfire.internal.admin.remote.DistributionLocatorId;
-import com.gemstone.gemfire.internal.admin.remote.MissingPersistentIDsRequest;
-import com.gemstone.gemfire.internal.admin.remote.PrepareRevokePersistentIDRequest;
-import com.gemstone.gemfire.internal.admin.remote.RemoteApplicationVM;
-import com.gemstone.gemfire.internal.admin.remote.RemoteTransportConfig;
-import com.gemstone.gemfire.internal.admin.remote.RevokePersistentIDRequest;
-import com.gemstone.gemfire.internal.admin.remote.ShutdownAllRequest;
-import com.gemstone.gemfire.internal.cache.persistence.PersistentMemberPattern;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.InternalLogWriter;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.LogWriterFactory;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-import com.gemstone.gemfire.internal.logging.log4j.LogMarker;
-import com.gemstone.gemfire.internal.logging.log4j.LogWriterAppender;
-import com.gemstone.gemfire.internal.logging.log4j.LogWriterAppenders;
-import com.gemstone.gemfire.internal.util.concurrent.FutureResult;
-
-/**
- * Represents a GemFire distributed system for remote administration/management.
- *
- * @author    Kirk Lund
- * @since     3.5
- */
-public class AdminDistributedSystemImpl
-implements com.gemstone.gemfire.admin.AdminDistributedSystem,
-           com.gemstone.gemfire.internal.admin.JoinLeaveListener,
-           com.gemstone.gemfire.internal.admin.AlertListener,
-           com.gemstone.gemfire.distributed.internal.InternalDistributedSystem.DisconnectListener {
-
-  private static final Logger logger = LogService.getLogger();
-  
-  /** String identity of this distributed system */
-  private String id;
-  
-  /** Latest alert broadcast by any system members */
-  private Alert latestAlert;
-  
-  // -------------------------------------------------------------------------
-
-  /** Internal admin agent to delegate low-level work to */
-  private volatile GfManagerAgent gfManagerAgent;
-
-  /** Monitors the health of this distributed system */
-  private GemFireHealth health;
-
-  /** Set of non-Manager members in this system */
-  private final Set applicationSet = new HashSet();
-  
-  /** Set of DistributionLocators for this system */
-  private final Set locatorSet = new HashSet();
-
-  /** Set of dedicated CacheServer members in this system */
-  private final Set cacheServerSet = new HashSet();
-
-  /** Configuration defining this distributed system */
-  private final DistributedSystemConfigImpl config;
-  
-  /** Controller for starting and stopping managed entities */
-  private ManagedEntityController controller;
-  
-  /** Log file collator for gathering and merging system member logs */
-  private LogCollator logCollator = new LogCollator();
-  
-  /** The level above which alerts will be delivered to the alert
-   * listeners */
-  private AlertLevel alertLevel = AlertLevel.WARNING;
-
-  /** The alert listeners registered on this distributed system. */
-  private volatile Set<AlertListener> alertListeners = Collections.emptySet();
-  private final Object alertLock = new Object();
-  
-  private LogWriterAppender logWriterAppender;
-  
-  private InternalLogWriter logWriter;
-  
-  /** The membership listeners registered on this distributed system */
-  private volatile Set membershipListeners = Collections.EMPTY_SET;
-  private final Object membershipLock = new Object();
-  
-  /* The region listeners registered on this distributed system */
-  //for feature requests #32887
-  private volatile List cacheListeners = Collections.EMPTY_LIST;
-  private final Object cacheListLock = new Object();
-  
-  /** 
-   * reference to AdminDistributedSystemImpl instance 
-   * for feature requests #32887. 
-   * <p>
-   * Guarded by {@link #CONNECTION_SYNC}.
-   * <p>
-   * TODO: reimplement this change and SystemMemberCacheEventProcessor to avoid
-   * using this static. SystemMemberCacheEvents should only be sent to Admin 
-   * VMs that express interest.
-   * <p>
-   * This is volatile to allow SystemFailure to deliver fatal poison-pill
-   * to thisAdminDS without waiting on synchronization.
-   * 
-   * @guarded.By CONNECTION_SYNC
-   */
-  private static volatile AdminDistributedSystemImpl thisAdminDS;
-
-  /**
-   * Provides synchronization for {@link #connect()} and {@link #disconnect()}.
-   * {@link #thisAdminDS} is also now protected by CONNECTION_SYNC and has its
-   * lifecycle properly tied to connect/disconnect.
-   */
-  private static final Object CONNECTION_SYNC = new Object();
-   
-  
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-  
-  /** 
-   * Constructs new DistributedSystemImpl with the given configuration.
-   *
-   * @param config  configuration defining this distributed system
-   */
-  public AdminDistributedSystemImpl(DistributedSystemConfigImpl config) {
-                          
-    // init from config...
-    this.config = config;
-
-    String systemId = this.config.getSystemId();
-    if (systemId != null && systemId.length() > 0) {
-      this.id = systemId;
-
-    } if (this.getLocators() != null && this.getLocators().length() > 0) {
-      this.id = this.getLocators();
-
-    } else {
-      this.id = new StringBuffer(this.getMcastAddress()).append("[").append(
-          this.getMcastPort()).append("]").toString();
-    }
-
-    // LOG: create LogWriterAppender unless one already exists
-    this.logWriterAppender = LogWriterAppenders.getOrCreateAppender(LogWriterAppenders.Identifier.MAIN, false, this.config.createLogConfig(), false);
-    
-    // LOG: look in DistributedSystemConfigImpl for existing LogWriter to use
-    InternalLogWriter existingLogWriter = this.config.getInternalLogWriter();
-    if (existingLogWriter != null) {
-      this.logWriter = existingLogWriter;
-    } else {      
-      // LOG: create LogWriterLogger
-      this.logWriter = LogWriterFactory.createLogWriterLogger(false, false, this.config.createLogConfig(), false);
-      // LOG: changed statement from config to info
-      this.logWriter.info(Banner.getString(null));
-      // Set this log writer in DistributedSystemConfigImpl
-      this.config.setInternalLogWriter(this.logWriter);
-    }
-    
-    // set up other details that depend on config attrs...
-    this.controller = ManagedEntityControllerFactory.createManagedEntityController(this);
-    initializeDistributionLocators();
-    initializeCacheServers();
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Initialization
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Creates DistributionLocator instances for every locator entry in the
-   * {@link com.gemstone.gemfire.admin.DistributedSystemConfig}
-   */
-  private void initializeDistributionLocators() {
-    DistributionLocatorConfig[] configs =
-      this.config.getDistributionLocatorConfigs();
-    if (configs.length == 0) {
-      // No work to do
-      return;
-    }
-
-    for (int i = 0; i < configs.length; i++) {
-      // the Locator impl may vary in this class from the config...
-      DistributionLocatorConfig conf = configs[i];
-      DistributionLocator locator =
-        createDistributionLocatorImpl(conf);
-      this.locatorSet.add(new FutureResult(locator));
-    }
-    // update locators string...
-    setLocators(parseLocatorSet());
-  }
-  
-  /**
-   * Creates <code>CacheServer</code> instances for every cache server
-   * entry in the {@link
-   * com.gemstone.gemfire.admin.DistributedSystemConfig}
-   */
-  private void initializeCacheServers() {
-    CacheServerConfig[] cacheServerConfigs =
-      this.config.getCacheServerConfigs();
-    for (int i = 0; i < cacheServerConfigs.length; i++) {
-      try {
-        CacheServerConfig conf = cacheServerConfigs[i];
-        CacheServerConfigImpl copy =
-          new CacheServerConfigImpl(conf);
-        this.cacheServerSet.add(new FutureResult(createCacheServer(copy)));
-      } catch (java.lang.Exception e) {
-        logger.warn(e.getMessage(), e);
-        continue;
-      } catch (VirtualMachineError err) {
-        SystemFailure.initiateFailure(err);
-        // If this ever returns, rethrow the error.  We're poisoned
-        // now, so don't let this thread continue.
-        throw err;
-      } catch (java.lang.Error e) {
-        // Whenever you catch Error or Throwable, you must also
-        // catch VirtualMachineError (see above).  However, there is
-        // _still_ a possibility that you are dealing with a cascading
-        // error condition, so you also need to check to see if the JVM
-        // is still usable:
-        SystemFailure.checkFailure();
-        logger.error(e.getMessage(), e);
-        continue;
-      }
-    }
-  }
-
-  /**
-   * Checks to make sure that {@link #connect()} has been called.
-   *
-   * @throws IllegalStateException
-   *         If {@link #connect()} has not been called.
-   */
-  private void checkConnectCalled() {
-    if (this.gfManagerAgent == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_CONNECT_HAS_NOT_BEEN_INVOKED_ON_THIS_ADMINDISTRIBUTEDSYSTEM.toLocalizedString());
-    }
-  }
-
-  // -------------------------------------------------------------------------
-  //   Attributes of this DistributedSystem
-  // -------------------------------------------------------------------------
-  
-  public GfManagerAgent getGfManagerAgent() {
-    return this.gfManagerAgent;
-  }
-  
-  public boolean isConnected() {
-    return this.gfManagerAgent != null && this.gfManagerAgent.isConnected();
-  }
-
-  public String getId() {
-    return this.id;
-  }
-  
-  public String getName() {
-    String name = this.config.getSystemName();
-    if (name != null && name.length() > 0) {
-      return name;        
-
-    } else {
-      return getId();
-    }
-  }
-
-  public String getSystemName() {
-    return this.config.getSystemName();
-  }
-
-  public String getRemoteCommand() {
-    return this.config.getRemoteCommand();
-  }
-
-  public void setRemoteCommand(String remoteCommand) {
-    this.config.setRemoteCommand(remoteCommand);
-  }
-
-  public void setAlertLevel(AlertLevel level) {
-    if (this.isConnected()) {
-      this.gfManagerAgent.setAlertLevel(level.getSeverity());
-    }
-
-    this.alertLevel = level;
-  }
-
-  public AlertLevel getAlertLevel() {
-    return this.alertLevel;
-  }
-
-  public void addAlertListener(AlertListener listener) {
-    synchronized (this.alertLock) {
-      Set<AlertListener> oldListeners = this.alertListeners;
-      if (!oldListeners.contains(listener)) {
-        Set<AlertListener> newListeners = new HashSet<AlertListener>(oldListeners);
-        newListeners.add(listener);
-        this.alertListeners = newListeners;
-      }
-    }
-  }
-
-  public int getAlertListenerCount() {
-    synchronized (this.alertLock) {
-      return this.alertListeners.size();
-    }
-  }
-  
-  public void removeAlertListener(AlertListener listener) {
-    synchronized (this.alertLock) {
-      Set<AlertListener> oldListeners = this.alertListeners;
-      if (oldListeners.contains(listener)) { // fixed bug 34687
-        Set<AlertListener> newListeners = new HashSet<AlertListener>(oldListeners);
-        if (newListeners.remove(listener)) {
-          this.alertListeners = newListeners;
-        }
-      }
-    }
-  }
-
-  public void addMembershipListener(SystemMembershipListener listener) {
-    synchronized (this.membershipLock) {
-      Set oldListeners = this.membershipListeners;
-      if (!oldListeners.contains(listener)) {
-        Set newListeners = new HashSet(oldListeners);
-        newListeners.add(listener);
-        this.membershipListeners = newListeners;
-      }
-    }
-  }
-
-  public void removeMembershipListener(SystemMembershipListener listener) {
-    synchronized (this.membershipLock) {
-      Set oldListeners = this.membershipListeners;
-      if (oldListeners.contains(listener)) { // fixed bug 34687
-        Set newListeners = new HashSet(oldListeners);
-        if (newListeners.remove(listener)) {
-          this.membershipListeners = newListeners;
-        }
-      }
-    }
-  }
-
-  public String getMcastAddress() {
-    return this.config.getMcastAddress();
-  }
-
-  public int getMcastPort() {
-    return this.config.getMcastPort();
-  }
-  
-  public boolean getDisableTcp() {
-    return this.config.getDisableTcp();
-  }
-  
-  public boolean getDisableAutoReconnect() {
-    return this.config.getDisableAutoReconnect();
-  }
-
-  public String getLocators() {
-    return this.config.getLocators();
-  }
-  
-  protected void setLocators(String locators) {
-    this.config.setLocators(locators);
-  }
-  
-  public String getMembershipPortRange() {
-    return this.getConfig().getMembershipPortRange();
-  }
-  
-  /** get the direct-channel port to use, or zero if not set */
-  public int getTcpPort() {
-    return this.getConfig().getTcpPort();
-  }
-  
-  public void setTcpPort(int port) {
-    this.getConfig().setTcpPort(port);
-  }
-
-  public void setMembershipPortRange(String membershipPortRange) {
-    this.getConfig().setMembershipPortRange(membershipPortRange);
-  }
-
-  public DistributedSystemConfig getConfig() {
-    return this.config;
-  }
-  
-  /**
-   * Returns true if any members of this system are currently running.
-   */
-  public boolean isRunning() {
-    if (this.gfManagerAgent == null) return false;
-    // is there a better way??
-    // this.gfManagerAgent.isConnected() ... this.gfManagerAgent.isListening()
-    
-    if (isAnyMemberRunning()) return true;
-    return false;
-  }
-  
-  /** Returns true if this system can use multicast for communications */
-  public boolean isMcastEnabled() {
-    return this.getMcastPort() > 0 ;
-  }
-  
-  ManagedEntityController getEntityController() {
-    return this.controller;
-  }
-  
-  static private final String TIMEOUT_MS_NAME 
-      = "AdminDistributedSystemImpl.TIMEOUT_MS";
-  static private final int TIMEOUT_MS_DEFAULT = 60000; // 30000 -- see bug36470
-  static private final int TIMEOUT_MS 
-      = Integer.getInteger(TIMEOUT_MS_NAME, TIMEOUT_MS_DEFAULT).intValue();
-  
-
-  // -------------------------------------------------------------------------
-  //   Operations of this DistributedSystem
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Starts all managed entities in this system.
-   */
-  public void start() throws AdminException {
-    // Wait for each managed entity to start (see bug 32569)
-    DistributionLocator[] locs = getDistributionLocators();
-    for (int i = 0; i < locs.length; i++) {
-      locs[i].start();
-    }
-    for (int i = 0; i < locs.length; i++) {
-      try {
-        if (!locs[i].waitToStart(TIMEOUT_MS)) {
-          throw new AdminException(LocalizedStrings.AdminDistributedSystemImpl_0_DID_NOT_START_AFTER_1_MS.toLocalizedString(new Object[] {locs[i], Integer.valueOf(TIMEOUT_MS)}));
-        }
-
-      } catch (InterruptedException ex) {
-        Thread.currentThread().interrupt();
-        throw new AdminException(LocalizedStrings.AdminDistributedSystemImpl_INTERRUPTED_WHILE_WAITING_FOR_0_TO_START.toLocalizedString(locs[i]), ex);
-      }
-    }
-
-    CacheServer[] servers = getCacheServers();
-    for (int i = 0; i < servers.length; i++) {
-      servers[i].start();
-    }
-    for (int i = 0; i < servers.length; i++) {
-      try {
-        if (!servers[i].waitToStart(TIMEOUT_MS)) {
-          throw new AdminException(LocalizedStrings.AdminDistributedSystemImpl_0_DID_NOT_START_AFTER_1_MS.toLocalizedString(new Object[] {servers[i], Integer.valueOf(TIMEOUT_MS)}));
-        }
-
-      } catch (InterruptedException ex) {
-        Thread.currentThread().interrupt();
-        throw new AdminException(LocalizedStrings.AdminDistributedSystemImpl_INTERRUPTED_WHILE_WAITING_FOR_0_TO_START.toLocalizedString(servers[i]), ex);
-      }
-    }
-  }
-  
-  /**
-   * Stops all GemFire managers that are members of this system.
-   */
-  public void stop() throws AdminException {
-    // Stop cache server before GemFire managers because the cache
-    // server might host a cache proxy that is dependent on the
-    // manager.  See bug 32569.
-
-    // Wait for each managed entity to stop (see bug 32569)
-    long timeout = 30;
-
-    CacheServer[] servers = getCacheServers();
-    for (int i = 0; i < servers.length; i++) {
-      servers[i].stop();
-    }
-    for (int i = 0; i < servers.length; i++) {
-      try {
-        if (!servers[i].waitToStop(timeout * 1000)) {
-          throw new AdminException(LocalizedStrings.AdminDistributedSystemImpl_0_DID_NOT_STOP_AFTER_1_SECONDS.toLocalizedString(new Object[] {servers[i], Long.valueOf(timeout)}));
-        }
-
-      } catch (InterruptedException ex) {
-        Thread.currentThread().interrupt();
-        throw new AdminException(LocalizedStrings.AdminDistributedSystemImpl_INTERRUPTED_WHILE_WAITING_FOR_0_TO_STOP.toLocalizedString(servers[i]), ex);
-      }
-    }
-
-    DistributionLocator[] locs = getDistributionLocators();
-    for (int i = 0; i < locs.length; i++) {
-      locs[i].stop();
-    }
-    for (int i = 0; i < locs.length; i++) {
-      try {
-        if (!locs[i].waitToStop(timeout * 1000)) {
-          throw new AdminException(LocalizedStrings.AdminDistributedSystemImpl_0_DID_NOT_STOP_AFTER_1_SECONDS.toLocalizedString(new Object[] {locs[i], Long.valueOf(timeout)}));
-        }
-
-      } catch (InterruptedException ex) {
-        Thread.currentThread().interrupt();
-        throw new AdminException(LocalizedStrings.AdminDistributedSystemImpl_INTERRUPTED_WHILE_WAITING_FOR_0_TO_STOP.toLocalizedString(locs[i]), ex);
-      }
-    }
-  }
-  
-  /** Display merged system member logs */
-  public String displayMergedLogs() {
-    return this.logCollator.collateLogs(this.gfManagerAgent);
-  }
-
-   /**
-   * Returns the license for this GemFire product; else null if unable to
-   * retrieve license information
-   *
-   * @return license for this GemFire product
-   */
-  public java.util.Properties getLicense() {
-    SystemMember member = findFirstRunningMember();
-    if (member != null) {
-      return new Properties();
-    } else {
-      return null;
-    }
-  }
-
-  /**
-   * Sets the distribution-related portion of the given managed entity's
-   * configuration so that the entity is part of this distributed system.
-   * 
-   * @throws AdminException
-   *                 TODO-javadocs
-   */
-  private void setDistributionParameters(SystemMember member) 
-    throws AdminException {
-
-    Assert.assertTrue(member instanceof ManagedSystemMemberImpl);
-
-    // set some config parms to match this system...
-    ConfigurationParameter[] configParms = new ConfigurationParameter[] {
-        new ConfigurationParameterImpl(
-            DistributionConfig.MCAST_PORT_NAME, 
-            Integer.valueOf(this.config.getMcastPort())),
-        new ConfigurationParameterImpl(
-            DistributionConfig.LOCATORS_NAME, 
-            this.config.getLocators()),
-        new ConfigurationParameterImpl(
-            DistributionConfig.MCAST_ADDRESS_NAME, 
-            InetAddressUtil.toInetAddress(this.config.getMcastAddress())),
-        new ConfigurationParameterImpl(
-            DistributionConfig.DISABLE_TCP_NAME,
-            Boolean.valueOf(this.config.getDisableTcp()) ),
-      };
-    member.setConfiguration(configParms);
-  }
-
-  /**
-   * Handles an <code>ExecutionException</code> by examining its cause
-   * and throwing an appropriate runtime exception.
-   */
-  private static void handle(ExecutionException ex) {
-    Throwable cause = ex.getCause();
-
-    if (cause instanceof OperationCancelledException) {
-      // Operation was cancelled, we don't necessary want to propagate
-      // this up to the user.
-      return;
-    }
-    if (cause instanceof CancelException) { // bug 37285
-      throw new FutureCancelledException(LocalizedStrings.AdminDistributedSystemImpl_FUTURE_CANCELLED_DUE_TO_SHUTDOWN.toLocalizedString(), ex);
-    }
-
-    // Don't just throw the cause because the stack trace can be
-    // misleading.  For instance, the cause might have occurred in a
-    // different thread.  In addition to the cause, we also want to
-    // know which code was waiting for the Future.
-    throw new RuntimeAdminException(LocalizedStrings.AdminDistributedSystemImpl_WHILE_WAITING_FOR_FUTURE.toLocalizedString(), ex);
-  }
-  
-  protected void checkCancellation() {
-    DM dm = this.getDistributionManager();
-    // TODO does dm == null mean we're dead?
-    if (dm != null) {
-      dm.getCancelCriterion().checkCancelInProgress(null);
-    }
-  }
-  /**
-   * Returns a list of manageable SystemMember instances for each
-   * member of this distributed system.
-   *
-   * @return array of system members for each non-manager member
-   */
-  public SystemMember[] getSystemMemberApplications()
-  throws com.gemstone.gemfire.admin.AdminException {
-    synchronized(this.applicationSet) {
-      Collection coll = new ArrayList(this.applicationSet.size());
-      APPS: for (Iterator iter = this.applicationSet.iterator();
-           iter.hasNext(); ) {
-        Future future = (Future) iter.next();
-//         this.logger.info("DEBUG: getSystemMemberApplications: " + future);
-        for (;;) {
-          checkCancellation();
-          boolean interrupted = Thread.interrupted();
-          try {
-            coll.add(future.get());
-            break;
-          } 
-          catch (InterruptedException ex) {
-            interrupted = true;
-            continue; // keep trying
-          } 
-          catch (CancellationException ex) {
-//             this.logger.info("DEBUG: cancelled: " + future, ex);
-            continue APPS;
-          } 
-          catch (ExecutionException ex) {
-//             this.logger.info("DEBUG: executed: " + future);
-            handle(ex);
-            continue APPS;
-          }
-          finally {
-            if (interrupted) {
-              Thread.currentThread().interrupt();
-            }
-          }
-        } // for
-      } // APPS
-      SystemMember[] array = new SystemMember[coll.size()];
-      coll.toArray(array);
-      return array;
-    }
-  }
-
-  /**
-   * Display in readable format the latest Alert in this distributed system.
-   *
-   * TODO: create an external admin api object for Alert
-   */
-  public String getLatestAlert() {
-    if (this.latestAlert == null) {
-      return "";
-    }
-    return this.latestAlert.toString();
-  }
-  
-  /**
-   * Connects to the currently configured system.
-   */
-  public void connect() {
-    connect(this.logWriter);
-  }
-
-  /**
-   * Connects to the currently configured system.  This method is
-   * public for internal use only (testing, for example).
-   *
-   * <p>
-   *
-   * See {@link
-   * com.gemstone.gemfire.distributed.DistributedSystem#connect} for a
-   * list of exceptions that may be thrown.
-   *
-   * @param logWriter the InternalLogWriter to use for any logging
-   */
-  public void connect(InternalLogWriter logWriter) {
-    synchronized (CONNECTION_SYNC) {
-      //Check if the gfManagerAgent is NOT null. 
-      //If it is already listening, then just return since the connection is already established OR in process.
-      //Otherwise cleanup the state of AdminDistributedSystemImpl. This needs to happen automatically.
-      if(this.gfManagerAgent != null) {
-       if(this.gfManagerAgent.isListening()) {
-         if (logger.isDebugEnabled()) {
-           logger.debug("The RemoteGfManagerAgent is already listening for this AdminDistributedSystem.");
-         }
-         return;
-       }
-       this.disconnect();
-      }
-      
-      if (thisAdminDS != null) { // TODO: beef up toString and add thisAdminDS
-        throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_ONLY_ONE_ADMINDISTRIBUTEDSYSTEM_CONNECTION_CAN_BE_MADE_AT_ONCE.toLocalizedString());
-      }
-      
-      thisAdminDS = this; //added for feature requests #32887
-      
-      if (this.getLocators().length() == 0) {
-        this.id =
-          this.getMcastAddress() + "[" + this.getMcastPort() + "]";
-  
-      } else {
-        this.id = this.getLocators();
-      }
-  
-      if (this.config instanceof DistributedSystemConfigImpl) {
-        ((DistributedSystemConfigImpl) this.config).validate();
-        ((DistributedSystemConfigImpl) this.config).setDistributedSystem(this);
-      }
-  
-      // LOG: passes the AdminDistributedSystemImpl LogWriterLogger into GfManagerAgentConfig for RemoteGfManagerAgent
-      GfManagerAgent agent = 
-          GfManagerAgentFactory.getManagerAgent(buildAgentConfig(logWriter));         
-      this.gfManagerAgent = agent;
-  
-      // sync to prevent bug 33341 Admin API can double-represent system members
-      synchronized(this.membershipListenerLock) {
-      // build the list of applications...
-        ApplicationVM[] apps = this.gfManagerAgent.listApplications();
-        for (int i = 0; i < apps.length; i++) {
-          try {
-            nodeJoined(null, apps[i]);
-          } catch (RuntimeAdminException e) {
-            this.logWriter.warning("encountered a problem processing member " + apps[i]);
-          }
-        }
-      }
-
-      // Build admin objects for all locators (see bug 31959)
-      String locators = this.getLocators();
-      StringTokenizer st = new StringTokenizer(locators, ",");
-  NEXT:
-      while(st.hasMoreTokens()) {
-        String locator = st.nextToken();
-        int first = locator.indexOf("[");
-        int last = locator.indexOf("]");
-        String host = locator.substring(0, first);
-        int colidx = host.lastIndexOf('@');
-        if (colidx < 0) {
-          colidx = host.lastIndexOf(':');
-        }
-        String bindAddr = null;
-        if (colidx > 0 && colidx < (host.length()-1)) {
-          String orig = host;
-          bindAddr = host.substring(colidx+1, host.length());
-          host = host.substring(0, colidx);
-          // if the host contains a colon and there's no '@', we probably
-          // parsed an ipv6 address incorrectly - try again
-          if (host.indexOf(':') >= 0) {
-            int bindidx = orig.lastIndexOf('@');
-            if (bindidx >= 0) {
-              host = orig.substring(0, bindidx);
-              bindAddr = orig.substring(bindidx+1);
-            }
-            else {
-              host = orig;
-              bindAddr = null;
-            }
-          }
-        }
-        int port = Integer.parseInt(locator.substring(first+1, last));
-
-        synchronized (this.locatorSet) {
-          LOCATORS:
-            for (Iterator iter = this.locatorSet.iterator();
-               iter.hasNext(); ) {
-            Future future = (Future) iter.next();
-            DistributionLocatorImpl impl = null;
-            for (;;) {
-              checkCancellation();
-              boolean interrupted = Thread.interrupted();
-              try {
-                impl = (DistributionLocatorImpl) future.get();
-                break; // success
-              } 
-              catch (InterruptedException ex) {
-                interrupted = true;
-                continue; // keep trying
-              } 
-              catch (CancellationException ex) {
-                continue LOCATORS;
-              } 
-              catch (ExecutionException ex) {
-                handle(ex);
-                continue LOCATORS;
-              }
-              finally {
-                if (interrupted) {
-                  Thread.currentThread().interrupt();
-                }
-              }
-            } // for
-
-            DistributionLocatorConfig conf = impl.getConfig();
-
-            InetAddress host1 = InetAddressUtil.toInetAddress(host);
-            InetAddress host2 =
-              InetAddressUtil.toInetAddress(conf.getHost());
-            if (port == conf.getPort() && host1.equals(host2)) {
-              // Already have an admin object for this locator
-              continue NEXT;
-            }
-          }
-        }
-
-        // None of the existing locators matches the locator in the
-        // string.  Contact the locator to get information and create
-        // an admin object for it.
-        InetAddress bindAddress = null;
-        if (bindAddr != null) {
-          bindAddress = InetAddressUtil.toInetAddress(bindAddr);
-        }
-        DistributionLocatorConfig conf =
-          DistributionLocatorConfigImpl.createConfigFor(host, port,
-                                                        bindAddress);
-        if (conf != null) {
-          DistributionLocator impl = 
-            createDistributionLocatorImpl(conf);
-          synchronized (this.locatorSet) {
-            this.locatorSet.add(new FutureResult(impl));
-          }
-        }
-      }
-    }
-  }
-  
-  /**
-   * Polls to determine whether or not the connection to the
-   * distributed system has been made.
-   */
-  public boolean waitToBeConnected(long timeout) 
-    throws InterruptedException {
-
-    if (Thread.interrupted()) throw new InterruptedException();
-    
-    checkConnectCalled();
-
-    long start = System.currentTimeMillis();
-    while (System.currentTimeMillis() - start < timeout) {
-      if (this.gfManagerAgent.isInitialized()) {
-        return true;
-
-      } else {
-        Thread.sleep(100);
-      }
-    }
-
-    return this.isConnected();
-  }
-
-  /** 
-   * Closes all connections and resources to the connected distributed system.
-   *
-   * @see com.gemstone.gemfire.distributed.DistributedSystem#disconnect()
-   */
-  public void disconnect() {
-    synchronized (CONNECTION_SYNC) {
-//      if (!isConnected()) {
-//        throw new IllegalStateException(this + " is not connected");
-//      }
-//      Assert.assertTrue(thisAdminDS == this);
-      if (this.logWriterAppender != null) {
-        LogWriterAppenders.stop(LogWriterAppenders.Identifier.MAIN);
-      }
-      try {
-      if (thisAdminDS == this) {
-        thisAdminDS = null;
-      }
-      if (this.gfManagerAgent != null && this.gfManagerAgent.isListening()){
-        synchronized (this) {
-          if (this.health != null) {
-            this.health.close();
-          }
-        }
-        this.gfManagerAgent.removeJoinLeaveListener(this);
-        this.gfManagerAgent.disconnect();
-      }
-      this.gfManagerAgent = null;
-      if (this.config instanceof DistributedSystemConfigImpl) {
-        ((DistributedSystemConfigImpl) this.config).setDistributedSystem(null);
-      }
-      } finally {
-        if (logWriterAppender != null) {
-          LogWriterAppenders.destroy(LogWriterAppenders.Identifier.MAIN);
-        }
-      }
-    }
-  }
-  
-  /**
-   * Returns the DistributionManager this implementation is using to
-   * connect to the distributed system.
-   */
-  public DM getDistributionManager() {
-    if (this.gfManagerAgent == null) {
-      return null;
-    }
-    return this.gfManagerAgent.getDM();
-    
-  }
-  
-  /**
-   * Returns the internal admin API's agent used for administering
-   * this <code>AdminDistributedSystem</code>.
-   *
-   * @since 4.0
-   */
-  public GfManagerAgent getAdminAgent() {
-    return this.gfManagerAgent;
-  }
-  
-  /**
-   * Adds a new, unstarted <code>DistributionLocator</code> to this
-   * distributed system.
-   */
-  public DistributionLocator addDistributionLocator() {
-    DistributionLocatorConfig conf =
-      new DistributionLocatorConfigImpl();
-    DistributionLocator locator = 
-      createDistributionLocatorImpl(conf);
-    synchronized (this.locatorSet) {
-      this.locatorSet.add(new FutureResult(locator));
-    }
-
-    // update locators string...
-    setLocators(parseLocatorSet());
-    return locator;
-  }
-  
-  public DistributionLocator[] getDistributionLocators() {
-    synchronized(this.locatorSet) {
-      Collection coll = new ArrayList(this.locatorSet.size());
-      LOCATORS: for (Iterator iter = this.locatorSet.iterator();
-           iter.hasNext();) {
-        Future future = (Future) iter.next();
-        for (;;) {
-          checkCancellation();
-          boolean interrupted = Thread.interrupted();
-          try {
-            coll.add(future.get());
-            break; // success
-          } 
-          catch (InterruptedException ex) {
-            interrupted = true;
-            continue; // keep trying
-          } 
-          catch (CancellationException ex) {
-            continue LOCATORS;
-          } 
-          catch (ExecutionException ex) {
-            handle(ex);
-            continue LOCATORS;
-          }
-          finally {
-            if (interrupted) {
-              Thread.currentThread().interrupt();
-            }
-          }
-        } // for
-      }
-
-      DistributionLocator[] array =
-        new DistributionLocator[coll.size()];
-      coll.toArray(array);
-      return array;
-    }
-  }
-  
-  /**
-   * Updates the locator string that is used to discover members of
-   * the distributed system.
-   *
-   * @see #getLocators
-   */
-  void updateLocatorsString() {
-    this.setLocators(parseLocatorSet());
-  }
-
-  protected String parseLocatorSet() {
-    StringBuffer sb = new StringBuffer();
-    LOCATORS: for (Iterator iter = this.locatorSet.iterator(); iter.hasNext();) {
-      Future future = (Future) iter.next();
-      DistributionLocator locator = null;
-      for (;;) {
-        checkCancellation();
-        boolean interrupted = Thread.interrupted();
-        try {
-          locator = (DistributionLocator) future.get();
-          break; // success
-        } 
-        catch (InterruptedException ex) {
-          interrupted = true;
-          continue; // keep trying
-        } 
-        catch (CancellationException ex) {
-          continue LOCATORS;
-        } 
-        catch (ExecutionException ex) {
-          handle(ex);
-          continue LOCATORS;
-        }
-        finally {
-          if (interrupted) {
-            Thread.currentThread().interrupt();
-          }
-        }
-      }
-      sb.append(locator.getConfig().getHost());
-      sb.append("[").append(locator.getConfig().getPort()).append("]");
-
-      if (iter.hasNext()) {
-        sb.append(",");
-      }
-    }
-    return sb.toString();
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Listener callback methods
-  // -------------------------------------------------------------------------
-  
-  /** sync to prevent bug 33341 Admin API can double-represent system members */
-  private final Object membershipListenerLock = new Object();
-  
-  // --------- com.gemstone.gemfire.internal.admin.JoinLeaveListener ---------
-  /** 
-   * Listener callback for when a member has joined this DistributedSystem.
-   * <p>
-   * React by adding the SystemMember to this system's
-   * internal lists, if they are not already there.  Notice that we
-   * add a {@link Future} into the list so that the admin object is
-   * not initialized while locks are held.
-   *
-   * @param source  the distributed system that fired nodeJoined
-   * @param vm  the VM that joined
-   * @see com.gemstone.gemfire.internal.admin.JoinLeaveListener#nodeJoined
-   */
-  public void nodeJoined(GfManagerAgent source, final GemFireVM vm) {
-    // sync to prevent bug 33341 Admin API can double-represent system members
-    synchronized(this.membershipListenerLock) {
-//     this.logger.info("DEBUG: nodeJoined: " + vm.getId(), new RuntimeException("STACK"));
-
-    // does it already exist?
-    SystemMember member = findSystemMember(vm);
-    
-    // if not then create it...
-    if (member == null) {
-//       this.logger.info("DEBUG: no existing member: " + vm.getId());
-      FutureTask future = null;
-      //try {
-        if (vm instanceof ApplicationVM) {
-          final ApplicationVM app = (ApplicationVM) vm;
-          if (app.isDedicatedCacheServer()) {
-            synchronized (this.cacheServerSet) {
-              future = new AdminFutureTask(vm.getId(), new Callable() {
-                  public Object call() throws Exception {
-                    logger.info(LogMarker.DM, LocalizedMessage.create(LocalizedStrings.AdminDistributedSystemImpl_ADDING_NEW_CACHESERVER_FOR__0, vm));
-                    return createCacheServer(app);
-                  }
-                });
-                                      
-              this.cacheServerSet.add(future);
-            }
-
-          } else {
-            synchronized (this.applicationSet) {
-              future = new AdminFutureTask(vm.getId(), new Callable() {
-                  public Object call() throws Exception {
-                    logger.info(LogMarker.DM, LocalizedMessage.create(LocalizedStrings.AdminDistributedSystemImpl_ADDING_NEW_APPLICATION_FOR__0, vm));
-                    return createSystemMember(app); 
-                  }
-                });
-              this.applicationSet.add(future);
-            }
-          }
-
-        } else {
-          Assert.assertTrue(false, "Unknown GemFireVM type: " +
-                            vm.getClass().getName());
-        } 
-
-//      } catch (AdminException ex) {
-//        String s = "Could not create a SystemMember for " + vm;
-//        this.logger.warning(s, ex);
-//      }
-
-      // Wait for the SystemMember to be created.  We want to do this
-      // outside of the "set" locks.
-      future.run();
-      for (;;) {
-        checkCancellation();
-        boolean interrupted = Thread.interrupted();
-        try {
-          member = (SystemMember) future.get();
-          break; // success
-        } 
-        catch (InterruptedException ex) {
-          interrupted = true;
-          continue; // keep trying
-        } 
-        catch (CancellationException ex) {
-//           this.logger.info("DEBUG: run cancelled: " + future, ex);
-          return;
-        } 
-        catch (ExecutionException ex) {
-//           this.logger.info("DEBUG: run executed: " + future, ex);
-          handle(ex);
-          return;
-        }
-        finally {
-          if (interrupted) {
-            Thread.currentThread().interrupt();
-          }
-        }
-      } // for
-
-      Assert.assertTrue(member != null);
-
-      // moved this up into the if that creates a new member to fix bug 34517
-      SystemMembershipEvent event = new SystemMembershipEventImpl(member.getDistributedMember());
-      for (Iterator iter = this.membershipListeners.iterator();
-           iter.hasNext(); ) {
-        SystemMembershipListener listener =
-          (SystemMembershipListener) iter.next();
-        listener.memberJoined(event);
-      }
-//     } else {
-//       this.logger.info("DEBUG: found existing member: " + member);
-    }
-
-    }
-  }
-  
-  /** 
-   * Listener callback for when a member of this DistributedSystem has left.
-   * <p>
-   * Reacts by removing the member.
-   *
-   * @param source  the distributed system that fired nodeCrashed
-   * @param vm    the VM that left
-   * @see com.gemstone.gemfire.internal.admin.JoinLeaveListener#nodeLeft
-   */
-  public void nodeLeft(GfManagerAgent source, GemFireVM vm) {
-    // sync to prevent bug 33341 Admin API can double-represent system members
-    synchronized(this.membershipListenerLock) {
-      // member has left...
-      SystemMember member = 
-          AdminDistributedSystemImpl.this.removeSystemMember(vm.getId());
-      if (member == null) {
-        return; // reinstated this early-out because removal does not fix 39429
-      }
-  
-      // Can't call member.getId() because it is nulled-out when the
-      // SystemMember is removed.
-      SystemMembershipEvent event = new SystemMembershipEventImpl(vm.getId());
-      for (Iterator iter = this.membershipListeners.iterator();
-           iter.hasNext(); ) {
-        SystemMembershipListener listener =
-          (SystemMembershipListener) iter.next();
-        listener.memberLeft(event);
-      }
-    }
-  }
-  
-  /** 
-   * Listener callback for when a member of this DistributedSystem has crashed.
-   * <p>
-   * Reacts by removing the member.
-   *
-   * @param source  the distributed system that fired nodeCrashed
-   * @param vm the VM that crashed
-   * @see com.gemstone.gemfire.internal.admin.JoinLeaveListener#nodeCrashed
-   */
-  public void nodeCrashed(GfManagerAgent source, GemFireVM vm) {
-    // sync to prevent bug 33341 Admin API can double-represent system members
-    synchronized(this.membershipListenerLock) {
-      // member has crashed...
-      SystemMember member = 
-        AdminDistributedSystemImpl.this.removeSystemMember(vm.getId());
-      if (member == null) {
-        // Unknown member crashed.  Hmm...
-        return;
-      }
-
-      // Can't call member.getId() because it is nulled-out when the
-      // SystemMember is removed.
-      SystemMembershipEvent event = new SystemMembershipEventImpl(vm.getId());
-      for (Iterator iter = this.membershipListeners.iterator();
-      iter.hasNext(); ) {
-        SystemMembershipListener listener =
-          (SystemMembershipListener) iter.next();
-        listener.memberCrashed(event);
-      }
-    }
-  }
-
-  // ----------- com.gemstone.gemfire.internal.admin.AlertListener -----------
-  /** 
-   * Listener callback for when a SystemMember of this DistributedSystem has 
-   * crashed. 
-   *
-   * @param alert   the latest alert from the system
-   * @see com.gemstone.gemfire.internal.admin.AlertListener#alert
-   */
-  public void alert(com.gemstone.gemfire.internal.admin.Alert alert) {
-    if (AlertLevel.forSeverity(alert.getLevel()).ordinal < alertLevel.ordinal) {
-      return;
-    }
-    Alert alert2 = new AlertImpl(alert);
-    this.latestAlert = alert2;
-    for (Iterator<AlertListener> iter = this.alertListeners.iterator();
-         iter.hasNext(); ) {
-      AlertListener listener = iter.next();
-      listener.alert(alert2);
-    }
-  }
-  
-  public void onDisconnect(InternalDistributedSystem sys) {
-   logger.debug("Calling AdminDistributedSystemImpl#onDisconnect");	 
-   disconnect();
-   logger.debug("Completed AdminDistributedSystemImpl#onDisconnect");
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Template methods overriden from superclass...
-  // -------------------------------------------------------------------------
-  
-  protected CacheServer createCacheServer(ApplicationVM member) 
-    throws AdminException {
-
-    return new CacheServerImpl(this, member);
-  }
-
-  protected CacheServer createCacheServer(CacheServerConfigImpl conf) 
-    throws AdminException {
-
-    return new CacheServerImpl(this, conf);
-  }
-
-  /** Override createSystemMember by instantiating SystemMemberImpl
-   * 
-   *  @throws AdminException TODO-javadocs
-   */
-  protected SystemMember createSystemMember(ApplicationVM app)
-  throws com.gemstone.gemfire.admin.AdminException {
-    return new SystemMemberImpl(this, app);
-  }
-
-  /**
-   * Constructs & returns a SystemMember instance using the corresponding
-   * InternalDistributedMember object.
-   * 
-   * @param member
-   *          InternalDistributedMember instance for which a SystemMember
-   *          instance is to be constructed.
-   * @return constructed SystemMember instance
-   * @throws com.gemstone.gemfire.admin.AdminException
-   *           if construction of SystemMember instance fails
-   * @since 6.5
-   */
-  protected SystemMember createSystemMember(InternalDistributedMember member)
-    throws com.gemstone.gemfire.admin.AdminException {
-    return new SystemMemberImpl(this, member);
-  }
-
-  /** 
-   * Template-method for creating a new
-   * <code>DistributionLocatorImpl</code> instance.  
-   */
-  protected DistributionLocatorImpl
-    createDistributionLocatorImpl(DistributionLocatorConfig conf) {
-    return new DistributionLocatorImpl(conf, this);
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Non-public implementation methods... TODO: narrow access levels
-  // -------------------------------------------------------------------------
-
-  // TODO: public void connect(...) could stand to have some internals factored out
-  
-  /** 
-   * Returns List of Locators including Locators or Multicast.
-   *
-   * @return list of locators or multicast values
-   */
-  protected List parseLocators() {
-
-    // assumes host[port] format, delimited by ","
-    List locatorIds = new ArrayList();
-    if (isMcastEnabled()) {
-      String mcastId = new StringBuffer(
-          this.getMcastAddress()).append("[").append(
-          this.getMcastPort()).append("]").toString();
-      locatorIds.add(new DistributionLocatorId(mcastId));
-    }
-    StringTokenizer st = new StringTokenizer(this.getLocators(), ",");
-    while (st.hasMoreTokens()) {
-      locatorIds.add(new DistributionLocatorId(st.nextToken()));
-    }
-
-    if (logger.isDebugEnabled()) {
-      StringBuffer sb = new StringBuffer("Locator set is: ");
-      for (Iterator iter = locatorIds.iterator(); iter.hasNext(); ) {
-        sb.append(iter.next());
-        sb.append(" ");
-      }
-      logger.debug(sb);
-    }
-
-    return locatorIds;
-  }
-  
-  /**
-   * Returns whether or not a <code>SystemMember</code> corresponds
-   * to a <code>GemFireVM</code>.
-   *
-   * @param examineConfig
-   *        Should we take the configuration of the member into
-   *        consideration?  In general, we want to consider the
-   *        configuration when a member starts up.  But when we are
-   *        notified that it has shut down, we do not want to examine
-   *        the configuration because that might involve contacting
-   *        the member.  Which, of course, cannot be done because it
-   *        has shut down.
-   */
-  private boolean isSame(SystemMemberImpl member, GemFireVM vm,
-                         boolean examineConfig) {
-    if (vm.equals(member.getGemFireVM())) {
-      return true;
-    }
-
-    InternalDistributedMember memberId = member.getInternalId();
-    InternalDistributedMember vmId = vm.getId();
-
-    if (vmId.equals(memberId)) {
-      return true;
-    }
-
-    if ((member instanceof ManagedSystemMemberImpl) &&
-        examineConfig) {
-
-      // We can't compare information about managers because the
-      // member might have already gone away.  Attempts to send it
-      // messages (to get its product directory, for instance) will
-      // time out.
-
-      ManagedSystemMemberImpl entity =
-        (ManagedSystemMemberImpl) member;
-
-      // Make sure that the type of the managed entity matches the
-      // type of the internal admin object.
-      if (entity instanceof CacheServer) {
-        if (!(vm instanceof ApplicationVM)) {
-          return false;
-        }
-
-        ApplicationVM app = (ApplicationVM) vm;
-        if (!app.isDedicatedCacheServer()) {
-          return false;
-        }
-      }
-
-      ManagedEntityConfig conf = entity.getEntityConfig();
-      InetAddress managedHost =
-        InetAddressUtil.toInetAddress(conf.getHost());
-      File managedWorkingDir = new File(conf.getWorkingDirectory());
-      File managedProdDir = new File(conf.getProductDirectory());
-      
-      InetAddress vmHost = vm.getHost();
-      File vmWorkingDir = vm.getWorkingDirectory();
-      File vmProdDir = vm.getGemFireDir();
-
-      if (vmHost.equals(managedHost) && 
-          isSameFile(vmWorkingDir, managedWorkingDir) &&
-          isSameFile(vmProdDir, managedProdDir)) {
-        return true;
-      }
-    }
-
-    return false;
-  }
-
-  /**
-   * Returns whether or not the names of the two files represent the
-   * same file.
-   */
-  private boolean isSameFile(File file1, File file2) {
-    if (file1.equals(file2)) {
-      return true;
-    }
-
-    if (file1.getAbsoluteFile().equals(file2.getAbsoluteFile())) {
-      return true;
-    }
-
-    try {
-      if (file1.getCanonicalFile().equals(file2.getCanonicalFile())) {
-        return true;
-      }
-
-//       StringBuffer sb = new StringBuffer();
-//       sb.append("File 1: ");
-//       sb.append(file1);
-//       sb.append("\nFile 2: ");
-//       sb.append(file2);
-//       sb.append("\n  Absolute 1: ");
-//       sb.append(file1.getAbsoluteFile());
-//       sb.append("\n  Absolute 2: ");
-//       sb.append(file2.getAbsoluteFile());
-//       sb.append("\n  Canonical 1: ");
-//       sb.append(file1.getCanonicalFile());
-//       sb.append("\n  Canonical 2: ");
-//       sb.append(file2.getCanonicalFile());
-//       logger.info(sb.toString());
-
-    } catch (IOException ex) {
-      // oh well...
-      logger.info(LocalizedMessage.create(LocalizedStrings.AdminDistributedSystemImpl_WHILE_GETTING_CANONICAL_FILE), ex);
-    }
-
-    return false;
-  }
-
-  /**
-   * Finds and returns the <code>SystemMember</code> that corresponds
-   * to the given <code>GemFireVM</code> or <code>null</code> if no
-   * <code>SystemMember</code> corresponds.
-   */
-  protected SystemMember findSystemMember(GemFireVM vm) {
-    return findSystemMember(vm, true);
-  }
-
-  /**
-   * Finds and returns the <code>SystemMember</code> that corresponds to the
-   * given <code>GemFireVM</code> or <code>null</code> if no Finds and returns
-   * the <code>SystemMember</code> that corresponds to the given
-   * <code>GemFireVM</code> or <code>null</code> if no <code>SystemMember</code>
-   * corresponds.
-   * 
-   * 
-   * @param vm
-   *          GemFireVM instance
-   * @param compareConfig
-   *          Should the members' configurations be compared? <code>true</code>
-   *          when the member has joined, <code>false</code> when the member has
-   *          left Should the members' configurations be compared?
-   *          <code>true</code> when the member has joined, <code>false</code>
-   *          when the member has left. Additionally also used to check if system 
-   *          member config is to be synchronized with the VM.
-   */
-   protected SystemMember findSystemMember(GemFireVM vm,
-                                           boolean compareConfig) {
-
-    SystemMemberImpl member = null;
-
-      synchronized (this.cacheServerSet) {
-        SERVERS: for (Iterator iter = this.cacheServerSet.iterator();
-             iter.hasNext(); ) {
-          Future future = (Future) iter.next();
-          CacheServerImpl cacheServer = null;
-          for (;;) {
-            checkCancellation();
-            boolean interrupted = Thread.interrupted();
-            try {
-              cacheServer = (CacheServerImpl) future.get();
-              break; // success
-            } 
-            catch (InterruptedException ex) {
-              interrupted = true;
-              continue; // keep trying
-            } 
-            catch (CancellationException ex) {
-              continue SERVERS;
-            } 
-            catch (ExecutionException ex) {
-              handle(ex);
-              continue SERVERS;
-            }
-            finally {
-              if (interrupted) {
-                Thread.currentThread().interrupt();
-              }
-            }
-          } // for
-
-          if (isSame(cacheServer, vm, compareConfig)) {
-            member = cacheServer;
-            break;
-          }
-        }      
-      }
-
-    if (member == null) {
-      synchronized (this.applicationSet) {
-        APPS: for (Iterator iter = this.applicationSet.iterator();
-             iter.hasNext(); ) {
-          Future future = (Future) iter.next();
-          SystemMemberImpl application = null;
-          for (;;) {
-            checkCancellation();
-            boolean interrupted = Thread.interrupted();
-            try {
-              application = (SystemMemberImpl) future.get();
-              break; // success
-            } 
-            catch (InterruptedException ex) {
-              interrupted = true;
-              continue; // keep trying
-            } 
-            catch (CancellationException ex) {
-              continue APPS;
-            } 
-            catch (ExecutionException ex) {
-              handle(ex);
-              continue APPS;
-            }
-            finally {
-              if (interrupted) {
-                Thread.currentThread().interrupt();
-              }
-            }
-          } // for
-
-          if (isSame(application, vm, compareConfig)) {
-            member = application;
-            break;
-          }
-        } // APPS
-      }
-    }
-
-    if (member != null && compareConfig) {
-      try {
-        member.setGemFireVM(vm);
-
-      } catch (AdminException ex) {
-        logger.warn(LocalizedMessage.create(LocalizedStrings.AdminDistributedSystem_COULD_NOT_SET_THE_GEMFIRE_VM), ex);
-      }
-    }
-
-    return member;
-  }
-  
-  /** 
-   * Removes a SystemMember from this system's list of known members.
-   *
-   * @param systemMember  the member to remove
-   * @return the system member that was removed; null if no match was found
-   */
-  protected SystemMember removeSystemMember(SystemMember systemMember) {
-    return removeSystemMember(
-        ((SystemMemberImpl) systemMember).getInternalId());
-  }
-  
-  /** 
-   * Removes a SystemMember from this system's list of known members.  This 
-   * method is called in response to a member leaving the system.
-   * TODO: this method is a mess of defns
-   *
-   * @param internalId  the unique id that specifies which member to remove
-   * @return the system member that was removed; null if no match was found
-   */
-  protected SystemMember removeSystemMember(InternalDistributedMember internalId) {
-    if (internalId == null) return null;
-
-//     this.logger.info("DEBUG: removeSystemMember: " + internalId, new RuntimeException("STACK"));
-
-    boolean found = false;
-    SystemMemberImpl member = null;
-
-    synchronized(this.cacheServerSet) {
-      SERVERS: for (Iterator iter = this.cacheServerSet.iterator();
-           iter.hasNext() && !found; ) {
-        Future future = (Future) iter.next();
-        if (future instanceof AdminFutureTask) {
-          AdminFutureTask task = (AdminFutureTask) future;
-          if (task.getMemberId().equals(internalId)) {
-//             this.logger.info("DEBUG: removeSystemMember cs cancelling: " + future);
-            future.cancel(true);
-
-          } else {
-            // This is not the member we are looking for...
-            continue SERVERS;
-          }
-        }
-        for (;;) {
-          checkCancellation();
-          boolean interrupted = Thread.interrupted();
-          try {
-            member = (SystemMemberImpl) future.get();
-            break; // success
-          } catch (InterruptedException ex) {
-            interrupted = true;
-            continue; // keep trying
-          } catch (CancellationException ex) {
-            continue SERVERS;
-          } catch (ExecutionException ex) {
-            handle(ex);
-            return null;          // Dead code
-          } finally {
-            if (interrupted) {
-              Thread.currentThread().interrupt();
-            }
-          }
-        }
-
-        InternalDistributedMember cacheServerId = member.getInternalId();
-        if (internalId.equals(cacheServerId)) {
-          // found a match...
-          iter.remove();
-          found = true;
-        }
-      } // SERVERS
-    }    
-
-    synchronized(this.applicationSet) {
-      for (Iterator iter = this.applicationSet.iterator();
-           iter.hasNext() && !found; ) {
-        Future future = (Future) iter.next();
-        try {
-          if (future instanceof AdminFutureTask) {
-            AdminFutureTask task = (AdminFutureTask) future;
-            if (task.getMemberId().equals(internalId)) {
-              iter.remove();        // Only remove applications
-              found = true;
-              if (future.isDone()) {
-                member = (SystemMemberImpl) future.get();
-              }
-              break;
-            } else {
-              // This is not the member we are looking for...
-              continue;
-            } 
-          }
-          if (future.isDone()) {
-            member = (SystemMemberImpl) future.get();
-          } else {
-//             this.logger.info("DEBUG: removeSystemMember as cancelling: " + future);
-            future.cancel(true);
-          }
-
-        } catch (InterruptedException ex) {
-          Thread.currentThread().interrupt();
-          checkCancellation();
-          throw new RuntimeException(LocalizedStrings.AdminDistributedSystemImpl_INTERRUPTED.toLocalizedString(), ex);
-          
-        } catch (CancellationException ex) {
-          continue;
-
-        } catch (ExecutionException ex) {
-          handle(ex);
-          return null;          // Dead code
-        }
-
-        InternalDistributedMember applicationId = member.getInternalId();
-        if (internalId.equals(applicationId)) {
-          // found a match...
-          iter.remove();        // Only remove applications
-          found = true;
-        }
-      }
-    }    
-
-    if (found) {
-      try {
-        if (member != null) {
-          member.setGemFireVM(null);
-        }
-        
-      } catch (AdminException ex) {
-        logger.fatal(LocalizedMessage.create(LocalizedStrings.AdminDistributedSystem_UNEXPECTED_ADMINEXCEPTION), ex);
-      }
-      return member;
-      
-    } else {
-      if (logger.isDebugEnabled()) {
-        logger.debug("Couldn't remove member {}", internalId);
-      }
-      return null;
-    }
-  }
-  
-  /**  
-   * Builds the configuration needed to connect to a GfManagerAgent which is the
-   * main gateway into the internal.admin api.  GfManagerAgent is used to 
-   * actually connect to the distributed gemfire system.
-   *
-   * @param logWriter the LogWriterI18n to use for any logging
-   * @return the configuration needed to connect to a GfManagerAgent
-   */
-  // LOG: saves LogWriterLogger from AdminDistributedSystemImpl for RemoteGfManagerAgentConfig
-  private GfManagerAgentConfig buildAgentConfig(InternalLogWriter logWriter) {
-    RemoteTransportConfig conf = new RemoteTransportConfig(
-        isMcastEnabled(), getDisableTcp(),
-        getDisableAutoReconnect(),
-        getBindAddress(), buildSSLConfig(), parseLocators(), 
-        getMembershipPortRange(), getTcpPort(), DistributionManager.ADMIN_ONLY_DM_TYPE);
-    return new GfManagerAgentConfig(
-        getSystemName(), conf, logWriter, this.alertLevel.getSeverity(), this, this);
-  }
-  
-  protected SSLConfig buildSSLConfig() {
-    SSLConfig conf = new SSLConfig();
-    if (getConfig() != null) {
-      conf.setEnabled(getConfig().isSSLEnabled());
-      conf.setProtocols(getConfig().getSSLProtocols());
-      conf.setCiphers(getConfig().getSSLCiphers());
-      conf.setRequireAuth(getConfig().isSSLAuthenticationRequired());
-      conf.setProperties(getConfig().getSSLProperties());
-    }
-    return conf;
-  }
-  
-  /**
-   * Returns the currently configured address to bind to when administering
-   * this system.
-   */
-  private String getBindAddress() {
-    return this.config.getBindAddress();
-  }
-
-  /** Returns whether or not the given member is running */
-  private boolean isRunning(SystemMember member) {
-    if (member instanceof ManagedEntity) {
-      return ((ManagedEntity) member).isRunning();
-
-    } else {
-      // member must be an application VM.  It is running
-      return true;
-    }
-  }
-
-  /** Returns any member manager that is known to be running */
-  private SystemMember findFirstRunningMember() {
-    synchronized(this.cacheServerSet) {
-      SERVERS: for (Iterator iter = this.cacheServerSet.iterator();
-           iter.hasNext();){
-        Future future = (Future) iter.next();
-        SystemMember member = null;
-        for (;;) {
-          checkCancellation();
-          boolean interrupted = Thread.interrupted();
-          try {
-            member = (SystemMember) future.get();
-            break; // success
-          } 
-          catch (InterruptedException ex) {
-            interrupted = true;
-            continue; // keep trying
-          } 
-          catch (CancellationException ex) {
-            continue SERVERS;
-          } 
-          catch (ExecutionException ex) {
-            handle(ex);
-            return null;          // Dead code
-          }
-          finally {
-            if (interrupted) {
-              Thread.currentThread().interrupt();
-            }
-          }
-        } // for
-
-        if (isRunning(member)) {
-          return member;
-        }
-      }
-    }
-
-    synchronized(this.applicationSet) {
-      APPS: for (Iterator iter = this.applicationSet.iterator();
-           iter.hasNext();) {
-        Future future = (Future) iter.next();
-        SystemMember member = null;
-        for (;;) {
-          checkCancellation();
-          boolean interrupted = Thread.interrupted();
-          try {
-            member = (SystemMember) future.get();
-            break; // success
-          } 
-          catch (InterruptedException ex) {
-            interrupted = true;
-            continue; // keep trying
-          } 
-          catch (CancellationException ex) {
-            continue APPS;
-          } 
-          catch (ExecutionException ex) {
-            handle(ex);
-            return null;          // Dead code
-          }
-          finally {
-            if (interrupted) {
-              Thread.currentThread().interrupt();
-            }
-          }
-        } //  for
-
-        if (isRunning(member)) {
-          return member;
-        }
-      } // APPS
-    }
-
-    return null;
-  }
-
-  /**
-   * Returns the instance of system member that is running either as a CacheVm
-   * or only ApplicationVm for the given string representation of the id.
-   * 
-   * @param memberId
-   *          string representation of the member identifier
-   * @return instance of system member which could be either as a CacheVm or
-   *         Application VM
-   */
-  protected SystemMember findCacheOrAppVmById(String memberId) {
-    SystemMember found = null;
-    
-    if (memberId != null) {
-      try {
-        boolean foundSender = false;
-        CacheVm[] cacheVms = getCacheVms();
-        
-        /* cacheVms could be null. See 
-         * AdminDistributedSystemImpl.getCacheVmsCollection() for 
-         * ExecutionException */
-        if (cacheVms != null) {
-          for (CacheVm cacheVm : cacheVms) {
-            if (cacheVm.getId().equals(memberId) && 
-                cacheVm instanceof CacheVm) {
-              found = (SystemMember) cacheVm;    
-              foundSender = true;
-              break;
-            }
-          }
-        }
-        
-        if (!foundSender) {
-          SystemMember[] appVms = getSystemMemberApplications();
-          
-          for (SystemMember appVm : appVms) {
-            if (appVm.getId().equals(memberId) && 
-                appVm instanceof SystemMember) {
-              found = (SystemMember) appVm;
-              foundSender = true;
-              break;
-            }
-          }
-          
-        }
-      } catch (AdminException e) {
-        if (logger.isDebugEnabled()) {
-          logger.debug("Could not find System Member for member id: {}", memberId, e);
-        }
-      }
-    }
-    
-    return found;
-  }  
-  
-  /** Returns true if any member application is known to be running */
-  protected boolean isAnyMemberRunning() {
-    return findFirstRunningMember() != null;
-  }
-  
-  // -------------------------------------------------------------------------
-  //   Health methods
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Lazily initializes the GemFire health monitor 
-   *
-   * @see #createGemFireHealth
-   */
-  public final GemFireHealth getGemFireHealth() {
-    synchronized (this) {
-      if (this.health == null || this.health.isClosed()) {
-        try {
-          this.health = createGemFireHealth(this.gfManagerAgent);
-
-        } catch (AdminException ex) {
-          throw new RuntimeAdminException(LocalizedStrings.AdminDistributedSystemImpl_AN_ADMINEXCEPTION_WAS_THROWN_WHILE_GETTING_THE_GEMFIRE_HEALTH.toLocalizedString(), ex);
-        }
-      }
-
-      return this.health;
-    }
-  }
-
-  /**
-   * A "template factory" method for creating an instance of
-   * <code>GemFireHealth</code>.  It can be overridden by subclasses
-   * to produce instances of different <code>GemFireHealth</code>
-   * implementations.
-   *
-   * @see #getGemFireHealth
-   */
-  protected GemFireHealth createGemFireHealth(GfManagerAgent agent) 
-    throws AdminException {
-
-    if (agent == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_GFMANAGERAGENT_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    return new GemFireHealthImpl(agent, this);
-  }
-    
-  public CacheVm addCacheVm() throws AdminException {
-    return (CacheVm)addCacheServer();
-  }
-  
-  public CacheServer addCacheServer() throws AdminException {
-    CacheServerConfigImpl conf = new CacheServerConfigImpl();
-    CacheServer server  = createCacheServer(conf);
-    setDistributionParameters(server);
-
-    synchronized (this.cacheServerSet) {
-      this.cacheServerSet.add(new FutureResult(server));
-    }
-
-    return server;
-  }
-
-  private Collection getCacheVmsCollection() throws AdminException {
-    synchronized(this.cacheServerSet) {
-      Collection coll = new ArrayList(this.cacheServerSet.size());
-      SERVERS: for (Iterator iter = this.cacheServerSet.iterator();
-           iter.hasNext(); ) {
-        Future future = (Future) iter.next();
-        Object get = null;
-        for (;;) {
-          checkCancellation();
-          boolean interrupted = Thread.interrupted();
-          try {
-            get = future.get();
-            break; // success
-          } 
-          catch (InterruptedException ex) {
-            interrupted = true;
-            continue; // keep trying
-          } 
-          catch (CancellationException ex) {
-            continue SERVERS;
-          } 
-          catch (ExecutionException ex) {
-            handle(ex);
-            return null;          // Dead code
-          }
-          finally {
-            if (interrupted) {
-              Thread.currentThread().interrupt();
-            }
-          }
-        } // for
-        coll.add(get);
-      } // SERVERS
-      return coll;
-    }
-  }
-
-  /**
-   * Returns all the cache server members of the distributed system which are
-   * hosting a client queue for the particular durable-client having the given
-   * durableClientId
-   * 
-   * @param durableClientId -
-   *                durable-id of the client
-   * @return array of CacheServer(s) having the queue for the durable client
-   * @throws AdminException
-   * 
-   * @since 5.6
-   */
-  public CacheServer[] getCacheServers(String durableClientId)
-      throws AdminException
-  {
-    Collection serversForDurableClient = new ArrayList();
-    CacheServer[] servers = getCacheServers();
-
-    for (int i = 0; i < servers.length; i++) {
-      RemoteApplicationVM vm = (RemoteApplicationVM)((CacheServerImpl)servers[i])
-          .getGemFireVM();
-      if (vm != null && vm.hasDurableClient(durableClientId)) {
-        serversForDurableClient.add(servers[i]);
-      }
-    }
-    CacheServer[] array = new CacheServer[serversForDurableClient.size()];
-    serversForDurableClient.toArray(array);
-    return array;
-  }
-  
-  public CacheVm[] getCacheVms() throws AdminException {
-    Collection coll = getCacheVmsCollection();
-    if (coll == null) return null;
-    CacheVm[] array = new CacheVm[coll.size()];
-    coll.toArray(array);
-    return array;
-  }
-  public CacheServer[] getCacheServers() throws AdminException {
-    Collection coll = getCacheVmsCollection();
-    if (coll == null) return null;
-    CacheServer[] array = new CacheServer[coll.size()];
-    coll.toArray(array);
-    return array;
-  }
-
-  // -------------------------------------------------------------------------
-  //   Overriden java.lang.Object methods
-  // -------------------------------------------------------------------------
-  
-  /**
-   * Returns a string representation of the object.
-   * 
-   * @return a string representation of the object
-   */
-  @Override // GemStoneAddition
-  public String toString() {
-    return getName();
-  }
-
-  /**
-   * returns instance of AdminDistributedSystem that is current connected. See
-   * <code>thisAdminDS</code>. (for feature requests #32887)
-   * <p>
-   * TODO: remove this static method during reimplementation of 
-   * {@link SystemMemberCacheEventProcessor}
-   * 
-   * @return AdminDistributedSystem
-   */
-  public static AdminDistributedSystemImpl getConnectedInstance() {
-    synchronized (CONNECTION_SYNC) {
-      return thisAdminDS;
-    }
-  }
-  
-  public void addCacheListener(SystemMemberCacheListener listener) {
-    synchronized (this.cacheListLock) {
-      // never modify cacheListeners in place.
-      // this allows iteration without concurrent mod worries
-      List oldListeners = this.cacheListeners;
-      if (!oldListeners.contains(listener)) {
-        List newListeners = new ArrayList(oldListeners);
-        newListeners.add(listener);
-        this.cacheListeners = newListeners;
-      }
-    }
-  }
-
-  public void removeCacheListener(SystemMemberCacheListener listener) {
-    synchronized (this.cacheListLock) {
-      List oldListeners = this.cacheListeners;
-      if (oldListeners.contains(listener)) {
-        List newListeners = new ArrayList(oldListeners);
-        if (newListeners.remove(listener)) {
-          if (newListeners.isEmpty()) {
-            newListeners = Collections.EMPTY_LIST;
-          }
-          this.cacheListeners = newListeners;
-        }
-      }
-    }
-  }
-
-  public List getCacheListeners() {
-    return this.cacheListeners;
-  }
-
-  public SystemMember lookupSystemMember(DistributedMember distributedMember) 
-  throws AdminException {
-    if (distributedMember == null) return null;
-    SystemMember[] members = getSystemMemberApplications();
-    for (int i = 0; i < members.length; i++) {
-      if (distributedMember.equals(members[i].getDistributedMember())) {
-        return members[i];
-      }
-    }
-    return null;
-  }
-  
-  ////////////////////////  Inner Classes  ////////////////////////
-
-  /**
-   * Object that converts an <code>internal.admin.Alert</code> into an
-   * external <code>admin.Alert</code>.
-   */
-  public class AlertImpl implements Alert {
-    /** The Alert to which most behavior is delegated */
-    private final com.gemstone.gemfire.internal.admin.Alert alert;
-    private SystemMember systemMember;
-
-    ///////////////////////  Constructors  ///////////////////////
-
-    /**
-     * Creates a new <code>Alert</code> that delegates to the given
-     * object. 
-     */
-    AlertImpl(com.gemstone.gemfire.internal.admin.Alert alert) {
-      this.alert   = alert;
-      GemFireVM vm = alert.getGemFireVM();
-
-      /*
-       * Related to #39657.
-       * Avoid setting GemFireVM again in the system member.
-       * Eager initialization of member variable - systemMember.
-       */
-      this.systemMember = vm == null ? null : findSystemMember(vm, false);
-      if (this.systemMember == null) {
-        /*
-         * try to use sender information to construct the SystemMember that can
-         * be used for disply purpose at least
-         */
-        InternalDistributedMember sender = alert.getSender();
-        if (sender != null) {
-          try {
-            this.systemMember = 
-              AdminDistributedSystemImpl.this.createSystemMember(sender);
-          } catch (AdminException e) {
-            /*
-             * AdminException might be thrown if creation of System Member
-             * instance fails.
-             */
-            this.systemMember = null;
-          }
-        } //else this.systemMember will be null
-      }
-    }
-    
-    //////////////////////  Instance Methods  //////////////////////
-
-    public AlertLevel getLevel() {
-      return AlertLevel.forSeverity(alert.getLevel());
-    }
-
-    /*
-     * Eager initialization of system member is done while creating this alert 
-     * only.
-     */
-    public SystemMember getSystemMember() {
-      return systemMember;
-    }
-
-    public String getConnectionName() {
-      return alert.getConnectionName();
-    }
-
-    public String getSourceId() {
-      return alert.getSourceId();
-    }
-
-    public String getMessage() {
-      return alert.getMessage();
-    }
-
-    public java.util.Date getDate() {
-      return alert.getDate();
-    }
-
-    @Override
-    public String toString() {
-      return alert.toString();
-    }
-  }
-  
-  /**
-   * A JSR-166 <code>FutureTask</code> whose {@link #get} method
-   * properly handles an <code>ExecutionException</code> that wraps an
-   * <code>InterruptedException</code>.  This is necessary because
-   * there are places in the admin API that wrap
-   * <code>InterruptedException</code>s.  See bug 32634.
-   *
-   * <P>
-   *
-   * This is by no means an ideal solution to this problem.  It would
-   * be better to modify the code invoked by the <code>Callable</code>
-   * to explicitly throw <code>InterruptedException</code>.
-   */
-  static class AdminFutureTask extends FutureTask  {
-
-    /** The id of the member whose admin object we are creating.
-     * Keeping track of this allows us to cancel a FutureTask for a
-     * member that has gone away. */
-    private final InternalDistributedMember memberId;
-
-    public AdminFutureTask(InternalDistributedMember memberId,
-                           Callable callable) {
-      super(callable);
-      this.memberId = memberId;
-    }
-
-    /**
-     * Returns the id of the member of the distributed system for
-     * which this <code>FutureTask</code> is doing work.
-     */
-    public InternalDistributedMember getMemberId() {
-      return this.memberId;
-    }
-
-    /**
-     * If the <code>ExecutionException</code> is caused by an
-     * <code>InterruptedException</code>, throw the
-     * <code>CancellationException</code> instead.
-     */
-    @Override
-    public Object get()
-      throws InterruptedException, ExecutionException {
-
-      if (Thread.interrupted()) throw new InterruptedException();
-      try {
-        return super.get();
-
-      } catch (ExecutionException ex) {
-        for (Throwable cause = ex.getCause(); cause != null;
-             cause = cause.getCause()) {
-          if (cause instanceof InterruptedException) {
-            // We interrupted the runnable but we don't want the thread
-            // that called get to think he was interrupted.
-            CancellationException ex2 = new CancellationException(LocalizedStrings.AdminDistributedSystemImpl_BY_INTERRUPT.toLocalizedString());
-            ex2.setStackTrace(cause.getStackTrace());
-            throw ex2;
-          }
-        }
-
-        throw ex;
-      }
-
-    }
-
-  }
-  
-  public DistributedMember getDistributedMember() {
-    return getDistributionManager().getId();
-  }
-
-  private void connectAdminDS() {
-    connect((InternalLogWriter)this.logWriter);
-    try {
-      thisAdminDS.waitToBeConnected(3000);
-    } catch (InterruptedException ie) {
-      logger.warn("Interrupted while waiting to connect", ie);
-    }
-  }
-  
-  public Set<PersistentID> getMissingPersistentMembers()
-      throws AdminException {
-    connectAdminDS();
-    DM dm = getDistributionManager();
-    if(dm == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_CONNECT_HAS_NOT_BEEN_INVOKED_ON_THIS_ADMINDISTRIBUTEDSYSTEM.toLocalizedString());
-    }
-    return getMissingPersistentMembers(dm);
-  }
-
-  public static Set<PersistentID> getMissingPersistentMembers(DM dm) {
-    return MissingPersistentIDsRequest.send(dm);
-  }
-
-  public void revokePersistentMember(InetAddress host,
-      String directory) throws AdminException {
-    connectAdminDS();
-    DM dm = getDistributionManager();
-    if(dm == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_CONNECT_HAS_NOT_BEEN_INVOKED_ON_THIS_ADMINDISTRIBUTEDSYSTEM.toLocalizedString());
-    }
-    revokePersistentMember(dm, host, directory);
-    
-  }
-  
-  public void revokePersistentMember(UUID diskStoreID) throws AdminException {
-    connectAdminDS();
-    DM dm = getDistributionManager();
-    if(dm == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_CONNECT_HAS_NOT_BEEN_INVOKED_ON_THIS_ADMINDISTRIBUTEDSYSTEM.toLocalizedString());
-    }
-    revokePersistentMember(dm, diskStoreID);
-    
-  }
-  
-  public static void revokePersistentMember(DM dm, UUID diskStoreID) {
-    PersistentMemberPattern pattern = new PersistentMemberPattern(diskStoreID);
-    boolean success = false;
-    try {
-      // make sure that the disk store we're revoking is actually missing
-      boolean found = false;
-      Set<PersistentID> details = getMissingPersistentMembers(dm);
-      if (details != null) {
-        for (PersistentID id : details) {
-          if (id.getUUID().equals(diskStoreID)) {
-            found = true;
-            break;
-          }
-        }
-      }
-      if (!found) {
-        return;
-      }
-      
-      //Fix for 42607 - verify that the persistent id is not already
-      //running before revoking it.
-      PrepareRevokePersistentIDRequest.send(dm, pattern);
-      success = true;
-    } finally {
-      if(success) {
-        //revoke the persistent member if were able to prepare the revoke
-        RevokePersistentIDRequest.send(dm, pattern);
-      } else {
-        //otherwise, cancel the revoke.
-        PrepareRevokePersistentIDRequest.cancel(dm, pattern);
-      }
-    }
-  }
-
-  /**
-   * 
-   * @deprecated use {@link #revokePersistentMember(UUID)} instead
-   */
-  public static void revokePersistentMember(DM dm, InetAddress host, String directory) {
-    
-    PersistentMemberPattern pattern = new PersistentMemberPattern(host, directory, System.currentTimeMillis());
-    boolean success = false;
-    try {
-      //Fix for 42607 - verify that the persistent id is not already
-      //running before revoking it.
-      PrepareRevokePersistentIDRequest.send(dm, pattern);
-      success = true;
-    } finally {
-      if(success) {
-        //revoke the persistent member if were able to prepare the revoke
-        RevokePersistentIDRequest.send(dm, pattern);
-      } else {
-        //otherwise, cancel the revoke.
-        PrepareRevokePersistentIDRequest.cancel(dm, pattern);
-      }
-    }
-  }
-  
-  public Set shutDownAllMembers() throws AdminException {
-    return shutDownAllMembers(0);
-  }
-  
-  public Set shutDownAllMembers(long timeout) throws AdminException {
-    connectAdminDS();
-    DM dm = getDistributionManager();
-    if(dm == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_CONNECT_HAS_NOT_BEEN_INVOKED_ON_THIS_ADMINDISTRIBUTEDSYSTEM.toLocalizedString());
-    }
-    return shutDownAllMembers(dm, timeout);
-  }
-
-  /**
-   * Shutdown all members.
-   * @param dm
-   * @param timeout the amount of time (in ms) to spending trying to shutdown the members
-   * gracefully. After this time period, the members will be forceable shut down. If the
-   * timeout is exceeded, persistent recovery after the shutdown may need to do a GII. -1
-   *  indicates that the shutdown should wait forever. 
-   */
-  public static Set shutDownAllMembers(DM dm, long timeout) {
-    return ShutdownAllRequest.send(dm, timeout);
-  }
-  
-  public BackupStatus backupAllMembers(File targetDir) throws AdminException {
-    return backupAllMembers(targetDir, null);
-  }
-  
-  public BackupStatus backupAllMembers(File targetDir, File baselineDir) throws AdminException {
-    connectAdminDS();
-    DM dm = getDistributionManager();
-    if(dm == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_CONNECT_HAS_NOT_BEEN_INVOKED_ON_THIS_ADMINDISTRIBUTEDSYSTEM.toLocalizedString());
-    }
-    return backupAllMembers(dm, targetDir, baselineDir);
-  }
-
-  public static BackupStatus backupAllMembers(DM dm, File targetDir, File baselineDir)
-      throws AdminException {
-    BackupStatus status = null;
-    if (BackupDataStoreHelper.obtainLock(dm)) {
-    try {
-    Set<PersistentID> missingMembers = getMissingPersistentMembers(dm);
-    Set recipients = dm.getOtherDistributionManagerIds();
-    
-    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
-    targetDir = new File(targetDir, format.format(new Date()));
-    BackupDataStoreResult result = BackupDataStoreHelper.backupAllMembers(
-        dm, recipients, targetDir, baselineDir);
-    
-    // It's possible that when calling getMissingPersistentMembers, some members are 
-    // still creating/recovering regions, and at FinishBackupRequest.send, the 
-    // regions at the members are ready. Logically, since the members in successfulMembers
-    // should override the previous missingMembers
-    for(Set<PersistentID> onlineMembersIds : result.getSuccessfulMembers().values()) {
-      missingMembers.removeAll(onlineMembersIds);
-    }
-    
-    result.getExistingDataStores().keySet().removeAll(result.getSuccessfulMembers().keySet());
-    for(Set<PersistentID> lostMembersIds : result.getExistingDataStores().values()) {
-      missingMembers.addAll(lostMembersIds);
-    }
-    
-    status = new BackupStatusImpl(result.getSuccessfulMembers(), missingMembers);
-    } finally {
-      BackupDataStoreHelper.releaseLock(dm);
-    }
-    } else {
-      throw new AdminException(LocalizedStrings.DistributedSystem_BACKUP_ALREADY_IN_PROGRESS.toLocalizedString());
-    }
-    return status;
-  }
-  
-  public Map<DistributedMember, Set<PersistentID>> compactAllDiskStores() throws AdminException {
-    connectAdminDS();
-    DM dm = getDistributionManager();
-    if(dm == null) {
-      throw new IllegalStateException(LocalizedStrings.AdminDistributedSystemImpl_CONNECT_HAS_NOT_BEEN_INVOKED_ON_THIS_ADMINDISTRIBUTEDSYSTEM.toLocalizedString());
-    }
-    return compactAllDiskStores(dm);
-  }
-
-  public static Map<DistributedMember, Set<PersistentID>> compactAllDiskStores(DM dm)
-      throws AdminException {
-    return CompactRequest.send(dm);
-  }
-  
-  /**
-   * This method can be used to process ClientMembership events sent for
-   * BridgeMembership by bridge servers to all admin members.
-   * 
-   * NOTE: Not implemented currently. JMX implementation which is a subclass of 
-   * this class i.e. AdminDistributedSystemJmxImpl implements it.
-   * 
-   * @param senderId
-   *          id of the member that sent the ClientMembership changes for
-   *          processing (could be null)
-   * @param clientId
-   *          id of a client for which the notification was sent
-   * @param clientHost
-   *          host on which the client is/was running
-   * @param eventType
-   *          denotes whether the client Joined/Left/Crashed should be one of
-   *          ClientMembershipMessage#JOINED, ClientMembershipMessage#LEFT,
-   *          ClientMembershipMessage#CRASHED
-   */
-  public void processClientMembership(String senderId, String clientId,
-      String clientHost, int eventType) {
-  }
-
-  public void setAlertLevelAsString(String level)  {
-    AlertLevel newAlertLevel = AlertLevel.forName(level);
-    
-    if (newAlertLevel != null) {    
-      setAlertLevel(newAlertLevel);
-    } else {
-      System.out.println("ERROR:: "+level+" is invalid. Allowed alert levels are: WARNING, ERROR, SEVERE, OFF");
-      throw new IllegalArgumentException(LocalizedStrings.DEBUG.toLocalizedString(level+" is invalid. Allowed alert levels are: WARNING, ERROR, SEVERE, OFF"));
-    }
-  }
-
-  public String getAlertLevelAsString() {
-    return getAlertLevel().getName();
-  }
-}
-



[10/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentConfigImpl.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentConfigImpl.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentConfigImpl.java
deleted file mode 100644
index 985c8c0..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/AgentConfigImpl.java
+++ /dev/null
@@ -1,1847 +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.admin.jmx.internal;
-
-import com.gemstone.gemfire.GemFireIOException;
-import com.gemstone.gemfire.admin.DistributedSystemConfig;
-import com.gemstone.gemfire.admin.DistributionLocatorConfig;
-import com.gemstone.gemfire.admin.internal.DistributedSystemConfigImpl;
-import com.gemstone.gemfire.admin.internal.InetAddressUtil;
-import com.gemstone.gemfire.admin.jmx.Agent;
-import com.gemstone.gemfire.admin.jmx.AgentConfig;
-import com.gemstone.gemfire.internal.ClassPathLoader;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.util.IOUtils;
-
-import java.io.*;
-import java.net.InetAddress;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-/**
- * Provides the JMX Agent configuration properties.
- * <p>
- * Supports importing of persisted properties from an external configuration
- * file.
- * <p>
- * Select values can also be overridden with command line arguments.  See
- * remarks on individual properties for further information.
- * <p>
- * Extends and implements DistributedSystemConfig.
- *
- * @author    Kirk Lund
- * @author    David Whitlock
- * @since     3.5 (in which it was named AgentConfig)
- */
-public class AgentConfigImpl extends DistributedSystemConfigImpl
-  implements AgentConfig {
-
-  // -------------------------------------------------------------------------
-  //   Static class variable(s)
-  // -------------------------------------------------------------------------
-
-  /** Command-line arg to enable agent debugging */
-  public static final String AGENT_DEBUG = "agent-debug";
-
-  /** The name of the "propertyFile" property. May specify as cmd-line arg */
-  public static final String PROPERTY_FILE_NAME = "property-file";
-
-  /** The name of the "gfAgentPropertyFile" property, can be specified as System Property */
-   public static final String AGENT_PROPSFILE_PROPERTY_NAME = "gfAgentPropertyFile";
-
-  // -------------------------------------------------------------------------
-  //   DistributionLocator properties...
-  // -------------------------------------------------------------------------
-
-  /** The name of the "locator.host-" property */
-  public static final String LOCATOR_HOST_NAME =
-      "locator.host-";
-  /** The name of the "locator.port-" property */
-  public static final String LOCATOR_PORT_NAME =
-      "locator.port-";
-  /** The name of the "locator.product-directory-" property */
-  public static final String LOCATOR_PRODUCT_DIRECTORY_NAME =
-      "locator.product-directory-";
-  /** The name of the "locator.working-directory-" property */
-  public static final String LOCATOR_WORKING_DIRECTORY_NAME =
-      "locator.working-directory-";
-  /** The name of the "locator.remote-command-" property */
-  public static final String LOCATOR_REMOTE_COMMAND =
-      "locator.remote-command-";
-  /** The name of the "locator.bind-address-" property */
-  public static final String LOCATOR_BIND_ADDRESS =
-      "locator.bind-address-";
-  /** the properties used in configuring a locator's distributed system */
-  public static final String LOCATOR_DS_PROPERTIES =
-      "locator.ds-properties";
-
-  /** The default log file for stand-alone JMX agents */
-  /*package scope*/
-  static final String DEFAULT_LOG_FILE = "agent.log";
-
-  /** The default startup log file to be used by agent launcher */
-  /*package scope*/
-  static final String DEFAULT_STARTUP_LOG_FILE = "start_agent.log";
-
-  private static String OBFUSCATED_STRING = "********";
-
-  //////////////////////  Static Methods  //////////////////////
-
-  /**
-   * The <code>propertyFile</code> is the name of the property file that will
-   * be loaded on startup of the Agent.
-   * <p>
-   * The file will be searched for, in order, in the following directories:
-   * <ol>
-   * <li> the current directory
-   * <li> the home directory
-   * <li> the class path
-   * </ol>
-   * Only the first file found will be used.
-   * <p>
-   * The default value of propertyFile is <code>"agent.properties"</code>. However
-   * if the "gfAgentPropertyFile" system property is set then its value is the
-   * value of propertyFile. If this value is a relative file system path then
-   * the above search is done. If its an absolute file system path then that
-   * file must exist; no search for it is done.
-   */
-  static String retrievePropertyFile() {
-    return System.getProperty(AGENT_PROPSFILE_PROPERTY_NAME, DEFAULT_PROPERTY_FILE);
-  }
-
-  /**
-   * Creates a new <code>Properties</code> object that contains all of
-   * the default values.
-   */
-  private static Properties getDefaultProperties() {
-    Properties props = new Properties();
-
-    props.setProperty(AUTO_CONNECT_NAME,
-                      String.valueOf(DEFAULT_AUTO_CONNECT));
-
-    props.setProperty(HTTP_ENABLED_NAME,
-                      String.valueOf(DEFAULT_HTTP_ENABLED));
-    props.setProperty(HTTP_BIND_ADDRESS_NAME,
-                      String.valueOf(DEFAULT_HTTP_BIND_ADDRESS));
-    props.setProperty(HTTP_PORT_NAME,
-                      String.valueOf(DEFAULT_HTTP_PORT));
-    props.setProperty(HTTP_AUTHENTICATION_ENABLED_NAME,
-                      String.valueOf(DEFAULT_HTTP_AUTHENTICATION_ENABLED));
-    props.setProperty(HTTP_AUTHENTICATION_USER_NAME,
-                      String.valueOf(DEFAULT_HTTP_AUTHENTICATION_USER));
-    props.setProperty(HTTP_AUTHENTICATION_PASSWORD_NAME,
-                      String.valueOf(DEFAULT_HTTP_AUTHENTICATION_PASSWORD));
-
-    props.setProperty(RMI_ENABLED_NAME,
-                      String.valueOf(DEFAULT_RMI_ENABLED));
-    props.setProperty(RMI_REGISTRY_ENABLED_NAME,
-                      String.valueOf(DEFAULT_RMI_REGISTRY_ENABLED));
-    props.setProperty(RMI_BIND_ADDRESS_NAME,
-                      String.valueOf(DEFAULT_RMI_BIND_ADDRESS));
-    props.setProperty(RMI_PORT_NAME,
-                      String.valueOf(DEFAULT_RMI_PORT));
-    props.setProperty(RMI_SERVER_PORT_NAME,
-                      String.valueOf(DEFAULT_RMI_SERVER_PORT));
-
-    props.setProperty(SNMP_ENABLED_NAME,
-                      String.valueOf(DEFAULT_SNMP_ENABLED));
-    props.setProperty(SNMP_DIRECTORY_NAME,
-                      String.valueOf(DEFAULT_SNMP_DIRECTORY));
-
-    props.setProperty(AGENT_SSL_ENABLED_NAME,
-                      String.valueOf(DEFAULT_AGENT_SSL_ENABLED));
-    props.setProperty(AGENT_SSL_PROTOCOLS_NAME,
-                      String.valueOf(DEFAULT_AGENT_SSL_PROTOCOLS));
-    props.setProperty(AGENT_SSL_CIPHERS_NAME,
-                      String.valueOf(DEFAULT_AGENT_SSL_CIPHERS));
-    props.setProperty(AGENT_SSL_REQUIRE_AUTHENTICATION_NAME,
-                      String.valueOf(DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION));
-    props.setProperty(HTTP_SSL_REQUIRE_AUTHENTICATION_NAME,
-                      String.valueOf(DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION));
-
-
-    return props;
-  }
-
-  /**
-   * Returns default values for all valid agent properties as a Properties
-   * object.
-   *
-   * @return default values for all valid agent properties
-   */
-  static Properties getDefaultValuesForAllProperties() {
-    Properties props = new Properties();
-
-    props.setProperty(AUTO_CONNECT_NAME,
-        String.valueOf(DEFAULT_AUTO_CONNECT));
-
-    props.setProperty(HTTP_ENABLED_NAME,
-        String.valueOf(DEFAULT_HTTP_ENABLED));
-
-    props.setProperty(HTTP_BIND_ADDRESS_NAME,
-        String.valueOf(DEFAULT_HTTP_BIND_ADDRESS));
-
-    props.setProperty(HTTP_PORT_NAME,
-        String.valueOf(DEFAULT_HTTP_PORT));
-
-    props.setProperty(HTTP_AUTHENTICATION_ENABLED_NAME,
-        String.valueOf(DEFAULT_HTTP_AUTHENTICATION_ENABLED));
-
-    props.setProperty(HTTP_AUTHENTICATION_USER_NAME,
-        String.valueOf(DEFAULT_HTTP_AUTHENTICATION_USER));
-
-    props.setProperty(HTTP_AUTHENTICATION_PASSWORD_NAME,
-        String.valueOf(DEFAULT_HTTP_AUTHENTICATION_PASSWORD));
-
-    props.setProperty(RMI_ENABLED_NAME,
-        String.valueOf(DEFAULT_RMI_ENABLED));
-
-    props.setProperty(RMI_REGISTRY_ENABLED_NAME,
-        String.valueOf(DEFAULT_RMI_REGISTRY_ENABLED));
-
-    props.setProperty(RMI_BIND_ADDRESS_NAME,
-        String.valueOf(DEFAULT_RMI_BIND_ADDRESS));
-
-    props.setProperty(RMI_PORT_NAME,
-        String.valueOf(DEFAULT_RMI_PORT));
-
-    props.setProperty(RMI_SERVER_PORT_NAME,
-        String.valueOf(DEFAULT_RMI_SERVER_PORT));
-
-    props.setProperty(SNMP_ENABLED_NAME,
-        String.valueOf(DEFAULT_SNMP_ENABLED));
-
-    props.setProperty(SNMP_DIRECTORY_NAME,
-        String.valueOf(DEFAULT_SNMP_DIRECTORY));
-
-    props.setProperty(AGENT_SSL_ENABLED_NAME,
-        String.valueOf(DEFAULT_AGENT_SSL_ENABLED));
-
-    props.setProperty(AGENT_SSL_PROTOCOLS_NAME,
-        String.valueOf(DEFAULT_AGENT_SSL_PROTOCOLS));
-
-    props.setProperty(AGENT_SSL_CIPHERS_NAME,
-        String.valueOf(DEFAULT_AGENT_SSL_CIPHERS));
-
-    props.setProperty(AGENT_SSL_REQUIRE_AUTHENTICATION_NAME,
-        String.valueOf(DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION));
-
-    props.setProperty(HTTP_SSL_REQUIRE_AUTHENTICATION_NAME,
-        String.valueOf(DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION));
-
-    props.setProperty(SNMP_BIND_ADDRESS_NAME,
-        String.valueOf(DEFAULT_SNMP_BIND_ADDRESS));
-
-    props.setProperty(EMAIL_NOTIFICATIONS_ENABLED_NAME,
-        String.valueOf(DEFAULT_EMAIL_NOTIFICATIONS_ENABLED));
-
-    props.setProperty(EMAIL_NOTIFICATIONS_HOST_NAME,
-        String.valueOf(DEFAULT_EMAIL_HOST));
-
-    props.setProperty(EMAIL_NOTIFICATIONS_FROM_NAME,
-        String.valueOf(DEFAULT_EMAIL_FROM));
-
-    props.setProperty(EMAIL_NOTIFICATIONS_TO_LIST_NAME,
-        String.valueOf(DEFAULT_EMAIL_TO_LIST));
-
-    props.setProperty(STATE_SAVE_FILE_NAME,
-        String.valueOf(DEFAULT_STATE_SAVE_FILE));
-
-    props.setProperty(SSL_ENABLED_NAME,
-        String.valueOf(DEFAULT_SSL_ENABLED));
-
-    props.setProperty(SSL_PROTOCOLS_NAME,
-        String.valueOf(DEFAULT_SSL_PROTOCOLS));
-
-    props.setProperty(SSL_CIPHERS_NAME,
-        String.valueOf(DEFAULT_SSL_CIPHERS));
-
-    props.setProperty(SSL_REQUIRE_AUTHENTICATION_NAME,
-        String.valueOf(DEFAULT_SSL_REQUIRE_AUTHENTICATION));
-
-    props.setProperty(ENTITY_CONFIG_XML_FILE_NAME,
-        String.valueOf(DEFAULT_ENTITY_CONFIG_XML_FILE));
-
-    props.setProperty(MCAST_PORT_NAME,
-        String.valueOf(DEFAULT_MCAST_PORT));
-
-    props.setProperty(MCAST_ADDRESS_NAME,
-        String.valueOf(DEFAULT_MCAST_ADDRESS));
-
-    props.setProperty(LOCATORS_NAME,
-        String.valueOf(DEFAULT_LOCATORS));
-
-    props.setProperty(BIND_ADDRESS_NAME,
-        String.valueOf(DEFAULT_BIND_ADDRESS));
-
-    props.setProperty(REMOTE_COMMAND_NAME,
-        String.valueOf(DEFAULT_REMOTE_COMMAND));
-
-    props.setProperty(LOG_FILE_NAME,
-        String.valueOf(DEFAULT_LOG_FILE));
-
-    props.setProperty(LOG_LEVEL_NAME,
-        String.valueOf(DEFAULT_LOG_LEVEL));
-
-    props.setProperty(LOG_DISK_SPACE_LIMIT_NAME,
-        String.valueOf(DEFAULT_LOG_DISK_SPACE_LIMIT));
-
-    props.setProperty(LOG_FILE_SIZE_LIMIT_NAME,
-        String.valueOf(DEFAULT_LOG_FILE_SIZE_LIMIT));
-
-    props.setProperty(REFRESH_INTERVAL_NAME,
-        String.valueOf(DEFAULT_REFRESH_INTERVAL));
-
-    return props;
-
-  }
-
-  // -------------------------------------------------------------------------
-  //   Member variable(s)
-  // -------------------------------------------------------------------------
-
-  /** Does agent automatically connect to the distributed system? */
-  private boolean autoConnect;
-
-  /** True if Agent adaptors should use SSL */
-  private boolean agentSSLEnabled;
-
-  /** The SSL Protocols that the Agent adaptors will use */
-  private String agentSSLProtocols;
-
-  /** The SSL Ciphers that the Agent adaptors will use */
-  private String agentSSLCiphers;
-
-  /** True if Agent adaptors require authentication when SSL is enabled */
-  private boolean agentSSLRequireAuth;
-
-  /**
-   * HttpAdaptor won't work with ssl authentication required, so this attribute
-   * allows this option to be turned on for RMI but off for HTTP in the event
-   * that both adaptors are being used with ssl.
-   */
-  private boolean httpSSLRequireAuth;
-
-  /** True if HttpAdaptor authentication is enabled */
-  private boolean httpAuthEnabled;
-
-  /** The login user for HttpAdaptor authentication */
-  private String httpAuthUser;
-
-  /** The login password for HttpAdaptor authentication */
-  private String httpAuthPassword;
-
-  /** True if the HttpAdaptor is enabled */
-  private boolean httpEnabled;
-
-  /** The port for the MX4J HttpAdatper */
-  private int httpPort;
-
-  /** The host for the MX4J HttpAdatper */
-  private String httpBindAddress;
-
-  /** True if the RMIConnectorServer is enabled */
-  private boolean rmiEnabled;
-
-  /** True if the Agent is to create its own RMI registry */
-  private boolean rmiRegistryEnabled;
-
-  /** The host for the MX4J RMIConnectorServer */
-  private String rmiBindAddress;
-
-  /** The port for the RMI Registry created by the Agent */
-  private int rmiPort;
-
-  /** The port for the MX4J RMIConnectorServer */
-  private int rmiServerPort;
-
-  /** True if the SnmpAdaptor is enabled */
-  private boolean snmpEnabled;
-
-  /** The bind address for sockets used by the SNMP adapter */
-  private String snmpBindAddress;
-
-  /** Path to the directory containing the SNMP Adaptor and its sub-dirs */
-  private String snmpDirectory;
-
-  /** Is Email notification enabled */
-  private boolean isEmailNotificationEnabled;
-
-  /** Email notification from: emailID */
-  private String emailNotificationFrom;
-
-  /** The host name of the mail server to be used for email communication.  */
-  private String emailNotificationHostName;
-
-  /** Email notification to: emailIDs list */
-  private String emailNotificationToList;
-
-  /** State Save File Name */
-  private String stateSaveFile;
-
-  /**
-   * Describes the property file used to load configuration from.
-   * Null if no file was found.
-   */
-  private URL url;
-
-  /** Original command line arguments */
-  private String[] originalCmdLineArgs = null;
-
-  /** The <code>Agent</code> that is configured by this
-   * <code>AgentConfigImpl</code> */
-  private Agent agent;
-
-  // -------------------------------------------------------------------------
-  //   Constructor(s)
-  // -------------------------------------------------------------------------
-
-  /**
-   * Constructs new instance of <code>AgentConfigImpl</code> with the
-   * default configuration.
-   */
-  public AgentConfigImpl() {
-    this(getDefaultProperties());
-  }
-
-  /**
-   * Constructs new instance of AgentConfig. Supplied command-line arguments
-   * are used to create a set of non-default properties for initializing this
-   * AgentConfig.
-   *
-   * @param args  array of non-default configuration arguments
-   */
-  public AgentConfigImpl(String[] args) {
-    this(toProperties(args));
-    this.originalCmdLineArgs = args;
-  }
-
-  /**
-   * Creates a new <code>AgentConfig</code> with the given non-default
-   * configuration properties.
-   *
-   * @param props  overriding non-default configuration properties
-   */
-  public AgentConfigImpl(Properties props) {
-    // for admin bug #40434
-    super(filterOutAgentProperties(appendOptionalPropertyFileProperties(props)), true/*ignore gemfire.properties*/);
-
-    // first get any property values set in the optional property file
-    this.url = getPropertyFileURL(retrievePropertyFile());
-
-    initialize(appendOptionalPropertyFileProperties(props));
-  }
-
-  /**
-   * Constructs new instance of AgentConfig using the specified property file.
-   *
-   * @param propFile  the file to load configuration properties from
-   */
-  public AgentConfigImpl(File propFile) {
-    // Initialize default values
-    this();
-
-    Properties props = new Properties();
-    if (propFile.exists()) {
-      try {
-        FileInputStream in = new FileInputStream(propFile);
-        props.load(in);
-        in.close();
-      }
-      catch (java.io.IOException e) {
-        throw new GemFireIOException(LocalizedStrings.AgentConfigImpl_FAILED_READING_0.toLocalizedString(propFile), e);
-      }
-    }
-    else {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_SPECIFIED_PROPERTIES_FILE_DOES_NOT_EXIST_0.toLocalizedString(propFile));
-    }
-
-    initialize(props);
-  }
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Sets the <code>Agent</code> associated with this
-   * <code>AgentConfigImpl</code>.
-   */
-  void setAgent(Agent agent) {
-    this.agent = agent;
-  }
-
-  /**
-   * Checks to see if this config object is "read only".  If it is,
-   * then an {@link IllegalStateException} is thrown.
-   *
-   * @since 4.0
-   */
-  @Override
-  protected void checkReadOnly() {
-    if (this.agent != null) {
-      throw new IllegalStateException(LocalizedStrings.AgentConfigImpl_AN_AGENTCONFIG_OBJECT_CANNOT_BE_MODIFIED_AFTER_IT_HAS_BEEN_USED_TO_CREATE_AN_AGENT.toLocalizedString());
-    }
-
-    super.checkReadOnly();
-  }
-
-  // -------------------------------------------------------------------------
-  //   Methods for handling Properties and the Properties file
-  // -------------------------------------------------------------------------
-
-  /**
-   * Returns a description of the property file used to load this config.
-   * If no property file was used then the description will say so.
-   */
-  public String getPropertyFileDescription() {
-    /*
-     * Checking if the specified or the default properties file exists. If not,
-     * just log this as an information.
-     */
-    if (this.url == null) {
-      return LocalizedStrings.AgentConfigImpl_USING_DEFAULT_CONFIGURATION_BECAUSE_PROPERTY_FILE_WAS_FOUND.toLocalizedString();
-    } else {
-      return LocalizedStrings.AgentConfigImpl_CONFIGURATION_LOADED_FROM_0
-        .toLocalizedString(this.url);
-    }
-  }
-
-  /**
-   * Returns the default property file that will be used when configuration
-   * is saved.
-   */
-  public File getPropertyFile() {
-    File f;
-    if (this.url == null) {
-      f = new File(retrievePropertyFile());
-      if (!f.isAbsolute()) {
-        // save to <cwd>/propertyFile
-        f = new File(System.getProperty("user.dir"),
-                     retrievePropertyFile());
-      }
-    } else {
-      f = new File(this.url.getFile());
-    }
-    return f;
-  }
-
-  /**
-   * Converts the contents of this config to a property instance and Stringifies
-   * it
-   *
-   * @return contents of this config as String
-   */
-  public String toPropertiesAsString() {
-    Properties p = toProperties(true /* include DS properties */);
-
-    StringWriter sw = new StringWriter();
-    PrintWriter pw = new PrintWriter(sw);
-    pw.println(LocalizedStrings.AgentConfigImpl_AGENT_CONFIGURATION.toLocalizedString());
-    Enumeration e = p.propertyNames();
-    while (e.hasMoreElements()) {
-      String pn = (String)e.nextElement();
-      String pv = p.getProperty(pn);
-      pw.println("  " + pn + " = " + pv);
-    }
-    pw.close();
-
-    return sw.toString();
-  }
-
-  /**
-   * Converts the contents of this config to a property instance.
-   *
-   * @return contents of this config as java.util.Properties
-   */
-  public Properties toProperties() {
-    return toProperties(false /* include DS properties */);
-  }
-
-
-  /**
-   * Converts the contents of this config to a property instance.
-   *
-   * @param includeDSProperties
-   *        Should distributed system properties be included in the
-   *        <code>Properties</code> object?  See bug 32682.
-   *
-   * @return contents of this config as java.util.Properties
-   */
-  public Properties toProperties(boolean includeDSProperties) {
-    Properties props = new Properties();
-
-    props.setProperty(AUTO_CONNECT_NAME, toString(AUTO_CONNECT_NAME, getAutoConnect()));
-
-    props.setProperty(HTTP_ENABLED_NAME, toString(HTTP_ENABLED_NAME, isHttpEnabled()));
-    props.setProperty(HTTP_BIND_ADDRESS_NAME, toString(HTTP_BIND_ADDRESS_NAME, getHttpBindAddress()));
-    props.setProperty(HTTP_PORT_NAME, toString(HTTP_PORT_NAME, getHttpPort()));
-
-    props.setProperty(RMI_ENABLED_NAME, toString(RMI_ENABLED_NAME, isRmiEnabled()));
-    props.setProperty(RMI_REGISTRY_ENABLED_NAME, toString(RMI_REGISTRY_ENABLED_NAME, isRmiRegistryEnabled()));
-    props.setProperty(RMI_BIND_ADDRESS_NAME, toString(RMI_BIND_ADDRESS_NAME, getRmiBindAddress()));
-    props.setProperty(RMI_PORT_NAME, toString(RMI_PORT_NAME, getRmiPort()));
-    props.setProperty(RMI_SERVER_PORT_NAME, toString(RMI_SERVER_PORT_NAME, getRmiServerPort()));
-
-    props.setProperty(SNMP_ENABLED_NAME, toString(SNMP_ENABLED_NAME, isSnmpEnabled()));
-    props.setProperty(SNMP_BIND_ADDRESS_NAME, toString(SNMP_BIND_ADDRESS_NAME, getSnmpBindAddress()));
-    props.setProperty(SNMP_DIRECTORY_NAME, toString(SNMP_DIRECTORY_NAME, getSnmpDirectory()));
-
-    props.setProperty(AGENT_SSL_ENABLED_NAME, toString(AGENT_SSL_ENABLED_NAME, isAgentSSLEnabled()));
-    props.setProperty(AGENT_SSL_PROTOCOLS_NAME, toString(AGENT_SSL_PROTOCOLS_NAME, getAgentSSLProtocols()));
-    props.setProperty(AGENT_SSL_CIPHERS_NAME, toString(AGENT_SSL_CIPHERS_NAME, getAgentSSLCiphers()));
-    props.setProperty(AGENT_SSL_REQUIRE_AUTHENTICATION_NAME, toString(AGENT_SSL_REQUIRE_AUTHENTICATION_NAME, isAgentSSLRequireAuth()));
-    props.setProperty(HTTP_SSL_REQUIRE_AUTHENTICATION_NAME, toString(HTTP_SSL_REQUIRE_AUTHENTICATION_NAME, isHttpSSLRequireAuth()));
-
-    props.setProperty(HTTP_AUTHENTICATION_ENABLED_NAME, toString(HTTP_AUTHENTICATION_ENABLED_NAME, isHttpAuthEnabled()));
-    props.setProperty(HTTP_AUTHENTICATION_USER_NAME, toString(HTTP_AUTHENTICATION_USER_NAME, getHttpAuthUser()));
-    props.setProperty(HTTP_AUTHENTICATION_PASSWORD_NAME, toString(HTTP_AUTHENTICATION_PASSWORD_NAME, getHttpAuthPassword()));
-
-    props.setProperty(EMAIL_NOTIFICATIONS_ENABLED_NAME, toString(EMAIL_NOTIFICATIONS_ENABLED_NAME, isEmailNotificationEnabled()));
-    props.setProperty(EMAIL_NOTIFICATIONS_HOST_NAME, toString(EMAIL_NOTIFICATIONS_HOST_NAME, getEmailNotificationHost()));
-    props.setProperty(EMAIL_NOTIFICATIONS_FROM_NAME, toString(EMAIL_NOTIFICATIONS_FROM_NAME, getEmailNotificationFrom()));
-    props.setProperty(EMAIL_NOTIFICATIONS_TO_LIST_NAME, toString(EMAIL_NOTIFICATIONS_TO_LIST_NAME, getEmailNotificationToList()));
-
-    props.setProperty(STATE_SAVE_FILE_NAME, toString(STATE_SAVE_FILE_NAME, getStateSaveFile()));
-
-    props.setProperty(EMAIL_NOTIFICATIONS_ENABLED_NAME, toString(EMAIL_NOTIFICATIONS_ENABLED_NAME, isEmailNotificationEnabled()));
-    props.setProperty(EMAIL_NOTIFICATIONS_HOST_NAME, toString(EMAIL_NOTIFICATIONS_HOST_NAME, getEmailNotificationHost()));
-    props.setProperty(EMAIL_NOTIFICATIONS_FROM_NAME, toString(EMAIL_NOTIFICATIONS_FROM_NAME, getEmailNotificationFrom()));
-    props.setProperty(EMAIL_NOTIFICATIONS_TO_LIST_NAME, toString(EMAIL_NOTIFICATIONS_TO_LIST_NAME, getEmailNotificationToList()));
-
-    props.setProperty(SSL_ENABLED_NAME, toString(SSL_ENABLED_NAME, isSSLEnabled()));
-    props.setProperty(SSL_PROTOCOLS_NAME, toString(SSL_PROTOCOLS_NAME, getSSLProtocols()));
-    props.setProperty(SSL_CIPHERS_NAME, toString(SSL_CIPHERS_NAME, getSSLCiphers()));
-    props.setProperty(SSL_REQUIRE_AUTHENTICATION_NAME, toString(SSL_REQUIRE_AUTHENTICATION_NAME, isSSLAuthenticationRequired()));
-
-    Properties sslProps = getSSLProperties();
-    if (sslProps.size() > 0) {
-      int sequence = 0;
-      for (Iterator iter = sslProps.keySet().iterator(); iter.hasNext();) {
-        String key = (String) iter.next();
-        String value = sslProps.getProperty(key);
-        props.setProperty("ssl-property-" + sequence, key+"="+OBFUSCATED_STRING);
-        sequence++;
-      }
-    }
-
-    if (this.getDistributionLocatorConfigs().length > 0) {
-      DistributionLocatorConfig[] configs =
-        this.getDistributionLocatorConfigs();
-      for (int i = 0; i < configs.length; i++) {
-        DistributionLocatorConfig locator = configs[i];
-        props.setProperty(LOCATOR_HOST_NAME + i, toString(LOCATOR_HOST_NAME, locator.getHost()));
-        props.setProperty(LOCATOR_PORT_NAME + i, toString(LOCATOR_PORT_NAME, locator.getPort()));
-        props.setProperty(LOCATOR_PRODUCT_DIRECTORY_NAME + i, toString(LOCATOR_PRODUCT_DIRECTORY_NAME, locator.getProductDirectory()));
-        props.setProperty(LOCATOR_WORKING_DIRECTORY_NAME + i, toString(LOCATOR_WORKING_DIRECTORY_NAME, locator.getWorkingDirectory()));
-        props.setProperty(LOCATOR_REMOTE_COMMAND + i, toString(LOCATOR_REMOTE_COMMAND, locator.getRemoteCommand()));
-        props.setProperty(LOCATOR_BIND_ADDRESS + i, toString(LOCATOR_BIND_ADDRESS, locator.getBindAddress()));
-//        props.setProperty(LOCATOR_DS_PROPERTIES + i,
-//                          getdsPropertiesString(locator));
-      }
-    }
-
-    if (includeDSProperties) {
-      props.setProperty(ENTITY_CONFIG_XML_FILE_NAME, toString(ENTITY_CONFIG_XML_FILE_NAME, getEntityConfigXMLFile()));
-      // This could be different each time agent is started
-//       props.setProperty(SYSTEM_ID_NAME, toString(getSystemId()));
-      props.setProperty(MCAST_PORT_NAME, toString(MCAST_PORT_NAME, getMcastPort()));
-      props.setProperty(MCAST_ADDRESS_NAME, toString(MCAST_ADDRESS_NAME, getMcastAddress()));
-      props.setProperty(LOCATORS_NAME, toString(LOCATORS_NAME, getLocators()));
-      props.setProperty(MEMBERSHIP_PORT_RANGE_NAME, getMembershipPortRange());
-      props.setProperty(TCP_PORT_NAME, ""+getTcpPort());
-      props.setProperty(BIND_ADDRESS_NAME, toString(BIND_ADDRESS_NAME, getBindAddress()));
-      props.setProperty(REMOTE_COMMAND_NAME, toString(REMOTE_COMMAND_NAME, getRemoteCommand()));
-      props.setProperty(LOG_FILE_NAME, toString(LOG_FILE_NAME, getLogFile()));
-      props.setProperty(LOG_LEVEL_NAME, toString(LOG_LEVEL_NAME, getLogLevel()));
-      props.setProperty(LOG_DISK_SPACE_LIMIT_NAME, toString(LOG_DISK_SPACE_LIMIT_NAME, getLogDiskSpaceLimit()));
-      props.setProperty(LOG_FILE_SIZE_LIMIT_NAME, toString(LOG_FILE_SIZE_LIMIT_NAME, getLogFileSizeLimit()));
-      props.setProperty(REFRESH_INTERVAL_NAME, toString(REFRESH_INTERVAL_NAME, getRefreshInterval()));
-    }
-
-    return props;
-  }
-
-
-  /* return a string with the given locator's distributed system property
-      settings */
-  /*public String getdsPropertiesString(DistributionLocatorConfig locator) {
-    Properties props = locator.getDistributedSystemProperties();
-    if (props != null) {
-      final StringBuffer sb = new StringBuffer(30);
-      OutputStream os = new OutputStream() {
-        @Override
-        public void write(int i) {
-          sb.append((char)i);
-        }
-      };
-      try {
-        props.store(os, "");
-        os.flush();
-      } catch (java.io.IOException io) {
-        getLogWriter().warning(io);
-      } finally {
-        try {
-          os.close();
-        } catch (IOException e) {
-          getLogWriter().warning(e);
-        }
-      }
-      return sb.toString();
-    }
-    return "";
-  }*/
-
-  // -------------------------------------------------------------------------
-  //   Agent specific properties
-  // -------------------------------------------------------------------------
-
-  public boolean isAgentSSLEnabled() {
-    return this.agentSSLEnabled;
-  }
-
-  public void setAgentSSLEnabled(boolean agentSSLEnabled) {
-    checkReadOnly();
-    this.agentSSLEnabled = agentSSLEnabled;
-    configChanged();
-  }
-
-  public String getAgentSSLProtocols() {
-    return this.agentSSLProtocols;
-  }
-
-  public void setAgentSSLProtocols(String agentSSLProtocols) {
-    checkReadOnly();
-    this.agentSSLProtocols = agentSSLProtocols;
-    configChanged();
-  }
-
-  public String getAgentSSLCiphers() {
-    return this.agentSSLCiphers;
-  }
-
-  public void setAgentSSLCiphers(String agentSSLCiphers) {
-    checkReadOnly();
-    this.agentSSLCiphers = agentSSLCiphers;
-    configChanged();
-  }
-
-  public boolean isAgentSSLRequireAuth() {
-    return this.agentSSLRequireAuth;
-  }
-
-  public void setAgentSSLRequireAuth(boolean agentSSLRequireAuth) {
-    checkReadOnly();
-    this.agentSSLRequireAuth = agentSSLRequireAuth;
-    configChanged();
-  }
-
-  public boolean isHttpSSLRequireAuth() {
-    return this.httpSSLRequireAuth;
-  }
-
-  public void setHttpSSLRequireAuth(boolean httpSSLRequireAuth) {
-    checkReadOnly();
-    this.httpSSLRequireAuth = httpSSLRequireAuth;
-    configChanged();
-  }
-
-  public boolean isHttpAuthEnabled() {
-    return this.httpAuthEnabled;
-  }
-
-  public void setHttpAuthEnabled(boolean httpAuthEnabled) {
-    checkReadOnly();
-    this.httpAuthEnabled = httpAuthEnabled;
-    configChanged();
-  }
-
-  public String getHttpAuthUser() {
-    return this.httpAuthUser;
-  }
-
-  public void setHttpAuthUser(String httpAuthUser) {
-    checkReadOnly();
-    this.httpAuthUser = httpAuthUser;
-    configChanged();
-  }
-
-  public String getHttpAuthPassword() {
-    return this.httpAuthPassword;
-  }
-
-  public void setHttpAuthPassword(String httpAuthPassword) {
-    checkReadOnly();
-    this.httpAuthPassword = httpAuthPassword;
-    configChanged();
-  }
-
-  public boolean isSnmpEnabled() {
-    return this.snmpEnabled;
-  }
-
-  public void setSnmpEnabled(boolean snmpEnabled) {
-    checkReadOnly();
-    this.snmpEnabled = snmpEnabled;
-    configChanged();
-  }
-
-  public String getSnmpBindAddress() {
-    return this.snmpBindAddress;
-  }
-
-  public void setSnmpBindAddress(String snmpBindAddress) {
-    checkReadOnly();
-    this.snmpBindAddress = validateSnmpBindAddress(snmpBindAddress);
-    configChanged();
-  }
-
-  public String getSnmpDirectory() {
-    return this.snmpDirectory;
-  }
-
-  public void setSnmpDirectory(String snmpDirectory) {
-    checkReadOnly();
-    this.snmpDirectory = validateSnmpDirectory(snmpDirectory);
-    configChanged();
-  }
-
-  public boolean isRmiEnabled() {
-    return this.rmiEnabled;
-  }
-
-  public void setRmiEnabled(boolean rmiEnabled) {
-    checkReadOnly();
-    this.rmiEnabled = rmiEnabled;
-    configChanged();
-  }
-
-  public boolean isRmiRegistryEnabled() {
-    return this.rmiRegistryEnabled;
-  }
-
-  public void setRmiRegistryEnabled(boolean rmiRegistryEnabled) {
-    checkReadOnly();
-    this.rmiRegistryEnabled = rmiRegistryEnabled;
-    configChanged();
-  }
-
-  public String getRmiBindAddress() {
-    return this.rmiBindAddress;
-  }
-
-  public void setRmiBindAddress(String rmiBindAddress) {
-    checkReadOnly();
-    this.rmiBindAddress = validateRmiBindAddress(rmiBindAddress);
-    configChanged();
-  }
-
-  public int getRmiPort() {
-    return this.rmiPort;
-  }
-
-  public void setRmiPort(int rmiPort) {
-    checkReadOnly();
-    this.rmiPort = validateRmiPort(rmiPort);
-    configChanged();
-  }
-
-  /**
-   * Returns the port of the RMI Connector Server.
-   *
-   * See <a href="#rmi-server-port">description</a> above.
-   *
-   * @return the value set for rmi-server-port
-   * @since 6.5
-   */
-  public int getRmiServerPort() {
-    return this.rmiServerPort;
-  }
-
-  /**
-   * Sets the port of the RMI Connector Server.
-   *
-   * @param port rmi-server-port to set.
-   * @since 6.5
-   */
-  public void setRmiServerPort(int port) {
-    checkReadOnly();
-    this.rmiServerPort = validateRmiServerPort(rmiServerPort);
-    configChanged();
-  }
-
-  public boolean isHttpEnabled() {
-    return this.httpEnabled;
-  }
-
-  public void setHttpEnabled(boolean httpEnabled) {
-    checkReadOnly();
-    this.httpEnabled = httpEnabled;
-    configChanged();
-  }
-
-  public int getHttpPort() {
-    return this.httpPort;
-  }
-
-  public void setHttpPort(int httpPort) {
-    checkReadOnly();
-    this.httpPort = validateHttpPort(httpPort);
-    configChanged();
-  }
-
-  public String getHttpBindAddress() {
-    return this.httpBindAddress;
-  }
-
-  public void setHttpBindAddress(String httpBindAddress) {
-    checkReadOnly();
-    this.httpBindAddress = validateHttpBindAddress(httpBindAddress);
-    configChanged();
-  }
-
-  public void setHttpBindAddress(InetAddress httpBindAddress) {
-    checkReadOnly();
-    this.httpBindAddress = validateHttpBindAddress(httpBindAddress);
-    configChanged();
-  }
-
-  public boolean getAutoConnect() {
-    return this.autoConnect;
-  }
-
-  public void setAutoConnect(boolean v) {
-    checkReadOnly();
-    this.autoConnect = v;
-    configChanged();
-  }
-
-  // -------------------------------------------------------------------------
-  //   Implementation methods
-  // -------------------------------------------------------------------------
-
-  /**
-   * Initialize the values of this AgentConfig.
-   *
-   * @param props the configuration values to use
-   */
-  private void initialize(Properties props) {
-    this.autoConnect = validateBoolean(props.getProperty(
-        AUTO_CONNECT_NAME),
-        DEFAULT_AUTO_CONNECT);
-
-    this.httpEnabled = validateBoolean(props.getProperty(
-        HTTP_ENABLED_NAME),
-        DEFAULT_HTTP_ENABLED);
-    this.httpBindAddress = validateHttpBindAddress(props.getProperty(
-        HTTP_BIND_ADDRESS_NAME));
-    this.httpPort = validateHttpPort(props.getProperty(
-        HTTP_PORT_NAME));
-
-    this.rmiEnabled = validateBoolean(props.getProperty(
-        RMI_ENABLED_NAME),
-        DEFAULT_RMI_ENABLED);
-    this.rmiRegistryEnabled = validateBoolean(props.getProperty(
-        RMI_REGISTRY_ENABLED_NAME),
-        DEFAULT_RMI_REGISTRY_ENABLED);
-
-    this.rmiBindAddress = validateRmiBindAddress(props.getProperty(
-        RMI_BIND_ADDRESS_NAME));
-    this.rmiPort = validateRmiPort(props.getProperty(
-        RMI_PORT_NAME));
-    this.rmiServerPort = validateRmiServerPort(props.getProperty(
-        RMI_SERVER_PORT_NAME));
-
-    this.snmpEnabled = validateBoolean(props.getProperty(
-        SNMP_ENABLED_NAME),
-        DEFAULT_SNMP_ENABLED);
-    this.snmpDirectory = validateSnmpDirectory(props.getProperty(
-        SNMP_DIRECTORY_NAME));
-
-    this.agentSSLEnabled = validateBoolean(props.getProperty(
-        AGENT_SSL_ENABLED_NAME),
-        DEFAULT_AGENT_SSL_ENABLED);
-    this.agentSSLProtocols = validateNonEmptyString(props.getProperty(
-        AGENT_SSL_PROTOCOLS_NAME),
-        DEFAULT_AGENT_SSL_PROTOCOLS);
-    this.agentSSLCiphers = validateNonEmptyString(props.getProperty(
-        AGENT_SSL_CIPHERS_NAME),
-        DEFAULT_AGENT_SSL_CIPHERS);
-    this.agentSSLRequireAuth = validateBoolean(props.getProperty(
-        AGENT_SSL_REQUIRE_AUTHENTICATION_NAME),
-        DEFAULT_AGENT_SSL_REQUIRE_AUTHENTICATION);
-    this.httpSSLRequireAuth = validateBoolean(props.getProperty(
-        HTTP_SSL_REQUIRE_AUTHENTICATION_NAME),
-        DEFAULT_HTTP_SSL_REQUIRE_AUTHENTICATION);
-
-    this.httpAuthEnabled = validateBoolean(props.getProperty(
-        HTTP_AUTHENTICATION_ENABLED_NAME),
-        DEFAULT_HTTP_AUTHENTICATION_ENABLED);
-    this.httpAuthUser = validateNonEmptyString(props.getProperty(
-        HTTP_AUTHENTICATION_USER_NAME),
-        DEFAULT_HTTP_AUTHENTICATION_USER);
-    this.httpAuthPassword = validateNonEmptyString(props.getProperty(
-        HTTP_AUTHENTICATION_PASSWORD_NAME),
-        DEFAULT_HTTP_AUTHENTICATION_PASSWORD);
-
-    this.sslEnabled = validateBoolean(props.getProperty(
-        SSL_ENABLED_NAME),
-        DEFAULT_SSL_ENABLED);
-    this.sslProtocols = validateNonEmptyString(props.getProperty(
-        SSL_PROTOCOLS_NAME),
-        DEFAULT_SSL_PROTOCOLS);
-    this.sslCiphers = validateNonEmptyString(props.getProperty(
-        SSL_CIPHERS_NAME),
-        DEFAULT_SSL_CIPHERS);
-    this.sslAuthenticationRequired = validateBoolean(props.getProperty(
-        SSL_REQUIRE_AUTHENTICATION_NAME),
-        DEFAULT_SSL_REQUIRE_AUTHENTICATION);
-    this.sslProperties = new Properties();
-    for (int i = 0; true; i++) {
-      String key = "ssl-property-"+i;
-      String value = props.getProperty(key);
-      if (value == null) break;
-      StringTokenizer st = new StringTokenizer(value, "=");
-      if (!st.hasMoreTokens()) break;
-      String propKey = st.nextToken();
-      if (!st.hasMoreTokens()) break;
-      String propValue = st.nextToken();
-      this.sslProperties.put(propKey, propValue);
-    }
-
-    this.isEmailNotificationEnabled = validateBoolean(props.getProperty(
-            AgentConfig.EMAIL_NOTIFICATIONS_ENABLED_NAME),
-            DEFAULT_EMAIL_NOTIFICATIONS_ENABLED);
-    this.emailNotificationHostName= validateNonEmptyString(props.getProperty(
-    		AgentConfig.EMAIL_NOTIFICATIONS_HOST_NAME),
-            DEFAULT_EMAIL_HOST);
-    this.emailNotificationFrom= validateNonEmptyString(props.getProperty(
-    		AgentConfig.EMAIL_NOTIFICATIONS_FROM_NAME),
-            DEFAULT_EMAIL_FROM);
-    this.emailNotificationToList= validateNonEmptyString(props.getProperty(
-    		AgentConfig.EMAIL_NOTIFICATIONS_TO_LIST_NAME),
-            DEFAULT_EMAIL_TO_LIST);
-
-    this.stateSaveFile = validateNonEmptyString(props.getProperty(
-    		AgentConfig.STATE_SAVE_FILE_NAME),
-            DEFAULT_STATE_SAVE_FILE);
-
-    try {
-      for (int i = 0; true; i++) {
-        String hostProp = props.getProperty(LOCATOR_HOST_NAME + i);
-        if (isEmpty(hostProp)) break;
-        String host = hostProp;
-        int port = Integer.parseInt(
-            props.getProperty(LOCATOR_PORT_NAME + i));
-        File workDir = validateWorkingDirectory(
-            props.getProperty(LOCATOR_WORKING_DIRECTORY_NAME + i));
-        File prodDir = new File(validateProductDirectory(
-            props.getProperty(LOCATOR_PRODUCT_DIRECTORY_NAME + i)));
-        String remoteCmd =
-            props.getProperty(LOCATOR_REMOTE_COMMAND + i);
-        String bindAddr =
-            props.getProperty(LOCATOR_BIND_ADDRESS + i);
-
-        DistributionLocatorConfig config =
-          this.createDistributionLocatorConfig();
-        config.setHost(host);
-        config.setPort(port);
-        config.setBindAddress(bindAddr);
-        config.setWorkingDirectory(workDir.getAbsolutePath());
-        config.setProductDirectory(prodDir.getAbsolutePath());
-        config.setRemoteCommand(remoteCmd);
-      }
-    } catch (IllegalArgumentException e) {
-      // This is how we break out of the loop?  Yuck!
-      /*
-       * LogWriter is initialized afterwards. Hence printing the stack trace.
-       * This is done to avoid creation of duplicate log writer.
-       */
-      e.printStackTrace();
-    }
-  }
-
-  /**
-   * Filter all agent configuration attributes out of the given <code>Properties</code> object.
-   * <p/>
-   * @param props the <code>Properties</code> object of filter agent configuration attributes out of.
-   * @see AgentConfigImpl#_getPropertyDescription(String)
-   */
-  private static Properties filterOutAgentProperties(final Properties props) {
-    final Properties filteredProps = new Properties();
-
-    for (final Object key : props.keySet()) {
-      if (_getPropertyDescription(key.toString()) == null) {
-        final String value = props.getProperty(key.toString());
-        if (value != null) {
-          filteredProps.setProperty(key.toString(), value);
-        }
-      }
-    }
-
-    appendLogFileProperty(filteredProps);
-
-    return filteredProps;
-  }
-
-  /**
-   * Appends the log-file property to the Properties object if set of properties does not already define the
-   * log-file property or the gemfire.agent.log-file property.
-   * <p/>
-   * @param props the <code>Properties</code> to append the log-file property to if the property does not exist.
-   */
-  private static void appendLogFileProperty(final Properties props) {
-    if (!(props.containsKey(DistributedSystemConfig.LOG_FILE_NAME)
-      || props.containsKey(SYSTEM_PROPERTY_PREFIX + DistributedSystemConfig.LOG_FILE_NAME)))
-    {
-      props.put(DistributedSystemConfig.LOG_FILE_NAME, DEFAULT_LOG_FILE);
-    }
-  }
-
-  /**
-   * Appends any additional property-file specified properties to the supplied
-   * Properties. If the supplied property overrides the property in the
-   * property-file, then property-file value is ignored. System Properties always
-   * override the supplied properties
-   * @return appendedProps Properties appened to from the property-file if any
-   */
-  private static Properties appendOptionalPropertyFileProperties(final Properties props) {
-    final URL url = getPropertyFileURL(retrievePropertyFile());
-    final Properties appendedProps = new Properties();
-
-    appendedProps.putAll(props);
-
-    // first, get any property values set in the optional property file
-    if (url != null) {
-      InputStream in = null;
-
-      try {
-        in = url.openStream();
-
-        final Properties agentPropertyFileProperties = new Properties();
-
-        agentPropertyFileProperties.load(in);
-
-        // don't let any properties from the file override those on the command-line
-        for (final Object key : agentPropertyFileProperties.keySet()) {
-          if (props.getProperty(key.toString()) == null) {
-            appendedProps.setProperty(key.toString(), agentPropertyFileProperties.getProperty(key.toString()));
-          }
-        }
-      }
-      catch (IOException e) {
-        throw new GemFireIOException(LocalizedStrings.AgentConfigImpl_FAILED_READING_0.toLocalizedString(
-          url.toString()), e);
-      }
-      finally {
-        IOUtils.close(in);
-      }
-    }
-
-    // last override values with those from the system properties
-    // TODO this is not exactly overriding!
-    for (final Object propSuffix : props.keySet()) {
-      final String key = SYSTEM_PROPERTY_PREFIX + propSuffix;
-      final String value = System.getProperty(key);
-
-      if (value != null) {
-        appendedProps.put(key, value);
-      }
-    }
-
-    return appendedProps;
-  }
-
-  /**
-   * Returns a description of the given agent config property
-   *
-   * @throws IllegalArgumentException
-   *         If <code>prop</code> is not a recognized agent
-   *         configuration property
-   */
-  public static String getPropertyDescription(String prop) {
-    if (prop.equals(LOG_FILE_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_NAME_OF_THE_AGENTS_LOG_FILE.toLocalizedString();
-    } else if (prop.equals(LOG_LEVEL_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_MINIMUM_LEVEL_OF_LOGGING_PERFORMED_BY_AGENT.toLocalizedString();
-    } else if (prop.equals(AGENT_DEBUG)) {
-      return LocalizedStrings.AgentConfigImpl_WHETHER_THE_AGENT_SHOULD_PRINT_DEBUGGING_INFORMATION.toLocalizedString();
-    } else if (prop.equals(LOG_DISK_SPACE_LIMIT_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_LIMIT_IN_MEGABYTES_OF_HOW_MUCH_DISK_SPACE_CAN_BE_CONSUMED_BY_OLD_INACTIVE_LOG_FILES.toLocalizedString();
-    } else if (prop.equals(LOG_FILE_SIZE_LIMIT_NAME)) {
-      return  LocalizedStrings.AgentConfigImpl_LIMIT_IN_MEGABYTES_OF_HOW_LARGE_THE_CURRENT_STATISTIC_ARCHIVE_FILE_CAN_GROW_BEFORE_IT_IS_CLOSED_AND_ARCHIVAL_ROLLS_ON_TO_A_NEW_FILE.toLocalizedString();
-    } else if (prop.equals(MCAST_PORT_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_MULTICAST_PORT_USED_TO_CONNECT_TO_DISTRIBUTED_SYSTEM.toLocalizedString();
-    } else if (prop.equals(MCAST_ADDRESS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_MULTICAST_ADDRESS_USED_TO_CONNECT_TO_DISTRIBUTED_SYSTEM.toLocalizedString();
-    } else if (prop.equals(BIND_ADDRESS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_IP_ADDRESS_OF_THE_AGENTS_DISTRIBUTED_SYSTEM.toLocalizedString();
-    } else if (prop.equals(TCP_PORT_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_TCP_PORT.toLocalizedString();
-    } else if (prop.equals(LOCATORS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_ADDRESSES_OF_THE_LOCATORS_OF_THE_DISTRIBUTED_SYSTEM.toLocalizedString();
-    } else if (prop.equals(MEMBERSHIP_PORT_RANGE_NAME)) {
-        return LocalizedStrings.AgentConfigImpl_ALLOWED_RANGE_OF_UDP_PORTS_TO_FORM_UNIQUE_MEMBERSHIP_ID.toLocalizedString();
-//     } else if (prop.equals(SYSTEM_ID_NAME)) {
-//       return "The id of the distributed system";
-    } else if (prop.equals(ENTITY_CONFIG_XML_FILE_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_XML_CONFIGURATION_FILE_FOR_MANAGED_ENTITIES.toLocalizedString();
-    } else if (prop.equals(REFRESH_INTERVAL_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_REFRESH_INTERVAL_IN_SECONDS_FOR_AUTOREFRESH_OF_MEMBERS_AND_STATISTIC_RESOURCES.toLocalizedString();
-    } else if (prop.equals(REMOTE_COMMAND_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_COMMAND_PREFIX_USED_FOR_LAUNCHING_MEMBERS_OF_THE_DISTRIBUTED_SYSTEM.toLocalizedString();
-    } else if (prop.equals(SSL_ENABLED_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_DOES_THE_DISTRIBUTED_SYSTEM_COMMUNICATE_USING_SSL.toLocalizedString();
-    } else if (prop.equals(SSL_PROTOCOLS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_SSL_PROTOCOLS_USED_TO_COMMUNICATE_WITH_DISTRIBUTED_SYSTEM.toLocalizedString();
-    } else if (prop.equals(SSL_CIPHERS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_SSL_CIPHERS_USED_TO_COMMUNICATE_WITH_DISTRIBUTED_SYSTEM.toLocalizedString();
-    } else if (prop.equals(SSL_REQUIRE_AUTHENTICATION_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_DOES_CONNECTING_TO_THE_DISTRIBUTED_SYSTEM_REQUIRE_SSL_AUTHENTICATION.toLocalizedString();
-    } else {
-      String description = _getPropertyDescription(prop);
-      if (description == null) {
-        throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_UNKNOWN_CONFIG_PROPERTY_0.toLocalizedString(prop));
-
-      } else {
-        return description;
-      }
-    }
-  }
-
-  /**
-   * Returns a description of the given agent config property or
-   * <code>null</code> if <code>prop</code> is not a recognized agent
-   * property.
-   */
-  public static String _getPropertyDescription(String prop) {
-    if (prop.equals(AUTO_CONNECT_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_AGENT_AUTOMATICALLY_CONNECT_TO_THE_DISTRIBUTED_SYSTEM.toLocalizedString();
-
-//     } else if (prop.equals(SYSTEM_NAME_NAME)) {
-//       return "The logical name of the distributed system";
-
-    } else if (prop.equals(HTTP_ENABLED_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_AGENT_START_THE_HTTP_JMX_ADAPTER.toLocalizedString();
-
-    } else if (prop.equals(HTTP_BIND_ADDRESS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_BIND_ADDRESS_OF_HTTP_ADAPTERS_SOCKETS.toLocalizedString();
-
-    } else if (prop.equals(HTTP_PORT_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_THE_PORT_ON_WHICH_THE_HTTP_ADAPTER_WILL_BE_STARTED.toLocalizedString();
-
-    } else if (prop.equals(RMI_ENABLED_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_AGENT_START_THE_RMI_JMX_ADAPTER.toLocalizedString();
-
-    } else if (prop.equals(RMI_REGISTRY_ENABLED_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_AGENT_HOST_AN_RMI_REGISTRY.toLocalizedString();
-
-    } else if (prop.equals(RMI_BIND_ADDRESS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_BIND_ADDRESS_OF_RMI_ADAPTERS_SOCKETS.toLocalizedString();
-
-    } else if (prop.equals(RMI_PORT_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_THE_PORT_ON_WHICH_TO_CONTACT_THE_RMI_REGISTER.toLocalizedString();
-
-    } else if (prop.equals(RMI_SERVER_PORT_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_THE_PORT_USED_TO_CONFIGURE_RMI_CONNECTOR_SERVER.toLocalizedString();
-
-    } else if (prop.equals(SNMP_ENABLED_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_AGENT_START_THE_SNMP_JMX_ADAPTER.toLocalizedString();
-
-    } else if (prop.equals(SNMP_BIND_ADDRESS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_BIND_ADDRESS_OF_SNMP_ADAPTERS_SOCKETS.toLocalizedString();
-
-    } else if (prop.equals(SNMP_DIRECTORY_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_THE_DIRECTORY_IN_WHICH_SNMP_CONFIGURATION_RESIDES.toLocalizedString();
-
-    } else if (prop.equals(AGENT_SSL_ENABLED_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_AGENT_COMMUNICATE_USING_SSL.toLocalizedString();
-
-    } else if (prop.equals(AGENT_SSL_PROTOCOLS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_THE_SSL_PROTOCOLS_USED_BY_THE_AGENT.toLocalizedString();
-
-    } else if (prop.equals(AGENT_SSL_CIPHERS_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_THE_SSL_CIPHERS_USED_BY_THE_AGENT.toLocalizedString();
-
-    } else if (prop.equals(AGENT_SSL_REQUIRE_AUTHENTICATION_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_AGENT_REQUIRE_SSL_AUTHENTICATION.toLocalizedString();
-
-    } else if (prop.equals(HTTP_SSL_REQUIRE_AUTHENTICATION_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_HTTP_ADAPTER_REQUIRE_SSL_AUTHENTICATION.toLocalizedString();
-
-    } else if (prop.equals(HTTP_AUTHENTICATION_ENABLED_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_WILL_THE_HTTP_JMX_ADAPTER_USE_HTTP_AUTHENTICATION.toLocalizedString();
-
-    } else if (prop.equals(HTTP_AUTHENTICATION_USER_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_THE_USER_NAME_FOR_AUTHENTICATION_IN_THE_HTTP_JMX_ADAPTER.toLocalizedString();
-
-    } else if (prop.equals(HTTP_AUTHENTICATION_PASSWORD_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_THE_PASSWORD_FOR_AUTHENTICATION_IN_THE_HTTP_JMX_ADAPTER.toLocalizedString();
-
-    } else if (prop.equals(PROPERTY_FILE_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_PROPERTY_FILE_FROM_WHICH_AGENT_READS_CONFIGURATION.toLocalizedString();
-
-    } else if (prop.equals(LOCATOR_HOST_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_HOST_ON_WHICH_THE_DISTRIBUTED_SYSTEMS_LOCATOR_RUNS.toLocalizedString();
-
-    } else if (prop.equals(LOCATOR_PORT_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_HOST_ON_WHICH_THE_DISTRIBUTED_SYSTEMS_LOCATOR_RUNS.toLocalizedString();
-
-    } else if (prop.equals(LOCATOR_PRODUCT_DIRECTORY_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_GEMFIRE_PRODUCT_DIRECTORY_USED_TO_LAUNCH_A_LOCATOR.toLocalizedString();
-
-    } else if (prop.equals(LOCATOR_WORKING_DIRECTORY_NAME)) {
-      return LocalizedStrings.AgentConfigImpl_DIRECTORY_IN_WHICH_A_LOCATOR_WILL_BE_LAUNCHED.toLocalizedString();
-
-    } else if (prop.equals(LOCATOR_REMOTE_COMMAND)) {
-      return LocalizedStrings.AgentConfigImpl_COMMAND_PREFIX_USED_WHEN_LAUNCHING_A_LOCATOR.toLocalizedString();
-
-    } else if (prop.equals(LOCATOR_BIND_ADDRESS)) {
-      return LocalizedStrings.AgentConfigImpl_IP_ADDRESS_TO_USE_WHEN_CONTACTING_LOCATOR.toLocalizedString();
-
-    } else if (prop.equals(LOCATOR_DS_PROPERTIES)) {
-      return LocalizedStrings.AgentConfigImpl_PROPERTIES_FOR_CONFIGURING_A_LOCATORS_DISTRIBUTED_SYSTEM.toLocalizedString();
-
-    } else if (prop.equals(EMAIL_NOTIFICATIONS_ENABLED_NAME)) {
-        return LocalizedStrings.AgentConfigImpl_IDENTIFY_IF_EMAIL_NOTIFICATIONS_ARE_ENABLED_OR_NOT.toLocalizedString();
-
-    } else if (prop.equals(EMAIL_NOTIFICATIONS_FROM_NAME)) {
-        return LocalizedStrings.AgentConfigImpl_IDENTIFY_THE_EMAIL_ADDRESS_USING_WHICH_EMAIL_NOTIFICATIONS_ARE_SENT.toLocalizedString();
-
-    } else if (prop.equals(EMAIL_NOTIFICATIONS_HOST_NAME)) {
-        return LocalizedStrings.AgentConfigImpl_IDENTIFY_THE_EMAIL_SERVER_HOST_USING_WHICH_EMAIL_NOTIFICATIONS_ARE_SENT.toLocalizedString();
-
-    } else if (prop.equals(EMAIL_NOTIFICATIONS_TO_LIST_NAME)) {
-        return LocalizedStrings.AgentConfigImpl_IDENTIFY_THE_COMMA_SEPARATED_EMAIL_ADDRESSES_LIST_TO_WHICH_EMAIL_NOTIFICATIONS_ARE_SENT.toLocalizedString();
-
-    } else if (prop.equals(STATE_SAVE_FILE_NAME)) {
-        return LocalizedStrings.AgentConfigImpl_IDENTIFY_THE_NAME_OF_THE_FILE_TO_BE_USED_FOR_SAVING_AGENT_STATE.toLocalizedString();
-
-    } else {
-      return null;
-    }
-  }
-
-  /**
-   * Parses the array of command-line arguments (format: key=value) into an
-   * instance of Properties.
-   *
-   * @param args the command-line arguments to convert into a Properties
-   */
-  private static Properties toProperties(String[] args) {
-    Properties props = new Properties();
-    // loop all args and pick out key=value pairs...
-    for (int i = 0; i < args.length; i++) {
-      // VM args...
-      if (args[i].startsWith("-J")) {
-        int eq = args[i].indexOf("=");
-        String key = args[i].substring(2, eq);
-        String value = args[i].substring(eq+1);
-        System.setProperty(key, value);
-      }
-
-      else if (args[i].indexOf(AGENT_DEBUG) > 0) {
-        int eq = args[i].indexOf("=");
-        String key = args[i].substring(2, eq);
-        String value = args[i].substring(eq+1);
-        System.setProperty(key, value);
-      }
-
-      // all other args
-      else if (args[i].indexOf("=") > 0) {
-        int eq = args[i].indexOf("=");
-        String key = args[i].substring(0, eq);
-        String value = args[i].substring(eq+1);
-        props.setProperty(key, value);
-      }
-    }
-
-    return props;
-  }
-
-  /** Returns the original command-line arguments. */
-  public String[] getOriginalArgs() {
-    return this.originalCmdLineArgs;
-  }
-
-  // -------------------------------------------------------------------------
-  //   Validation methods for configuration options
-  // -------------------------------------------------------------------------
-
-    /**
-   * Makes sure that the mcast port and locators are correct and
-   * consistent.
-   *
-   * @throws IllegalArgumentException
-   *         If configuration is not valid
-   */
-  @Override
-  public void validate() {
-    super.validate();
-
-    if (this.httpPort < 0 || this.httpPort > MAX_HTTP_PORT) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_0_MUST_BE_ZERO_OR_AN_INTEGER_BETWEEN_1_AND_2.toLocalizedString(new Object[] {HTTP_PORT_NAME, Integer.valueOf(MIN_HTTP_PORT), Integer.valueOf(MAX_HTTP_PORT)}));
-    }
-
-    if (this.rmiPort < 0 || this.rmiPort > MAX_RMI_PORT) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_0_MUST_BE_ZERO_OR_AN_INTEGER_BETWEEN_1_AND_2.toLocalizedString(new Object[] {RMI_PORT_NAME, Integer.valueOf(MIN_RMI_PORT), Integer.valueOf(MAX_RMI_PORT)}));
-    }
-
-    if (this.rmiServerPort < 0 || this.rmiServerPort > MAX_RMI_PORT) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_0_MUST_BE_ZERO_OR_AN_INTEGER_BETWEEN_1_AND_2.toLocalizedString(new Object[] {RMI_SERVER_PORT_NAME, Integer.valueOf(MIN_RMI_PORT), Integer.valueOf(MAX_RMI_PORT)}));
-    }
-
-  }
-
-  /** Returns defaultValue if value is empty. */
-  private String validateNonEmptyString(String value,
-                                        String defaultValue) {
-    return isEmpty(value) ? defaultValue : value;
-  }
-
-  /** Validates that systemHost can be used for an InetAddress. */
-  private String validateSystemHost(String systemHost) {
-    return InetAddressUtil.validateHost(systemHost);
-  }
-
-  /** Returns null if productDir is empty; else converts it to File. */
-  private String validateProductDirectory(String productDir) {
-    if (isEmpty(productDir)) {
-      return null;
-    }
-    return productDir;
-  }
-
-  /** Returns true if value parses as true; null value returns defaultValue. */
-  private boolean validateBoolean(String value, boolean defaultValue) {
-    if (isEmpty(value)) return defaultValue;
-    return Boolean.valueOf(value).booleanValue();
-  }
-
-  // HttpAdaptor property validators...
-
-  /**
-   * Returns {@link
-   * com.gemstone.gemfire.admin.jmx.AgentConfig#DEFAULT_HTTP_PORT}
-   * if httpPort is empty; else validates
-   * that it's an integer and returns the int form.
-   */
-  private int validateHttpPort(String val) {
-    if (isEmpty(val)) {
-      return DEFAULT_HTTP_PORT;
-    } else {
-      return validateHttpPort(Integer.parseInt(val));
-    }
-  }
-  /**
-   * Validates that httpPort is either zero or within the {@link
-   * com.gemstone.gemfire.admin.jmx.AgentConfig#MIN_HTTP_PORT} and {@link
-   * com.gemstone.gemfire.admin.jmx.AgentConfig#MAX_HTTP_PORT} values.
-   */
-  private int validateHttpPort(int val) {
-    if (val < 0 || val > MAX_HTTP_PORT) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_0_MUST_BE_ZERO_OR_AN_INTEGER_BETWEEN_1_AND_2.toLocalizedString(new Object[] {HTTP_PORT_NAME, Integer.valueOf(MIN_HTTP_PORT), Integer.valueOf(MAX_HTTP_PORT)}));
-    }
-    return val;
-  }
-
-  /**
-   * Returns {@link
-   * com.gemstone.gemfire.admin.jmx.AgentConfig#DEFAULT_HTTP_BIND_ADDRESS}
-   * unless httpBindAddress can be used to
-   * create a valid InetAddress.
-   */
-  private String validateHttpBindAddress(String val) {
-    String value = InetAddressUtil.validateHost(val);
-    if (value == null) {
-      return DEFAULT_HTTP_BIND_ADDRESS;
-    }
-    else {
-      return value;
-    }
-  }
-
-  /**
-   * Validates that httpBindAddress is not null and then returns the string form of it.
-   */
-  private String validateHttpBindAddress(InetAddress val) {
-    if (val == null) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_HTTPBINDADDRESS_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    return toString("", val);
-  }
-
-  // SnmpAdaptor property validators...
-
-  /**
-   * Returns {@link
-   * com.gemstone.gemfire.admin.jmx.AgentConfig#DEFAULT_SNMP_BIND_ADDRESS}
-   * unless snmpBindAddress can be used to
-   * create a valid InetAddress.
-   */
-  private String validateSnmpBindAddress(String val) {
-    String value = InetAddressUtil.validateHost(val);
-    if (value == null) {
-      return DEFAULT_SNMP_BIND_ADDRESS;
-    }
-    else {
-      return value;
-    }
-  }
-
-//  /**
-//   * Validates that snmpBindAddress is not null and then returns the string form of it.
-//   */
-//  private String validateSnmpBindAddress(InetAddress snmpBindAddress) {
-//    if (snmpBindAddress == null) {
-//      throw new IllegalArgumentException("SnmpBindAddress must not be null");
-//    }
-//    return toString(snmpBindAddress);
-//  }
-
-  /**
-   * SnmpDirectory must be specified if SNMP is enabled.  This directory must
-   * also exist.
-   */
-  private String validateSnmpDirectory(String snmpDir) {
-    /*if (isSnmpEnabled() && isEmpty(snmpDir)) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_SNMPDIRECTORY_MUST_BE_SPECIFIED_BECAUSE_SNMP_IS_ENABLED.toLocalizedString());
-    }
-    File root new File(snmpDir);
-    if (!root.exists())
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_SNMPDIRECTORY_DOES_NOT_EXIST.toLocalizedString());
-    */
-
-    return snmpDir;
-  }
-
-  // RMIConnectorServer property validators...
-
-  /**
-   * Returns {@link com.gemstone.gemfire.admin.jmx.AgentConfig#DEFAULT_RMI_PORT}
-   * if rmiPort is empty; else validates
-   * that it's an integer and returns the int form.
-   */
-  private int validateRmiPort(String val) {
-    if (isEmpty(val)) {
-      return DEFAULT_RMI_PORT;
-    } else {
-      return validateRmiPort(Integer.parseInt(val));
-    }
-  }
-
-  /**
-   * Validates that rmiPort is either zero or within the {@link
-   * com.gemstone.gemfire.admin.jmx.AgentConfig#MIN_RMI_PORT}
-   * and {@link com.gemstone.gemfire.admin.jmx.AgentConfig#MAX_RMI_PORT}
-   * values.
-   */
-  private int validateRmiPort(int val) {
-    if (val < MIN_RMI_PORT || val > MAX_RMI_PORT) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_0_MUST_BE_ZERO_OR_AN_INTEGER_BETWEEN_1_AND_2.toLocalizedString(new Object[] {RMI_PORT_NAME, Integer.valueOf(MIN_RMI_PORT), Integer.valueOf(MAX_RMI_PORT)}));
-    }
-    return val;
-  }
-
-  /**
-   * Returns {@link com.gemstone.gemfire.admin.jmx.AgentConfig#DEFAULT_RMI_SERVER_PORT}
-   * if rmi-server-port is empty; else validates that it's an integer within the
-   * allowed range and returns the int form.
-   */
-  private int validateRmiServerPort(String val) {
-    if (isEmpty(val)) {
-      return DEFAULT_RMI_SERVER_PORT;
-    } else {
-      return validateRmiServerPort(Integer.parseInt(val));
-    }
-  }
-
-  /**
-   * Validates that rmiPort is either zero or within the {@link
-   * com.gemstone.gemfire.admin.jmx.AgentConfig#MIN_RMI_PORT}
-   * and {@link com.gemstone.gemfire.admin.jmx.AgentConfig#MAX_RMI_PORT}
-   * values.
-   */
-  private int validateRmiServerPort(int val) {
-    if (val < MIN_RMI_PORT || val > MAX_RMI_PORT) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_0_MUST_BE_ZERO_OR_AN_INTEGER_BETWEEN_1_AND_2.toLocalizedString(new Object[] {RMI_SERVER_PORT_NAME, Integer.valueOf(MIN_RMI_PORT), Integer.valueOf(MAX_RMI_PORT)}));
-    }
-    return val;
-  }
-
-  /**
-   * Returns {@link
-   * com.gemstone.gemfire.admin.jmx.AgentConfig#DEFAULT_RMI_BIND_ADDRESS}
-   * unless rmiBindAddress can be used to create a
-   * valid InetAddress.
-   */
-  private String validateRmiBindAddress(String val) {
-    String value = InetAddressUtil.validateHost(val);
-    if (value == null) {
-      return DEFAULT_RMI_BIND_ADDRESS;
-    }
-    else {
-      return value;
-    }
-  }
-//  /**
-//   * Validates that rmiBindAddress is not null and then returns the string form of it.
-//   */
-//  private String validateRmiBindAddress(InetAddress rmiBindAddress) {
-//    if (rmiBindAddress == null) {
-//      throw new IllegalArgumentException("RmiBindAddress must not be null");
-//    }
-//    return toString(rmiBindAddress);
-//  }
-
-  /** Validates working directory is not null or empty. */
-  private File validateWorkingDirectory(String workingDir) {
-    if (isEmpty(workingDir)) {
-      throw new IllegalArgumentException(LocalizedStrings.AgentConfigImpl_LOCATOR_WORKINGDIRECTORY_MUST_NOT_BE_NULL.toLocalizedString());
-    }
-    return new File(workingDir);
-  }
-
-  // -------------------------------------------------------------------------
-  //   Static utility methods
-  // -------------------------------------------------------------------------
-
-  /**
-   * Gets an <code>URL</code> for the property file, if one can be found,
-   * that the create method would use to determine the systemName and
-   * product home.
-   * <p>
-   * The file will be searched for, in order, in the following locations:
-   * <ol>
-   * <li> the current directory
-   * <li> the home directory
-   * <li> the class path
-   * </ol>
-   * Only the first file found will be used.
-   *
-   * @return a <code>URL</code> that names the property file;
-   *         otherwise Null if no property file was found.
-   */
-  public static URL getPropertyFileURL(final String propFileLocation) {
-    File propFile = new File(propFileLocation);
-
-    // first, try the current directory...
-    if (propFile.exists()) {
-      propFile = IOUtils.tryGetCanonicalFileElseGetAbsoluteFile(propFile);
-
-      try {
-        return propFile.toURI().toURL();
-      }
-      catch (java.net.MalformedURLException ignore) {
-      }
-    }
-
-    // next, try the user's home directory...
-    if (propFileLocation != null && propFileLocation.length() > 0) {
-      propFile = new File(System.getProperty("user.home"), propFileLocation);
-
-      if (propFile.exists()) {
-        propFile = IOUtils.tryGetCanonicalFileElseGetAbsoluteFile(propFile);
-
-        try {
-          return propFile.toURI().toURL();
-        }
-        catch (java.net.MalformedURLException ignore) {
-        }
-      }
-    }
-
-    // finally, try the classpath...
-    return ClassPathLoader.getLatest().getResource(AgentConfigImpl.class, propFileLocation);
-  }
-
-  private static boolean okToDisplayPropertyValue(String attName) {
-    if (attName.startsWith(HTTP_AUTHENTICATION_USER_NAME)) {
-      return false;
-    }
-    if (attName.startsWith(HTTP_AUTHENTICATION_PASSWORD_NAME)) {
-      return false;
-    }
-    if (attName.startsWith(AGENT_SSL_PROTOCOLS_NAME)) {
-      return false;
-    }
-    if (attName.startsWith(AGENT_SSL_CIPHERS_NAME)) {
-      return false;
-    }
-    if (attName.toLowerCase().contains("javax.net.ssl")) {
-      return false;
-    }
-    if (attName.toLowerCase().contains("password")) {
-      return false;
-    }
-    return true;
-  }
-  
-  /**
-   * Returns string representation of the specified object with special
-   * handling for InetAddress.
-   *
-   * @param obj   the object to convert to string
-   * @return string representation of the specified object
-   */
-  private static String toString(String attName, java.lang.Object obj) {
-    if (okToDisplayPropertyValue(attName)) {
-      if (obj == null) return "";
-      if (obj instanceof InetAddress) {
-        return InetAddressUtil.toString(obj);
-      }
-      return obj.toString();
-    } else {
-      return OBFUSCATED_STRING;
-    }
-  }
-
-  /** Returns string representation of the int. */
-  private static String toString(String attName, int num) {
-    if (okToDisplayPropertyValue(attName)) {
-      return String.valueOf(num);
-    } else {
-      return OBFUSCATED_STRING;
-    }
-  }
-
-  /** Returns string representation of the boolean value. */
-  private static String toString(String attName, boolean v) {
-    if (okToDisplayPropertyValue(attName)) {
-      return String.valueOf(v);
-    } else {
-      return OBFUSCATED_STRING;
-    }
-  }
-
-  /** Returns true if the string is null or empty. */
-  public static boolean isEmpty(String string) {
-    return string == null || string.length() == 0;
-  }
-
-  // -------------------------------------------------------------------------
-  //   SSL support...
-  // -------------------------------------------------------------------------
-  private boolean sslEnabled = DEFAULT_SSL_ENABLED;
-  private String sslProtocols = DEFAULT_SSL_PROTOCOLS;
-  private String sslCiphers = DEFAULT_SSL_CIPHERS;
-  private boolean sslAuthenticationRequired = DEFAULT_SSL_REQUIRE_AUTHENTICATION;
-  private Properties sslProperties = new Properties();
-
-  @Override
-  public boolean isSSLEnabled() {
-    return this.sslEnabled;
-  }
-  @Override
-  public void setSSLEnabled(boolean enabled) {
-    this.sslEnabled = enabled;
-    configChanged();
-  }
-  @Override
-  public String getSSLProtocols() {
-    return this.sslProtocols;
-  }
-  @Override
-  public void setSSLProtocols(String protocols) {
-    this.sslProtocols = protocols;
-    configChanged();
-  }
-  @Override
-  public String getSSLCiphers() {
-    return this.sslCiphers;
-  }
-  @Override
-  public void setSSLCiphers(String ciphers) {
-    this.sslCiphers = ciphers;
-    configChanged();
-  }
-  @Override
-  public boolean isSSLAuthenticationRequired() {
-    return this.sslAuthenticationRequired;
-  }
-  @Override
-  public void setSSLAuthenticationRequired(boolean authRequired) {
-    this.sslAuthenticationRequired = authRequired;
-    configChanged();
-  }
-  @Override
-  public Properties getSSLProperties() {
-    return this.sslProperties;
-  }
-  @Override
-  public void setSSLProperties(Properties sslProperties) {
-    this.sslProperties = sslProperties;
-    if (this.sslProperties == null) {
-      this.sslProperties = new Properties();
-    }
-    configChanged();
-  }
-
-  public String getStateSaveFile() {
-	  return this.stateSaveFile;
-  }
-
-  public void setStateSaveFile(String file) {
-	  checkReadOnly();
-	  this.stateSaveFile = file;
-	  configChanged();
-  }
-
-  public boolean isEmailNotificationEnabled() {
-	  return this.isEmailNotificationEnabled;
-  }
-
-  public void setEmailNotificationEnabled(boolean enabled) {
-	  checkReadOnly();
-	  this.isEmailNotificationEnabled = enabled;
-	  configChanged();
-  }
-
-  public String getEmailNotificationFrom() {
-	  return this.emailNotificationFrom;
-  }
-
-  public void setEmailNotificationFrom(String emailID) {
-	  this.emailNotificationFrom = emailID;
-	  configChanged();
-  }
-
-  public String getEmailNotificationHost() {
-	  return this.emailNotificationHostName;
-  }
-
-  public void setEmailNotificationHost(String hostName) {
-	  this.emailNotificationHostName = hostName;
-	  configChanged();
-  }
-
-  public String getEmailNotificationToList() {
-	  return this.emailNotificationToList;
-  }
-
-  public void setEmailNotificationToList(String emailIDs) {
-	  this.emailNotificationToList = emailIDs;
-	  configChanged();
-  }
-
-  @Override
-  public Object clone() throws CloneNotSupportedException {
-    return super.clone();
-  }
-}
-


[20/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RegionSubRegionSnapshot.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RegionSubRegionSnapshot.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RegionSubRegionSnapshot.java
deleted file mode 100644
index 3a6fef8..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RegionSubRegionSnapshot.java
+++ /dev/null
@@ -1,193 +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.admin;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.i18n.LogWriterI18n;
-import com.gemstone.gemfire.internal.cache.PartitionedRegion;
-
-/**
- * Class <code>RegionSubRegionSnapshot</code> provides information about
- * <code>Region</code>s. This also provides the information about sub regions
- * This class is used by the monitoring tool.
- * 
- * @author Harsh Khanna
- * 
- * @since 5.7
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class RegionSubRegionSnapshot implements DataSerializable {
-  private static final long serialVersionUID = -8052137675270041871L;
-  public RegionSubRegionSnapshot() {
-    this.parent = null;
-    this.subRegionSnapshots = new HashSet();
-  }
-
-  public RegionSubRegionSnapshot(Region reg) {
-    this();
-    this.name = reg.getName();
-    if (reg instanceof PartitionedRegion) {
-      PartitionedRegion p_reg = (PartitionedRegion)reg;
-      this.entryCount = p_reg.entryCount(true);
-    }
-    else {
-      this.entryCount = reg.entrySet().size();
-    }
-    final LogWriterI18n logger = reg.getCache().getLoggerI18n();
-    if((logger != null) && logger.fineEnabled()) {
-      logger.fine(
-        "RegionSubRegionSnapshot Region entry count =" + this.entryCount
-        + " for region =" + this.name);
-    }
-  }
-
-  /**
-   * add the snapshot of sub region
-   * 
-   * @param snap
-   *                snapshot of sub region
-   * @return true if operation is successful
-   */
-  public boolean addSubRegion(RegionSubRegionSnapshot snap) {
-    if (subRegionSnapshots.contains(snap)) {
-      return true;
-    }
-
-    if (subRegionSnapshots.add(snap)) {
-      snap.setParent(this);
-      return true;
-    }
-
-    return false;
-  }
-
-  /**
-   * @return get entry count of region
-   */
-  public final int getEntryCount() {
-    return entryCount;
-  }
-
-  /**
-   * @param entryCount
-   *                entry count of region
-   */
-  public final void setEntryCount(int entryCount) {
-    this.entryCount = entryCount;
-  }
-
-  /**
-   * @return name of region
-   */
-  public final String getName() {
-    return name;
-  }
-
-  /**
-   * @param name
-   *                name of region
-   */
-  public final void setName(String name) {
-    this.name = name;
-  }
-
-  /**
-   * @return subRegionSnapshots of all the sub regions
-   */
-  public final Set getSubRegionSnapshots() {
-    return subRegionSnapshots;
-  }
-
-  /**
-   * @param subRegionSnapshots
-   *                subRegionSnapshots of all the sub regions
-   */
-  public final void setSubRegionSnapshots(Set subRegionSnapshots) {
-    this.subRegionSnapshots = subRegionSnapshots;
-  }
-
-  /**
-   * @return snapshot of parent region
-   */
-  public final RegionSubRegionSnapshot getParent() {
-    return parent;
-  }
-
-  /**
-   * @param parent
-   *                snapshot of parent region
-   */
-  public final void setParent(RegionSubRegionSnapshot parent) {
-    this.parent = parent;
-  }
-
-  /**
-   * 
-   * @return full path of region
-   */
-  public String getFullPath() {
-    return (getParent() == null ? "/" : getParent().getFullPath()) + getName()
-        + "/";
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    DataSerializer.writeString(this.name, out);
-    out.writeInt(this.entryCount);
-    DataSerializer.writeHashSet((HashSet)this.subRegionSnapshots, out);
-  }
-
-  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
-    this.name = DataSerializer.readString(in);
-    this.entryCount = in.readInt();
-    this.subRegionSnapshots = DataSerializer.readHashSet(in);
-    for (Iterator iter = this.subRegionSnapshots.iterator(); iter.hasNext();) {
-      ((RegionSubRegionSnapshot)iter.next()).setParent(this);
-    }
-  }
-
-  @Override
-  public String toString() {
-    String toStr = "RegionSnapshot [" + "path=" + this.getFullPath()
-        + ",parent=" + (this.parent == null ? "null" : this.parent.name)
-        + ", entryCount=" + this.entryCount + ", subRegionCount="
-        + this.subRegionSnapshots.size() + "<<";
-
-    for (Iterator iter = subRegionSnapshots.iterator(); iter.hasNext();) {
-      toStr = toStr + ((RegionSubRegionSnapshot)iter.next()).getName() + ", ";
-    }
-
-    toStr = toStr + ">>" + "]";
-    return toStr;
-  }
-
-  protected String name;
-
-  protected int entryCount;
-
-  protected RegionSubRegionSnapshot parent;
-
-  protected Set subRegionSnapshots;
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RuntimeAdminException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RuntimeAdminException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RuntimeAdminException.java
deleted file mode 100755
index 8c27c76..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RuntimeAdminException.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.admin;
-
-/**
- * A <code>RuntimeAdminException</code> is thrown when a runtime errors occurs
- * during administration or monitoring of GemFire. 
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class RuntimeAdminException 
-extends com.gemstone.gemfire.GemFireException {
-
-  private static final long serialVersionUID = -7512771113818634005L;
-
-  public RuntimeAdminException() {
-    super();
-  }
-
-  public RuntimeAdminException(String message) {
-    super(message);
-  }
-
-  public RuntimeAdminException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-  public RuntimeAdminException(Throwable cause) {
-    super(cause);
-  }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/Statistic.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/Statistic.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/Statistic.java
deleted file mode 100755
index 7d0afd8..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/Statistic.java
+++ /dev/null
@@ -1,66 +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.admin;
-
-/**
- * Interface to represent a single statistic of a <code>StatisticResource</code>
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface Statistic extends java.io.Serializable {
-    
-  /**
-   * Gets the identifying name of this statistic.
-   *
-   * @return the identifying name of this statistic 
-   */
-  public String getName();
-    
-  /**
-   * Gets the value of this statistic as a <code>java.lang.Number</code>.
-   *
-   * @return the value of this statistic
-   */
-  public Number getValue();
-  
-  /**
-   * Gets the unit of measurement (if any) this statistic represents.
-   *
-   * @return the unit of measurement (if any) this statistic represents
-   */
-  public String getUnits();
-  
-  /**
-   * Returns true if this statistic represents a numeric value which always 
-   * increases.
-   *
-   * @return true if this statistic represents a value which always increases
-   */
-  public boolean isCounter();
-  
-  /**
-   * Gets the full description of this statistic.
-   *
-   * @return the full description of this statistic
-   */
-  public String getDescription();
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/StatisticResource.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/StatisticResource.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/StatisticResource.java
deleted file mode 100755
index 046b91b..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/StatisticResource.java
+++ /dev/null
@@ -1,86 +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.admin;
-
-/**
- * Adminitrative interface for monitoring a statistic resource in a GemFire
- * system member.  A resource is comprised of one or many 
- * <code>Statistics</code>.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface StatisticResource {
-  
-  /**
-   * Gets the identifying name of this resource.
-   *
-   * @return the identifying name of this resource
-   */
-  public String getName();
-
-  /**
-   * Gets the full description of this resource.
-   *
-   * @return the full description of this resource
-   */
-  public String getDescription();
-  
-  /**
-   * Gets the classification type of this resource.
-   *
-   * @return the classification type of this resource
-   * @since 5.0
-   */
-  public String getType();
-  
-  /**
-   * Returns a display string of the {@link SystemMember} owning this 
-   * resource.
-   *
-   * @return a display string of the owning {@link SystemMember}
-   */
-  public String getOwner();
-  
-  /**
-   * Returns an ID that uniquely identifies the resource within the
-   * {@link SystemMember} it belongs to.
-   *
-   * @return unique id within the owning {@link SystemMember}
-   */
-  public long getUniqueId();
-  
-  /**
-   * Returns a read-only array of every {@link Statistic} in this resource.
-   *
-   * @return read-only array of every {@link Statistic} in this resource
-   */
-  public Statistic[] getStatistics();
-  
-  /**
-   * Refreshes the values of every {@link Statistic} in this resource by
-   * retrieving them from the member's VM.
-   *
-   * @throws com.gemstone.gemfire.admin.AdminException 
-   *         if unable to refresh statistic values
-   */
-  public void refresh() throws com.gemstone.gemfire.admin.AdminException;
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMember.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMember.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMember.java
deleted file mode 100755
index 8857448..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMember.java
+++ /dev/null
@@ -1,148 +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.admin;
-
-import com.gemstone.gemfire.distributed.DistributedMember;
-
-import java.net.InetAddress;
-
-/**
- * Administrative interface for monitoring a GemFire system member.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMember {
-  
-  /** Gets the {@link AdminDistributedSystem} this member belongs to. */
-  public AdminDistributedSystem getDistributedSystem();
-  
-  /** 
-   * Gets identifying name of this member.
-   * For applications this is the string form of {@link #getDistributedMember}.
-   * For cache servers it is a unique cache server string.
-   */
-  public String getId();
-  
-  /** 
-   * Retrieves display friendly name for this member.  If this member defined 
-   * an optional name for its connection to the distributed system, that name 
-   * will be returned.  Otherwise the returned value will be {@link
-   * com.gemstone.gemfire.admin.SystemMember#getId}.
-   *
-   * @see com.gemstone.gemfire.distributed.DistributedSystem#connect
-   * @see com.gemstone.gemfire.distributed.DistributedSystem#getName
-   */
-  public String getName();
-  
-  /** Gets the type of {@link SystemMemberType} this member is. */
-  public SystemMemberType getType();
-  
-  /** Gets host name of the machine this member resides on. */
-  public String getHost();
-
-  /** Gets the host of this member as an <code>java.net.InetAddress<code>. */
-  public InetAddress getHostAddress();
-  
-  /** Retrieves the log for this member. */
-  public String getLog();
-
-  /**
-   * Returns the GemFire license this member is using.
-   *
-   * @deprecated Removed licensing in 8.0.
-   */
-   @Deprecated
-   public java.util.Properties getLicense();
-
-  /** Returns this member's GemFire version information. */
-  public String getVersion();
-  
-  /** 
-   * Gets the configuration parameters for this member.
-   */
-  public ConfigurationParameter[] getConfiguration();
-  
-  /**
-   * Sets the configuration of this member.  The argument is an array of any
-   * and all configuration parameters that are to be updated in the member.
-   * <p>
-   * The entire array of configuration parameters is then returned.
-   *
-   * @param parms subset of the configuration parameters to be changed
-   * @return all configuration parameters including those that were changed
-   * @throws com.gemstone.gemfire.admin.AdminException
-   *         if this fails to make the configuration changes
-   */
-  public ConfigurationParameter[] setConfiguration(ConfigurationParameter[] parms) throws com.gemstone.gemfire.admin.AdminException;
-  
-  /** Refreshes this member's configuration from the member or it's properties */
-  public void refreshConfig() throws com.gemstone.gemfire.admin.AdminException;
-  
-  /** 
-   * Retrieves this members statistic resources. If the member is not running 
-   * then an empty array is returned. 
-   *
-   *@param statisticsTypeName String ame of the Statistics Type
-   * @return array of runtime statistic resources owned by this member
-   * @since 5.7
-   */
-  public StatisticResource[] getStat(String statisticsTypeName) throws com.gemstone.gemfire.admin.AdminException;
-  
-  /** 
-   * Retrieves this members statistic resources. If the member is not running 
-   * then an empty array is returned. All Stats are returned
-   *
-   * @return array of runtime statistic resources owned by this member
-   */
-  public StatisticResource[] getStats() throws com.gemstone.gemfire.admin.AdminException;
-  
-  /**
-   * Returns whether or not this system member hosts a GemFire {@link
-   * com.gemstone.gemfire.cache.Cache Cache}.
-   *
-   * @see #getCache
-   */
-  public boolean hasCache()
-    throws com.gemstone.gemfire.admin.AdminException;
-
-  /**
-   * Returns an object that provides admin access to this member's cache.
-   * If the member currently has no cache then <code>null</code> is returned.
-   */
-  public SystemMemberCache getCache() throws com.gemstone.gemfire.admin.AdminException;
-  
-  /**
-   * Returns the names of the membership roles filled by this member.
-   *
-   * @return array of string membership role names
-   * @since 5.0
-   */
-  public String[] getRoles();
-  
-  /**
-   * Returns the {@link com.gemstone.gemfire.distributed.DistributedMember}
-   * that represents this system member.
-   *
-   * @return DistributedMember instance representing this system member
-   * @since 5.0
-   */
-  public DistributedMember getDistributedMember();
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberBridgeServer.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberBridgeServer.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberBridgeServer.java
deleted file mode 100644
index bedc779..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberBridgeServer.java
+++ /dev/null
@@ -1,309 +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.admin;
-
-import com.gemstone.gemfire.cache.server.ServerLoadProbe;
-
-/**
- * Administrative interface that represents a CacheServer that
- * serves the contents of a system member's cache. 
- *
- * @see SystemMemberCache#addCacheServer
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 5.7 use {@link SystemMemberCacheServer} instead.
- */
-@Deprecated
-public interface SystemMemberBridgeServer {
-
-  /** 
-   * Returns the port on which this bridge server listens for bridge
-   * clients to connect.
-   */
-  public int getPort();
-
-  /**
-   * Sets the port on which this bridge server listens for bridge
-   * clients to connect.
-   *
-   * @throws AdminException
-   *         If this bridge server is running
-   */
-  public void setPort(int port) throws AdminException;
-
-  /**
-   * Starts this bridge server.  Once the server is running, its
-   * configuration cannot be changed.
-   *
-   * @throws AdminException
-   *         If an error occurs while starting the bridge server
-   */
-  public void start() throws AdminException;
-
-  /** 
-   * Returns whether or not this bridge server is running
-   */
-  public boolean isRunning();
-
-  /**
-   * Stops this bridge server.  Note that the
-   * <code>BridgeServer</code> can be reconfigured and restarted if
-   * desired.
-   */
-  public void stop() throws AdminException;
-
-  /**
-   * Updates the information about this bridge server.
-   */
-  public void refresh();
-
-  /**
-   * Returns a string representing the ip address or host name that this server
-   * will listen on.
-   * @return the ip address or host name that this server is to listen on
-   * @since 5.7
-   */
-  public String getBindAddress();
-  /**
-   * Sets the ip address or host name that this server is to listen on for
-   * client connections.
-   * <p>Setting a specific bind address will cause the bridge server to always
-   * use this address and ignore any address specified by "server-bind-address"
-   * or "bind-address" in the <code>gemfire.properties</code> file
-   * (see {@link com.gemstone.gemfire.distributed.DistributedSystem}
-   * for a description of these properties).
-   * <p> A <code>null</code> value will be treated the same as the default "".
-   * <p> The default value does not override the gemfire.properties. If you wish to
-   * override the properties and want to have your server bind to all local
-   * addresses then use this string <code>"0.0.0.0"</code>.
-   * @param address the ip address or host name that this server is to listen on
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setBindAddress(String address) throws AdminException;
-  /**
-   * Returns a string representing the ip address or host name that server locators
-   * will tell clients that this server is listening on.
-   * @return the ip address or host name to give to clients so they can connect
-   *         to this server
-   * @since 5.7
-   */
-  public String getHostnameForClients();
-  /**
-   * Sets the ip address or host name that this server is to listen on for
-   * client connections.
-   * <p>Setting a specific hostname-for-clients will cause server locators
-   * to use this value when telling clients how to connect to this server.
-   * <p> The default value causes the bind-address to be given to clients
-   * <p> A <code>null</code> value will be treated the same as the default "".
-   * @param name the ip address or host name that will be given to clients
-   *   so they can connect to this server
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setHostnameForClients(String name) throws AdminException;
-  /**
-   * Sets whether or not this bridge server should notify clients based on
-   * key subscription.
-   *
-   * If false, then an update to any key on the server causes an update to
-   * be sent to all clients. This update does not push the actual data to the
-   * clients. Instead, it causes the client to locally invalidate or destroy
-   * the corresponding entry. The next time the client requests the key, it
-   * goes to the bridge server for the value.
-   *
-   * If true, then an update to any key on the server causes an update to be
-   * sent to only those clients who have registered interest in that key. Other
-   * clients are not notified of the change. In addition, the actual value is
-   * pushed to the client. The client does not need to request the new value
-   * from the bridge server.
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setNotifyBySubscription(boolean b) throws AdminException;
-
-  /**
-   * Answers whether or not this bridge server should notify clients based on
-   * key subscription.
-   * @since 5.7
-   */
-  public boolean getNotifyBySubscription();
-
-  /**
-   * Sets the buffer size in bytes of the socket connection for this
-   * <code>BridgeServer</code>. The default is 32768 bytes.
-   *
-   * @param socketBufferSize The size in bytes of the socket buffer
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setSocketBufferSize(int socketBufferSize) throws AdminException;
-
-  /**
-   * Returns the configured buffer size of the socket connection for this
-   * <code>BridgeServer</code>. The default is 32768 bytes.
-   * @return the configured buffer size of the socket connection for this
-   * <code>BridgeServer</code>
-   * @since 5.7
-   */
-  public int getSocketBufferSize();
-
-  /**
-   * Sets the maximum amount of time between client pings. This value is
-   * used by the <code>ClientHealthMonitor</code> to determine the health
-   * of this <code>BridgeServer</code>'s clients. The default is 60000 ms.
-   *
-   * @param maximumTimeBetweenPings The maximum amount of time between client
-   * pings
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setMaximumTimeBetweenPings(int maximumTimeBetweenPings) throws AdminException;
-
-  /**
-   * Returns the maximum amount of time between client pings. This value is
-   * used by the <code>ClientHealthMonitor</code> to determine the health
-   * of this <code>BridgeServer</code>'s clients. The default is 60000 ms.
-   * @return the maximum amount of time between client pings.
-   * @since 5.7
-   */
-  public int getMaximumTimeBetweenPings();
-
-  /** 
-   *  Returns the maximum allowed client connections
-   * @since 5.7
-   */
-  public int getMaxConnections();
-
-  /**
-   * Sets the maxium number of client connections allowed.
-   * When the maximum is reached the server will stop accepting
-   * connections.
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setMaxConnections(int maxCons) throws AdminException;
-
-  /** 
-   * Returns the maxium number of threads allowed in this server to service
-   * client requests.
-   * The default of <code>0</code> causes the server to dedicate a thread for
-   * every client connection.
-   * @since 5.7
-   */
-  public int getMaxThreads();
-
-  /**
-   * Sets the maxium number of threads allowed in this server to service
-   * client requests.
-   * The default of <code>0</code> causes the server to dedicate a thread for
-   * every client connection.
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setMaxThreads(int maxThreads) throws AdminException;
-
-  /**
-   * Returns the maximum number of messages that can be enqueued in a
-   * client-queue.
-   * @since 5.7
-   */
-  public int getMaximumMessageCount();
-
-  /**
-   * Sets maximum number of messages that can be enqueued in a client-queue.
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setMaximumMessageCount(int maxMessageCount) throws AdminException;
-  
-  /**
-   * Returns the time (in seconds ) after which a message in the client queue
-   * will expire.
-   * @since 5.7
-   */
-  public int getMessageTimeToLive();
-
-  /**
-   * Sets the time (in seconds ) after which a message in the client queue
-   * will expire.
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setMessageTimeToLive(int messageTimeToLive) throws AdminException;
-  /**
-   * Sets the list of server groups this bridge server will belong to.
-   * By default bridge servers belong to the default global server group
-   * which all bridge servers always belong to.
-   * @param groups possibly empty array of <code>String</code> where each string
-   * is a server groups that this bridge server will be a member of.
-   * @throws AdminException if this bridge server is running
-   * @since 5.7
-   */
-  public void setGroups(String[] groups) throws AdminException;
-  /**
-   * Returns the list of server groups that this bridge server belongs to.
-   * @return a possibly empty array of <code>String</code>s where
-   * each string is a server group. Modifying this array will not change the
-   * server groups that this bridge server belongs to.
-   * @since 5.7
-   */
-  public String[] getGroups();
-  
-  /**
-   * Get a description of the load probe for this bridge server.
-   * {@link ServerLoadProbe} for details on the load probe.
-   * @return the load probe used by this bridge
-   * server.
-   * @since 5.7
-   */
-  public String getLoadProbe();
-
-  /**
-   * Set the load probe for this bridge server. See
-   * {@link ServerLoadProbe} for details on how to implement
-   * a load probe.
-   * 
-   * The load probe should implement DataSerializable if 
-   * it is used with this interface, because it will be sent to the remote
-   * VM.
-   * @param loadProbe the load probe to use for
-   * this bridge server.
-   * @throws AdminException  if the bridge server is running
-   * @since 5.7
-   */
-  public void setLoadProbe(ServerLoadProbe loadProbe) throws AdminException;
-
-  /**
-   * Get the frequency in milliseconds to poll the load probe on this bridge
-   * server.
-   * 
-   * @return the frequency in milliseconds that we will poll the load probe.
-   */
-  public long getLoadPollInterval();
-
-  /**
-   * Set the frequency in milliseconds to poll the load probe on this bridge
-   * server
-   * @param loadPollInterval the frequency in milliseconds to poll
-   * the load probe. Must be greater than 0.
-   * @throws AdminException if the bridge server is running
-   */
-  public void setLoadPollInterval(long loadPollInterval) throws AdminException;
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCache.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCache.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCache.java
deleted file mode 100644
index 65a11e0..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCache.java
+++ /dev/null
@@ -1,205 +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.admin;
-
-import com.gemstone.gemfire.cache.RegionAttributes;
-
-/**
- * Administrative interface that represent's the {@link SystemMember}'s view
- * of its {@link com.gemstone.gemfire.cache.Cache}.
- *
- * @author    Darrel Schneider
- * @since     3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMemberCache {
-  // attributes
-  /**
-   * The name of the cache.
-   */
-  public String getName();
-  /**
-   * Value that uniquely identifies an instance of a cache for a given member.
-   */
-  public int getId();
-  /**
-   * Indicates if this cache has been closed.
-   * @return true, if this cache is closed; false, otherwise
-   */
-  public boolean isClosed();
-  /**
-   * Gets the number of seconds a cache operation will wait to obtain
-   * a distributed lock lease.
-   */
-  public int getLockTimeout();
-  /**
-   * Sets the number of seconds a cache operation may wait to obtain a
-   * distributed lock lease before timing out.
-   *
-   * @throws AdminException
-   *         If a problem is encountered while setting the lock
-   *         timeout 
-   *
-   * @see com.gemstone.gemfire.cache.Cache#setLockTimeout
-   */
-  public void setLockTimeout(int seconds) throws AdminException;
-  
-  /**
-   * Gets the length, in seconds, of distributed lock leases obtained
-   * by this cache.
-   */
-  public int getLockLease();
-  /**
-   * Sets the length, in seconds, of distributed lock leases obtained
-   * by this cache.
-   *
-   * @throws AdminException
-   *         If a problem is encountered while setting the lock
-   *         lease
-   *
-   * @see com.gemstone.gemfire.cache.Cache#setLockLease
-   */
-  public void setLockLease(int seconds) throws AdminException;
-  
-  /**
-   * Gets the number of seconds a cache
-   * {@link com.gemstone.gemfire.cache.Region#get(Object) get} operation
-   * can spend searching for a value before it times out.
-   * The search includes any time spent loading the object.
-   * When the search times out it causes the get to fail by throwing
-   * an exception.
-   */
-  public int getSearchTimeout();
-  /**
-   * Sets the number of seconds a cache get operation can spend searching
-   * for a value.
-   *
-   * @throws AdminException
-   *         If a problem is encountered while setting the search
-   *         timeout 
-   *
-   * @see com.gemstone.gemfire.cache.Cache#setSearchTimeout
-   */
-  public void setSearchTimeout(int seconds) throws AdminException;
-  /**
-   * Returns number of seconds since this member's cache has been created.
-   * Returns <code>-1</code> if this member does not have a cache or its cache
-   * has been closed.
-   */
-  public int getUpTime();
-
-  /**
-   * Returns the names of all the root regions currently in this cache.
-   */
-  public java.util.Set getRootRegionNames();
-
-  // operations
-
-  /**
-   * Returns statistics related to this cache's performance.
-   */
-  public Statistic[] getStatistics();
-
-  /**
-   * Return the existing region (or subregion) with the specified
-   * path that already exists in the cache.
-   * Whether or not the path starts with a forward slash it is interpreted as a
-   * full path starting at a root.
-   *
-   * @param path the path to the region
-   * @return the Region or null if not found
-   * @throws IllegalArgumentException if path is null, the empty string, or "/"
-   */
-  public SystemMemberRegion getRegion(String path) throws AdminException;
-
-  /**
-   * Creates a VM root <code>Region</code> in this cache.
-   *
-   * @param name
-   *        The name of the region to create
-   * @param attrs
-   *        The attributes of the root region
-   *
-   * @throws AdminException
-   *         If the region cannot be created
-   *
-   * @since 4.0
-   * @deprecated as of GemFire 5.0, use {@link #createRegion} instead
-   */
-  @Deprecated
-  public SystemMemberRegion createVMRegion(String name,
-                                           RegionAttributes attrs)
-    throws AdminException;
-
-  /**
-   * Creates a root <code>Region</code> in this cache.
-   *
-   * @param name
-   *        The name of the region to create
-   * @param attrs
-   *        The attributes of the root region
-   *
-   * @throws AdminException
-   *         If the region cannot be created
-   *
-   * @since 5.0
-   */
-  public SystemMemberRegion createRegion(String name,
-                                         RegionAttributes attrs)
-    throws AdminException;
-
-  /**
-   * Updates the state of this cache instance. Note that once a cache
-   * instance is closed refresh will never change the state of that instance.
-   */
-  public void refresh();
-
-  /**
-   * Adds a new, unstarted cache server that will serve the contents
-   * of this cache to clients.
-   *
-   * @see com.gemstone.gemfire.cache.Cache#addCacheServer
-   *
-   * @since 5.7
-   */
-  public SystemMemberCacheServer addCacheServer()
-    throws AdminException;
-
-  /**
-   * Returns the cache servers that run in this member's VM.  Note
-   * that this list will not be updated until {@link #refresh} is
-   * called.
-   *
-   * @see com.gemstone.gemfire.cache.Cache#getCacheServers
-   *
-   * @since 5.7
-   */
-  public SystemMemberCacheServer[] getCacheServers()
-    throws AdminException;
-
-  /**
-   * Returns whether or not this cache acts as a server.  This method
-   * will always return <code>true</code> for the
-   * <code>SystemMemberCache</code> obtained from a {@link
-   * CacheServer}.  Note that this value will not be updated until
-   * {@link #refresh} is invoked.
-   *
-   * @since 4.0
-   */
-  public boolean isServer() throws AdminException;
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheEvent.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheEvent.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheEvent.java
deleted file mode 100644
index a67266f..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheEvent.java
+++ /dev/null
@@ -1,34 +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.admin;
-
-import com.gemstone.gemfire.cache.Operation;
-/**
- * An event that describes an operation on a cache.
- * Instances of this are delivered to a {@link SystemMemberCacheListener} when a
- * a cache is created or closed.
- *
- * @author Darrel Schneider
- * @since 5.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMemberCacheEvent extends SystemMembershipEvent {
-  /**
-   * Returns the actual operation that caused this event.
-   */
-  public Operation getOperation();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheListener.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheListener.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheListener.java
deleted file mode 100644
index 026c621..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheListener.java
+++ /dev/null
@@ -1,73 +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.admin;
-
-import com.gemstone.gemfire.cache.*;
-
-/**
- * A listener whose callback methods can be used to track the lifecycle of
- * {@link Cache caches} and {@link Region regions} in the GemFire distributed system.
- *
- * @see AdminDistributedSystem#addCacheListener
- * @see AdminDistributedSystem#removeCacheListener
- *
- * @author Darrel Schneider
- * @since 5.0 
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMemberCacheListener {
-
-  /**
-   * Invoked after a region is created in any node of distributed system.
-   * @param event describes the region that was created.
-   * @see CacheFactory#create
-   * @see Cache#createRegion
-   * @see Region#createSubregion
-   */
-  public void afterRegionCreate(SystemMemberRegionEvent event);
-
-  /**
-   * Invoked when a region is destroyed or closed in any node of distributed system.
-   * @param event describes the region that was lost. The operation on this event
-   * can be used to determine the actual operation that caused the loss. Note that
-   * {@link Cache#close()} invokes this callback with <code>Operation.CACHE_CLOSE</code>
-   * for each region in the closed cache and it invokes {@link #afterCacheClose}.
-   
-   * @see Cache#close()
-   * @see Region#close
-   * @see Region#localDestroyRegion()
-   * @see Region#destroyRegion()
-   */
-  public void afterRegionLoss(SystemMemberRegionEvent event);
-
-  /**
-   * Invoked after a cache is created in any node of a distributed system.
-   * Note that this callback will be done before any regions are created in the
-   * cache.
-   * @param event describes the member that created the cache.
-   * @see CacheFactory#create
-   */
-  public void afterCacheCreate(SystemMemberCacheEvent event);
-  /**
-   * Invoked after a cache is closed in any node of a distributed system.
-   * This callback is done after those done for each region in the cache.
-   * This callback is not done if the distributed member that has a cache crashes.
-   * @param event describes the member that closed its cache.
-   * @see Cache#close()
-   */
-  public void afterCacheClose(SystemMemberCacheEvent event);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheServer.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheServer.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheServer.java
deleted file mode 100755
index a939952..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberCacheServer.java
+++ /dev/null
@@ -1,309 +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.admin;
-
-import com.gemstone.gemfire.cache.server.ServerLoadProbe;
-
-/**
- * Administrative interface that represents a {@link
- * com.gemstone.gemfire.cache.server.CacheServer CacheServer} that
- * serves the contents of a system member's cache to clients. 
- *
- * @see SystemMemberCache#addCacheServer
- *
- * @author darrel
- * @since 5.7
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMemberCacheServer {
-
-  /** 
-   * Returns the port on which this cache server listens for
-   * clients to connect.
-   */
-  public int getPort();
-
-  /**
-   * Sets the port on which this cache server listens for
-   * clients to connect.
-   *
-   * @throws AdminException
-   *         If this cache server is running
-   */
-  public void setPort(int port) throws AdminException;
-
-  /**
-   * Starts this cache server.  Once the server is running, its
-   * configuration cannot be changed.
-   *
-   * @throws AdminException
-   *         If an error occurs while starting the cache server
-   */
-  public void start() throws AdminException;
-
-  /** 
-   * Returns whether or not this cache server is running
-   */
-  public boolean isRunning();
-
-  /**
-   * Stops this cache server.  Note that the
-   * <code>CacheServer</code> can be reconfigured and restarted if
-   * desired.
-   */
-  public void stop() throws AdminException;
-
-  /**
-   * Updates the information about this cache server.
-   */
-  public void refresh();
-
-  /**
-   * Returns a string representing the ip address or host name that this server
-   * will listen on.
-   * @return the ip address or host name that this server is to listen on
-   * @since 5.7
-   */
-  public String getBindAddress();
-  /**
-   * Sets the ip address or host name that this server is to listen on for
-   * client connections.
-   * <p>Setting a specific bind address will cause the cache server to always
-   * use this address and ignore any address specified by "server-bind-address"
-   * or "bind-address" in the <code>gemfire.properties</code> file
-   * (see {@link com.gemstone.gemfire.distributed.DistributedSystem}
-   * for a description of these properties).
-   * <p> A <code>null</code> value will be treated the same as the default "".
-   * <p> The default value does not override the gemfire.properties. If you wish to
-   * override the properties and want to have your server bind to all local
-   * addresses then use this string <code>"0.0.0.0"</code>.
-   * @param address the ip address or host name that this server is to listen on
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setBindAddress(String address) throws AdminException;
-  /**
-   * Returns a string representing the ip address or host name that server locators
-   * will tell clients that this server is listening on.
-   * @return the ip address or host name to give to clients so they can connect
-   *         to this server
-   * @since 5.7
-   */
-  public String getHostnameForClients();
-  /**
-   * Sets the ip address or host name that this server is to listen on for
-   * client connections.
-   * <p>Setting a specific hostname-for-clients will cause server locators
-   * to use this value when telling clients how to connect to this server.
-   * <p> The default value causes the bind-address to be given to clients
-   * <p> A <code>null</code> value will be treated the same as the default "".
-   * @param name the ip address or host name that will be given to clients
-   *   so they can connect to this server
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setHostnameForClients(String name) throws AdminException;
-  /**
-   * Sets whether or not this cache server should notify clients based on
-   * key subscription.
-   *
-   * If false, then an update to any key on the server causes an update to
-   * be sent to all clients. This update does not push the actual data to the
-   * clients. Instead, it causes the client to locally invalidate or destroy
-   * the corresponding entry. The next time the client requests the key, it
-   * goes to the cache server for the value.
-   *
-   * If true, then an update to any key on the server causes an update to be
-   * sent to only those clients who have registered interest in that key. Other
-   * clients are not notified of the change. In addition, the actual value is
-   * pushed to the client. The client does not need to request the new value
-   * from the cache server.
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setNotifyBySubscription(boolean b) throws AdminException;
-
-  /**
-   * Answers whether or not this cache server should notify clients based on
-   * key subscription.
-   * @since 5.7
-   */
-  public boolean getNotifyBySubscription();
-
-  /**
-   * Sets the buffer size in bytes of the socket connection for this
-   * <code>CacheServer</code>. The default is 32768 bytes.
-   *
-   * @param socketBufferSize The size in bytes of the socket buffer
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setSocketBufferSize(int socketBufferSize) throws AdminException;
-
-  /**
-   * Returns the configured buffer size of the socket connection for this
-   * <code>CacheServer</code>. The default is 32768 bytes.
-   * @return the configured buffer size of the socket connection for this
-   * <code>CacheServer</code>
-   * @since 5.7
-   */
-  public int getSocketBufferSize();
-
-  /**
-   * Sets the maximum amount of time between client pings. This value is
-   * used by the <code>ClientHealthMonitor</code> to determine the health
-   * of this <code>CacheServer</code>'s clients. The default is 60000 ms.
-   *
-   * @param maximumTimeBetweenPings The maximum amount of time between client
-   * pings
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setMaximumTimeBetweenPings(int maximumTimeBetweenPings) throws AdminException;
-
-  /**
-   * Returns the maximum amount of time between client pings. This value is
-   * used by the <code>ClientHealthMonitor</code> to determine the health
-   * of this <code>CacheServer</code>'s clients. The default is 60000 ms.
-   * @return the maximum amount of time between client pings.
-   * @since 5.7
-   */
-  public int getMaximumTimeBetweenPings();
-
-  /** 
-   *  Returns the maximum allowed client connections
-   * @since 5.7
-   */
-  public int getMaxConnections();
-
-  /**
-   * Sets the maxium number of client connections allowed.
-   * When the maximum is reached the server will stop accepting
-   * connections.
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setMaxConnections(int maxCons) throws AdminException;
-
-  /** 
-   * Returns the maxium number of threads allowed in this server to service
-   * client requests.
-   * The default of <code>0</code> causes the server to dedicate a thread for
-   * every client connection.
-   * @since 5.7
-   */
-  public int getMaxThreads();
-
-  /**
-   * Sets the maxium number of threads allowed in this server to service
-   * client requests.
-   * The default of <code>0</code> causes the server to dedicate a thread for
-   * every client connection.
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setMaxThreads(int maxThreads) throws AdminException;
-
-  /**
-   * Returns the maximum number of messages that can be enqueued in a
-   * client-queue.
-   * @since 5.7
-   */
-  public int getMaximumMessageCount();
-
-  /**
-   * Sets maximum number of messages that can be enqueued in a client-queue.
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setMaximumMessageCount(int maxMessageCount) throws AdminException;
-  
-  /**
-   * Returns the time (in seconds ) after which a message in the client queue
-   * will expire.
-   * @since 5.7
-   */
-  public int getMessageTimeToLive();
-
-  /**
-   * Sets the time (in seconds ) after which a message in the client queue
-   * will expire.
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setMessageTimeToLive(int messageTimeToLive) throws AdminException;
-  /**
-   * Sets the list of server groups this cache server will belong to.
-   * By default cache servers belong to the default global server group
-   * which all cache servers always belong to.
-   * @param groups possibly empty array of <code>String</code> where each string
-   * is a server groups that this cache server will be a member of.
-   * @throws AdminException if this cache server is running
-   * @since 5.7
-   */
-  public void setGroups(String[] groups) throws AdminException;
-  /**
-   * Returns the list of server groups that this cache server belongs to.
-   * @return a possibly empty array of <code>String</code>s where
-   * each string is a server group. Modifying this array will not change the
-   * server groups that this cache server belongs to.
-   * @since 5.7
-   */
-  public String[] getGroups();
-  
-  /**
-   * Get a description of the load probe for this cache server.
-   * {@link ServerLoadProbe} for details on the load probe.
-   * @return the load probe used by this cache
-   * server.
-   * @since 5.7
-   */
-  public String getLoadProbe();
-
-  /**
-   * Set the load probe for this cache server. See
-   * {@link ServerLoadProbe} for details on how to implement
-   * a load probe.
-   * 
-   * The load probe should implement DataSerializable if 
-   * it is used with this interface, because it will be sent to the remote
-   * VM.
-   * @param loadProbe the load probe to use for
-   * this cache server.
-   * @throws AdminException  if the cache server is running
-   * @since 5.7
-   */
-  public void setLoadProbe(ServerLoadProbe loadProbe) throws AdminException;
-
-  /**
-   * Get the frequency in milliseconds to poll the load probe on this cache
-   * server.
-   * 
-   * @return the frequency in milliseconds that we will poll the load probe.
-   */
-  public long getLoadPollInterval();
-
-  /**
-   * Set the frequency in milliseconds to poll the load probe on this cache
-   * server
-   * @param loadPollInterval the frequency in milliseconds to poll
-   * the load probe. Must be greater than 0.
-   * @throws AdminException if the cache server is running
-   */
-  public void setLoadPollInterval(long loadPollInterval) throws AdminException;
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java
deleted file mode 100644
index 43e917b..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegion.java
+++ /dev/null
@@ -1,322 +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.admin;
-
-import com.gemstone.gemfire.cache.*;
-import java.io.File;
-
-/**
- * Administrative interface that represent's the {@link
- * SystemMember}'s view of one of its cache's {@link
- * com.gemstone.gemfire.cache.Region}s.  If the region in the remote
- * system member is closed or destroyed, the methods of
- * <code>SystemMemberRegion</code> will throw {@link
- * RegionNotFoundException}.
- *
- * @author    Darrel Schneider
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMemberRegion {
-  // attributes
-  /**
-   * Returns the name that identifies this region in its cache.
-   *
-   * @see com.gemstone.gemfire.cache.Region#getName
-   */
-  public String getName();
-  
-  /**
-   * Returns the full path name that identifies this region in its
-   * cache.
-   *
-   * @see com.gemstone.gemfire.cache.Region#getFullPath
-   */
-  public String getFullPath();
-
-  /**
-   * Returns the names of all the subregions of this region.
-   */
-  public java.util.Set getSubregionNames();
-
-  /**
-   * Returns the full path of each of the subregions of this region.
-   * These paths are suitable for use with {@link
-   * SystemMemberCache#getRegion}.
-   */
-  public java.util.Set getSubregionFullPaths();
-
-  /**
-   * Returns a description of any user attribute associated with this
-   * region.  The description includes the classname of the user
-   * attribute object as well as its <code>toString</code>
-   * representation.
-   */
-  public String getUserAttribute();
-
-  /**
-   * Returns a description of any CacheLoader associated with this region.
-   */
-  public String getCacheLoader();
-  /**
-   * Returns a description of any CacheWriter associated with this region.
-   */
-  public String getCacheWriter();
-
-  /**
-   * Returns the <code>EvictionAttributes</code> that configure how
-   * entries in the the region are evicted 
-   */
-  public EvictionAttributes getEvictionAttributes();
-
-  /**
-   * Returns a description of the CacheListener in this region's attributes. If
-   * there is more than 1 CacheListener defined for a region this method will
-   * return the description of the 1st CacheListener returned from
-   * {@link #getCacheListeners}
-   * 
-   * @deprecated as of 6.0 use getCacheListeners() instead
-   */
-  @Deprecated
-  public String getCacheListener();
-
-  /**
-   * This method will return an empty array if there are no CacheListeners
-   * defined on the region. If there are one or more than 1 CacheListeners
-   * defined, this method will return an array which has the names of all the
-   * CacheListeners
-   * 
-   * @return String[] the region's <code>CacheListeners</code> as a String array
-   * @since 6.0
-   */
-  public String[] getCacheListeners();
-
-  /**
-   * Returns the KeyConstraint in this region's attributes.
-   */
-  public String getKeyConstraint();
-
-  /**
-   * Returns the ValueConstraint in this region's attributes.
-   */
-  public String getValueConstraint();
-
-  /**
-   * Returns the RegionTimeToLive time limit in this region's attributes.
-   */
-  public int getRegionTimeToLiveTimeLimit();
-
-  /**
-   * Returns the RegionTimeToLive action in this region's attributes.
-   */
-  public ExpirationAction getRegionTimeToLiveAction();
-
-  /**
-   * Returns the EntryTimeToLive time limit in this region's attributes.
-   */
-  public int getEntryTimeToLiveTimeLimit();
-
-  /**
-   * Returns the EntryTimeToLive action in this region's attributes.
-   */
-  public ExpirationAction getEntryTimeToLiveAction();
-
-  /**
-   * string describing the CustomExpiry for entry-time-to-live
-   * @return the CustomExpiry for entry-time-to-live
-   */
-  public String getCustomEntryTimeToLive();
-  
-  /**
-   * Returns the RegionIdleTimeout time limit in this region's attributes.
-   */
-  public int getRegionIdleTimeoutTimeLimit();
-
-  /**
-   * Returns the RegionIdleTimeout action in this region's attributes.
-   */
-  public ExpirationAction getRegionIdleTimeoutAction();
-
-  /**
-   * Returns the EntryIdleTimeout time limit in this region's attributes.
-   */
-  public int getEntryIdleTimeoutTimeLimit();
-
-  /**
-   * Returns the EntryIdleTimeout action in this region's attributes.
-   */
-  public ExpirationAction getEntryIdleTimeoutAction();
-  
-  /**
-   * string describing the CustomExpiry for entry-idle-timeout
-   * @return the CustomExpiry for entry-idle-timeout
-   */
-  public String getCustomEntryIdleTimeout();
-  
-  /**
-   * Returns the MirrorType in this region's attributes.
-   * @deprecated as of 5.0, you should use getDataPolicy instead
-   */
-  @Deprecated
-  public MirrorType getMirrorType();
-  
-  /**
-   * Returns the DataPolicy in this region's attributes.
-   */
-  public DataPolicy getDataPolicy();
-  
-  /**
-  
-  /**
-   * Returns the Scope in this region's attributes.
-   */
-  public Scope getScope();
-
-  /**
-   * Returns the InitialCapacity in this region's attributes.
-   */
-  public int getInitialCapacity();
-
-  /**
-   * Returns the LoadFactor in this region's attributes.
-   */
-  public float getLoadFactor();
-
-  /**
-   * Returns the ConcurrencyLevel in this region's attributes.
-   */
-  public int getConcurrencyLevel();
-
-  /**
-   * Returns whether or not conflicting concurrent operations on this region
-   * are prevented 
-   */
-  public boolean getConcurrencyChecksEnabled();
-
-  /**
-   * Returns the StatisticsEnabled in this region's attributes.
-   */
-  public boolean getStatisticsEnabled();
-
-  /**
-   * Returns whether or not a persistent backup should be made of the
-   * region (as opposed to just writing the overflow data to disk).
-   */
-  public boolean getPersistBackup();
-
-  /**
-   * Returns the <code>DiskWriteAttributes</code> that configure how
-   * the region is written to disk.
-   */
-  public DiskWriteAttributes getDiskWriteAttributes();
-
-  /**
-   * Returns the directories to which the region's data are written.  If
-   * multiple directories are used, GemFire will attempt to distribute the
-   * data evenly amongst them.
-   */
-  public File[] getDiskDirs();
-
-  /**
-   * Returns the number of entries currently in this region.
-   */
-  public int getEntryCount();
-  
-  /**
-   * Returns the number of subregions currently in this region.
-   */
-  public int getSubregionCount();
-
-  /**
-   * Returns the LastModifiedTime obtained from this region's statistics.
-   */
-  public long getLastModifiedTime();
-
-  /**
-   * Returns the LastAccessedTime obtained from this region's statistics.
-   */
-  public long getLastAccessedTime();
-
-  /**
-   * Returns the HitCount obtained from this region's statistics.
-   */
-  public long getHitCount();
-
-  /**
-   * Returns the MissCount obtained from this region's statistics.
-   */
-  public long getMissCount();
-
-  /**
-   * Returns the HitRatio obtained from this region's statistics.
-   */
-  public float getHitRatio();
-
-  /**
-   * Returns whether or not acks are sent after an update is processed.
-   * @return False if acks are sent after updates are processed;
-   *         true if acks are sent before updates are processed.
-   *
-   * @since 4.1
-   */
-  public boolean getEarlyAck();
-
-  // operations
-  /**
-   * Updates the state of this region instance. Note that once a cache
-   * instance is closed refresh will never change the state of its regions.
-   */
-  public void refresh();
-
-  /**
-   * Creates a subregion of this region.
-   *
-   * @param name
-   *        The name of the region to create
-   * @param attrs
-   *        The attributes of the root region
-   *
-   * @throws AdminException
-   *         If the region cannot be created
-   *
-   * @since 4.0
-   */
-  public SystemMemberRegion createSubregion(String name,
-                                            RegionAttributes attrs)
-    throws AdminException;
-
-  /**
-   * Returns the <code>MembershipAttributes</code> that configure required
-   * roles for reliable access to the region.
-   * @since 5.0
-   */
-  public MembershipAttributes getMembershipAttributes();
-  
-  /**
-   * Returns the <code>SubscriptionAttributes</code> for the region.
-   * @since 5.0
-   */
-  public SubscriptionAttributes getSubscriptionAttributes();
-  
-  /**
-   * Returns the <code>PartitionAttributes</code> for the region.
-   * @since 5.7
-   */
-  public PartitionAttributes getPartitionAttributes();
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegionEvent.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegionEvent.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegionEvent.java
deleted file mode 100644
index 9f6eebd..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberRegionEvent.java
+++ /dev/null
@@ -1,33 +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.admin;
-
-/**
- * An event that describes an operation on a region.
- * Instances of this are delivered to a {@link SystemMemberCacheListener} when a
- * a region comes or goes.
- *
- * @author Darrel Schneider
- * @since 5.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMemberRegionEvent extends SystemMemberCacheEvent {
-  /**
-   * Returns the full path of the region the event was done on.
-   */
-  public String getRegionPath();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberType.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberType.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberType.java
deleted file mode 100755
index a851e5a..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMemberType.java
+++ /dev/null
@@ -1,146 +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.admin;
-
-//import java.io.*;
-
-/**
- * Type-safe definition for system members.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class SystemMemberType implements java.io.Serializable {
-  private static final long serialVersionUID = 3284366994485749302L;
-    
-  /** GemFire shared-memory manager connected to the distributed system */
-  public static final SystemMemberType MANAGER = 
-      new SystemMemberType("GemFireManager");
-
-  /** Application connected to the distributed system */
-  public static final SystemMemberType APPLICATION = 
-      new SystemMemberType("Application");
-
-  /** GemFire Cache VM connected to the distributed system */
-  public static final SystemMemberType CACHE_VM =
-    new SystemMemberType("CacheVm");
-
-  /** GemFire Cache Server connected to the distributed system
-   * @deprecated as of 5.7 use {@link #CACHE_VM} instead.
-   */
-  @Deprecated
-  public static final SystemMemberType CACHE_SERVER = CACHE_VM;
-
-
-  /** The display-friendly name of this system member type. */
-  private final transient String name;
-  
-  // The 4 declarations below are necessary for serialization
-  /** int used as ordinal to represent this Scope */
-  public final int ordinal = nextOrdinal++;
-
-  private static int nextOrdinal = 0;
-  
-  private static final SystemMemberType[] VALUES =
-    { MANAGER, APPLICATION, CACHE_VM };
-
-  private Object readResolve() throws java.io.ObjectStreamException {
-    return VALUES[ordinal];  // Canonicalize
-  }
-  
-  /** Creates a new instance of SystemMemberType. */
-  private SystemMemberType(String name) {
-    this.name = name;
-  }
-    
-  /** Return the SystemMemberType represented by specified ordinal */
-  public static SystemMemberType fromOrdinal(int ordinal) {
-    return VALUES[ordinal];
-  }
-
-  public String getName() {
-    return this.name;
-  }
-  
-  /** Return whether this is <code>MANAGER</code>. */
-  public boolean isManager() {
-    return this.equals(MANAGER);
-  }
-    
-  /** Return whether this is <code>APPLICATION</code>. */
-  public boolean isApplication() {
-    return this.equals(APPLICATION);
-  }
-
-  /** Return whether this is <code>CACHE_SERVER</code>.
-   * @deprecated as of 5.7 use {@link #isCacheVm} instead.
-   */
-  @Deprecated
-  public boolean isCacheServer() {
-    return isCacheVm();
-  }
-  /** Return whether this is <code>CACHE_VM</code>.
-   */
-  public boolean isCacheVm() {
-    return this.equals(CACHE_VM);
-  }
-    
-  /** 
-   * Returns a string representation for this system member type.
-   *
-   * @return the name of this system member type
-   */
-  @Override
-  public String toString() {
-      return this.name;
-  }
-
-	/**
-	 * Indicates whether some other object is "equal to" this one.
-	 *
-	 * @param  other  the reference object with which to compare.
-	 * @return true if this object is the same as the obj argument;
-	 *         false otherwise.
-	 */
-  @Override
-	public boolean equals(Object other) {
-		if (other == this) return true;
-		if (other == null) return false;
-		if (!(other instanceof SystemMemberType)) return  false;
-		final SystemMemberType that = (SystemMemberType) other;
-		if (this.ordinal != that.ordinal) return false;
-		return true;
-	}
-
-	/**
-	 * Returns a hash code for the object. This method is supported for the
-	 * benefit of hashtables such as those provided by java.util.Hashtable.
-	 *
-	 * @return the integer 0 if description is null; otherwise a unique integer.
-	 */
-  @Override
-	public int hashCode() {
-		int result = 17;
-		final int mult = 37;
-		result = mult * result + this.ordinal;
-		return result;
-	}
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMembershipEvent.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMembershipEvent.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMembershipEvent.java
deleted file mode 100644
index b908853..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMembershipEvent.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.admin;
-
-import com.gemstone.gemfire.distributed.DistributedMember;
-/**
- * An event that describes the distributed member originated this event.
- * Instances of this are delivered to a {@link SystemMembershipListener} when a
- * member has joined or left the distributed system.
- *
- * @author Darrel Schneider
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMembershipEvent {
-  /**
-   * Returns the distributed member as a String.
-   */
-  public String getMemberId();
-
-  /**
-   * Returns the {@link DistributedMember} that this event originated in.
-   * @return the member that performed the operation that originated this event.
-   * @since 5.0
-   */
-  public DistributedMember getDistributedMember();
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMembershipListener.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMembershipListener.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMembershipListener.java
deleted file mode 100644
index 5c2edaa..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/SystemMembershipListener.java
+++ /dev/null
@@ -1,62 +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.admin;
-
-/**
- * A listener whose callback methods are invoked when members join or
- * leave the GemFire distributed system.
- *
- * @see AdminDistributedSystem#addMembershipListener
- *
- * @author David Whitlock
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface SystemMembershipListener {
-
-  /**
-   * Invoked when a member has joined the distributed system
-   */
-  public void memberJoined(SystemMembershipEvent event);
-
-  /**
-   * Invoked when a member has gracefully left the distributed system.  This
-   * occurs when the member took action to remove itself from the distributed
-   * system.
-   */
-  public void memberLeft(SystemMembershipEvent event);
-
-  /**
-   * Invoked when a member has unexpectedly left the distributed
-   * system.  This occurs when a member is forcibly removed from the
-   * distributed system by another process, such as from
-   * <a href=../distributed/DistributedSystem.html#member-timeout> failure detection</a>, or
-   * <a href=../distributed/DistributedSystem.html#enable-network-partition-detection>
-   * network partition detection</a> processing.
-   */
-  public void memberCrashed(SystemMembershipEvent event);
-
-//   /**
-//    * Invoked when a member broadcasts an informational message.
-//    *
-//    * @see com.gemstone.gemfire.distributed.DistributedSystem#fireInfoEvent
-//    *
-//    * @since 4.0
-//    */
-//   public void memberInfo(SystemMembershipEvent event);
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/UnmodifiableConfigurationException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/UnmodifiableConfigurationException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/UnmodifiableConfigurationException.java
deleted file mode 100755
index 605577c..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/UnmodifiableConfigurationException.java
+++ /dev/null
@@ -1,89 +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.admin;
-
-/**
- * An <code>UnmodifiableConfigurationException</code> is thrown when an attempt
- * is made to modify the value of an unmodifiable 
- * {@link ConfigurationParameter}.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class UnmodifiableConfigurationException extends AdminException {
-private static final long serialVersionUID = -7653547392992060646L;
-
-  /**
-   * Constructs a new exception with <code>null</code> as its detail message.
-   * The cause is not initialized, and may subsequently be initialized by a
-   * call to {@link Throwable#initCause}.
-   */
-  public UnmodifiableConfigurationException() {
-    super();
-  }
-
-  /**
-   * Constructs a new exception with the specified detail message.  The
-   * cause is not initialized, and may subsequently be initialized by
-   * a call to {@link Throwable#initCause}.
-   *
-   * @param   message   the detail message. The detail message is saved for 
-   *          later retrieval by the {@link #getMessage()} method.
-   */
-  public UnmodifiableConfigurationException(String message) {
-    super(message);
-  }
-
-  /**
-   * Constructs a new exception with the specified detail message and
-   * cause.  <p>Note that the detail message associated with
-   * <code>cause</code> is <i>not</i> automatically incorporated in
-   * this exception's detail message.
-   *
-   * @param  message the detail message (which is saved for later retrieval
-   *         by the {@link #getMessage()} method).
-   * @param  cause the cause (which is saved for later retrieval by the
-   *         {@link #getCause()} method).  (A <tt>null</tt> value is
-   *         permitted, and indicates that the cause is nonexistent or
-   *         unknown.)
-   */
-  public UnmodifiableConfigurationException(String message, Throwable cause) {
-    super(message, cause);
-  }
-
-  /**
-   * Constructs a new exception with the specified cause and a detail
-   * message of <tt>(cause==null ? null : cause.toString())</tt> (which
-   * typically contains the class and detail message of <tt>cause</tt>).
-   * This constructor is useful for exceptions that are little more than
-   * wrappers for other throwables (for example, {@link
-   * java.security.PrivilegedActionException}).
-   *
-   * @param  cause the cause (which is saved for later retrieval by the
-   *         {@link #getCause()} method).  (A <tt>null</tt> value is
-   *         permitted, and indicates that the cause is nonexistent or
-   *         unknown.)
-   */
-  public UnmodifiableConfigurationException(Throwable cause) {
-    super(cause);
-  }
-    
-}
-


[38/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ClientServerRegionFactoryDelegate.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ClientServerRegionFactoryDelegate.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ClientServerRegionFactoryDelegate.java
new file mode 100644
index 0000000..980e6ab
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ClientServerRegionFactoryDelegate.java
@@ -0,0 +1,208 @@
+/*
+* 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.hibernate.internal;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.client.ClientCache;
+import com.gemstone.gemfire.cache.client.ClientCacheFactory;
+import com.gemstone.gemfire.cache.client.ClientRegionFactory;
+import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
+import com.gemstone.gemfire.cache.execute.FunctionService;
+import com.gemstone.gemfire.modules.util.BootstrappingFunction;
+import com.gemstone.gemfire.modules.util.CreateRegionFunction;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+
+public class ClientServerRegionFactoryDelegate extends RegionFactoryDelegate {
+
+  private static final String DEFAULT_SERVER_REGION_TYPE = RegionShortcut.PARTITION.name();
+
+  private static final String DEFAULT_CLIENT_REGION_TYPE = ClientRegionShortcut.PROXY.name();
+
+  private ClientCache clientCache;
+  
+  public ClientServerRegionFactoryDelegate(Properties gemfireProperties,
+      Properties regionProperties) {
+    super(gemfireProperties, regionProperties);
+  }
+
+  @Override
+  public GemFireCache startCache() {
+    log.info("Creating a GemFire client cache");
+    String locatorsString = (String)gemfireProperties.remove("locators");
+    checkExistingCache();
+    ClientCacheFactory ccf = new ClientCacheFactory(gemfireProperties).setPoolSubscriptionEnabled(true);
+    List<LocatorHolder> locators = getLocatorsMap(locatorsString);
+    for (LocatorHolder locHolder : locators) {
+      log.debug("adding pool locator with host {} port {}", locHolder.host, locHolder.port);
+      ccf.addPoolLocator(locHolder.host, locHolder.port);
+    }
+    this.clientCache = ccf.create();
+    
+    log.debug("GemFire client cache creation completed");
+    // bootstrap the servers
+    FunctionService.onServers(this.clientCache).execute(new BootstrappingFunction()).getResult();
+    FunctionService.registerFunction(new CreateRegionFunction(this.clientCache));
+    return this.clientCache;
+  }
+
+  private List<LocatorHolder> getLocatorsMap(String locatorsString) {
+    List<LocatorHolder> retval = new ArrayList<LocatorHolder>();
+    if (locatorsString == null || locatorsString.isEmpty()) {
+      return retval;
+    }
+    StringTokenizer st = new StringTokenizer(locatorsString, ",");
+    while (st.hasMoreTokens()) {
+      String locator = st.nextToken();
+      int portIndex = locator.indexOf('[');
+      if (portIndex < 1) {
+        portIndex = locator.lastIndexOf(':');
+      }
+      // starting in 5.1.0.4 we allow '@' as the bind-addr separator
+      // to let people use IPv6 numeric addresses (which contain colons)
+      int bindAddrIdx = locator.lastIndexOf('@', portIndex - 1);
+      
+      if (bindAddrIdx < 0) {
+        bindAddrIdx = locator.lastIndexOf(':', portIndex - 1);
+      }
+
+      String host = locator.substring(0,
+          bindAddrIdx > -1 ? bindAddrIdx : portIndex);
+
+      if (host.indexOf(':') >= 0) {
+        bindAddrIdx = locator.lastIndexOf('@');
+        host = locator.substring(0, bindAddrIdx > -1 ? bindAddrIdx : portIndex);
+      }
+      int lastIndex = locator.lastIndexOf(']');
+      if (lastIndex == -1) {
+        if (locator.indexOf('[') >= 0) {
+          throw new IllegalArgumentException("Invalid locator");
+        } else {
+          // Using host:port syntax
+          lastIndex = locator.length();
+        }
+      }
+      String port = locator.substring(portIndex + 1, lastIndex);
+      int portVal = 0;
+      try {
+        portVal = Integer.parseInt(port);
+        if (portVal < 1 || portVal > 65535) {
+          throw new IllegalArgumentException("port should be grater than zero and less than 65536");
+        }
+      } catch (NumberFormatException ex) {
+        throw new IllegalArgumentException("Invalid Locator");
+      }
+      retval.add(new LocatorHolder(host, portVal));
+    }
+    return retval;
+  }
+
+  @Override
+  public Region<Object, EntityWrapper> createRegion(String regionName) {
+    // first create the region on the server
+    String serverRegionType = getServerRegionType(regionName);
+    RegionConfiguration regionConfig = new RegionConfiguration();
+    regionConfig.setRegionName(regionName);
+    regionConfig.setRegionAttributesId(serverRegionType);
+    regionConfig.setCacheWriterName(EntityRegionWriter.class.getCanonicalName());
+    FunctionService.onServer(this.clientCache).withArgs(regionConfig)
+        .execute(CreateRegionFunction.ID).getResult();
+    // now create region on the client
+    Region<Object, EntityWrapper> r = this.clientCache.getRegion(regionName);
+    if (r != null) {
+      return r;
+    }
+    String clientRegionType = getClientRegionType(regionName);
+    ClientRegionFactory<Object, EntityWrapper> rf = this.clientCache
+        .createClientRegionFactory(ClientRegionShortcut
+            .valueOf(clientRegionType));
+    r = rf.create(regionName);
+    return r;
+  }
+
+  private String getClientRegionType(String regionName) {
+    String rType = getOverridenClientRegionType(regionName);
+    if (rType != null) {
+      return rType.toUpperCase();
+    }
+    rType = regionProperties.getProperty("gemfire.default-client-region-attributes-id");
+    if (rType == null) {
+      rType = DEFAULT_CLIENT_REGION_TYPE;
+    }
+    return rType.toUpperCase();
+  }
+
+  private String getServerRegionType(String regionName) {
+    String rType = getOverridenServerRegionType(regionName);
+    if (rType != null) {
+      return rType.toUpperCase();
+    }
+    rType = regionProperties.getProperty("gemfire.default-region-attributes-id");
+    if (rType == null) {
+      rType = DEFAULT_SERVER_REGION_TYPE;
+    }
+    return rType.toUpperCase();
+  }
+
+  private String getOverridenServerRegionType(String regionName) {
+    String rType = null;
+    Iterator<Object> it = regionProperties.keySet().iterator();
+    while (it.hasNext()) {
+      String current = (String)it.next();
+      if (current.contains(regionName) && !current.contains("client")) {
+        rType = regionProperties.getProperty(current);
+        break;
+      }
+    }
+    return rType;
+  }
+
+  private String getOverridenClientRegionType(String regionName) {
+    String rType = null;
+    Iterator<Object> it = regionProperties.keySet().iterator();
+    while (it.hasNext()) {
+      String current = (String)it.next();
+      if (current.contains(regionName) && current.contains("client")) {
+        rType = regionProperties.getProperty(current);
+        break;
+      }
+    }
+    return rType;
+  }
+  
+  private static class LocatorHolder {
+    private String host;
+    private int port;
+    private LocatorHolder(String host, int port) {
+      this.host = host;
+      this.port = port;
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/CollectionAccess.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/CollectionAccess.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/CollectionAccess.java
new file mode 100644
index 0000000..f1898d8
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/CollectionAccess.java
@@ -0,0 +1,224 @@
+/*
+* 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.hibernate.internal;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.CollectionRegion;
+import org.hibernate.cache.access.CollectionRegionAccessStrategy;
+import org.hibernate.cache.access.SoftLock;
+import org.hibernate.cache.entry.CollectionCacheEntry;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.CacheWriterException;
+import com.gemstone.gemfire.cache.EntryExistsException;
+import com.gemstone.gemfire.cache.EntryNotFoundException;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.client.ServerOperationException;
+
+public class CollectionAccess implements
+    CollectionRegionAccessStrategy {
+
+  private final GemFireCollectionRegion region;
+  
+  private Logger log = LoggerFactory.getLogger(getClass());
+  
+  /**
+   * if we know the entity whose ids are stored in this
+   * collection, we can prefetch those entities using
+   * getAll. This field stores that child entity name.
+   */
+  private String childEntityName;
+  
+  public CollectionAccess(GemFireCollectionRegion region) {
+    this.region = region;
+    String regionName = this.region.getGemFireRegion().getName().trim();
+    regionName = regionName.replace("\\/", "");
+    int lastPeriod = regionName.lastIndexOf('.');
+    if (lastPeriod < 0) {
+      log.info("Eager prefetching disabled for region: {}", this.region.getName());
+      return;
+    }
+    String entityName = regionName.substring(0, lastPeriod);
+    String collectionFieldName = regionName.substring(lastPeriod+1);
+    log.debug("entity name: {}, collectionFieldName: {}", entityName, collectionFieldName);
+    try {
+      Class parentClass = Class.forName(entityName);
+      Field[] fields = parentClass.getDeclaredFields();
+      for (Field field : fields) {
+        log.debug("genericType: {}", field.getGenericType());
+        if (field.getName().equals(collectionFieldName)) {
+          String genericString = field.toGenericString();
+          log.debug("genericType: for required field name: {}", field.toGenericString());
+          int startDependentEntityIndex = genericString.indexOf("<");
+          if (startDependentEntityIndex != -1 &&
+              genericString.indexOf("<", startDependentEntityIndex+1) == -1) {
+            int childDependentEntityIndex = genericString.indexOf(">");
+            this.childEntityName = genericString.substring(startDependentEntityIndex+1, childDependentEntityIndex);
+            log.debug("For Collection {} using child entity: {}", this.region.getGemFireRegion().getName(), this.childEntityName);
+          }
+        }
+      }
+    }
+    catch (ClassNotFoundException e) {
+      //ok to ignore, we will not use pre-fetching
+    }
+    if (this.childEntityName == null) {
+      log.info("Eager prefetching disabled for region: {}", this.region.getName());
+    }
+  }
+  
+  @Override
+  public CollectionRegion getRegion() {
+    return this.region;
+  }
+
+  @Override
+  public Object get(Object key, long txTimestamp) throws CacheException {
+    EntityWrapper wrapper = this.region.getGemFireRegion().get(key);
+    if (wrapper == null) {
+      this.region.getStats().incCacheMiss();
+      log.debug("Cache miss for {} ts: {}",key, txTimestamp);
+      return null;
+    } else {
+      this.region.getStats().incCacheHit();
+      log.debug("cache hit {} count: {} ", key, this.region.getStats().getCacheHits());
+      // do pre-fetching
+      if (isPrefetchPossible()) {
+        log.debug("for key: {} prefetching entries: {}", key, wrapper.getEntity());
+        prefetchKeys((CollectionCacheEntry)wrapper.getEntity());
+      }
+    }
+    return wrapper.getEntity();
+  }
+
+  private void prefetchKeys(CollectionCacheEntry entry) {
+    StringBuilder builder = new StringBuilder(this.childEntityName+"#");
+    Serializable[] childEntityKeys = entry.getState();
+    Set<String> getAllSet = new HashSet<String>();
+    for (Serializable id : childEntityKeys) {
+      String key = builder.append(id).toString();
+      log.debug("adding key {} to getAll set", key);
+      getAllSet.add(key);
+    }
+    GemFireEntityRegion childRegion = this.region.regionFactory.getEntityRegion(this.childEntityName);
+    log.debug("prefetching {} keys", getAllSet.size());
+    if (!getAllSet.isEmpty() && childRegion != null) {
+      childRegion.getAll(getAllSet);
+    }
+  }
+
+  private boolean isPrefetchPossible() {
+    return this.childEntityName != null;
+  }
+
+  private void printRegionContents(Region<Object, EntityWrapper> r) {
+    log.debug("printing contents of {} ",r);
+    for (Object k : r.keySet()) {
+      log.debug("key {} value {} ",k,r.get(k));
+    }
+  }
+  
+  @Override
+  public boolean putFromLoad(Object key, Object value, long txTimestamp,
+      Object version) throws CacheException {
+    return putFromLoad(key, value, txTimestamp, version, true);
+  }
+
+  @Override
+  public boolean putFromLoad(Object key, Object value, long txTimestamp,
+      Object version, boolean minimalPutOverride) throws CacheException {
+    EntityWrapper wrapper = new EntityWrapper(value, 1L);
+    log.debug("putting a new collection entry from load {} value: {}",key, wrapper);
+    boolean remove = false;
+    try {
+      this.region.getGemFireRegion().create(key, wrapper);
+    } catch (EntryExistsException ee) {
+      log.debug("key {} exists in the cache already, destroying", key);
+      remove = true;
+    } catch (CacheWriterException writerEx) {
+      this.region.getStats().incHibernateDestroyJobsScheduled();
+      log.debug("caught a CacheWriterException {} ",writerEx.getMessage());
+      remove = true;
+    } catch (ServerOperationException serverEx) {
+      if (serverEx.getCause() instanceof CacheWriterException) {
+        this.region.getStats().incHibernateDestroyJobsScheduled();
+        log.debug("caught a ServerOperationException caused by CacheWriterException {} ",serverEx.getMessage());
+      } else {
+        throw serverEx;
+      }
+      remove = true;
+    }
+    if (remove) {
+      this.region.getGemFireRegion().remove(key);
+      return false;
+    }
+    return true;
+  }
+
+  @Override
+  public SoftLock lockItem(Object key, Object version) throws CacheException {
+    // there are no updates to the collectionCache,
+    // so no need to lock/version
+    return null;
+  }
+
+  @Override
+  public SoftLock lockRegion() throws CacheException {
+    return null;
+  }
+
+  @Override
+  public void unlockItem(Object key, SoftLock lock) throws CacheException {
+  }
+
+  @Override
+  public void unlockRegion(SoftLock lock) throws CacheException {
+  }
+
+  @Override
+  public void remove(Object key) throws CacheException {
+    log.debug("removing key {}",key);
+    this.region.getGemFireRegion().remove(key);
+  }
+
+  @Override
+  public void removeAll() throws CacheException {
+    log.debug("removing all keys");
+    this.region.getGemFireRegion().clear();
+  }
+
+  @Override
+  public void evict(Object key) throws CacheException {
+    // TODO we should implement a method on Region to evict
+    // a particular entry, destroying is inefficient
+    log.debug("removing key {}", key);
+    this.region.getGemFireRegion().remove(key);
+  }
+
+  @Override
+  public void evictAll() throws CacheException {
+    log.debug("removing all keys");
+    this.region.getGemFireRegion().clear();
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityRegionWriter.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityRegionWriter.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityRegionWriter.java
new file mode 100644
index 0000000..5a4e5e1
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityRegionWriter.java
@@ -0,0 +1,87 @@
+/*
+* 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.hibernate.internal;
+
+
+import java.util.Properties;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.CacheWriterException;
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.util.CacheWriterAdapter;
+
+public class EntityRegionWriter extends CacheWriterAdapter implements Declarable {
+  
+  private Logger log = LoggerFactory.getLogger(getClass());
+  
+//  @Override
+//  public void beforeCreate(EntryEvent event) {
+//    event.getRegion().getCache().getLogger().info("GFE:Writer invoked for beforeCreate:"+event);
+//      final Object key = event.getKey();
+//      EntityWrapper val = (EntityWrapper)event.getNewValue();
+//      EntityWrapper oldVal = (EntityWrapper)event.getOldValue();
+//      log.debug("beforeCreate: key:"+key+" val:"+val.getEntity()+" ver:"+val.getVersion()+" region:"+event.getRegion().getName()+" oldVal:"+oldVal+" this:"+System.identityHashCode(this));
+//  }
+  
+  @Override
+  public void beforeUpdate(EntryEvent event) {
+    log.debug("Writer invoked for beforeUpdate:{}",event);
+    final Object key = event.getKey();
+    EntityWrapper val = (EntityWrapper)event.getNewValue();
+    if (val.getVersion() < 0) {
+      // no need for version check for NonStrictReadWrite
+      // this is needed because CacheEntry does not implement equals
+      return;
+    }
+    EntityWrapper oldVal = (EntityWrapper)event.getOldValue();
+    // if same entity was loaded from two different VMs,
+    // i.e. version same and entity equal then no need to destroy
+    //
+    if (oldVal.getVersion() == val.getVersion()) {
+      if (val.getEntity().equals(oldVal.getEntity())) {
+        // since CacheEntry does not override equals
+        // this check is probably of no use
+        return;
+      }
+    } else if (oldVal.getVersion() < val.getVersion()) {
+      return;
+    }
+    log.debug("For key {} old version was {} new version was {}", new Object[] {key, oldVal.getVersion(), val.getVersion()});
+    throw new CacheWriterException("key "+key+" had a newer version");
+  }
+  
+  @Override
+  public boolean equals(Object obj) {
+    // This method is only implemented so that RegionCreator.validateRegion works properly.
+    // The CacheWriter comparison fails because two of these instances are not equal.
+    if (this == obj) {
+      return true;
+    }
+
+    if (obj == null || !(obj instanceof EntityRegionWriter)) {
+      return false;
+    }
+    return true;
+  }
+
+  @Override
+  public void init(Properties arg0) {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersion.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersion.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersion.java
new file mode 100644
index 0000000..abfb675
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersion.java
@@ -0,0 +1,28 @@
+/*
+* 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.hibernate.internal;
+
+import org.hibernate.cache.access.SoftLock;
+
+/**
+ * 
+ * @author sbawaska
+ */
+public interface EntityVersion extends SoftLock {
+
+  public Long getVersion();
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersionImpl.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersionImpl.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersionImpl.java
new file mode 100644
index 0000000..ad160e4
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityVersionImpl.java
@@ -0,0 +1,51 @@
+/*
+* 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.hibernate.internal;
+
+/**
+ * 
+ * @author sbawaska
+ */
+public class EntityVersionImpl implements EntityVersion {
+
+  private final Long version;
+
+  public EntityVersionImpl(Long version) {
+    this.version = version;
+  }
+
+  @Override
+  public Long getVersion() {
+    return this.version;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof EntityVersionImpl) {
+      EntityVersionImpl other = (EntityVersionImpl)obj;
+      if (this.version.equals(other.version)) {
+        return true;
+      }
+    }
+    return false;
+  }
+
+  @Override
+  public int hashCode() {
+    return this.version.hashCode();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityWrapper.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityWrapper.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityWrapper.java
new file mode 100644
index 0000000..ab92dea
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/EntityWrapper.java
@@ -0,0 +1,89 @@
+/*
+* 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.hibernate.internal;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+
+public class EntityWrapper implements DataSerializable {
+
+  private static final long serialVersionUID = 8616754027252339041L;
+
+  private Object entity;
+
+  private long version;
+
+  public EntityWrapper(Object entity, long version) {
+    this.entity = entity;
+    this.version = version;
+  }
+
+  /**
+   * for {@link DataSerializer}
+   */
+  public EntityWrapper() {
+  }
+  
+  public long getVersion() {
+    return version;
+  }
+
+  public Object getEntity() {
+    return entity;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof EntityWrapper) {
+      EntityWrapper other = (EntityWrapper)obj;
+      if (this.version == other.version) {
+        //CacheEntry does not override equals, hence cannot be used in this comparison
+        return true;
+      }
+    }
+    return false;
+  }
+
+  @Override
+  public int hashCode() {
+    return Long.valueOf(this.version).hashCode();
+  }
+
+  @Override
+  public String toString() {
+    return new StringBuilder()
+        .append("EntityWrapper@" + System.identityHashCode(this))
+        .append(" Entity:" + this.entity).append(" version:" + this.version)
+        .toString();
+  }
+
+  @Override
+  public void toData(DataOutput out) throws IOException {
+    out.writeLong(this.version);
+    DataSerializer.writeObject(this.entity, out);
+  }
+
+  @Override
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    this.version = in.readLong();
+    this.entity = DataSerializer.readObject(in);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireBaseRegion.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireBaseRegion.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireBaseRegion.java
new file mode 100644
index 0000000..9e77a98
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireBaseRegion.java
@@ -0,0 +1,166 @@
+/*
+* 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.hibernate.internal;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ExecutorService;
+
+import org.hibernate.cache.CacheDataDescription;
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.Region;
+import org.hibernate.cache.Timestamper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.distributed.DistributedSystem;
+import com.gemstone.gemfire.internal.cache.LocalRegion;
+import com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory;
+import com.gemstone.gemfire.modules.util.ModuleStatistics;
+
+public class GemFireBaseRegion implements Region {
+
+  /**
+   * the backing region
+   */
+  protected final com.gemstone.gemfire.cache.Region<Object, EntityWrapper> region;
+
+  /**
+   * to determine if the operation should be forwarded to server
+   */
+  protected final boolean isClientRegion;
+
+  protected final CacheDataDescription metadata;
+
+  private final Logger log = LoggerFactory.getLogger(getClass());
+
+  protected final GemFireRegionFactory regionFactory;
+  
+  protected final ModuleStatistics stats;
+  
+  public GemFireBaseRegion(com.gemstone.gemfire.cache.Region<Object, EntityWrapper> region,
+      boolean isClient, CacheDataDescription metadata, GemFireRegionFactory regionFactory) {
+    this.region = region;
+    this.isClientRegion = isClient;
+    this.metadata = metadata;
+    this.regionFactory = regionFactory;
+    DistributedSystem system = ((LocalRegion)region).getSystem();
+    this.stats = ModuleStatistics.getInstance(system);
+
+  }
+
+  public com.gemstone.gemfire.cache.Region<Object, EntityWrapper> getGemFireRegion() {
+    return this.region;
+  }
+
+  public ModuleStatistics getStats() {
+    return this.stats;
+  }
+  
+  public ExecutorService getExecutorService() {
+    return this.regionFactory.getExecutorService();
+  }
+
+  @Override
+  public String getName() {
+    return this.region.getName();
+  }
+
+  @Override
+  public void destroy() throws CacheException {
+    if (!this.region.isDestroyed()) {
+      this.region.localDestroyRegion();
+    }
+  }
+
+  /*
+   * I did not see any useful callers from hibernate-core
+   */
+  @Override
+  public boolean contains(Object key) {
+    log.debug("contains key called for :" + key);
+    if (isClientRegion) {
+      // TODO should this be done?
+      return this.region.containsKeyOnServer(key);
+    }
+    return this.region.containsKey(key);
+  }
+
+  @Override
+  public long getSizeInMemory() {
+    return 0;
+  }
+
+  @Override
+  public long getElementCountInMemory() {
+    return this.region.size();
+  }
+
+  @Override
+  public long getElementCountOnDisk() {
+    LocalRegion lr = (LocalRegion)this.region;
+    if (lr.getDiskRegion() != null) {
+      return lr.getDiskRegion().getNumOverflowOnDisk();
+    }
+    return 0;
+  }
+
+  @Override
+  public Map<Object, EntityWrapper> toMap() {
+    return Collections.unmodifiableMap(this.region);
+  }
+
+  /*
+   * only used by updateTimestamps cache
+   */
+  @Override
+  public long nextTimestamp() {
+    log.debug("nextTimestamp called");
+    return Timestamper.next();
+  }
+  
+  /*
+   * this is used by updateTimestamps cache only
+   */
+  @Override
+  public int getTimeout() {
+    return 60*1000; // all other cache providers have same value
+  }
+  
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof GemFireBaseRegion) {
+      GemFireBaseRegion other = (GemFireBaseRegion)obj;
+      if (this.region.getName().equals(other.region.getName())
+          && this.isClientRegion == other.isClientRegion) {
+        return true;
+      }
+    }
+    return false;
+  }
+  
+  @Override
+  public int hashCode() {
+    return this.region.hashCode() + (this.isClientRegion ? 1 : 0);
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireCollectionRegion.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireCollectionRegion.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireCollectionRegion.java
new file mode 100644
index 0000000..620a332
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireCollectionRegion.java
@@ -0,0 +1,59 @@
+/*
+* 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.hibernate.internal;
+
+import org.hibernate.cache.CacheDataDescription;
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.CollectionRegion;
+import org.hibernate.cache.access.AccessType;
+import org.hibernate.cache.access.CollectionRegionAccessStrategy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory;
+
+public class GemFireCollectionRegion extends GemFireBaseRegion implements CollectionRegion {
+
+  private Logger log = LoggerFactory.getLogger(getClass());
+  
+  public GemFireCollectionRegion(Region<Object, EntityWrapper> region,
+      boolean isClient, CacheDataDescription metadata,
+      GemFireRegionFactory regionFactory) {
+    super(region, isClient, metadata, regionFactory);
+  }
+
+  @Override
+  public boolean isTransactionAware() {
+    // TODO Auto-generated method stub
+    return false;
+  }
+
+  @Override
+  public CacheDataDescription getCacheDataDescription() {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  @Override
+  public CollectionRegionAccessStrategy buildAccessStrategy(
+      AccessType accessType) throws CacheException {
+    log.debug("creating collection access for region:"+this.region.getName());
+    return new CollectionAccess(this);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireEntityRegion.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireEntityRegion.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireEntityRegion.java
new file mode 100644
index 0000000..22ac466
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireEntityRegion.java
@@ -0,0 +1,187 @@
+/*
+* 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.hibernate.internal;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ExecutorService;
+
+import org.hibernate.cache.CacheDataDescription;
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.EntityRegion;
+import org.hibernate.cache.access.AccessType;
+import org.hibernate.cache.access.EntityRegionAccessStrategy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.distributed.DistributedSystem;
+import com.gemstone.gemfire.internal.cache.LocalRegion;
+import com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory;
+import com.gemstone.gemfire.modules.util.ModuleStatistics;
+
+public class GemFireEntityRegion extends GemFireBaseRegion implements EntityRegion {
+
+  private final Logger log = LoggerFactory.getLogger(getClass());
+  
+  private final boolean USE_JTA = Boolean.getBoolean("gemfiremodules.useJTA");
+  
+  /**
+   * keys for which interest has been registered already
+   */
+  private ConcurrentMap<Object, Boolean> registeredKeys = new ConcurrentHashMap<Object, Boolean>();
+
+  /**
+   * map to store the entries that were pre-fetched when the underlying region has no local storage
+   */
+  protected ConcurrentMap<Object, EntityWrapper> preFetchMap = new ConcurrentHashMap<Object, EntityWrapper>();
+  
+  public GemFireEntityRegion(Region<Object, EntityWrapper> region,
+      boolean isClient, CacheDataDescription metadata, GemFireRegionFactory regionFactory) {
+    super(region, isClient, metadata, regionFactory);
+  }
+
+  @Override
+  public boolean isTransactionAware() {
+    // there are no colocation guarantees while using hibernate
+    // so return false for a PartitionedRegion for now
+    if (USE_JTA) {
+      return true;
+    }
+    return false;
+  }
+
+  @Override
+  public CacheDataDescription getCacheDataDescription() {
+    return this.metadata;
+  }
+
+  @Override
+  public EntityRegionAccessStrategy buildAccessStrategy(AccessType accessType)
+      throws CacheException {
+    if (AccessType.READ_ONLY.equals(accessType)) {
+      log.info("creating read-only access for region: " + this.getName());
+      return new ReadOnlyAccess(this);
+    }
+    else if (AccessType.NONSTRICT_READ_WRITE.equals(accessType)) {
+      log.info("creating nonstrict-read-write access for region: "
+          + this.getName());
+      return new NonStrictReadWriteAccess(this);
+    }
+    else if (AccessType.READ_WRITE.equals(accessType)) {
+    	log.info("creating read-write access for region: "
+    	          + this.getName());
+      return new ReadWriteAccess(this);
+    }
+    else if (AccessType.TRANSACTIONAL.equals(accessType)) {
+    	log.info("creating transactional access for region: "
+    	          + this.getName());
+      return new TransactionalAccess(this);
+    }
+    throw new UnsupportedOperationException("Unknown access type: "
+        + accessType);
+  }
+
+  /**
+   * Should this region should register interest in keys.
+   * @return true for client regions with storage
+   */
+  public boolean isRegisterInterestRequired() {
+    return this.isClientRegion && this.region.getAttributes().getDataPolicy().withStorage();
+  }
+  
+  /**
+   * register interest in this key, if not already registered
+   * @param key
+   */
+  public void registerInterest(Object key) {
+    if (!this.registeredKeys.containsKey(key)) {
+      this.region.registerInterest(key);
+      this.registeredKeys.put(key, Boolean.TRUE);
+      log.debug("registered interest in key{}", key);
+    }
+  }
+  
+  public void registerInterest(Collection<?> list) {
+    // build a list of keys for which interest is not
+    // already registered
+    List<Object> interestList = new ArrayList<Object>();
+    for (Object o : list) {
+      if (!this.registeredKeys.containsKey(o)) {
+        interestList.add(o);
+      }
+    }
+    // register interest in this list
+    this.region.registerInterest(interestList);
+    log.debug("registered interest in {} keys", interestList.size());
+  }
+  
+  /**
+   * wraps the keys in {@link KeyWrapper} and calls getAll
+   * on the underlying GemFire region. When the underlying region
+   * is a proxy region, the fetched entries are stored in a local
+   * map.
+   * @param keys
+   */
+  public void getAll(Collection<?> keys) {
+    Set<KeyWrapper> wrappedKeys = new HashSet<KeyWrapper>();
+    for (Object o : keys) {
+      wrappedKeys.add(new KeyWrapper(o));
+    }
+    if (isRegisterInterestRequired()) {
+      registerInterest(wrappedKeys);
+    } else {
+      Map<Object, EntityWrapper> retVal = this.region.getAll(wrappedKeys);
+      putInLocalMap(retVal);
+    }
+  }
+
+  /**
+   * if the underlying gemfire region does not have local storage, put
+   * the pre-fetched entries in {@link #preFetchMap}
+   * @param map map of prefetched entries
+   */
+  private void putInLocalMap(Map<Object, EntityWrapper> map) {
+    if (!this.region.getAttributes().getDataPolicy().withStorage()) {
+      // if the value is null, do not cache in preFetchMap
+      for (Entry<Object, EntityWrapper> e : map.entrySet()) {
+        if (e.getValue() != null) {
+          this.preFetchMap.put(e.getKey(), e.getValue());
+          log.debug("putting key: {} value: {} in local map", e.getKey(), e.getValue());
+        }
+      }
+    }
+  }
+
+  /**
+   * If this key was pre-fetched, get the entity.
+   * @param key
+   * @return the prefetched entity
+   */
+  public EntityWrapper get(Object key) {
+    return this.preFetchMap.remove(key);
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireQueryResultsRegion.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireQueryResultsRegion.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireQueryResultsRegion.java
new file mode 100644
index 0000000..ce06b85
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/GemFireQueryResultsRegion.java
@@ -0,0 +1,113 @@
+/*
+* 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.hibernate.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.QueryResultsRegion;
+import org.hibernate.cache.Timestamper;
+import org.hibernate.cache.TimestampsRegion;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.EntryNotFoundException;
+import com.gemstone.gemfire.cache.Region;
+
+public class GemFireQueryResultsRegion implements QueryResultsRegion, TimestampsRegion {
+
+  private final Region region;
+  
+  private Logger log = LoggerFactory.getLogger(getClass());
+  
+  public GemFireQueryResultsRegion(Region region) {
+    this.region = region;
+  }
+  
+  @Override
+  public Object get(Object key) throws CacheException {
+    log.debug("get query results for {} ", key);
+    return this.region.get(key);
+  }
+
+  @Override
+  public void put(Object key, Object value) throws CacheException {
+    log.debug("For key {} putting query results {} ", key, value);
+    this.region.put(key, value);
+  }
+
+  @Override
+  public void evict(Object key) throws CacheException {
+    log.debug("removing query results for key {}", key);
+    this.region.remove(key);
+  }
+
+  @Override
+  public void evictAll() throws CacheException {
+    log.debug("clearing the query cache");
+    this.region.clear();
+  }
+
+  @Override
+  public String getName() {
+    return this.region.getName();
+  }
+
+  @Override
+  public void destroy() throws CacheException {
+    if (!this.region.isDestroyed()) {
+      this.region.destroyRegion();
+    }
+  }
+
+  @Override
+  public boolean contains(Object key) {
+    return this.region.containsKey(key);
+  }
+
+  @Override
+  public long getSizeInMemory() {
+    return -1;
+  }
+
+  @Override
+  public long getElementCountInMemory() {
+    return this.region.size();
+  }
+
+  @Override
+  public long getElementCountOnDisk() {
+    // TODO make this an overflow region
+    return -1;
+  }
+
+  @Override
+  public Map toMap() {
+    return Collections.unmodifiableMap(this.region);
+  }
+
+  @Override
+  public long nextTimestamp() {
+    return Timestamper.next();
+  }
+
+  @Override
+  public int getTimeout() {
+    return 60*1000; // all other cache providers have same value
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/KeyWrapper.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/KeyWrapper.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/KeyWrapper.java
new file mode 100644
index 0000000..c321076
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/KeyWrapper.java
@@ -0,0 +1,93 @@
+/*
+* 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.hibernate.internal;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+
+import org.hibernate.cache.CacheKey;
+
+import com.gemstone.gemfire.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+
+/**
+ * wraps {@link CacheKey}, and implements equals and
+ * hashCode. This is required for register interest
+ * operation/prefetching
+ * @author sbawaska
+ *
+ */
+public class KeyWrapper implements DataSerializable {
+  
+  private Serializable key;
+  private String entityName;
+  
+  private static final String separator = "#";
+  
+  public KeyWrapper() {
+  }
+  
+  public KeyWrapper(Object p_key) {
+    if (p_key instanceof String) {
+      String stringKey = (String)p_key;
+      this.key = stringKey.substring(stringKey.indexOf(separator)+1);
+      this.entityName = stringKey.substring(0, stringKey.indexOf(separator));
+    } else {
+      CacheKey cacheKey = (CacheKey)p_key;
+      this.key = cacheKey.getKey();
+      this.entityName = cacheKey.getEntityOrRoleName();
+    }
+  }
+  
+  @Override
+  public boolean equals(Object obj) {
+    if (obj instanceof KeyWrapper) {
+      KeyWrapper other = (KeyWrapper)obj;
+      if (this.key.toString().equals(other.key.toString())
+          && this.entityName.equals(other.entityName)) {
+        return true;
+      }
+    }
+    return false;
+  }
+  
+  @Override
+  public int hashCode() {
+    return this.key.toString().hashCode() + this.entityName.hashCode();
+  }
+  
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder();
+    sb.append(this.entityName).append(separator).append(this.key);
+    return sb.toString();
+  }
+
+  @Override
+  public void toData(DataOutput out) throws IOException {
+    DataSerializer.writeObject(this.key, out);
+    out.writeUTF(this.entityName);
+  }
+
+  @Override
+  public void fromData(DataInput in) throws IOException, ClassNotFoundException {
+    this.key = DataSerializer.readObject(in);
+    this.entityName = in.readUTF();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/NonStrictReadWriteAccess.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/NonStrictReadWriteAccess.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/NonStrictReadWriteAccess.java
new file mode 100644
index 0000000..ad617e4
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/NonStrictReadWriteAccess.java
@@ -0,0 +1,83 @@
+/*
+* 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.hibernate.internal;
+
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.access.SoftLock;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NonStrictReadWriteAccess extends Access {
+
+  private Logger log = LoggerFactory.getLogger(getClass());
+
+  public NonStrictReadWriteAccess(GemFireEntityRegion region) {
+    super(region);
+  }
+
+  @Override
+  public SoftLock lockItem(Object key, Object version) throws CacheException {
+    log.debug("lock item called for key {}", key);
+    return null;
+  }
+
+  @Override
+  public boolean afterUpdate(Object key, Object value, Object currentVersion,
+      Object previousVersion, SoftLock lock) throws CacheException {
+    log.debug("after update called for key: {} value: {}", key, value);
+    getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L));
+    return true;
+  }
+  
+  @Override
+  public boolean update(Object key, Object value, Object currentVersion,
+      Object previousVersion) throws CacheException {
+    log.debug("updating key: {} value: {}", key, value);
+    getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L));
+    return true;
+  }
+//  
+//  @Override
+//  public boolean insert(Object key, Object value, Object version)
+//      throws CacheException {
+//    log.debug("inserting key:{} value:{}", key, value);
+//    getGemFireRegion().put(key, new EntityWrapper(value, -1L));
+//    return true;
+//  }
+//  
+//  @Override
+//  public boolean afterInsert(Object key, Object value, Object version)
+//      throws CacheException {
+//    log.debug("after insert called for key:{} value:{}", key, value);
+//    getGemFireRegion().put(key, new EntityWrapper(value, -1L));
+//    return true;
+//  }
+//  
+  @Override
+  public boolean putFromLoad(Object key, Object value, long txTimestamp,
+      Object version) throws CacheException {
+    return putFromLoad(key, value, txTimestamp, version, true);
+  }
+  
+  @Override
+  public boolean putFromLoad(Object key, Object value, long txTimestamp,
+      Object version, boolean minimalPutOverride) throws CacheException {
+    log.debug("putting a new entry from load key:{} value:{}", key, value);
+    getGemFireRegion().put(getWrappedKey(key), new EntityWrapper(value, -1L));
+    return true;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadOnlyAccess.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadOnlyAccess.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadOnlyAccess.java
new file mode 100644
index 0000000..6f54067
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadOnlyAccess.java
@@ -0,0 +1,55 @@
+/*
+* 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.hibernate.internal;
+
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.access.SoftLock;
+
+public class ReadOnlyAccess extends Access {
+
+  public ReadOnlyAccess(GemFireEntityRegion region) {
+    super(region);
+  }
+
+  @Override
+  public boolean insert(Object key, Object value, Object version)
+      throws CacheException {
+    throw new UnsupportedOperationException(
+        "insert not supported on read only access");
+  }
+
+  @Override
+  public boolean update(Object key, Object value, Object currentVersion,
+      Object previousVersion) throws CacheException {
+    throw new UnsupportedOperationException(
+        "update not supported on read only access");
+  }
+
+  @Override
+  public boolean afterInsert(Object key, Object value, Object version)
+      throws CacheException {
+    throw new UnsupportedOperationException(
+        "insert not supported on read only access");
+  }
+
+  @Override
+  public boolean afterUpdate(Object key, Object value, Object currentVersion,
+      Object previousVersion, SoftLock lock) throws CacheException {
+    throw new UnsupportedOperationException(
+        "update not supported on read only access");
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadWriteAccess.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadWriteAccess.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadWriteAccess.java
new file mode 100644
index 0000000..3c80174
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/ReadWriteAccess.java
@@ -0,0 +1,36 @@
+/*
+* 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.hibernate.internal;
+
+import org.hibernate.cache.CacheException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ReadWriteAccess extends Access {
+
+  private Logger log = LoggerFactory.getLogger(getClass());
+
+  public ReadWriteAccess(GemFireEntityRegion region) {
+    super(region);
+  }
+
+  @Override
+  public boolean update(Object key, Object value, Object currentVersion,
+      Object previousVersion) throws CacheException {
+    return super.update(key, value, currentVersion, previousVersion);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/RegionFactoryDelegate.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/RegionFactoryDelegate.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/RegionFactoryDelegate.java
new file mode 100644
index 0000000..76fdf77
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/RegionFactoryDelegate.java
@@ -0,0 +1,153 @@
+/*
+* 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.hibernate.internal;
+
+import java.util.Iterator;
+import java.util.Properties;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.DataPolicy;
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
+import com.gemstone.gemfire.cache.execute.FunctionService;
+import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
+import com.gemstone.gemfire.modules.hibernate.GemFireCacheProvider;
+import com.gemstone.gemfire.modules.util.BootstrappingFunction;
+import com.gemstone.gemfire.modules.util.CreateRegionFunction;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+
+public class RegionFactoryDelegate  {
+
+  private static final String LOG_FILE = "log-file";
+
+  private static final String CACHE_XML_FILE = "cache-xml-file";
+
+  private static final String DEFAULT_REGION_TYPE = RegionShortcut.REPLICATE_HEAP_LRU.name();
+
+  private static final String CLIENT_DEFAULT_REGION_TYPE = ClientRegionShortcut.PROXY.name();
+
+  protected final Properties gemfireProperties;
+  protected final Properties regionProperties;
+
+  protected Logger log = LoggerFactory.getLogger(getClass());
+  
+  private Cache cache;
+  
+  public RegionFactoryDelegate(Properties gemfireProperties, Properties regionProperties) {
+    this.gemfireProperties = gemfireProperties;
+    this.regionProperties = regionProperties;
+  }
+  
+  public GemFireCache startCache() {
+    log.info("Creating a GemFire cache");
+    checkExistingCache();
+    cache = new CacheFactory(gemfireProperties).create();
+    log.debug("GemFire cache creation completed");
+    FunctionService.onMembers(this.cache.getDistributedSystem()).execute(new BootstrappingFunction()).getResult();
+    FunctionService.registerFunction(new CreateRegionFunction(cache));
+    return cache;
+  }
+
+  /**
+   * When hibernate module is running within servlet container, we should
+   * check if http module is being used and make sure that we use 
+   * same cache-xml and log-file properties.
+   */
+  protected void checkExistingCache() {
+    Cache existingCache = GemFireCacheImpl.getInstance();
+    if (existingCache == null) {
+      return;
+    }
+    Properties existingProps = existingCache.getDistributedSystem().getProperties();
+    String cacheXML = existingProps.getProperty(CACHE_XML_FILE);
+    String logFile = existingProps.getProperty(LOG_FILE, "");
+    this.gemfireProperties.setProperty(CACHE_XML_FILE, cacheXML);
+    this.gemfireProperties.setProperty(LOG_FILE, logFile);
+    log.info("Existing GemFire cache detected. Using same "+CACHE_XML_FILE+":"+cacheXML+
+    " and "+LOG_FILE+":"+logFile+" as existing cache");
+  }
+  
+  public Region<Object, EntityWrapper> createRegion(String regionName) {
+    Region<Object, EntityWrapper> r = cache.getRegion(regionName);
+    if (r != null) {
+      // for  the peer-to-peer case, for now we assume that
+      // cache.xml will be the same for all peers
+      // TODO validate regions without this assumption
+      return r;
+    }
+    String regionType = getRegionType(regionName);
+    boolean isLocalRegion = regionType.contains("LOCAL") ? true : false;
+    RegionConfiguration regionConfig = new RegionConfiguration();
+    regionConfig.setRegionName(regionName);
+    regionConfig.setRegionAttributesId(regionType);
+    regionConfig.setCacheWriterName(EntityRegionWriter.class.getCanonicalName());
+    com.gemstone.gemfire.cache.RegionFactory<Object, EntityWrapper> rFactory = this.cache
+        .createRegionFactory(RegionShortcut.valueOf(regionType));
+    rFactory.setCacheWriter(new EntityRegionWriter());
+    if (isLocalRegion) {
+      rFactory.setDataPolicy(DataPolicy.REPLICATE);
+    }
+    r = rFactory.create(regionName);
+    // create same region on peers
+    if (!isLocalRegion) {
+      FunctionService.onMembers(this.cache.getDistributedSystem())
+          .withArgs(regionConfig).execute(CreateRegionFunction.ID).getResult();
+    }
+    return r;
+  }
+
+  /**
+   * returns the type of region to create by consulting the properties specified
+   * in hibernate.cfg.xml
+   * 
+   * @see #createRegion(String)
+   * @param regionName
+   * @return string representation of {@link RegionShortcut}
+   * @see GemFireCacheProvider
+   */
+  protected String getRegionType(String regionName) {
+    String rType = getOverridenRegionType(regionName);
+    if (rType != null) {
+      return rType.toUpperCase();
+    }
+    rType = regionProperties
+        .getProperty("gemfire.default-region-attributes-id");
+    if (rType == null) {
+      rType =  DEFAULT_REGION_TYPE;
+    }
+    return rType.toUpperCase();
+  }
+
+  private String getOverridenRegionType(String regionName) {
+    String rType = null;
+    Iterator<Object> it = regionProperties.keySet().iterator();
+    while (it.hasNext()) {
+      String current = (String)it.next();
+      if (current.contains(regionName)) {
+        rType = regionProperties.getProperty(current);
+        break;
+      }
+    }
+    return rType;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/TransactionalAccess.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/TransactionalAccess.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/TransactionalAccess.java
new file mode 100644
index 0000000..f12eab9
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/TransactionalAccess.java
@@ -0,0 +1,25 @@
+/*
+ * 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.hibernate.internal;
+
+public class TransactionalAccess extends Access {
+
+  public TransactionalAccess(GemFireEntityRegion region) {
+    super(region);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Event.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Event.java b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Event.java
new file mode 100644
index 0000000..962c083
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/Event.java
@@ -0,0 +1,67 @@
+/*
+* 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;
+
+import java.util.Date;
+
+public class Event {
+    private Long id;
+
+    private String title;
+    private Date date;
+    private int i;
+
+    public Event() {}
+
+    public Long getId() {
+        return id;
+    }
+
+    private void setId(Long id) {
+        this.id = id;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public Integer getVersion() {
+    	return i;
+    }
+    
+    public void setVersion(int i) {
+    	this.i = i;
+    }
+    
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+    @Override
+    public String toString() {
+    	StringBuilder b = new StringBuilder();
+    	b.append("Event:id:"+id+" title:"+title+" date:"+date);
+    	return b.toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/HibernateJUnitTest.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/HibernateJUnitTest.java b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/HibernateJUnitTest.java
new file mode 100644
index 0000000..9a86f10
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/test/java/com/gemstone/gemfire/modules/HibernateJUnitTest.java
@@ -0,0 +1,410 @@
+/*
+* 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;
+
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.Region.Entry;
+import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
+import com.gemstone.gemfire.modules.Owner.Status;
+import com.gemstone.gemfire.test.junit.categories.IntegrationTest;
+import org.hibernate.Query;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.cfg.AnnotationConfiguration;
+import org.hibernate.cfg.Configuration;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+import java.util.logging.Level;
+
+import static org.junit.Assert.assertEquals;
+
+@Category(IntegrationTest.class)
+public class HibernateJUnitTest {
+
+  private Logger log = LoggerFactory.getLogger(getClass());
+
+  //private static final String jdbcURL = "jdbc:hsqldb:hsql://localhost/test";
+  private static final String jdbcURL = "jdbc:hsqldb:mem:test";
+
+  static File tmpDir;
+
+  static String gemfireLog;
+
+  @Before
+  public void setUp() throws Exception {
+    // Create a per-user scratch directory
+    tmpDir = new File(System.getProperty("java.io.tmpdir"),
+            "gemfire_modules-" + System.getProperty("user.name"));
+    tmpDir.mkdirs();
+    tmpDir.deleteOnExit();
+
+    gemfireLog = tmpDir.getPath() +
+            System.getProperty("file.separator") + "gemfire_modules.log";
+  }
+
+  public static SessionFactory getSessionFactory(Properties overrideProps) {
+    System.setProperty("gemfire.home", "GEMFIREHOME");
+    Configuration cfg = new Configuration();
+    cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
+    cfg.setProperty("hibernate.connection.driver_class",
+        "org.hsqldb.jdbcDriver");
+    // cfg.setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:test");
+    cfg.setProperty("hibernate.connection.url", jdbcURL);
+    cfg.setProperty("hibernate.connection.username", "sa");
+    cfg.setProperty("hibernate.connection.password", "");
+    cfg.setProperty("hibernate.connection.pool_size", "1");
+    cfg.setProperty("hibernate.connection.autocommit", "true");
+    cfg.setProperty("hibernate.hbm2ddl.auto", "update");
+
+    cfg.setProperty("hibernate.cache.region.factory_class",
+        "com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory");
+    cfg.setProperty("hibernate.show_sql", "true");
+    cfg.setProperty("hibernate.cache.use_query_cache", "true");
+    //cfg.setProperty("gemfire.mcast-port", AvailablePort.getRandomAvailablePort(AvailablePort.JGROUPS)+"");
+    cfg.setProperty("gemfire.mcast-port", "0");
+    cfg.setProperty("gemfire.statistic-sampling-enabled", "true");
+    cfg.setProperty("gemfire.log-file", gemfireLog);
+    cfg.setProperty("gemfire.writable-working-dir", tmpDir.getPath());
+    //cfg.setProperty("gemfire.statistic-archive-file", "plugin-stats-file.gfs");
+    //cfg.setProperty("gemfire.default-client-region-attributes-id", "CACHING_PROXY");
+    //cfg.setProperty("gemfire.cache-topology", "client-server");
+    //cfg.setProperty("gemfire.locators", "localhost[5432]");
+    //cfg.setProperty("gemfire.log-level", "fine");
+    // cfg.setProperty("", "");
+    cfg.addClass(Person.class);
+    cfg.addClass(Event.class);
+    if (overrideProps != null) {
+      Iterator it = overrideProps.keySet().iterator();
+      while (it.hasNext()) {
+        String key = (String)it.next();
+        cfg.setProperty(key, overrideProps.getProperty(key));
+      }
+    }
+    return cfg.buildSessionFactory();
+  }
+
+  @Test
+  public void testpreload() {
+    log.info("SWAP:creating session factory In hibernateTestCase");
+
+    Session session = getSessionFactory(null).openSession();
+    log.info("SWAP:session opened");
+    session.beginTransaction();
+    Event theEvent = new Event();
+    theEvent.setTitle("title");
+    theEvent.setDate(new Date());
+    session.save(theEvent);
+    Long id = theEvent.getId();
+    session.getTransaction().commit();
+    session.beginTransaction();
+    Event ev = (Event)session.get(Event.class, id);
+    log.info("SWAP:load complete: " + ev);
+    session.getTransaction().commit();
+  }
+
+  @Test
+  public void testNothing() throws Exception {
+    java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL);
+    log.info("SWAP:creating session factory In hibernateTestCase");
+
+    Session session = getSessionFactory(null).openSession();
+    log.info("SWAP:session opened");
+    // session.setFlushMode(FlushMode.COMMIT);
+    session.beginTransaction();
+    Event theEvent = new Event();
+    theEvent.setTitle("title");
+    theEvent.setDate(new Date());
+    //session.save(theEvent);
+    session.persist(theEvent);
+    Long id = theEvent.getId();
+    session.getTransaction().commit();
+    log.info("commit complete...doing load");
+    session.beginTransaction();
+    Event ev = (Event)session.load(Event.class, id);
+    log.info("load complete: " + ev);
+    log.trace("SWAP");
+    ev.setTitle("newTitle");
+    session.save(ev);
+    log.info("commit");
+    session.getTransaction().commit();
+    log.info("save complete " + ev);
+
+    session.beginTransaction();
+    ev = (Event)session.load(Event.class, id);
+    log.info("load complete: " + ev);
+    ev.setTitle("newTitle2");
+    session.save(ev);
+    log.info("commit");
+    session.getTransaction().commit();
+    log.info("save complete " + ev);
+
+    ev = (Event)session.load(Event.class, id);
+    log.info("second load " + ev);
+    session.flush();
+    session.close();
+    log.info("flush complete session:" + session);
+
+    for (int i=0; i<5; i++) {
+      session = getSessionFactory(null).openSession();
+      log.info("doing get "+id);
+      // ev = (Event) session.load(Event.class, id);
+      ev = (Event)session.get(Event.class, id);
+      log.info("third load " + ev);
+    }
+    printExistingDB();
+    Iterator it = GemFireCacheImpl.getInstance().rootRegions().iterator();
+    while (it.hasNext()) {
+      Region r = (Region)it.next();
+      System.out.println("Region:"+r);
+      Iterator enIt = r.entrySet().iterator();
+      while (enIt.hasNext()) {
+        Region.Entry re = (Entry)enIt.next();
+        System.out.println("key:"+re.getKey()+" value:"+re.getValue());
+      }
+    }
+    Thread.sleep(3000);
+     //System.in.read();
+    // try direct data
+
+  }
+
+  public void _testInvalidation() {
+    Session s = getSessionFactory(null).openSession();
+  }
+
+  static Long personId;
+
+  @Test
+  public void testRelationship() throws Exception {
+    //java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.ALL);
+    Properties props = new Properties();
+    props.put("gemfire.topology", "client-server");
+    Session session = getSessionFactory(null).openSession();
+    session.beginTransaction();
+
+    Person thePerson = new Person();
+    thePerson.setFirstname("foo");
+    thePerson.setLastname("bar");
+    thePerson.setAge(1);
+    thePerson.setId(99L);
+    session.save(thePerson);
+    personId = thePerson.getId();
+    log.info("person saved");
+    
+    Event theEvent = new Event();
+    theEvent.setTitle("title");
+    theEvent.setDate(new Date());
+    session.save(theEvent);
+    Long eventId = theEvent.getId();
+    log.info("event saved");
+    
+    Event theEvent2 = new Event();
+    theEvent2.setTitle("title2");
+    theEvent2.setDate(new Date());
+    session.save(theEvent2);
+    Long eventId2 = theEvent2.getId();
+    log.info("event2 saved");
+    session.getTransaction().commit();
+    
+    session.beginTransaction();
+    Person aPerson = (Person) session.load(Person.class, personId);
+    Event anEvent = (Event) session.load(Event.class, eventId);
+    Event anEvent2 = (Event) session.load(Event.class, eventId2);
+    log.info("adding event to person");
+    aPerson.getE().add(anEvent);
+    aPerson.getE().add(anEvent2);
+    log.info("calling commit");
+
+    session.getTransaction().commit();
+    log.info("commit complete");
+    session.close();
+    log.info("opening new session");
+    session = getSessionFactory(null).openSession();
+    log.info("SWAP:loading person");
+    aPerson = (Person)session.load(Person.class, personId);
+    log.info("loading events");
+    Iterator<Event> e = aPerson.getE().iterator();
+    while (e.hasNext()) {
+      e.next();
+    }
+    session.close();
+    log.info("opening new session");
+    session = getSessionFactory(null).openSession();
+    log.info("SWAP:loading person");
+    aPerson = (Person)session.load(Person.class, personId);
+    log.info("loading events");
+    e = aPerson.getE().iterator();
+    while (e.hasNext()) {
+      e.next();
+    }
+
+    log.info(aPerson.getE()+"");
+    session.close();
+    //System.in.read();
+//    log.info("opening third session");
+//    session = getSessionFactory().openSession();
+//    log.info("loading person");
+//    aPerson = (Person)session.load(Person.class, personId);
+//    log.info("loading events");
+//    log.info(aPerson.getEvents()+"");
+  }
+  
+  public void _testQueryCache() throws Exception {
+    Session session = getSessionFactory(null).openSession();
+    Query q = session.createQuery("from Event");
+    q.setCacheable(true);
+    List l = q.list();
+    log.info("list:"+l);
+//    log.info("Sleeping for 10 seconds");
+//    Thread.sleep(10000);
+    l = q.list();
+    log.info("list2:"+l);
+    log.info("updating an event");
+    session.beginTransaction();
+    Event e = (Event)l.get(0);
+    e.setDate(new Date());
+    session.saveOrUpdate(e);
+    session.getTransaction().commit();
+    l = q.list();
+    log.info("list3:"+l);
+  }
+
+  @Test
+  public void testInsert() {
+    Session session = getSessionFactory(null).openSession();
+    Region r = GemFireCacheImpl.getExisting().getRegion(Person.class.getCanonicalName());
+    int initSize = r.size();
+    session.beginTransaction();
+    log.info("SWAP: Saving Person");
+    Person p = new Person();
+    p.setId(10L);
+    p.setFirstname("foo");
+    p.setLastname("bar");
+    session.saveOrUpdate("Person", p);
+    session.getTransaction().commit();
+    assertEquals(1, session.getStatistics().getEntityCount());
+    assertEquals(initSize+1, r.size());
+
+    session.beginTransaction();
+    p.setAge(1);
+    session.saveOrUpdate(p);
+    session.getTransaction().commit();
+    assertEquals(1, session.getStatistics().getEntityCount());
+  }
+
+  @Test
+  public void testNormalRegion() {
+    Properties props = new Properties();
+    props.setProperty("gemfire.default-region-attributes-id", "LOCAL");
+    Session session = getSessionFactory(props).openSession();
+    session.beginTransaction();
+    Event theEvent = new Event();
+    theEvent.setTitle("title");
+    theEvent.setDate(new Date());
+    session.save(theEvent);
+    Long id = theEvent.getId();
+    session.getTransaction().commit();
+    session.beginTransaction();
+    Event ev = (Event)session.load(Event.class, id);
+    ev.setTitle("newTitle");
+    session.save(ev);
+    session.getTransaction().commit();
+  }
+  
+  private void printExistingDB() throws SQLException {
+    try {
+      Class.forName("org.hsqldb.jdbc.JDBCDriver");
+    }
+    catch (Exception e) {
+      System.err.println("ERROR: failed to load HSQLDB JDBC driver.");
+      e.printStackTrace();
+      return;
+    }
+
+    Connection c = DriverManager.getConnection(jdbcURL, "SA", "");
+    log.info("issuing query...");
+    ResultSet rs = c.createStatement().executeQuery("select * from events");
+    int col = rs.getMetaData().getColumnCount();
+    while (rs.next()) {
+      StringBuilder b = new StringBuilder();
+      for (int i = 1; i <= col; i++) {
+        b.append(" col:" + i + ":" + rs.getString(i));
+      }
+      log.info("Query result:" + b.toString());
+    }
+  }
+
+  @Test
+  public void testEnum() {
+    AnnotationConfiguration cfg = new AnnotationConfiguration();
+    cfg.addAnnotatedClass(Owner.class);
+    cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
+    cfg.setProperty("hibernate.connection.driver_class",
+        "org.hsqldb.jdbcDriver");
+    cfg.setProperty("hibernate.connection.url", jdbcURL);
+    cfg.setProperty("hibernate.connection.username", "sa");
+    cfg.setProperty("hibernate.connection.password", "");
+    cfg.setProperty("hibernate.connection.pool_size", "1");
+    cfg.setProperty("hibernate.connection.autocommit", "true");
+    cfg.setProperty("hibernate.hbm2ddl.auto", "update");
+
+    cfg.setProperty("hibernate.cache.region.factory_class",
+        "com.gemstone.gemfire.modules.hibernate.GemFireRegionFactory");
+    cfg.setProperty("hibernate.show_sql", "true");
+    cfg.setProperty("hibernate.cache.use_query_cache", "true");
+    cfg.setProperty("gemfire.statistic-sampling-enabled", "true");
+    cfg.setProperty("gemfire.log-file", gemfireLog);
+    cfg.setProperty("gemfire.writable-working-dir", tmpDir.getPath());
+    cfg.setProperty("gemfire.mcast-port", "0");
+    //cfg.setProperty("gemfire.cache-topology", "client-server");
+
+    SessionFactory sf = cfg.buildSessionFactory();
+    Session session = sf.openSession();
+    session.beginTransaction();
+    Owner o = new Owner();
+    o.setAddress("addr");
+    o.setCity("pdx");
+    o.setStatus(Status.PREMIUM);
+    session.save(o);
+    long id = o.getId();
+    log.info("testEnum:commiting tx");
+    session.getTransaction().commit();
+    session.close();
+    
+    session = sf.openSession();
+    Owner o1 = (Owner) session.load(Owner.class, id);
+    log.info("loaded:"+o);
+    assertEquals(o.getAddress(), o1.getAddress());
+    assertEquals(o.getCity(), o1.getCity());
+    assertEquals(o.getStatus(), o1.getStatus());
+    o1.setAddress("address2");
+    session.save(o1);
+  }
+}


[05/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MemberInfoWithStatsMBean.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MemberInfoWithStatsMBean.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MemberInfoWithStatsMBean.java
deleted file mode 100644
index 8e097b0..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/MemberInfoWithStatsMBean.java
+++ /dev/null
@@ -1,1388 +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.admin.jmx.internal;
-
-import java.net.InetAddress;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.concurrent.atomic.AtomicLong;
-
-import javax.management.InstanceNotFoundException;
-import javax.management.ListenerNotFoundException;
-import javax.management.MBeanAttributeInfo;
-import javax.management.MBeanException;
-import javax.management.MBeanNotificationInfo;
-import javax.management.MBeanOperationInfo;
-import javax.management.MBeanParameterInfo;
-import javax.management.MBeanRegistrationException;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.NotificationBroadcasterSupport;
-import javax.management.NotificationEmitter;
-import javax.management.NotificationFilter;
-import javax.management.NotificationListener;
-import javax.management.ObjectName;
-import javax.management.OperationsException;
-import javax.management.ReflectionException;
-
-import org.apache.logging.log4j.Logger;
-
-import mx4j.AbstractDynamicMBean;
-
-import com.gemstone.gemfire.admin.AdminDistributedSystem;
-import com.gemstone.gemfire.admin.AdminException;
-import com.gemstone.gemfire.admin.CacheVm;
-import com.gemstone.gemfire.admin.ConfigurationParameter;
-import com.gemstone.gemfire.admin.GemFireMemberStatus;
-import com.gemstone.gemfire.admin.RegionSubRegionSnapshot;
-import com.gemstone.gemfire.admin.StatisticResource;
-import com.gemstone.gemfire.admin.SystemMember;
-import com.gemstone.gemfire.admin.SystemMemberCacheServer;
-import com.gemstone.gemfire.admin.jmx.Agent;
-import com.gemstone.gemfire.cache.InterestPolicy;
-import com.gemstone.gemfire.cache.SubscriptionAttributes;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.internal.GemFireVersion;
-import com.gemstone.gemfire.internal.admin.remote.ClientHealthStats;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-import com.gemstone.gemfire.internal.logging.LogService;
-import com.gemstone.gemfire.internal.logging.log4j.LocalizedMessage;
-
-/**
- * This class uses the JMX Attributes/Operations that use (return/throw) 
- * GemFire types. This is the single MBean accessible with ObjectName string
- * {@link MemberInfoWithStatsMBean#MBEAN_NAME}}. This MBean can be used to 
- * retrieve the all member details as plain java types.
- * 
- * This MBean also acts as a Notification Hub for all the Notifications that are 
- * defined for Admin Distributed System. 
- * 
- * @author abhishek
- * 
- * @since 6.5
- */
-public class MemberInfoWithStatsMBean extends AbstractDynamicMBean 
-                                 implements NotificationEmitter {
-  private static final Logger logger = LogService.getLogger();
-  
-  /* constants defining max no of attributes/operations/notifications */
-  private static final int MAX_ATTRIBUTES_COUNT    = 3;
-  private static final int MAX_OPERATIONS_COUNT    = 3;
-  private static final int MAX_NOTIFICATIONS_COUNT = 9;
-  
-  private static final String NOT_AVAILABLE_STR = "N/A";
-  private static final String NOT_AVAILABLE = null;
-  private static final Number NOT_AVAILABLE_NUMBER = null;
-
-  /* String constant used for a region that is used on admin side just as a root 
-   * for rootRegions defined on the member */
-  private static final String PLACE_HOLDER_ROOT_REGION = "/Root/";
-
-  /* String that are used to form QueryExp/ObjectName for querying MBeanServer */
-  private static final String REGION_QUERY_EXPRESSION = "*GemFire.Cache*:*,owner={0},type=Region";  
-  private static final String STATS_QUERY_EXPRESSION  = "*GemFire.Statistic*:*,source={0},name={1}";
-  
-  /** mbean name string for this MBean */
-  /*default*/static final String  MBEAN_NAME = "GemFire:type=MemberInfoWithStatsMBean";
-
-  /** ObjectName handle for this MBean */
-  private ObjectName objectName;
-  
-  /** version of the GemFire Enterprise system that is running */
-  private String                        version;
-  private int                           refreshInterval;
-  private String                        id;
-  
-  private Agent                         agent;
-  private AdminDistributedSystemJmxImpl adminDSJmx;
-  
-  private NotificationForwarder         forwarder;
-  private boolean                       isInitialized;//needs synchronization?
-
-  /**
-   * Default Constructor
-   * 
-   * @param agent Admin Agent instance
-   * @throws OperationsException if ObjectName can't be formed for this MBean
-   * @throws MBeanRegistrationException 
-   * @throws AdminException 
-   */
-  MemberInfoWithStatsMBean(Agent agent) throws OperationsException, MBeanRegistrationException, AdminException {
-    this.agent           = agent;
-    this.objectName      = ObjectName.getInstance(MBEAN_NAME);
-    this.version         = GemFireVersion.getGemFireVersion();
-    this.refreshInterval = -1;
-    this.id              = NOT_AVAILABLE_STR;
-    this.forwarder       = new NotificationForwarder(agent.getMBeanServer());
-  }
-
-  /**
-   * Returns attributes defined for this MBean as an array of 
-   * MBeanAttributeInfo objects.
-   * 
-   * @return attributes defined as an array of MBeanAttributeInfo objects.
-   */
-  @Override
-  protected MBeanAttributeInfo[] createMBeanAttributeInfo() {
-    MBeanAttributeInfo[] attributesInfo = new MBeanAttributeInfo[MAX_ATTRIBUTES_COUNT];
-    
-    /* First letter in attribute name has to be 'V' so that getVersion is 
-     * called. With 'v' it looks for getversion, same for others */
-    attributesInfo[0] = new MBeanAttributeInfo("Version", 
-                                               String.class.getName(), 
-                                               "GemFire Enterprise Version", 
-                                               true,  /*readable*/ 
-                                               false, /*writable*/ 
-                                               false);/*has getter with name like 'is****'*/
-    
-    attributesInfo[1] = new MBeanAttributeInfo("RefreshInterval", 
-                                               String.class.getName(), 
-                                               "The interval (in seconds) between auto-polling for updating member & statistics resources. If this is '-1', it means the this MBean has not yet been initialized. First call to getMembers operation will initialize this MBean.", 
-                                               true,  /*readable*/ 
-                                               false, /*writable*/ 
-                                               false);/*has getter with name like 'is****'*/
-    
-    attributesInfo[2] = new MBeanAttributeInfo("Id", 
-                                               String.class.getName(), 
-                                               "Identifier of the GemFire Enterprise. If this is 'N/A', it means the this MBean has not yet been initialized. First call to getMembers operation will initialize this MBean.", 
-                                               true,  /*readable*/ 
-                                               false, /*writable*/ 
-                                               false);/*has getter with name like 'is****'*/   
-    
-    
-    return attributesInfo;
-  }
-  
-  /**
-   * Returns operations defined for this MBean as an array of 
-   * MBeanOperationInfo objects.
-   * 
-   * @return operations defined as an array of MBeanOperationInfo objects. 
-   */
-  @Override
-  protected MBeanOperationInfo[] createMBeanOperationInfo() {
-    MBeanOperationInfo[] operationsInfo = new MBeanOperationInfo[MAX_OPERATIONS_COUNT];
-    
-    operationsInfo[0] = new MBeanOperationInfo("getMembers", 
-                                               "Returns ids as strings for all the members - Application Peers & Cache Servers.", 
-                                               new MBeanParameterInfo[] {}, 
-                                               String[].class.getName(), 
-                                               MBeanOperationInfo.ACTION_INFO);
-    
-    MBeanParameterInfo[] getMemberDetailsArgs = new MBeanParameterInfo[1];
-    getMemberDetailsArgs[0] = new MBeanParameterInfo("memberId", String.class.getName(), "Id of the member for all the details are to be retrieved.");
-    operationsInfo[1] = new MBeanOperationInfo("getMemberDetails", 
-                                                "Returns details for a given member", 
-                                                getMemberDetailsArgs, 
-                                                Map.class.getName(), 
-                                                MBeanOperationInfo.ACTION_INFO);
-    
-    /* For retrieving ObjectNames of existing Region MBeans, MBeanServerConnection.queryMBeans(), could be called */
-    MBeanParameterInfo[] getRegionSnapArgs = new MBeanParameterInfo[1];
-    getRegionSnapArgs[0] = new MBeanParameterInfo("memberId", String.class.getName(), "Id of the member on which we want to discover all the region MBean.");
-    operationsInfo[2] = new MBeanOperationInfo("getRegions", 
-                                                "Returns a java.util.Map of details of regions on a member", 
-                                                getRegionSnapArgs, 
-                                                Map.class.getName(), 
-                                                MBeanOperationInfo.ACTION_INFO);
-
-    
-    return operationsInfo;
-  }
-
-  /**
-   * Returns notifications defined for this MBean as an array of
-   * MBeanNotificationInfo objects.
-   * 
-   * @return notification definitions as an array of MBeanNotificationInfo
-   *         objects.
-   */
-  @Override
-  protected MBeanNotificationInfo[] createMBeanNotificationInfo() {
-    MBeanNotificationInfo[] notificationsInfo = new MBeanNotificationInfo[MAX_NOTIFICATIONS_COUNT];
-    
-    String[] notificationTypes = new String[] {AdminDistributedSystemJmxImpl.NOTIF_MEMBER_JOINED};
-    notificationsInfo[0] = new MBeanNotificationInfo(notificationTypes,
-                                                    Notification.class.getName(), 
-                                                    "A GemFire manager, cache, or other member has joined this distributed system.");
-    
-    notificationTypes = new String[] {AdminDistributedSystemJmxImpl.NOTIF_MEMBER_LEFT};
-    notificationsInfo[1] = new MBeanNotificationInfo(notificationTypes, 
-                                                    Notification.class.getName(), 
-                                                    "A GemFire manager, cache, or other member has left the distributed system.");
-    
-    notificationTypes = new String[] {AdminDistributedSystemJmxImpl.NOTIF_MEMBER_CRASHED};
-    notificationsInfo[2] = new MBeanNotificationInfo(notificationTypes, 
-                                                    Notification.class.getName(), 
-                                                    "A member of this distributed system has crashed instead of leaving cleanly.");
-    
-    notificationTypes = new String[] {AdminDistributedSystemJmxImpl.NOTIF_ALERT};
-    notificationsInfo[3] = new MBeanNotificationInfo(notificationTypes, 
-                                                    Notification.class.getName(), 
-                                                    "A member of this distributed system has generated an alert.");
-    
-    notificationTypes = new String[] {AdminDistributedSystemJmxImpl.NOTIF_ADMIN_SYSTEM_DISCONNECT};
-    notificationsInfo[4] = new MBeanNotificationInfo(notificationTypes, 
-                                                    Notification.class.getName(), 
-                                                    "A GemFire manager, cache, or other member has joined this distributed system.");
-    
-    notificationTypes = new String[] {SystemMemberJmx.NOTIF_CACHE_CREATED};
-    notificationsInfo[5] = new MBeanNotificationInfo(notificationTypes, 
-                                                    Notification.class.getName(), 
-                                                    "A cache got created on a member of this distributed system.");
-    
-    notificationTypes = new String[] {SystemMemberJmx.NOTIF_CACHE_CLOSED};
-    notificationsInfo[6] = new MBeanNotificationInfo(notificationTypes, 
-                                                    Notification.class.getName(), 
-                                                    "A cache is closed on a member of this distributed system.");
-    
-    notificationTypes = new String[] {SystemMemberJmx.NOTIF_REGION_CREATED};
-    notificationsInfo[7] = new MBeanNotificationInfo(notificationTypes, 
-                                                    Notification.class.getName(), 
-                                                    "A region is created in a cache on a member of this distributed system.");
-    
-    notificationTypes = new String[] {SystemMemberJmx.NOTIF_REGION_LOST};
-    notificationsInfo[8] = new MBeanNotificationInfo(notificationTypes, 
-                                                    Notification.class.getName(), 
-                                                    "A region was removed from a cache on a member of this distributed system.");
-
-//  String[] notificationTypes5 = new String[] {AdminDistributedSystemJmxImpl.NOTIF_STAT_ALERT};
-//  notificationsInfo[9] = new MBeanNotificationInfo(notificationTypes5, 
-//                                                  Notification.class.getName(), 
-//                                                  "An alert based on statistic(s) has been raised.");    
-
-    return notificationsInfo;
-  }
-  
-  /**
-   * 
-   * @return ObjectName of this MBean
-   */
-  /*default*/ ObjectName getObjectName() {
-    return objectName;
-  }
-
-  /**
-   * Returns the version of the GemFire Enterprise instance as a string.
-   * 
-   * @return GemFire Enterprise version string derived from {@link GemFireVersion}
-   */
-  /* getter for attribute - Version */
-  public String getVersion() {
-    return version;
-  }
-
-  /**
-   * @return the refreshInterval
-   */
-  public int getRefreshInterval() {
-    return refreshInterval;
-  }
-
-  /**
-   * @return the id
-   */
-  public String getId() {
-    return id;
-  }
-
-  /**
-   * Connects the Admin Agent in the DS
-   * 
-   * @return AdminDistributedSystem MBean ObjectName
-   * @throws OperationsException
-   *           if connection to the DS fails
-   * @throws AdminException
-   *           if connection to the DS fails
-   */
-  private ObjectName connectToSystem() throws OperationsException, AdminException {
-    ObjectName adminDsObjName = agent.connectToSystem();
-    
-    AdminDistributedSystem adminDS = agent.getDistributedSystem();
-    if (adminDSJmx == null && adminDS instanceof AdminDistributedSystemJmxImpl) {//instanceof checks for null
-      adminDSJmx      = (AdminDistributedSystemJmxImpl) adminDS;
-      refreshInterval = adminDSJmx.getRefreshInterval();
-      id              = adminDSJmx.getId();
-      forwarder.registerNotificationListener(adminDSJmx.getObjectName());
-    }
-
-    return adminDsObjName;
-  }
-  
-  /**
-   * 
-   * @param memberId
-   * @return SystemMemberJmx instance for given memberId
-   * @throws AdminException
-   */
-  private SystemMemberJmx findMember(String memberId) throws AdminException {
-    SystemMemberJmx foundMember = null;
-    
-    if (agent.isConnected()) {
-      SystemMember[] members = adminDSJmx.getSystemMemberApplications();
-      for (SystemMember app : members) {
-        if (app.getId().equals(memberId)) {
-          foundMember = (SystemMemberJmx) app;
-          break;
-        }
-      }
-      
-      if (foundMember == null) {
-        members = adminDSJmx.getCacheVms();
-        for (SystemMember cacheVm : members) {
-          if (cacheVm.getId().equals(memberId)) {
-            foundMember = (SystemMemberJmx) cacheVm;
-            break;
-          }
-        }
-      }
-    }
-    
-    return foundMember;
-  }
-
-  /**
-   * Return ObjectNames for all the Member MBeans in the DS.
-   * 
-   * @return Array of ObjectNames of all Member MBeans
-   * @throws OperationsException
-   *           if (1)agent could not connect in the DS OR 
-   *           (2)Notification Listener could not be registered for the Admin 
-   *              DS MBean OR
-   *           (3)fails to retrieve information from Admin DS
-   */
-  public String[] getMembers() throws OperationsException {
-    String[] members = new String[0];
-      
-    try {
-      if (!isInitialized) {
-        initializeAll(); //initialize if not yet
-      }
-
-      if (adminDSJmx != null) {
-        CacheVm[]      cacheVms = adminDSJmx.getCacheVms();
-        SystemMember[] appVms   = adminDSJmx.getSystemMemberApplications();
-        
-        List<String> membersList = new ArrayList<String>();
-        if (cacheVms != null && cacheVms.length !=0) {
-          for (SystemMember cacheVm : cacheVms) {
-            membersList.add(cacheVm.getId());
-          }
-        }
-        if (appVms != null && appVms.length !=0) {
-          for (SystemMember appVm : appVms) {
-            membersList.add(appVm.getId());
-          }
-        }
-        members = new String[membersList.size()];
-        members = membersList.toArray(members);
-      }
-    } catch (AdminException e) {
-      logger.warn(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_FOR_OPERATION_0, "getMembers"), e);
-      throw new OperationsException(e.getMessage());
-    } catch (Exception e) {
-      logger.warn(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_FOR_OPERATION_0, "getMembers"), e);
-      throw new OperationsException(e.getMessage());
-    }
-    
-    return members;
-  }
-
-  /**
-   * Returns information including ObjectNames for all regions on a member with
-   * given member id.
-   * 
-   * @param memberId
-   *          member identifier as a String
-   * @return Map of details of all regions on a member with given id
-   * @throws OperationsException
-   *           if fails to retrieve the regions information
-   */
-  public Map<String, Map<String, ?>> getRegions(String memberId) throws OperationsException {
-    Map<String, Map<String, ?>> regionsInfo = new LinkedHashMap<String, Map<String, ?>>();
-    
-    if (memberId != null) {
-      try {
-        SystemMemberJmx foundMember = findMember(memberId);
-        if (foundMember != null) {
-          SystemMemberCacheJmxImpl cache = (SystemMemberCacheJmxImpl) foundMember.getCache();
-          if (cache != null) {
-            Map<String, ObjectName> existingRegionMbeans = getExistingRegionMbeansFullPaths(memberId);
-            //TODO: this is in-efficient
-            //Can a region.create JMX notification be used?
-            regionsInfo = getAllRegionsDetails(cache, existingRegionMbeans);
-            existingRegionMbeans.clear();
-          }
-        }
-      } catch (AdminException e) {
-        logger.warn(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_FOR_OPERATION_0_FOR_MEMBER_1, new Object[]{"getRegions", memberId}), e);
-        throw new OperationsException(e.getMessage());
-      } catch (Exception e) {
-        logger.warn(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_FOR_OPERATION_0_FOR_MEMBER_1, new Object[]{"getRegions", memberId}), e);
-        throw new OperationsException(e.getMessage());
-      }
-    }
-    
-    return regionsInfo;
-  }
-  
-  /* **************************************************************************/
-  /* ************* INITIALIZE THE ENTIRE ADMIN DS AT A TIME *******************/
-  /* **************************************************************************/
-  /**
-   * Initializes all the possible MBeans for all the members.
-   * 
-   */
-  private void initializeAll() throws OperationsException {
-    try {
-      connectToSystem();
-      if (adminDSJmx != null) {
-        //Members are already inited after connectToSystem. Now init Cache, Region & Stats MBeans
-        SystemMember[] cacheVms = adminDSJmx.getCacheVms();
-        for (int i = 0; i < cacheVms.length; i++) {
-          try {
-            initializeCacheRegionsAndStats((SystemMemberJmx)cacheVms[i]);
-          } catch (AdminException e) {
-            logger.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_INTIALIZING_0_CONTINUING, 
-                           cacheVms[i].getId()), e);
-          }
-        }
-        SystemMember[] appVms = adminDSJmx.getSystemMemberApplications();
-        for (int i = 0; i < appVms.length; i++) {
-          try {
-            initializeCacheRegionsAndStats((SystemMemberJmx)appVms[i]);
-          } catch (AdminException e) {
-            logger.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_INTIALIZING_0_CONTINUING, 
-                           appVms[i].getId()), e);
-          }
-        }
-      }
-    } catch (AdminException e) {
-      logger.warn(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_INTIALIZING), e);
-      throw new OperationsException(e.getMessage());
-    } catch (Exception e) {
-      logger.warn(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_INTIALIZING), e);
-      throw new OperationsException(e.getMessage());
-    }
-    
-    isInitialized = true;
-  }
-  
-  /**
-   * Initializes Cache, Regions & Statistics Types MBeans for the given Member.
-   * 
-   * @param memberJmx
-   *          Member Mbean instance
-   * @throws OperationsException
-   *           if fails to initialize required MBeans
-   * @throws AdminException
-   *           if fails to initialize required MBeans
-   */
-  private void initializeCacheRegionsAndStats(SystemMemberJmx memberJmx) 
-    throws OperationsException, AdminException {
-    if (memberJmx != null) {
-      SystemMemberCacheJmxImpl cache = (SystemMemberCacheJmxImpl) memberJmx.getCache();
-      if (cache != null) {
-        RegionSubRegionSnapshot regionSnapshot = cache.getRegionSnapshot();
-        initializeRegionSubRegions(cache, regionSnapshot);
-      }
-      initStats(memberJmx);
-    }
-  }
-
-  /**
-   * Initializes statistics for a member with the given mbean.
-   * 
-   * @param memberJmx
-   *          Member Mbean instance
-   * @throws AdminException
-   *           if fails to initialize required statistic MBeans
-   */
-  private void initStats(SystemMemberJmx memberJmx) throws AdminException {
-    StatisticResource[] statResources = memberJmx.getStats();
-    for (StatisticResource statResource : statResources) {
-      statResource.getStatistics();
-    }
-  }
-
-  /**
-   * Initializes all regions & its subregions using the Cache MBean and the
-   * RegionSubRegionSnapshot for this cache MBean.
-   * 
-   * @param cache
-   *          Cache MBean resource
-   * @param regionSnapshot
-   *          RegionSubRegionSnapshot instance for the cache
-   * @throws MalformedObjectNameException
-   *           if fails to initialize the region MBean
-   * @throws AdminException
-   *           if fails to initialize the region MBean
-   */
-  @SuppressWarnings("rawtypes")
-  private void initializeRegionSubRegions(SystemMemberCacheJmxImpl cache, 
-                                 RegionSubRegionSnapshot regionSnapshot) 
-                                   throws MalformedObjectNameException, 
-                                          AdminException {
-    String fullPath = regionSnapshot.getFullPath();
-    if (!fullPath.equals(PLACE_HOLDER_ROOT_REGION)) {
-      fullPath = fullPath.substring(PLACE_HOLDER_ROOT_REGION.length()-1);
-
-      cache.manageRegion(fullPath);
-    }
-    
-    Set subRegionSnapshots = regionSnapshot.getSubRegionSnapshots();
-    
-    for (Iterator iterator = subRegionSnapshots.iterator(); iterator.hasNext();) {
-      RegionSubRegionSnapshot subRegion = (RegionSubRegionSnapshot) iterator.next();
-      try {
-        initializeRegionSubRegions(cache, subRegion);
-      } catch (AdminException e) {
-        logger.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_INTIALIZING_0_CONTINUING, subRegion.getFullPath()), e);
-      }
-    }
-  }
-  
-  
-  /* **************************************************************************/
-  /* ********************** EVERYTHING HYPERIC NEEDS **************************/
-  /* **************************************************************************/
-  
-  /* constants defined that could be used simply retrieve needed info from Map */
-  private static final String TYPE_NAME_CACHESERVER = "Cache Server";
-  private static final String TYPE_NAME_APPLICATION = "Application Peer";
-  /*
-   * NOTE -
-   * (My Understanding about the followings - abhishek)  
-   * 1. CacheVM - a VM started using Cache Server Launcher. This is considered 
-   * to be a dedicated cache VM because there is only GemFire Cache code 
-   * running here.
-   * 2. ApplicationVM - a VM started with a written code using APIs and we can 
-   * not guarantee that there will be ONLY GemFire code running in this VM.
-   * 3. Cache Server - Responsible for serving requests from the clients. There 
-   * could be multiple of these per Cache and hence per VM - one of 1 or 2 above.
-   * These could be specified by <cache-server> (or deprecated <bridge-server>)
-   * element(s) in the cache-xml file or using an API Cache.addCacheServer().
-   */
-
-//  private static final String VERSION          = "gemfire.version.string";
-//  private static final String MEMBER_COUNT     = "gemfire.membercount.int";
-//  private static final String GATEWAYHUB_COUNT = "gemfire.gatewayhubcount.int";
-//  private static final String CLIENT_COUNT     = "gemfire.clientcount.int";
-
-  private static final String MEMBER_ID       = "gemfire.member.id.string";
-  private static final String MEMBER_NAME     = "gemfire.member.name.string";
-  private static final String MEMBER_HOST     = "gemfire.member.host.string";
-  private static final String MEMBER_PORT     = "gemfire.member.port.int";
-  private static final String MEMBER_UPTIME   = "gemfire.member.uptime.long";
-  private static final String MEMBER_CLIENTS  = "gemfire.member.clients.map";
-  private static final String MEMBER_REGIONS  = "gemfire.member.regions.map";
-  private static final String MEMBER_TYPE     = "gemfire.member.type.string";
-  private static final String IS_SERVER       = "gemfire.member.isserver.boolean";
-  private static final String IS_GATEWAY      = "gemfire.member.isgateway.boolean";
-
-  private static final String MEMBER_STATSAMPLING_ENABLED = "gemfire.member.config.statsamplingenabled.boolean";
-  private static final String MEMBER_TIME_STATS_ENABLED   = "gemfire.member.config.timestatsenabled.boolean";
-  
-  private static final String STATS_PROCESSCPUTIME = "gemfire.member.stat.processcputime.long";
-  private static final String STATS_CPUS           = "gemfire.member.stat.cpus.int";
-  private static final String STATS_USEDMEMORY     = "gemfire.member.stat.usedmemory.long";
-  private static final String STATS_MAXMEMORY      = "gemfire.member.stat.maxmemory.long";
-  private static final String STATS_GETS           = "gemfire.member.stat.gets.int";
-  private static final String STATS_GETTIME        = "gemfire.member.stat.gettime.long";
-  private static final String STATS_PUTS           = "gemfire.member.stat.puts.int";
-  private static final String STATS_PUTTIME        = "gemfire.member.stat.puttime.long";
-  
-  private static final String REGION_NAME           = "gemfire.region.name.string";
-  private static final String REGION_PATH           = "gemfire.region.path.string";
-  private static final String REGION_SCOPE          = "gemfire.region.scope.string";
-  private static final String REGION_DATAPOLICY     = "gemfire.region.datapolicy.string";
-  private static final String REGION_INTERESTPOLICY = "gemfire.region.interestpolicy.string";
-  private static final String REGION_ENTRYCOUNT     = "gemfire.region.entrycount.int";
-  private static final String REGION_DISKATTRS      = "gemfire.region.diskattrs.string";
-
-  private static final String CLIENT_ID                = "gemfire.client.id.string";
-  private static final String CLIENT_NAME              = "gemfire.client.name.string";
-  private static final String CLIENT_HOST              = "gemfire.client.host.string";
-  private static final String CLIENT_QUEUESIZE         = "gemfire.client.queuesize.int";
-  private static final String CLIENT_STATS_GETS        = "gemfire.client.stats.gets.int";
-  private static final String CLIENT_STATS_PUTS        = "gemfire.client.stats.puts.int";
-  private static final String CLIENT_STATS_CACHEMISSES = "gemfire.client.stats.cachemisses.int";
-  private static final String CLIENT_STATS_CPUUSAGE    = "gemfire.client.stats.cpuusage.long";
-  private static final String CLIENT_STATS_CPUS        = "gemfire.client.stats.cpus.int";
-  private static final String CLIENT_STATS_UPDATETIME  = "gemfire.client.stats.updatetime.long";
-  private static final String CLIENT_STATS_THREADS     = "gemfire.client.stats.threads.int";
-  
-  /**
-   * 
-   * @param memberId
-   * @return All the required details for a member with given memberId 
-   * @throws OperationsException
-   */
-  public Map<String, Object> getMemberDetails(String memberId) 
-    throws OperationsException {
-    Map<String, Object> allDetails = new TreeMap<String, Object>();
-
-    if (memberId != null) {
-      try {
-        SystemMemberJmx member = findMember(memberId);
-        if (member != null) {
-          SystemMemberCacheJmxImpl cache = (SystemMemberCacheJmxImpl) member.getCache();
-          GemFireMemberStatus snapshot   = cache.getSnapshot();
-          boolean isServer     = snapshot.getIsServer();
-          boolean isGatewayHub = snapshot.getIsGatewayHub();
-          
-          //1. Member info
-          allDetails.put(MEMBER_ID, member.getId());
-          allDetails.put(MEMBER_NAME, member.getName());
-          String host = member.getHost();//from of GemFireVM.getHost
-          InetAddress hostAddr = member.getHostAddress();
-          //possibility of null host address
-          if (hostAddr != null) {
-            host = hostAddr.getHostName();
-          }
-          allDetails.put(MEMBER_HOST, host);
-          allDetails.put(MEMBER_UPTIME, snapshot.getUpTime());
-          allDetails.put(IS_SERVER, isServer);
-          allDetails.put(IS_GATEWAY, isGatewayHub);
-          
-          String memberType = "";
-          if (member instanceof CacheServerJmxImpl) {
-            memberType = TYPE_NAME_CACHESERVER;
-          } else {//Mark it of Application type if neither a gateway hub nor a server
-            memberType = TYPE_NAME_APPLICATION;
-          }
-//          if (isGatewayHub) {
-//            memberType = TYPE_NAME_GATEWAYHUB;
-//          } else if (isServer) {
-//            memberType = TYPE_NAME_CACHESERVER;
-//          } else {//Mark it of Application type if neither a gateway nor a server
-//            memberType = TYPE_NAME_APPLICATION;
-//          }
-          allDetails.put(MEMBER_TYPE, memberType);
-
-          //2. Region info
-          Map<String, ObjectName> existingRegionMbeans = getExistingRegionMbeansFullPaths(memberId);
-          allDetails.put(MEMBER_REGIONS, getAllRegionsDetails(cache, existingRegionMbeans));
-          existingRegionMbeans.clear();
-
-          //3. Clients info
-          allDetails.put(MEMBER_CLIENTS, getClientDetails(snapshot));
-          
-          boolean statSamplingEnabled = true;
-          //assuming will never return as per current implementation
-          ConfigurationParameter[] configParams = member.getConfiguration();
-          for (ConfigurationParameter configParam : configParams) {
-            if (DistributionConfig.STATISTIC_SAMPLING_ENABLED_NAME.equals(configParam.getName())) {
-              allDetails.put(MEMBER_STATSAMPLING_ENABLED, configParam.getValue());
-              statSamplingEnabled = Boolean.parseBoolean(""+configParam.getValue());
-            } else if (DistributionConfig.ENABLE_TIME_STATISTICS_NAME.equals(configParam.getName())) {
-              allDetails.put(MEMBER_TIME_STATS_ENABLED, configParam.getValue());
-            }
-          }
-          
-          //5. Stats info
-          allDetails.putAll(getRequiredStats(member, statSamplingEnabled));
-
-          SystemMemberCacheServer[] cacheServers = cache.getCacheServers();
-          //attempt refreshing the cache info once
-          if (cacheServers.length == 0) {
-            cache.refresh();
-            cacheServers = cache.getCacheServers();
-          }
-          Integer memberCacheServerPort = Integer.valueOf(0);
-          if (cacheServers.length != 0) {
-            /*
-             * Taking the first cache server port.
-             * We don't recommend multiple cache severs for a cache.
-             */
-            memberCacheServerPort = Integer.valueOf(cacheServers[0].getPort());
-          }
-          allDetails.put(MEMBER_PORT, memberCacheServerPort);
-        }
-        
-      } catch (AdminException e) {
-        logger.warn(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_FOR_OPERATION_0_FOR_MEMBER_1, 
-                          new Object[] {"getMemberDetails", memberId}), e);
-        throw new OperationsException(e.getMessage());
-      } catch (Exception e) {
-        logger.warn(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_FOR_OPERATION_0_FOR_MEMBER_1, 
-                          new Object[] {"getMemberDetails", memberId}), e);
-        throw new OperationsException(e.getMessage());
-      }
-    }
-    
-    return allDetails;
-  }
-  
-  /**
-   * 
-   * @param snapshot
-   * @return Map of client details 
-   */
-  @SuppressWarnings("rawtypes")
-  private Map<String, Map<String, ?>> getClientDetails(GemFireMemberStatus snapshot) {
-    Map<String, Map<String, ?>> clientsInfo = 
-      new LinkedHashMap<String, Map<String, ?>>();
-    
-    Set connectedClients = snapshot.getConnectedClients();
-    if (!connectedClients.isEmpty()) {
-      Map clientHealthStatsMap = snapshot.getClientHealthStats();
-      
-      for (Iterator iterator = connectedClients.iterator(); iterator.hasNext();) {
-        Map<String, Object> clientData = new HashMap<String, Object>();
-        String clientId = (String) iterator.next();
-        String host     = snapshot.getClientHostName(clientId);
-        clientData.put(CLIENT_ID, clientId);
-        clientData.put(CLIENT_NAME, extractClientName(clientId, host));
-        clientData.put(CLIENT_HOST, host);
-        clientData.put(CLIENT_QUEUESIZE, snapshot.getClientQueueSize(clientId));
-  
-        ClientHealthStats clientHealthStats = (ClientHealthStats) clientHealthStatsMap.get(clientId);
-        if (clientHealthStats != null) {
-          clientData.put(CLIENT_STATS_GETS, clientHealthStats.getNumOfGets());
-          clientData.put(CLIENT_STATS_PUTS, clientHealthStats.getNumOfPuts());
-          clientData.put(CLIENT_STATS_CACHEMISSES, clientHealthStats.getNumOfMisses());
-          clientData.put(CLIENT_STATS_CPUUSAGE, clientHealthStats.getProcessCpuTime());
-          clientData.put(CLIENT_STATS_CPUS, clientHealthStats.getCpus());
-          clientData.put(CLIENT_STATS_UPDATETIME, clientHealthStats.getUpdateTime().getTime());
-          clientData.put(CLIENT_STATS_THREADS, clientHealthStats.getNumOfThreads());
-        } else {
-          clientData.put(CLIENT_STATS_GETS, Integer.valueOf(0));
-          clientData.put(CLIENT_STATS_PUTS, Integer.valueOf(0));
-          clientData.put(CLIENT_STATS_CACHEMISSES, Integer.valueOf(0));
-          clientData.put(CLIENT_STATS_CPUUSAGE, Long.valueOf(0));
-          clientData.put(CLIENT_STATS_CPUS, Integer.valueOf(0));
-          clientData.put(CLIENT_STATS_UPDATETIME, Long.valueOf(0));
-          clientData.put(CLIENT_STATS_THREADS, Integer.valueOf(0));
-        }
-        
-        clientsInfo.put(clientId, clientData);
-      }
-    }
-    
-    return clientsInfo;
-  }
-
-  /**
-   * Returns a Map containing information about regions.
-   * 
-   * @param cache
-   *          Reference to an MBean representing a Cache on a member
-   * @param existingRegionMbeans
-   *          Map of Path against Region MBean ObjectNames
-   * @return Map of all region details
-   * @throws OperationsException
-   *           if fails to retrieve
-   */
-  private Map<String, Map<String, ?>> getAllRegionsDetails(
-                                  SystemMemberCacheJmxImpl cache, 
-                                  Map<String, ObjectName> existingRegionMbeans) 
-                                  throws OperationsException {
-    Map<String, Map<String, ?>> regionsInfo = 
-                        new TreeMap<String, Map<String, ?>>();
-    
-    if (cache != null) {
-      try {
-        RegionSubRegionSnapshot regionSnapshot = cache.getRegionSnapshot();
-        collectAllRegionsDetails(cache, regionSnapshot, regionsInfo, existingRegionMbeans);
-      } catch (AdminException e) {
-        logger.warn(LocalizedMessage.create(LocalizedStrings.ONE_ARG, "Exception occurred while getting region details."), e);
-        throw new OperationsException(e.getMessage());
-      } catch (Exception e) {
-        logger.warn(LocalizedMessage.create(LocalizedStrings.ONE_ARG, "Exception occurred while getting region details."), e);
-        throw new OperationsException(e.getMessage());
-      }
-    }
-    
-    return regionsInfo;
-  }
-
-  /**
-   * Collects all the region details from the RegionSubRegionSnapshot instance
-   * passed and the Cache MBean. Checks in the set of existingRegionMbeans
-   * before initializing Region Mbeans if there are not initialized yet.
-   * 
-   * @param cache
-   *          Cache MBean instance
-   * @param regionSnapshot
-   *          RegionSubRegionSnapshot instance
-   * @param regionsInfo
-   *          Map of regions information that gets populated recursively
-   * @param existingRegionMbeans
-   *          Map of ObjectNames of existing region MBeans
-   * @throws AdminException
-   *           if unable to initialize region MBean
-   * @throws OperationsException
-   *           if fails to retrieve the Region MBean attribute info
-   * @throws MBeanException
-   *           if fails to retrieve the Region MBean attribute info
-   * @throws ReflectionException
-   *           if fails to retrieve the Region MBean attribute info
-   */
-  @SuppressWarnings("rawtypes")
-  private void collectAllRegionsDetails(SystemMemberCacheJmxImpl cache, 
-                                 RegionSubRegionSnapshot regionSnapshot, 
-                                 Map<String, Map<String, ?>> regionsInfo,
-                                 Map<String, ObjectName> existingRegionMbeans) 
-                                 throws AdminException, OperationsException, 
-                                        MBeanException, ReflectionException {
-    String fullPath = regionSnapshot.getFullPath();
-    if (!fullPath.equals(PLACE_HOLDER_ROOT_REGION)) {
-      fullPath = fullPath.substring(PLACE_HOLDER_ROOT_REGION.length()-1);
-      String name = regionSnapshot.getName();
-      Integer entryCount = Integer.valueOf(regionSnapshot.getEntryCount());
-      Map<String, Object> details = new TreeMap<String, Object>();
-      details.put(REGION_NAME, name);
-      details.put(REGION_PATH, fullPath);
-      details.put(REGION_ENTRYCOUNT, entryCount);
-      
-      ObjectName regionObjectName = existingRegionMbeans.get(fullPath);
-      if (regionObjectName == null) {//initialize if has not yet been 
-        regionObjectName = cache.manageRegion(fullPath);
-      }
-
-      Object attribute = getAttribute(regionObjectName, "scope", NOT_AVAILABLE);
-      attribute = attribute != null ? attribute.toString() : attribute;
-      details.put(REGION_SCOPE, attribute);
-      
-      attribute = getAttribute(regionObjectName, "dataPolicy", NOT_AVAILABLE);
-      attribute = attribute != null ? attribute.toString() : attribute;
-      details.put(REGION_DATAPOLICY, attribute);
-
-      SubscriptionAttributes interestPolicyAttr = 
-          (SubscriptionAttributes) getAttribute(regionObjectName, 
-                                                "subscriptionAttributes", null);
-      String interestPolicyStr = NOT_AVAILABLE;
-      if (interestPolicyAttr != null) {
-        InterestPolicy interestPolicy = interestPolicyAttr.getInterestPolicy();
-        if (interestPolicy != null) {
-          interestPolicyStr = interestPolicy.toString();
-        }
-      }
-      details.put(REGION_INTERESTPOLICY, interestPolicyStr);
-
-      attribute = getAttribute(regionObjectName, "diskWriteAttributes", NOT_AVAILABLE);
-      attribute = attribute != null ? attribute.toString() : attribute;
-      details.put(REGION_DISKATTRS, attribute);
-      
-      regionsInfo.put(fullPath, details);
-    }
-    
-    Set subRegionSnapshots = regionSnapshot.getSubRegionSnapshots();
-    
-    for (Iterator iterator = subRegionSnapshots.iterator(); iterator.hasNext();) {
-      RegionSubRegionSnapshot subRegion = (RegionSubRegionSnapshot) iterator.next();
-      collectAllRegionsDetails(cache, subRegion, regionsInfo, existingRegionMbeans);
-    }
-  }
-  
-  /**
-   * Checks if the given host name string contains ':' as in IPv6 host address.
-   * 
-   * @param host
-   *          host name string
-   * @return true if the host string contains ':', false otherwise
-   */
-  private static boolean isIPv6(String host) {
-    return host.contains(":");
-  }
-
-  /**
-   * Checks if the given host name is actually a String representation of an
-   * IPv4 address.
-   * 
-   * @param host
-   *          host name string
-   * @return true if given host name is a String representation of an IPv4
-   *         address, false otherwise
-   */
-  private static boolean isIPv4(String host) {
-    String regex = "\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}";
-    
-    return host.matches(regex);
-  }
-  
-  /**
-   * Excludes the host name from the client id and returns the String. If the
-   * host name can not be detected, returns an empty string. Typically, the
-   * client id looks like: HOST(VM_PID:VM_KIND):PORT:RANDOM_STRING:CLIENT_NAME
-   * 
-   * Extracts the client name from the client id. If the client id is not in the
-   * expected format, returns 'N/A'
-   * 
-   * @param clientId
-   *          string identifier for a client
-   * @param host
-   *          host name (FQDN) the client is running on
-   * @return name extracted from given client id
-   */
-  /*
-   * Some examples of Client Id format: 
-   * (1) Java Client:
-   * nase(21716:loner):51789:42e9a0bf:client_nase_21716
-   * nase(2560:loner):2:7a84729a:Feeder
-   * 
-   * (2) Native Client:
-   * nase(21045:loner):2:GFNative_OnNnEpyRWL:ExampleDistributedSystem
-   * 
-   * (3) IPv6 Host whose name can not be resolved:
-   * fdf0:76cf:a0ed:9449:0:0:0:1001(21716:loner):51789:42e9a0b:client_nase_21716
-   * fdf0:76cf:a0ed:9449:0:0:0:1001:51789:42e9a0b:client_nase_21716 
-   */
-  private static String extractClientName(String clientId, String host) {
-    /* This isIPv6, isIPv4, extractClientName is taken from GFMon code base*/
-    String hostExcludedId = "";
-    if ( (isIPv6(host) || isIPv4(host))&& clientId.startsWith(host)) {
-      hostExcludedId = clientId.substring(host.length());
-    } else {
-      int firstDotIndex = host.indexOf(".");
-      if (firstDotIndex != -1) {
-        String hostShortName = host.substring(0, firstDotIndex);
-        hostExcludedId = clientId.substring(hostShortName.length());
-      }
-    }
-    
-    String vmPIDAndKindRegex = "\\(\\w+:\\w+\\)";
-    String regex             = "(\\<ec\\>)?:[0-9]+(:\\w+){2}+";
-    String name              = NOT_AVAILABLE;
-    String temp              = hostExcludedId;
-
-    int openIndex = temp.indexOf("(");
-    if (openIndex != -1) {      
-      regex = vmPIDAndKindRegex + regex;
-    }
-
-    if (temp.matches(regex)) {
-      String[] splitted = temp.split(":");
-      name = splitted[splitted.length - 1];
-    }
-    
-    return name;
-  }
-
-  /**
-   * Returns a Map of all the statistics required for Hyperic currently. It
-   * relies on the attribute of the StatisticsResource Mbeans.
-   * 
-   * @param member
-   *          instance for which the stats are needed
-   * @return Map of all the statistics required for Hyperic currently.
-   * @throws OperationsException
-   *           exceptions thrown while retrieving the attributes
-   */
-  private Map<String, Object> getRequiredStats(SystemMemberJmx member, boolean statSamplingEnabled) throws OperationsException {
-    Map<String, Object> statDetails = new TreeMap<String, Object>();
-    
-    try {
-      if (!statSamplingEnabled) {
-        statDetails.put(STATS_PROCESSCPUTIME, NOT_AVAILABLE_NUMBER);
-        statDetails.put(STATS_CPUS, NOT_AVAILABLE_NUMBER);
-        statDetails.put(STATS_MAXMEMORY, NOT_AVAILABLE_NUMBER);
-        statDetails.put(STATS_USEDMEMORY, NOT_AVAILABLE_NUMBER);
-        statDetails.put(STATS_GETS, NOT_AVAILABLE_NUMBER);
-        statDetails.put(STATS_GETTIME, NOT_AVAILABLE_NUMBER);
-        statDetails.put(STATS_PUTS, NOT_AVAILABLE_NUMBER);
-        statDetails.put(STATS_PUTTIME, NOT_AVAILABLE_NUMBER);
-      } else {
-        MBeanServer mBeanServer = agent.getMBeanServer();
-        Number defaultVal     = NOT_AVAILABLE_NUMBER;
-        Number processCpuTime = defaultVal;
-        Number cpus           = defaultVal;
-        Number maxMemory      = defaultVal;
-        Number usedMemory     = defaultVal;
-        Number gets           = defaultVal;
-        Number getTime        = defaultVal;
-        Number puts           = defaultVal;
-        Number putTime        = defaultVal;
-        
-        ObjectName[] vmMemoryUsageStats = getExistingStats(member.getId(), "vmHeapMemoryStats");
-        ObjectName[] vmStats            = getExistingStats(member.getId(), "vmStats");
-        ObjectName[] cachePerfStats     = getExistingStats(member.getId(), "cachePerfStats");
-        boolean needToReinit = false;
-        if (vmMemoryUsageStats.length == 0 || vmStats.length == 0 || cachePerfStats.length == 0) {
-          //if the StatisticResource MBeans are not created
-          needToReinit = true;
-        }
-        if(!needToReinit) {
-          /*
-           * To handle a case when the StatisticResource MBeans are created but 
-           * not registered with RefreshTimer. If VMMemoryUsageStats are 
-           * present, maxMemory should always be non-zero. */
-          for (int i = 0; i < vmMemoryUsageStats.length; i++) {//ideally there should be a single instance
-            String type = (String) mBeanServer.getAttribute(vmMemoryUsageStats[i], "type");
-            
-            if ("VMMemoryUsageStats".equals(type)) { //first instance that has Statistics Type name
-              maxMemory  = (Number) getAttribute(vmMemoryUsageStats[i], "maxMemory", defaultVal);
-              break;
-            }
-          }
-          
-          needToReinit = 0 == maxMemory.longValue(); 
-        }
-
-        if(needToReinit) {
-          logger.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_REINITIALIZING_STATS_FOR_0, member.getId()));
-          initStats(member);
-
-          vmMemoryUsageStats = getExistingStats(member.getId(), "vmHeapMemoryStats");
-          vmStats            = getExistingStats(member.getId(), "vmStats");
-          cachePerfStats     = getExistingStats(member.getId(), "cachePerfStats");
-        }
-        
-        for (int i = 0; i < vmMemoryUsageStats.length; i++) {//ideally there should be a single instance
-          String type = (String) mBeanServer.getAttribute(vmMemoryUsageStats[i], "type");
-          
-          if ("VMMemoryUsageStats".equals(type)) { //first instance that has Statistics Type name
-            maxMemory  = (Number) getAttribute(vmMemoryUsageStats[i], "maxMemory", defaultVal);
-            usedMemory = (Number) getAttribute(vmMemoryUsageStats[i], "usedMemory", defaultVal);
-            break;
-          }
-        }
-
-        for (int i = 0; i < vmStats.length; i++) {//ideally there should be a single instance
-          String type = (String) mBeanServer.getAttribute(vmStats[i], "type");
-          
-          if ("VMStats".equals(type)) { //first instance that has Statistics Type name
-            processCpuTime = (Number) getAttribute(vmStats[i], "processCpuTime", defaultVal);
-            cpus           = (Number) getAttribute(vmStats[i], "cpus", defaultVal);
-            break;
-          }
-        }
-        
-        for (int i = 0; i < cachePerfStats.length; i++) {//ideally there should be a single instance
-          String type = (String) mBeanServer.getAttribute(cachePerfStats[i], "type");
-          
-          if ("CachePerfStats".equals(type)) { //first instance that has Statistics Type name
-            gets    = (Number) getAttribute(cachePerfStats[i], "gets", defaultVal);
-            getTime = (Number) getAttribute(cachePerfStats[i], "getTime", defaultVal);
-            puts    = (Number) getAttribute(cachePerfStats[i], "puts", defaultVal);
-            putTime = (Number) getAttribute(cachePerfStats[i], "putTime", defaultVal);
-            break;
-          }
-        }
-        
-        statDetails.put(STATS_PROCESSCPUTIME, processCpuTime == NOT_AVAILABLE_NUMBER ? NOT_AVAILABLE_NUMBER : processCpuTime.longValue());
-        statDetails.put(STATS_CPUS, cpus == NOT_AVAILABLE_NUMBER ? NOT_AVAILABLE_NUMBER : cpus.intValue());
-        statDetails.put(STATS_MAXMEMORY,  maxMemory == NOT_AVAILABLE_NUMBER ? NOT_AVAILABLE_NUMBER : maxMemory.longValue());
-        statDetails.put(STATS_USEDMEMORY, usedMemory == NOT_AVAILABLE_NUMBER ? NOT_AVAILABLE_NUMBER : usedMemory.longValue());
-        statDetails.put(STATS_GETS, gets == NOT_AVAILABLE_NUMBER ? NOT_AVAILABLE_NUMBER : gets.intValue());
-        statDetails.put(STATS_GETTIME, getTime == NOT_AVAILABLE_NUMBER ? NOT_AVAILABLE_NUMBER : getTime.intValue());
-        statDetails.put(STATS_PUTS, puts == NOT_AVAILABLE_NUMBER ? NOT_AVAILABLE_NUMBER : puts.intValue());
-        statDetails.put(STATS_PUTTIME, putTime == NOT_AVAILABLE_NUMBER ? NOT_AVAILABLE_NUMBER : putTime.longValue());
-      }
-    } catch (Exception e) {
-      logger.warn(e.getMessage(), e);
-      throw new OperationsException(e.getMessage());
-    }
-    
-    return statDetails;
-  }
-
-  /**
-   * Returns attribute with given attribute name on MBean with given ObjectName.
-   * 
-   * 
-   * @param objectName
-   *          ObjectName for the MBean
-   * @param attribute
-   *          attribute name
-   * @param unavailableValue
-   *          return this value if the attribute value is null
-   * @return value of attribute with given attribute name
-   * @throws OperationsException
-   *           if attribute is not found for MBean with this ObjectName or MBean
-   *           instance is not found
-   * @throws MBeanException
-   *           if MBeans getter throws exception
-   * @throws ReflectionException
-   *           thrown when trying to invoke the setter.
-   */
-  private Object getAttribute(ObjectName objectName, String attribute, 
-      Object unavailableValue) 
-        throws OperationsException, MBeanException, ReflectionException {
-    /* NOTE: callers methods rely on non-null value being returned */
-    Object value = null;
-    
-    MBeanServer mBeanServer = agent.getMBeanServer();
-    value = mBeanServer.getAttribute(objectName, attribute);
-    
-    value = (value != null)? value : unavailableValue;
-    
-    return value;
-  }
-
-  /**
-   * Return Map of region full against the ObjectName of existing region MBeans.
-   * 
-   * @param memberId
-   *          string identifier of a member
-   * @return Map of region path vs ObjectName for existing region MBeans
-   * @throws MalformedObjectNameException
-   *           If the query expression used is not valid
-   */
-  private Map<String, ObjectName> getExistingRegionMbeansFullPaths(String memberId) throws MalformedObjectNameException {
-    Map<String, ObjectName> pathsToObjName = new HashMap<String, ObjectName>();
-
-    if (memberId != null && memberId.trim().length() != 0) {
-      Object[] params = new Object[] {MBeanUtil.makeCompliantMBeanNameProperty(memberId)};
-      Set<ObjectName> queryNames = queryObjectNames(REGION_QUERY_EXPRESSION, params);
-      for (ObjectName objectName : queryNames) {
-        pathsToObjName.put(objectName.getKeyProperty("path"), objectName);
-      }
-    }
-    
-    return pathsToObjName;
-  }
-
-  /**
-   * Returns an array of ObjectNames existing statistics types MBeans
-   * 
-   * @param memberId
-   *          string identifier of a member
-   * @param name
-   *          text id of the stats which appears in the stats ObjectName as name
-   *          keyProperty
-   * @return Array of Stats MBean ObjectNames
-   * @throws MalformedObjectNameException
-   *           If the query expression used is not valid
-   */
-  private ObjectName[] getExistingStats(String memberId, String name) throws MalformedObjectNameException {
-    ObjectName[] statObjectNames = new ObjectName[0];
-    
-    if (memberId != null && memberId.trim().length() != 0) {
-      Object[] params = new Object[] {MBeanUtil.makeCompliantMBeanNameProperty(memberId), name};
-      Set<ObjectName> queryNames = queryObjectNames(STATS_QUERY_EXPRESSION, params);
-      statObjectNames = new ObjectName[queryNames.size()];
-      statObjectNames = queryNames.toArray(statObjectNames);
-    }
-    
-    return statObjectNames;
-  }
-
-  /**
-   * Queries the MBean server with the string formed using placing the params in
-   * the parameterized string passed as queryStr.
-   * 
-   * @param queryStr
-   *          parameterized string
-   * @param params
-   *          params to put in the string
-   * @return results of an ObjectName query
-   * @throws MalformedObjectNameException
-   *           If the query expression ObjectName formed is not valid
-   */
-  private Set<ObjectName> queryObjectNames(String queryStr, Object ... params) 
-    throws MalformedObjectNameException {
-    Set<ObjectName> queried = Collections.emptySet();    
-    
-    queryStr = MessageFormat.format(queryStr, params);    
-    ObjectName queryExp = ObjectName.getInstance(queryStr);
-    queried = agent.getMBeanServer().queryNames(null, queryExp);
-    
-    return queried;
-  }
-  
-  
-  /* *************************************************************************/
-  /* **************** NOTIFICATION EMITTER IMPLEMENTATION ********************/
-  /* *************************************************************************/
-
-  /**
-   * @see NotificationEmitter#addNotificationListener(NotificationListener, NotificationFilter, Object)
-   */
-  public void addNotificationListener(NotificationListener listener,
-      NotificationFilter filter, Object handback)
-      throws IllegalArgumentException {
-    forwarder.addNotificationListener(listener, filter, handback);
-  }
-
-  /**
-   * @see NotificationEmitter#removeNotificationListener(NotificationListener)
-   */
-  public void removeNotificationListener(NotificationListener listener)
-      throws ListenerNotFoundException {
-    forwarder.removeNotificationListener(listener);
-  }
-
-  /**
-   * @see NotificationEmitter#getNotificationInfo()
-   */
-  public MBeanNotificationInfo[] getNotificationInfo() {
-    return getMBeanInfo().getNotifications();
-  }
-  
-  /**
-   * @see NotificationEmitter#removeNotificationListener(NotificationListener, NotificationFilter, Object)
-   */
-  public void removeNotificationListener(NotificationListener listener,
-      NotificationFilter filter, Object handback)
-      throws ListenerNotFoundException {
-    forwarder.removeNotificationListener(listener, filter, handback);
-  }
-  
-}
-
-/**
- * This class acts as a hub for the Notifications defined on
- * AdminDistributedSystem & SystemMember MBeans. This acts as a listener for
- * these notifications and broadcasts them as notifications from the
- * {@link MemberInfoWithStatsMBean} MBean. This class extends
- * {@link NotificationBroadcasterSupport} only to have the functionality to send
- * notifications.
- * 
- * @author abhishek
- * 
- * @since 6.5
- */
-class NotificationForwarder extends NotificationBroadcasterSupport 
-  implements NotificationListener {
-  
-  private static final Logger logger = LogService.getLogger();
-  
-  /* sequence generator for notifications from GemFireTypesWrapper MBean */
-  private static AtomicLong notificationSequenceNumber = new AtomicLong();
-
-  /* reference to the MBeanServer instance */
-  private MBeanServer   mBeanServer;
-
-  /**
-   * Default Constructor
-   * 
-   * @param mBeanServer
-   *          reference to the MBeanServer instance
-   */
-  /*default*/NotificationForwarder(MBeanServer mBeanServer) {
-    this.mBeanServer = mBeanServer;
-  }
-
-  /**
-   * Handles notifications as: 1. Member Joined: Registers this
-   * NotificationForwarder as a notification listener for Cache/Region
-   * Notifications. 2. Member Left/Crashed: Unregisters this
-   * NotificationForwarder as a notification listener for Cache/Region
-   * Notifications. 3. AdminDistributedSystem Disconnected: Unregisters this
-   * NotificationForwarder as a notification listener for member Notifications.
-   * 
-   * Forwards the notifications to the JMX Clients that have registered for
-   * notifications on this MBean
-   * 
-   * @param notification
-   *          notification to be handled
-   * @param handback
-   *          handback object used while NotificationForwarder was registered
-   * 
-   * @see NotificationListener#handleNotification(Notification, Object)
-   */
-  public void handleNotification(Notification notification, Object handback) {
-    Object notifSource = notification.getSource();
-    if (AdminDistributedSystemJmxImpl.NOTIF_MEMBER_JOINED.equals(notification.getType())) {
-      ObjectName source = (ObjectName) notifSource;
-      //initialize statistics/register with refreshTimer for new member
-      String[] noArgs = {};
-      try {
-        ObjectName[] stats = (ObjectName[]) mBeanServer.invoke(source, "manageStats", noArgs, noArgs);
-        if (stats != null) {
-          for (ObjectName stat : stats) {
-            mBeanServer.invoke(stat, "getStatistics", noArgs, noArgs);
-          }
-        }
-        logger.debug("getStatistics call completed with no exceptions.");
-      } catch (ReflectionException e) {
-        logger.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_INITIALIZING_STATISICS_FOR_0, source.toString()), e);
-      } catch (MBeanException e) {
-        logger.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_INITIALIZING_STATISICS_FOR_0, source.toString()), e);
-      } catch (InstanceNotFoundException e) {
-        logger.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_INITIALIZING_STATISICS_FOR_0, source.toString()), e);
-      }
-      //register this listener for joined member's cache/region notifications
-      try {
-        registerNotificationListener(source);
-      } catch (OperationsException e) {
-        logger.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_REGISTERING_NOTIFICATION_LISTENER_FOR_0, source.toString()), e);
-      }
-    } /*else if (AdminDistributedSystemJmxImpl.NOTIF_MEMBER_LEFT.equals(notification.getType()) || 
-               AdminDistributedSystemJmxImpl.NOTIF_MEMBER_CRASHED.equals(notification.getType())) {
-      ObjectName source = (ObjectName) notifSource;
-      //unregister this listener from left member's cache/region notifications
-      try {
-        unregisterNotificationListener(source);
-      } catch (OperationsException e) {
-        logwriter.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_UNREGISTERING_NOTIFICATION_LISTENER_FOR_0, source.toString(), e);
-      }
-    } else if (AdminDistributedSystemJmxImpl.NOTIF_ADMIN_SYSTEM_DISCONNECT.equals(notification.getType())) {
-      String source = (String) notifSource;
-      //This notification does not have ObjectName as a source. 
-      try {
-        ObjectName instance = ObjectName.getInstance(source);
-        unregisterNotificationListener(instance);
-      } catch (OperationsException e) {
-        logwriter.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_UNREGISTERING_NOTIFICATION_LISTENER_FOR_0, source.toString(), e);
-      } catch (NullPointerException e) {
-        logwriter.info(LocalizedMessage.create(LocalizedStrings.MemberInfoWithStatsMBean_EXCEPTION_WHILE_UNREGISTERING_NOTIFICATION_LISTENER_FOR_0, source.toString(), e);
-      }
-    } */
-    //NOTIF_ALERT is sent as is
-    
-    //TODO: Check if same notification instance can be reused by simply changing the sequence number 
-    notification = new Notification(notification.getType(), notifSource, 
-                                    notificationSequenceNumber.addAndGet(1L), 
-                                    notification.getTimeStamp(), 
-                                    notification.getMessage());
-    
-    sendNotification(notification);
-  }
-
-  /**
-   * Registers itself as a NotificationListener for Notifications sent from
-   * MBean with the ObjectName given as source.
-   * 
-   * @param source
-   *          source of notifications
-   * @throws InstanceNotFoundException
-   *           The MBean name provided does not match any of the registered
-   *           MBeans.
-   */
-  /*default*/void registerNotificationListener(ObjectName source) 
-    throws InstanceNotFoundException {
-    mBeanServer.addNotificationListener(source, this, null/*handback*/, source);
-  }
-
-  /**
-   * Unregisters itself as a NotificationListener for Notifications sent from
-   * MBean with the ObjectName given as source.
-   * 
-   * @param source source of notifications
-   * @throws InstanceNotFoundException
-   *           The MBean name provided does not match any of the registered
-   *           MBeans.
-   * @throws ListenerNotFoundException
-   *           The listener is not registered in the MBean.
-   */
-  /*default*/void unregisterNotificationListener(ObjectName source) 
-    throws InstanceNotFoundException, ListenerNotFoundException {
-    mBeanServer.removeNotificationListener(source, this);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RMIRegistryService.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RMIRegistryService.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RMIRegistryService.java
deleted file mode 100644
index e938747..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RMIRegistryService.java
+++ /dev/null
@@ -1,239 +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.admin.jmx.internal;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.UnknownHostException;
-import java.rmi.NoSuchObjectException;
-import java.rmi.NotBoundException;
-import java.rmi.RemoteException;
-import java.rmi.registry.LocateRegistry;
-import java.rmi.registry.Registry;
-import java.rmi.server.RMIServerSocketFactory;
-import java.rmi.server.UnicastRemoteObject;
-
-/**
- * This MBean is an implementation of {@link RMIRegistryServiceMBean}.
- * 
- * @author abhishek
- */
-public class RMIRegistryService implements RMIRegistryServiceMBean {
-  /* RMI Registry host */
-  private String host;
-  /* RMI Registry port */
-  private int port;
-  /* RMI Registry */
-  private Registry registry;
-  /* RMI Server Socket Factory */
-  private RMIServerSocketFactory ssf;
-  /* Whether RMI Registry is started & running */
-  private boolean isRunning;
-
-  /**
-   * Constructor to configure RMI Registry to start using default RMI Registry 
-   * port: {@link Registry#REGISTRY_PORT}
-   */
-  public RMIRegistryService() {
-    this(Registry.REGISTRY_PORT);
-  }
-
-  /**
-   * Constructor to configure RMI Registry to start using given RMI Registry
-   * port.
-   * 
-   * @param port
-   *          to run RMI Registry on
-   */
-  public RMIRegistryService(int port) {
-    setPort(port);
-  }
-
-  /**
-   * Constructor to configure RMI Registry to start using given RMI Registry
-   * port & host bind address.
-   * 
-   * @param host
-   *          to bind RMI Registry to
-   * @param port
-   *          to run RMI Registry on
-   * 
-   * @throws UnknownHostException
-   *           if IP Address can not be resolved for the given host string while
-   *           creating the RMIServerSocketFactory
-   */
-  public RMIRegistryService(String host, int port) throws UnknownHostException {
-    setPort(port);
-    setHost(host);
-    if (host != null && !host.trim().equals("")) {
-      ssf = new RMIServerSocketFactoryImpl(host);
-    }
-  }
-  
-  /**
-   * Returns the host on which rmiregistry listens for incoming connections
-   *
-   * @return the host on which rmiregistry listens for incoming connections
-   */
-  public String getHost() {
-    return host;
-  }
-
-  /**
-   * Sets the host on which rmiregistry listens for incoming connections
-   * 
-   * @param host
-   *          the host on which rmiregistry listens for incoming connections
-   */
-  protected void setHost(String host) {
-    if (isRunning()) { 
-      throw new IllegalStateException("RMIRegistryService is running, cannot change the host");
-    }
-    this.host = host;
-  }
-  
-  /**
-   * Returns the port on which rmiregistry listens for incoming connections
-   * 
-   * @return the port on which rmiregistry listens for incoming connections
-   */
-  public int getPort() {
-    return port;
-  }
-
-  /**
-   * Sets the port on which rmiregistry listens for incoming connections
-   * 
-   * @param port
-   *          the port on which rmiregistry listens for incoming connections
-   */
-  protected void setPort(int port) {
-    if (isRunning()) { 
-      throw new IllegalStateException("RMIRegistryService is running, cannot change the port");
-    }
-    this.port = port;
-  }
-
-  /**
-   * Starts this MBean: rmiregistry can now accept incoming calls
-   * 
-   * @see #stop
-   * @see #isRunning
-   */
-  public synchronized void start() throws RemoteException {
-    if (!isRunning()) {
-      if (ssf != null) {
-        registry = LocateRegistry.createRegistry(port, 
-                                                 null, //RMIClientSocketFactory 
-                                                 ssf); //RMIServerSocketFactory
-      } else {
-        registry = LocateRegistry.createRegistry(port);
-      }
-      
-      isRunning = true;
-    }
-  }
-
-  /**
-   * Returns whether this MBean has been started and not yet stopped.
-   * 
-   * @return whether this MBean has been started and not yet stopped.
-   * @see #start
-   */
-  public synchronized boolean isRunning() {
-    return isRunning;
-  }
-
-  /**
-   * Stops this MBean: rmiregistry cannot accept anymore incoming calls
-   * 
-   * @see #start
-   */
-  public synchronized void stop() throws NoSuchObjectException {
-    if (isRunning()) {
-      isRunning = !UnicastRemoteObject.unexportObject(registry, true);
-    }
-  }
-
-  /**
-   * Returns an array of the names bound in the rmiregistry
-   * 
-   * @return an array of the names bound in the rmiregistry
-   * @see java.rmi.registry.Registry#list()
-   */
-  public String[] list() throws RemoteException {
-    if (!isRunning()) {
-      throw new IllegalStateException("RMIRegistryService is not running");
-    }
-    return registry.list();
-  }
-
-  /**
-   * Removes the binding for the specified <code>name</code> in the rmiregistry
-   * 
-   * @see java.rmi.registry.Registry#unbind(String)
-   */
-  public void unbind(String name) throws RemoteException, NotBoundException {
-    if (!isRunning()) {
-      throw new IllegalStateException("RMIRegistryService is not running");
-    }
-    registry.unbind(name);
-  }
-}
-
-/**
- * Custom implementation of the {@link RMIServerSocketFactory}
- * 
- * @author abhishek
- */
-class RMIServerSocketFactoryImpl implements RMIServerSocketFactory {
-  /* IP address to use for creating ServerSocket */
-  private InetAddress bindAddress;
-
-  /**
-   * Constructs a RMIServerSocketFactory. The given rmiBindAddress is used to
-   * bind the ServerSockets created from this factory.
-   * 
-   * @param rmiBindAddress
-   *          String representation of the address to bind the ServerSockets to
-   * 
-   * @throws UnknownHostException
-   *           if IP Address can not be resolved for the given host string
-   */
-  /*default */RMIServerSocketFactoryImpl(String rmiBindAddress) 
-    throws UnknownHostException {
-    this.bindAddress = InetAddress.getByName(rmiBindAddress);
-  }
-
-  /**
-   * Create a server socket on the specified port (port 0 indicates an anonymous
-   * port).
-   * 
-   * @param port
-   *          the port number
-   * @return the server socket on the specified port
-   * @exception IOException
-   *              if an I/O error occurs during server socket creation
-   */
-  public ServerSocket createServerSocket(int port) throws IOException {
-    return new ServerSocket(port, 
-                            0/*backlog - for '0' internally uses the default*/, 
-                            bindAddress);
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RMIRegistryServiceMBean.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RMIRegistryServiceMBean.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RMIRegistryServiceMBean.java
deleted file mode 100644
index 6420bdf..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RMIRegistryServiceMBean.java
+++ /dev/null
@@ -1,85 +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.admin.jmx.internal;
-
-import java.rmi.NoSuchObjectException;
-import java.rmi.NotBoundException;
-import java.rmi.RemoteException;
-
-/**
- * This interface is similar to mx4j.tools.naming.NamingServiceMBean.
- * Features that differ are:
- * 1. This MBean interface additionally provides a way to specify the host that 
- * the RMI Registry should get bound to.
- * 2. Port property can not be changed once set.
- * 
- * @author abhishek
- */
-public interface RMIRegistryServiceMBean {
-
-  /**
-   * Returns the host on which rmiregistry listens for incoming connections
-   *
-   * @return the host on which rmiregistry listens for incoming connections
-   */
-  public String getHost();
-
-  /**
-   * Returns the port on which rmiregistry listens for incoming connections
-   * 
-   * @return the port on which rmiregistry listens for incoming connections
-   */
-  public int getPort();
-
-  /**
-   * Returns whether this MBean has been started and not yet stopped.
-   * 
-   * @return whether this MBean has been started and not yet stopped.
-   * @see #start
-   */
-  public boolean isRunning();
-
-  /**
-   * Starts this MBean: rmiregistry can now accept incoming calls
-   * 
-   * @see #stop
-   * @see #isRunning
-   */
-  public void start() throws RemoteException;
-
-  /**
-   * Stops this MBean: rmiregistry cannot accept anymore incoming calls
-   * 
-   * @see #start
-   */
-  public void stop() throws NoSuchObjectException;
-
-  /**
-   * Returns an array of the names bound in the rmiregistry
-   * 
-   * @return an array of the names bound in the rmiregistry
-   * @see java.rmi.registry.Registry#list()
-   */
-  public String[] list() throws RemoteException;
-
-  /**
-   * Removes the binding for the specified <code>name</code> in the rmiregistry
-   * 
-   * @see java.rmi.registry.Registry#unbind(String)
-   */
-  public void unbind(String name) throws RemoteException, NotBoundException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RefreshNotificationType.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RefreshNotificationType.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RefreshNotificationType.java
deleted file mode 100755
index 3b35b46..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/RefreshNotificationType.java
+++ /dev/null
@@ -1,133 +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.admin.jmx.internal;
-
-/**
- * Type-safe definition for refresh notifications.
- *
- * @author    Kirk Lund
- * @since     3.5
- *
- */
-public class RefreshNotificationType implements java.io.Serializable {
-  private static final long serialVersionUID = 4376763592395613794L;
-    
-  /** Notify StatisticResource to refresh statistics */
-  public static final RefreshNotificationType STATISTIC_RESOURCE_STATISTICS = 
-      new RefreshNotificationType(
-          "GemFire.Timer.StatisticResource.statistics.refresh", 
-          "refresh");
-
-  /** Notify SystemMember to refresh config */
-  public static final RefreshNotificationType SYSTEM_MEMBER_CONFIG = 
-      new RefreshNotificationType(
-          "GemFire.Timer.SystemMember.config.refresh", 
-          "refresh");
-
-  /** Notification type for the javax.management.Notification */
-  private final transient String type;
-  
-  /** Notification msg for the javax.management.Notification */
-  private final transient String msg;
-  
-  // The 4 declarations below are necessary for serialization
-  /** int used as ordinal to represent this Scope */
-  public final int ordinal = nextOrdinal++;
-
-  private static int nextOrdinal = 0;
-  
-  private static final RefreshNotificationType[] VALUES =
-    { STATISTIC_RESOURCE_STATISTICS, SYSTEM_MEMBER_CONFIG };
-
-  private Object readResolve() throws java.io.ObjectStreamException {
-    return VALUES[ordinal];  // Canonicalize
-  }
-  
-  /** Creates a new instance of RefreshNotificationType. */
-  private RefreshNotificationType(String type, String msg) {
-    this.type = type;
-    this.msg = msg;
-  }
-    
-  /** Return the RefreshNotificationType represented by specified ordinal */
-  public static RefreshNotificationType fromOrdinal(int ordinal) {
-    return VALUES[ordinal];
-  }
-
-	public String getType() {
-		return this.type;
-	}
-
-	public String getMessage() {
-		return this.msg;
-	}
-  
-  /** 
-   * Returns a string representation for this notification type.
-   *
-   * @return the type string for this Notification
-   */
-  @Override
-  public String toString() {
-      return this.type;
-  }
-
-	/**
-	 * Indicates whether some other object is "equal to" this one.
-	 *
-	 * @param  other  the reference object with which to compare.
-	 * @return true if this object is the same as the obj argument;
-	 *         false otherwise.
-	 */
-  @Override
-	public boolean equals(Object other) {
-		if (other == this) return true;
-		if (other == null) return false;
-		if (!(other instanceof RefreshNotificationType)) return  false;
-		final RefreshNotificationType that = (RefreshNotificationType) other;
-
-		if (this.type != that.type &&
-	  		!(this.type != null &&
-	  		this.type.equals(that.type))) return false;
-		if (this.msg != that.msg &&
-	  		!(this.msg != null &&
-	  		this.msg.equals(that.msg))) return false;
-
-		return true;
-	}
-  
-	/**
-	 * Returns a hash code for the object. This method is supported for the
-	 * benefit of hashtables such as those provided by java.util.Hashtable.
-	 *
-	 * @return the integer 0 if description is null; otherwise a unique integer.
-	 */
-  @Override
-	public int hashCode() {
-		int result = 17;
-		final int mult = 37;
-
-		result = mult * result + 
-			(this.type == null ? 0 : this.type.hashCode());
-		result = mult * result + 
-			(this.msg == null ? 0 : this.msg.hashCode());
-
-		return result;
-	}
-  
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatAlertNotification.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatAlertNotification.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatAlertNotification.java
deleted file mode 100644
index ad00f8e..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/jmx/internal/StatAlertNotification.java
+++ /dev/null
@@ -1,162 +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.admin.jmx.internal;
-
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.Serializable;
-import java.io.IOException;
-
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.DataSerializable;
-import com.gemstone.gemfire.internal.DataSerializableFixedID;
-import com.gemstone.gemfire.internal.Version;
-import com.gemstone.gemfire.internal.admin.StatAlert;
-import com.gemstone.gemfire.internal.admin.StatAlertDefinition;
-
-/**
- * Notification to be sent to clients (e.g GFMon2.0 ). It incorporates
- * 
- * @see StatAlert raised and also Gemfire member id which raised the alert
- * 
- * @author abhishek
- * 
- * @since 5.7
- */
-public class StatAlertNotification extends StatAlert implements Serializable, DataSerializable, DataSerializableFixedID {
-  private static final long serialVersionUID = -1634729103430107871L;
-  private String memberId;
-
-  public StatAlertNotification() {
-  }
-
-  public StatAlertNotification(StatAlert statAlert, String memberId) {
-    this.setDefinitionId(statAlert.getDefinitionId());
-    this.setValues(statAlert.getValues());
-    this.setTime(statAlert.getTime());
-    this.memberId = memberId;
-  }
-
-  public int getDSFID() {
-    return DataSerializableFixedID.STAT_ALERT_NOTIFICATION;
-  }
-
-  /**
-   * @return the memberId
-   */
-  public String getMemberId() {
-    return memberId;
-  }
-
-  /**
-   * 
-   * @param id
-   *                of gemfire member which raised the alert
-   */
-  public void setMemberId(String id) {
-    memberId = id;
-  }
-
-  /**
-   * @return String representation of this object
-   */
-  @Override
-  public String toString() {
-    StringBuffer buf = new StringBuffer();
-    buf.append("[");
-    for (int i = 0; i < getValues().length; i++) {
-      buf.append(getValues()[i] + ", ");
-    }
-    buf.append("]");
-    return Integer.valueOf(getDefinitionId()) + ":" + buf.toString();
-  }
-
-  /**
-   * The notification is something like this
-   * "For Member ID: <ID>
-   * [
-   *  <StatName> = <Value>
-   *  .. 
-   * ]"
-   * @param defn
-   *                {@link StatAlertDefinition}
-   * @return String representation of this object based on
-   *         {@link StatAlertDefinition}
-   */
-  public String toString(StatAlertDefinition defn) {
-    StringBuffer buf = new StringBuffer();
-    buf.append("For Member ID: ");
-    buf.append(this.memberId);
-    buf.append("\n");
-    buf.append("[ ");
-    for (int i = 0; i < getValues().length; i++) {
-      buf.append(defn.getStatisticInfo()[i].toString() + "=" + getValues()[i]
-          + "\n");
-    }
-    buf.append("]");
-    return getTime().toString() + ":" + buf.toString();
-  }
-
-  @Override
-  public boolean equals(Object object) {
-    if (object != null && !(object instanceof StatAlertNotification)) {
-      return false;
-    }
-
-    StatAlertNotification other = (StatAlertNotification)object;
-
-    int defId = getDefinitionId();
-
-    if (defId != -1 && defId == other.getDefinitionId() && memberId != null
-        && memberId.equals(other.getMemberId())) {
-      return true;
-    }
-
-    return false;
-  }
-
-  @Override
-  public int hashCode() {
-    return memberId.hashCode();
-  }
-
-  public void toData(DataOutput out) throws IOException {
-    // Do not modify StatAlert to allow 57 cacheservers to function with 57+ agent
-    // However, update of a new StatAlertDefn on 57 server from 57+ agent not covered with this
-    DataSerializer.writePrimitiveInt(this.getDefinitionId(), out);
-    DataSerializer.writeDate(this.getTime(), out);
-    DataSerializer.writeObjectArray(this.getValues(), out);
-
-    DataSerializer.writeString(this.memberId, out);
-  }
-
-  public void fromData(DataInput in)
-    throws IOException, ClassNotFoundException {
-    // Do not modify StatAlert to allow 57 cacheservers to function with 57+ agent
-    // However, update of a new StatAlertDefn on 57 server from 57+ agent not covered with this
-    this.setDefinitionId(DataSerializer.readPrimitiveInt(in));
-    this.setTime(DataSerializer.readDate(in));
-    this.setValues((Number[])DataSerializer.readObjectArray(in));
-
-    this.memberId = DataSerializer.readString(in);
-  }
-
-  @Override
-  public Version[] getSerializationVersions() {
-    return null;
-  }
-}


[36/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/URLArgumentHandler.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/URLArgumentHandler.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/URLArgumentHandler.java
new file mode 100644
index 0000000..bb4b53a
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/URLArgumentHandler.java
@@ -0,0 +1,77 @@
+/*
+* 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.installer.args;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * Argument handler implementation which accepts file paths or URLs and
+ * normalizes the parameters to URLs.
+ */
+public class URLArgumentHandler implements ArgumentHandler {
+
+  /**
+   * Logger.
+   */
+  private static final Logger LOG =
+      Logger.getLogger(URLArgumentHandler.class.getName());
+
+  /**
+   * Ensure that the argument is either a file path or a properly formatted URL.
+   *  If it is a file path, convert to a URL.  If neither, throws a
+   * UsageException.
+   *
+   * @param arg        argument
+   * @param form       form used
+   * @param parameters parameters supplied
+   * @throws UsageException when file not found or not a workable URL
+   */
+  public void handleArgument(
+      final Argument arg,
+      final String form,
+      final String[] parameters)
+      throws UsageException {
+    final File file = new File(parameters[0]);
+    URL result = null;
+
+    if (file.exists()) {
+      try {
+        result = file.toURI().toURL();
+      } catch (MalformedURLException mux) {
+        LOG.log(Level.FINEST, "Caught Exception", mux);
+      }
+    }
+    if (result == null) {
+      try {
+        result = new URL(parameters[0]);
+      } catch (MalformedURLException mux) {
+        LOG.log(Level.FINEST, "Caught Exception", mux);
+      }
+    }
+    if (result == null) {
+      throw (new UsageException(
+          "Argument parameter value is not a valid file "
+              + "path or URL: " + arg));
+    }
+    parameters[0] = result.toString();
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UnknownArgumentHandler.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UnknownArgumentHandler.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UnknownArgumentHandler.java
new file mode 100644
index 0000000..4d52f62
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UnknownArgumentHandler.java
@@ -0,0 +1,36 @@
+/*
+ * 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.installer.args;
+
+/**
+ * Interface defining unknown argument handlers, given the opportunity to either
+ * ignore the issue or force the parameter to be dealt with.
+ */
+public interface UnknownArgumentHandler {
+
+  /**
+   * Called when an unknown argument is supplied.
+   *
+   * @param form   argument name used
+   * @param params parameters passed into it
+   * @throws UsageException when the user needs to fix it
+   */
+  void handleUnknownArgument(String form, String[] params)
+      throws UsageException;
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UsageException.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UsageException.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UsageException.java
new file mode 100644
index 0000000..0879417
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UsageException.java
@@ -0,0 +1,89 @@
+/*
+* 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.installer.args;
+
+/**
+ * Invalid usage exception.
+ */
+public class UsageException extends Exception {
+
+  /**
+   * Serial format version.
+   */
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * Stored usage message.
+   */
+  private String usage;
+
+  /**
+   * Creates a new UsageException.
+   */
+  public UsageException() {
+    super();
+  }
+
+  /**
+   * Creates a new UsageException.
+   *
+   * @param message description of exceptional condition
+   */
+  public UsageException(final String message) {
+    super(message);
+  }
+
+  /**
+   * Creates a new UsageException.
+   *
+   * @param message description of exceptional condition
+   * @param cause   provoking exception
+   */
+  public UsageException(final String message, final Throwable cause) {
+    super(message, cause);
+  }
+
+  /**
+   * Creates a new UsageException.
+   *
+   * @param cause provoking exception
+   */
+  public UsageException(final Throwable cause) {
+    super(cause);
+  }
+
+
+  /**
+   * Attaches a usage message to the exception for later consumption.
+   *
+   * @param usageText text to display to user to guide them to correct usage.
+   *                  This is generated and set by the <code>ArgsProcessor</code>.
+   */
+  public void setUsage(final String usageText) {
+    usage = usageText;
+  }
+
+  /**
+   * Returns the usage message previously set.
+   *
+   * @return message or null if not set.
+   */
+  public String getUsage() {
+    return usage;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/AbstractSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/AbstractSessionCache.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/AbstractSessionCache.java
new file mode 100644
index 0000000..965a97f
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/AbstractSessionCache.java
@@ -0,0 +1,102 @@
+/*
+* 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.common;
+
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionStatistics;
+import com.gemstone.gemfire.modules.session.internal.filter.util.TypeAwareMap;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+
+import java.util.Map;
+import javax.servlet.http.HttpSession;
+
+public abstract class AbstractSessionCache implements SessionCache {
+
+  /**
+   * The sessionRegion is the <code>Region</code> that actually stores and
+   * replicates the <code>Session</code>s.
+   */
+  protected Region<String, HttpSession> sessionRegion;
+
+  /**
+   * The operatingRegion is the <code>Region</code> used to do HTTP operations.
+   * if local cache is enabled, then this will be the local <code>Region</code>;
+   * otherwise, it will be the session <code>Region</code>.
+   */
+  protected Region<String, HttpSession> operatingRegion;
+
+  protected Map<CacheProperty, Object> properties =
+      new TypeAwareMap<CacheProperty, Object>(CacheProperty.class);
+
+  protected DeltaSessionStatistics statistics;
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void stop() {
+    sessionRegion.close();
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Region<String, HttpSession> getOperatingRegion() {
+    return this.operatingRegion;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Region<String, HttpSession> getSessionRegion() {
+    return this.sessionRegion;
+  }
+
+  protected void createStatistics() {
+    this.statistics =
+        new DeltaSessionStatistics(getCache().getDistributedSystem(),
+            (String) properties.get(CacheProperty.STATISTICS_NAME));
+  }
+
+  /**
+   * Build up a {@code RegionConfiguraton} object from parameters originally
+   * passed in as filter initialization parameters.
+   *
+   * @return a {@code RegionConfiguration} object
+   */
+  protected RegionConfiguration createRegionConfiguration() {
+    RegionConfiguration configuration = new RegionConfiguration();
+
+    configuration.setRegionName(
+        (String) properties.get(CacheProperty.REGION_NAME));
+    configuration.setRegionAttributesId(
+        (String) properties.get(CacheProperty.REGION_ATTRIBUTES_ID));
+
+    configuration.setEnableGatewayDeltaReplication(
+        (Boolean) properties.get(
+            CacheProperty.ENABLE_GATEWAY_DELTA_REPLICATION));
+    configuration.setEnableGatewayReplication(
+        (Boolean) properties.get(CacheProperty.ENABLE_GATEWAY_REPLICATION));
+    configuration.setEnableDebugListener(
+        (Boolean) properties.get(CacheProperty.ENABLE_DEBUG_LISTENER));
+
+    return configuration;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/CacheProperty.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/CacheProperty.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/CacheProperty.java
new file mode 100644
index 0000000..e26281e
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/CacheProperty.java
@@ -0,0 +1,65 @@
+/*
+* 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.common;
+
+/**
+ * Used to define cache properties
+ */
+public enum CacheProperty {
+
+  ENABLE_DEBUG_LISTENER(Boolean.class),
+
+  ENABLE_GATEWAY_REPLICATION(Boolean.class),
+
+  ENABLE_GATEWAY_DELTA_REPLICATION(Boolean.class),
+
+  ENABLE_LOCAL_CACHE(Boolean.class),
+
+  REGION_NAME(String.class),
+
+  REGION_ATTRIBUTES_ID(String.class),
+
+  STATISTICS_NAME(String.class),
+
+  /**
+   * 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
+   */
+  SESSION_DELTA_POLICY(String.class),
+
+  /**
+   * This parameter can take the following values:
+   * <p/>
+   * set (default) set_and_get
+   */
+  REPLICATION_TRIGGER(String.class);
+
+  Class clazz;
+
+  CacheProperty(Class clazz) {
+    this.clazz = clazz;
+  }
+
+  public Class getClazz() {
+    return clazz;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/ClientServerSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/ClientServerSessionCache.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/ClientServerSessionCache.java
new file mode 100644
index 0000000..a23888c
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/ClientServerSessionCache.java
@@ -0,0 +1,186 @@
+/*
+* 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.common;
+
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.client.ClientCache;
+import com.gemstone.gemfire.cache.client.ClientRegionFactory;
+import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
+import com.gemstone.gemfire.cache.execute.Execution;
+import com.gemstone.gemfire.cache.execute.FunctionService;
+import com.gemstone.gemfire.cache.execute.ResultCollector;
+import com.gemstone.gemfire.modules.util.BootstrappingFunction;
+import com.gemstone.gemfire.modules.util.CreateRegionFunction;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+import com.gemstone.gemfire.modules.util.RegionStatus;
+
+import java.util.List;
+import java.util.Map;
+import javax.servlet.http.HttpSession;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Class which defines a client/server cache.
+ */
+public class ClientServerSessionCache extends AbstractSessionCache {
+
+  private static final Logger LOG =
+      LoggerFactory.getLogger(PeerToPeerSessionCache.class.getName());
+
+  private ClientCache cache;
+
+  protected static final String DEFAULT_REGION_ATTRIBUTES_ID =
+      RegionShortcut.PARTITION_REDUNDANT.toString();
+
+  protected static final Boolean DEFAULT_ENABLE_LOCAL_CACHE = true;
+
+  /**
+   * Constructor
+   *
+   * @param cache
+   * @param properties
+   */
+  public ClientServerSessionCache(ClientCache cache,
+      Map<CacheProperty, Object> properties) {
+    super();
+    this.cache = cache;
+
+    /**
+     * Set some default properties for this cache if they haven't already
+     * been set
+     */
+    this.properties.put(CacheProperty.REGION_ATTRIBUTES_ID,
+        DEFAULT_REGION_ATTRIBUTES_ID);
+    this.properties.put(CacheProperty.ENABLE_LOCAL_CACHE,
+        DEFAULT_ENABLE_LOCAL_CACHE);
+    this.properties.putAll(properties);
+  }
+
+  @Override
+  public void initialize() {
+    // Bootstrap the servers
+    bootstrapServers();
+
+    // Create or retrieve the region
+    createOrRetrieveRegion();
+
+    // Set the session region directly as the operating region since there is no difference
+    // between the local cache region and the session region.
+    operatingRegion = sessionRegion;
+
+    // Create or retrieve the statistics
+    createStatistics();
+  }
+
+  @Override
+  public GemFireCache getCache() {
+    return cache;
+  }
+
+  @Override
+  public boolean isClientServer() {
+    return true;
+  }
+
+
+  ////////////////////////////////////////////////////////////////////////
+  // Private methods
+
+  private void bootstrapServers() {
+    Execution execution = FunctionService.onServers(this.cache);
+    ResultCollector collector = execution.execute(new BootstrappingFunction());
+    // Get the result. Nothing is being done with it.
+    try {
+      collector.getResult();
+    } catch (Exception e) {
+      // If an exception occurs in the function, log it.
+      LOG.warn("Caught unexpected exception:", e);
+    }
+  }
+
+  private void createOrRetrieveRegion() {
+    // Retrieve the local session region
+    this.sessionRegion =
+        this.cache.getRegion(
+            (String) properties.get(CacheProperty.REGION_NAME));
+
+    // If necessary, create the regions on the server and client
+    if (this.sessionRegion == null) {
+      // Create the PR on the servers
+      createSessionRegionOnServers();
+
+      // Create the region on the client
+      this.sessionRegion = createLocalSessionRegion();
+      LOG.debug("Created session region: " + this.sessionRegion);
+    } else {
+      LOG.debug("Retrieved session region: " + this.sessionRegion);
+    }
+  }
+
+  private void createSessionRegionOnServers() {
+    // Create the RegionConfiguration
+    RegionConfiguration configuration = createRegionConfiguration();
+
+    // Send it to the server tier
+    Execution execution = FunctionService.onServer(this.cache).withArgs(
+        configuration);
+    ResultCollector collector = execution.execute(CreateRegionFunction.ID);
+
+    // Verify the region was successfully created on the servers
+    List<RegionStatus> results = (List<RegionStatus>) collector.getResult();
+    for (RegionStatus status : results) {
+      if (status == RegionStatus.INVALID) {
+        StringBuilder builder = new StringBuilder();
+        builder.append(
+            "An exception occurred on the server while attempting to create or validate region named ");
+        builder.append(properties.get(CacheProperty.REGION_NAME));
+        builder.append(". See the server log for additional details.");
+        throw new IllegalStateException(builder.toString());
+      }
+    }
+  }
+
+  private Region<String, HttpSession> createLocalSessionRegion() {
+    ClientRegionFactory<String, HttpSession> factory = null;
+    boolean enableLocalCache =
+        (Boolean) properties.get(CacheProperty.ENABLE_LOCAL_CACHE);
+
+    String regionName = (String) properties.get(CacheProperty.REGION_NAME);
+    if (enableLocalCache) {
+      // Create the region factory with caching and heap LRU enabled
+      factory = ((ClientCache) this.cache).
+          createClientRegionFactory(
+              ClientRegionShortcut.CACHING_PROXY_HEAP_LRU);
+      LOG.info("Created new local client session region: {}", regionName);
+    } else {
+      // Create the region factory without caching enabled
+      factory = ((ClientCache) this.cache).createClientRegionFactory(
+          ClientRegionShortcut.PROXY);
+      LOG.info(
+          "Created new local client (uncached) session region: {} without any session expiry",
+          regionName);
+    }
+
+    // Create the region
+    return factory.create(regionName);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/PeerToPeerSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/PeerToPeerSessionCache.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/PeerToPeerSessionCache.java
new file mode 100644
index 0000000..878adaa
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/PeerToPeerSessionCache.java
@@ -0,0 +1,184 @@
+/*
+* 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.common;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionFactory;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.execute.FunctionService;
+import com.gemstone.gemfire.modules.session.catalina.callback.LocalSessionCacheLoader;
+import com.gemstone.gemfire.modules.session.catalina.callback.LocalSessionCacheWriter;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+import com.gemstone.gemfire.modules.util.RegionHelper;
+import com.gemstone.gemfire.modules.util.TouchPartitionedRegionEntriesFunction;
+import com.gemstone.gemfire.modules.util.TouchReplicatedRegionEntriesFunction;
+
+import java.util.Map;
+import javax.servlet.http.HttpSession;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Class which defines a peer-to-peer cache
+ */
+public class PeerToPeerSessionCache extends AbstractSessionCache {
+
+  private static final Logger LOG =
+      LoggerFactory.getLogger(PeerToPeerSessionCache.class.getName());
+
+  private Cache cache;
+
+  private static final String DEFAULT_REGION_ATTRIBUTES_ID =
+      RegionShortcut.REPLICATE.toString();
+
+  private static final Boolean DEFAULT_ENABLE_LOCAL_CACHE = false;
+
+  /**
+   * Constructor
+   *
+   * @param cache
+   * @param properties
+   */
+  public PeerToPeerSessionCache(Cache cache,
+      Map<CacheProperty, Object> properties) {
+    super();
+    this.cache = cache;
+
+    /**
+     * Set some default properties for this cache if they haven't already
+     * been set
+     */
+    this.properties.put(CacheProperty.REGION_ATTRIBUTES_ID,
+        DEFAULT_REGION_ATTRIBUTES_ID);
+    this.properties.put(CacheProperty.ENABLE_LOCAL_CACHE,
+        DEFAULT_ENABLE_LOCAL_CACHE);
+    this.properties.putAll(properties);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void initialize() {
+    // Register Functions
+    registerFunctions();
+
+    // Create or retrieve the region
+    createOrRetrieveRegion();
+
+    /**
+     * If local cache is enabled, create the local region fronting the
+     * session region and set it as the operating region; otherwise, use
+     * the session region directly as the operating region.
+     */
+    boolean enableLocalCache =
+        (Boolean) properties.get(CacheProperty.ENABLE_LOCAL_CACHE);
+    operatingRegion = enableLocalCache
+        ? createOrRetrieveLocalRegion()
+        : this.sessionRegion;
+
+    // Create or retrieve the statistics
+    createStatistics();
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public GemFireCache getCache() {
+    return cache;
+  }
+
+  @Override
+  public boolean isClientServer() {
+    return false;
+  }
+
+  private void registerFunctions() {
+    // Register the touch partitioned region entries function if it is not already registered
+    if (!FunctionService.isRegistered(
+        TouchPartitionedRegionEntriesFunction.ID)) {
+      FunctionService.registerFunction(
+          new TouchPartitionedRegionEntriesFunction());
+    }
+
+    // Register the touch replicated region entries function if it is not already registered
+    if (!FunctionService.isRegistered(
+        TouchReplicatedRegionEntriesFunction.ID)) {
+      FunctionService.registerFunction(
+          new TouchReplicatedRegionEntriesFunction());
+    }
+  }
+
+  private void createOrRetrieveRegion() {
+    // Create the RegionConfiguration
+    RegionConfiguration configuration = createRegionConfiguration();
+
+    // Attempt to retrieve the region
+    // If it already exists, validate it
+    // If it doesn't already exist, create it
+    Region region = this.cache.getRegion(
+        (String) properties.get(CacheProperty.REGION_NAME));
+    if (region == null) {
+      // Create the region
+      region = RegionHelper.createRegion(cache, configuration);
+      LOG.info("Created new session region: {}", region);
+    } else {
+      // Validate the existing region
+      LOG.info("Retrieved existing session region: {}", region);
+      RegionHelper.validateRegion(cache, configuration, region);
+    }
+
+    // Set the session region
+    this.sessionRegion = region;
+  }
+
+  /**
+   * Create a local region fronting the main region.
+   *
+   * @return
+   */
+  private Region<String, HttpSession> createOrRetrieveLocalRegion() {
+    // Attempt to retrieve the fronting region
+    String frontingRegionName = this.sessionRegion.getName() + "_local";
+    Region<String, HttpSession> frontingRegion =
+        this.cache.getRegion(frontingRegionName);
+
+    if (frontingRegion == null) {
+      // Create the region factory
+      RegionFactory<String, HttpSession> factory =
+          this.cache.createRegionFactory(RegionShortcut.LOCAL_HEAP_LRU);
+
+      // Add the cache loader and writer
+      factory.setCacheLoader(new LocalSessionCacheLoader(this.sessionRegion));
+      factory.setCacheWriter(new LocalSessionCacheWriter(this.sessionRegion));
+
+      // Create the region
+      frontingRegion = factory.create(frontingRegionName);
+      LOG.info("Created new local session region: {}", frontingRegion);
+    } else {
+      LOG.info("Retrieved existing local session region: {}",
+          frontingRegion);
+    }
+
+    return frontingRegion;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionCache.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionCache.java
new file mode 100644
index 0000000..7562dff
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionCache.java
@@ -0,0 +1,68 @@
+/*
+* 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.common;
+
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+
+import javax.servlet.http.HttpSession;
+
+/**
+ * Interface to basic cache operations.
+ */
+public interface SessionCache {
+
+  /**
+   * Initialize the cache and create the appropriate region.
+   */
+  public void initialize();
+
+  /**
+   * Stop the cache.
+   */
+  public void stop();
+
+  /**
+   * Retrieve the cache reference.
+   *
+   * @return a {@code GemFireCache} reference
+   */
+  public GemFireCache getCache();
+
+  /**
+   * Get the {@code Region} being used by client code to put attributes.
+   *
+   * @return a {@code Region<String, HttpSession>} reference
+   */
+  public Region<String, HttpSession> getOperatingRegion();
+
+  /**
+   * Get the backing {@code Region} being used. This may not be the same as the
+   * region being used by client code to put attributes.
+   *
+   * @return a {@code Region<String, HttpSession>} reference
+   */
+  public Region<String, HttpSession> getSessionRegion();
+
+  /**
+   * Is this cache client-server? The only other alternative is peer-to-peer.
+   *
+   * @return true if this cache is client-server.
+   */
+  public boolean isClientServer();
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionExpirationCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionExpirationCacheListener.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionExpirationCacheListener.java
new file mode 100644
index 0000000..648e711
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionExpirationCacheListener.java
@@ -0,0 +1,53 @@
+/*
+* 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.common;
+
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.Operation;
+import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
+
+import java.util.Properties;
+import javax.servlet.http.HttpSession;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SessionExpirationCacheListener extends
+    CacheListenerAdapter<String, HttpSession> implements Declarable {
+
+  private static final Logger LOG =
+      LoggerFactory.getLogger(SessionExpirationCacheListener.class.getName());
+
+  @Override
+  public void afterDestroy(EntryEvent<String, HttpSession> event) {
+    /**
+     * A Session expired. If it was destroyed by GemFire expiration,
+     * process it. If it was destroyed via Session.invalidate, ignore it
+     * since it has already been processed.
+     */
+    if (event.getOperation() == Operation.EXPIRE_DESTROY) {
+      HttpSession session = (HttpSession) event.getOldValue();
+      session.invalidate();
+    }
+  }
+
+  @Override
+  public void init(Properties p) {
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/Constants.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/Constants.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/Constants.java
new file mode 100644
index 0000000..4ce8733
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/Constants.java
@@ -0,0 +1,30 @@
+/*
+ * 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;
+
+/**
+ * Various constant values used through the app
+ */
+public class Constants {
+
+  public static String GEMFIRE_SESSION_REQUEST = "_gemfire_session_request_";
+
+  public static String SESSION_STATISTICS_MBEAN_NAME =
+      "com.gemstone:type=SessionStatistics,name=sessionStatistics";
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/DummySessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/DummySessionManager.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/DummySessionManager.java
new file mode 100644
index 0000000..9628912
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/DummySessionManager.java
@@ -0,0 +1,132 @@
+/*
+* 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.modules.session.internal.filter.attributes.AbstractSessionAttributes;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import javax.servlet.http.HttpSession;
+
+/**
+ * Class which fakes an in-memory basic session manager for testing purposes.
+ */
+public class DummySessionManager implements SessionManager {
+
+  /**
+   * Map of sessions
+   */
+  private final Map<String, HttpSession> sessions =
+      new HashMap<String, HttpSession>();
+
+  private class Attributes extends AbstractSessionAttributes {
+
+    @Override
+    public Object putAttribute(String attr, Object value) {
+      return attributes.put(attr, value);
+    }
+
+    @Override
+    public Object removeAttribute(String attr) {
+      return attributes.remove(attr);
+    }
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void start(Object config, ClassLoader loader) {
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void stop() {
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public HttpSession getSession(String id) {
+    return sessions.get(id);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public HttpSession wrapSession(HttpSession nativeSession) {
+    String id = generateId();
+    AbstractSessionAttributes attributes = new Attributes();
+    GemfireHttpSession session = new GemfireHttpSession(id, nativeSession);
+    session.setManager(this);
+    session.setAttributes(attributes);
+    sessions.put(id, session);
+
+    return session;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public HttpSession getWrappingSession(String nativeId) {
+    return sessions.get(nativeId);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void putSession(HttpSession session) {
+    // shouldn't ever get called
+    throw new UnsupportedOperationException("Not supported yet.");
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void destroySession(String id) {
+    sessions.remove(id);
+  }
+
+  @Override
+  public String destroyNativeSession(String id) {
+    return null;
+  }
+
+  public String getSessionCookieName() {
+    return "JSESSIONID";
+  }
+
+  public String getJvmId() {
+    return "jvm-id";
+  }
+
+  /**
+   * Generate an ID string
+   */
+  private String generateId() {
+    return UUID.randomUUID().toString().toUpperCase() + "-GF";
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireHttpSession.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireHttpSession.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireHttpSession.java
new file mode 100644
index 0000000..695a03b
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireHttpSession.java
@@ -0,0 +1,526 @@
+/*
+* 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.DataSerializable;
+import com.gemstone.gemfire.DataSerializer;
+import com.gemstone.gemfire.Delta;
+import com.gemstone.gemfire.Instantiator;
+import com.gemstone.gemfire.InvalidDeltaException;
+import com.gemstone.gemfire.modules.session.internal.filter.attributes.AbstractSessionAttributes;
+import com.gemstone.gemfire.modules.session.internal.filter.attributes.SessionAttributes;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.concurrent.atomic.AtomicBoolean;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionContext;
+
+import com.gemstone.gemfire.modules.util.ClassLoaderObjectInputStream;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Class which implements a Gemfire persisted {@code HttpSession}
+ */
+public class GemfireHttpSession implements
+    HttpSession, DataSerializable, Delta {
+
+  private static transient final Logger LOG =
+      LoggerFactory.getLogger(GemfireHttpSession.class.getName());
+
+  /**
+   * Serial id
+   */
+  private static final long serialVersionUID = 238915238964017823L;
+
+  /**
+   * Id for the session
+   */
+  private String id;
+
+  /**
+   * Attributes really hold the essence of persistence.
+   */
+  private SessionAttributes attributes;
+
+  private transient SessionManager manager;
+
+  private HttpSession nativeSession = null;
+
+  /**
+   * A session becomes invalid if it is explicitly invalidated or if it
+   * expires.
+   */
+  private boolean isValid = true;
+
+  private boolean isNew = true;
+
+  private boolean isDirty = false;
+
+  /**
+   * This is set during serialization and then reset by the SessionManager when
+   * it is retrieved from the attributes.
+   */
+  private AtomicBoolean serialized = new AtomicBoolean(false);
+
+  /**
+   * Register ourselves for de-serialization
+   */
+  static {
+    Instantiator.register(new Instantiator(GemfireHttpSession.class, 27315) {
+      @Override
+      public DataSerializable newInstance() {
+        return new GemfireHttpSession();
+      }
+    });
+  }
+
+  /**
+   * Constructor used for de-serialization
+   */
+  private GemfireHttpSession() {
+  }
+
+  /**
+   * Constructor
+   */
+  public GemfireHttpSession(String id, HttpSession nativeSession) {
+    this();
+    this.id = id;
+    this.nativeSession = nativeSession;
+    if (nativeSession != null) {
+      attributes.setMaxInactiveInterval(nativeSession.getMaxInactiveInterval());
+    }
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Object getAttribute(String name) {
+    if (!isValid) {
+      throw new IllegalStateException("Session is already invalidated");
+    }
+    Object obj = attributes.getAttribute(name);
+
+    if (obj != null) {
+      Object tmpObj = null;
+      ClassLoader loader = ((GemfireSessionManager) manager).getReferenceClassLoader();
+
+      if (obj.getClass().getClassLoader() != loader) {
+        LOG.debug(
+            "Attribute '{}' needs to be reconstructed with a new classloader",
+            name);
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        try {
+          ObjectOutputStream oos = new ObjectOutputStream(baos);
+          oos.writeObject(obj);
+          oos.close();
+
+          ObjectInputStream ois = new ClassLoaderObjectInputStream(
+              new ByteArrayInputStream(baos.toByteArray()),
+              loader);
+          tmpObj = ois.readObject();
+        } catch (IOException e) {
+          LOG.error("Exception while recreating attribute '" + name +
+              "'", e);
+        } catch (ClassNotFoundException e) {
+          LOG.error("Exception while recreating attribute '" + name +
+              "'", e);
+        }
+        if (tmpObj != null) {
+          setAttribute(name, tmpObj);
+          obj = tmpObj;
+        }
+      }
+    }
+
+    return obj;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Enumeration getAttributeNames() {
+    if (!isValid) {
+      throw new IllegalStateException("Session is already invalidated");
+    }
+    return Collections.enumeration(attributes.getAttributeNames());
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public long getCreationTime() {
+    if (nativeSession != null) {
+      return nativeSession.getCreationTime();
+    } else {
+      return 0;
+    }
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public String getId() {
+    return id;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public long getLastAccessedTime() {
+    if (!isValid) {
+      throw new IllegalStateException("Session is already invalidated");
+    }
+    return attributes.getLastAccessedTime();
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public ServletContext getServletContext() {
+    if (nativeSession != null) {
+      return nativeSession.getServletContext();
+    } else {
+      return null;
+    }
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public HttpSessionContext getSessionContext() {
+    return null;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Object getValue(String name) {
+    return getAttribute(name);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public String[] getValueNames() {
+    return attributes.getAttributeNames().toArray(new String[0]);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void invalidate() {
+    nativeSession.invalidate();
+    manager.destroySession(id);
+    isValid = false;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public boolean isNew() {
+    if (!isValid) {
+      throw new IllegalStateException("Session is already invalidated");
+    }
+    return isNew;
+  }
+
+  public void setIsNew(boolean isNew) {
+    this.isNew = isNew;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void setMaxInactiveInterval(int interval) {
+    if (nativeSession != null) {
+      nativeSession.setMaxInactiveInterval(interval);
+    }
+    attributes.setMaxInactiveInterval(interval);
+    isDirty = true;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public int getMaxInactiveInterval() {
+    if (nativeSession != null) {
+      return nativeSession.getMaxInactiveInterval();
+    } else {
+      return attributes.getMaxIntactiveInterval();
+    }
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void putValue(String name, Object value) {
+    setAttribute(name, value);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void removeAttribute(final String name) {
+    LOG.debug("Session {} removing attribute {}", getId(), name);
+    nativeSession.removeAttribute(name);
+    attributes.removeAttribute(name);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void removeValue(String name) {
+    removeAttribute(name);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void setAttribute(final String name, final Object value) {
+
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("Session {} setting attribute {} = '{}'",
+          new Object[]{id, name, value});
+    }
+
+    isDirty = true;
+    nativeSession.setAttribute(name, value);
+    if (value == null) {
+      removeAttribute(name);
+    } else {
+      attributes.putAttribute(name, value);
+    }
+  }
+
+  /**
+   * Gemfire serialization {@inheritDoc}
+   */
+  @Override
+  public void toData(DataOutput out) throws IOException {
+    DataSerializer.writeString(id, out);
+    DataSerializer.writeObject(attributes, out);
+  }
+
+  /**
+   * Gemfire de-serialization {@inheritDoc}
+   */
+  @Override
+  public void fromData(DataInput in) throws IOException,
+      ClassNotFoundException {
+    id = DataSerializer.readString(in);
+    attributes = DataSerializer.readObject(in);
+    if (getNativeSession() != null) {
+      for (String s : attributes.getAttributeNames()) {
+        getNativeSession().setAttribute(s, attributes.getAttribute(s));
+      }
+    }
+
+    // Explicit sets
+    serialized.set(true);
+    attributes.setSession(this);
+  }
+
+  /**
+   * These three methods handle delta propagation and are deferred to the
+   * attribute object.
+   */
+  @Override
+  public boolean hasDelta() {
+    return isDirty;
+  }
+
+  @Override
+  public void toDelta(DataOutput out) throws IOException {
+    if (attributes instanceof Delta) {
+      ((Delta) attributes).toDelta(out);
+    } else {
+      toData(out);
+    }
+  }
+
+  @Override
+  public void fromDelta(DataInput in) throws IOException,
+      InvalidDeltaException {
+    if (attributes instanceof Delta) {
+      ((Delta) attributes).fromDelta(in);
+    } else {
+      try {
+        fromData(in);
+      } catch (ClassNotFoundException cex) {
+        throw new IOException("Unable to forward fromDelta() call "
+            + "to fromData()", cex);
+      }
+    }
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder builder = new StringBuilder();
+    builder.append("[id=").append(id)
+        .append(", isNew=").append(isNew)
+        .append(", isValid=").append(isValid)
+        .append(", hasDelta=").append(hasDelta())
+        .append(", lastAccessedTime=").append(attributes.getLastAccessedTime())
+        .append(", jvmOwnerId=").append(attributes.getJvmOwnerId());
+    builder.append("]");
+    return builder.toString();
+  }
+
+  /**
+   * Flush the session object to the region
+   */
+  public void putInRegion() {
+
+    manager.putSession(this);
+    isDirty = false;
+  }
+
+  /**
+   * Determine whether the session is still valid or whether it has expired.
+   *
+   * @return true or false
+   */
+  public boolean isValid() {
+    if (!isValid) {
+      return false;
+    }
+    if (getMaxInactiveInterval() >= 0) {
+      long now = System.currentTimeMillis();
+      if (now - attributes.getLastAccessedTime() >= getMaxInactiveInterval() * 1000) {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  /**
+   * Is this session dirty and should it be written to cache
+   */
+  public boolean isDirty() {
+    return isDirty;
+  }
+
+  public void setManager(SessionManager manager) {
+    this.manager = manager;
+  }
+
+  /**
+   * For testing allow retrieval of the wrapped, native session.
+   */
+  public HttpSession getNativeSession() {
+    return nativeSession;
+  }
+
+
+  public void setNativeSession(HttpSession session) {
+    this.nativeSession = session;
+  }
+
+  /**
+   * Handle the process of failing over the session to a new native session
+   * object.
+   *
+   * @param session
+   */
+  public void failoverSession(HttpSession session) {
+    LOG.debug("Failing over session {} to {}", getId(), session.getId());
+    setNativeSession(session);
+    for (String name : attributes.getAttributeNames()) {
+      LOG.debug("Copying '{}' => {}", name, attributes.getAttribute(name));
+      session.setAttribute(name, attributes.getAttribute(name));
+    }
+    session.setMaxInactiveInterval(attributes.getMaxIntactiveInterval());
+    manager.putSession(this);
+  }
+
+
+  /**
+   * Update the last accessed time
+   */
+  public void updateAccessTime() {
+    attributes.setLastAccessedTime(System.currentTimeMillis());
+  }
+
+  /**
+   * The {@code SessionManager} injects this when creating a new session.
+   *
+   * @param attributes
+   */
+  public void setAttributes(AbstractSessionAttributes attributes) {
+    this.attributes = attributes;
+  }
+
+  /**
+   * This is called on deserialization. You can only call it once to get a
+   * meaningful value as it resets the serialized state. In other words, this
+   * call is not idempotent.
+   *
+   * @return whether this object has just been serialized
+   */
+  public boolean justSerialized() {
+    return serialized.getAndSet(false);
+  }
+
+  /**
+   * Called when the session is about to go out of scope. If the session has
+   * been defined to use async queued attributes then they will be written out
+   * at this point.
+   */
+  public void commit() {
+    attributes.setJvmOwnerId(manager.getJvmId());
+    attributes.flush();
+  }
+
+  public String getJvmOwnerId() {
+    if (attributes != null) {
+      return attributes.getJvmOwnerId();
+    }
+
+    return null;
+  }
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionException.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionException.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionException.java
new file mode 100644
index 0000000..3ce81be
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionException.java
@@ -0,0 +1,41 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionManager.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionManager.java
new file mode 100644
index 0000000..a3d3c10
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireSessionManager.java
@@ -0,0 +1,511 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/ListenerEventType.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/ListenerEventType.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/ListenerEventType.java
new file mode 100644
index 0000000..b040dda
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/ListenerEventType.java
@@ -0,0 +1,75 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/SessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/SessionManager.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/SessionManager.java
new file mode 100644
index 0000000..9d8996c
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/SessionManager.java
@@ -0,0 +1,110 @@
+/*
+* 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/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractDeltaSessionAttributes.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractDeltaSessionAttributes.java b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractDeltaSessionAttributes.java
new file mode 100644
index 0000000..f46495d
--- /dev/null
+++ b/extensions/geode-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/attributes/AbstractDeltaSessionAttributes.java
@@ -0,0 +1,107 @@
+/*
+* 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();
+  }
+}


[21/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributedSystemConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributedSystemConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributedSystemConfig.java
deleted file mode 100755
index 80e16b7..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributedSystemConfig.java
+++ /dev/null
@@ -1,682 +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.admin;
-
-import com.gemstone.gemfire.admin.internal.InetAddressUtil;
-//import com.gemstone.gemfire.admin.jmx.AgentConfig;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-
-//import java.net.InetAddress;
-import java.util.Properties;
-
-/**
- * Configuration for defining a GemFire distributed system to
- * administrate.  This configuration includes information about the
- * discovery mechanism used to find members of the distributed system
- * and information about {@linkplain ManagedEntity managed entities}
- * such as {@linkplain DistributionLocator distribution locators}
- * and {@linkplain CacheVm GemFire cache vms}
- * that can be {@linkplain AdminDistributedSystem#start started}.  
- *
- * <P>
- *
- * Detailed descriptions of many of these configuration attributes can
- * be found in the {@link
- * com.gemstone.gemfire.distributed.DistributedSystem
- * DistributedSystem} class.  Note that the default values of these
- * configuration attributes can be specified using Java system
- * properties.
- *
- * <P>
- *
- * A <code>DistributedSystemConfig</code> can be modified using a
- * number of mutator methods until the
- * <code>AdminDistributedSystem</code> that it configures {@linkplain
- * AdminDistributedSystem#connect connects} to the distributed system.
- * After that, attempts to modify most attributes in the
- * <code>DistributedSystemConfig</code> will result in an {@link
- * IllegalStateException} being thrown.  If you wish to use the same
- * <code>DistributedSystemConfig</code> to configure multiple
- * <code>AdminDistributedSystem</code>s, a copy of the
- * <code>DistributedSystemConfig</code> object can be made by invoking
- * the {@link #clone} method.
- *
- * @author    Kirk Lund
- * @since 3.5 
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
-*/
-public interface DistributedSystemConfig extends Cloneable {
-
-  /** The name of an XML file that specifies the configuration for the
-   * {@linkplain ManagedEntity managed entities} administered by the
-   * <code>DistributedSystem</code>.  The XML file must conform to a
-   * <a href="doc-files/ds5_0.dtd">dtd</a>. */
-  public static final String ENTITY_CONFIG_XML_FILE_NAME =
-    "entity-config-xml-file";
-
-  /** The default value of the "entity-config-xml-file" property
-   * ("distributed-system.xml"). */
-  public static final String DEFAULT_ENTITY_CONFIG_XML_FILE =
-    "distributed-system.xml";
-
-  /** The name of the "system-id" property */
-  public static final String SYSTEM_ID_NAME = "system-id";
-
-  /** The default value of the "system-id" property ("") */
-  public static final String DEFAULT_SYSTEM_ID = "Default System";
-
-  /** The name of the "name" property. See {@link #getSystemName()}. */
-  public static final String NAME_NAME = DistributionConfig.NAME_NAME;
-
-  /** The default value of the "name" property (""). See {@link #getSystemName()}. */
-  public static final String DEFAULT_NAME = "";
-
-  /** The name of the "mcastPort" property */
-  public static final String MCAST_PORT_NAME = 
-    DistributionConfig.MCAST_PORT_NAME;
-
-  /** The default value of the "mcastPort" property (10334) */
-  public static final int DEFAULT_MCAST_PORT =
-    DistributionConfig.DEFAULT_MCAST_PORT;
-
-  /** The minimum mcastPort (0) */
-  public static final int MIN_MCAST_PORT =
-    DistributionConfig.MIN_MCAST_PORT;
-
-  /** The maximum mcastPort (65535) */
-  public static final int MAX_MCAST_PORT =
-    DistributionConfig.MAX_MCAST_PORT;
-  
-  /** The name of the "mcastAddress" property */
-  public static final String MCAST_ADDRESS_NAME = 
-    DistributionConfig.MCAST_ADDRESS_NAME;
-
-  /** The default value of the "mcastAddress" property (239.192.81.1). */
-  public static final String DEFAULT_MCAST_ADDRESS = 
-      InetAddressUtil.toString(DistributionConfig.DEFAULT_MCAST_ADDRESS);
-  
-  /** The name of the "membership-port-range" property
-   * @since 6.5
-   */
-  public static final String MEMBERSHIP_PORT_RANGE_NAME = 
-    DistributionConfig.MEMBERSHIP_PORT_RANGE_NAME;
-
-  /**
-   * The default membership-port-range.
-   * <p> Actual value is <code>[1024,65535]</code>.
-   * @since 6.5
-   */
-  public static final int[] DEFAULT_MEMBERSHIP_PORT_RANGE = 
-    DistributionConfig.DEFAULT_MEMBERSHIP_PORT_RANGE;
-  
-  /** settings for tcp-port
-   * @since 6.5
-   */
-  public static final String TCP_PORT_NAME = DistributionConfig.TCP_PORT_NAME;
-  /** The default value of the "tcpPort" property.
-   * <p> Actual value is <code>0</code>.
-   * @since 6.5
-   */
-  public static final int DEFAULT_TCP_PORT = DistributionConfig.DEFAULT_TCP_PORT;
-
-  /**
-   * The default AckWaitThreshold.
-   * <p> Actual value of this constant is <code>15</code> seconds.
-   */
-  public static final int DEFAULT_ACK_WAIT_THRESHOLD =
-    DistributionConfig.DEFAULT_ACK_WAIT_THRESHOLD;
-  /**
-   * The minimum AckWaitThreshold.
-   * <p> Actual value of this constant is <code>1</code> second.
-   */
-  public static final int MIN_ACK_WAIT_THRESHOLD =
-    DistributionConfig.MIN_ACK_WAIT_THRESHOLD;
-  /**
-   * The maximum AckWaitThreshold.
-   * <p> Actual value of this constant is <code>MAX_INT</code> seconds.
-   */
-  public static final int MAX_ACK_WAIT_THRESHOLD =
-    DistributionConfig.MIN_ACK_WAIT_THRESHOLD;
-  
-  /**
-   * The default ackSevereAlertThreshold.
-   * <p> Actual value of this constant is <code>0</code> seconds, which
-   * turns off forced disconnects based on ack wait periods.
-   */
-  public static final int DEFAULT_ACK_SEVERE_ALERT_THRESHOLD =
-    DistributionConfig.DEFAULT_ACK_SEVERE_ALERT_THRESHOLD;
-  /**
-   * The minimum ackSevereAlertThreshold.
-   * <p> Actual value of this constant is <code>0</code> second,
-   * which turns off forced disconnects based on ack wait periods.
-   */
-  public static final int MIN_ACK_SEVERE_ALERT_THRESHOLD =
-    DistributionConfig.MIN_ACK_SEVERE_ALERT_THRESHOLD;
-  /**
-   * The maximum ackSevereAlertThreshold.
-   * <p> Actual value of this constant is <code>MAX_INT</code> seconds.
-   */
-  public static final int MAX_ACK_SEVERE_ALERT_THRESHOLD =
-    DistributionConfig.MAX_ACK_SEVERE_ALERT_THRESHOLD;
-
-  /** The name of the "locators" property (comma-delimited host[port] list) */
-  public static final String LOCATORS_NAME = 
-    DistributionConfig.LOCATORS_NAME;
-
-  /** The default value of the "locators" property ("") */
-  public static final String DEFAULT_LOCATORS =
-    DistributionConfig.DEFAULT_LOCATORS;
-
-  /** The name of the "bindAddress" property */
-  public static final String BIND_ADDRESS_NAME =
-    DistributionConfig.BIND_ADDRESS_NAME;
-
-  /** The default value of the "bindAddress" property */
-  public static final String DEFAULT_BIND_ADDRESS =
-    DistributionConfig.DEFAULT_BIND_ADDRESS;
-
-  /** The name of the remote-command property */
-  public static final String REMOTE_COMMAND_NAME = "remote-command";
-
-  /** The default value of the remote-command property */
-  public static final String DEFAULT_REMOTE_COMMAND =
-    "rsh -n {HOST} {CMD}";
-
-  /** The name of the "SSLEnabled" property */
-  public static final String SSL_ENABLED_NAME = 
-    DistributionConfig.SSL_ENABLED_NAME;
-
-  /** The default ssl-enabled state (<code>false</code>) */
-  public static final boolean DEFAULT_SSL_ENABLED =
-    DistributionConfig.DEFAULT_SSL_ENABLED;
- 
-  /** The name of the "SSLProtocols" property */
-  public static final String SSL_PROTOCOLS_NAME =
-    DistributionConfig.SSL_PROTOCOLS_NAME;
-
-  /** The default ssl-protocols value (<code>any</code>) */
-  public static final String DEFAULT_SSL_PROTOCOLS =
-    DistributionConfig.DEFAULT_SSL_PROTOCOLS;
-   
-  /** The name of the "SSLCiphers" property */
-  public static final String SSL_CIPHERS_NAME = 
-    DistributionConfig.SSL_CIPHERS_NAME;
-
-  /** The default ssl-ciphers value. (<code>any</code>) */
-  public static final String DEFAULT_SSL_CIPHERS =
-    DistributionConfig.DEFAULT_SSL_CIPHERS; 
-  
-  /** The name of the "SSLRequireAuthentication" property */
-  public static final String SSL_REQUIRE_AUTHENTICATION_NAME =
-    DistributionConfig.SSL_REQUIRE_AUTHENTICATION_NAME;
-
-  /** The default ssl-require-authentication value (<code>true</code>) */
-  public static final boolean DEFAULT_SSL_REQUIRE_AUTHENTICATION =
-    DistributionConfig.DEFAULT_SSL_REQUIRE_AUTHENTICATION; 
-
-  /** The default disable-tcp value (<code>false</code>) */
-  public static final boolean DEFAULT_DISABLE_TCP = DistributionConfig.DEFAULT_DISABLE_TCP;
-  
-  /** The default enable-network-partition-detection setting (<code>false</code>) */
-  public static final boolean DEFAULT_ENABLE_NETWORK_PARTITION_DETECTION = DistributionConfig.DEFAULT_ENABLE_NETWORK_PARTITION_DETECTION;
-  
-  /** The default disable-auto-reconnect setting (<code>false</code>) */
-  public static final boolean DEFAULT_DISABLE_AUTO_RECONNECT = DistributionConfig.DEFAULT_DISABLE_AUTO_RECONNECT;
-
-  /** The default failure-detection timeout period for member heart-beat responses */
-  public static final int DEFAULT_MEMBER_TIMEOUT = DistributionConfig.DEFAULT_MEMBER_TIMEOUT;
-  
-  /** The name of the "logFile" property */
-  public static final String LOG_FILE_NAME = "log-file";
-
-  /** The default log-file value ("" which directs logging to standard
-   * output) */
-  public static final String DEFAULT_LOG_FILE = "";
-
-  /** The name of the "logLevel" property */
-  public static final String LOG_LEVEL_NAME = "log-level";
-
-  /** The default log level ("config") */
-  public static final String DEFAULT_LOG_LEVEL = "config";
-
-  /** The name of the "LogDiskSpaceLimit" property */
-  public static final String LOG_DISK_SPACE_LIMIT_NAME =
-    "log-disk-space-limit";
-
-  /** The default log disk space limit in megabytes (0) */
-  public static final int DEFAULT_LOG_DISK_SPACE_LIMIT =
-    DistributionConfig.DEFAULT_LOG_DISK_SPACE_LIMIT;
-
-  /** The minimum log disk space limit in megabytes (0) */
-  public static final int MIN_LOG_DISK_SPACE_LIMIT = 
-    DistributionConfig.MIN_LOG_DISK_SPACE_LIMIT;
-
-  /** The minimum log disk space limit in megabytes (1000000) */
-  public static final int MAX_LOG_DISK_SPACE_LIMIT =
-    DistributionConfig.MAX_LOG_DISK_SPACE_LIMIT;
-    
-  /** The name of the "LogFileSizeLimit" property */
-  public static final String LOG_FILE_SIZE_LIMIT_NAME =
-    "log-file-size-limit";
-
-  /** The default log file size limit in megabytes (0) */
-  public static final int DEFAULT_LOG_FILE_SIZE_LIMIT =
-    DistributionConfig.DEFAULT_LOG_FILE_SIZE_LIMIT;
-
-  /** The minimum log file size limit in megabytes (0) */
-  public static final int MIN_LOG_FILE_SIZE_LIMIT =
-    DistributionConfig.MIN_LOG_FILE_SIZE_LIMIT;
-
-  /** The minimum log file size limit in megabytes (1000000) */
-  public static final int MAX_LOG_FILE_SIZE_LIMIT =
-    DistributionConfig.MAX_LOG_FILE_SIZE_LIMIT;
-
-  /**
-   * The name of the "refreshInterval" property which will apply to
-   * SystemMember, SystemMemberCache and StatisticResource refresh. This interval
-   * (in seconds) is used for auto-polling and updating AdminDistributedSystem
-   * constituents including SystemMember, CacheServer, SystemMemberCache and
-   * StatisticResource. This interval is read-only and retains the value set
-   * when the config is created. Note that the resource MBeans actually refresh
-   * and hit the DS only if there is an RMI client connected
-   * */
-  public static final String REFRESH_INTERVAL_NAME =
-    "refresh-interval";
-
-  /**
-   * The default "refreshInterval" in seconds which will apply to
-   * REFRESH_INTERVAL_NAME property. The default value is 15 secs
-   * */
-  public static final int DEFAULT_REFRESH_INTERVAL = 15;
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Returns the name of the XML file that specifies the configuration
-   * of the {@linkplain com.gemstone.gemfire.admin.ManagedEntity
-   * managed entities} administered by the
-   * <code>DistributedSystem</code>.  The XML file must conform to a
-   * <a href="doc-files/ds5_0.dtd">dtd</a>.
-   *
-   * @since 4.0
-   */
-  public String getEntityConfigXMLFile();
-
-  /**
-   * Sets the name of the XML file that specifies the configuration of
-   * managed entities administered by the
-   * <code>DistributedSystem</code>. 
-   */
-  public void setEntityConfigXMLFile(String xmlFile);
-
-  /** Returns the string identity for the system */
-  public String getSystemId();
-
-  /** Sets the string identity for the system */
-  public void setSystemId(String systemId);
-
-  /** Returns the optional non-unique name for the system */
-  public String getSystemName();
-
-  /** Sets the optional non-unique name for the system */
-  public void setSystemName(final String name);
-
-  /** Returns the multicast address for the system */
-  public String getMcastAddress();
-
-  /** Sets the multicast address for the system */
-  public void setMcastAddress(String mcastAddress);
-
-  /** Returns the multicast port for the system */
-  public int getMcastPort();
-  
-  /** Sets the multicast port for the system */
-  public void setMcastPort(int mcastPort);
-
-  /** Returns the ack-wait-threshold for the system */
-  public int getAckWaitThreshold();
-  
-  /** Sets the ack-wait-threshold for the system */
-  public void setAckWaitThreshold(int seconds);
-
-  /** Returns the ack-severe-alert-threshold for the system */
-  public int getAckSevereAlertThreshold();
-  
-  /** Sets the ack-severe-alert-threshold for the system */
-  public void setAckSevereAlertThreshold(int seconds);
-
-  /** Returns a comma-delimited list of locators for the system */
-  public String getLocators();
-
-  /** Sets the comma-delimited list of locators for the system */
-  public void setLocators(String locators);
-
-  /**
-   * Returns the membership-port-range property of the Distributed System. This 
-   * range is given as two numbers separated by a minus sign.
-   * @since 6.5
-   */
-  public String getMembershipPortRange();
-  
-  /**
-   * Sets the membership-port-range property of the Distributed System. This 
-   * range is given as two numbers separated by a minus sign.
-   * @since 6.5
-   */
-  public void setMembershipPortRange(String membershipPortRange);
-  
-  
-  /**
-   * Sets the primary communication port number for the Distributed System.
-   * @since 6.5
-   */
-  public void setTcpPort(int port);
-
-  /**
-   * Returns the primary communication port number for the Distributed System.
-   * @since 6.5
-   */
-  public int getTcpPort();
-
-
-  /** Sets the disable-tcp property for the system.  When tcp is disabled,
-      the cache uses udp for unicast messaging.   This must be consistent
-      across all members of the distributed system. The default is to enable
-      tcp. */
-  public void setDisableTcp(boolean flag);
-  
-  /** Returns the disable-tcp property for the system.  When tcp is
-      disabled, the cache uses udp for unicast messaging.  This must be
-      consistent across all members of the distributed system.  The default
-      is to enable tcp.
-   */
-  public boolean getDisableTcp();
-
-
-  /**
-   * Turns on network partition detection
-   */
-  public void setEnableNetworkPartitionDetection(boolean newValue);
-  /**
-   * Returns true if network partition detection is enabled.
-   */
-  public boolean getEnableNetworkPartitionDetection();
-  
-  /**
-   * Disables auto reconnect after being forced out of the distributed system
-   */
-  public void setDisableAutoReconnect(boolean newValue);
-  
-  /**
-   * Returns true if auto reconnect is disabled
-   */
-  public boolean getDisableAutoReconnect();
-  
-  
-
-  /**
-   * Returns the member-timeout millisecond value used in failure-detection
-   * protocols
-   */
-  public int getMemberTimeout();
-
-  /**
-   * Set the millisecond value of the member-timeout used in failure-detection
-   * protocols.  This timeout determines how long a member has to respond to
-   * a heartbeat request. The member is given three chances before being
-   * kicked out of the distributed system with a SystemConnectException.
-   */
-  public void setMemberTimeout(int value);
-
-  /**
-   * Returns the IP address to which the distributed system's server
-   * sockets are bound.
-   *
-   * @since 4.0
-   */
-  public String getBindAddress();
-
-  /**
-   * Sets the IP address to which the distributed system's server
-   * sockets are bound.
-   *
-   * @since 4.0
-   */
-  public void setBindAddress(String bindAddress);
-  
-  
-  /**
-   * Returns the IP address to which client/server server sockets are
-   * bound
-   */
-  public String getServerBindAddress();
-  
-  /**
-   * Sets the IP address to which a server cache will bind when listening
-   * for client cache connections. 
-   */
-  public void setServerBindAddress(String bindAddress);
-  
-
-  /** Returns the remote command setting to use for remote administration */
-  public String getRemoteCommand();
-
-  /** 
-   * Sets the remote command setting to use for remote administration.
-   * This attribute may be modified after this
-   * <code>DistributedSystemConfig</code> has been used to create an
-   * <codE>AdminDistributedSystem</code>.
-   */
-  public void setRemoteCommand(String command);
-
-  /** Returns the value of the "ssl-enabled" property. */
-  public boolean isSSLEnabled();
-
-  /** Sets the value of the "ssl-enabled" property. */
-  public void setSSLEnabled(boolean enabled);
-
-  /** Returns the value of the "ssl-protocols" property. */
-  public String getSSLProtocols();
-
-  /** Sets the value of the "ssl-protocols" property. */
-  public void setSSLProtocols(String protocols);
-
-  /** Returns the value of the "ssl-ciphers" property. */
-  public String getSSLCiphers();
-
-  /** Sets the value of the "ssl-ciphers" property. */
-  public void setSSLCiphers(String ciphers);
-
-  /** Returns the value of the "ssl-require-authentication" property. */
-  public boolean isSSLAuthenticationRequired();
-
-  /** Sets the value of the "ssl-require-authentication" property. */
-  public void setSSLAuthenticationRequired(boolean authRequired);
-  
-  /** Returns the provider-specific properties for SSL. */
-  public Properties getSSLProperties();
-
-  /** Sets the provider-specific properties for SSL. */
-  public void setSSLProperties(Properties sslProperties);
-
-  /** Adds an SSL property */
-  public void addSSLProperty(String key, String value);
-
-  /** Removes an SSL property */
-  public void removeSSLProperty(String key);
-  
-  /**
-   * Returns the name of the log file to which informational messages
-   * are written.
-   *
-   * @see com.gemstone.gemfire.i18n.LogWriterI18n
-   */
-  public String getLogFile();
-
-  /**
-   * Sets the name of the log file to which informational messages
-   * are written.
-   *
-   * @see com.gemstone.gemfire.i18n.LogWriterI18n
-   */
-  public void setLogFile(String logFile);
-
-  /**
-   * Returns the level at which informational messages are logged.
-   */
-  public String getLogLevel();
-
-  /**
-   * Sets the level at which information messages are logged.
-   */
-  public void setLogLevel(String logLevel);
-
-  /**
-   * Returns the log disk space limit in megabytes
-   */
-  public int getLogDiskSpaceLimit();
-
-  /**
-   * Sets the log disk space limit in megabytes
-   */
-  public void setLogDiskSpaceLimit(int limit);
-
-  /**
-   * Returns the log file size limit in megabytes
-   */
-  public int getLogFileSizeLimit();
-
-  /**
-   * Sets the log file size limit in megabytes
-   */
-  public void setLogFileSizeLimit(int limit);
-
-  /**
-   * Returns the refreshInterval in seconds used for auto-polling and updating
-   * AdminDistributedSystem constituents including SystemMember, CacheServer,
-   * SystemMemberCache and StatisticResource
-   * @since 6.0
-   */
-  public int getRefreshInterval();
-
-  /**
-   * Sets the refreshInterval in seconds
-   * @since 6.0
-   */
-  public void setRefreshInterval(int timeInSecs);
-
-  /** 
-   * Returns an array of configurations for statically known
-   * <code>CacheServers</code>.
-   * @deprecated as of 5.7 use {@link #getCacheVmConfigs} instead.
-   */ 
-  @Deprecated
-  public CacheServerConfig[] getCacheServerConfigs();
-
-  /** 
-   * Creates the configuration for a CacheServer
-   * @deprecated as of 5.7 use {@link #createCacheVmConfig} instead.
-   */
-  @Deprecated
-  public CacheServerConfig createCacheServerConfig();
-
-  /** 
-   * Removes the configuration for a CacheServer
-   * @deprecated as of 5.7 use {@link #removeCacheVmConfig} instead.
-   */
-  @Deprecated
-  public void removeCacheServerConfig(CacheServerConfig managerConfig);
-
-  /** 
-   * Returns an array of configurations for statically known
-   * {@link CacheVm}s.
-   * @since 5.7
-   */ 
-  public CacheVmConfig[] getCacheVmConfigs();
-
-  /** 
-   * Creates the configuration for a {@link CacheVm}.
-   * @since 5.7
-   */
-  public CacheVmConfig createCacheVmConfig();
-
-  /** 
-   * Removes the configuration for a {@link CacheVm}
-   * @since 5.7
-   */
-  public void removeCacheVmConfig(CacheVmConfig existing);
-
-  /**
-   * Returns configuration information about {@link
-   * DistributionLocator}s that are managed by an
-   * <code>AdminDistributedSystem</code>.
-   */
-  public DistributionLocatorConfig[] getDistributionLocatorConfigs();
-  
-  /**
-   * Creates a new <code>DistributionLocatorConfig</code> for a
-   * distribution locator that is managed in this distributed system.
-   * The default locator config is set to not use multicast
-   */
-  public DistributionLocatorConfig createDistributionLocatorConfig();
-
-  /**
-   * Removes a <code>DistributionLocatorConfig</code> from the
-   * distributed system.
-   */
-  public void removeDistributionLocatorConfig(DistributionLocatorConfig config);
-
-  /** Registers listener for notification of changes in this config. */
-  public void addListener(ConfigListener listener);
-
-  /** Removes previously registered listener of this config. */
-  public void removeListener(ConfigListener listener);
-
-  /**
-   * Validates that this distributed system configuration is correct
-   * and consistent.
-   *
-   * @throws IllegalStateException
-   *         If this config is not valid
-   * @throws AdminXmlException
-   *         If the {@linkplain #getEntityConfigXMLFile entity config
-   *         XML file} is not valid 
-   */
-  public void validate();
-
-  /**
-   * Returns a copy of this <code>DistributedSystemConfig</code>
-   * object whose configuration can be modified.  Note that this
-   * {@link DistributedSystemConfig.ConfigListener ConfigListener}s
-   * that are registered on this config object are not cloned.
-   *
-   * @since 4.0
-   */
-  public Object clone() throws CloneNotSupportedException;
-
-  ////////////////////// Inner Classes  //////////////////////
-
-  /** A listener whose callback methods are invoked when this config
-   * changes. */
-  public interface ConfigListener extends java.util.EventListener {
-
-    /** Invoked when this configurated is changed. */
-    public void configChanged(DistributedSystemConfig config);
-  }
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributedSystemHealthConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributedSystemHealthConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributedSystemHealthConfig.java
deleted file mode 100644
index b7d4045..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributedSystemHealthConfig.java
+++ /dev/null
@@ -1,77 +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.admin;
-
-/**
- * Provides configuration information relating to the health of an
- * entire GemFire distributed system.
- *
- * <P>
- *
- * If any of the following criteria is
- * true, then the distributed system is considered to be in
- * {@link GemFireHealth#OKAY_HEALTH OKAY_HEALTH}.
- *
- * <UL>
- *
- * </UL>
- *
- * If any of the following criteria is true, then the distributed
- * system is considered to be in {@link GemFireHealth#POOR_HEALTH
- * POOR_HEALTH}.
- *
- * <UL>
- *
- * <LI>Too many application members {@linkplain
- * #getMaxDepartedApplications unexpectedly leave} the distributed
- * system.</LI>
- *
- * <LI>Too many application members {@linkplain
- * #getMaxDepartedApplications unexpectedly leave} the distributed
- * system.</LI>
- *
- * </UL>
- *
- * @author David Whitlock
- *
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- * */
-public interface DistributedSystemHealthConfig {
-
-  /** The default maximum number of application members that can
-   * unexceptedly leave a healthy the distributed system. */
-  public static final long DEFAULT_MAX_DEPARTED_APPLICATIONS = 10;
-
-  ///////////////////////  Instance Methods  ///////////////////////
-
-  /**
-   * Returns the maximum number of application members that can
-   * unexceptedly leave a healthy the distributed system.
-   *
-   * @see #DEFAULT_MAX_DEPARTED_APPLICATIONS
-   */
-  public long getMaxDepartedApplications();
-
-  /**
-   * Sets the maximum number of application members that can
-   * unexceptedly leave a healthy the distributed system.
-   *
-   * @see #getMaxDepartedApplications
-   */
-  public void setMaxDepartedApplications(long maxDepartedApplications);
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributionLocator.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributionLocator.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributionLocator.java
deleted file mode 100755
index 721d846..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributionLocator.java
+++ /dev/null
@@ -1,47 +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.admin;
-
-/**
- * Represents a single distribution locator server, of which a
- * distributed system may use zero or many.  The distributed system
- * will be configured to use either multicast discovery or locator
- * service.
- *
- * @see DistributionLocatorConfig
- *
- * @author    Kirk Lund
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface DistributionLocator extends ManagedEntity {
-  
-  /** 
-   * Returns the identity name for this locator.
-   */
-  public String getId();
-  
-  /**
-   * Returns the configuration object for this distribution locator.
-   *
-   * @since 4.0
-   */
-  public DistributionLocatorConfig getConfig();
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributionLocatorConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributionLocatorConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributionLocatorConfig.java
deleted file mode 100644
index 46027bf..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/DistributionLocatorConfig.java
+++ /dev/null
@@ -1,90 +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.admin;
-import java.util.Properties;
-
-/**
- * Describes the configuration of a {@link DistributionLocator}
- * managed by the GemFire administration APIs.  
- *
- * <P>
- *
- * A <code>DistributionLocatorConfig</code> can be modified using a
- * number of mutator methods until the
- * <code>DistributionLocator</code> configured by this object is
- * {@linkplain ManagedEntity#start started}.  After that,
- * attempts to modify most attributes in the
- * <code>DistributionLocatorConfig</code> will result in an {@link
- * IllegalStateException} being thrown.  If you wish to use the same
- * <code>DistributionLocatorConfig</code> to configure another
- * <code>DistributionLocator</code>s, a copy of the
- * <code>DistributionLocatorConfig</code> object can be made by
- * invoking the {@link Object#clone} method.
- *
- * @see AdminDistributedSystem#addDistributionLocator
- * @see com.gemstone.gemfire.distributed.Locator
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface DistributionLocatorConfig
-  extends ManagedEntityConfig {
-
-  /**
-   * Returns the port on which ths distribution locator listens for
-   * members to connect.  There is no default locator port, so a
-   * non-default port must be specified.
-   */
-  public int getPort();
-
-  /**
-   * Sets the port on which the distribution locator listens for
-   * members to connect.
-   */
-  public void setPort(int port);
-
-  /**
-   * Returns the address to which the distribution locator's port is
-   * (or will be) bound.  By default, the bind address is
-   * <code>null</code> meaning that the port will be bound to all
-   * network addresses on the host.
-   */
-  public String getBindAddress();
-
-  /**
-   * Sets the address to which the distribution locator's port is
-   * (or will be) bound.
-   */
-  public void setBindAddress(String bindAddress);
-
-  /**
-   * Sets the properties used to configure the locator's
-   * DistributedSystem.
-   * @since 5.0
-   */
-  public void setDistributedSystemProperties(Properties props);
-  
-  /**
-   * Retrieves the properties used to configure the locator's
-   * DistributedSystem.
-   * @since 5.0
-   */
-  public Properties getDistributedSystemProperties();
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireHealth.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireHealth.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireHealth.java
deleted file mode 100644
index ce8fd15..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireHealth.java
+++ /dev/null
@@ -1,234 +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.admin;
-
-import com.gemstone.gemfire.internal.Assert;
-import com.gemstone.gemfire.internal.i18n.LocalizedStrings;
-
-/**
- * Provides information about the aggregate health of the members of a
- * GemFire distributed system ("components").  The {@link #getHealth
- * getHealth} method provides an indication of the overall health.
- * Health is expressed as one of three levels: {@link #GOOD_HEALTH
- * GOOD_HEALTH}, {@link #OKAY_HEALTH OKAY_HEALTH}, and {@link
- * #POOR_HEALTH POOR_HEALTH}.  The {@link #getDiagnosis getDiagnosis}
- * method provides a more detailed explanation of the cause of ill
- * health.
- *
- * <P>
- *
- * The aggregate health of the GemFire component is evaluated
- * {@linkplain GemFireHealthConfig#setHealthEvaluationInterval every
- * so often} and if certain criteria are met, then the overall health
- * of the component changes accordingly.  If any of the components is
- * in <code>OKAY_HEALTH</code>, then the overall health is
- * <code>OKAY_HEALTH</code>.  If any of the components is in
- * <code>POOR_HEALTH</code>, then the overall health is
- * <code>POOR_HEALTH</code>.
- *
- * @author David Whitlock
- *
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- * */
-public interface GemFireHealth {
-
-  /** An indicator that the GemFire components are healthy.
-   *
-   * @see #getHealth */
-  public static final Health GOOD_HEALTH =
-    new Health(Health.GOOD_STRING);
-
-  /** An indicator that one or more GemFire components is slightly
-   * unhealthy.  The problem may or may not require configuration
-   * changes and may not necessarily lead to poorer component health.
-   *
-   * @see #getHealth */
-  public static final Health OKAY_HEALTH =
-    new Health(Health.OKAY_STRING);
-
-  /** An indicator that one or more GemFire components is unhealthy.
-   * While it may be possible for the components to recover on their
-   * own, it is likely that they will have to be restarted.
-   *
-   * @see #getHealth */
-  public static final Health POOR_HEALTH =
-    new Health(Health.POOR_STRING);
-
-  ///////////////////////  Instance Methods  ///////////////////////
-
-  /**
-   * Returns an indicator of the overall health of the GemFire
-   * components. 
-   *
-   * @see #GOOD_HEALTH
-   * @see #OKAY_HEALTH
-   * @see #POOR_HEALTH
-   */
-  public Health getHealth();
-
-  /** 
-   * Resets the overall health of the GemFire components to {@link
-   * #GOOD_HEALTH}.  This operation should be invoked when the
-   * operator has determined that warnings about the components's
-   * health do not need to be regarded.
-   */
-  public void resetHealth();
-
-  /**
-   * Returns a message that provides a description of the cause of a
-   * component's ill health.
-   */
-  public String getDiagnosis();
-
-  /**
-   * Returns the configuration for determining the health of the
-   * distributed system itself.
-   */
-  public DistributedSystemHealthConfig getDistributedSystemHealthConfig();
-
-  /**
-   * Sets the configuration for determining the health of the
-   * distributed system itself.
-   */
-  public void setDistributedSystemHealthConfig(DistributedSystemHealthConfig config);
-
-  /**
-   * Returns the <code>GemFireHealthConfig</code> for GemFire
-   * components whose configurations are not overridden on a per-host
-   * basis.  Note that changes made to the returned
-   * <code>GemFireHealthConfig</code> will not take effect until
-   * {@link #setDefaultGemFireHealthConfig} is invoked.
-   */
-  public GemFireHealthConfig getDefaultGemFireHealthConfig();
-
-  /**
-   * Sets the <code>GemFireHealthConfig</code> for
-   * GemFire components whose configurations are not overridden on a
-   * per-host basis.
-   *
-   * @throws IllegalArgumentException
-   *         If <code>config</code> specifies the config for a host
-   */
-  public void setDefaultGemFireHealthConfig(GemFireHealthConfig config);
-
-  /**
-   * Returns the <code>GemFireHealthConfig</code> for GemFire
-   * components that reside on a given host.  This configuration will
-   * override the {@linkplain #getDefaultGemFireHealthConfig default}
-   * configuration.
-   *
-   * @param hostName
-   *        The {@linkplain java.net.InetAddress#getCanonicalHostName
-   *        canonical} name of the host.
-   */
-  public GemFireHealthConfig getGemFireHealthConfig(String hostName);
-
-  /**
-   * Sets the <code>GemFireHealthConfig</code> for GemFire
-   * components that reside on a given host.  This configuration will
-   * override the {@linkplain #getDefaultGemFireHealthConfig default}
-   * configuration.  Note that changes made to the returned
-   * <code>GemFireHealthConfig</code> will not take effect until
-   * {@link #setDefaultGemFireHealthConfig} is invoked.
-   *
-   * @param hostName
-   *        The {@linkplain java.net.InetAddress#getCanonicalHostName
-   *        canonical} name of the host.
-   *
-   * @throws IllegalArgumentException
-   *         If host <code>hostName</code> does not exist or if there
-   *         are no GemFire components running on that host or if
-   *         <code>config</code> does not configure host
-   *         <code>hostName</code>. 
-   */
-  public void setGemFireHealthConfig(String hostName,
-                                     GemFireHealthConfig config);
-
-  /**
-   * Closes this health monitor and releases all resources associated
-   * with it.
-   */
-  public void close();
-
-  /**
-   * Returns whether or not this <code>GemFireHealth</code> is
-   * {@linkplain #close closed}.
-   */
-  public boolean isClosed();
-
-  //////////////////////  Inner Classes  //////////////////////
-
-  /**
-   * An enumerated type for the health of GemFire.
-   */
-  public static class Health implements java.io.Serializable {
-    private static final long serialVersionUID = 3039539430412151801L;
-    /** The string for good health */
-    static final String GOOD_STRING = LocalizedStrings.GemFireHealth_GOOD.toLocalizedString();
-
-    /** The string for okay health */
-    static final String OKAY_STRING = LocalizedStrings.GemFireHealth_OKAY.toLocalizedString();
-
-    /** The string for poor health */
-    static final String POOR_STRING = LocalizedStrings.GemFireHealth_POOR.toLocalizedString();
-
-    ////////////////////  Instance Fields  ////////////////////
-
-    /** The string for this health */
-    private String healthString;
-
-    /////////////////////  Constructors  //////////////////////
-
-    /**
-     * Creates a new <code>Health</code> with the given string
-     */
-    protected Health(String healthString) {
-      this.healthString = healthString;
-    }
-    
-    ////////////////////  Instance Methods  ////////////////////
-
-    /**
-     * Returns the appropriate canonical instance of
-     * <code>Health</code>.
-     */
-    public Object readResolve() {
-      if (this.healthString.equals(GOOD_STRING)) {
-        return GemFireHealth.GOOD_HEALTH;
-
-      } else if (this.healthString.equals(OKAY_STRING)) {
-        return GemFireHealth.OKAY_HEALTH;
-
-      } else if (this.healthString.equals(POOR_STRING)) {
-        return GemFireHealth.POOR_HEALTH;
-
-      } else {
-        Assert.assertTrue(false, "Unknown healthString: " +
-                          this.healthString);
-        return null;
-      }
-    }
-
-    @Override
-    public String toString() {
-      return this.healthString;
-    }
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireHealthConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireHealthConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireHealthConfig.java
deleted file mode 100644
index f43774d..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireHealthConfig.java
+++ /dev/null
@@ -1,58 +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.admin;
-
-/**
- * Provides configuration information relating to all of the
- * components of a GemFire distributed system.
- *
- * @author David Whitlock
- *
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- * */
-public interface GemFireHealthConfig
-  extends MemberHealthConfig, CacheHealthConfig {
-
-  /** The default number of seconds between assessments of the health
-   * of the GemFire components. */
-  public static final int DEFAULT_HEALTH_EVALUATION_INTERVAL = 30;
-
-  //////////////////////  Instance Methods  //////////////////////
-
-  /**
-   * Returns the name of the host to which this configuration
-   * applies.  If this is the "default" configuration, then
-   * <code>null</code> is returned.
-   *
-   * @see GemFireHealth#getGemFireHealthConfig
-   */
-  public String getHostName();
-
-  /**
-   * Sets the number of seconds between assessments of the health of
-   * the GemFire components.
-   */
-  public void setHealthEvaluationInterval(int interval);
-
-  /**
-   * Returns the number of seconds between assessments of the health of
-   * the GemFire components.
-   */
-  public int getHealthEvaluationInterval();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireMemberStatus.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireMemberStatus.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireMemberStatus.java
deleted file mode 100755
index 0e3f4f5..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/GemFireMemberStatus.java
+++ /dev/null
@@ -1,709 +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.admin;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.net.InetAddress;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.client.PoolManager;
-import com.gemstone.gemfire.cache.server.CacheServer;
-import com.gemstone.gemfire.distributed.DistributedSystem;
-import com.gemstone.gemfire.distributed.Locator;
-import com.gemstone.gemfire.distributed.internal.DM;
-import com.gemstone.gemfire.distributed.internal.DistributionConfig;
-import com.gemstone.gemfire.distributed.internal.InternalDistributedSystem;
-import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember;
-import com.gemstone.gemfire.internal.SocketCreator;
-import com.gemstone.gemfire.internal.admin.ClientHealthMonitoringRegion;
-import com.gemstone.gemfire.internal.admin.remote.ClientHealthStats;
-import com.gemstone.gemfire.internal.cache.CacheClientStatus;
-import com.gemstone.gemfire.internal.cache.GemFireCacheImpl;
-import com.gemstone.gemfire.internal.cache.HARegion;
-import com.gemstone.gemfire.internal.cache.LocalRegion;
-import com.gemstone.gemfire.internal.cache.PartitionedRegion;
-import com.gemstone.gemfire.internal.cache.PartitionedRegionStatus;
-import com.gemstone.gemfire.internal.cache.RegionStatus;
-import com.gemstone.gemfire.internal.cache.tier.InternalClientMembership;
-import com.gemstone.gemfire.internal.cache.tier.sockets.ClientProxyMembershipID;
-
-/**
- * Class <code>GemFireMemberStatus</code> provides the status of a specific
- * GemFire member VM. This VM can be a peer, a client, a server and/or a
- * gateway.
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class GemFireMemberStatus implements Serializable {
-  private static final long serialVersionUID = 3389997790525991310L;
-
-  /**
-   * Notifies whether this member is a client to a cache server.
-   */
-  protected boolean _isClient;
-
-  /**
-   * Notifies whether this member is a cache server.
-   */
-  protected boolean _isServer;
-
-  /**
-   * Notifies whether this member is a hub for WAN gateways.
-   */
-  protected boolean _isGatewayHub;
-
-  /**
-   * Notifies whether this member is a locator.
-   */
-  protected boolean _isLocator;
-
-  protected boolean _isPrimaryGatewayHub;
-
-  protected Object/*GatewayHubStatus*/ _gatewayHubStatus;
-
-  protected boolean _isConnected;
-  protected Serializable _memberId;
-  protected Set _connectedPeers;
-  protected Set _connectedServers;
-  protected Set _unconnectedServers;
-  protected Set _connectedClients;
-  protected Map _connectedIncomingGateways;
-  protected Map _outgoingGateways;
-
-  protected Map _clientHostNames;
-  protected Map _clientQueueSizes;
-  protected Map _gatewayQueueSizes;
-  protected Map _regionStatuses;
-  protected Map _clientHealthStats;
-
-  protected String _memberName;
-  protected int _mcastPort;
-  protected int _serverPort;
-  protected InetAddress _mcastAddress;
-  protected String _bindAddress;
-  protected String _locators;
-  protected InetAddress _hostAddress;
-
-  protected long _maximumHeapSize;
-  protected long _freeHeapSize;
-  
-  protected long upTime = -1;
-
-  protected transient final Cache cache;
-  
-  public GemFireMemberStatus() {
-    this(null);
-  }
-
-  public GemFireMemberStatus(Cache cache) {
-    this.cache = cache;
-    DistributedSystem ds = null;
-    if (cache != null) {
-      ds = cache.getDistributedSystem();
-    }
-    initialize(ds);
-  }
-
-  public boolean getIsConnected() {
-    return this._isConnected;
-  }
-
-  protected void setIsConnected(boolean isConnected) {
-    this._isConnected = isConnected;
-  }
-
-  /**
-   * Returns whether this member is a client to a cache server
-   * @return whether this member is a client to a cache server
-   */
-  public boolean getIsClient() {
-    return this._isClient;
-  }
-
-  /**
-   * Sets whether this member is a client to a cache server
-   * @param isClient Boolean defining whether this member is a client to a
-   * cache server
-   */
-  protected void setIsClient(boolean isClient) {
-    this._isClient = isClient;
-  }
-
-  /**
-   * Returns whether this member is a cache server
-   * @return whether this member is a cache server
-   */
-  public boolean getIsServer() {
-    return this._isServer;
-  }
-
-  /**
-   * Sets whether this member is a cache server
-   * @param isServer Boolean defining whether this member is a cache server
-   */
-  protected void setIsServer(boolean isServer) {
-    this._isServer = isServer;
-  }
-
-  public int getServerPort() {
-	  return this._serverPort;
-  }
-  
-  protected void setServerPort(int port) {
-	  this._serverPort = port;
-  }
-  
-  /**
-   * Returns whether this member is a hub for WAN gateways
-   * @return whether this member is a hub for WAN gateways
-   */
-  public boolean getIsGatewayHub() {
-    return this._isGatewayHub;
-  }
-
-  /**
-   * Sets whether this member is a cache server
-   * @param isGatewayHub Boolean defining whether this member is a hub for
-   * WAN gateways
-   */
-  protected void setIsGatewayHub(boolean isGatewayHub) {
-    this._isGatewayHub = isGatewayHub;
-  }
-
-  public boolean getIsLocator() {
-    return this._isLocator;
-  }
-
-  protected void setIsLocator(boolean isLocator) {
-    this._isLocator = isLocator;
-  }
-
-  public boolean getIsPrimaryGatewayHub() {
-    return this._isPrimaryGatewayHub;
-  }
-
-  protected void setIsPrimaryGatewayHub(boolean isPrimaryGatewayHub) {
-    this._isPrimaryGatewayHub = isPrimaryGatewayHub;
-  }
-
-  /**
-   * For internal use only
-   * @return status of the gateway hub
-   */
-  public Object/*GatewayHubStatus*/ getGatewayHubStatus() {
-    return this._gatewayHubStatus;
-  }
-
-//  protected void setGatewayHubStatus(GatewayHubStatus gatewayHubStatus) {
-//    this._gatewayHubStatus = gatewayHubStatus;
-//  }
-
-  public boolean getIsSecondaryGatewayHub() {
-    return !this._isPrimaryGatewayHub;
-  }
-
-  public Set getConnectedPeers() {
-    return this._connectedPeers;
-  }
-
-  protected void setConnectedPeers(Set connectedPeers) {
-    this._connectedPeers = connectedPeers;
-  }
-
-  public Set getConnectedServers() {
-    return this._connectedServers;
-  }
-
-  protected void setConnectedServers(Set connectedServers) {
-    this._connectedServers = connectedServers;
-  }
-
-  protected void addConnectedServer(String connectedServer) {
-    this._connectedServers.add(connectedServer);
-  }
-
-  public Set getUnconnectedServers() {
-    return this._unconnectedServers;
-  }
-
-  protected void setUnconnectedServers(Set unconnectedServers) {
-    this._unconnectedServers = unconnectedServers;
-  }
-
-  protected void addUnconnectedServer(String unconnectedServer) {
-    this._unconnectedServers.add(unconnectedServer);
-  }
-
-  public Set getConnectedClients() {
-    return this._connectedClients;
-  }
-
-  protected void addConnectedClient(String connectedClient) {
-    this._connectedClients.add(connectedClient);
-  }
-
-  public Map getOutgoingGateways() {
-	    return this._outgoingGateways;
-  }
-
-  public Map getConnectedIncomingGateways() {
-    return this._connectedIncomingGateways;
-  }
-
-  protected void setConnectedIncomingGateways(Map connectedIncomingGateways) {
-    this._connectedIncomingGateways = connectedIncomingGateways;
-  }
-
-  public Map getClientQueueSizes() {
-    return this._clientQueueSizes;
-  }
-
-  protected void setClientQueueSizes(Map clientQueueSizes) {
-    this._clientQueueSizes = clientQueueSizes;
-  }
-
-  public int getClientQueueSize(String clientMemberId) {
-    Integer clientQueueSize = (Integer) getClientQueueSizes().get(clientMemberId);
-    return clientQueueSize == null ? 0 : clientQueueSize.intValue();
-  }
-
-  protected void putClientQueueSize(String clientMemberId, int size) {
-    getClientQueueSizes().put(clientMemberId, Integer.valueOf(size));
-  }
-
-  public Map getClientHealthStats() {
-    return this._clientHealthStats;
-  }
-  
-  protected void setClientHealthStats(Map stats) {
-    this._clientHealthStats = stats;
-  }
-  
-  /**
-   * For internal use only
-   * @param clientID client for health
-   * @return the client's health
-   */
-  public Object/*ClientHealthStats*/ getClientHealthStats(String clientID) {
-    return this._clientHealthStats.get(clientID);
-  }
-  
-  protected void setClientHealthStats(String clientID, ClientHealthStats stats) {
-    this._clientHealthStats.put(clientID, stats);
-  }
-  
-  protected void putClientHostName(String clientId, String hostName) {
-    this._clientHostNames.put(clientId, hostName);
-  }
-  
-  public String getClientHostName(String clientId) {
-    return (String)this._clientHostNames.get(clientId);
-  }
-  
-  public Map getRegionStatuses() {
-    return this._regionStatuses;
-  }
-
-  /**
-   * For internal use only
-   * @param fullRegionPath region path
-   * @return status for the region
-   */
-  public Object/*RegionStatus*/ getRegionStatus(String fullRegionPath) {
-    return getRegionStatuses().get(fullRegionPath);
-  }
-
-  protected void putRegionStatus(String fullRegionPath, RegionStatus status) {
-    getRegionStatuses().put(fullRegionPath, status);
-  }
-
-  public Serializable getMemberId() {
-    return this._memberId;
-  }
-
-  protected void setMemberId(Serializable memberId) {
-    this._memberId = memberId;
-  }
-
-  public String getMemberName() {
-    return this._memberName;
-  }
-
-  protected void setMemberName(String memberName) {
-    this._memberName = memberName;
-  }
-
-  public int getMcastPort() {
-    return this._mcastPort;
-  }
-
-  protected void setMcastPort(int mcastPort) {
-    this._mcastPort = mcastPort;
-  }
-
-  public InetAddress getMcastAddress() {
-    return this._mcastAddress;
-  }
-
-  protected void setMcastAddress(InetAddress mcastAddress) {
-    this._mcastAddress = mcastAddress;
-  }
-
-  public InetAddress getHostAddress() {
-    return this._hostAddress;
-  }
-
-  protected void setHostAddress(InetAddress hostAddress) {
-    this._hostAddress = hostAddress;
-  }
-
-  public String getBindAddress() {
-    return this._bindAddress;
-  }
-
-  protected void setBindAddress(String bindAddress) {
-    this._bindAddress = bindAddress;
-  }
-
-  public String getLocators() {
-    return this._locators;
-  }
-
-  protected void setLocators(String locators) {
-    this._locators = locators;
-  }
-
-  public long getMaximumHeapSize() {
-    return this._maximumHeapSize;
-  }
-
-  protected void setMaximumHeapSize(long size) {
-    this._maximumHeapSize = size;
-  }
-
-  public long getFreeHeapSize() {
-    return this._freeHeapSize;
-  }
-
-  protected void setFreeHeapSize(long size) {
-    this._freeHeapSize = size;
-  }
-
-  public long getUsedHeapSize() {
-    return getMaximumHeapSize() - getFreeHeapSize();
-  }
-  
-  public long getUpTime() {
-    return upTime;
-  }
-  
-  public void setUpTime(long upTime) {
-    this.upTime = upTime;
-  }
-
-  @Override
-  public String toString() {
-    StringBuffer buffer = new StringBuffer();
-    buffer
-      .append("GemFireMemberStatus[")
-      .append("isConnected=")
-      .append(this._isConnected)
-      .append("; memberName=")
-      .append(this._memberName)
-      .append("; memberId=")
-      .append(this._memberId)
-      .append("; hostAddress=")
-      .append(this._hostAddress)
-      .append("; mcastPort=")
-      .append(this._mcastPort)
-      .append("; mcastAddress=")
-      .append(this._mcastAddress)
-      .append("; bindAddress=")
-      .append(this._bindAddress)
-      .append("; serverPort=")
-      .append(this._serverPort)
-      .append("; locators=")
-      .append(this._locators)
-      .append("; isClient=")
-      .append(this._isClient)
-      .append("; isServer=")
-      .append(this._isServer)
-      .append("; isGatewayHub=")
-      .append(this._isGatewayHub)
-      .append("; isLocator=")
-      .append(this._isLocator)
-      .append("; isPrimaryGatewayHub=")
-      .append(this._isPrimaryGatewayHub)
-      .append("; gatewayHubStatus=")
-      .append(this._gatewayHubStatus)
-      .append("; connectedPeers=")
-      .append(this._connectedPeers)
-      .append("; connectedServers=")
-      .append(this._connectedServers)
-      .append("; unconnectedServers=")
-      .append(this._unconnectedServers)
-      .append("; connectedClients=")
-      .append(this._connectedClients)
-      .append("; clientHostNames=")
-      .append(this._clientHostNames)
-      .append("; clientQueueSizes=")
-      .append(this._clientQueueSizes)
-      .append("; clientHealthStats=")
-      .append(this._clientHealthStats)
-      .append("; gatewayQueueSizes=")
-      .append(this._gatewayQueueSizes)
-      .append("; regionStatuses=")
-      .append(this._regionStatuses)
-      .append("; maximumHeapSize=")
-      .append(this._maximumHeapSize)
-      .append("; freeHeapSize=")
-      .append(this._freeHeapSize)
-      .append("; upTime=")
-      .append(this.upTime)
-      .append("]");
-    return buffer.toString();
-  }
-  
-  protected void initialize(DistributedSystem distributedSystem) {
-    // Initialize instance variables
-    initializeInstanceVariables();
-
-    // If the cache is set, initialize the status.
-    // If the cache is not set, then this is most
-    // likely an unconnected status.
-    if (cache != null) {
-      // Initialize server
-      initializeServer();
-
-      // Initialize client
-      initializeClient();
-
-      // Initialize region sizes
-      initializeRegionSizes();
-    }
-
-    if (distributedSystem != null) {
-      // Initialize all
-      initializeAll(distributedSystem);
-    }
-
-    // If this is a locator, initialize the locator status
-    if (Locator.getLocators().size() > 0) {
-      setIsLocator(true);
-    }
-  }
-
-  protected void initializeInstanceVariables() {
-    // Variables for servers
-    this._connectedClients = new HashSet();
-    this._clientQueueSizes = new HashMap();
-    this._clientHealthStats = new HashMap();
-    this._clientHostNames = new HashMap();
-
-    // Variables for gateway hubs
-    this._outgoingGateways = new HashMap();
-    //this._connectedOutgoingGateways = new HashSet();
-    //this._unconnectedOutgoingGateways = new HashSet();
-    this._connectedIncomingGateways = new HashMap();
-    this._gatewayQueueSizes = new HashMap();
-
-    // Variables for clients
-    this._connectedServers = new HashSet();
-    this._unconnectedServers = new HashSet();
-
-    // Variables for all
-    this._connectedPeers = new HashSet();
-    this._regionStatuses = new HashMap();
-  }
-
-  protected void initializeServer() {
-    Collection servers = cache.getCacheServers();
-    if (servers.size() == 0) {
-      setIsServer(false);
-    } else {
-      setIsServer(true);
-
-      // Get connected clients.
-      // The following method returns a map of client member id to a cache
-      // client info. For now, keep track of the member ids in the set of
-      // _connectedClients.
-      Map allConnectedClients = InternalClientMembership.getStatusForAllClientsIgnoreSubscriptionStatus();
-      Iterator allConnectedClientsIterator = allConnectedClients.values().iterator();
-      while (allConnectedClientsIterator.hasNext()) {
-        CacheClientStatus ccs = (CacheClientStatus) allConnectedClientsIterator.next();
-        addConnectedClient(ccs.getMemberId());
-        // host address is available directly by id, hence CacheClientStatus need not be populated
-        putClientHostName(ccs.getMemberId(), ccs.getHostAddress());  
-      }
-
-      // Get client queue sizes
-      Map clientQueueSize = getClientIDMap(InternalClientMembership.getClientQueueSizes());
-      setClientQueueSizes(clientQueueSize);
-      
-      // Set server acceptor port (set it based on the first CacheServer)
-      CacheServer server = (CacheServer) servers.toArray()[0];
-      setServerPort(server.getPort());
-      
-      // Get Client Health Stats
-//      Assert.assertTrue(cache != null); (cannot be null)
-      Region clientHealthMonitoringRegion = ClientHealthMonitoringRegion.getInstance(
-          (GemFireCacheImpl)cache);
-      if(clientHealthMonitoringRegion != null) {
-        String [] clients = (String[])clientHealthMonitoringRegion.keySet().toArray(new String[0]);
-        for (int i = 0; i < clients.length; i++) {
-          String clientId = clients[i];
-          ClientHealthStats stats = (ClientHealthStats)clientHealthMonitoringRegion.get(clientId);
-          setClientHealthStats(clientId, stats);
-        } 
-      }
-    }
-  }
-  
-	/**
-	 * returning  Map of client queue size against client Id
-	 *  
-	 * param clientMap is a  Map of client queue size against ClientProxyMembershipID
-	 */
-	private Map getClientIDMap(Map ClientProxyMembershipIDMap) {
-	   Map clientIdMap = new HashMap();
-	   Set entrySet = ClientProxyMembershipIDMap.entrySet();
-	   Iterator entries = entrySet.iterator();
-	   while (entries.hasNext()) {
-             Map.Entry entry = (Map.Entry)entries.next();
-             ClientProxyMembershipID key = (ClientProxyMembershipID)entry.getKey();
-             Integer size = (Integer)entry.getValue();
-             clientIdMap.put(key.getDSMembership(), size);
-	   }
-           return clientIdMap;
-	  }
-
-  protected void initializeClient() {
-    Map poolMap = PoolManager.getAll();
-    if (poolMap.size() == 0) {
-      setIsClient(false);
-    } else {
-      setIsClient(true);
-
-      // Get connected servers.
-      // The following method returns a map of server name to a count of logical
-      // connections. A logical connection will be made for each region that
-      // references the live server. If the client is not connected to the server,
-      // the logical connections for that server will be 0. For now, keep track
-      // of the keys (server names) of this map in the sets of _connectedServers
-      // and _unconnectedServers.
-      Map connectedServers = InternalClientMembership.getConnectedServers();
-      if (!connectedServers.isEmpty()) {
-        Iterator connected = connectedServers.entrySet().iterator();
-        while (connected.hasNext()) {
-          Map.Entry entry = (Map.Entry) connected.next();
-          String server = (String) entry.getKey();
-//          Integer connections = (Integer) entry.getValue();
-//          if (connections.intValue()==0) {
-//            addUnconnectedServer(server);
-//          } else {
-            addConnectedServer(server);
-//          }
-          //System.out.println(connections.size() + " logical connnections to server " + server);
-        }
-      }
-    }
-  }
-
-  protected void initializeAll(DistributedSystem distributedSystem) {
-    // Initialize isConnected
-    setIsConnected(true);
-
-    // Initialize distributed system status
-    initializeDistributedSystem(distributedSystem);
-
-    // Initialize peers
-    initializePeers(distributedSystem);
-
-    // Initialize memory
-    initializeMemory();
-  }
-
-  protected void initializeDistributedSystem(DistributedSystem distributedSystem) {
-    InternalDistributedSystem ids = (InternalDistributedSystem) distributedSystem;
-    setMemberId(ids.getMemberId());
-    DistributionConfig config = ids.getConfig();
-    setMemberName(config.getName());
-    setMcastPort(config.getMcastPort());
-    setMcastAddress(config.getMcastAddress());
-    String bindAddress = config.getBindAddress();
-    setBindAddress(bindAddress);
-    setLocators(config.getLocators());
-    setUpTime(System.currentTimeMillis() - ids.getStartTime());
-    try {
-      setHostAddress((bindAddress != null && bindAddress.length() > 0)
-        ? InetAddress.getByName(bindAddress)
-        : SocketCreator.getLocalHost());
-    } catch (IOException e) {/*ignore - leave null host address*/}
-  }
-
-  protected void initializePeers(DistributedSystem distributedSystem) {
-    InternalDistributedSystem ids = (InternalDistributedSystem) distributedSystem;
-    DM dm = ids.getDistributionManager();
-    Set connections = dm.getOtherNormalDistributionManagerIds();
-    Set connectionsIDs = new HashSet(connections.size());
-    for (Iterator iter=connections.iterator(); iter.hasNext() ; ) {
-      InternalDistributedMember idm = (InternalDistributedMember)iter.next();
-      connectionsIDs.add(idm.getId());
-    }
-    setConnectedPeers(connectionsIDs);
-  }
-
-  protected void initializeMemory() {
-    //InternalDistributedSystem system = (InternalDistributedSystem) region.getCache().getDistributedSystem();
-    //GemFireStatSampler sampler = system.getStatSampler();
-    //VMStatsContract statsContract = sampler.getVMStats();
-
-    Runtime rt = Runtime.getRuntime();
-    setMaximumHeapSize(rt.maxMemory());
-    setFreeHeapSize(rt.freeMemory());
-  }
-
-  protected void initializeRegionSizes() {
-    Iterator rootRegions = cache.rootRegions().iterator();
-
-    while (rootRegions.hasNext()) {
-      LocalRegion rootRegion = (LocalRegion) rootRegions.next();
-      if (!(rootRegion instanceof HARegion)) {
-        RegionStatus rootRegionStatus = rootRegion instanceof PartitionedRegion
-          ? new PartitionedRegionStatus((PartitionedRegion) rootRegion)
-          : new RegionStatus(rootRegion);
-        putRegionStatus(rootRegion.getFullPath(), rootRegionStatus);
-        Iterator subRegions = rootRegion.subregions(true).iterator();
-        while (subRegions.hasNext()) {
-          LocalRegion subRegion = (LocalRegion) subRegions.next();
-          RegionStatus subRegionStatus = subRegion instanceof PartitionedRegion
-            ? new PartitionedRegionStatus((PartitionedRegion) subRegion)
-            : new RegionStatus(subRegion);
-          putRegionStatus(subRegion.getFullPath(), subRegionStatus);
-        }
-      }
-    }
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ManagedEntity.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ManagedEntity.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ManagedEntity.java
deleted file mode 100644
index d14d1d9..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ManagedEntity.java
+++ /dev/null
@@ -1,125 +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.admin;
-
-/**
- * A entity that can be managed with the GemFire administration API.
- *
- * @see ManagedEntityConfig
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface ManagedEntity {
-
-  /**
-   * Starts this managed entity.  Note that this method may return
-   * before the managed entity is actually started.
-   *
-   * @throws AdminException
-   *         If a problem is encountered while starting this managed
-   *         entity. 
-   * @throws IllegalStateException
-   *         If this managed entity resides on a remote machine and a
-   *         <code>null</code> or empty (<code>""</code>) {@linkplain
-   *         ManagedEntityConfig#getRemoteCommand remote command} has
-   *         been specified.
-   *
-   * @see #waitToStart
-   */
-  public void start() throws AdminException;
-
-  /**
-   * Stops this managed entity.  Note that this method may return
-   * before the managed entity is actually stopped.
-   *
-   * @throws AdminException
-   *         If a problem is encountered while stopping this managed
-   *         entity. 
-   * @throws IllegalStateException
-   *         If this managed entity resides on a remote machine and a
-   *         <code>null</code> or empty (<code>""</code>) {@linkplain
-   *         ManagedEntityConfig#getRemoteCommand remote command} has
-   *         been specified.
-   *
-   * @see #waitToStop
-   */
-  public void stop() throws AdminException;
-
-  /**
-   * Waits for up to a given number of milliseconds for this managed
-   * entity to {@linkplain #start start}.
-   *
-   * @param timeout
-   *        The number of milliseconds to wait for this managed entity
-   *        to start.
-   *
-   * @return Whether or not the entity has started.
-   *         <code>false</code>, if the method times out.
-   *
-   * @throws InterruptedException
-   *         If the thread invoking this method is interrupted while
-   *         waiting. 
-   */
-  public boolean waitToStart(long timeout)
-    throws InterruptedException;
-
-  /**
-   * Waits for up to a given number of milliseconds for this managed
-   * entity to {@linkplain #stop stop}.
-   *
-   * @param timeout
-   *        The number of milliseconds to wait for this managed entity
-   *        to stop.
-   *
-   * @return Whether or not the entity has stopped.
-   *         <code>false</code>, if the method times out.
-   *
-   * @throws InterruptedException
-   *         If the thread invoking this method is interrupted while
-   *         waiting. 
-   */
-  public boolean waitToStop(long timeout)
-    throws InterruptedException;
-
-  /**
-   * Returns whether or not this managed entity is running.  Note that
-   * this operation may attempt to contact the managed entity.
-   *
-   * @throws IllegalStateException
-   *         If this managed entity resides on a remote machine and a
-   *         <code>null</code> or empty (<code>""</code>) {@linkplain
-   *         ManagedEntityConfig#getRemoteCommand remote command} has
-   *         been specified.
-   */
-  public boolean isRunning();
-
-  /**
-   * Returns the tail of this manage entity's log file.  Note that not
-   * all managed entities implement this functionality.
-   *
-   * @throws AdminException
-   *         If a problem is encountered while getting the log of this
-   *         managed entity.
-   * @throws UnsupportedOperationException
-   *         If this managed entity does not support retrieving its
-   *         log.
-   */
-  public String getLog() throws AdminException;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ManagedEntityConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ManagedEntityConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ManagedEntityConfig.java
deleted file mode 100644
index 8b57f25..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/ManagedEntityConfig.java
+++ /dev/null
@@ -1,100 +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.admin;
-
-/**
- * Common configuration for all entities that can be managed using the
- * GemFire administration API.  Note that once a managed entity has
- * been {@linkplain ManagedEntity#start started}, attempts to modify
- * its configuration will cause an {@link IllegalStateException} to be
- * thrown.
- *
- * @see ManagedEntity
- *
- * @author David Whitlock
- * @since 4.0
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public interface ManagedEntityConfig extends Cloneable {
-
-  /**
-   * Returns the name of the host on which the managed entity runs or
-   * will run.
-   */
-  public String getHost();
-
-  /**
-   * Sets the name of the host on which the managed entity will run.
-   */
-  public void setHost(String host);
-
-  /**
-   * Returns the name of the working directory in which the managed
-   * entity runs or will run.
-   */
-  public String getWorkingDirectory();
-
-  /**
-   * Sets the name of the working directory in which the managed
-   * entity will run.
-   */
-  public void setWorkingDirectory(String dir);
-
-  /**
-   * Returns the name of the GemFire product directory to use when
-   * administering the managed entity.
-   */
-  public String getProductDirectory();
-
-  /**
-   * Sets the name of the GemFire product directory to use when
-   * administering the managed entity.
-   */
-  public void setProductDirectory(String dir);
-
-  /**
-   * Returns the command prefix used to administer a managed entity
-   * that is hosted on a remote machine.  If the remote command is
-   * <code>null</code> (the default value), then the remote command
-   * associated with the {@linkplain
-   * AdminDistributedSystem#getRemoteCommand() distributed system}
-   * will be used.
-   */
-  public String getRemoteCommand();
-
-  /**
-   * Sets the command prefix used to administer a managed entity that
-   * is hosted on a remote machine.
-   */
-  public void setRemoteCommand(String remoteCommand);
-
-  /**
-   * Validates this configuration.
-   *
-   * @throws IllegalStateException
-   *         If a managed entity cannot be administered using this
-   *         configuration 
-   */
-  public void validate();
-
-  /**
-   * Returns a new <code>ManagedEntityConfig</code> with the same
-   * configuration as this <code>ManagedEntityConfig</code>.
-   */
-  public Object clone() throws CloneNotSupportedException; 
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/MemberHealthConfig.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/MemberHealthConfig.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/MemberHealthConfig.java
deleted file mode 100644
index 02de4d2..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/MemberHealthConfig.java
+++ /dev/null
@@ -1,142 +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.admin;
-
-/**
- * Provides configuration information relating to the health of a
- * member of a GemFire distributed system.
- *
- * <P>
- *
- * If any of the following criteria is true, then a member is
- * considered to be in {@link GemFireHealth#OKAY_HEALTH OKAY_HEALTH}.
- *
- * <UL>
- *
- * <LI>The size of the {@linkplain #getMaxVMProcessSize VM process} is
- * too large.</LI>
- *
- * <LI>There are too many {@linkplain #getMaxMessageQueueSize enqueued}
- * incoming/outgoing messages.</LI>
- *
- * <LI>Too many message sends {@link #getMaxReplyTimeouts timeout}
- * while waiting for a reply.</LI>
- *
- * </UL>
- *
- * If any of the following criteria is true, then a member is
- * considered to be in {@link GemFireHealth#POOR_HEALTH POOR_HEALTH}.
- *
- * <UL>
- *
- * </UL>
- *
- * @author David Whitlock
- *
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- * */
-public interface MemberHealthConfig {
-
-  /** The default maximum VM process size (in megabytes) of a health
-   * member of the distributed system. The default value is 1000. */
-  public static final long DEFAULT_MAX_VM_PROCESS_SIZE = 1000;
-
-  /** The default maximum number of enqueued incoming or outgoing
-   * messages that a healthy member of a distributed system can have.
-   * The default value is 1000. */
-  public static final long DEFAULT_MAX_MESSAGE_QUEUE_SIZE = 1000;
-
-  /** The default maximum number of message reply timeouts that can
-   * occur in a given health monitoring interval. The default value
-   * is zero. */
-  public static final long DEFAULT_MAX_REPLY_TIMEOUTS = 0;
-
-  /** The default maximum multicast retransmission ratio.  The default
-   * value is 0.20 (twenty percent of messages retransmitted)
-   */
-  public static final double DEFAULT_MAX_RETRANSMISSION_RATIO = 0.20;
-  
-  ///////////////////////  Instance Methods  ///////////////////////
-
-  /**
-   * Returns the maximum VM process size (in megabytes) of a healthy
-   * member of the distributed system.
-   *
-   * @see #DEFAULT_MAX_VM_PROCESS_SIZE
-   */
-  public long getMaxVMProcessSize();
-
-  /**
-   * Sets the maximum VM process size (in megabytes) of a healthy
-   * member of the distributed system.
-   *
-   * @see #getMaxVMProcessSize
-   */
-  public void setMaxVMProcessSize(long size);
-  
-  /**
-   * Returns the maximum number of enqueued incoming or outgoing
-   * messages that a healthy member of a distributed system can have.
-   *
-   * @see #DEFAULT_MAX_MESSAGE_QUEUE_SIZE
-   */
-  public long getMaxMessageQueueSize();
-
-  /**
-   * Sets the maximum number of enqueued incoming or outgoing
-   * messages that a healthy member of a distributed system can have.
-   *
-   * @see #getMaxMessageQueueSize
-   */
-  public void setMaxMessageQueueSize(long maxMessageQueueSize);
-
-  /**
-   * Returns the maximum number message replies that can timeout in a
-   * healthy member.
-   *
-   * @see #DEFAULT_MAX_REPLY_TIMEOUTS
-   */
-  public long getMaxReplyTimeouts();
-
-  /**
-   * Sets the maximum number message replies that can timeout in a
-   * healthy member.
-   *
-   * @see #getMaxReplyTimeouts
-   */
-  public void setMaxReplyTimeouts(long maxReplyTimeouts);
-
-  /**
-   * Returns the maximum ratio of multicast retransmissions / total multicast
-   * messages.  Retransmissions are requestor-specific (i.e., unicast), so
-   * a single lost message may result in multiple retransmissions.<p>
-   * A high retransmission ratio may indicate
-   * poor network conditions requiring reduced flow-control settings,
-   * a udp-fragment-size setting that is too high.
-   * @see #DEFAULT_MAX_RETRANSMISSION_RATIO
-   */
-  public double getMaxRetransmissionRatio();
-  
-  /**
-   * Sets the maximum ratio of multicast retransmissions / total multicast
-   * messages.
-   * @see #getMaxRetransmissionRatio
-   */
-  public void setMaxRetransmissionRatio(double ratio);
-   
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/OperationCancelledException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/OperationCancelledException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/OperationCancelledException.java
deleted file mode 100644
index f10a3e8..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/OperationCancelledException.java
+++ /dev/null
@@ -1,48 +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.admin;
-
-//import com.gemstone.gemfire.GemFireException;
-
-/**
- * Thrown when an administration operation that accesses information
- * in a remote system member is cancelled.  The cancelation may occur
- * because the system member has left the distributed system.
- *
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class OperationCancelledException extends RuntimeAdminException {
-   private static final long serialVersionUID = 5474068770227602546L;
-    
-    public OperationCancelledException() {
-      super();
-    }
-    
-    public OperationCancelledException( String message ) {
-        super( message );
-    }
-    
-    public OperationCancelledException( Throwable cause ){
-      super(cause);
-    }
-    
-    public OperationCancelledException( String message, Throwable cause ) {
-      super(message, cause);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RegionNotFoundException.java
----------------------------------------------------------------------
diff --git a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RegionNotFoundException.java b/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RegionNotFoundException.java
deleted file mode 100644
index 5e53ca0..0000000
--- a/gemfire-core/src/main/java/com/gemstone/gemfire/admin/RegionNotFoundException.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.admin;
-
-//import com.gemstone.gemfire.cache.CacheException;
-import com.gemstone.gemfire.cache.CacheRuntimeException;
-
-/**
- * Thrown by the administration API when the region administered by a
- * {@link SystemMemberRegion} has been closed or destroyed in system
- * member. 
- * <P>Also thrown by {@link com.gemstone.gemfire.DataSerializer#readRegion(java.io.DataInput)}
- * if the named region no longer exists.
- *
- * @since 3.5
- * @deprecated as of 7.0 use the <code><a href="{@docRoot}/com/gemstone/gemfire/management/package-summary.html">management</a></code> package instead
- */
-public class RegionNotFoundException extends CacheRuntimeException {
-private static final long serialVersionUID = 1758668137691463909L;
-
-  public RegionNotFoundException(String message) {
-    super(message);
-  }
-  
-}



[47/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/JarClassLoader.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/JarClassLoader.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/JarClassLoader.java
deleted file mode 100644
index ba528ce..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/JarClassLoader.java
+++ /dev/null
@@ -1,123 +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.installer;
-
-import java.io.Closeable;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.Enumeration;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-
-/**
- * Classloader, which allows finding classes in jars  within jars. This is used to check
- * whether a listener, as found in web.xml, is a ServletContextListener
- */
-public class JarClassLoader extends URLClassLoader {
-
-  public JarClassLoader(URL[] urls, ClassLoader parent) {
-    super(urls, parent);
-
-    try {
-      for (URL url : urls) {
-        if (isJar(url.getFile())) {
-          addJarResource(new File(url.getPath()));
-        }
-      }
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-  }
-
-  private void addJarResource(File file) throws IOException {
-    JarFile jarFile = new JarFile(file);
-    addURL(file.toURL());
-    Enumeration<JarEntry> jarEntries = jarFile.entries();
-    while (jarEntries.hasMoreElements()) {
-      JarEntry jarEntry = jarEntries.nextElement();
-      if (!jarEntry.isDirectory() && isJar(jarEntry.getName())) {
-        addJarResource(jarEntryAsFile(jarFile, jarEntry));
-      }
-    }
-  }
-
-  @Override
-  protected synchronized Class<?> loadClass(String name, boolean resolve)
-      throws ClassNotFoundException {
-    try {
-      Class<?> clazz = findLoadedClass(name);
-      if (clazz == null) {
-        clazz = findClass(name);
-        if (resolve) {
-          resolveClass(clazz);
-        }
-      }
-      return clazz;
-    } catch (ClassNotFoundException e) {
-      return super.loadClass(name, resolve);
-    }
-  }
-
-  private static void close(Closeable closeable) {
-    if (closeable != null) {
-      try {
-        closeable.close();
-      } catch (IOException e) {
-        e.printStackTrace();
-      }
-    }
-  }
-
-  private static boolean isJar(String fileName) {
-    return fileName != null && (fileName.toLowerCase().endsWith(".jar") ||
-        fileName.toLowerCase().endsWith(".war") ||
-        fileName.toLowerCase().endsWith(".ear"));
-  }
-
-  private static File jarEntryAsFile(JarFile jarFile,
-      JarEntry jarEntry) throws IOException {
-    InputStream input = null;
-    OutputStream output = null;
-    try {
-      String name = jarEntry.getName().replace('/', '_');
-      int i = name.lastIndexOf(".");
-      String extension = i > -1 ? name.substring(i) : "";
-      File file = File.createTempFile(
-          name.substring(0, name.length() - extension.length()) + ".",
-          extension);
-      file.deleteOnExit();
-      input = jarFile.getInputStream(jarEntry);
-      output = new FileOutputStream(file);
-      int readCount;
-      byte[] buffer = new byte[4096];
-      while ((readCount = input.read(buffer)) != -1) {
-        output.write(buffer, 0, readCount);
-      }
-      return file;
-    } finally {
-      close(input);
-      close(output);
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/Argument.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/Argument.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/Argument.java
deleted file mode 100644
index 1125c1b..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/Argument.java
+++ /dev/null
@@ -1,275 +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.installer.args;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Class representing a single command line argument.
- */
-public class Argument {
-
-  /**
-   * Parameter names.
-   */
-  private final String[] paramNames;
-
-  /**
-   * Default values for the parameters when not explicitly set.
-   */
-  private String[] defaults;
-
-  /**
-   * Environment variable names forfor each parameter where values will be
-   * pulled in, if not explicitly provided and if the environment variable
-   * exists.
-   */
-  private String[] envVars;
-
-  /**
-   * Flag indicating whether this argument is required on the command line.
-   */
-  private final boolean required;
-
-  /**
-   * Handler used to hook into processing.
-   */
-  private ArgumentHandler handler;
-
-  /**
-   * List of all representation forms.
-   */
-  private final List<String> forms = new ArrayList<String>();
-
-  /**
-   * Usage description.
-   */
-  private String description;
-
-  ///////////////////////////////////////////////////////////////////////////
-  // Constructor:
-
-  /**
-   * Contructor to create an argument definition.
-   *
-   * @param primaryForm    the form of the argument (e.g., --foo).  Should start
-   *                       with a dash.
-   * @param argRequired    flag indicating whether or not the argument is
-   *                       required to be onthe command line
-   * @param parameterNames names of the parameters to this argument for use in
-   *                       the usage generation
-   */
-  public Argument(
-      final String primaryForm,
-      final boolean argRequired,
-      final String... parameterNames) {
-    forms.add(primaryForm);
-    paramNames = parameterNames;
-    required = argRequired;
-  }
-
-  /**
-   * Returns the number of parameters that this argument takes.
-   *
-   * @return parameter count
-   */
-  public int getParameterCount() {
-    return paramNames.length;
-  }
-
-  /**
-   * Returns the name of the parameter position requested.
-   *
-   * @param idx parameter index
-   * @return parameter name
-   */
-  public String getParameterName(final int idx) {
-    return paramNames[idx];
-  }
-
-  /**
-   * Returns whether or not this argument is required to be defined.
-   *
-   * @return true if required, false if optional
-   */
-  public boolean isRequired() {
-    return required;
-  }
-
-  /**
-   * Determines if the argument provisioning has been done via the environment.
-   */
-  public boolean isDefinedInEnv() {
-    if (envVars == null || paramNames.length == 0) {
-      return false;
-    }
-    for (String var : envVars) {
-      if (System.getenv(var) == null) {
-        return false;
-      }
-    }
-    return true;
-  }
-
-  /**
-   * Sets the argument handler.
-   *
-   * @param aHandler argument handler
-   * @return this argument (for chained calls)
-   */
-  public Argument setArgumentHandler(final ArgumentHandler aHandler) {
-    handler = aHandler;
-    return this;
-  }
-
-  /**
-   * Returns the argument handler.
-   *
-   * @return argument handler
-   */
-  public ArgumentHandler getArgumentHandler() {
-    return handler;
-  }
-
-  /**
-   * Adds a possible representation of the command line argument.
-   *
-   * @param aliasName additional form to accept
-   * @return this argument (for chained calls)
-   */
-  public Argument addForm(final String aliasName) {
-    forms.add(aliasName);
-    return this;
-  }
-
-  /**
-   * Returns the primary form of the argument.
-   *
-   * @return primary form
-   */
-  public String getPrimaryForm() {
-    if (forms.isEmpty()) {
-      return null;
-    } else {
-      return forms.get(0);
-    }
-  }
-
-  /**
-   * Returns a list of all valid representations of this command line argument.
-   *
-   * @return list of all registered forms
-   */
-  public List<String> getForms() {
-    return forms;
-  }
-
-  /**
-   * Sets a usage description for this argument.
-   *
-   * @param str usage description
-   * @return this argument (for chained calls)
-   */
-  public Argument setDescription(final String str) {
-    description = str;
-    return this;
-  }
-
-  /**
-   * Returns a usage description of this argument.
-   *
-   * @return description
-   */
-  public String getDescription() {
-    return description;
-  }
-
-  /**
-   * Sets the default values when no explicit values were provided.
-   *
-   * @param newDefaults default values for all argument parameters
-   * @return this argument (for chained calls)
-   */
-  public Argument setDefaults(final String... newDefaults) {
-    if (newDefaults.length != paramNames.length) {
-      throw (new IllegalArgumentException(
-          "Defaults array length provided is not the correct size"));
-    }
-    defaults = newDefaults;
-    return this;
-  }
-
-  /**
-   * Returns the defaults.
-   *
-   * @return default parameter values
-   */
-  public String[] getDefaults() {
-    return defaults;
-  }
-
-  /**
-   * Sets the environment variables which will be checked for values before
-   * falling back on the default values.
-   *
-   * @param newEnvVars environment variable name array
-   * @return this argument (for chained calls)
-   */
-  public Argument setEnvVars(final String... newEnvVars) {
-    if (newEnvVars.length != paramNames.length) {
-      throw (new IllegalArgumentException(
-          "Environment variables array length provided is not "
-              + "the correct size"));
-    }
-    envVars = newEnvVars;
-    return this;
-  }
-
-  /**
-   * Returns the environment variable names for each parameter.
-   *
-   * @return environment variable names
-   */
-  public String[] getEnvVars() {
-    return envVars;
-  }
-
-  /**
-   * Returns a human readable form.
-   *
-   * @return human readable string
-   */
-  @Override
-  public String toString() {
-    final StringBuilder builder = new StringBuilder();
-    builder.append("[Argument '");
-    builder.append(forms.get(0));
-    builder.append("'");
-    if (paramNames.length > 0) {
-      for (int i = 0; i < paramNames.length; i++) {
-        builder.append(" <");
-        builder.append(paramNames[i]);
-        builder.append(">");
-      }
-    }
-    builder.append("]");
-    return builder.toString();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentHandler.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentHandler.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentHandler.java
deleted file mode 100644
index 97c8108..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentHandler.java
+++ /dev/null
@@ -1,38 +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.installer.args;
-
-/**
- * Interface specifying the requirements for objects wiching to be able to
- * examine arguments (potentially tweaking parameters) at the time of parsing,
- * thereby allowing for usage display to occur automatically.
- */
-public interface ArgumentHandler {
-
-  /**
-   * Process the argument values specified.
-   *
-   * @param arg    argument definition
-   * @param form   form which was used on the command line
-   * @param params parameters supplied to the argument
-   * @throws UsageException when usage was suboptimal
-   */
-  void handleArgument(Argument arg, String form, String[] params)
-      throws UsageException;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentProcessor.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentProcessor.java
deleted file mode 100644
index 04ecfab..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentProcessor.java
+++ /dev/null
@@ -1,397 +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.installer.args;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Logger;
-
-/**
- * This class is used to process command line arguments for Java programs in a
- * flexible and powerful manner.
- */
-public class ArgumentProcessor {
-  /**
-   * Logger.
-   */
-  private static final Logger LOG =
-      Logger.getLogger(ArgumentProcessor.class.getName());
-
-  /**
-   * Description line length.
-   */
-  private static final int LINE_LENGTH = 60;
-
-  /**
-   * Map containing all arguments defined, indexed by their unique IDs.
-   */
-  private final List<Argument> args = new ArrayList<Argument>();
-
-  /**
-   * Unknown argument handler.
-   */
-  private UnknownArgumentHandler handler;
-
-  /**
-   * Program name to display in usage.
-   */
-  private String programName;
-
-  ///////////////////////////////////////////////////////////////////////////
-  // Classes:
-
-  /**
-   * Structure used to represent an argument match.
-   */
-  private static class Match {
-    /**
-     * The argument which matched.
-     */
-    private final Argument arg;
-
-    /**
-     * The specific form which matched.
-     */
-    private final String form;
-
-    /**
-     * The parameters to the argument form.
-     */
-    private final String[] params;
-
-    /**
-     * Constructor.
-     *
-     * @param theArgument the argument which matched
-     * @param theForm     the form used
-     * @param theParams   the parameters supplied
-     */
-    public Match(
-        final Argument theArgument,
-        final String theForm, final String[] theParams) {
-      arg = theArgument;
-      form = theForm;
-      params = theParams;
-    }
-
-    /**
-     * Accessor.
-     *
-     * @return argument which matched
-     */
-    public Argument getArgument() {
-      return arg;
-    }
-
-    /**
-     * Accessor.
-     *
-     * @return form which was used
-     */
-    public String getForm() {
-      return form;
-    }
-
-    /**
-     * Accessor.
-     *
-     * @return parameters supplied
-     */
-    public String[] getParams() {
-      return params;
-    }
-  }
-
-  ///////////////////////////////////////////////////////////////////////////
-  // Constructors:
-
-  /**
-   * Creates a new Argument processor instance for te program name given.
-   *
-   * @param progName program name used in usage
-   */
-  public ArgumentProcessor(final String progName) {
-    programName = progName;
-  }
-
-
-  ///////////////////////////////////////////////////////////////////////////
-  // Public methods:
-
-  /**
-   * Adds a new argument.
-   *
-   * @param arg argument to add
-   */
-  public void addArgument(final Argument arg) {
-    args.add(arg);
-  }
-
-  /**
-   * Sets the handler to call when an unknown argument is encountered.
-   *
-   * @param aHandler unknown arg handler, or null to unset
-   */
-  public void setUnknownArgumentHandler(
-      final UnknownArgumentHandler aHandler) {
-    handler = aHandler;
-  }
-
-  /**
-   * Process the command line arguments provided.
-   *
-   * @param programArgs command line arguments supplied to program
-   * @return argument values parsed out of command line
-   * @throws UsageException when usge sucked
-   */
-  public ArgumentValues process(final String[] programArgs)
-      throws UsageException {
-    ArgumentHandler argHandler;
-    final ArgumentValues result = new ArgumentValues();
-    List<Argument> unmatched;
-    List<Match> matches;
-
-    // Find all argument matches and set postArgs
-    matches = checkMatches(programArgs, result);
-
-    // Find arguments which didnt match
-    unmatched = new ArrayList<Argument>();
-    unmatched.addAll(args);
-    for (Match match : matches) {
-      unmatched.remove(match.getArgument());
-    }
-
-    // Error on unmatched yet required args
-    for (Argument arg : unmatched) {
-      if (arg.isRequired() && !arg.isDefinedInEnv()) {
-        final UsageException usageException = new UsageException(
-            "Required argument not provided: " + arg);
-        usageException.setUsage(getUsage());
-        throw usageException;
-      }
-    }
-
-    // Handle the arguments
-    for (Match match : matches) {
-      final Argument arg = match.getArgument();
-      argHandler = arg.getArgumentHandler();
-      if (argHandler != null) {
-        argHandler.handleArgument(
-            arg, match.getForm(), match.getParams());
-      }
-      result.addResult(arg, match.getParams());
-    }
-
-    return result;
-  }
-
-
-  /**
-   * Generates command line usage text for display to user.
-   *
-   * @return usage to dusplay to user
-   */
-  public String getUsage() {
-    final StringBuilder builder = new StringBuilder();
-    List<String> descriptionLines;
-    final String blank20 = "                    ";
-
-    builder.append("\nUSAGE: ");
-    if (programName == null) {
-      builder.append("<program>");
-    } else {
-      builder.append(programName);
-    }
-    if (args.isEmpty()) {
-      builder.append("\nNo arguments supported.\n");
-    } else {
-      builder.append(" <args>\nWHERE <args>:\n\n");
-      for (Argument arg : args) {
-        for (String form : arg.getForms()) {
-          builder.append("    ");
-          builder.append(form);
-
-          for (int i = 0; i < arg.getParameterCount(); i++) {
-            builder.append(" <");
-            builder.append(arg.getParameterName(i));
-            builder.append(">");
-          }
-          builder.append("\n");
-        }
-
-        descriptionLines =
-            breakupString(arg.getDescription(), LINE_LENGTH);
-        if (descriptionLines.isEmpty()) {
-          builder.append(blank20);
-          builder.append("No argument description provided.");
-          builder.append("\n\n");
-        } else {
-          for (String line : descriptionLines) {
-            builder.append(blank20);
-            builder.append(line.trim());
-            builder.append("\n");
-          }
-          builder.append("\n");
-        }
-      }
-    }
-    builder.append("\n");
-
-    return builder.toString();
-  }
-
-
-  ///////////////////////////////////////////////////////////////////////////
-  // Private methods:
-
-  /**
-   * Builds a listof all argument matches and sets the postArgs array.
-   *
-   * @param programArgs command line arguments to search through
-   * @param values      values object in which to store results
-   * @return list of matches
-   * @throws UsageException when there is EBKAC
-   */
-  private List<Match> checkMatches(
-      final String[] programArgs, final ArgumentValues values)
-      throws UsageException {
-    final List<Match> result = new ArrayList<Match>();
-    Match match;
-    String[] params;
-    String[] postArgs;
-    int idx = 0;
-    int idx2;
-
-    while (idx < programArgs.length) {
-      // Check for end-of-parameters arg
-      if ("--".equals(programArgs[idx])) {
-        if (++idx < programArgs.length) {
-          postArgs = new String[programArgs.length - idx];
-          System.arraycopy(programArgs, idx,
-              postArgs, 0, postArgs.length);
-          values.setPostArgs(postArgs);
-        }
-        // We're done processing args'
-        break;
-      }
-
-      // Determine parameter count
-      idx2 = idx;
-      while ((idx2 + 1) < programArgs.length
-          && programArgs[idx2 + 1].charAt(0) != '-') {
-        idx2++;
-      }
-
-      // Generate parameter array
-      params = new String[idx2 - idx];
-      System.arraycopy(programArgs, idx + 1, params, 0, params.length);
-
-      LOG.fine("Arg: " + programArgs[idx]);
-      LOG.fine("Params: " + params.length);
-
-      // Find first argument matches
-      match = null;
-      for (Argument arg : args) {
-        match = checkMatch(programArgs[idx], arg, params);
-        if (match != null) {
-          result.add(match);
-          LOG.fine("Match found: ");
-          LOG.fine("     ID: " + arg);
-          LOG.fine("   Form: " + match.getForm());
-          break;
-        }
-      }
-      if (match == null) {
-        if (handler == null) {
-          final UsageException usageException = new UsageException(
-              "Unknown argument: " + programArgs[idx]
-                  + " with " + params.length + " parameters.");
-          usageException.setUsage(getUsage());
-          throw (usageException);
-        } else {
-          handler.handleUnknownArgument(programArgs[idx], params);
-        }
-      }
-
-      idx += params.length + 1;
-    }
-
-    return result;
-  }
-
-  /**
-   * Checks to see if an rgument form matches the suppies parameter list.
-   *
-   * @param argName argument name
-   * @param arg     argument
-   * @param params  parameters supplied
-   * @return match object on match, null otherwise
-   */
-  private Match checkMatch(
-      final String argName, final Argument arg, final String[] params) {
-    // Look for a matching form
-    for (String form : arg.getForms()) {
-      if (
-          form.equals(argName)
-              && arg.getParameterCount() == params.length) {
-        return new Match(arg, form, params);
-      }
-    }
-
-    return null;
-  }
-
-  /**
-   * Breaks up a string into sub-strings, each with a length equal to or less
-   * than the max length specified.
-   *
-   * @param str       string to break up
-   * @param maxLength maximum line length to use
-   * @return broken up string
-   */
-  private List<String> breakupString(
-      final String str, final int maxLength) {
-    final List<String> result = new ArrayList<String>();
-    int startIdx = -1;
-    int lastIdx;
-    int idx;
-
-    if (str == null) {
-      return result;
-    }
-
-    do {
-      idx = startIdx;
-      do {
-        lastIdx = idx;
-        idx = str.indexOf(' ', lastIdx + 1);
-        LOG.fine("startIdx=" + startIdx + "  lastIdx=" + lastIdx
-            + "  idx=" + idx);
-        if (idx < 0) {
-          // Canot break line up any further
-          result.add(str.substring(startIdx + 1));
-          return result;
-        }
-      } while ((idx - startIdx) <= maxLength);
-
-      result.add(str.substring(startIdx + 1, lastIdx));
-      startIdx = lastIdx;
-    } while (true);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentValues.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentValues.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentValues.java
deleted file mode 100644
index cd412da..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/ArgumentValues.java
+++ /dev/null
@@ -1,222 +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.installer.args;
-
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Result object capturing the result of processing command line arguments.
- */
-public class ArgumentValues {
-
-  /**
-   * Storage location for all arguments found after the "--" pseudo-arg.
-   */
-  private String[] postArgs = new String[]{};
-
-  /**
-   * Storage location for the command line argument values.
-   */
-  private final Map<Argument, List<String[]>> values =
-      new LinkedHashMap<Argument, List<String[]>>();
-
-  /**
-   * Constructor.
-   */
-  ArgumentValues() {
-    // Empty.
-  }
-
-  /**
-   * Sets the post-arguments found after the "--" pseudo-argument.
-   *
-   * @param newPostArgs arguments defined after the special "--" argument
-   */
-  void setPostArgs(final String[] newPostArgs) {
-    postArgs = newPostArgs;
-  }
-
-  /**
-   * After processing the command line arguments, this method may be used to
-   * return all arguments which were excluded from processing by their placement
-   * after the "<code>--</code>" psuedo-argument.
-   *
-   * @return all unprocess arguments
-   */
-  public String[] getPostArgs() {
-    return postArgs;
-  }
-
-  /**
-   * Sets the data values found for a specific argument.
-   *
-   * @param arg         argument
-   * @param paramValues parameter values for the argument
-   */
-  public void addResult(final Argument arg, final String[] paramValues) {
-    List<String[]> list = values.get(arg);
-    if (list == null) {
-      list = new ArrayList<String[]>();
-      list.add(paramValues);
-      values.put(arg, list);
-    } else {
-      list.add(paramValues);
-    }
-  }
-
-  /**
-   * Returns a list of all defined arguments.
-   *
-   * @return set of arguments
-   */
-  public Set<Argument> getDefinedArguments() {
-    return values.keySet();
-  }
-
-  /**
-   * Counts the number of arguments defined on the command line which are in the
-   * list provided.
-   *
-   * @param ofThese the arguments to search for, or null to count all supplied
-   *                arguments
-   * @return count of the defined arguments
-   */
-  public int getDefinedCount(Argument... ofThese) {
-    if (ofThese.length == 0) {
-      return values.keySet().size();
-    }
-
-    int count = 0;
-    for (Argument arg : values.keySet()) {
-      boolean found = false;
-      for (int i = 0; !found && i < ofThese.length; i++) {
-        if (ofThese[i].equals(arg)) {
-          count++;
-          found = true;
-        }
-      }
-    }
-    return count;
-  }
-
-  /**
-   * Returns whetheror not the command line argument was actually provided on
-   * the command line.
-   *
-   * @param arg argument to query
-   * @return true if the argument is defined by the command line, false
-   * otherwise
-   */
-  public boolean isDefined(final Argument arg) {
-    final List<String[]> result = values.get(arg);
-    return (result != null);
-  }
-
-  /**
-   * Returns all results for the specified argument.  If a command line option
-   * is specified more than once, this is the method to use to get all values.
-   *
-   * @param arg argument to query
-   * @return list of all parameter lists defined for this argument
-   */
-  public List<String[]> getAllResults(final Argument arg) {
-    List<String[]> result = values.get(arg);
-
-    if (result == null) {
-      final String[] envVars = arg.getEnvVars();
-      final String[] defaults = arg.getDefaults();
-      final String[] vals = new String[arg.getParameterCount()];
-      boolean found = defaults != null;
-
-      for (int i = 0; i < arg.getParameterCount(); i++) {
-        if (defaults != null) {
-          vals[i] = defaults[i];
-        }
-        if (envVars != null) {
-          String val = System.getenv(envVars[i]);
-          if (val != null) {
-            found = true;
-            vals[i] = val;
-          }
-        }
-      }
-
-      if (found) {
-        result = new ArrayList<String[]>();
-        result.add(vals);
-      }
-    }
-    return result;
-  }
-
-  /**
-   * Convenience method to retrieve the first instance of the command line
-   * argument's values.
-   *
-   * @param arg argument to query
-   * @return first parameter list defined for this argument
-   */
-  public String[] getResult(final Argument arg) {
-    final List<String[]> all = getAllResults(arg);
-    if (all == null) {
-      return null;
-    } else {
-      return all.get(0);
-    }
-  }
-
-  /**
-   * Convenience method to return the first value of the first instance of the
-   * command line argument values for the specified argument.
-   *
-   * @param arg argument to query
-   * @return first parameter of the first list of parameters supplied
-   */
-  public String getFirstResult(final Argument arg) {
-    final String[] all = getResult(arg);
-    if (all == null) {
-      return null;
-    } else {
-      return all[0];
-    }
-  }
-
-  /**
-   * Convenience method to return the result of getFirstResult method as an
-   * integer.
-   *
-   * @param arg            argument to query
-   * @param undefinedValue value to return when argument is not defined or is
-   *                       illegally defined
-   * @return value specified, or default value provided
-   */
-  public int getFirstResultAsInt(
-      final Argument arg, final int undefinedValue) {
-    final String value = getFirstResult(arg);
-    if (value == null) {
-      return undefinedValue;
-    } else {
-      return Integer.parseInt(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/installer/args/URLArgumentHandler.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/URLArgumentHandler.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/URLArgumentHandler.java
deleted file mode 100644
index bb4b53a..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/URLArgumentHandler.java
+++ /dev/null
@@ -1,77 +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.installer.args;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * Argument handler implementation which accepts file paths or URLs and
- * normalizes the parameters to URLs.
- */
-public class URLArgumentHandler implements ArgumentHandler {
-
-  /**
-   * Logger.
-   */
-  private static final Logger LOG =
-      Logger.getLogger(URLArgumentHandler.class.getName());
-
-  /**
-   * Ensure that the argument is either a file path or a properly formatted URL.
-   *  If it is a file path, convert to a URL.  If neither, throws a
-   * UsageException.
-   *
-   * @param arg        argument
-   * @param form       form used
-   * @param parameters parameters supplied
-   * @throws UsageException when file not found or not a workable URL
-   */
-  public void handleArgument(
-      final Argument arg,
-      final String form,
-      final String[] parameters)
-      throws UsageException {
-    final File file = new File(parameters[0]);
-    URL result = null;
-
-    if (file.exists()) {
-      try {
-        result = file.toURI().toURL();
-      } catch (MalformedURLException mux) {
-        LOG.log(Level.FINEST, "Caught Exception", mux);
-      }
-    }
-    if (result == null) {
-      try {
-        result = new URL(parameters[0]);
-      } catch (MalformedURLException mux) {
-        LOG.log(Level.FINEST, "Caught Exception", mux);
-      }
-    }
-    if (result == null) {
-      throw (new UsageException(
-          "Argument parameter value is not a valid file "
-              + "path or URL: " + arg));
-    }
-    parameters[0] = result.toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UnknownArgumentHandler.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UnknownArgumentHandler.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UnknownArgumentHandler.java
deleted file mode 100644
index 4d52f62..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UnknownArgumentHandler.java
+++ /dev/null
@@ -1,36 +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.installer.args;
-
-/**
- * Interface defining unknown argument handlers, given the opportunity to either
- * ignore the issue or force the parameter to be dealt with.
- */
-public interface UnknownArgumentHandler {
-
-  /**
-   * Called when an unknown argument is supplied.
-   *
-   * @param form   argument name used
-   * @param params parameters passed into it
-   * @throws UsageException when the user needs to fix it
-   */
-  void handleUnknownArgument(String form, String[] params)
-      throws UsageException;
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UsageException.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UsageException.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UsageException.java
deleted file mode 100644
index 0879417..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/installer/args/UsageException.java
+++ /dev/null
@@ -1,89 +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.installer.args;
-
-/**
- * Invalid usage exception.
- */
-public class UsageException extends Exception {
-
-  /**
-   * Serial format version.
-   */
-  private static final long serialVersionUID = 1L;
-
-  /**
-   * Stored usage message.
-   */
-  private String usage;
-
-  /**
-   * Creates a new UsageException.
-   */
-  public UsageException() {
-    super();
-  }
-
-  /**
-   * Creates a new UsageException.
-   *
-   * @param message description of exceptional condition
-   */
-  public UsageException(final String message) {
-    super(message);
-  }
-
-  /**
-   * Creates a new UsageException.
-   *
-   * @param message description of exceptional condition
-   * @param cause   provoking exception
-   */
-  public UsageException(final String message, final Throwable cause) {
-    super(message, cause);
-  }
-
-  /**
-   * Creates a new UsageException.
-   *
-   * @param cause provoking exception
-   */
-  public UsageException(final Throwable cause) {
-    super(cause);
-  }
-
-
-  /**
-   * Attaches a usage message to the exception for later consumption.
-   *
-   * @param usageText text to display to user to guide them to correct usage.
-   *                  This is generated and set by the <code>ArgsProcessor</code>.
-   */
-  public void setUsage(final String usageText) {
-    usage = usageText;
-  }
-
-  /**
-   * Returns the usage message previously set.
-   *
-   * @return message or null if not set.
-   */
-  public String getUsage() {
-    return usage;
-  }
-}

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/common/AbstractSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/AbstractSessionCache.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/AbstractSessionCache.java
deleted file mode 100644
index 965a97f..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/AbstractSessionCache.java
+++ /dev/null
@@ -1,102 +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.common;
-
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.modules.session.catalina.internal.DeltaSessionStatistics;
-import com.gemstone.gemfire.modules.session.internal.filter.util.TypeAwareMap;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-
-import java.util.Map;
-import javax.servlet.http.HttpSession;
-
-public abstract class AbstractSessionCache implements SessionCache {
-
-  /**
-   * The sessionRegion is the <code>Region</code> that actually stores and
-   * replicates the <code>Session</code>s.
-   */
-  protected Region<String, HttpSession> sessionRegion;
-
-  /**
-   * The operatingRegion is the <code>Region</code> used to do HTTP operations.
-   * if local cache is enabled, then this will be the local <code>Region</code>;
-   * otherwise, it will be the session <code>Region</code>.
-   */
-  protected Region<String, HttpSession> operatingRegion;
-
-  protected Map<CacheProperty, Object> properties =
-      new TypeAwareMap<CacheProperty, Object>(CacheProperty.class);
-
-  protected DeltaSessionStatistics statistics;
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void stop() {
-    sessionRegion.close();
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Region<String, HttpSession> getOperatingRegion() {
-    return this.operatingRegion;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Region<String, HttpSession> getSessionRegion() {
-    return this.sessionRegion;
-  }
-
-  protected void createStatistics() {
-    this.statistics =
-        new DeltaSessionStatistics(getCache().getDistributedSystem(),
-            (String) properties.get(CacheProperty.STATISTICS_NAME));
-  }
-
-  /**
-   * Build up a {@code RegionConfiguraton} object from parameters originally
-   * passed in as filter initialization parameters.
-   *
-   * @return a {@code RegionConfiguration} object
-   */
-  protected RegionConfiguration createRegionConfiguration() {
-    RegionConfiguration configuration = new RegionConfiguration();
-
-    configuration.setRegionName(
-        (String) properties.get(CacheProperty.REGION_NAME));
-    configuration.setRegionAttributesId(
-        (String) properties.get(CacheProperty.REGION_ATTRIBUTES_ID));
-
-    configuration.setEnableGatewayDeltaReplication(
-        (Boolean) properties.get(
-            CacheProperty.ENABLE_GATEWAY_DELTA_REPLICATION));
-    configuration.setEnableGatewayReplication(
-        (Boolean) properties.get(CacheProperty.ENABLE_GATEWAY_REPLICATION));
-    configuration.setEnableDebugListener(
-        (Boolean) properties.get(CacheProperty.ENABLE_DEBUG_LISTENER));
-
-    return configuration;
-  }
-}

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/common/CacheProperty.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/CacheProperty.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/CacheProperty.java
deleted file mode 100644
index e26281e..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/CacheProperty.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.common;
-
-/**
- * Used to define cache properties
- */
-public enum CacheProperty {
-
-  ENABLE_DEBUG_LISTENER(Boolean.class),
-
-  ENABLE_GATEWAY_REPLICATION(Boolean.class),
-
-  ENABLE_GATEWAY_DELTA_REPLICATION(Boolean.class),
-
-  ENABLE_LOCAL_CACHE(Boolean.class),
-
-  REGION_NAME(String.class),
-
-  REGION_ATTRIBUTES_ID(String.class),
-
-  STATISTICS_NAME(String.class),
-
-  /**
-   * 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
-   */
-  SESSION_DELTA_POLICY(String.class),
-
-  /**
-   * This parameter can take the following values:
-   * <p/>
-   * set (default) set_and_get
-   */
-  REPLICATION_TRIGGER(String.class);
-
-  Class clazz;
-
-  CacheProperty(Class clazz) {
-    this.clazz = clazz;
-  }
-
-  public Class getClazz() {
-    return clazz;
-  }
-}

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/common/ClientServerSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/ClientServerSessionCache.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/ClientServerSessionCache.java
deleted file mode 100644
index a23888c..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/ClientServerSessionCache.java
+++ /dev/null
@@ -1,186 +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.common;
-
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.client.ClientCache;
-import com.gemstone.gemfire.cache.client.ClientRegionFactory;
-import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
-import com.gemstone.gemfire.cache.execute.Execution;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.cache.execute.ResultCollector;
-import com.gemstone.gemfire.modules.util.BootstrappingFunction;
-import com.gemstone.gemfire.modules.util.CreateRegionFunction;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-import com.gemstone.gemfire.modules.util.RegionStatus;
-
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpSession;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Class which defines a client/server cache.
- */
-public class ClientServerSessionCache extends AbstractSessionCache {
-
-  private static final Logger LOG =
-      LoggerFactory.getLogger(PeerToPeerSessionCache.class.getName());
-
-  private ClientCache cache;
-
-  protected static final String DEFAULT_REGION_ATTRIBUTES_ID =
-      RegionShortcut.PARTITION_REDUNDANT.toString();
-
-  protected static final Boolean DEFAULT_ENABLE_LOCAL_CACHE = true;
-
-  /**
-   * Constructor
-   *
-   * @param cache
-   * @param properties
-   */
-  public ClientServerSessionCache(ClientCache cache,
-      Map<CacheProperty, Object> properties) {
-    super();
-    this.cache = cache;
-
-    /**
-     * Set some default properties for this cache if they haven't already
-     * been set
-     */
-    this.properties.put(CacheProperty.REGION_ATTRIBUTES_ID,
-        DEFAULT_REGION_ATTRIBUTES_ID);
-    this.properties.put(CacheProperty.ENABLE_LOCAL_CACHE,
-        DEFAULT_ENABLE_LOCAL_CACHE);
-    this.properties.putAll(properties);
-  }
-
-  @Override
-  public void initialize() {
-    // Bootstrap the servers
-    bootstrapServers();
-
-    // Create or retrieve the region
-    createOrRetrieveRegion();
-
-    // Set the session region directly as the operating region since there is no difference
-    // between the local cache region and the session region.
-    operatingRegion = sessionRegion;
-
-    // Create or retrieve the statistics
-    createStatistics();
-  }
-
-  @Override
-  public GemFireCache getCache() {
-    return cache;
-  }
-
-  @Override
-  public boolean isClientServer() {
-    return true;
-  }
-
-
-  ////////////////////////////////////////////////////////////////////////
-  // Private methods
-
-  private void bootstrapServers() {
-    Execution execution = FunctionService.onServers(this.cache);
-    ResultCollector collector = execution.execute(new BootstrappingFunction());
-    // Get the result. Nothing is being done with it.
-    try {
-      collector.getResult();
-    } catch (Exception e) {
-      // If an exception occurs in the function, log it.
-      LOG.warn("Caught unexpected exception:", e);
-    }
-  }
-
-  private void createOrRetrieveRegion() {
-    // Retrieve the local session region
-    this.sessionRegion =
-        this.cache.getRegion(
-            (String) properties.get(CacheProperty.REGION_NAME));
-
-    // If necessary, create the regions on the server and client
-    if (this.sessionRegion == null) {
-      // Create the PR on the servers
-      createSessionRegionOnServers();
-
-      // Create the region on the client
-      this.sessionRegion = createLocalSessionRegion();
-      LOG.debug("Created session region: " + this.sessionRegion);
-    } else {
-      LOG.debug("Retrieved session region: " + this.sessionRegion);
-    }
-  }
-
-  private void createSessionRegionOnServers() {
-    // Create the RegionConfiguration
-    RegionConfiguration configuration = createRegionConfiguration();
-
-    // Send it to the server tier
-    Execution execution = FunctionService.onServer(this.cache).withArgs(
-        configuration);
-    ResultCollector collector = execution.execute(CreateRegionFunction.ID);
-
-    // Verify the region was successfully created on the servers
-    List<RegionStatus> results = (List<RegionStatus>) collector.getResult();
-    for (RegionStatus status : results) {
-      if (status == RegionStatus.INVALID) {
-        StringBuilder builder = new StringBuilder();
-        builder.append(
-            "An exception occurred on the server while attempting to create or validate region named ");
-        builder.append(properties.get(CacheProperty.REGION_NAME));
-        builder.append(". See the server log for additional details.");
-        throw new IllegalStateException(builder.toString());
-      }
-    }
-  }
-
-  private Region<String, HttpSession> createLocalSessionRegion() {
-    ClientRegionFactory<String, HttpSession> factory = null;
-    boolean enableLocalCache =
-        (Boolean) properties.get(CacheProperty.ENABLE_LOCAL_CACHE);
-
-    String regionName = (String) properties.get(CacheProperty.REGION_NAME);
-    if (enableLocalCache) {
-      // Create the region factory with caching and heap LRU enabled
-      factory = ((ClientCache) this.cache).
-          createClientRegionFactory(
-              ClientRegionShortcut.CACHING_PROXY_HEAP_LRU);
-      LOG.info("Created new local client session region: {}", regionName);
-    } else {
-      // Create the region factory without caching enabled
-      factory = ((ClientCache) this.cache).createClientRegionFactory(
-          ClientRegionShortcut.PROXY);
-      LOG.info(
-          "Created new local client (uncached) session region: {} without any session expiry",
-          regionName);
-    }
-
-    // Create the region
-    return factory.create(regionName);
-  }
-}

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/common/PeerToPeerSessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/PeerToPeerSessionCache.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/PeerToPeerSessionCache.java
deleted file mode 100644
index 878adaa..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/PeerToPeerSessionCache.java
+++ /dev/null
@@ -1,184 +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.common;
-
-import com.gemstone.gemfire.cache.Cache;
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-import com.gemstone.gemfire.cache.RegionFactory;
-import com.gemstone.gemfire.cache.RegionShortcut;
-import com.gemstone.gemfire.cache.execute.FunctionService;
-import com.gemstone.gemfire.modules.session.catalina.callback.LocalSessionCacheLoader;
-import com.gemstone.gemfire.modules.session.catalina.callback.LocalSessionCacheWriter;
-import com.gemstone.gemfire.modules.util.RegionConfiguration;
-import com.gemstone.gemfire.modules.util.RegionHelper;
-import com.gemstone.gemfire.modules.util.TouchPartitionedRegionEntriesFunction;
-import com.gemstone.gemfire.modules.util.TouchReplicatedRegionEntriesFunction;
-
-import java.util.Map;
-import javax.servlet.http.HttpSession;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Class which defines a peer-to-peer cache
- */
-public class PeerToPeerSessionCache extends AbstractSessionCache {
-
-  private static final Logger LOG =
-      LoggerFactory.getLogger(PeerToPeerSessionCache.class.getName());
-
-  private Cache cache;
-
-  private static final String DEFAULT_REGION_ATTRIBUTES_ID =
-      RegionShortcut.REPLICATE.toString();
-
-  private static final Boolean DEFAULT_ENABLE_LOCAL_CACHE = false;
-
-  /**
-   * Constructor
-   *
-   * @param cache
-   * @param properties
-   */
-  public PeerToPeerSessionCache(Cache cache,
-      Map<CacheProperty, Object> properties) {
-    super();
-    this.cache = cache;
-
-    /**
-     * Set some default properties for this cache if they haven't already
-     * been set
-     */
-    this.properties.put(CacheProperty.REGION_ATTRIBUTES_ID,
-        DEFAULT_REGION_ATTRIBUTES_ID);
-    this.properties.put(CacheProperty.ENABLE_LOCAL_CACHE,
-        DEFAULT_ENABLE_LOCAL_CACHE);
-    this.properties.putAll(properties);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void initialize() {
-    // Register Functions
-    registerFunctions();
-
-    // Create or retrieve the region
-    createOrRetrieveRegion();
-
-    /**
-     * If local cache is enabled, create the local region fronting the
-     * session region and set it as the operating region; otherwise, use
-     * the session region directly as the operating region.
-     */
-    boolean enableLocalCache =
-        (Boolean) properties.get(CacheProperty.ENABLE_LOCAL_CACHE);
-    operatingRegion = enableLocalCache
-        ? createOrRetrieveLocalRegion()
-        : this.sessionRegion;
-
-    // Create or retrieve the statistics
-    createStatistics();
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public GemFireCache getCache() {
-    return cache;
-  }
-
-  @Override
-  public boolean isClientServer() {
-    return false;
-  }
-
-  private void registerFunctions() {
-    // Register the touch partitioned region entries function if it is not already registered
-    if (!FunctionService.isRegistered(
-        TouchPartitionedRegionEntriesFunction.ID)) {
-      FunctionService.registerFunction(
-          new TouchPartitionedRegionEntriesFunction());
-    }
-
-    // Register the touch replicated region entries function if it is not already registered
-    if (!FunctionService.isRegistered(
-        TouchReplicatedRegionEntriesFunction.ID)) {
-      FunctionService.registerFunction(
-          new TouchReplicatedRegionEntriesFunction());
-    }
-  }
-
-  private void createOrRetrieveRegion() {
-    // Create the RegionConfiguration
-    RegionConfiguration configuration = createRegionConfiguration();
-
-    // Attempt to retrieve the region
-    // If it already exists, validate it
-    // If it doesn't already exist, create it
-    Region region = this.cache.getRegion(
-        (String) properties.get(CacheProperty.REGION_NAME));
-    if (region == null) {
-      // Create the region
-      region = RegionHelper.createRegion(cache, configuration);
-      LOG.info("Created new session region: {}", region);
-    } else {
-      // Validate the existing region
-      LOG.info("Retrieved existing session region: {}", region);
-      RegionHelper.validateRegion(cache, configuration, region);
-    }
-
-    // Set the session region
-    this.sessionRegion = region;
-  }
-
-  /**
-   * Create a local region fronting the main region.
-   *
-   * @return
-   */
-  private Region<String, HttpSession> createOrRetrieveLocalRegion() {
-    // Attempt to retrieve the fronting region
-    String frontingRegionName = this.sessionRegion.getName() + "_local";
-    Region<String, HttpSession> frontingRegion =
-        this.cache.getRegion(frontingRegionName);
-
-    if (frontingRegion == null) {
-      // Create the region factory
-      RegionFactory<String, HttpSession> factory =
-          this.cache.createRegionFactory(RegionShortcut.LOCAL_HEAP_LRU);
-
-      // Add the cache loader and writer
-      factory.setCacheLoader(new LocalSessionCacheLoader(this.sessionRegion));
-      factory.setCacheWriter(new LocalSessionCacheWriter(this.sessionRegion));
-
-      // Create the region
-      frontingRegion = factory.create(frontingRegionName);
-      LOG.info("Created new local session region: {}", frontingRegion);
-    } else {
-      LOG.info("Retrieved existing local session region: {}",
-          frontingRegion);
-    }
-
-    return frontingRegion;
-  }
-}

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/common/SessionCache.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionCache.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionCache.java
deleted file mode 100644
index 7562dff..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionCache.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.common;
-
-import com.gemstone.gemfire.cache.GemFireCache;
-import com.gemstone.gemfire.cache.Region;
-
-import javax.servlet.http.HttpSession;
-
-/**
- * Interface to basic cache operations.
- */
-public interface SessionCache {
-
-  /**
-   * Initialize the cache and create the appropriate region.
-   */
-  public void initialize();
-
-  /**
-   * Stop the cache.
-   */
-  public void stop();
-
-  /**
-   * Retrieve the cache reference.
-   *
-   * @return a {@code GemFireCache} reference
-   */
-  public GemFireCache getCache();
-
-  /**
-   * Get the {@code Region} being used by client code to put attributes.
-   *
-   * @return a {@code Region<String, HttpSession>} reference
-   */
-  public Region<String, HttpSession> getOperatingRegion();
-
-  /**
-   * Get the backing {@code Region} being used. This may not be the same as the
-   * region being used by client code to put attributes.
-   *
-   * @return a {@code Region<String, HttpSession>} reference
-   */
-  public Region<String, HttpSession> getSessionRegion();
-
-  /**
-   * Is this cache client-server? The only other alternative is peer-to-peer.
-   *
-   * @return true if this cache is client-server.
-   */
-  public boolean isClientServer();
-}

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/common/SessionExpirationCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionExpirationCacheListener.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionExpirationCacheListener.java
deleted file mode 100644
index 648e711..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/common/SessionExpirationCacheListener.java
+++ /dev/null
@@ -1,53 +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.common;
-
-import com.gemstone.gemfire.cache.Declarable;
-import com.gemstone.gemfire.cache.EntryEvent;
-import com.gemstone.gemfire.cache.Operation;
-import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
-
-import java.util.Properties;
-import javax.servlet.http.HttpSession;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SessionExpirationCacheListener extends
-    CacheListenerAdapter<String, HttpSession> implements Declarable {
-
-  private static final Logger LOG =
-      LoggerFactory.getLogger(SessionExpirationCacheListener.class.getName());
-
-  @Override
-  public void afterDestroy(EntryEvent<String, HttpSession> event) {
-    /**
-     * A Session expired. If it was destroyed by GemFire expiration,
-     * process it. If it was destroyed via Session.invalidate, ignore it
-     * since it has already been processed.
-     */
-    if (event.getOperation() == Operation.EXPIRE_DESTROY) {
-      HttpSession session = (HttpSession) event.getOldValue();
-      session.invalidate();
-    }
-  }
-
-  @Override
-  public void init(Properties p) {
-  }
-}

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/Constants.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/Constants.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/Constants.java
deleted file mode 100644
index 4ce8733..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/Constants.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;
-
-/**
- * Various constant values used through the app
- */
-public class Constants {
-
-  public static String GEMFIRE_SESSION_REQUEST = "_gemfire_session_request_";
-
-  public static String SESSION_STATISTICS_MBEAN_NAME =
-      "com.gemstone:type=SessionStatistics,name=sessionStatistics";
-
-}

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/DummySessionManager.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/DummySessionManager.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/DummySessionManager.java
deleted file mode 100644
index 9628912..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/DummySessionManager.java
+++ /dev/null
@@ -1,132 +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.modules.session.internal.filter.attributes.AbstractSessionAttributes;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-import javax.servlet.http.HttpSession;
-
-/**
- * Class which fakes an in-memory basic session manager for testing purposes.
- */
-public class DummySessionManager implements SessionManager {
-
-  /**
-   * Map of sessions
-   */
-  private final Map<String, HttpSession> sessions =
-      new HashMap<String, HttpSession>();
-
-  private class Attributes extends AbstractSessionAttributes {
-
-    @Override
-    public Object putAttribute(String attr, Object value) {
-      return attributes.put(attr, value);
-    }
-
-    @Override
-    public Object removeAttribute(String attr) {
-      return attributes.remove(attr);
-    }
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void start(Object config, ClassLoader loader) {
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void stop() {
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public HttpSession getSession(String id) {
-    return sessions.get(id);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public HttpSession wrapSession(HttpSession nativeSession) {
-    String id = generateId();
-    AbstractSessionAttributes attributes = new Attributes();
-    GemfireHttpSession session = new GemfireHttpSession(id, nativeSession);
-    session.setManager(this);
-    session.setAttributes(attributes);
-    sessions.put(id, session);
-
-    return session;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public HttpSession getWrappingSession(String nativeId) {
-    return sessions.get(nativeId);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void putSession(HttpSession session) {
-    // shouldn't ever get called
-    throw new UnsupportedOperationException("Not supported yet.");
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void destroySession(String id) {
-    sessions.remove(id);
-  }
-
-  @Override
-  public String destroyNativeSession(String id) {
-    return null;
-  }
-
-  public String getSessionCookieName() {
-    return "JSESSIONID";
-  }
-
-  public String getJvmId() {
-    return "jvm-id";
-  }
-
-  /**
-   * Generate an ID string
-   */
-  private String generateId() {
-    return UUID.randomUUID().toString().toUpperCase() + "-GF";
-  }
-}

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/GemfireHttpSession.java
----------------------------------------------------------------------
diff --git a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireHttpSession.java b/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireHttpSession.java
deleted file mode 100644
index 695a03b..0000000
--- a/extensions/gemfire-modules-session/src/main/java/com/gemstone/gemfire/modules/session/internal/filter/GemfireHttpSession.java
+++ /dev/null
@@ -1,526 +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.DataSerializable;
-import com.gemstone.gemfire.DataSerializer;
-import com.gemstone.gemfire.Delta;
-import com.gemstone.gemfire.Instantiator;
-import com.gemstone.gemfire.InvalidDeltaException;
-import com.gemstone.gemfire.modules.session.internal.filter.attributes.AbstractSessionAttributes;
-import com.gemstone.gemfire.modules.session.internal.filter.attributes.SessionAttributes;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.concurrent.atomic.AtomicBoolean;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionContext;
-
-import com.gemstone.gemfire.modules.util.ClassLoaderObjectInputStream;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Class which implements a Gemfire persisted {@code HttpSession}
- */
-public class GemfireHttpSession implements
-    HttpSession, DataSerializable, Delta {
-
-  private static transient final Logger LOG =
-      LoggerFactory.getLogger(GemfireHttpSession.class.getName());
-
-  /**
-   * Serial id
-   */
-  private static final long serialVersionUID = 238915238964017823L;
-
-  /**
-   * Id for the session
-   */
-  private String id;
-
-  /**
-   * Attributes really hold the essence of persistence.
-   */
-  private SessionAttributes attributes;
-
-  private transient SessionManager manager;
-
-  private HttpSession nativeSession = null;
-
-  /**
-   * A session becomes invalid if it is explicitly invalidated or if it
-   * expires.
-   */
-  private boolean isValid = true;
-
-  private boolean isNew = true;
-
-  private boolean isDirty = false;
-
-  /**
-   * This is set during serialization and then reset by the SessionManager when
-   * it is retrieved from the attributes.
-   */
-  private AtomicBoolean serialized = new AtomicBoolean(false);
-
-  /**
-   * Register ourselves for de-serialization
-   */
-  static {
-    Instantiator.register(new Instantiator(GemfireHttpSession.class, 27315) {
-      @Override
-      public DataSerializable newInstance() {
-        return new GemfireHttpSession();
-      }
-    });
-  }
-
-  /**
-   * Constructor used for de-serialization
-   */
-  private GemfireHttpSession() {
-  }
-
-  /**
-   * Constructor
-   */
-  public GemfireHttpSession(String id, HttpSession nativeSession) {
-    this();
-    this.id = id;
-    this.nativeSession = nativeSession;
-    if (nativeSession != null) {
-      attributes.setMaxInactiveInterval(nativeSession.getMaxInactiveInterval());
-    }
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Object getAttribute(String name) {
-    if (!isValid) {
-      throw new IllegalStateException("Session is already invalidated");
-    }
-    Object obj = attributes.getAttribute(name);
-
-    if (obj != null) {
-      Object tmpObj = null;
-      ClassLoader loader = ((GemfireSessionManager) manager).getReferenceClassLoader();
-
-      if (obj.getClass().getClassLoader() != loader) {
-        LOG.debug(
-            "Attribute '{}' needs to be reconstructed with a new classloader",
-            name);
-
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        try {
-          ObjectOutputStream oos = new ObjectOutputStream(baos);
-          oos.writeObject(obj);
-          oos.close();
-
-          ObjectInputStream ois = new ClassLoaderObjectInputStream(
-              new ByteArrayInputStream(baos.toByteArray()),
-              loader);
-          tmpObj = ois.readObject();
-        } catch (IOException e) {
-          LOG.error("Exception while recreating attribute '" + name +
-              "'", e);
-        } catch (ClassNotFoundException e) {
-          LOG.error("Exception while recreating attribute '" + name +
-              "'", e);
-        }
-        if (tmpObj != null) {
-          setAttribute(name, tmpObj);
-          obj = tmpObj;
-        }
-      }
-    }
-
-    return obj;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Enumeration getAttributeNames() {
-    if (!isValid) {
-      throw new IllegalStateException("Session is already invalidated");
-    }
-    return Collections.enumeration(attributes.getAttributeNames());
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public long getCreationTime() {
-    if (nativeSession != null) {
-      return nativeSession.getCreationTime();
-    } else {
-      return 0;
-    }
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public String getId() {
-    return id;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public long getLastAccessedTime() {
-    if (!isValid) {
-      throw new IllegalStateException("Session is already invalidated");
-    }
-    return attributes.getLastAccessedTime();
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public ServletContext getServletContext() {
-    if (nativeSession != null) {
-      return nativeSession.getServletContext();
-    } else {
-      return null;
-    }
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public HttpSessionContext getSessionContext() {
-    return null;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public Object getValue(String name) {
-    return getAttribute(name);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public String[] getValueNames() {
-    return attributes.getAttributeNames().toArray(new String[0]);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void invalidate() {
-    nativeSession.invalidate();
-    manager.destroySession(id);
-    isValid = false;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public boolean isNew() {
-    if (!isValid) {
-      throw new IllegalStateException("Session is already invalidated");
-    }
-    return isNew;
-  }
-
-  public void setIsNew(boolean isNew) {
-    this.isNew = isNew;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void setMaxInactiveInterval(int interval) {
-    if (nativeSession != null) {
-      nativeSession.setMaxInactiveInterval(interval);
-    }
-    attributes.setMaxInactiveInterval(interval);
-    isDirty = true;
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public int getMaxInactiveInterval() {
-    if (nativeSession != null) {
-      return nativeSession.getMaxInactiveInterval();
-    } else {
-      return attributes.getMaxIntactiveInterval();
-    }
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void putValue(String name, Object value) {
-    setAttribute(name, value);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void removeAttribute(final String name) {
-    LOG.debug("Session {} removing attribute {}", getId(), name);
-    nativeSession.removeAttribute(name);
-    attributes.removeAttribute(name);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void removeValue(String name) {
-    removeAttribute(name);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override
-  public void setAttribute(final String name, final Object value) {
-
-    if (LOG.isDebugEnabled()) {
-      LOG.debug("Session {} setting attribute {} = '{}'",
-          new Object[]{id, name, value});
-    }
-
-    isDirty = true;
-    nativeSession.setAttribute(name, value);
-    if (value == null) {
-      removeAttribute(name);
-    } else {
-      attributes.putAttribute(name, value);
-    }
-  }
-
-  /**
-   * Gemfire serialization {@inheritDoc}
-   */
-  @Override
-  public void toData(DataOutput out) throws IOException {
-    DataSerializer.writeString(id, out);
-    DataSerializer.writeObject(attributes, out);
-  }
-
-  /**
-   * Gemfire de-serialization {@inheritDoc}
-   */
-  @Override
-  public void fromData(DataInput in) throws IOException,
-      ClassNotFoundException {
-    id = DataSerializer.readString(in);
-    attributes = DataSerializer.readObject(in);
-    if (getNativeSession() != null) {
-      for (String s : attributes.getAttributeNames()) {
-        getNativeSession().setAttribute(s, attributes.getAttribute(s));
-      }
-    }
-
-    // Explicit sets
-    serialized.set(true);
-    attributes.setSession(this);
-  }
-
-  /**
-   * These three methods handle delta propagation and are deferred to the
-   * attribute object.
-   */
-  @Override
-  public boolean hasDelta() {
-    return isDirty;
-  }
-
-  @Override
-  public void toDelta(DataOutput out) throws IOException {
-    if (attributes instanceof Delta) {
-      ((Delta) attributes).toDelta(out);
-    } else {
-      toData(out);
-    }
-  }
-
-  @Override
-  public void fromDelta(DataInput in) throws IOException,
-      InvalidDeltaException {
-    if (attributes instanceof Delta) {
-      ((Delta) attributes).fromDelta(in);
-    } else {
-      try {
-        fromData(in);
-      } catch (ClassNotFoundException cex) {
-        throw new IOException("Unable to forward fromDelta() call "
-            + "to fromData()", cex);
-      }
-    }
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder builder = new StringBuilder();
-    builder.append("[id=").append(id)
-        .append(", isNew=").append(isNew)
-        .append(", isValid=").append(isValid)
-        .append(", hasDelta=").append(hasDelta())
-        .append(", lastAccessedTime=").append(attributes.getLastAccessedTime())
-        .append(", jvmOwnerId=").append(attributes.getJvmOwnerId());
-    builder.append("]");
-    return builder.toString();
-  }
-
-  /**
-   * Flush the session object to the region
-   */
-  public void putInRegion() {
-
-    manager.putSession(this);
-    isDirty = false;
-  }
-
-  /**
-   * Determine whether the session is still valid or whether it has expired.
-   *
-   * @return true or false
-   */
-  public boolean isValid() {
-    if (!isValid) {
-      return false;
-    }
-    if (getMaxInactiveInterval() >= 0) {
-      long now = System.currentTimeMillis();
-      if (now - attributes.getLastAccessedTime() >= getMaxInactiveInterval() * 1000) {
-        return false;
-      }
-    }
-    return true;
-  }
-
-  /**
-   * Is this session dirty and should it be written to cache
-   */
-  public boolean isDirty() {
-    return isDirty;
-  }
-
-  public void setManager(SessionManager manager) {
-    this.manager = manager;
-  }
-
-  /**
-   * For testing allow retrieval of the wrapped, native session.
-   */
-  public HttpSession getNativeSession() {
-    return nativeSession;
-  }
-
-
-  public void setNativeSession(HttpSession session) {
-    this.nativeSession = session;
-  }
-
-  /**
-   * Handle the process of failing over the session to a new native session
-   * object.
-   *
-   * @param session
-   */
-  public void failoverSession(HttpSession session) {
-    LOG.debug("Failing over session {} to {}", getId(), session.getId());
-    setNativeSession(session);
-    for (String name : attributes.getAttributeNames()) {
-      LOG.debug("Copying '{}' => {}", name, attributes.getAttribute(name));
-      session.setAttribute(name, attributes.getAttribute(name));
-    }
-    session.setMaxInactiveInterval(attributes.getMaxIntactiveInterval());
-    manager.putSession(this);
-  }
-
-
-  /**
-   * Update the last accessed time
-   */
-  public void updateAccessTime() {
-    attributes.setLastAccessedTime(System.currentTimeMillis());
-  }
-
-  /**
-   * The {@code SessionManager} injects this when creating a new session.
-   *
-   * @param attributes
-   */
-  public void setAttributes(AbstractSessionAttributes attributes) {
-    this.attributes = attributes;
-  }
-
-  /**
-   * This is called on deserialization. You can only call it once to get a
-   * meaningful value as it resets the serialized state. In other words, this
-   * call is not idempotent.
-   *
-   * @return whether this object has just been serialized
-   */
-  public boolean justSerialized() {
-    return serialized.getAndSet(false);
-  }
-
-  /**
-   * Called when the session is about to go out of scope. If the session has
-   * been defined to use async queued attributes then they will be written out
-   * at this point.
-   */
-  public void commit() {
-    attributes.setJvmOwnerId(manager.getJvmId());
-    attributes.flush();
-  }
-
-  public String getJvmOwnerId() {
-    if (attributes != null) {
-      return attributes.getJvmOwnerId();
-    }
-
-    return null;
-  }
-}
-



[46/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
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";
-  }
-
-}


[39/51] [partial] incubator-geode git commit: GEODE-917: rename gemfire subprojects to geode

Posted by ab...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/session/bin/cacheserver.bat
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/session/bin/cacheserver.bat b/extensions/geode-modules-assembly/release/session/bin/cacheserver.bat
new file mode 100755
index 0000000..2935cde
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/session/bin/cacheserver.bat
@@ -0,0 +1,56 @@
+@echo off
+rem
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem      http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+rem
+
+setlocal enableextensions
+set scriptdir=%~dp0
+set gf=%scriptdir:\bin\=%
+
+set GEMFIRE_JARS=%gf%\lib\gemfire.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\antlr.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\spring-core-3.1.1.RELEASE.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\spring-shell-1.0.0.RC1.jar
+if exist "%GEMFIRE_JARS%" goto gfok
+echo Could not determine GEMFIRE location
+verify other 2>nul
+goto done
+:gfok
+
+REM Initialize classpath
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\geode-modules-@GEMFIRE_MODULES_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\geode-modules-session-@GEMFIRE_MODULES_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\geode-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\servlet-api-@SERVLET_API_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\slf4j-api-@SLF4J_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\slf4j-jdk14-@SLF4J_VERSION@.jar
+
+REM Add conf directory
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\conf
+
+if defined CLASSPATH set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
+
+if not defined GF_JAVA (
+REM %GF_JAVA% is not defined, assume it is on the PATH
+set GF_JAVA=java
+)
+
+"%GF_JAVA%" %JAVA_ARGS% -classpath "%GEMFIRE_JARS%" com.gemstone.gemfire.internal.cache.CacheServerLauncher %*
+:done
+set scriptdir=
+set gf=
+set GEMFIRE_JARS=
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/session/bin/cacheserver.sh
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/session/bin/cacheserver.sh b/extensions/geode-modules-assembly/release/session/bin/cacheserver.sh
new file mode 100755
index 0000000..2c12b57
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/session/bin/cacheserver.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+# 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.
+#
+
+# Set GEMFIRE to the product toplevel directory
+GEMFIRE=`dirname $0`
+OLDPWD=$PWD
+cd $GEMFIRE
+GEMFIRE=`dirname $PWD`
+cd $OLDPWD
+
+if [ "x$WINDIR" != "x" ]; then
+  echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
+  exit 1
+fi
+
+GEMFIRE_JARS=$GEMFIRE/lib/gemfire.jar
+
+if [ ! -f "${GEMFIRE_JARS}" ]; then
+  echo "ERROR: Could not determine GEMFIRE location."
+  exit 1
+fi
+
+LOG4J_API=$( ls $GEMFIRE/lib/log4j-api*jar )
+LOG4J_CORE=$( ls $GEMFIRE/lib/log4j-core*jar )
+
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/antlr.jar:$LOG4J_API:$LOG4J_CORE
+
+# Initialize classpath
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/geode-modules-@GEMFIRE_MODULES_VERSION@.jar \
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/geode-modules-session-@GEMFIRE_MODULES_VERSION@.jar \
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/servlet-api-@SERVLET_API_VERSION@.jar \
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/geode-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar \
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/slf4j-api-@SLF4J_VERSION@.jar \
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/slf4j-jdk14-@SLF4J_VERSION@.jar
+
+# Add configuration
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/conf
+
+if [ "x$CLASSPATH" != "x" ]; then
+  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
+fi
+
+${GF_JAVA:-java} ${JAVA_ARGS} -classpath ${GEMFIRE_JARS} com.gemstone.gemfire.internal.cache.CacheServerLauncher "$@"

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/session/bin/gemfire.bat
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/session/bin/gemfire.bat b/extensions/geode-modules-assembly/release/session/bin/gemfire.bat
new file mode 100755
index 0000000..a66964c
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/session/bin/gemfire.bat
@@ -0,0 +1,53 @@
+@echo off
+rem
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem      http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+rem
+
+setlocal enableextensions
+set scriptdir=%~dp0
+set gf=%scriptdir:\bin\=%
+
+set GEMFIRE_JARS=%gf%\lib\gemfire.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\antlr.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\spring-core-3.1.1.RELEASE.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\spring-shell-1.0.0.RC1.jar
+if exist "%GEMFIRE_JARS%" goto gfok
+echo Could not determine GEMFIRE location
+verify other 2>nul
+goto done
+:gfok
+
+REM Initialize classpath
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\geode-modules-@GEMFIRE_MODULES_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\geode-modules-session-@GEMFIRE_MODULES_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\geode-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\servlet-api-@SERVLET_API_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\slf4j-api-@SLF4J_VERSION@.jar
+set GEMFIRE_JARS=%GEMFIRE_JARS%;%gf%\lib\slf4j-jdk14-@SLF4J_VERSION@.jar
+
+if defined CLASSPATH set GEMFIRE_JARS=%GEMFIRE_JARS%;%CLASSPATH%
+
+if not defined GF_JAVA (
+REM %GF_JAVA% is not defined, assume it is on the PATH
+set GF_JAVA=java
+)
+
+"%GF_JAVA%" %JAVA_ARGS% -classpath "%GEMFIRE_JARS%" com.gemstone.gemfire.internal.SystemAdmin %*
+:done
+set scriptdir=
+set gf=
+set GEMFIRE_JARS=
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/session/bin/gemfire.sh
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/session/bin/gemfire.sh b/extensions/geode-modules-assembly/release/session/bin/gemfire.sh
new file mode 100755
index 0000000..ac11a4d
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/session/bin/gemfire.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+# 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.
+#
+
+# Set GEMFIRE to the product toplevel directory
+GEMFIRE=`dirname $0`
+OLDPWD=$PWD
+cd $GEMFIRE
+GEMFIRE=`dirname $PWD`
+cd $OLDPWD
+
+if [ "x$WINDIR" != "x" ]; then
+  echo "ERROR: The variable WINDIR is set indicating this script is running in a Windows OS, please use the .bat file version instead."
+  exit 1
+fi
+
+GEMFIRE_JARS=$GEMFIRE/lib/gemfire.jar
+if [ ! -f "${GEMFIRE_JARS}" ]; then
+  echo "ERROR: Could not determine GEMFIRE location."
+  exit 1
+fi
+
+LOG4J_API=$( ls $GEMFIRE/lib/log4j-api*jar )
+LOG4J_CORE=$( ls $GEMFIRE/lib/log4j-core*jar )
+
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/antlr.jar:$LOG4J_API:$LOG4J_CORE
+
+# Initialize classpath
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/geode-modules-@GEMFIRE_MODULES_VERSION@.jar
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/geode-modules-session-@GEMFIRE_MODULES_VERSION@.jar
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/geode-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/servlet-api-@SERVLET_API_VERSION@.jar
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/slf4j-api-@SLF4J_VERSION@.jar
+GEMFIRE_JARS=$GEMFIRE_JARS:$GEMFIRE/lib/slf4j-jdk14-@SLF4J_VERSION@.jar
+
+if [ "x$CLASSPATH" != "x" ]; then
+  GEMFIRE_JARS=$GEMFIRE_JARS:$CLASSPATH
+fi
+
+# Command line args that start with -J will be passed to the java vm in JARGS.
+# See java --help for a listing of valid vm args.
+# Example: -J-Xmx1g sets the max heap size to 1 gigabyte.
+
+JARGS=
+GEMFIRE_ARGS=
+for i in "$@"
+do
+  if [ "-J" == "${i:0:2}" ]
+  then
+    JARGS="${JARGS} \"${i#-J}\""
+  else
+    GEMFIRE_ARGS="${GEMFIRE_ARGS} \"${i}\""
+  fi
+done
+
+eval ${GF_JAVA:-java} ${JAVA_ARGS} ${JARGS} -classpath ${GEMFIRE_JARS} com.gemstone.gemfire.internal.SystemAdmin ${GEMFIRE_ARGS}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/session/bin/modify_war
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/session/bin/modify_war b/extensions/geode-modules-assembly/release/session/bin/modify_war
new file mode 100755
index 0000000..9c87104
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/session/bin/modify_war
@@ -0,0 +1,392 @@
+#!/usr/bin/env bash
+# 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.
+#
+
+X=`dirname $0`
+EXE_DIR=`cd $X; pwd`
+LIB_DIR=`cd ${X}/../lib; pwd`
+
+SESSION_JAR="${LIB_DIR}/geode-modules-session-external-@GEMFIRE_MODULES_VERSION@.jar"
+
+declare -a OTHER_JARS
+OTHER_JARS=(${LIB_DIR}/gemfire.jar \
+    ${LIB_DIR}/antlr.jar
+    ${LIB_DIR}/geode-modules-@GEMFIRE_MODULES_VERSION@.jar \
+    ${LIB_DIR}/geode-modules-session-@GEMFIRE_MODULES_VERSION@.jar \
+    ${LIB_DIR}/slf4j-api-@SLF4J_VERSION@.jar)
+
+# This is required for GemFire 8.1
+LOG4J_API=$(ls ${LIB_DIR}/log4j-api*jar)
+LOG4J_CORE=$(ls ${LIB_DIR}/log4j-core*jar)
+if [ -f ${LOG4J_API} -a -f ${LOG4J_CORE} ]; then
+    OTHER_JARS[${#OTHER_JARS[*]}]=$LOG4J_API
+    OTHER_JARS[${#OTHER_JARS[*]}]=$LOG4J_CORE
+fi
+
+TMP_DIR="/tmp/modify_war.$$"
+
+ARG_INPUT_FILE=""
+ARG_WAR_LIB_DIR="WEB-INF/lib"
+ARG_EAR_LIB_DIR="lib"
+ARG_OUTPUT_FILE=""
+ARG_TEST_RUN=0
+ARG_CACHE_TYPE="peer-to-peer"
+ARG_PROCESS_LIBS=1
+declare -a ARG_GEMFIRE_PARAMETERS=""
+declare -a ARG_WAR_LIBS="$SESSION_JAR"
+declare -a ARG_EAR_LIBS=""
+declare -a ARG_JVM_OPTS=""
+
+function usage() {
+    cat <<EOF
+USAGE: modify_war <args>
+WHERE <args>:
+
+    -e <jar>
+                    Assumes the input file is an .ear file and will add the
+                    given jar as a shared, application library. The file will
+                    be added in a /lib directory (by default) and any embedded
+                    .war files will have a corresponding Class-Path entry added
+                    to their MANIFEST.MF file. The option can be given multiple times.
+
+    -h
+                    Displays this help message.
+
+    -j <jar>
+                    Additional library to add to the input file. Can be given
+                    multiple times.
+
+    -J <jvm opt>
+                    JVM argument to pass to sub-commands. Typically this might
+                    be to define proxy values. For example -J"-Dhttp.proxyHost=my-proxy"
+
+    -l <lib>
+                    Library directory where new jars will be placed inside war.
+                    Defaults to WEB-INF/lib.
+
+    -m <lib>
+                    Library directory where new jars will be placed inside ear.
+                    Defaults to /lib.
+
+    -o <file>
+                    The output file.
+
+    -p <param=value>
+                    Specific parameter for inclusion into the session filter
+                    definition as a regular init-param. Can be given multiple times.
+
+    -r
+                    Test run which only outputs an updated web.xml file.
+
+    -t <cache-type>
+                    Type of cache. Must be one of 'peer-to-peer' or
+                    'client-server'. Default is peer-to-peer.
+
+    -v              
+                    Verbose output
+ 
+    -w <war/ear file>
+                    The input file - either a WAR or EAR. The following actions
+                    will be performed depending on the type of file:
+                    WARs will have a <filter> element added to the web.xml and
+                    will have the appropriate jars copied to WEB-INF/lib.
+                    If the file is an EAR, then the appropriate jars will be
+                    copied to lib, within the ear and each embedded war files'
+                    manifest will have a Class-Path entry added (if one does
+                    not already exist).
+                    An appropriate slf4j binding jar must be included for ears
+                    or wars using -e or -j respectively. The following jars are
+                    provided:
+                        slf4j-jdk14
+                        slf4j-log4j12
+                        geode-modules-slf4j-weblogic
+
+    -x
+                    Do not create a self-contained war/ear file by copying all
+                    necessary jars into the file. When this option is used,
+                    additional jars will need to be made available to the
+                    container:
+                        gemfire.jar
+                        geode-modules.jar
+                        geode-modules-session.jar
+                        slf4j-api.jar
+                        slf4j-jdk14.jar (not for WebLogic)
+                        geode-modules-slf4j-weblogic.jar (WebLogic only)
+                    This option still modifes any web.xml files.
+                        
+EOF
+}
+
+
+# Two logging levels - 'I'nfo and 'D'ebug
+function log() {
+    local MSG=$1
+    local LVL=${2:-I}
+
+    if [ "$LVL" == "D" ]; then
+        if [ -n "$DEBUG" ]; then
+            echo "$(date '+%Y-%m-%d %H:%M:%S')  $LVL  $MSG" >&2
+        fi
+    else
+        echo "$(date '+%Y-%m-%d %H:%M:%S')  $LVL  $MSG" >&2
+    fi
+}
+
+
+function exiting() {
+    local MSG=$1
+    local CODE=${2:-0}
+
+    if [ -n "$MSG" ]; then
+        echo "ERROR: $MSG"
+    fi
+
+    rm -rf $TMP_DIR
+    exit $CODE
+}
+
+
+function add_war_jars() {
+    local WAR_LIB_DIR=$1/$ARG_WAR_LIB_DIR/
+    mkdir -p $WAR_LIB_DIR
+
+    log "Copying jar(s) into war's '$ARG_WAR_LIB_DIR' directory" D
+    for J in ${ARG_WAR_LIBS[*]}; do
+        log "    $J" D
+        cp $J $WAR_LIB_DIR || exiting "Unable to copy $J to temp location $WAR_LIB_DIR" 1
+    done
+}
+
+
+function process_manifest() {
+    local MANIFEST=$1
+    local TMP_MANIFEST
+
+    log "Processing manifest $MANIFEST" D
+
+    CP_LIBS=""
+    for J in ${OTHER_JARS[*]} ${ARG_EAR_LIBS[*]}; do
+        CP_LIBS="$CP_LIBS $ARG_EAR_LIB_DIR/$(basename $J)"
+    done
+
+    TMP_MANIFEST="$TMP_DIR/manifest.mf.$$"
+    cp $MANIFEST $TMP_MANIFEST
+
+    awk -v CP_LIBS="$CP_LIBS" '
+        BEGIN {
+            cp = 0
+            split(CP_LIBS, cp_array)
+        }
+        /^Class-Path/ {print $0 CP_LIBS; cp = 1; getline}
+        /^ *\r?$/ {
+            if (cp == 0) {
+                print "Class-Path:" CP_LIBS
+                cp = 1
+            }
+        }
+        {print $0}
+        END { if (cp == 0) print "Class-Path:" CP_LIBS }
+    ' $TMP_MANIFEST > $MANIFEST
+
+    rm $TMP_MANIFEST
+}
+
+
+function process_web_xml() {
+    local WORK_DIR=$1
+    local ARG_P=""
+    local JVM_OPTS=""
+
+    for i in ${ARG_GEMFIRE_PARAMETERS[*]}; do
+        ARG_P="$ARG_P -p $i"
+    done
+
+    for j in ${ARG_JVM_OPTS[*]}; do
+        JVM_OPTS="$JVM_OPTS $j"
+    done
+    
+    WEB_XML=$(find $WORK_DIR -name web.xml)
+    TMP_WEB_XML="${WORK_DIR}/web.xml.$$"
+    JAVA_CMD="java $JVM_OPTS -jar $SESSION_JAR $ARG_P -t $ARG_CACHE_TYPE -w $WEB_XML"
+    log "Executing java cmd: $JAVA_CMD" D
+
+    if [ $ARG_TEST_RUN -eq 0 ]; then
+        eval $JAVA_CMD > $TMP_WEB_XML || exiting "Error updating web.xml" 1
+        cp $TMP_WEB_XML $WEB_XML
+        rm -f $TMP_WEB_XML
+    else
+        eval $JAVA_CMD || exiting "Error updating web.xml" 1
+    fi
+}
+
+
+function process_input_file() {
+    local WORK_DIR=$1
+
+    if [[ "$ARG_INPUT_FILE" =~ \.war$ ]]; then
+        process_web_xml $WORK_DIR
+        add_war_jars $WORK_DIR
+        return
+    fi
+ 
+    WAR_LIST=$( find $WORK_DIR -name '*.war' )
+    for WAR in $WAR_LIST; do
+        log "Processing embedded war file $WAR" D
+        TMP_WAR_DIR="${WAR}.$$"
+
+        log "Unzipping war to $TMP_WAR_DIR" D
+        unzip -q -o -d $TMP_WAR_DIR $WAR
+
+        process_web_xml $TMP_WAR_DIR
+        if [ $ARG_TEST_RUN -eq 0 ]; then
+            add_war_jars $TMP_WAR_DIR
+
+            MANIFEST=$( find $TMP_WAR_DIR -name MANIFEST.MF )
+
+            if [ $ARG_PROCESS_LIBS -eq 1 -a -n "$MANIFEST" ]; then
+                process_manifest $MANIFEST
+            fi
+
+            log "Creating new war $WAR" D
+            if [ -n "$MANIFEST" ]; then
+                jar cmf $MANIFEST $WAR -C $TMP_WAR_DIR .
+            else
+                jar cf $WAR -C $TMP_WAR_DIR .
+            fi
+        fi
+
+        rm -rf $TMP_WAR_DIR
+    done
+}
+
+trap exiting INT QUIT TERM
+
+mkdir $TMP_DIR
+
+CMD_ARGS="-j $SESSION_JAR"
+
+while getopts "e:hj:J:l:m:o:p:rt:vw:x" OPT; do
+    case $OPT in
+        e)
+            if [ ! -f $OPTARG ]; then
+                exiting "Cannot read file '$OPTARG' given with option -e" 1
+            fi
+            ARG_EAR_LIBS[${#ARG_EAR_LIBS[@]}]=$OPTARG
+            ;;
+        h)
+            usage
+            exiting "" 1
+            ;;
+        j)
+            if [ ! -f $OPTARG ]; then
+                exiting "Cannot read file '$OPTARG' given with option -j" 1
+            fi
+            ARG_WAR_LIBS[${#ARG_WAR_LIBS[@]}]=$OPTARG
+            ;;
+        J)
+            ARG_JVM_OPTS[${#ARG_JVM_OPTS[@]}]=$OPTARG
+            ;;
+        l)
+            ARG_WAR_LIB_DIR=$OPTARG
+            ;;
+        m)
+            ARG_EAR_LIB_DIR=$OPTARG
+            ;;
+        o)
+            ARG_OUTPUT_FILE=$OPTARG
+            ;;
+        p)
+            ARG_GEMFIRE_PARAMETERS[${#ARG_GEMFIRE_PARAMETERS[@]}]=$OPTARG
+            ;;
+        r)
+            ARG_TEST_RUN=1
+            ;;
+        t)
+            case $OPTARG in
+                peer-to-peer|client-server)
+                    ARG_CACHE_TYPE=$OPTARG
+                    ;;
+                *)
+                    exiting "Invalid cache type '$OPTARG' given with option -t. Options are 'peer-to-peer' or 'client-server'." 1
+                    ;;
+            esac
+            ;;
+        v)
+            DEBUG=1
+            ;;
+        w)
+            if [ ! -f $OPTARG ]; then
+                exiting "Cannot read file '$OPTARG' given with option -w" 1
+            fi
+            ARG_INPUT_FILE=$OPTARG
+            ;;
+        x)
+            ARG_PROCESS_LIBS=0
+            ;;
+        [?])
+            echo "Unknown option '$OPTARG'"
+            echo
+            usage
+            exit 1
+            ;;
+        :)
+            echo "Option '$OPTARG' requires an argument"
+            echo
+            usage
+            exit 1
+            ;;
+    esac
+done
+
+# Some validation
+if [ -z "$ARG_INPUT_FILE" ]; then
+    exiting "Please supply an input file with the -w option" 1
+fi
+
+if [ -z "$ARG_OUTPUT_FILE" ]; then
+    ARG_OUTPUT_FILE="sessions-$(basename $ARG_INPUT_FILE)"
+fi
+
+if [[ "$ARG_INPUT_FILE" =~ \.war$ && -n "${ARG_EAR_LIBS[*]}" ]]; then
+    log "Input file appears to be a war but -e also specified. EAR processing will be skipped." W
+fi
+
+if [[ "$ARG_INPUT_FILE" =~ \.war$ && $ARG_PROCESS_LIBS -eq 1 ]]; then
+    for J in ${OTHER_JARS[*]}; do
+        ARG_WAR_LIBS[${#ARG_WAR_LIBS[@]}]=$J
+    done
+fi
+
+unzip -q -o -d $TMP_DIR $ARG_INPUT_FILE
+process_input_file $TMP_DIR
+
+if [[ $ARG_TEST_RUN -eq 0 && $ARG_PROCESS_LIBS -eq 1 && "$ARG_INPUT_FILE" =~ \.ear$ ]]; then
+    log "Copying additional jars into ear's '$ARG_EAR_LIB_DIR' directory" D
+    mkdir -p $TMP_DIR/$ARG_EAR_LIB_DIR
+    for i in ${OTHER_JARS[*]} ${ARG_EAR_LIBS[*]}; do
+        log "    $i" D
+        cp $i $TMP_DIR/$ARG_EAR_LIB_DIR/ || exiting "Unable to copy $i to $TMP_DIR/$ARG_EAR_LIB_DIR" 1
+    done
+fi
+
+if [ $ARG_TEST_RUN -eq 0 ]; then
+    mkdir -p $TMP_DIR/META-INF
+    touch $TMP_DIR/META-INF/MANIFEST.MF
+    jar cmf $TMP_DIR/META-INF/MANIFEST.MF $ARG_OUTPUT_FILE -C $TMP_DIR .
+    log "Created file: $ARG_OUTPUT_FILE" I
+fi
+
+exiting

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/session/bin/setenv.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/session/bin/setenv.properties b/extensions/geode-modules-assembly/release/session/bin/setenv.properties
new file mode 100644
index 0000000..fc8918b
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/session/bin/setenv.properties
@@ -0,0 +1,6 @@
+java.opt.1=-Xms${initial.vm.heap.size.mb:512}M
+java.opt.2=-Xmx${maximum.vm.heap.size.mb:512}M
+java.opt.hotspot.1=-XX:+UseParNewGC
+java.opt.hotspot.2=-XX:+UseConcMarkSweepGC
+java.opt.hotspot.3=-XX:CMSInitiatingOccupancyFraction=${cms.initiating.heap.percentage:50}
+java.opt.j9.1=-Xgcpolicy:gencon
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/context-fragment.xml b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/context-fragment.xml
new file mode 100644
index 0000000..72faee2
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/context-fragment.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context>
+
+    <remove:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"/>
+
+    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager"
+      enableDebugListener="${enable.debug.listener:false}"
+      enableGatewayReplication="${enable.gateway.replication:false}"
+      enableLocalCache="${enable.local.cache:true}"
+      enableCommitValve="${enable.commit.valve:true}"
+      preferDeserializedForm="${prefer.deserialized.form:true}"
+      regionAttributesId="${region.attributes.id:PARTITION_REDUNDANT}"
+      regionName="${region.name:gemfire_modules_sessions}"/>
+
+</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/modules.env
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/modules.env b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/modules.env
new file mode 100644
index 0000000..1c14a6c
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-7/modules.env
@@ -0,0 +1 @@
+TOMCAT_MAJOR_VER=7

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/context-fragment.xml b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/context-fragment.xml
new file mode 100644
index 0000000..72faee2
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/context-fragment.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context>
+
+    <remove:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"/>
+
+    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager"
+      enableDebugListener="${enable.debug.listener:false}"
+      enableGatewayReplication="${enable.gateway.replication:false}"
+      enableLocalCache="${enable.local.cache:true}"
+      enableCommitValve="${enable.commit.valve:true}"
+      preferDeserializedForm="${prefer.deserialized.form:true}"
+      regionAttributesId="${region.attributes.id:PARTITION_REDUNDANT}"
+      regionName="${region.name:gemfire_modules_sessions}"/>
+
+</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/modules.env
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/modules.env b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/modules.env
new file mode 100644
index 0000000..d220675
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs-tomcat-8/modules.env
@@ -0,0 +1 @@
+TOMCAT_MAJOR_VER=8

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/configuration-prompts.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/configuration-prompts.properties b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/configuration-prompts.properties
new file mode 100644
index 0000000..0ebae97
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/configuration-prompts.properties
@@ -0,0 +1,17 @@
+cache.configuration.file=Please enter the name of the GemFire cache configuration file. Default '${default}':
+critical.heap.percentage=Please enter the percentage of heap at which updates to the cache are refused. 0.0 means disabled. Default '${default}':
+enable.debug.listener=Please specify whether to enable a GemFire listener that logs session create, update, destroy and expiration events. Default '${default}':
+enable.gateway.replication=Please specify whether session modifications should be replicated across the WAN. Default '${default}':
+enable.local.cache=Please specify whether to maintain a local GemFire cache. Default '${default}':
+enable.commit.valve=Please specify whether to commit sessions once per request. Default '${default}':
+prefer.deserialized.form=Please specify whether to prefer keeping attributes in deserialized form. Default '${default}':
+eviction.heap.percentage=Please enter the percentage of heap at which sessions will be evicted from the local cache. Default '${default}':
+log.file=Please enter the name of the file used to log GemFire messages. Default '${default}':
+region.attributes.id=Please enter the id of the attributes of the GemFire region used to cache sessions. Default '${default}':
+region.name=Please enter the name of the GemFire region used to cache sessions. Default '${default}':
+statistic.archive.file=Please enter the name of the file used to store GemFire statistics. Default '${default}':
+statistic.sampling.enabled=Please specify whether GemFire statistic sampling should be enabled. Default '${default}':
+initial.vm.heap.size.mb=Please specify the initial VM heap size in MB (-Xms). Default '${default}':
+maximum.vm.heap.size.mb=Please specify the maximum VM heap size in MB (-Xmx). Default '${default}':
+cms.initiating.heap.percentage=Please specify the percentage of VM heap utilization before a concurrent collection is initiated (--XX:CMSInitiatingOccupancyFraction [Hotspot-only]). Default '${default}':
+tomcat.version=Please enter the major version of Tomcat you will be using (6, 7 or 8). Default '${default}'

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/context-fragment.xml b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/context-fragment.xml
new file mode 100644
index 0000000..fac3044
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/context-fragment.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context>
+
+    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"
+      enableDebugListener="${enable.debug.listener:false}"
+      enableGatewayReplication="${enable.gateway.replication:false}"
+      enableLocalCache="${enable.local.cache:true}"
+      enableCommitValve="${enable.commit.valve:true}"
+      preferDeserializedForm="${prefer.deserialized.form:true}"
+      regionAttributesId="${region.attributes.id:PARTITION_REDUNDANT}"
+      regionName="${region.name:gemfire_modules_sessions}"/>
+
+</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/modules.env
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/modules.env b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/modules.env
new file mode 100644
index 0000000..9c4c00a
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/modules.env
@@ -0,0 +1 @@
+TOMCAT_MAJOR_VER=6

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/server-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/server-fragment.xml b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/server-fragment.xml
new file mode 100644
index 0000000..c4adc66
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-cs/server-fragment.xml
@@ -0,0 +1,12 @@
+<?xml version='1.0' encoding='utf-8'?>
+<Server>
+
+    <add:Listener className="com.gemstone.gemfire.modules.session.catalina.ClientServerCacheLifecycleListener"
+      cache-xml-file="${cache.configuration.file:cache-client.xml}"
+      criticalHeapPercentage="${critical.heap.percentage:0.0}"
+      evictionHeapPercentage="${eviction.heap.percentage:80.0}"
+      log-file="${log.file:gemfire_modules.log}"
+      statistic-archive-file="${statistic.archive.file:gemfire_modules.gfs}"
+      statistic-sampling-enabled="${statistic.sampling.enabled:false}"/>
+
+</Server>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/context-fragment.xml b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/context-fragment.xml
new file mode 100644
index 0000000..155aa2a
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/context-fragment.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context>
+
+    <remove:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"/>
+
+    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager"
+      enableDebugListener="${enable.debug.listener:false}"
+      enableGatewayReplication="${enable.gateway.replication:false}"
+      enableLocalCache="${enable.local.cache:false}"
+      enableCommitValve="${enable.commit.valve:true}"
+      preferDeserializedForm="${prefer.deserialized.form:true}"
+      regionAttributesId="${region.attributes.id:REPLICATE}"
+      regionName="${region.name:gemfire_modules_sessions}"/>
+
+</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/modules.env
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/modules.env b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/modules.env
new file mode 100644
index 0000000..1c14a6c
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-7/modules.env
@@ -0,0 +1 @@
+TOMCAT_MAJOR_VER=7

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/context-fragment.xml b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/context-fragment.xml
new file mode 100644
index 0000000..155aa2a
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/context-fragment.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context>
+
+    <remove:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"/>
+
+    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat7DeltaSessionManager"
+      enableDebugListener="${enable.debug.listener:false}"
+      enableGatewayReplication="${enable.gateway.replication:false}"
+      enableLocalCache="${enable.local.cache:false}"
+      enableCommitValve="${enable.commit.valve:true}"
+      preferDeserializedForm="${prefer.deserialized.form:true}"
+      regionAttributesId="${region.attributes.id:REPLICATE}"
+      regionName="${region.name:gemfire_modules_sessions}"/>
+
+</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/modules.env
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/modules.env b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/modules.env
new file mode 100644
index 0000000..d220675
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p-tomcat-8/modules.env
@@ -0,0 +1 @@
+TOMCAT_MAJOR_VER=8

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/configuration-prompts.properties
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/configuration-prompts.properties b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/configuration-prompts.properties
new file mode 100644
index 0000000..fdead44
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/configuration-prompts.properties
@@ -0,0 +1,19 @@
+cache.configuration.file=Please enter the name of the GemFire cache configuration file. Default '${default}':
+critical.heap.percentage=Please enter the percentage of heap at which updates to the cache are refused. 0.0 means disabled. Default '${default}':
+enable.debug.listener=Please specify whether to enable a GemFire listener that logs session create, update, destroy and expiration events. Default '${default}':
+enable.gateway.replication=Please specify whether session modifications should be replicated across the WAN. Default '${default}':
+enable.local.cache=Please specify whether to maintain a local GemFire cache. Default '${default}':
+enable.commit.valve=Please specify whether to commit sessions once per request. Default '${default}':
+prefer.deserialized.form=Please specify whether to prefer keeping attributes in deserialized form. Default '${default}':
+eviction.heap.percentage=Please enter the percentage of heap at which sessions will be evicted from the local cache. Default '${default}':
+locators=Please enter the list of locators used by GemFire members to discover each other. The format is a comma-separated list of host[port]. Default '${default}':
+log.file=Please enter the name of the file used to log GemFire messages. Default '${default}':
+rebalance=Please specify whether to rebalance the GemFire cache at startup. Default '${default}':
+region.attributes.id=Please enter the id of the attributes of the GemFire region used to cache sessions. Default '${default}':
+region.name=Please enter the name of the GemFire region used to cache sessions. Default '${default}':
+statistic.archive.file=Please enter the name of the file used to store GemFire statistics. Default '${default}':
+statistic.sampling.enabled=Please specify whether GemFire statistic sampling should be enabled. Default '${default}':
+initial.vm.heap.size.mb=Please specify the initial VM heap size in MB (-Xms). Default '${default}':
+maximum.vm.heap.size.mb=Please specify the maximum VM heap size in MB (-Xmx). Default '${default}':
+cms.initiating.heap.percentage=Please specify the percentage of VM heap utilization before a concurrent collection is initiated (--XX:CMSInitiatingOccupancyFraction [Hotspot-only]). Default '${default}':
+tomcat.version=Please enter the major version of Tomcat you will be using (6, 7 or 8). Default '${default}':

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/context-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/context-fragment.xml b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/context-fragment.xml
new file mode 100644
index 0000000..2b3d25c
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/context-fragment.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context>
+
+    <add:Manager className="com.gemstone.gemfire.modules.session.catalina.Tomcat6DeltaSessionManager"
+      enableDebugListener="${enable.debug.listener:false}"
+      enableGatewayReplication="${enable.gateway.replication:false}"
+      enableLocalCache="${enable.local.cache:false}"
+      enableCommitValve="${enable.commit.valve:true}"
+      preferDeserializedForm="${prefer.deserialized.form:true}"
+      regionAttributesId="${region.attributes.id:REPLICATE}"
+      regionName="${region.name:gemfire_modules_sessions}"/>
+
+</Context>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/modules.env
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/modules.env b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/modules.env
new file mode 100644
index 0000000..9c4c00a
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/modules.env
@@ -0,0 +1 @@
+TOMCAT_MAJOR_VER=6

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/server-fragment.xml
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/server-fragment.xml b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/server-fragment.xml
new file mode 100644
index 0000000..cf7dc0d
--- /dev/null
+++ b/extensions/geode-modules-assembly/release/tcserver/gemfire-p2p/server-fragment.xml
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='utf-8'?>
+<Server>
+
+    <add:Listener className="com.gemstone.gemfire.modules.session.catalina.PeerToPeerCacheLifecycleListener"
+      cache-xml-file="${cache.configuration.file:cache-peer.xml}"
+      criticalHeapPercentage="${critical.heap.percentage:0.0}"
+      evictionHeapPercentage="${eviction.heap.percentage:80.0}"
+      locators="${locators:localhost[10334]}"
+      log-file="${log.file:gemfire_modules.log}"
+      rebalance="${rebalance:false}"
+      statistic-archive-file="${statistic.archive.file:gemfire_modules.gfs}"
+      statistic-sampling-enabled="${statistic.sampling.enabled:false}"/>
+
+</Server>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/build.gradle b/extensions/geode-modules-hibernate/build.gradle
new file mode 100644
index 0000000..34a76eb
--- /dev/null
+++ b/extensions/geode-modules-hibernate/build.gradle
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+dependencies {
+  compile project(':extensions/geode-modules')
+  compile 'org.hibernate:hibernate-core:' + project.'hibernate.version'
+  compile 'org.hibernate:hibernate-annotations:' + project.'hibernate.version'
+  compile 'org.eclipse.persistence:javax.persistence:' + project.'javax.persistence-api.version'
+
+  runtime 'dom4j:dom4j:' + project.'dom4j.version'
+
+  testRuntime 'commons-collections:commons-collections:' + project.'commons-collections.version'
+  testRuntime 'org.hibernate:hibernate-commons-annotations:' + project.'hibernate-commons-annotations.version'
+  testRuntime 'org.slf4j:slf4j-jdk14:' + project.'slf4j-api.version'
+  testRuntime 'org.hsqldb:hsqldb:' + project.'hsqldb.version'
+  testRuntime 'org.javassist:javassist:' + project.'javassist.version'
+
+  testCompile project(path: ':geode-junit')
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/EnumType.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/EnumType.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/EnumType.java
new file mode 100644
index 0000000..55b824c
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/EnumType.java
@@ -0,0 +1,58 @@
+/*
+* 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.hibernate;
+
+import java.io.Serializable;
+
+import org.hibernate.HibernateException;
+
+/**
+ * Extends {@link org.hibernate.type.EnumType} so as to
+ * override methods responsible for cached representation
+ * of enums in hibernate.
+ * This class must be used in place of {@link org.hibernate.type.EnumType}
+ * in client-server topology when the application classes are
+ * not available on the server.
+ * e.g. a typical enum configuration should look like this:
+ * <pre>
+ * &lt;property name="myEnum"&gt;
+ *   &lt;type name="<b>com.gemstone.gemfire.modules.hibernate.EnumType</b>"&gt;
+ *     &lt;param name="enumClass"&gt;com.mycompany.MyEntity$MyEnum&lt;/param&gt;
+ *     &lt;param name="type"&gt;12&lt;/param&gt;
+ *   &lt;/type&gt;
+ * &lt;/property&gt;
+ * </pre>
+ * @author sbawaska
+ */
+public class EnumType extends org.hibernate.type.EnumType {
+
+  private static final long serialVersionUID = 3414902482639744676L;
+  
+  @Override
+  public Object assemble(Serializable cached, Object owner)
+      throws HibernateException {
+    String name = (String) cached;
+    Class<? extends Enum> clazz = returnedClass();
+    return Enum.valueOf(clazz, name);
+  }
+  
+  @Override
+  public Serializable disassemble(Object value) throws HibernateException {
+    return ((Enum)value).name();
+  }
+  
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCache.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCache.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCache.java
new file mode 100644
index 0000000..7548061
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCache.java
@@ -0,0 +1,238 @@
+/*
+* 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.hibernate;
+
+import java.util.Map;
+
+import org.hibernate.cache.Cache;
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.Timestamper;
+
+import com.gemstone.gemfire.cache.EntryNotFoundException;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.Scope;
+import com.gemstone.gemfire.distributed.DistributedLockService;
+import com.gemstone.gemfire.internal.cache.LocalRegion;
+
+public class GemFireCache implements Cache {
+  private Region region;
+
+  private boolean clientRegion = false;
+
+  private final DistributedLockService distributedLockService;
+
+  public GemFireCache(Region region, DistributedLockService lockService) {
+    this.region = region;
+    this.distributedLockService = lockService;
+    this.clientRegion = isClient(region);
+  }
+
+  private boolean isClient(Region region) {
+    return region.getAttributes().getPoolName() != null;
+  }
+
+  /**
+   * Clear the cache
+   */
+  public void clear() throws CacheException {
+    GemFireCacheProvider.getLogger().info("GemFireCache: clear called");
+    region.clear();
+  }
+
+  /**
+   * Clean up
+   */
+  public void destroy() throws CacheException {
+    GemFireCacheProvider.getLogger().info("GemFireCache: destroy called");
+    region.localDestroyRegion();
+  }
+
+  /**
+   * Get an item from the cache
+   * 
+   * @param key
+   * @return the cached object or <tt>null</tt>
+   * @throws CacheException
+   */
+  public Object get(Object key) throws CacheException {
+    GemFireCacheProvider.getLogger().debug(
+        "GemFireCache: get called for: " + key);
+    try {
+      Object value = region.get(key);
+      GemFireCacheProvider.getLogger().debug(
+          "GemFireCache: retrieved: " + key + "-->" + value);
+      return value;
+    }
+    catch (com.gemstone.gemfire.cache.CacheException e) {
+      throw new CacheException(e);
+    }
+  }
+
+  /**
+   * The count of entries currently contained in the regions in-memory store.
+   * 
+   * @return The count of entries in memory; -1 if unknown or unsupported.
+   */
+  public long getElementCountInMemory() {
+    return ((LocalRegion)region).entryCount();
+  }
+
+  /**
+   * The count of entries currently contained in the regions disk store.
+   * 
+   * @return The count of entries on disk; -1 if unknown or unsupported.
+   */
+  public long getElementCountOnDisk() {
+    return -1;
+  }
+
+  /**
+   * Get the name of the cache region
+   */
+  public String getRegionName() {
+    return region.getName();
+  }
+
+  /**
+   * The number of bytes is this cache region currently consuming in memory.
+   * 
+   * @return The number of bytes consumed by this region; -1 if unknown or
+   *         unsupported.
+   */
+  public long getSizeInMemory() {
+    return -1;
+  }
+
+  /**
+   * Return the lock timeout for this cache.
+   */
+  public int getTimeout() {
+    GemFireCacheProvider.getLogger().debug("GemFireCache: getTimeout");
+    return Timestamper.ONE_MS * 60000;
+  }
+
+  /**
+   * If this is a clustered cache, lock the item
+   */
+  public void lock(Object key) throws CacheException {
+    GemFireCacheProvider.getLogger().info(
+        "GemFireCache: lock called for: " + key);
+
+    if (!clientRegion) {
+      // If we're using GLOBAL scope, we don't have to worry about
+      // locking.
+      if (!Scope.GLOBAL.equals(region.getAttributes().getScope())) {
+        this.distributedLockService.lock(key, -1, -1);
+      }
+    }
+    else {
+      // We assume the server region is GLOBAL for now. Else, use command
+      // pattern to acquire lock on the server
+      GemFireCacheProvider.getLogger().info(
+          "GemFireCache: client region, ignoring lock : " + key);
+    }
+  }
+
+  /**
+   * Generate the next timestamp
+   */
+  public long nextTimestamp() {
+    GemFireCacheProvider.getLogger().debug("GemFireCache: nextTimestamp called");
+    // TODO : Need a counter, cache-wide
+    return Timestamper.next();
+  }
+
+  /**
+   * Add an item to the cache
+   * 
+   * @param key
+   * @param value
+   * @throws CacheException
+   */
+  public void put(Object key, Object value) throws CacheException {
+    GemFireCacheProvider.getLogger().debug(
+        "GemFireCache: put called for key: " + key + "value: " + value);
+    try {
+      region.put(key, value);
+      GemFireCacheProvider.getLogger().debug(
+          "GemFireCache: put " + key + "-->" + value);
+    }
+    catch (com.gemstone.gemfire.cache.CacheException e) {
+      throw new CacheException(e);
+    }
+  }
+
+  public Object read(Object key) throws CacheException {
+    GemFireCacheProvider.getLogger().info(
+        "GemFireCache: read called for: " + key);
+    return region.get(key);
+  }
+
+  /**
+   * Remove an item from the cache
+   */
+  public void remove(Object key) throws CacheException {
+    GemFireCacheProvider.getLogger().debug(
+        "GemFireCache: remove called for: " + key);
+    try {
+      region.destroy(key);
+      GemFireCacheProvider.getLogger().debug("GemFireCache: removed: " + key);
+    }
+    catch (EntryNotFoundException e) {
+      // We can silently ignore this
+    }
+    catch (com.gemstone.gemfire.cache.CacheException e) {
+      throw new CacheException(e);
+    }
+  }
+
+  public String toString() {
+    StringBuffer buffer = new StringBuffer();
+    buffer.append("Hibernate cache on GemFire region: ");
+    buffer.append(region);
+    return buffer.toString();
+  }
+
+  /**
+   * If this is a clustered cache, unlock the item
+   */
+  public void unlock(Object key) throws CacheException {
+    GemFireCacheProvider.getLogger().info(
+        "GemFireCache: unlock called for: " + key);
+
+    if (!clientRegion) {
+      // If we're using GLOBAL scope, we don't have to worry about locking.
+      if (!Scope.GLOBAL.equals(region.getAttributes().getScope())) {
+        this.distributedLockService.unlock(key);
+      }
+    }
+    else {
+      GemFireCacheProvider.getLogger().info(
+          "GemFireCache: client region, ignoring lock : " + key);
+    }
+  }
+
+  public void update(Object key, Object value) throws CacheException {
+    GemFireCacheProvider.getLogger().info(
+        "GemFireCache: update called for: " + key);
+    this.region.put(key, value);
+  }
+
+  public Map<?, ?> toMap() {
+    return null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheListener.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheListener.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheListener.java
new file mode 100644
index 0000000..e684c7d
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheListener.java
@@ -0,0 +1,54 @@
+/*
+* 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.hibernate;
+
+import java.util.Properties;
+
+import com.gemstone.gemfire.cache.Declarable;
+import com.gemstone.gemfire.cache.EntryEvent;
+import com.gemstone.gemfire.cache.util.CacheListenerAdapter;
+
+public class GemFireCacheListener extends CacheListenerAdapter implements
+    Declarable {
+
+  @Override
+  public void afterCreate(EntryEvent event) {
+    System.out.println("Create : " + event.getKey() + " / "
+        + event.getNewValue());
+  }
+
+  @Override
+  public void afterDestroy(EntryEvent event) {
+    System.out.println("Destroy : " + event.getKey());
+  }
+
+  @Override
+  public void afterInvalidate(EntryEvent event) {
+    System.out.println("Invalidate : " + event.getKey());
+  }
+
+  @Override
+  public void afterUpdate(EntryEvent event) {
+    System.out.println("Update : " + event.getKey() + " / "
+        + event.getNewValue());
+  }
+
+  public void init(Properties props) {
+
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheProvider.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheProvider.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheProvider.java
new file mode 100644
index 0000000..9cd6c88
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireCacheProvider.java
@@ -0,0 +1,200 @@
+/*
+* 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.hibernate;
+
+import com.gemstone.gemfire.cache.CacheFactory;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.execute.FunctionService;
+import com.gemstone.gemfire.distributed.DistributedLockService;
+import com.gemstone.gemfire.internal.logging.LogService;
+import com.gemstone.gemfire.modules.util.CreateRegionFunction;
+import com.gemstone.gemfire.modules.util.RegionConfiguration;
+import org.apache.logging.log4j.Logger;
+import org.hibernate.cache.Cache;
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.CacheProvider;
+import org.hibernate.cache.Timestamper;
+
+import java.util.Iterator;
+import java.util.Properties;
+
+@SuppressWarnings("deprecation")
+public class GemFireCacheProvider implements CacheProvider {
+
+  private static final Logger logger = LogService.getLogger();
+
+  protected com.gemstone.gemfire.cache.Cache _cache;
+
+  private DistributedLockService distributedLockService;
+
+  private Properties regionAttributes = new Properties();
+
+  private final String DEFAULT_REGION_TYPE = RegionShortcut.REPLICATE_HEAP_LRU
+      .name();
+
+  private final String HIBERNATE_DLOCK_SERVICE_NAME = "hibernate-cache-lock-service";
+  /**
+   * Configure the cache
+   * 
+   * @param regionName
+   *          the name of the cache region
+   * @param properties
+   *          configuration settings
+   * @throws CacheException
+   */
+  public Cache buildCache(String regionName, Properties properties)
+      throws CacheException {
+    logger.info("GemFireCacheProvider: Creating cache: " + regionName);
+    Region region = retrieveOrCreateRegion(regionName);
+    Cache cache = null;
+    if (region == null) {
+      // Doh, blow up
+      throw new RuntimeException("Couldn't find cache region : " + regionName);
+    }
+    else {
+      cache = new GemFireCache(region, this.distributedLockService);
+    }
+    logger.info("GemFireCacheProvider: Created cache: " + regionName + "->" + cache);
+    return cache;
+  }
+
+  public boolean isMinimalPutsEnabledByDefault() {
+    return false;
+  }
+
+  /**
+   * Generate a timestamp
+   */
+  public long nextTimestamp() {
+    return Timestamper.next();
+  }
+
+  /**
+   * Returns the region if already created, otherwise first tries to create it
+   * from cache.xml, if not specified in cache.xml, create the region from the
+   * properties specified in hibernate.cfg.xml. Two types of properties can be
+   * specified in hibernate.cfg.xml
+   * <ol>
+   * <li>gemfire.default-region-attributes-id: the default region type to
+   * create. (default value for this is REPLICATE)
+   * <li>gemfire.region-attributes-for:fullyQualifiedRegionName when a region
+   * wants to override the default region type
+   * </ol>
+   * 
+   * @param regionName
+   * @return the region
+   */
+  protected Region retrieveOrCreateRegion(String regionName) {
+    // TODO client regions
+    Region r = _cache.getRegion(regionName);
+    if (r == null) {
+      String regionType = getRegionType(regionName);
+      r = _cache.createRegionFactory(RegionShortcut.valueOf(regionType))
+          .create(regionName);
+      RegionConfiguration regionConfig = new RegionConfiguration();
+      regionConfig.setRegionName(regionName);
+      regionConfig.setRegionAttributesId(regionType);
+      FunctionService.onMembers(_cache.getDistributedSystem())
+          .withArgs(regionConfig).execute(CreateRegionFunction.ID).getResult();
+    }
+    return r;
+  }
+
+  /**
+   * returns the type of region to create by consulting the properties specified
+   * in hibernate.cfg.xml
+   * 
+   * @see #retrieveOrCreateRegion(String)
+   * @param regionName
+   * @return string representation of {@link RegionShortcut}
+   */
+  private String getRegionType(String regionName) {
+    String rType = regionAttributes
+        .getProperty("gemfire.default-region-attributes-id");
+    if (rType == null) {
+      rType = DEFAULT_REGION_TYPE;
+    }
+    // iterate to find overridden property for a region
+    Iterator<Object> it = regionAttributes.keySet().iterator();
+    while (it.hasNext()) {
+      String current = (String)it.next();
+      if (current.contains(regionName)) {
+        rType = regionAttributes.getProperty(current);
+        break;
+      }
+    }
+    return rType.toUpperCase();
+  }
+
+  /**
+   * Callback to perform any necessary initialization of the underlying cache
+   * implementation during SessionFactory construction.
+   * 
+   * @param properties
+   *          current configuration settings.
+   */
+  public void start(Properties properties) throws CacheException {
+    logger.info("GemFireCacheProvider: Creating cache provider");
+
+    // We have to strip out any unknown properties, do so here
+    Properties gemfireOnlyProperties = new Properties();
+    for (Object keyObj : properties.keySet()) {
+      String key = (String)keyObj;
+      if (key.contains("region-attributes")) {
+        regionAttributes.put(key, properties.get(key));
+      }
+      else if (key.startsWith("gemfire.")) {
+        gemfireOnlyProperties.setProperty(key.replace("gemfire.", ""),
+            properties.getProperty(key));
+      }
+    }
+
+    // Create cache and d-lock service
+    try {
+      _cache = new CacheFactory(gemfireOnlyProperties).create();
+      DistributedLockService existing = DistributedLockService.getServiceNamed(HIBERNATE_DLOCK_SERVICE_NAME);
+      if (existing == null) {
+        this.distributedLockService = DistributedLockService.create(
+            HIBERNATE_DLOCK_SERVICE_NAME, _cache.getDistributedSystem());
+      } else {
+        this.distributedLockService = existing;
+      }
+    } 
+    catch (com.gemstone.gemfire.cache.CacheException e) {
+      throw new CacheException(e);
+    }
+
+    FunctionService.registerFunction(new CreateRegionFunction());
+
+    logger.info("GemFireCacheProvider: Done creating cache provider");
+  }
+
+  /**
+   * Callback to perform any necessary cleanup of the underlying cache
+   * implementation during SessionFactory.close().
+   */
+  public void stop() {
+    logger.info("GemFireCacheProvider: Stopping");
+    _cache.close();
+    logger.info("GemFireCacheProvider: Stopped");
+  }
+
+  public static Logger getLogger() {
+    return logger;
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireQueryCacheFactory.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireQueryCacheFactory.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireQueryCacheFactory.java
new file mode 100644
index 0000000..c019436
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireQueryCacheFactory.java
@@ -0,0 +1,39 @@
+/*
+* 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.hibernate;
+
+import java.util.Properties;
+
+import org.hibernate.HibernateException;
+import org.hibernate.cache.QueryCache;
+import org.hibernate.cache.QueryCacheFactory;
+import org.hibernate.cache.UpdateTimestampsCache;
+import org.hibernate.cfg.Settings;
+
+/**
+ * Defines a factory for query cache instances. These factories are responsible
+ * for creating individual QueryCache instances.
+ * 
+ */
+public class GemFireQueryCacheFactory implements QueryCacheFactory {
+  public QueryCache getQueryCache(String regionName,
+      UpdateTimestampsCache updateTimestampsCache, Settings settings,
+      Properties props) throws HibernateException {
+    return new org.hibernate.cache.StandardQueryCache(settings, props,
+        updateTimestampsCache, regionName);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireRegionFactory.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireRegionFactory.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireRegionFactory.java
new file mode 100644
index 0000000..97e5fdf
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/GemFireRegionFactory.java
@@ -0,0 +1,237 @@
+/*
+* 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.hibernate;
+
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import org.hibernate.cache.CacheDataDescription;
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.CollectionRegion;
+import org.hibernate.cache.EntityRegion;
+import org.hibernate.cache.QueryResultsRegion;
+import org.hibernate.cache.RegionFactory;
+import org.hibernate.cache.Timestamper;
+import org.hibernate.cache.TimestampsRegion;
+import org.hibernate.cache.access.AccessType;
+import org.hibernate.cfg.Settings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.gemstone.gemfire.cache.Cache;
+import com.gemstone.gemfire.cache.GemFireCache;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.RegionShortcut;
+import com.gemstone.gemfire.cache.client.ClientCache;
+import com.gemstone.gemfire.cache.client.ClientRegionShortcut;
+import com.gemstone.gemfire.distributed.internal.DistributionConfig;
+import com.gemstone.gemfire.distributed.internal.DistributionConfigImpl;
+import com.gemstone.gemfire.modules.hibernate.internal.ClientServerRegionFactoryDelegate;
+import com.gemstone.gemfire.modules.hibernate.internal.EntityWrapper;
+import com.gemstone.gemfire.modules.hibernate.internal.GemFireCollectionRegion;
+import com.gemstone.gemfire.modules.hibernate.internal.GemFireEntityRegion;
+import com.gemstone.gemfire.modules.hibernate.internal.GemFireQueryResultsRegion;
+import com.gemstone.gemfire.modules.hibernate.internal.RegionFactoryDelegate;
+import com.gemstone.gemfire.modules.util.Banner;
+
+public class GemFireRegionFactory implements RegionFactory {
+
+    
+  private static final String GEMFIRE_QUERY_RESULTS_REGION_NAME = "gemfire.hibernateQueryResults";
+
+  private static final String GEMFIRE_TIMESTAMPS_REGION_NAME = "gemfire.hibernateTimestamps";
+
+  private GemFireCache _cache;
+
+  private RegionFactoryDelegate delegate;
+
+  // TODO get rid of this
+  private boolean isClient;
+  
+  private final Logger log = LoggerFactory.getLogger(getClass());
+
+  private final ExecutorService executorService = Executors.newSingleThreadExecutor();
+
+  private Set<String> gemfireAttributes;
+  
+  /**
+   * maps the entity to the region that stores it.
+   */
+  private ConcurrentMap<String, GemFireEntityRegion> entityRegionMap = new ConcurrentHashMap<String, GemFireEntityRegion>();
+  
+  public GemFireRegionFactory(Properties props) {
+    log.debug("props:" + props);
+  }
+
+  public ExecutorService getExecutorService() {
+    return this.executorService;
+  }
+  
+  @Override
+  public void start(Settings settings, Properties properties)
+      throws CacheException {
+    log.info("Initializing " + Banner.getString());
+    extractGemFireProperties(properties);
+    _cache = delegate.startCache();
+  }
+
+  private void extractGemFireProperties(Properties properties) {
+    // We have to strip out any unknown properties, do so here
+    Properties gemfireProperties = new Properties();
+    Properties regionProperties = new Properties();
+    for (Object keyObj : properties.keySet()) {
+      String key = (String)keyObj;
+      if (key.contains("region-attributes")) {
+        regionProperties.put(key, properties.get(key));
+      }
+      else if (key.equals("gemfire.cache-topology")) {
+        if (properties.getProperty(key).trim()
+            .equalsIgnoreCase("client-server")) {
+          isClient = true;
+        }
+      }
+      else if (key.startsWith("gemfire.") && isGemFireAttribute(key)) {
+        gemfireProperties.setProperty(key.replace("gemfire.", ""),
+            properties.getProperty(key));
+      }
+    }
+    if (isClient) {
+      delegate = new ClientServerRegionFactoryDelegate(gemfireProperties, regionProperties);
+    } else {
+      delegate = new RegionFactoryDelegate(gemfireProperties, regionProperties);
+    }
+  }
+
+  private boolean isGemFireAttribute(String key) {
+    String gfKey = key.replace("gemfire.", "");
+    Set<String> gemfireAttributes = getGemFireAttributesNames();
+    return gemfireAttributes.contains(gfKey);
+  }
+
+  private Set<String> getGemFireAttributesNames() {
+    if (this.gemfireAttributes == null) {
+      //used only to get the list of all gemfire properties
+      DistributionConfig dConfig = new DistributionConfigImpl(new Properties());
+      String[] gemfireAttributeNames = dConfig.getAttributeNames();
+      gemfireAttributes = new HashSet<String>();
+      for (String attrName : gemfireAttributeNames) {
+        gemfireAttributes.add(attrName);
+      }
+    }
+    return gemfireAttributes;
+  }
+  
+  @Override
+  public void stop() {
+    // we do not want to close the cache, as there may be other
+    // applications/webapps
+    // using this cache. TODO do we want to close the regions that are created
+    // by this application?
+  }
+
+  @Override
+  public boolean isMinimalPutsEnabledByDefault() {
+    // minimal puts is better for clustered cache
+    return true;
+  }
+
+  @Override
+  public AccessType getDefaultAccessType() {
+    return AccessType.NONSTRICT_READ_WRITE;
+  }
+
+  @Override
+  public long nextTimestamp() {
+    log.debug("nextTimestamp called");
+    // TODO use gemfire cache time here. (which tries to minimize clock skews)
+    return Timestamper.next();
+  }
+
+  @Override
+  public EntityRegion buildEntityRegion(String regionName,
+      Properties properties, CacheDataDescription metadata)
+      throws CacheException {
+    // create the backing region
+    log.debug("creating Entity region {} ", regionName);
+    Region<Object, EntityWrapper> region = delegate.createRegion(regionName);
+    GemFireEntityRegion r = new GemFireEntityRegion(region, isClient, metadata, this);
+    this.entityRegionMap.put(regionName, r);
+    return r;
+  }
+
+  @Override
+  public CollectionRegion buildCollectionRegion(String regionName,
+      Properties properties, CacheDataDescription metadata)
+      throws CacheException {
+    log.debug("creating collection region {}",regionName);
+    Region<Object, EntityWrapper> region = delegate.createRegion(regionName);
+    return new GemFireCollectionRegion(region, isClient, metadata, this);
+  }
+
+  @Override
+  public QueryResultsRegion buildQueryResultsRegion(String regionName,
+      Properties properties) throws CacheException {
+    log.debug("Creating a query results region");
+    Region region = getLocalRegionForQueryCache();
+    return new GemFireQueryResultsRegion(region);
+  }
+
+  private Region getLocalRegionForQueryCache() {
+    return getLocalRegion(GEMFIRE_QUERY_RESULTS_REGION_NAME);
+  }
+  
+  private Region getLocalRegionForTimestampsCache() {
+    return getLocalRegion(GEMFIRE_TIMESTAMPS_REGION_NAME);
+  }
+  
+  private Region getLocalRegion(String regionName) {
+    Region region = _cache.getRegion(regionName);
+    if (region != null) {
+      return region;
+    }
+    if (isClient) {
+      ClientCache cc = (ClientCache)_cache;
+      region = cc.createClientRegionFactory(ClientRegionShortcut.LOCAL_HEAP_LRU).create(regionName);
+    } else {
+      Cache c = (Cache)_cache;
+      region = c.createRegionFactory(RegionShortcut.LOCAL_HEAP_LRU).create(regionName);
+    }
+    return region;
+  }
+  
+  @Override
+  public TimestampsRegion buildTimestampsRegion(String regionName,
+      Properties properties) throws CacheException {
+    Region region = getLocalRegionForTimestampsCache();
+    return new GemFireQueryResultsRegion(region);
+  }
+
+  /**
+   * Given an entity name, gets the region used to store
+   * that entity.
+   * @param name name of the entity
+   * @return the entity region for the given entity name
+   */
+  public GemFireEntityRegion getEntityRegion(String name) {
+    return this.entityRegionMap.get(name);
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/f6c4c2f9/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/Access.java
----------------------------------------------------------------------
diff --git a/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/Access.java b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/Access.java
new file mode 100644
index 0000000..86c6786
--- /dev/null
+++ b/extensions/geode-modules-hibernate/src/main/java/com/gemstone/gemfire/modules/hibernate/internal/Access.java
@@ -0,0 +1,257 @@
+/*
+* 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.hibernate.internal;
+
+import com.gemstone.gemfire.cache.CacheWriterException;
+import com.gemstone.gemfire.cache.EntryExistsException;
+import com.gemstone.gemfire.cache.Region;
+import com.gemstone.gemfire.cache.client.ServerOperationException;
+import org.hibernate.cache.CacheException;
+import org.hibernate.cache.EntityRegion;
+import org.hibernate.cache.access.EntityRegionAccessStrategy;
+import org.hibernate.cache.access.SoftLock;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public abstract class Access implements EntityRegionAccessStrategy {
+
+  private final GemFireEntityRegion region;
+
+  /**Thread local to remember the status of insert, which can be returned in afterInsert*/
+  private ThreadLocal<Map<Object, Boolean>> createStatus = new ThreadLocal<Map<Object, Boolean>>() {
+    @Override
+    protected Map<Object, Boolean> initialValue() {
+      return new HashMap<Object, Boolean>();
+    }
+  };
+
+  private Logger log = LoggerFactory.getLogger(getClass());
+
+  public Access(GemFireEntityRegion region) {
+    this.region = region;
+  }
+
+  @Override
+  public EntityRegion getRegion() {
+    return this.region;
+  }
+
+  @Override
+  public Object get(Object key, long txTimestamp) throws CacheException {
+    KeyWrapper wKey = getWrappedKey(key);
+    if (this.region.isRegisterInterestRequired()) {
+      this.region.registerInterest(wKey);
+    }
+    // first check to see if we have pre-fetched this entity
+    EntityWrapper wrapper = this.region.get(wKey);
+    if (wrapper == null) {
+      wrapper = this.region.getGemFireRegion().get(wKey);
+    }
+    if (wrapper == null) {
+      this.region.getStats().incCacheMiss();
+      log.debug("Cache miss for {} count: {}",wKey, this.region.getStats().getCacheMiss());
+      return null;
+    } else {
+      this.region.getStats().incCacheHit();
+      log.debug("cache hit {} count: {} ", wKey, this.region.getStats().getCacheHits());
+    }
+    return wrapper.getEntity();
+  }
+
+  @Override
+  public boolean putFromLoad(Object key, Object value, long txTimestamp,
+      Object version) throws CacheException {
+    return putFromLoad(key, value, txTimestamp, version, true);
+  }
+
+  @Override
+  public boolean putFromLoad(Object key, Object value, long txTimestamp,
+      Object version, boolean minimalPutOverride) throws CacheException {
+    return create(key, value);
+  }
+
+  private boolean create(Object key, Object value) {
+    KeyWrapper wKey = getWrappedKey(key);
+    EntityWrapper wrapper = new EntityWrapper(value, 1L);
+    log.debug("putting a new entry from load {} value: {}",wKey, wrapper);
+    boolean remove = false;
+    try {
+      this.region.getGemFireRegion().create(wKey, wrapper);
+    } catch (EntryExistsException ee) {
+      log.debug("key {} exists in the cache already, destroying", wKey);
+      remove = true;
+    } catch (CacheWriterException writerEx) {
+      this.region.getStats().incHibernateDestroyJobsScheduled();
+      log.debug("caught a CacheWriterException {} ",writerEx.getMessage());
+      remove = true;
+    } catch (ServerOperationException serverEx) {
+      if (serverEx.getCause() instanceof CacheWriterException) {
+        this.region.getStats().incHibernateDestroyJobsScheduled();
+        log.debug("caught a ServerOperationException caused by CacheWriterException {} ",serverEx.getMessage());
+      } else {
+        throw serverEx;
+      }
+      remove = true;
+    }
+    if (remove) {
+      this.region.getGemFireRegion().remove(wKey);
+      return false;
+    }
+    return true;
+  }
+
+  @Override
+  public SoftLock lockItem(Object key, Object version) throws CacheException {
+    KeyWrapper wKey = getWrappedKey(key);
+    EntityWrapper wrapper = this.region.getGemFireRegion().get(wKey);
+    Long ver = wrapper == null ? 0L : wrapper.getVersion();
+    log.debug("lockItem:key: {} entityVersion: {}", new Object[] { wKey, ver });
+    return new EntityVersionImpl(ver);
+  }
+
+  @Override
+  public SoftLock lockRegion() throws CacheException {
+    return null;
+  }
+
+  @Override
+  public void unlockItem(Object key, SoftLock lock) throws CacheException {
+    log.debug("unlockItem:key:" + key + " lock:" + lock);
+  }
+
+  @Override
+  public void unlockRegion(SoftLock lock) throws CacheException {
+  }
+
+  @Override
+  public boolean insert(Object key, Object value, Object version)
+      throws CacheException {
+    log.debug("insert:key:{} value:{} version:{}",
+        new Object[]{key, value, version});
+    boolean retVal = create(key, value);
+    createStatus.get().put(key, retVal);
+    return retVal;
+  }
+
+  @Override
+  public boolean afterInsert(Object key, Object value, Object version)
+      throws CacheException {
+    log.info("afterInsert:key:{} value:{} version:{}",
+        new Object[]{key, value, version});
+    return createStatus.get().remove(key);
+  }
+
+  @Override
+  public boolean update(Object key, Object value, Object currentVersion,
+      Object previousVersion) throws CacheException {
+    KeyWrapper wKey = getWrappedKey(key);
+    EntityWrapper oldWrapper = this.region.getGemFireRegion().get(wKey);
+    Long version = oldWrapper == null ? 1L : oldWrapper.getVersion() + 1;
+    EntityWrapper wrapper = new EntityWrapper(value, version);
+    log.debug("put:key:{} value:{} version:{}", new Object[] { wKey, value,
+        version });
+    boolean remove = false;
+    try {
+      if (oldWrapper == null) {
+        remove = this.region.getGemFireRegion().putIfAbsent(wKey, wrapper) != null;
+      } else {
+        remove = !this.region.getGemFireRegion().replace(wKey, oldWrapper, wrapper);
+      }
+    } catch (CacheWriterException writerEx) {
+      this.region.getStats().incHibernateDestroyJobsScheduled();
+      log.debug("caught a CacheWriterException {} ",writerEx.getMessage());
+      remove = true;
+    } catch (ServerOperationException serverEx) {
+      if (serverEx.getCause() instanceof CacheWriterException) {
+        this.region.getStats().incHibernateDestroyJobsScheduled();
+        log.debug("caught a ServerOperationException caused by CacheWriterException {} ",serverEx.getMessage());
+        remove = true;
+      } else {
+        throw serverEx;
+      }
+    }
+    if (remove) {
+      this.region.getGemFireRegion().remove(wKey);
+      return false;
+    }
+    log.debug("put for key {} succeded", wKey);
+    return true;
+  }
+
+  @Override
+  public boolean afterUpdate(Object key, Object value, Object currentVersion,
+      Object previousVersion, SoftLock lock) throws CacheException {
+    log.debug("afterUpdate:key:{} value:{} currVersion:{} previousVersion:{}",
+        new Object[] {key, value, currentVersion, previousVersion});
+    KeyWrapper wKey = getWrappedKey(key);
+    EntityWrapper wrapper = this.region.getGemFireRegion().get(wKey);
+    if (wrapper == null) {
+      // this entry was destroyed during update
+      return false;
+    }
+    Long version = wrapper.getVersion();
+    Long expectedVersion = ((EntityVersion)lock).getVersion() + 1;
+    log.debug("afterPut:key:{} value:{} version:{} expected: {}",
+        new Object[] { wKey, value, version, expectedVersion });
+    if (wrapper.getVersion() != expectedVersion) {
+      log.debug(
+          "for key {} expected version to be {} but was {}, so destroying the key",
+          new Object[] { wKey, expectedVersion, version });
+      this.region.getGemFireRegion().remove(wKey);
+      return false;
+    }
+    return true;
+  }
+
+  @Override
+  public void remove(Object key) throws CacheException {
+    log.debug("removing key {} ",key);
+    this.region.getGemFireRegion().remove(getWrappedKey(key));
+  }
+
+  @Override
+  public void removeAll() throws CacheException {
+    log.debug("removing all keys");
+    this.region.getGemFireRegion().clear();
+  }
+
+  @Override
+  public void evict(Object key) throws CacheException {
+    // TODO we should implement a method on Region to evict
+    // a particular entry, destroying is inefficient
+    log.debug("removing key {} ",key);
+    this.region.getGemFireRegion().remove(getWrappedKey(key));
+  }
+
+  @Override
+  public void evictAll() throws CacheException {
+    log.debug("removing all keys");
+    this.region.getGemFireRegion().clear();
+  }
+
+  protected Region<Object, EntityWrapper> getGemFireRegion() {
+    return this.region.getGemFireRegion();
+  }
+  
+  protected KeyWrapper getWrappedKey(Object key) {
+    return new KeyWrapper(key);
+  }
+}
+