private void endCacheListener() {
    Declarable d = createDeclarable();
    if (!(d instanceof CacheListener)) {
      throw new CacheXmlException(
          String.format("A %s is not an instance of a CacheListener.",
              d.getClass().getName()));
    }
    RegionAttributesCreation attrs = peekRegionAttributesContext(CACHE_LISTENER);
    attrs.addCacheListener((CacheListener) d);
  }
When a <code>cache-listener</code> element is finished, the {@link Parameter}s and class names
are popped off the stack. The cache listener is instantiated and initialized with the
parameters, if appropriate.
geode-core/src/main/java/org/apache/geode/internal/cache/xmlcache/CacheXmlParser.java