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