You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by rm...@apache.org on 2013/10/15 11:04:55 UTC

svn commit: r1532253 - in /commons/sandbox/monitoring/trunk: ./ cdi/ graphite/ reporting/ reporting/src/main/java/org/apache/commons/monitoring/reporting/web/ reporting/src/main/java/org/apache/commons/monitoring/reporting/web/registration/ reporting/s...

Author: rmannibucau
Date: Tue Oct 15 09:04:54 2013
New Revision: 1532253

URL: http://svn.apache.org/r1532253
Log:
allowing to register automatically reporting gui

Added:
    commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/registration/
    commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/registration/MonitoringReportingInitializer.java
    commons/sandbox/monitoring/trunk/reporting/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
Modified:
    commons/sandbox/monitoring/trunk/cdi/pom.xml
    commons/sandbox/monitoring/trunk/graphite/pom.xml
    commons/sandbox/monitoring/trunk/pom.xml
    commons/sandbox/monitoring/trunk/reporting/pom.xml
    commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringController.java
    commons/sandbox/monitoring/trunk/src/site/markdown/reporting.md
    commons/sandbox/monitoring/trunk/web/pom.xml

Modified: commons/sandbox/monitoring/trunk/cdi/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/cdi/pom.xml?rev=1532253&r1=1532252&r2=1532253&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/cdi/pom.xml (original)
+++ commons/sandbox/monitoring/trunk/cdi/pom.xml Tue Oct 15 09:04:54 2013
@@ -54,7 +54,7 @@
     </dependency>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-servlet_2.5_spec</artifactId>
+      <artifactId>geronimo-servlet_3.0_spec</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>

Modified: commons/sandbox/monitoring/trunk/graphite/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/graphite/pom.xml?rev=1532253&r1=1532252&r2=1532253&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/graphite/pom.xml (original)
+++ commons/sandbox/monitoring/trunk/graphite/pom.xml Tue Oct 15 09:04:54 2013
@@ -32,7 +32,7 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-servlet_2.5_spec</artifactId>
+      <artifactId>geronimo-servlet_3.0_spec</artifactId>
     </dependency>
 
     <dependency>

Modified: commons/sandbox/monitoring/trunk/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/pom.xml?rev=1532253&r1=1532252&r2=1532253&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/pom.xml (original)
+++ commons/sandbox/monitoring/trunk/pom.xml Tue Oct 15 09:04:54 2013
@@ -157,8 +157,8 @@
       </dependency>
       <dependency>
         <groupId>org.apache.geronimo.specs</groupId>
-        <artifactId>geronimo-servlet_2.5_spec</artifactId>
-        <version>1.2</version>
+        <artifactId>geronimo-servlet_3.0_spec</artifactId>
+        <version>1.0</version>
         <scope>provided</scope>
       </dependency>
       <dependency>

Modified: commons/sandbox/monitoring/trunk/reporting/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/reporting/pom.xml?rev=1532253&r1=1532252&r2=1532253&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/reporting/pom.xml (original)
+++ commons/sandbox/monitoring/trunk/reporting/pom.xml Tue Oct 15 09:04:54 2013
@@ -37,7 +37,7 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-servlet_2.5_spec</artifactId>
+      <artifactId>geronimo-servlet_3.0_spec</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.commons.monitoring</groupId>

Modified: commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringController.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringController.java?rev=1532253&r1=1532252&r2=1532253&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringController.java (original)
+++ commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/MonitoringController.java Tue Oct 15 09:04:54 2013
@@ -51,14 +51,14 @@ import java.util.regex.Pattern;
 public class MonitoringController implements Filter {
     private final Map<String, byte[]> cachedResources = new ConcurrentHashMap<String, byte[]>();
     private final Map<Pattern, Invoker> invokers = new HashMap<Pattern, Invoker>();
-    private String mapping;
+    private String mapping = null;
     private ClassLoader classloader;
     private Invoker defaultInvoker;
 
     @Override
     public void init(final FilterConfig config) throws ServletException {
         classloader = Thread.currentThread().getContextClassLoader();
-        initMapping(config);
+        initMapping(config.getInitParameter("monitoring-mapping"));
         Templates.init(config.getServletContext().getContextPath(), mapping);
         initHandlers();
     }
@@ -79,13 +79,23 @@ public class MonitoringController implem
         }
     }
 
