You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by rm...@apache.org on 2013/10/30 10:50:53 UTC

svn commit: r1537021 [1/10] - in /incubator/sirona/trunk: ./ reporting/src/main/java/org/apache/sirona/reporting/web/ reporting/src/main/java/org/apache/sirona/reporting/web/handler/ reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report...

Author: rmannibucau
Date: Wed Oct 30 09:50:51 2013
New Revision: 1537021

URL: http://svn.apache.org/r1537021
Log:
using sb-admin bootstrap theme - need to cleanup gui + add missing tests + add licence but committing it now to be able to not work alone anymore

Added:
    incubator/sirona/trunk/reporting/src/main/resources/resources/css/bootstrap.css
    incubator/sirona/trunk/reporting/src/main/resources/resources/css/sb-admin.css
    incubator/sirona/trunk/reporting/src/main/resources/resources/css/sirona.css
      - copied unchanged from r1535949, incubator/sirona/trunk/reporting/src/main/resources/resources/css/monitoring.css
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/css/
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/css/font-awesome-ie7.min.css
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/css/font-awesome.min.css
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/font/
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/font/FontAwesome.otf   (with props)
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/font/fontawesome-webfont.eot   (with props)
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/font/fontawesome-webfont.svg
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/font/fontawesome-webfont.ttf   (with props)
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/font/fontawesome-webfont.woff   (with props)
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/_bootstrap.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/_core.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/_extras.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/_icons.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/_mixins.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/_path.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/_variables.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/font-awesome-ie7.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/font-awesome/scss/font-awesome.scss
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/bootstrap.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/flot/
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/flot/chart-data-flot.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/flot/excanvas.min.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/flot/jquery.flot.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/flot/jquery.flot.pie.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/flot/jquery.flot.resize.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/flot/jquery.flot.tooltip.min.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/jquery.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/morris/
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/morris/chart-data-morris.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/tablesorter/
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/tablesorter/jquery.tablesorter.js
    incubator/sirona/trunk/reporting/src/main/resources/resources/js/tablesorter/tables.js
    incubator/sirona/trunk/reporting/src/test/java/org/apache/sirona/reporting/template/HomeTest.java
    incubator/sirona/trunk/reporting/src/test/java/org/apache/sirona/reporting/template/ReportTest.java
      - copied, changed from r1535949, incubator/sirona/trunk/reporting/src/test/java/org/apache/sirona/reporting/template/CounterDetailTemplateTest.java
    incubator/sirona/trunk/reporting/src/test/java/org/apache/sirona/reporting/template/SironaReportingTestBase.java
Removed:
    incubator/sirona/trunk/reporting/src/main/resources/resources/css/bootstrap.min.css
    incubator/sirona/trunk/reporting/src/main/resources/resources/css/monitoring.css
    incubator/sirona/trunk/reporting/src/test/java/org/apache/sirona/reporting/template/CounterDetailTemplateTest.java
Modified:
    incubator/sirona/trunk/pom.xml
    incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/MonitoringController.java
    incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/handler/FilteringEndpoints.java
    incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/ReportEndpoints.java
    incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/MapFormat.java
    incubator/sirona/trunk/reporting/src/main/resources/templates/home.vm
    incubator/sirona/trunk/reporting/src/main/resources/templates/page.vm
    incubator/sirona/trunk/web/src/main/java/org/apache/sirona/web/registration/WebMonitoringInitializer.java
    incubator/sirona/trunk/web/src/main/java/org/apache/sirona/web/servlet/MonitoringFilter.java

Modified: incubator/sirona/trunk/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/pom.xml?rev=1537021&r1=1537020&r2=1537021&view=diff
==============================================================================
--- incubator/sirona/trunk/pom.xml (original)
+++ incubator/sirona/trunk/pom.xml Wed Oct 30 09:50:51 2013
@@ -220,6 +220,7 @@
             <exclude>**/resources/js/*.js</exclude>
             <exclude>**/resources/css/*.css</exclude>
             <exclude>**/META-INF/services/*</exclude>
+            <exclude>**/resources/resources/**/*</exclude>
           </excludes>
         </configuration>
         <executions>

Modified: incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/MonitoringController.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/MonitoringController.java?rev=1537021&r1=1537020&r2=1537021&view=diff
==============================================================================
--- incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/MonitoringController.java (original)
+++ incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/MonitoringController.java Wed Oct 30 09:50:51 2013
@@ -44,6 +44,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.TreeMap;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -54,6 +55,7 @@ public class MonitoringController implem
     private String mapping = null;
     private ClassLoader classloader;
     private Invoker defaultInvoker;
