FELIX-4060 : Implement HTTP Service Update (RFC-189) - correct name handling for servlets and filters
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1660311 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/AbstractHandler.java b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/AbstractHandler.java
index ddb578b..1af303a 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/handler/AbstractHandler.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/handler/AbstractHandler.java
@@ -27,14 +27,16 @@
public abstract class AbstractHandler<T extends AbstractHandler> implements Comparable<T>
{
- private final String baseName;
+ private final String name;
private final ExtServletContext context;
private final Map<String, String> initParams;
- public AbstractHandler(ExtServletContext context, final Map<String, String> initParams, String baseName)
+ public AbstractHandler(final ExtServletContext context,
+ final Map<String, String> initParams,
+ final String name)
{
this.context = context;
- this.baseName = baseName;
+ this.name = name;
this.initParams = initParams;
}
@@ -45,10 +47,10 @@
public final String getName()
{
- String name = this.baseName;
+ String name = this.name;
if (name == null)
{
- name = String.format("%s_%d", getSubject().getClass(), this.hashCode());
+ name = getSubject().getClass().getName();
}
return name;
}
diff --git a/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceImpl.java b/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceImpl.java
index 22d2438..5021732 100644
--- a/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceImpl.java
+++ b/http/base/src/main/java/org/apache/felix/http/base/internal/service/HttpServiceImpl.java
@@ -102,7 +102,8 @@
}
}
- final FilterInfo filterInfo = new FilterInfo(null, pattern, ranking, paramMap);
+ final FilterInfo filterInfo = new FilterInfo(String.format("%s_%d", filter.getClass(), this.hashCode()),
+ pattern, ranking, paramMap);
if ( !filterInfo.isValid() )
{
throw new ServletException("Invalid registration information for filter.");
@@ -175,7 +176,8 @@
}
}
- final ServletInfo servletInfo = new ServletInfo(null, alias, 0, paramMap);
+ final ServletInfo servletInfo = new ServletInfo(String.format("%s_%d",servlet.getClass(), this.hashCode()),
+ alias, 0, paramMap);
final ExtServletContext httpContext = getServletContext(context);
final ServletHandler handler = new ServletHandler(null,