FELIX-4060 : Minor refactoring; code cleanup

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1663237 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseDTOBuilder.java
index 9546e6a..86fe97b 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseDTOBuilder.java
@@ -22,10 +22,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import org.osgi.dto.DTO;
 
@@ -44,11 +41,6 @@
 
     abstract U buildDTO(T whiteboardService, long servletContextId);
 
-    protected <K, V> Map<K, V> copyWithDefault(Map<K, V> map)
-    {
-        return map == null ? Collections.<K, V>emptyMap() : new HashMap<K, V>(map);
-    }
-
     protected <V> V[] copyWithDefault(V[] array, V[] defaultArray)
     {
         return array == null ? defaultArray : copyOf(array, array.length);
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseServletDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseServletDTOBuilder.java
index 50d5d94..34a26d4 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseServletDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BaseServletDTOBuilder.java
@@ -32,7 +32,7 @@
         Servlet servlet = servletHandler.getServlet();
 
         dto.asyncSupported = info.isAsyncSupported();
-        dto.initParams = copyWithDefault(info.getInitParameters());
+        dto.initParams = info.getInitParameters();
         dto.name = info.getName();
         dto.serviceId = servletHandler.getServletInfo().getServiceId();
         dto.servletContextId = servletContextId;
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BuilderConstants.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BuilderConstants.java
new file mode 100644
index 0000000..ae9cb15
--- /dev/null
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/BuilderConstants.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.http.base.internal.runtime.dto;
+
+import org.osgi.service.http.runtime.dto.ErrorPageDTO;
+import org.osgi.service.http.runtime.dto.FilterDTO;
+import org.osgi.service.http.runtime.dto.ListenerDTO;
+import org.osgi.service.http.runtime.dto.ResourceDTO;
+import org.osgi.service.http.runtime.dto.ServletContextDTO;
+import org.osgi.service.http.runtime.dto.ServletDTO;
+
+public abstract class BuilderConstants
+{
+
+    public static final String[] STRING_ARRAY = new String[0];
+
+    public static final ServletContextDTO[] CONTEXT_DTO_ARRAY = new ServletContextDTO[0];
+
+    public static final ServletDTO[] SERVLET_DTO_ARRAY = new ServletDTO[0];
+    public static final ResourceDTO[] RESOURCE_DTO_ARRAY = new ResourceDTO[0];
+    public static final FilterDTO[] FILTER_DTO_ARRAY = new FilterDTO[0];
+    public static final ErrorPageDTO[] ERROR_PAGE_DTO_ARRAY = new ErrorPageDTO[0];
+    public static final ListenerDTO[] LISTENER_DTO_ARRAY = new ListenerDTO[0];
+}
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ErrorPageDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ErrorPageDTOBuilder.java
index 5fef87e..b17d320 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ErrorPageDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ErrorPageDTOBuilder.java
@@ -26,15 +26,13 @@
 
 final class ErrorPageDTOBuilder extends BaseServletDTOBuilder<ErrorPage, ErrorPageDTO>
 {
-    private static final String[] STRING_ARRAY = new String[0];
-
     @Override
     ErrorPageDTO buildDTO(ErrorPage errorPage, long servletConextId)
     {
         ErrorPageDTO errorPageDTO = new ErrorPageDTO();
         setBaseFields(errorPageDTO, errorPage.getServletHandler(), servletConextId);
         errorPageDTO.errorCodes = getErrorCodes(errorPage.getErrorCodes());
-        errorPageDTO.exceptions = errorPage.getExceptions().toArray(STRING_ARRAY);
+        errorPageDTO.exceptions = errorPage.getExceptions().toArray(BuilderConstants.STRING_ARRAY);
         return errorPageDTO;
     }
 
@@ -44,7 +42,7 @@
         long[] result = new long[errorCodes.size()];
         for (int i = 0; i < result.length; i++)
         {
-            result[i] = (long) itr.next();
+            result[i] = itr.next();
         }
         return result;
     }
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FilterDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FilterDTOBuilder.java
index 6c1f9a4..1023f5b 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FilterDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/FilterDTOBuilder.java
@@ -26,8 +26,6 @@
 
 final class FilterDTOBuilder extends BaseDTOBuilder<FilterHandler, FilterDTO>
 {
-    private static final String[] STRING_ARRAY = new String[0];
-
     @Override
     FilterDTO buildDTO(FilterHandler filterHandler, long servletContextId)
     {
@@ -36,13 +34,13 @@
         FilterDTO filterDTO = new FilterDTO();
         filterDTO.asyncSupported = info.isAsyncSupported();
         filterDTO.dispatcher = getNames(info.getDispatcher());
-        filterDTO.initParams = copyWithDefault(info.getInitParameters());
+        filterDTO.initParams = info.getInitParameters();
         filterDTO.name = info.getName();
-        filterDTO.patterns = copyWithDefault(info.getPatterns(), STRING_ARRAY);
-        filterDTO.regexs = copyWithDefault(info.getRegexs(), STRING_ARRAY);
+        filterDTO.patterns = copyWithDefault(info.getPatterns(), BuilderConstants.STRING_ARRAY);
+        filterDTO.regexs = copyWithDefault(info.getRegexs(), BuilderConstants.STRING_ARRAY);
         filterDTO.serviceId = filterHandler.getFilterInfo().getServiceId();
         filterDTO.servletContextId = servletContextId;
-        filterDTO.servletNames = copyWithDefault(info.getServletNames(), STRING_ARRAY);
+        filterDTO.servletNames = copyWithDefault(info.getServletNames(), BuilderConstants.STRING_ARRAY);
 
         return filterDTO;
     }
@@ -51,7 +49,7 @@
     {
         if (dispatcher == null)
         {
-            return STRING_ARRAY;
+            return BuilderConstants.STRING_ARRAY;
         }
 
         String[] names = new String[dispatcher.length];
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ResourceDTOBuilder.java b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ResourceDTOBuilder.java
index 5fa0156..e9b7e09 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ResourceDTOBuilder.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/runtime/dto/ResourceDTOBuilder.java
@@ -24,15 +24,13 @@
 
 final class ResourceDTOBuilder extends BaseDTOBuilder<ServletHandler, ResourceDTO>
 {
-    private static final String[] STRING_ARRAY = new String[0];
-
     @Override
     ResourceDTO buildDTO(ServletHandler handler, long servletContextId)
     {
         ServletInfo servletInfo = handler.getServletInfo();
 
         ResourceDTO resourceDTO = new ResourceDTO();
-        resourceDTO.patterns = copyWithDefault(servletInfo.getPatterns(), STRING_ARRAY);
+        resourceDTO.patterns = copyWithDefault(servletInfo.getPatterns(), BuilderConstants.STRING_ARRAY);
         resourceDTO.prefix = servletInfo.getPrefix();
         resourceDTO.serviceId = servletInfo.getServiceId();
         resourceDTO.servletContextId = servletContextId;
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 6959fdc..2e8b320 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
@@ -51,7 +51,6 @@
 
 public final class RuntimeDTOBuilder
 {
-    private static final ServletContextDTO[] CONTEXT_DTO_ARRAY = new ServletContextDTO[0];
 
     private static final ServletDTOBuilder SERVLET_DTO_BUILDER = new ServletDTOBuilder();
     private static final ResourceDTOBuilder RESOURCE_DTO_BUILDER = new ResourceDTOBuilder();
@@ -87,15 +86,15 @@
                 final FailedServletContextDTO dto = new FailedServletContextDTO();
                 dto.attributes = Collections.emptyMap();
                 dto.contextPath = sch.getPath();
-                dto.errorPageDTOs = new ErrorPageDTO[0];
+                dto.errorPageDTOs = BuilderConstants.ERROR_PAGE_DTO_ARRAY;
                 dto.failureReason = DTOConstants.FAILURE_REASON_VALIDATION_FAILED;
-                dto.filterDTOs = new FilterDTO[0];
+                dto.filterDTOs = BuilderConstants.FILTER_DTO_ARRAY;
                 dto.initParams = sch.getInitParameters();
-                dto.listenerDTOs = new ListenerDTO[0];
+                dto.listenerDTOs = BuilderConstants.LISTENER_DTO_ARRAY;
                 dto.name = sch.getName();
-                dto.resourceDTOs = new ResourceDTO[0];
+                dto.resourceDTOs = BuilderConstants.RESOURCE_DTO_ARRAY;
                 dto.serviceId = sch.getServiceId();
-                dto.servletDTOs = new ServletDTO[0];
+                dto.servletDTOs = BuilderConstants.SERVLET_DTO_ARRAY;
 
                 failedServletContextDTOs.add(dto);
             }
@@ -131,7 +130,7 @@
                     registry.getHandlerRuntime(context),
                     registry.getListenerRuntime(context)));
         }
-        return contextDTOs.toArray(CONTEXT_DTO_ARRAY);
+        return contextDTOs.toArray(BuilderConstants.CONTEXT_DTO_ARRAY);
     }
 
     private ServletContextDTO createContextDTO(ContextHandler context,
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 83b76c2..f32f815 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
@@ -38,11 +38,6 @@
 
 final class ServletContextDTOBuilder
 {
-    private static final ServletDTO[] SERVLET_DTO_ARRAY = new ServletDTO[0];
-    private static final ResourceDTO[] RESOURCE_DTO_ARRAY = new ResourceDTO[0];
-    private static final FilterDTO[] FILTER_DTO_ARRAY = new FilterDTO[0];
-    private static final ErrorPageDTO[] ERROR_PAGE_DTO_ARRAY = new ErrorPageDTO[0];
-    private static final ListenerDTO[] LISTENER_DTO_ARRAY = new ListenerDTO[0];
 
     private final ContextHandler contextHandler;
     private final ServletDTO[] servletDTOs;
@@ -60,15 +55,15 @@
     {
         this.contextHandler = contextHandler;
         this.servletDTOs = servletDTOs != null ?
-                servletDTOs.toArray(SERVLET_DTO_ARRAY) : SERVLET_DTO_ARRAY;
+                servletDTOs.toArray(BuilderConstants.SERVLET_DTO_ARRAY) : BuilderConstants.SERVLET_DTO_ARRAY;
         this.resourceDTOs = resourceDTOs != null ?
-                resourceDTOs.toArray(RESOURCE_DTO_ARRAY) : RESOURCE_DTO_ARRAY;
+                resourceDTOs.toArray(BuilderConstants.RESOURCE_DTO_ARRAY) : BuilderConstants.RESOURCE_DTO_ARRAY;
         this.filterDTOs = filterDTOs != null ?
-                filterDTOs.toArray(FILTER_DTO_ARRAY) : FILTER_DTO_ARRAY;
+                filterDTOs.toArray(BuilderConstants.FILTER_DTO_ARRAY) : BuilderConstants.FILTER_DTO_ARRAY;
         this.errorPageDTOs = errorPageDTOs != null ?
-                errorPageDTOs.toArray(ERROR_PAGE_DTO_ARRAY) : ERROR_PAGE_DTO_ARRAY;
+                errorPageDTOs.toArray(BuilderConstants.ERROR_PAGE_DTO_ARRAY) : BuilderConstants.ERROR_PAGE_DTO_ARRAY;
         this.listenerDTOs = listenerDTOs != null ?
-                listenerDTOs.toArray(LISTENER_DTO_ARRAY) : LISTENER_DTO_ARRAY;
+                listenerDTOs.toArray(BuilderConstants.LISTENER_DTO_ARRAY) : BuilderConstants.LISTENER_DTO_ARRAY;
     }
 
     ServletContextDTO build()
@@ -82,12 +77,13 @@
         contextDTO.contextPath = context.getContextPath();
         contextDTO.errorPageDTOs = errorPageDTOs;
         contextDTO.filterDTOs = filterDTOs;
-        contextDTO.initParams = getInitParameters(context);
+        contextDTO.initParams = contextInfo.getInitParameters();
         contextDTO.listenerDTOs = listenerDTOs;
         contextDTO.name = context.getServletContextName();
         contextDTO.resourceDTOs = resourceDTOs;
         contextDTO.servletDTOs = servletDTOs;
         contextDTO.serviceId = contextId;
+
         return contextDTO;
     }
 
@@ -124,14 +120,4 @@
                 byte.class.isAssignableFrom(type) ||
                 char.class.isAssignableFrom(type);
     }
-
-    private Map<String, String> getInitParameters(ServletContext context)
-    {
-        Map<String, String> initParameters = new HashMap<String, String>();
-        for (String name : list(context.getInitParameterNames()))
-        {
-            initParameters.put(name, context.getInitParameter(name));
-        }
-        return initParameters;
-    }
 }