Author: [email protected]
Date: Tue Mar 29 15:28:52 2011
New Revision: 913

Log:
AMDATU-283 refatorring to pass integration tests

Added:
   
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/OAuthServiceConsumerRegistryREST.java
   
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthServiceConsumerRegistryRESTImpl.java
      - copied, changed from r911, 
/branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthServiceConsumerRegistryREST.java
Removed:
   
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthServiceConsumerRegistryREST.java
Modified:
   
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/osgi/Activator.java
   
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthResourceProviderImpl.java
   
branches/AMDATU-283-dev/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/CustomServletPipeline.java
   
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/HttpContextManagerService.java
   
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/context/DelegatingHttpContext.java
   
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/osgi/Activator.java
   
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/service/HttpContextManagerServiceImpl.java
   
branches/AMDATU-283-dev/integration-tests/src/test/java/org/amdatu/test/integration/base/OAuthTestBase.java
   
branches/AMDATU-283-dev/integration-tests/src/test/java/org/amdatu/test/integration/tests/HttpServiceTest.java

Added: 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/OAuthServiceConsumerRegistryREST.java
==============================================================================
--- (empty file)
+++ 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/OAuthServiceConsumerRegistryREST.java
       Tue Mar 29 15:28:52 2011
@@ -0,0 +1,5 @@
+package org.amdatu.authentication.oauth.server;
+
+public interface OAuthServiceConsumerRegistryREST {
+
+}

Modified: 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/osgi/Activator.java
==============================================================================
--- 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/osgi/Activator.java
 (original)
+++ 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/osgi/Activator.java
 Tue Mar 29 15:28:52 2011
@@ -27,12 +27,13 @@
 import org.amdatu.authentication.oauth.server.OAuthAuthorizeTokenServlet;
 import org.amdatu.authentication.oauth.server.OAuthRequestTokenServlet;
 import org.amdatu.authentication.oauth.server.OAuthServerConfig;
+import org.amdatu.authentication.oauth.server.OAuthServiceConsumerRegistryREST;
 import org.amdatu.authentication.oauth.server.OAuthTokenProvider;
 import 
org.amdatu.authentication.oauth.server.service.OAuthAccessTokenServletImpl;
 import 
org.amdatu.authentication.oauth.server.service.OAuthAuthorizeTokenServletImpl;
 import 
org.amdatu.authentication.oauth.server.service.OAuthRequestTokenServletImpl;
 import 
org.amdatu.authentication.oauth.server.service.OAuthResourceProviderImpl;
-import 
org.amdatu.authentication.oauth.server.service.OAuthServiceConsumerRegistryREST;
+import 
org.amdatu.authentication.oauth.server.service.OAuthServiceConsumerRegistryRESTImpl;
 import org.amdatu.authentication.oauth.server.service.OAuthServiceProviderImpl;
 import org.amdatu.authentication.oauth.server.service.OAuthTokenProviderImpl;
 import org.amdatu.authentication.tokenprovider.TokenProvider;
@@ -71,10 +72,10 @@
         // Create and register the resource provider
         Dictionary<String, Object> properties = new Hashtable<String, 
Object>();
         properties.put(DispatcherService.CONTEXT_ID_KEY, 
OAuthResourceProviderImpl.RESOURCE_ID);
-        properties.put(DispatcherService.ALIAS_KEY, 
OAuthResourceProviderImpl.RESOURCE_ID);
+        properties.put(DispatcherService.ALIAS_KEY, "/" + 
OAuthResourceProviderImpl.RESOURCE_ID);
         manager.add(
             createComponent()
-            .setInterface(ResourceProvider.class.getName(), null)
+            .setInterface(ResourceProvider.class.getName(), properties)
             .setImplementation(OAuthResourceProviderImpl.class));
 
         // Create and register the OAuth service provider
