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