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/11/06 14:27:43 UTC

svn commit: r1539334 - in /incubator/sirona/trunk: agent/performance/web/src/main/java/org/apache/sirona/web/session/ core/src/main/java/org/apache/sirona/repositories/ server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/

Author: rmannibucau
Date: Wed Nov  6 13:27:42 2013
New Revision: 1539334

URL: http://svn.apache.org/r1539334
Log:
reactivating web plugin

Added:
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/Repositories.java
Modified:
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/session/SessionGauge.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebPlugin.java

Modified: incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/session/SessionGauge.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/session/SessionGauge.java?rev=1539334&r1=1539333&r2=1539334&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/session/SessionGauge.java (original)
+++ incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/session/SessionGauge.java Wed Nov  6 13:27:42 2013
@@ -21,28 +21,17 @@ import org.apache.sirona.configuration.C
 import org.apache.sirona.counters.Unit;
 import org.apache.sirona.gauges.Gauge;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.WeakHashMap;
 import java.util.concurrent.atomic.AtomicLong;
 
 public class SessionGauge implements Gauge {
-    private static final WeakHashMap<Role, SessionGauge> GAUGES = new WeakHashMap<Role, SessionGauge>();
-
-    public static Map<Role, SessionGauge> gauges() {
-        return new HashMap<Role, SessionGauge>(GAUGES);
-    }
+    public static final String SESSIONS_PREFIX = "sessions-";
 
     private final Role role;
     private final AtomicLong counter;
 
     public SessionGauge(final String ctx, final AtomicLong counter) {
-        this.role = new Role("sessions-" + ctx, Unit.UNARY);
+        this.role = new Role(SESSIONS_PREFIX + ctx, Unit.UNARY);
         this.counter = counter;
-
-        synchronized (GAUGES) {
-            GAUGES.put(role, this);
-        }
     }
 
     @Override

Added: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/Repositories.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/Repositories.java?rev=1539334&view=auto
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/Repositories.java (added)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/repositories/Repositories.java Wed Nov  6 13:27:42 2013
@@ -0,0 +1,51 @@
+/*
+ * 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.sirona.repositories;
+
+import org.apache.sirona.Role;
+import org.apache.sirona.counters.Unit;
+
+import java.util.Collection;
+import java.util.LinkedList;
+
+public class Repositories {
+    public static Collection<Role> findByPrefixAndUnit(final String prefix, final Unit unit) {
+        final Collection<Role> roles = new LinkedList<Role>();
+        for (final Role role : Repository.INSTANCE.gauges()) {
+            if (role.getName().startsWith(prefix)
+                && unit.equals(role.getUnit())) {
+                roles.add(role);
+            }
+        }
+        return roles;
+    }
+
+    public static Collection<Role> findBySuffixAndUnit(final String suffix, final Unit unit) {
+        final Collection<Role> roles = new LinkedList<Role>();
+        for (final Role role : Repository.INSTANCE.gauges()) {
+            if (role.getName().endsWith(suffix)
+                && unit.equals(role.getUnit())) {
+                roles.add(role);
+            }
+        }
+        return roles;
+    }
+
+    private Repositories() {
+        // no-op
+    }
+}

Modified: incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebEndpoints.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebEndpoints.java?rev=1539334&r1=1539333&r2=1539334&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebEndpoints.java (original)
+++ incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebEndpoints.java Wed Nov  6 13:27:42 2013
@@ -17,9 +17,11 @@
 package org.apache.sirona.reporting.web.plugin.web;
 
 import org.apache.sirona.Role;
+import org.apache.sirona.counters.Unit;
 import org.apache.sirona.reporting.web.handler.api.Regex;
 import org.apache.sirona.reporting.web.handler.api.Template;
 import org.apache.sirona.reporting.web.plugin.json.Jsons;
+import org.apache.sirona.repositories.Repositories;
 import org.apache.sirona.repositories.Repository;
 import org.apache.sirona.web.session.SessionGauge;
 
@@ -32,7 +34,7 @@ public class WebEndpoints {
     @Regex("/sessions/([0-9]*)/([0-9]*)")
     public String sessions(final long start, final long end) {
         final StringBuilder builder = new StringBuilder("[");
-        for (final Role gauge : SessionGauge.gauges().keySet()) {
+        for (final Role gauge : Repositories.findByPrefixAndUnit(SessionGauge.SESSIONS_PREFIX, Unit.UNARY)) {
             builder.append("{ \"data\": ")
                 .append(Jsons.toJson(Repository.INSTANCE.getGaugeValues(start, end, gauge)))
                 .append(", \"label\": \"").append(gauge.getName()).append("\", \"color\": \"#317eac\" }")

Modified: incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebPlugin.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebPlugin.java?rev=1539334&r1=1539333&r2=1539334&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebPlugin.java (original)
+++ incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/WebPlugin.java Wed Nov  6 13:27:42 2013
@@ -16,10 +16,8 @@
  */
 package org.apache.sirona.reporting.web.plugin.web;
 
-import org.apache.sirona.reporting.web.plugin.Local;
 import org.apache.sirona.reporting.web.plugin.Plugin;
 
-@Local
 public class WebPlugin implements Plugin {
     @Override
     public String name() {