FELIX-4888 : ServletHandler's are not sorted by longest matching path. DTO handling (WiP)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1680302 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
index 07fa10f..e4e5438 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/RuntimeDTOBuilder.java
@@ -52,13 +52,15 @@
{
final RuntimeDTO runtimeDTO = new RuntimeDTO();
runtimeDTO.serviceDTO = createServiceDTO();
+ runtimeDTO.servletContextDTOs = createContextDTOs();
+
runtimeDTO.failedErrorPageDTOs = registry.getFailedDTOHolder().failedErrorPageDTOs.toArray(new FailedErrorPageDTO[registry.getFailedDTOHolder().failedErrorPageDTOs.size()]);
runtimeDTO.failedFilterDTOs = registry.getFailedDTOHolder().failedFilterDTOs.toArray(new FailedFilterDTO[registry.getFailedDTOHolder().failedFilterDTOs.size()]);
runtimeDTO.failedListenerDTOs = registry.getFailedDTOHolder().failedListenerDTOs.toArray(new FailedListenerDTO[registry.getFailedDTOHolder().failedListenerDTOs.size()]);
runtimeDTO.failedResourceDTOs = registry.getFailedDTOHolder().failedResourceDTOs.toArray(new FailedResourceDTO[registry.getFailedDTOHolder().failedResourceDTOs.size()]);
runtimeDTO.failedServletContextDTOs = registry.getFailedDTOHolder().failedServletContextDTO.toArray(new FailedServletContextDTO[registry.getFailedDTOHolder().failedServletContextDTO.size()]);
runtimeDTO.failedServletDTOs = registry.getFailedDTOHolder().failedServletDTOs.toArray(new FailedServletDTO[registry.getFailedDTOHolder().failedServletDTOs.size()]);
- runtimeDTO.servletContextDTOs = createContextDTOs();
+
return runtimeDTO;
}
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
index f48863d..0815563 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletContextDTOBuilder.java
@@ -44,6 +44,12 @@
dto.name = info.getName();
dto.serviceId = info.getServiceId();
+ dto.errorPageDTOs = BuilderConstants.ERROR_PAGE_DTO_ARRAY;
+ dto.filterDTOs = BuilderConstants.FILTER_FAILURE_DTO_ARRAY;
+ dto.listenerDTOs = BuilderConstants.LISTENER_DTO_ARRAY;
+ dto.resourceDTOs = BuilderConstants.RESOURCE_DTO_ARRAY;
+ dto.servletDTOs = BuilderConstants.SERVLET_DTO_ARRAY;
+
if ( reason != -1 )
{
((FailedServletContextDTO)dto).failureReason = reason;
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
index 1e00f87..0cc28af 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ServletDTOBuilder.java
@@ -56,6 +56,8 @@
BaseServletDTOBuilder.fill(dto, info);
+ dto.patterns = BuilderConstants.EMPTY_STRING_ARRAY;
+
return dto;
}
}