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 2017/11/20 09:06:33 UTC

svn commit: r1815779 - /felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java

Author: cziegeler
Date: Mon Nov 20 09:06:33 2017
New Revision: 1815779

URL: http://svn.apache.org/viewvc?rev=1815779&view=rev
Log:
FELIX-5296 : Implement Http Whiteboard Service Updates (RFC 223)

Modified:
    felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java

Modified: felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java?rev=1815779&r1=1815778&r2=1815779&view=diff
==============================================================================
--- felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java (original)
+++ felix/trunk/osgi-r7/http/base/src/main/java/org/apache/felix/http/base/internal/whiteboard/WhiteboardManager.java Mon Nov 20 09:06:33 2017
@@ -666,32 +666,36 @@ public final class WhiteboardManager
     {
         if ( h.getContextInfo().getServiceId() == HttpServiceFactory.HTTP_SERVICE_CONTEXT_SERVICE_ID )
         {
-        	if ( info instanceof ResourceInfo )
-        	{
+            // In order to be compatible with the implementation of the http service 1.0
+            // we need still support servlet/resource registrations not using the
+            // 1.1 HTTP_SERVICE_CONTEXT_PROPERTY property. (contains is not the best check but
+            // it should do the trick)
+          	if ( info instanceof ResourceInfo && info.getContextSelection().contains(HttpWhiteboardConstants.HTTP_SERVICE_CONTEXT_PROPERTY))
+        	    {
                 this.failureStateHandler.addFailure(info, HttpServiceFactory.HTTP_SERVICE_CONTEXT_SERVICE_ID, DTOConstants.FAILURE_REASON_VALIDATION_FAILED);
 
                 return DTOConstants.FAILURE_REASON_VALIDATION_FAILED;
             }
-        	else if ( info instanceof ServletInfo )
-        	{
-        		final ServletInfo servletInfo = (ServletInfo)info;
-        		final boolean nameIsEmpty = servletInfo.getName() == null || servletInfo.getName().isEmpty();
-        		final boolean errorPageIsEmpty = servletInfo.getErrorPage() == null || servletInfo.getErrorPage().length == 0;
-        		final boolean patternIsEmpty = servletInfo.getPatterns() == null || servletInfo.getPatterns().length == 0;
-        		if ( !nameIsEmpty || !errorPageIsEmpty )
-        		{
-        			if ( patternIsEmpty )
-        			{
-        				// no pattern, so this is valid
-        				return -1;
-        			}
-        		}
+        	    else if ( info instanceof ServletInfo && info.getContextSelection().contains(HttpWhiteboardConstants.HTTP_SERVICE_CONTEXT_PROPERTY))
+        	    {
+        		    final ServletInfo servletInfo = (ServletInfo)info;
+        		    final boolean nameIsEmpty = servletInfo.getName() == null || servletInfo.getName().isEmpty();
+        		    final boolean errorPageIsEmpty = servletInfo.getErrorPage() == null || servletInfo.getErrorPage().length == 0;
+        		    final boolean patternIsEmpty = servletInfo.getPatterns() == null || servletInfo.getPatterns().length == 0;
+        		    if ( !nameIsEmpty || !errorPageIsEmpty )
+        		    {
+        			    if ( patternIsEmpty )
+        			    {
+        				    // no pattern, so this is valid
+        				    return -1;
+        			    }
+        		    }
 
-        		// pattern is invalid, regardless of the other values
-                this.failureStateHandler.addFailure(info, HttpServiceFactory.HTTP_SERVICE_CONTEXT_SERVICE_ID, DTOConstants.FAILURE_REASON_VALIDATION_FAILED);
+    		        // pattern is invalid, regardless of the other values
+    		        this.failureStateHandler.addFailure(info, HttpServiceFactory.HTTP_SERVICE_CONTEXT_SERVICE_ID, DTOConstants.FAILURE_REASON_VALIDATION_FAILED);
 
-                return DTOConstants.FAILURE_REASON_VALIDATION_FAILED;
-        	}
+    		        return DTOConstants.FAILURE_REASON_VALIDATION_FAILED;
+        	    }
         }
 
         return -1;