Hi John,
I see what you mean. I was thinking of the base Emitter class as something
extensible for users, which on the one hand we could say is so simple why
bother, but on the other hand could say why not? ...but I digress. If
they're all deactivatable then let's consolidate that deactivation logic,
simply.

Matt
On Sep 3, 2013 7:38 AM, "John D. Ament" <[email protected]> wrote:

> Matt
>
> What do you mean? We have three emitters, all three are deactivatable...
>
> On Tue, Sep 3, 2013 at 8:35 AM, Matt Benson <[email protected]> wrote:
> > I see... not all emitters are deactivatable. Still, what about an
> abstract
> > deactivatable emitter class?
> > On Sep 3, 2013 7:32 AM, "Matt Benson" <[email protected]> wrote:
> >
> >> Hi Christian,
> >> This activation check seems pretty generic if it's only based on the
> >> emitter's runtime class... what about moving up to Emitter and doing the
> >> check in #fireEvent()?
> >>
> >> br,
> >> Matt
> >> On Sep 3, 2013 2:13 AM, <[email protected]> wrote:
> >>
> >>> Updated Branches:
> >>>   refs/heads/master 28169465d -> 502fecd7a
> >>>
> >>>
> >>> DELTASPIKE-409 Servlet module events should be deactivatable
> >>>
> >>>
> >>> Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
> >>> Commit:
> http://git-wip-us.apache.org/repos/asf/deltaspike/commit/502fecd7
> >>> Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/502fecd7
> >>> Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/502fecd7
> >>>
> >>> Branch: refs/heads/master
> >>> Commit: 502fecd7a66950665ee6dda1d13d1043f7d81a20
> >>> Parents: 2816946
> >>> Author: Christian Kaltepoth <[email protected]>
> >>> Authored: Tue Sep 3 09:12:29 2013 +0200
> >>> Committer: Christian Kaltepoth <[email protected]>
> >>> Committed: Tue Sep 3 09:12:29 2013 +0200
> >>>
> >>> ----------------------------------------------------------------------
> >>>  .../impl/event/EventBridgeContextListener.java  | 21 +++++++++++++---
> >>>  .../servlet/impl/event/EventBridgeFilter.java   | 25
> ++++++++++++++++----
> >>>  .../impl/event/EventBridgeSessionListener.java  | 21 +++++++++++++---
> >>>  3 files changed, 56 insertions(+), 11 deletions(-)
> >>> ----------------------------------------------------------------------
> >>>
> >>>
> >>>
> >>>
> http://git-wip-us.apache.org/repos/asf/deltaspike/blob/502fecd7/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeContextListener.java
> >>> ----------------------------------------------------------------------
> >>> diff --git
> >>>
> a/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeContextListener.java
> >>>
> b/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeContextListener.java
> >>> index 2f7cd7c..c80d92e 100644
> >>> ---
> >>>
> a/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeContextListener.java
> >>> +++
> >>>
> b/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeContextListener.java
> >>> @@ -21,25 +21,40 @@ package org.apache.deltaspike.servlet.impl.event;
> >>>  import javax.servlet.ServletContextEvent;
> >>>  import javax.servlet.ServletContextListener;
> >>>
> >>> +import org.apache.deltaspike.core.spi.activation.Deactivatable;
> >>> +import org.apache.deltaspike.core.util.ClassDeactivationUtils;
> >>>  import org.apache.deltaspike.servlet.api.literal.DestroyedLiteral;
> >>>  import org.apache.deltaspike.servlet.api.literal.InitializedLiteral;
> >>>
> >>>  /**
> >>>   * This class listens for servlet context events and forwards them to
> >>> the CDI event bus.
> >>>   */
> >>> -public class EventBridgeContextListener extends EventEmitter
> implements
> >>> ServletContextListener
> >>> +public class EventBridgeContextListener extends EventEmitter
> implements
> >>> ServletContextListener, Deactivatable
> >>>  {
> >>>
> >>> +    private final boolean activated;
> >>> +
> >>> +    public EventBridgeContextListener()
> >>> +    {
> >>> +        this.activated =
> ClassDeactivationUtils.isActivated(getClass());
> >>> +    }
> >>> +
> >>>      @Override
> >>>      public void contextInitialized(ServletContextEvent sce)
> >>>      {
> >>> -        fireEvent(sce.getServletContext(),
> InitializedLiteral.INSTANCE);
> >>> +        if (activated)
> >>> +        {
> >>> +            fireEvent(sce.getServletContext(),
> >>> InitializedLiteral.INSTANCE);
> >>> +        }
> >>>      }
> >>>
> >>>      @Override
> >>>      public void contextDestroyed(ServletContextEvent sce)
> >>>      {
> >>> -        fireEvent(sce.getServletContext(), DestroyedLiteral.INSTANCE);
> >>> +        if (activated)
> >>> +        {
> >>> +            fireEvent(sce.getServletContext(),
> >>> DestroyedLiteral.INSTANCE);
> >>> +        }
> >>>      }
> >>>
> >>>  }
> >>>
> >>>
> >>>
> http://git-wip-us.apache.org/repos/asf/deltaspike/blob/502fecd7/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeFilter.java
> >>> ----------------------------------------------------------------------
> >>> diff --git
> >>>
> a/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeFilter.java
> >>>
> b/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeFilter.java
> >>> index 529d4c7..ce1f279 100644
> >>> ---
> >>>
> a/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeFilter.java
> >>> +++
> >>>
> b/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeFilter.java
> >>> @@ -27,15 +27,24 @@ import javax.servlet.ServletException;
> >>>  import javax.servlet.ServletRequest;
> >>>  import javax.servlet.ServletResponse;
> >>>
> >>> +import org.apache.deltaspike.core.spi.activation.Deactivatable;
> >>> +import org.apache.deltaspike.core.util.ClassDeactivationUtils;
> >>>  import org.apache.deltaspike.servlet.api.literal.DestroyedLiteral;
> >>>  import org.apache.deltaspike.servlet.api.literal.InitializedLiteral;
> >>>
> >>>  /**
> >>>   * This filter sends events to the CDI event bus when requests and
> >>> responses get created and destroyed.
> >>>   */
> >>> -public class EventBridgeFilter extends EventEmitter implements Filter
> >>> +public class EventBridgeFilter extends EventEmitter implements Filter,
> >>> Deactivatable
> >>>  {
> >>>
> >>> +    private final boolean activated;
> >>> +
> >>> +    public EventBridgeFilter()
> >>> +    {
> >>> +        this.activated =
> ClassDeactivationUtils.isActivated(getClass());
> >>> +    }
> >>> +
> >>>      @Override
> >>>      public void init(FilterConfig config) throws ServletException
> >>>      {
> >>> @@ -48,8 +57,11 @@ public class EventBridgeFilter extends EventEmitter
> >>> implements Filter
> >>>      {
> >>>
> >>>          // fire @Initialized events
> >>> -        fireEvent(request, InitializedLiteral.INSTANCE);
> >>> -        fireEvent(response, InitializedLiteral.INSTANCE);
> >>> +        if (activated)
> >>> +        {
> >>> +            fireEvent(request, InitializedLiteral.INSTANCE);
> >>> +            fireEvent(response, InitializedLiteral.INSTANCE);
> >>> +        }
> >>>
> >>>          try
> >>>          {
> >>> @@ -58,8 +70,11 @@ public class EventBridgeFilter extends EventEmitter
> >>> implements Filter
> >>>          finally
> >>>          {
> >>>              // fire @Destroyed events
> >>> -            fireEvent(request, DestroyedLiteral.INSTANCE);
> >>> -            fireEvent(response, DestroyedLiteral.INSTANCE);
> >>> +            if (activated)
> >>> +            {
> >>> +                fireEvent(request, DestroyedLiteral.INSTANCE);
> >>> +                fireEvent(response, DestroyedLiteral.INSTANCE);
> >>> +            }
> >>>          }
> >>>
> >>>      }
> >>>
> >>>
> >>>
> http://git-wip-us.apache.org/repos/asf/deltaspike/blob/502fecd7/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeSessionListener.java
> >>> ----------------------------------------------------------------------
> >>> diff --git
> >>>
> a/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeSessionListener.java
> >>>
> b/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeSessionListener.java
> >>> index c923ec5..73f14c3 100644
> >>> ---
> >>>
> a/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeSessionListener.java
> >>> +++
> >>>
> b/deltaspike/modules/servlet/impl/src/main/java/org/apache/deltaspike/servlet/impl/event/EventBridgeSessionListener.java
> >>> @@ -21,24 +21,39 @@ package org.apache.deltaspike.servlet.impl.event;
> >>>  import javax.servlet.http.HttpSessionEvent;
> >>>  import javax.servlet.http.HttpSessionListener;
> >>>
> >>> +import org.apache.deltaspike.core.spi.activation.Deactivatable;
> >>> +import org.apache.deltaspike.core.util.ClassDeactivationUtils;
> >>>  import org.apache.deltaspike.servlet.api.literal.DestroyedLiteral;
> >>>  import org.apache.deltaspike.servlet.api.literal.InitializedLiteral;
> >>>
> >>>  /**
> >>>   * This class listens for HTTP session events and forwards them to the
> >>> CDI event bus.
> >>>   */
> >>> -public class EventBridgeSessionListener extends EventEmitter
> implements
> >>> HttpSessionListener
> >>> +public class EventBridgeSessionListener extends EventEmitter
> implements
> >>> HttpSessionListener, Deactivatable
> >>>  {
> >>>
> >>> +    private final boolean activated;
> >>> +
> >>> +    public EventBridgeSessionListener()
> >>> +    {
> >>> +        this.activated =
> ClassDeactivationUtils.isActivated(getClass());
> >>> +    }
> >>> +
> >>>      @Override
> >>>      public void sessionCreated(HttpSessionEvent se)
> >>>      {
> >>> -        fireEvent(se.getSession(), InitializedLiteral.INSTANCE);
> >>> +        if (activated)
> >>> +        {
> >>> +            fireEvent(se.getSession(), InitializedLiteral.INSTANCE);
> >>> +        }
> >>>      }
> >>>
> >>>      @Override
> >>>      public void sessionDestroyed(HttpSessionEvent se)
> >>>      {
> >>> -        fireEvent(se.getSession(), DestroyedLiteral.INSTANCE);
> >>> +        if (activated)
> >>> +        {
> >>> +            fireEvent(se.getSession(), DestroyedLiteral.INSTANCE);
> >>> +        }
> >>>      }
> >>>  }
> >>>
> >>>
>

Reply via email to