You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2015/06/25 17:55:38 UTC
svn commit: r1687565 - in /felix/trunk/http: bridge/pom.xml proxy/pom.xml
proxy/src/main/java/org/apache/felix/http/proxy/ProxyListener.java
Author: cziegeler
Date: Thu Jun 25 15:55:37 2015
New Revision: 1687565
URL: http://svn.apache.org/r1687565
Log:
FELIX-4939 : Add support for http session id listener
Modified:
felix/trunk/http/bridge/pom.xml
felix/trunk/http/proxy/pom.xml
felix/trunk/http/proxy/src/main/java/org/apache/felix/http/proxy/ProxyListener.java
Modified: felix/trunk/http/bridge/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/http/bridge/pom.xml?rev=1687565&r1=1687564&r2=1687565&view=diff
==============================================================================
--- felix/trunk/http/bridge/pom.xml (original)
+++ felix/trunk/http/bridge/pom.xml Thu Jun 25 15:55:37 2015
@@ -28,7 +28,7 @@
<name>Apache Felix Http Bridge</name>
<artifactId>org.apache.felix.http.bridge</artifactId>
- <version>2.4.0-SNAPSHOT</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<scm>
Modified: felix/trunk/http/proxy/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/http/proxy/pom.xml?rev=1687565&r1=1687564&r2=1687565&view=diff
==============================================================================
--- felix/trunk/http/proxy/pom.xml (original)
+++ felix/trunk/http/proxy/pom.xml Thu Jun 25 15:55:37 2015
@@ -28,7 +28,7 @@
<name>Apache Felix Http Proxy</name>
<artifactId>org.apache.felix.http.proxy</artifactId>
- <version>2.3.3-SNAPSHOT</version>
+ <version>3.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<scm>
@@ -45,7 +45,7 @@
<configuration>
<instructions>
<Export-Package>
- org.apache.felix.http.proxy;version=2.1.0
+ org.apache.felix.http.proxy
</Export-Package>
</instructions>
</configuration>
Modified: felix/trunk/http/proxy/src/main/java/org/apache/felix/http/proxy/ProxyListener.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/proxy/src/main/java/org/apache/felix/http/proxy/ProxyListener.java?rev=1687565&r1=1687564&r2=1687565&view=diff
==============================================================================
--- felix/trunk/http/proxy/src/main/java/org/apache/felix/http/proxy/ProxyListener.java (original)
+++ felix/trunk/http/proxy/src/main/java/org/apache/felix/http/proxy/ProxyListener.java Thu Jun 25 15:55:37 2015
@@ -26,6 +26,7 @@ import javax.servlet.ServletContextListe
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionIdListener;
import javax.servlet.http.HttpSessionListener;
import org.osgi.framework.BundleContext;
@@ -42,7 +43,11 @@ import org.osgi.util.tracker.ServiceTrac
*
* @since 2.1.0
*/
-public class ProxyListener implements HttpSessionAttributeListener, HttpSessionListener, ServletContextListener
+public class ProxyListener
+ implements HttpSessionAttributeListener,
+ HttpSessionListener,
+ HttpSessionIdListener,
+ ServletContextListener
{
private ServletContext servletContext;
@@ -51,15 +56,19 @@ public class ProxyListener implements Ht
private HttpSessionListener sessionDispatcher;
+ private HttpSessionIdListener sessionIdDispatcher;
+
private HttpSessionAttributeListener attributeDispatcher;
// ---------- ServletContextListener
+ @Override
public void contextInitialized(final ServletContextEvent sce)
{
this.servletContext = sce.getServletContext();
}
+ @Override
public void contextDestroyed(final ServletContextEvent sce)
{
if (this.eventDispatcherTracker != null)
@@ -72,6 +81,7 @@ public class ProxyListener implements Ht
// ---------- HttpSessionListener
+ @Override
public void sessionCreated(final HttpSessionEvent se)
{
final HttpSessionListener sessionDispatcher = getSessionDispatcher();
@@ -81,6 +91,7 @@ public class ProxyListener implements Ht
}
}
+ @Override
public void sessionDestroyed(final HttpSessionEvent se)
{
final HttpSessionListener sessionDispatcher = getSessionDispatcher();
@@ -90,8 +101,21 @@ public class ProxyListener implements Ht
}
}
+ // ---------- HttpSessionIdListener
+
+ @Override
+ public void sessionIdChanged(final HttpSessionEvent event, final String oldSessionId)
+ {
+ final HttpSessionIdListener sessionIdDispatcher = getSessionIdDispatcher();
+ if (sessionIdDispatcher != null)
+ {
+ sessionIdDispatcher.sessionIdChanged(event, oldSessionId);
+ }
+ }
+
// ---------- HttpSessionAttributeListener
+ @Override
public void attributeAdded(final HttpSessionBindingEvent se)
{
final HttpSessionAttributeListener attributeDispatcher = getAttributeDispatcher();
@@ -101,6 +125,7 @@ public class ProxyListener implements Ht
}
}
+ @Override
public void attributeRemoved(final HttpSessionBindingEvent se)
{
final HttpSessionAttributeListener attributeDispatcher = getAttributeDispatcher();
@@ -110,6 +135,7 @@ public class ProxyListener implements Ht
}
}
+ @Override
public void attributeReplaced(final HttpSessionBindingEvent se)
{
final HttpSessionAttributeListener attributeDispatcher = getAttributeDispatcher();
@@ -139,10 +165,12 @@ public class ProxyListener implements Ht
Filter filter = createFilter(bundleContext, null);
this.eventDispatcherTracker = new ServiceTracker(bundleContext, filter, null)
{
+ @Override
public void removedService(ServiceReference reference, Object service)
{
ProxyListener.this.sessionDispatcher = null;
ProxyListener.this.attributeDispatcher = null;
+ ProxyListener.this.sessionIdDispatcher = null;
super.removedService(reference, service);
}
};
@@ -170,6 +198,19 @@ public class ProxyListener implements Ht
return this.sessionDispatcher;
}
+ private HttpSessionIdListener getSessionIdDispatcher()
+ {
+ if (this.sessionIdDispatcher == null)
+ {
+ final Object dispatcher = getDispatcher();
+ if (dispatcher instanceof HttpSessionIdListener)
+ {
+ this.sessionIdDispatcher = (HttpSessionIdListener) dispatcher;
+ }
+ }
+ return this.sessionIdDispatcher;
+ }
+
private HttpSessionAttributeListener getAttributeDispatcher()
{
if (this.attributeDispatcher == null)