forrest-svn mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bd...@apache.org
Subject svn commit: r1096666 - /forrest/trunk/whiteboard/forrest-osgi/org.apache.forrest.servlet/src/java/org/apache/forrest/http/ForrestServlet.java
Date Tue, 26 Apr 2011 05:49:41 GMT
Author: bdube
Date: Tue Apr 26 05:49:41 2011
New Revision: 1096666

URL: http://svn.apache.org/viewvc?rev=1096666&view=rev
Log:
Refactor service tracking and simplify logging in servlet

Modified:
    forrest/trunk/whiteboard/forrest-osgi/org.apache.forrest.servlet/src/java/org/apache/forrest/http/ForrestServlet.java

Modified: forrest/trunk/whiteboard/forrest-osgi/org.apache.forrest.servlet/src/java/org/apache/forrest/http/ForrestServlet.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest-osgi/org.apache.forrest.servlet/src/java/org/apache/forrest/http/ForrestServlet.java?rev=1096666&r1=1096665&r2=1096666&view=diff
==============================================================================
--- forrest/trunk/whiteboard/forrest-osgi/org.apache.forrest.servlet/src/java/org/apache/forrest/http/ForrestServlet.java
(original)
+++ forrest/trunk/whiteboard/forrest-osgi/org.apache.forrest.servlet/src/java/org/apache/forrest/http/ForrestServlet.java
Tue Apr 26 05:49:41 2011
@@ -57,44 +57,44 @@ public class ForrestServlet extends Http
   public ForrestServlet(final BundleContext context) {
     mBundleContext = context;
 
-    Filter filter;
-
-    // track input plugins
     try {
-      filter = context.createFilter("(&("
-                                    + Constants.OBJECTCLASS
-                                    + "=" + ForrestPlugin.class.getName() + ")"
-                                    + "(pluginType=" + ForrestPlugin.TYPE_INPUT + ")"
-                                    + ")");
-      mInputPluginTracker = new ServiceTracker(context, filter, null);
+      // track input plugins
+      mInputPluginTracker = buildPluginTracker(ForrestPlugin.TYPE_INPUT);
       mInputPluginTracker.open();
-    } catch (InvalidSyntaxException ise) {
-      // TODO: log failure
-    }
 
-    // track output plugins
-    try {
-      filter = context.createFilter("(&("
-                                    + Constants.OBJECTCLASS
-                                    + "=" + ForrestPlugin.class.getName() + ")"
-                                    + "(pluginType=" + ForrestPlugin.TYPE_OUTPUT + ")"
-                                    + ")");
-      mOutputPluginTracker = new ServiceTracker(context, filter, null);
+      // track output plugins
+      mOutputPluginTracker = buildPluginTracker(ForrestPlugin.TYPE_OUTPUT);
       mOutputPluginTracker.open();
     } catch (InvalidSyntaxException ise) {
-      // TODO: log failure
+      // TODO handle failure with grace
+      LOG.debug("Failed to track plugins: " + ise);
     }
   }
 
+  private ServiceTracker buildPluginTracker(String type) throws InvalidSyntaxException {
+    String filterFormat = new StringBuilder()
+      .append("(&(")
+      .append(Constants.OBJECTCLASS)
+      .append("=").append(ForrestPlugin.class.getName()).append(")")
+      .append("(pluginType=%s))").toString();
+
+    String filterString = String.format(filterFormat, type);
+    LOG.debug("Building service tracker with LDAP filter: " + filterString);
+
+    Filter filter = mBundleContext.createFilter(filterString);
+
+    return new  ServiceTracker(mBundleContext, filter, null);
+  }
+
   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
     throws ServletException, IOException {
 
     String pathInfo = req.getPathInfo();
-    LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "doGet: " + pathInfo);
+    LOG.debug("doGet: " + pathInfo);
     File rootPath = new File(System.getProperty("project.home"),
                              System.getProperty("project.xdocs-dir"));
-    LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "project.xdocs-dir:
" + rootPath.getAbsolutePath());
+    LOG.debug("project.xdocs-dir: " + rootPath.getAbsolutePath());
 
     if (!rootPath.canRead()) {
       // not much to do if the source area is not readable
@@ -103,19 +103,19 @@ public class ForrestServlet extends Http
       return;
     }
 
