You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/01/15 12:44:39 UTC
svn commit: r612089 -
/incubator/sling/whiteboard/fmeschbe/resource/sling/servlet-resolver/src/main/java/org/apache/sling/servlet/resolver/SlingServletResolver.java
Author: fmeschbe
Date: Tue Jan 15 03:44:37 2008
New Revision: 612089
URL: http://svn.apache.org/viewvc?rev=612089&view=rev
Log:
Multiple:
* Fix servlet root path setting (must have leading and trailing slash)
* getServletAt: If there it is not possible to list and find servlets
at the location, try location/basename directly
* ServiceRegistration must use resource provider not servlet
Modified:
incubator/sling/whiteboard/fmeschbe/resource/sling/servlet-resolver/src/main/java/org/apache/sling/servlet/resolver/SlingServletResolver.java
Modified: incubator/sling/whiteboard/fmeschbe/resource/sling/servlet-resolver/src/main/java/org/apache/sling/servlet/resolver/SlingServletResolver.java
URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/fmeschbe/resource/sling/servlet-resolver/src/main/java/org/apache/sling/servlet/resolver/SlingServletResolver.java?rev=612089&r1=612088&r2=612089&view=diff
==============================================================================
--- incubator/sling/whiteboard/fmeschbe/resource/sling/servlet-resolver/src/main/java/org/apache/sling/servlet/resolver/SlingServletResolver.java (original)
+++ incubator/sling/whiteboard/fmeschbe/resource/sling/servlet-resolver/src/main/java/org/apache/sling/servlet/resolver/SlingServletResolver.java Tue Jan 15 03:44:37 2008
@@ -88,10 +88,9 @@
* description="%resolver.path.description"
*/
public static final String PROP_PATH = "path";
-
+
/**
- * @scr.property value="/apps"
- * label="%resolver.servletRoot.name"
+ * @scr.property value="/apps" label="%resolver.servletRoot.name"
* description="%resolver.servletRoot.description"
*/
public static final String PROP_SERVLET_ROOT = "servletRoot";
@@ -110,7 +109,7 @@
private ComponentContext context;
private String[] path;
-
+
private String servletRoot;
private Servlet coreDefaultServlet;
@@ -320,6 +319,12 @@
result = resource.adaptTo(Servlet.class);
}
}
+ } else {
+ // check alternative variant using location/basename directly
+ Resource scriptResource = resolver.getResource(location + "/" + baseName);
+ if (scriptResource != null) {
+ result = scriptResource.adaptTo(Servlet.class);
+ }
}
return result;
@@ -408,14 +413,20 @@
path = new String[] { "/" };
}
- String tmpRoot = OsgiUtil.toString(properties.get(PROP_SERVLET_ROOT), null);
+ String tmpRoot = OsgiUtil.toString(properties.get(PROP_SERVLET_ROOT),
+ null);
if (tmpRoot == null) {
tmpRoot = path[0];
- } else if (!tmpRoot.startsWith("/")) {
- tmpRoot = "/" + tmpRoot;
+ } else {
+ if (!tmpRoot.startsWith("/")) {
+ tmpRoot = "/" + tmpRoot;
+ }
+ if (!tmpRoot.endsWith("/")) {
+ tmpRoot += "/";
+ }
}
servletRoot = tmpRoot;
-
+
Collection<ServiceReference> refs;
synchronized (this) {
@@ -510,7 +521,7 @@
params.put(ResourceProvider.ROOTS, provider.getSerlvetPaths());
ServiceRegistration reg = context.getBundleContext().registerService(
- ResourceProvider.SERVICE_NAME, servlet, params);
+ ResourceProvider.SERVICE_NAME, provider, params);
servletsByReference.put(reference, reg);
@@ -528,7 +539,7 @@
if (registration != null) {
registration.unregister();
-
+
Servlet servlet = (Servlet) context.locateService(REF_SERVLET,
reference);
String name = servlet.getServletConfig().getServletName();