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/02/02 15:49:41 UTC
svn commit: r1656479 - in
/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal:
handler/ runtime/ whiteboard/
Author: cziegeler
Date: Mon Feb 2 14:49:40 2015
New Revision: 1656479
URL: http://svn.apache.org/r1656479
Log:
FELIX-4060 : Implement HTTP Service Update (RFC-189)
Modified:
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PerContextHandlerRegistry.java
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/ContextHandler.java
felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PerContextHandlerRegistry.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PerContextHandlerRegistry.java?rev=1656479&r1=1656478&r2=1656479&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PerContextHandlerRegistry.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/handler/PerContextHandlerRegistry.java Mon Feb 2 14:49:40 2015
@@ -49,8 +49,8 @@ public final class PerContextHandlerRegi
private final String prefixPath;
public PerContextHandlerRegistry() {
- this.serviceId = -1;
- this.ranking = Integer.MIN_VALUE;
+ this.serviceId = 0;
+ this.ranking = Integer.MAX_VALUE;
this.prefixPath = "/";
}
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java?rev=1656479&r1=1656478&r2=1656479&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/FilterInfo.java Mon Feb 2 14:49:40 2015
@@ -143,31 +143,38 @@ public final class FilterInfo extends Wh
return super.isValid() && (!isEmpty(this.patterns) || !isEmpty(this.regexs) || !isEmpty(this.servletNames));
}
- public String getName() {
+ public String getName()
+ {
return name;
}
- public String[] getPatterns() {
+ public String[] getPatterns()
+ {
return patterns;
}
- public String[] getServletNames() {
+ public String[] getServletNames()
+ {
return servletNames;
}
- public String[] getRegexs() {
+ public String[] getRegexs()
+ {
return regexs;
}
- public boolean isAsyncSupported() {
+ public boolean isAsyncSupported()
+ {
return asyncSupported;
}
- public DispatcherType[] getDispatcher() {
+ public DispatcherType[] getDispatcher()
+ {
return dispatcher;
}
- public Map<String, String> getInitParams() {
+ public Map<String, String> getInitParams()
+ {
return initParams;
}
}
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java?rev=1656479&r1=1656478&r2=1656479&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/ServletContextHelperInfo.java Mon Feb 2 14:49:40 2015
@@ -18,6 +18,8 @@
*/
package org.apache.felix.http.base.internal.runtime;
+import java.util.Map;
+
import org.osgi.framework.ServiceReference;
import org.osgi.service.http.context.ServletContextHelper;
import org.osgi.service.http.whiteboard.HttpWhiteboardConstants;
@@ -25,7 +27,13 @@ import org.osgi.service.http.whiteboard.
/**
* Provides registration information for a {@link ServletContextHelper}
*/
-public final class ServletContextHelperInfo extends AbstractInfo<ServletContextHelper> {
+public final class ServletContextHelperInfo extends AbstractInfo<ServletContextHelper>
+{
+
+ /**
+ * Properties starting with this prefix are passed as context init parameters.
+ */
+ private static final String CONTEXT_INIT_PREFIX = "context.init.";
private final String name;
@@ -33,6 +41,11 @@ public final class ServletContextHelperI
private final String prefix;
+ /**
+ * The filter initialization parameters as provided during registration of the filter.
+ */
+ private final Map<String, String> initParams;
+
public ServletContextHelperInfo(final ServiceReference<ServletContextHelper> ref) {
super(ref);
this.name = this.getStringProperty(ref, HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME);
@@ -46,6 +59,7 @@ public final class ServletContextHelperI
}
}
this.prefix = prefix;
+ this.initParams = getInitParams(ref, CONTEXT_INIT_PREFIX);
}
private boolean isValidPath()
@@ -91,4 +105,9 @@ public final class ServletContextHelperI
}
return this.prefix.concat(path);
}
+
+ public Map<String, String> getInitParams()
+ {
+ return initParams;
+ }
}
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/ContextHandler.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/ContextHandler.java?rev=1656479&r1=1656478&r2=1656479&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/ContextHandler.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/ContextHandler.java Mon Feb 2 14:49:40 2015
@@ -69,6 +69,7 @@ public final class ContextHandler implem
this.sharedContext = new SharedServletContextImpl(webContext,
info.getPrefix(),
info.getName(),
+ info.getInitParams(),
new ServletContextAttributeListener() {
@Override
Modified: felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java?rev=1656479&r1=1656478&r2=1656479&view=diff
==============================================================================
--- felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java (original)
+++ felix/trunk/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/SharedServletContextImpl.java Mon Feb 2 14:49:40 2015
@@ -22,6 +22,7 @@ import java.net.URL;
import java.util.Collections;
import java.util.Enumeration;
import java.util.EventListener;
+import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -55,10 +56,12 @@ public class SharedServletContextImpl im
private final String contextPath;
private final String name;
private final ServletContextAttributeListener attributeListener;
+ private final Map<String, String> initParameters = new HashMap<String, String>();
public SharedServletContextImpl(final ServletContext webContext,
final String name,
final String prefix,
+ final Map<String, String> initParameters,
final ServletContextAttributeListener servletContextAttributeListener)
{
this.context = webContext;
@@ -71,6 +74,10 @@ public class SharedServletContextImpl im
this.contextPath = webContext.getContextPath() + prefix;
}
this.name = name;
+ if ( initParameters != null )
+ {
+ this.initParameters.putAll(initParameters);
+ }
this.attributeListener = servletContextAttributeListener;
}
@@ -258,15 +265,13 @@ public class SharedServletContextImpl im
@Override
public String getInitParameter(final String name)
{
- // TODO
- return this.context.getInitParameter(name);
+ return this.initParameters.get(name);
}
@Override
public Enumeration getInitParameterNames()
{
- // TODO
- return this.context.getInitParameterNames();
+ return Collections.enumeration(this.initParameters.keySet());
}
@Override