@@ -88,8 +89,8 @@
         // Create and register the oAuth service consumer registry REST service
         manager.add(
             createComponent()
-            .setInterface(ResourceProvider.class.getName(), null)
-            .setImplementation(OAuthServiceConsumerRegistryREST.class)
+            .setInterface(OAuthServiceConsumerRegistryREST.class.getName(), 
null)
+            .setImplementation(OAuthServiceConsumerRegistryRESTImpl.class)
             
.add(createServiceDependency().setService(LogService.class).setRequired(true))
             
.add(createServiceDependency().setService(OAuthServiceConsumerRegistry.class).setRequired(true)));
         
@@ -104,7 +105,7 @@
     private Component createComponent(String alias, Class<?> servletInterface, 
Class<?> servletClass) {
         Dictionary<String, String> servletProperties = new Hashtable<String, 
String>();
         servletProperties.put("alias", alias);
-        servletProperties.put("contextId", alias);
+        servletProperties.put("contextId", 
OAuthResourceProviderImpl.RESOURCE_ID);
         return createAdapterService(OAuthTokenProvider.class, null)
             .setInterface(new String[]{servletInterface.getName(), 
Servlet.class.getName()}, servletProperties)
             .setImplementation(servletClass)

Modified: 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthResourceProviderImpl.java
==============================================================================
--- 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthResourceProviderImpl.java
      (original)
+++ 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthResourceProviderImpl.java
      Tue Mar 29 15:28:52 2011
@@ -28,6 +28,10 @@
     private volatile BundleContext m_bundleContext;
 
     public URL getResource(String name) {
+        final String pathPrefix = "/" + RESOURCE_ID + "/";
+        if (name != null && name.startsWith(pathPrefix)) {
+            return 
m_bundleContext.getBundle().getResource(name.substring(pathPrefix.length()));
+        }
         return null;
     }
 }

Copied: 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthServiceConsumerRegistryRESTImpl.java
 (from r911, 
/branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthServiceConsumerRegistryREST.java)
==============================================================================
--- 
/branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthServiceConsumerRegistryREST.java
      (original)
+++ 
branches/AMDATU-283-dev/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthServiceConsumerRegistryRESTImpl.java
   Tue Mar 29 15:28:52 2011
@@ -38,7 +38,7 @@
 import org.amdatu.authentication.oauth.api.ConsumerRegistryStorageException;
 import org.amdatu.authentication.oauth.api.OAuthServiceConsumer;
 import org.amdatu.authentication.oauth.api.OAuthServiceConsumerRegistry;
-import org.amdatu.web.httpcontext.ResourceProvider;
+import org.amdatu.authentication.oauth.server.OAuthServiceConsumerRegistryREST;
 import org.apache.http.HttpStatus;
 import org.osgi.service.log.LogService;
 
@@ -50,7 +50,7 @@
  * @author ivol
  */
 @Path("oauth/consumers")
-public class OAuthServiceConsumerRegistryREST implements ResourceProvider {
+public class OAuthServiceConsumerRegistryRESTImpl implements 
OAuthServiceConsumerRegistryREST {
     // The oAuth service consumer registry
     private volatile OAuthServiceConsumerRegistry m_registry;
     private volatile LogService m_logService;
@@ -170,12 +170,4 @@
             throw new WebApplicationException(e, 
Response.Status.INTERNAL_SERVER_ERROR);
         }
     }
-
-    public URL getResource(String name) {
-        return null;
-    }
-
-    public String getResourceId() {
-        return "oauth/consumers";
-    }
 }

Modified: 
branches/AMDATU-283-dev/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/CustomServletPipeline.java
==============================================================================
--- 
branches/AMDATU-283-dev/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/CustomServletPipeline.java
   (original)
+++ 
branches/AMDATU-283-dev/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/dispatch/CustomServletPipeline.java
   Tue Mar 29 15:28:52 2011
