Author: bdekruijff at gmail.com
Date: Thu Feb 3 16:53:03 2011
New Revision: 764
Log:
AMDATU-282 prevent NPE
Modified:
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/DispatcherService.java
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/filter/DispatchInterceptFilter.java
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/AbstractHandlerRegistry.java
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/FilterHandlerRegistry.java
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandlerRegistry.java
branches/amdatu-dispatcher/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/service/HttpContextFactoryServiceImpl.java
branches/amdatu-dispatcher/integration-tests/src/test/java/org/amdatu/test/integration/base/OAuthTestBase.java
Modified:
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/DispatcherService.java
==============================================================================
---
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/DispatcherService.java
(original)
+++
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/DispatcherService.java
Thu Feb 3 16:53:03 2011
@@ -16,12 +16,6 @@
*/
package org.amdatu.web.dispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-
-import org.amdatu.web.dispatcher.context.HttpContextManager;
-import org.amdatu.web.dispatcher.dispatch.FilterPipeline;
-import org.osgi.service.log.LogService;
public interface DispatcherService {
@@ -29,12 +23,4 @@
public final static String PATTERN_KEY = "pattern";
public final static String ALIAS_KEY = "alias";
public final static String INIT_KEY_PREFIX = "init.";
-
- FilterPipeline getFilterPipeline(HttpServletRequest httpServletRequest);
-
- HttpContextManager getHttpContextManager();
-
- LogService getLogService();
-
- ServletContext getServletContext();
}
Modified:
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/filter/DispatchInterceptFilter.java
==============================================================================
---
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/filter/DispatchInterceptFilter.java
(original)
+++
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/filter/DispatchInterceptFilter.java
Thu Feb 3 16:53:03 2011
@@ -30,6 +30,7 @@
import org.amdatu.web.dispatcher.DispatcherService;
import org.amdatu.web.dispatcher.dispatch.FilterPipeline;
+import org.amdatu.web.dispatcher.service.DispatcherServiceImpl;
import org.osgi.service.log.LogService;
/**
@@ -40,12 +41,12 @@
*/
public final class DispatchInterceptFilter implements Filter {
- private DispatcherService m_dispatcherService;
+ private DispatcherServiceImpl m_dispatcherService;
private LogService m_logService;
private FilterConfig m_filterConfig;
private boolean m_initialized = false;
- public void setDispatcherService(DispatcherService dispatcherService) {
+ public void setDispatcherService(DispatcherServiceImpl dispatcherService) {
m_dispatcherService = dispatcherService;
}
Modified:
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/AbstractHandlerRegistry.java
==============================================================================
---
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/AbstractHandlerRegistry.java
(original)
+++
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/AbstractHandlerRegistry.java
Thu Feb 3 16:53:03 2011
@@ -31,9 +31,9 @@
public abstract class AbstractHandlerRegistry {
- private DispatcherService m_dispatcherService;
+ private DispatcherServiceImpl m_dispatcherService;
- public AbstractHandlerRegistry(DispatcherService dispatcherService) {
+ public AbstractHandlerRegistry(DispatcherServiceImpl dispatcherService) {
m_dispatcherService = dispatcherService;
}
Modified:
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/FilterHandlerRegistry.java
==============================================================================
---
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/FilterHandlerRegistry.java
(original)
+++
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/FilterHandlerRegistry.java
Thu Feb 3 16:53:03 2011
@@ -31,6 +31,7 @@
import org.amdatu.web.dispatcher.DispatchFilterMatcher;
import org.amdatu.web.dispatcher.DispatcherService;
import org.amdatu.web.dispatcher.context.HandlerServletContext;
+import org.amdatu.web.dispatcher.service.DispatcherServiceImpl;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
@@ -43,7 +44,7 @@
new HashMap<ServiceReference, FilterHandler>();
private Set<DispatchFilterMatcher> m_matchers = new
HashSet<DispatchFilterMatcher>();
- public FilterHandlerRegistry(DispatcherService dispatcherService) {
+ public FilterHandlerRegistry(DispatcherServiceImpl dispatcherService) {
super(dispatcherService);
}
Modified:
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandlerRegistry.java
==============================================================================
---
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandlerRegistry.java
(original)
+++
branches/amdatu-dispatcher/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandlerRegistry.java
Thu Feb 3 16:53:03 2011
@@ -42,7 +42,7 @@
private Set<DispatchServletMatcher> m_matchers = new
HashSet<DispatchServletMatcher>();
- public ServletHandlerRegistry(DispatcherService dispatcherService) {
+ public ServletHandlerRegistry(DispatcherServiceImpl dispatcherService) {
super(dispatcherService);
}
Modified:
branches/amdatu-dispatcher/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/service/HttpContextFactoryServiceImpl.java
==============================================================================
---
branches/amdatu-dispatcher/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/service/HttpContextFactoryServiceImpl.java
(original)
+++
branches/amdatu-dispatcher/amdatu-web/httpcontext/src/main/java/org/amdatu/web/httpcontext/service/HttpContextFactoryServiceImpl.java
Thu Feb 3 16:53:03 2011
@@ -28,21 +28,21 @@
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.http.HttpContext;
import org.osgi.service.http.HttpService;
-import org.osgi.service.http.NamespaceException;
import org.osgi.service.log.LogService;
/**
* This class manages the creation of private HTTP contexts to be used by OSGi
bundles. There are many things to
* think off when creating such a context, for that reason this service
handles it.
+ *
* @author ivol
*/
public class HttpContextFactoryServiceImpl implements
HttpContextServiceFactory {
- // Service depedencies, injected by the Felix dependency manager
- private volatile HttpService m_httpService;
+
private volatile LogService m_logService;
/**
* Creates a new http context.
+ *
* @param bundleContext The bundle context
* @param resourceId The resource id
* @return The newly created http context
@@ -58,18 +58,18 @@
properties.put(HttpContextImpl.RESOURCEID_PROP,
resourceProvider.getResourceId());
}
}
-
+
// Create a new dependency manager such that we have a dependency
manager for the proper bundle context
DependencyManager manager = new DependencyManager(bundleContext);
Component component = manager.createComponent();
manager.add(
component
- .setImplementation(HttpContextImpl.class)
- .setInterface(HttpContext.class.getName(), properties)
-
.add(manager.createServiceDependency().setService(HttpService.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(MimeTypeService.class).setRequired(false))
-
.add(manager.createServiceDependency().setService(LogService.class).setRequired(true)));
+ .setImplementation(HttpContextImpl.class)
+ .setInterface(HttpContext.class.getName(), properties)
+
.add(manager.createServiceDependency().setService(HttpService.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(MimeTypeService.class).setRequired(false))
+
.add(manager.createServiceDependency().setService(LogService.class).setRequired(true)));
return component;
}
@@ -80,21 +80,8 @@
public Component create(BundleContext bundleContext, ResourceProvider
resourceProvider) {
// Create context and bind all resources to it
String resourceId = resourceProvider.getResourceId();
- Component component = null;
-// try {
-// String resId = HttpContextUtil.getResourceAlias(resourceId);
-
- // Create the http context
- component = internalCreate(bundleContext, resourceProvider);
-// HttpContext context = (HttpContext) component.getService();
-
- // And register all resources on /[resourceId]/*
-// m_httpService.registerResources(resId, "", context);
-
- m_logService.log(LogService.LOG_INFO, "Http context created for '"
+ resourceId + "'");
-// } catch (NamespaceException e) {
-// m_logService.log(LogService.LOG_ERROR, "Could not bind resources
to '" + resourceId + "'", e);
-// }
+ Component component = internalCreate(bundleContext, resourceProvider);
+ m_logService.log(LogService.LOG_INFO, "Http context created for '" +
resourceId + "'");
return component;
}
}
Modified:
branches/amdatu-dispatcher/integration-tests/src/test/java/org/amdatu/test/integration/base/OAuthTestBase.java
==============================================================================
---
branches/amdatu-dispatcher/integration-tests/src/test/java/org/amdatu/test/integration/base/OAuthTestBase.java
(original)
+++
branches/amdatu-dispatcher/integration-tests/src/test/java/org/amdatu/test/integration/base/OAuthTestBase.java
Thu Feb 3 16:53:03 2011
@@ -86,33 +86,33 @@
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)
-
.add(manager.createServiceDependency().setService(LogService.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(OAuthServiceConsumerRegistry.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(OAuthTokenProvider.class).setRequired(true));
+ .setImplementation(m_testServlet)
+ .setInterface(new String[] { Servlet.class.getName() },
servletProperties)
+
.add(manager.createServiceDependency().setService(LogService.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(OAuthServiceConsumerRegistry.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(OAuthTokenProvider.class).setRequired(true));
Component testComponent = manager.createComponent()
- .setImplementation(this)
-
.add(manager.createServiceDependency().setService(OAuthRequestTokenServlet.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(OAuthTokenProvider.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(OAuthServiceProvider.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(OAuthServiceConsumerRegistry.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(HttpService.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(UserAdmin.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(LoginService.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(StorageProvider.class).setRequired(true))
-
.add(manager.createServiceDependency().setService(LogService.class).setRequired(true));
+ .setImplementation(this)
+
.add(manager.createServiceDependency().setService(OAuthRequestTokenServlet.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(OAuthTokenProvider.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(OAuthServiceProvider.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(OAuthServiceConsumerRegistry.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(HttpService.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(UserAdmin.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(LoginService.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(StorageProvider.class).setRequired(true))
+
.add(manager.createServiceDependency().setService(LogService.class).setRequired(true));
return new Component[] { servletComponent, testComponent };
}
protected Option provisionBundles() {
return provision(
- amdatuTenantStoreFSService(),
- amdatuTenantService(),
- amdatuTenantUserAdminDecoratorService(),
+ amdatuTenantStoreFSService(),
+ amdatuTenantService(),
+ amdatuTenantUserAdminDecoratorService(),
felixHttpServiceJetty(),
amdatuDispatcher(),
amdatuHostnameTenantResolver(),
@@ -160,8 +160,10 @@
protected Map<String, String> getCookieHeader() {
Map<String, String> requestHeaders = new HashMap<String, String>();
- String header = m_cookieHeaderElement.getName() + "=" +
m_cookieHeaderElement.getValue();
- requestHeaders.put("Cookie", header);
+ if (m_cookieHeaderElement != null) {
+ String header = m_cookieHeaderElement.getName() + "=" +
m_cookieHeaderElement.getValue();
+ requestHeaders.put("Cookie", header);
+ }
return requestHeaders;
}
}