-    LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "Can read " + rootPath.getAbsolutePath());
+    LOG.debug("Can read " + rootPath.getAbsolutePath());
     File source = new File(rootPath, pathInfo);
 
     if (source.canRead()) {
       // source exists on disk and is readable
-      LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "Can read " + source.getAbsolutePath());
+      LOG.debug("Can read " + source.getAbsolutePath());
       doFileResponse(req, resp, source);
 
       return;
     }
 
     // source does not exist on disk or is not readable
-    LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "Cannot read " + source.getAbsolutePath());
+    LOG.debug("Cannot read " + source.getAbsolutePath());
 
     File[] files = source.getParentFile().listFiles();
     Arrays.sort(files);
@@ -141,10 +141,9 @@ public class ForrestServlet extends Http
 
         if (extension > 0) {
           String base = name.substring(0, extension);
-          LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, name + " -->
" + base);
+          LOG.debug(name + " --> " + base);
 
           if (base.equals(sourceBasename)) {
-            LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "Found something,
right here");
             foundMatch = true;
             sourceUri = files[i].toURI();
             break;
@@ -158,7 +157,7 @@ public class ForrestServlet extends Http
       String sourceFormat = name;
       String logMsg = "transform input " + sourceFormat + " into output " + requestUri;
 
-      LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, logMsg);
+      LOG.debug(logMsg);
 
       String pluginType;
 
@@ -172,21 +171,21 @@ public class ForrestServlet extends Http
           for (int i = 0; i < outRefs.length; i++) {
             // XXX use property name, something like PROP_CONTENT_TYPE
             pluginType = (String) outRefs[i].getProperty("contentType");
-            LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "Found an output
plugin for format: " + pluginType);
+            LOG.debug("Found an output plugin for format: " + pluginType);
 
             if (null != pluginType
                 && pluginType.equals
                 (ContentType.getContentTypeByName(requestUri))) {
-              LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "It's a match.
Transform it.");
+              LOG.debug("It's a match. Transform it.");
 
               outputPlugin = (ForrestPlugin) mOutputPluginTracker.getService(outRefs[i]);
               break;
             } else {
-              LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "Skipping
" + pluginType + " format for " + ContentType.getContentTypeByName(requestUri));
+              LOG.debug("Skipping " + pluginType + " format for " + ContentType.getContentTypeByName(requestUri));
             }
           }
         } else {
-          LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "List of output
plugins is null");
+          LOG.debug("List of output plugins is null");
         }
       }
 
@@ -200,24 +199,22 @@ public class ForrestServlet extends Http
           for (int i = 0; i < inRefs.length; i++) {
             // XXX use property, something like PROP_CONTENT_TYPE
             pluginType = (String) inRefs[i].getProperty("contentType");
-            LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "Found an input
plugin for format: " + pluginType);
+            LOG.debug("Found an input plugin for format: " + pluginType);
 
             if (null != pluginType
                 && pluginType.equals
                 (ContentType.getContentTypeByName(sourceFormat))) {
-              LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "It's a match.
Transform it.");
+              LOG.debug("It's a match. Transform it.");
 
               inputPlugin = (ForrestPlugin) mInputPluginTracker.getService(inRefs[i]);
               break;
             } else {
-              LogPlugin.getDefault().getLogService().log
-                (LogService.LOG_DEBUG,
-                 "Skipping " + pluginType + " format for "
-                 + ContentType.getContentTypeByName(sourceFormat));
+              LOG.debug("Skipping " + pluginType + " format for "
+                        + ContentType.getContentTypeByName(sourceFormat));
             }
           }
         } else {
-          LogPlugin.getDefault().getLogService().log(LogService.LOG_DEBUG, "List of input
plugins is null");
+          LOG.debug("List of input plugins is null");
         }
       }
 
@@ -285,4 +282,19 @@ public class ForrestServlet extends Http
     return path + (path.endsWith("/") ? "" : "/") + index;
   }
 
+  /*
+   * Convenience wrapper to allow typing LOG.debug(msg)
+   */
+  static class LOG {
+
+    static void debug(String msg) {
+      LogService service = LogPlugin.getDefault().getLogService();
+
+      if (null != service) {
+        service.log(LogService.LOG_DEBUG, msg);
+      }
+    }
+
+  }
+
 }



Mime
View raw message