@@ -55,7 +55,7 @@
 
     public RequestDispatcher getRequestDispatcher(HttpServletRequest 
httpServletRequest, String path) {
         for (ServletHandler handler : m_servletHandlers) {
-            if (handler.matches(path)) {
+            if (handler.isActive() && handler.matches(path)) {
                 return new Dispatcher(path, handler);
             }
         }

Modified: 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/HttpContextManagerService.java
==============================================================================
--- 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/HttpContextManagerService.java
      (original)
+++ 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/HttpContextManagerService.java
      Tue Mar 29 15:28:52 2011
@@ -1,11 +1,17 @@
-    package org.amdatu.web.httpcontext;
+package org.amdatu.web.httpcontext;
 
+/**
+ * Amdatu Web HttpContextManagerService service interface for the component 
that
+ * is responsible for managing delegating HttpContext services.
+ * 
+ */
 public interface HttpContextManagerService {
 
-    /**
-     * <code>Servlet</code> and <code>Filter</code> service registration 
property
-     * considered for reusing or creating a specific named 
<code>HttpContext</code>.
-     */
-    String CONTEXT_ID_KEY = "contextId";
+       /**
+        * <code>Servlet</code> and <code>Filter</code> service registration
+        * property considered for reusing or creating a specific named
+        * <code>HttpContext</code>.
+        */
+       String CONTEXT_ID_KEY = "contextId";
 
 }

Modified: 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/context/DelegatingHttpContext.java
==============================================================================
--- 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/context/DelegatingHttpContext.java
  (original)
+++ 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/context/DelegatingHttpContext.java
  Tue Mar 29 15:28:52 2011
@@ -1,17 +1,3 @@
-package org.amdatu.web.httpcontext.context;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.amdatu.web.httpcontext.MimeTypeResolver;
-import org.amdatu.web.httpcontext.ResourceProvider;
-import org.amdatu.web.httpcontext.SecurityHandler;
-import org.osgi.service.http.HttpContext;
-
 /*
 Copyright (C) 2010 Amdatu.org
 
@@ -27,7 +13,21 @@
 
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
+ */
+package org.amdatu.web.httpcontext.context;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.amdatu.web.httpcontext.MimeTypeResolver;
+import org.amdatu.web.httpcontext.ResourceProvider;
+import org.amdatu.web.httpcontext.SecurityHandler;
+import org.osgi.service.http.HttpContext;
+
 public class DelegatingHttpContext implements HttpContext {
 
     private final CopyOnWriteArrayList<SecurityHandler> m_securityHandlers =
@@ -71,11 +71,12 @@
         return m_mimeTypeResolvers.remove(mimeTypeResolver);
     }
 
-    public boolean handleSecurity(HttpServletRequest httpServletRequest, 
HttpServletResponse httpServletResponse)
-        throws IOException {
+    public boolean handleSecurity(HttpServletRequest httpServletRequest,
+            HttpServletResponse httpServletResponse) throws IOException {
         boolean doHandle = true;
         for (SecurityHandler securityHandler : m_securityHandlers) {
-            doHandle = securityHandler.handleSecurity(httpServletRequest, 
httpServletResponse);
+            doHandle = securityHandler.handleSecurity(httpServletRequest,
+                    httpServletResponse);
             if (!doHandle)
                 break;
         }

Modified: 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/osgi/Activator.java
==============================================================================
--- 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/osgi/Activator.java
 (original)
+++ 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/osgi/Activator.java
 Tue Mar 29 15:28:52 2011
@@ -37,7 +37,7 @@
             createComponent()
                 .setInterface(HttpContextManagerService.class.getName(), null)
                 .setImplementation(HttpContextManagerServiceImpl.class)
-                
.add(createServiceDependency().setService(LogService.class).setRequired(true))
+                
.add(createServiceDependency().setService(LogService.class).setRequired(false))
                 .add(
                     createServiceDependency()
                         .setService(ResourceProvider.class)

Modified: 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/service/HttpContextManagerServiceImpl.java
==============================================================================
--- 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/service/HttpContextManagerServiceImpl.java
  (original)
+++ 
branches/AMDATU-283-dev/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/service/HttpContextManagerServiceImpl.java
  Tue Mar 29 15:28:52 2011
@@ -27,15 +27,20 @@
 import org.amdatu.web.httpcontext.context.DelegatingHttpContext;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
+import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 import org.osgi.service.http.HttpContext;
+import org.osgi.service.log.LogService;
 
 public class HttpContextManagerServiceImpl implements 
HttpContextManagerService {
 
+    private final static int LOG_LEVEL = LogService.LOG_ERROR;
+
     private final ConcurrentHashMap<String, ContextComponentTuple> 
m_httpContextComponents =
         new ConcurrentHashMap<String, ContextComponentTuple>();
 
     private volatile DependencyManager m_dependencyManager;
+    private volatile LogService m_logService;
 
     public void init() {
     }
@@ -54,19 +59,25 @@
     public void addResourceProvider(ServiceReference serviceReference, Object 
service) {
         ResourceProvider resourceProvider = (ResourceProvider) service;
         String contextId = getStringProperty(serviceReference, CONTEXT_ID_KEY);
+        long serviceId = getLongProperty(serviceReference, 
Constants.SERVICE_ID);
         if (contextId != null) {
             ContextComponentTuple tuple = 
getOrCreateContextComponentTuple(contextId);
             tuple.getContext().addResourceProvider(resourceProvider);
+            m_logService.log(LOG_LEVEL, "[HttpContextManagerService] added 
ResourceProvider (" + serviceId
+                + ") for contextId " + contextId);
         }
     }
 
     public void removeResourceProvider(ServiceReference serviceReference, 
Object service) {
         ResourceProvider resourceProvider = (ResourceProvider) service;
         String contextId = getStringProperty(serviceReference, CONTEXT_ID_KEY);
+        long serviceId = getLongProperty(serviceReference, 
Constants.SERVICE_ID);
         if (contextId != null) {
             ContextComponentTuple tuple = 
m_httpContextComponents.get(contextId);
             if (tuple != null) {
                 tuple.getContext().removeResourceProvider(resourceProvider);
+                m_logService.log(LOG_LEVEL, "[HttpContextManagerService] 
removed ResourceProvider (" + serviceId
+                    + ") for contextId " + contextId);
             }
         }
     }
@@ -74,19 +85,25 @@
     public void addSecurityHandler(ServiceReference serviceReference, Object 
service) {
         SecurityHandler securityHandler = (SecurityHandler) service;
         String contextId = getStringProperty(serviceReference, CONTEXT_ID_KEY);
+        long serviceId = getLongProperty(serviceReference, 
Constants.SERVICE_ID);
         if (contextId != null) {
             ContextComponentTuple tuple = 
getOrCreateContextComponentTuple(contextId);
             tuple.getContext().addSecurityHandler(securityHandler);
+            m_logService.log(LOG_LEVEL, "[HttpContextManagerService] added 
SecurityHandler (" + serviceId
+                + ") for contextId " + contextId);
         }
     }
 
     public void removeSecurityHandler(ServiceReference serviceReference, 
Object service) {
         SecurityHandler securityHandler = (SecurityHandler) service;
         String contextId = getStringProperty(serviceReference, CONTEXT_ID_KEY);
+        long serviceId = getLongProperty(serviceReference, 
Constants.SERVICE_ID);
         if (contextId != null) {
             ContextComponentTuple tuple = 
m_httpContextComponents.get(contextId);
             if (tuple != null) {
                 tuple.getContext().removeSecurityHandler(securityHandler);
+                m_logService.log(LOG_LEVEL, "[HttpContextManagerService] 
removed SecurityHandler (" + serviceId
+                    + ") for contextId " + contextId);
             }
         }
     }
@@ -94,19 +111,25 @@
     public void addMimetypeResolver(ServiceReference serviceReference, Object 
service) {
         MimeTypeResolver mimeTypeResolver = (MimeTypeResolver) service;
         String contextId = getStringProperty(serviceReference, CONTEXT_ID_KEY);
+        long serviceId = getLongProperty(serviceReference, 
Constants.SERVICE_ID);
         if (contextId != null) {
             ContextComponentTuple tuple = 
getOrCreateContextComponentTuple(contextId);
             tuple.getContext().addMimeTypeResolver(mimeTypeResolver);
+            m_logService.log(LOG_LEVEL, "[HttpContextManagerService] added 
MimeTypeResolver (" + serviceId
+                + ") for contextId " + contextId);
         }
     }
 
     public void removeMimetypeResolver(ServiceReference serviceReference, 
Object service) {
         MimeTypeResolver mimeTypeResolver = (MimeTypeResolver) service;
         String contextId = getStringProperty(serviceReference, CONTEXT_ID_KEY);
+        long serviceId = getLongProperty(serviceReference, 
Constants.SERVICE_ID);
         if (contextId != null) {
             ContextComponentTuple tuple = 
m_httpContextComponents.get(contextId);
             if (tuple != null) {
                 tuple.getContext().removeMimeTypeResolver(mimeTypeResolver);
+                m_logService.log(LOG_LEVEL, "[HttpContextManagerService] 
removed MimeTypeResolver (" + serviceId
+                    + ") for contextId " + contextId);
             }
         }
     }
@@ -116,6 +139,11 @@
         return (value instanceof String) ? (String) value : null;
     }
 
+    private long getLongProperty(ServiceReference ref, String key) {
+        Object value = ref.getProperty(key);
+        return (value instanceof Long) ? (Long) value : -1;
+    }
+
     private ContextComponentTuple getOrCreateContextComponentTuple(String 
contextId) {
         ContextComponentTuple tuple = m_httpContextComponents.get(contextId);
         if (tuple == null) {

Modified: 
branches/AMDATU-283-dev/integration-tests/src/test/java/org/amdatu/test/integration/base/OAuthTestBase.java
==============================================================================
--- 
branches/AMDATU-283-dev/integration-tests/src/test/java/org/amdatu/test/integration/base/OAuthTestBase.java
 (original)
+++ 
branches/AMDATU-283-dev/integration-tests/src/test/java/org/amdatu/test/integration/base/OAuthTestBase.java
 Tue Mar 29 15:28:52 2011
@@ -86,7 +86,6 @@
         OAuthProtectedTestServlet m_testServlet = new 
OAuthProtectedTestServlet();
         Dictionary<String, String> servletProperties = new Hashtable<String, 
String>();
         servletProperties.put("alias", 
OAuthProtectedTestServlet.SERVLET_ALIAS);
-        servletProperties.put("contextId", 
OAuthProtectedTestServlet.SERVLET_ALIAS);
         Component servletComponent = manager.createComponent()
         .setImplementation(m_testServlet)
         .setInterface(new String[] { Servlet.class.getName() }, 
servletProperties)

Modified: 
branches/AMDATU-283-dev/integration-tests/src/test/java/org/amdatu/test/integration/tests/HttpServiceTest.java
==============================================================================
--- 
branches/AMDATU-283-dev/integration-tests/src/test/java/org/amdatu/test/integration/tests/HttpServiceTest.java
      (original)
+++ 
branches/AMDATU-283-dev/integration-tests/src/test/java/org/amdatu/test/integration/tests/HttpServiceTest.java
      Tue Mar 29 15:28:52 2011
@@ -107,28 +107,31 @@
         filterProperties.put("contextId", SERVLET_ALIAS);
         filterProperties.put(Constants.SERVICE_RANKING, 0);
         Component filterComponent = manager.createComponent()
-        .setImplementation(new TestFilter())
-        .setInterface(new String[] {Filter.class.getName(), 
TestFilterInterface.class.getName()},
-            filterProperties);
+            .setImplementation(new TestFilter())
+            .setInterface(new String[] { Filter.class.getName(), 
TestFilterInterface.class.getName() },
+                filterProperties);
 
         // Now we register a test servlet, also whiteboard-style
         m_testServlet = new TestServlet();
         Dictionary<String, String> servletProperties = new Hashtable<String, 
String>();
         servletProperties.put("alias", SERVLET_ALIAS);
         servletProperties.put("contextId", SERVLET_ALIAS);
-        Component servletComponent = manager.createComponent()
-        .setImplementation(m_testServlet)
-        .setInterface(
-            new String[] { Servlet.class.getName(), 
TestServletInterface.class.getName(), ResourceProvider.class.getName() },
-            servletProperties);
+        Component servletComponent =
+            manager
+                .createComponent()
+                .setImplementation(m_testServlet)
+                .setInterface(
+                    new String[] { Servlet.class.getName(), 
TestServletInterface.class.getName(),
+                        ResourceProvider.class.getName() },
+                    servletProperties);
 
         Component testComponent = manager.createComponent()
-        .setImplementation(this)
-        
.add(manager.createServiceDependency().setService(TestFilterInterface.class).setRequired(true))
-        
.add(manager.createServiceDependency().setService(TestServletInterface.class).setRequired(true))
-        
.add(manager.createServiceDependency().setService(LogService.class).setRequired(true))
-        
.add(manager.createServiceDependency().setService(ConfigurationAdmin.class))
-        
.add(manager.createServiceDependency().setService(DispatcherService.class).setRequired(true));
+            .setImplementation(this)
+            
.add(manager.createServiceDependency().setService(TestFilterInterface.class).setRequired(true))
+            
.add(manager.createServiceDependency().setService(TestServletInterface.class).setRequired(true))
+            
.add(manager.createServiceDependency().setService(LogService.class).setRequired(true))
+            
.add(manager.createServiceDependency().setService(ConfigurationAdmin.class))
+            
.add(manager.createServiceDependency().setService(DispatcherService.class).setRequired(true));
 
         return new Component[] { filterComponent, servletComponent, 
testComponent };
     }
@@ -139,7 +142,8 @@
 
         ConfigProvider configProvider = new ConfigProvider();
         configProvider.addFelixHttpServiceConfig(m_configAdmin);
-        m_logService.log(LogService.LOG_DEBUG, "HttpService config set to " + 
ConfigProvider.HOSTNAME + ":" + ConfigProvider.PORTNR);
+        m_logService.log(LogService.LOG_DEBUG, "HttpService config set to " + 
ConfigProvider.HOSTNAME + ":"
+            + ConfigProvider.PORTNR);
     }
 
     @After
@@ -157,22 +161,12 @@
 
         // Wait until the test servlet is available, for a maximum of 5 seconds
         String url = m_baseUrl + SERVLET_ALIAS;
-        m_logService.log(LogService.LOG_DEBUG, "Start waiting for url '" + url 
+ "' to become available, timeout= " + TIMEOUT + "...");
+        m_logService.log(LogService.LOG_DEBUG, "Start waiting for url '" + url 
+ "' to become available, timeout= "
+            + TIMEOUT + "...");
         if (!ConfigProvider.waitForURL(new URL(url), HttpStatus.SC_OK, 
TIMEOUT)) {
-            // NB: Due to issue 
https://issues.apache.org/jira/browse/FELIX-2714 it may happen that the 
HttpService
-            // throws a connection refused, still listens to the default port 
8080 or returns a 404. Therefore we
-            // retry once to connect to the default port 8080, if that fails 
we skip running this integration test
-            // since it is likely that the reason that it fails is not caused 
by any Amdatu code.
-            url =  "http://"; + ConfigProvider.HOSTNAME + ":" + 
ConfigProvider.DEFAULT_PORTNR + SERVLET_ALIAS;
-            if (!(ConfigProvider.checkURL(new URL(url)) == HttpStatus.SC_OK)) {
-                return;
-            }
+            throw new Exception("Waiting for " + m_baseUrl + SERVLET_ALIAS + " 
timed out");
         }
 
-        // Wait for two seconds such that the Felix whiteboard service has the 
time to receive the filter added
-        // callback and register it. See 
http://jira.amdatu.org/jira/browse/AMDATU-189
-        Thread.sleep(2000);
-
         // Our filter should be registered, use httpclient to do a GET 
request. The filter should
         // set some response header and we check if this header has been set
         HttpClient httpClient = new HttpClient();
@@ -213,23 +207,13 @@
         initialize();
 
         // Wait until the JSP servlet is available, for a maximum of 5 seconds
-        String url = m_baseUrl + "/" + RESOURCE_ID + "/jsp/test.jsp";
-        m_logService.log(LogService.LOG_DEBUG, "Start waiting for url '" + url 
+ "' to become available, timeout= " + TIMEOUT + "...");
+        String url = m_baseUrl + SERVLET_ALIAS + "/jsp/test.jsp";
+        m_logService.log(LogService.LOG_DEBUG, "Start waiting for url '" + url 
+ "' to become available, timeout= "
+            + TIMEOUT + "...");
         if (!ConfigProvider.waitForURL(new URL(url), HttpStatus.SC_OK, 
TIMEOUT)) {
-            // NB: Due to issue 
https://issues.apache.org/jira/browse/FELIX-2714 it may happen that the 
HttpService
-            // throws a connection refused, still listens to the default port 
8080 or returns a 404. Therefore we
-            // retry once to connect to the default port 8080, if that fails 
we skip running this integration test
-            // since it is likely that the reason that it fails is not caused 
by any Amdatu code.
-            url =  "http://"; + ConfigProvider.HOSTNAME + ":" + 
ConfigProvider.DEFAULT_PORTNR + SERVLET_ALIAS;
-            if (!(ConfigProvider.checkURL(new URL(url)) == HttpStatus.SC_OK)) {
-                return;
-            }
+            throw new Exception("Waiting for " + m_baseUrl + SERVLET_ALIAS + " 
timed out");
         }
 
-        // Wait for two seconds such that the Felix whiteboard service has the 
time to receive the filter added
-        // callback and register it. See 
http://jira.amdatu.org/jira/browse/AMDATU-189
-        Thread.sleep(2000);
-
         // Our filter should be registered, use httpclient to do a GET 
request. The filter should
         // set some response header and we check if this header has been set
         HttpClient httpClient = new HttpClient();
@@ -244,7 +228,7 @@
             String responseBody = new String(method.getResponseBody(), 
"UTF-8");
 
             // Check if the response is our test text
-            assertTrue(responseBody.indexOf(TEST_JSP_CONTENT) != -1);
+            assertTrue("Response body did not contain expected content", 
responseBody.indexOf(TEST_JSP_CONTENT) != -1);
         }
         finally {
             // Release the connection.
@@ -264,7 +248,7 @@
         }
 
         public void doFilter(ServletRequest req, ServletResponse res, 
FilterChain chain) throws IOException,
-        ServletException {
+            ServletException {
             ((HttpServletResponse) res).setHeader(TEST_HEADER_BEFORE, 
TEST_HEADER_BEFORE_VALUE);
             chain.doFilter(req, res);
             ((HttpServletResponse) res).setHeader(TEST_HEADER_AFTER, 
TEST_HEADER_AFTER_VALUE);
@@ -294,12 +278,12 @@
         }
 
         public URL getResource(String name) {
+            final String pathPrefix = SERVLET_ALIAS + "/";
+            if (name != null && name.startsWith(pathPrefix)) {
+                return 
m_bundleContext.getBundle().getResource(name.substring(pathPrefix.length()));
+            }
             return null;
         }
-
-        public String getResourceId() {
-            return RESOURCE_ID;
-        }
     }
 
     interface TestServletInterface {
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to