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);
}