Author: cziegeler
Date: Thu Jul 15 06:43:16 2010
New Revision: 964314
URL: http://svn.apache.org/viewvc?rev=964314&view=rev
Log:
Code formatting and close service tracker on deactivate
Modified:
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/helper/RequestListenerManager.java
Modified:
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java?rev=964314&r1=964313&r2=964314&view=diff
==============================================================================
---
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
(original)
+++
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
Thu Jul 15 06:43:16 2010
@@ -173,8 +173,8 @@ public class SlingMainServlet extends Ge
private SlingFilterChainHelper requestFilterChain = new
SlingFilterChainHelper();
private SlingFilterChainHelper innerFilterChain = new
SlingFilterChainHelper();
-
- private RequestListenerManager requestListenerManager;
+
+ private RequestListenerManager requestListenerManager;
private boolean allowTrace = DEFAULT_ALLOW_TRACE;
@@ -187,10 +187,10 @@ public class SlingMainServlet extends Ge
if (req instanceof HttpServletRequest
&& res instanceof HttpServletResponse) {
-
+
HttpServletRequest request = (HttpServletRequest) req;
- requestListenerManager.sendEvent( new SlingRequestEvent(
getServletContext(),
+ requestListenerManager.sendEvent( new SlingRequestEvent(
getServletContext(),
request, SlingRequestEvent.EventType.EVENT_INIT
) );
// set the thread name according to the request
@@ -245,7 +245,7 @@ public class SlingMainServlet extends Ge
} finally {
- requestListenerManager.sendEvent( new SlingRequestEvent(
getServletContext(),
+ requestListenerManager.sendEvent( new SlingRequestEvent(
getServletContext(),
request,
SlingRequestEvent.EventType.EVENT_DESTROY ) );
// reset the thread name
if (threadName != null) {
@@ -630,7 +630,7 @@ public class SlingMainServlet extends Ge
initFilter(componentContext, serviceReference);
}
}
-
+
// initialize requestListenerManager
requestListenerManager = new RequestListenerManager( bundleContext );
@@ -650,6 +650,11 @@ public class SlingMainServlet extends Ge
this.printerRegistration = null;
}
+ if ( this.requestListenerManager != null ) {
+ this.requestListenerManager.dispose();
+ this.requestListenerManager = null;
+ }
+
// first destroy the filters
destroyFilters(innerFilterChain);
destroyFilters(requestFilterChain);
Modified:
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/helper/RequestListenerManager.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/helper/RequestListenerManager.java?rev=964314&r1=964313&r2=964314&view=diff
==============================================================================
---
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/helper/RequestListenerManager.java
(original)
+++
sling/trunk/bundles/engine/src/main/java/org/apache/sling/engine/impl/helper/RequestListenerManager.java
Thu Jul 15 06:43:16 2010
@@ -16,50 +16,32 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.sling.engine.impl.helper;
import org.apache.sling.api.request.SlingRequestEvent;
import org.apache.sling.api.request.SlingRequestListener;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class RequestListenerManager {
-
- /** default log */
- private final Logger log = LoggerFactory.getLogger(getClass());
-
- private ServiceTracker serviceTracker;
- public RequestListenerManager ( BundleContext context )
- {
+ private final ServiceTracker serviceTracker;
+
+ public RequestListenerManager( final BundleContext context ) {
serviceTracker = new ServiceTracker( context,
SlingRequestListener.SERVICE_NAME, null );
serviceTracker.open();
-
}
-
- public void sendEvent ( SlingRequestEvent event )
- {
- Object[] services = serviceTracker.getServices();
- if ( services != null )
- {
- for ( Object service : services )
- {
- if ( service instanceof SlingRequestListener )
- {
- ( (SlingRequestListener) service
).onEvent( event );
- }
- else
- {
- log.error( "Implementation of service
named " + SlingRequestListener.SERVICE_NAME +
- " does not implement
service interface " + SlingRequestListener.class.getName() + "." );
- }
+
+ public void sendEvent ( final SlingRequestEvent event ) {
+ final Object[] services = serviceTracker.getServices();
+ if ( services != null ) {
+ for ( final Object service : services ) {
+ ( (SlingRequestListener) service ).onEvent(
event );
}
}
}
-
+ public void dispose() {
+ this.serviceTracker.close();
+ }
}