-    private void initMapping(FilterConfig config) {
-        mapping = config.getInitParameter("monitoring-mapping");
-        if (mapping == null) {
+    public void setMapping(final String mapping) {
+        initMapping(mapping);
+    }
+
+    private void initMapping(final String value) {
+        if (mapping != null) { // already done, surely the initializer
+            return;
+        }
+
+        if (value == null) {
             mapping = "";
-        } else if (!mapping.startsWith("/")) {
+        } else if (!value.startsWith("/")) {
             mapping = "/" + mapping;
+        } else {
+            mapping = value;
         }
+
         if (mapping.endsWith("/")) {
             mapping = mapping.substring(0, mapping.length() - 1);
         }

Added: commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/registration/MonitoringReportingInitializer.java
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/registration/MonitoringReportingInitializer.java?rev=1532253&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/registration/MonitoringReportingInitializer.java (added)
+++ commons/sandbox/monitoring/trunk/reporting/src/main/java/org/apache/commons/monitoring/reporting/web/registration/MonitoringReportingInitializer.java Tue Oct 15 09:04:54 2013
@@ -0,0 +1,52 @@
+/*
+ * 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.commons.monitoring.reporting.web.registration;
+
+import org.apache.commons.monitoring.configuration.Configuration;
+import org.apache.commons.monitoring.reporting.web.MonitoringController;
+
+import javax.servlet.DispatcherType;
+import javax.servlet.ServletContainerInitializer;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import java.util.EnumSet;
+import java.util.Set;
+
+public class MonitoringReportingInitializer implements ServletContainerInitializer {
+    @Override
+    public void onStartup(final Set<Class<?>> classes, final ServletContext ctx) throws ServletException {
+        final String activated = ctx.getInitParameter(Configuration.COMMONS_MONITORING_PREFIX + "reporting.activated");
+        if ("false".equalsIgnoreCase(activated)) {
+            return;
+        }
+
+        String mapping = ctx.getInitParameter(Configuration.COMMONS_MONITORING_PREFIX + "reporting.mapping");
+        if (mapping == null) {
+            mapping = "/monitoring";
+        }
+        if (mapping.endsWith("*")) {
+            mapping = mapping.substring(0, mapping.length() - 1);
+        }
+        if (mapping.endsWith("/")) {
+            mapping = mapping.substring(0, mapping.length() - 1);
+        }
+
+        final MonitoringController controller = new MonitoringController();
+        controller.setMapping(mapping);
+        ctx.addFilter("commons-monitoring-reporting", controller).addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, mapping + "/*");
+    }
+}

Added: commons/sandbox/monitoring/trunk/reporting/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/reporting/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer?rev=1532253&view=auto
==============================================================================
--- commons/sandbox/monitoring/trunk/reporting/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer (added)
+++ commons/sandbox/monitoring/trunk/reporting/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer Tue Oct 15 09:04:54 2013
@@ -0,0 +1 @@
+org.apache.commons.monitoring.reporting.web.registration.MonitoringReportingInitializer

Modified: commons/sandbox/monitoring/trunk/src/site/markdown/reporting.md
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/src/site/markdown/reporting.md?rev=1532253&r1=1532252&r2=1532253&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/src/site/markdown/reporting.md (original)
+++ commons/sandbox/monitoring/trunk/src/site/markdown/reporting.md Tue Oct 15 09:04:54 2013
@@ -58,6 +58,11 @@ you can embed it. You'll need to update 
 
     </web-app>
 
+Note: in a servlet 3.0 container you can just configure it through init parameters:
+
+* `org.apache.commons.monitoring.reporting.activated`: boolean activating/deactivating the reporting GUI
+* `org.apache.commons.monitoring.reporting.mapping`: the url mapping of the GUI
+
 ## Usage
 
 Once started you'll arrive on the home page which should look like:

Modified: commons/sandbox/monitoring/trunk/web/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/monitoring/trunk/web/pom.xml?rev=1532253&r1=1532252&r2=1532253&view=diff
==============================================================================
--- commons/sandbox/monitoring/trunk/web/pom.xml (original)
+++ commons/sandbox/monitoring/trunk/web/pom.xml Tue Oct 15 09:04:54 2013
@@ -38,7 +38,7 @@
     </dependency>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-servlet_2.5_spec</artifactId>
+      <artifactId>geronimo-servlet_3.0_spec</artifactId>
     </dependency>
 
     <dependency>