+    private String ignoreInternal = "true";
 
     @Override
     public void init(final FilterConfig config) throws ServletException {
@@ -61,6 +63,11 @@ public class MonitoringController implem
         initMapping(config.getInitParameter("monitoring-mapping"));
         Templates.init(config.getServletContext().getContextPath(), mapping);
         initHandlers();
+
+        final String ignoreStr = config.getInitParameter("ignore-internal-urls");
+        if (ignoreStr != null) {
+            ignoreInternal = ignoreStr;
+        }
     }
 
     private void initHandlers() {
@@ -115,10 +122,7 @@ public class MonitoringController implem
         request.setAttribute("baseUri", baseUri);
 
         final String requestURI = httpRequest.getRequestURI();
-        String path = requestURI.substring(Math.min(baseUri.length() + 1, requestURI.length()));
-        if (!path.startsWith("/")) {
-            path = "/" + path;
-        }
+        final String path = buildMatchablePath(httpRequest, baseUri, requestURI);
 
         // find the matching invoker
         Invoker invoker = defaultInvoker;
@@ -204,6 +208,30 @@ public class MonitoringController implem
         }
     }
 
+    private static String buildMatchablePath(final HttpServletRequest httpRequest, final String baseUri, final String requestURI) {
+        String path = requestURI.substring(Math.min(baseUri.length() + 1, requestURI.length()));
+        if (!path.startsWith("/")) {
+            path = "/" + path;
+        }
+
+        // sort keys to be able to match it deterministicly
+        final Map<String, String[]> params = new TreeMap<String, String[]>(httpRequest.getParameterMap());
+        boolean first = true;
+        for (final Map.Entry<String, String[]> param : params.entrySet()) {
+            final String[] value = param.getValue();
+            if (value != null && value.length >= 1) {
+                if (first) {
+                    path += "?";
+                    first = false;
+                } else {
+                    path += "&";
+                }
+                path += param.getKey() + "=" + value[0];
+            }
+        }
+        return path;
+    }
+
     private void error(final ServletResponse response, final Exception e) throws IOException {
         final String exception;
         if (e != null) {

Modified: incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/handler/FilteringEndpoints.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/handler/FilteringEndpoints.java?rev=1537021&r1=1537020&r2=1537021&view=diff
==============================================================================
--- incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/handler/FilteringEndpoints.java (original)
+++ incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/handler/FilteringEndpoints.java Wed Oct 30 09:50:51 2013
@@ -31,7 +31,7 @@ import java.io.InputStream;
 
 public class FilteringEndpoints {
     private static final String BOOTSTRAP_CSS = "/resources/css/bootstrap.min.css";
-    private static final String MONITORING_CSS = "/resources/css/monitoring.css";
+    private static final String MONITORING_CSS = "/resources/css/sirona.css";
 
     private ResourceLoader rl;
 

Modified: incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/ReportEndpoints.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/ReportEndpoints.java?rev=1537021&r1=1537020&r2=1537021&view=diff
==============================================================================
--- incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/ReportEndpoints.java (original)
+++ incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/ReportEndpoints.java Wed Oct 30 09:50:51 2013
@@ -48,9 +48,9 @@ public class ReportEndpoints {
         return renderFormat(request, response, Format.Defaults.HTML);
     }
 
-    @Regex("/counter/([^/]*)/([^/]*)/([^/]*)")
+    @Regex("/counter/([^/]*)/([^/]*)\\?name=(.*)")
     public Template counterDetail(final String role, final String unit, final String name, final HttpServletRequest request) {
-        final Counter counter = Repository.INSTANCE.getCounter(new Counter.Key(new Role(decode(role), Unit.get(unit)), decode(name)));
+        final Counter counter = Repository.INSTANCE.getCounter(new Counter.Key(new Role(decode(role), Unit.get(unit)), name)); // name is already decoded by servlet container
 
         final Map<String, String[]> params = request.getParameterMap();
         final Unit timeUnit = timeUnit(params);

Modified: incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/MapFormat.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/MapFormat.java?rev=1537021&r1=1537020&r2=1537021&view=diff
==============================================================================
--- incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/MapFormat.java (original)
+++ incubator/sirona/trunk/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/MapFormat.java Wed Oct 30 09:50:51 2013
@@ -112,7 +112,7 @@ public abstract class MapFormat {
     public static String generateCounterKeyString(final Counter.Key key) {
         final Role role = key.getRole();
         try {
-            return encode(role.getName()) + '/' + role.getUnit().getName() + '/' + encode(key.getName());
+            return encode(role.getName()) + '/' + role.getUnit().getName() + "?name=" + encode(key.getName());
         } catch (final UnsupportedEncodingException e) {
             throw new IllegalStateException(e);
         }