You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ak...@apache.org on 2007/10/17 02:51:35 UTC

svn commit: r585308 - in /geronimo/server/trunk/modules: geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/ geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/ geronimo-management/src/main/java/org/apache/geronimo/management/

Author: akulshreshtha
Date: Tue Oct 16 17:51:30 2007
New Revision: 585308

URL: http://svn.apache.org/viewvc?rev=585308&view=rev
Log:
GERONIMO-3490 Adding LazyStatisticsProvider interface to deal with components that provide
              statistics on demand.

Added:
    geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/LazyStatisticsProvider.java   (with props)
Modified:
    geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java
    geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java?rev=585308&r1=585307&r2=585308&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/main/java/org/apache/geronimo/jetty6/connector/JettyConnector.java Tue Oct 16 17:51:30 2007
@@ -30,7 +30,7 @@
 import org.apache.geronimo.jetty6.JettyContainer;
 import org.apache.geronimo.jetty6.JettyWebConnector;
 import org.apache.geronimo.jetty6.JettyWebConnectorStatsImpl;
-import org.apache.geronimo.management.StatisticsProvider;
+import org.apache.geronimo.management.LazyStatisticsProvider;
 import org.apache.geronimo.system.threads.ThreadPool;
 import org.mortbay.jetty.AbstractConnector;
 
@@ -39,7 +39,7 @@
  *
  * @version $Rev$ $Date$
  */
-public abstract class JettyConnector implements GBeanLifecycle, JettyWebConnector, StatisticsProvider {
+public abstract class JettyConnector implements GBeanLifecycle, JettyWebConnector, LazyStatisticsProvider {
     public final static String CONNECTOR_CONTAINER_REFERENCE = "JettyContainer";
     private final JettyContainer container;
     protected final AbstractConnector listener;
@@ -214,7 +214,11 @@
         }
     }
     
-    public void statsOn(Boolean on) {
+    public boolean isStatsOn() {
+	return listener.getStatsOn();
+    }
+    
+    public void setStatsOn(boolean on) {
         listener.setStatsOn(on);
         if (on) stats.setStartTime();
     }
@@ -227,7 +231,7 @@
      * @return gets collected for this class
      */
     public Stats getStats() {
-        if(listener.getStatsOn()) {
+        if(isStatsOn()) {
             stats.setLastSampleTime();
             // connections open
             stats.getOpenConnectionCountImpl().setCurrent(listener.getConnectionsOpen());
@@ -263,7 +267,7 @@
     }
 
     public boolean isStatisticsProvider() {
-        return listener.getStatsOn();
+        return true;
     }
 
     public static final GBeanInfo GBEAN_INFO;
@@ -272,7 +276,8 @@
         GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Jetty HTTP Connector", JettyConnector.class);
         infoFactory.addReference(CONNECTOR_CONTAINER_REFERENCE, JettyContainer.class, NameFactory.GERONIMO_SERVICE);
         infoFactory.addReference("ThreadPool", ThreadPool.class, NameFactory.GERONIMO_SERVICE);
-        // infoFactory.addOperation("statsOn", new Class[] { Boolean.class }, "void");
+        // this is needed because the getters/setters are not added automatically
+        infoFactory.addOperation("setStatsOn", new Class[] { boolean.class }, "void");
         // removed 'minThreads' from persistent and manageable String[]
         // removed 'tcpNoDelay' from persistent String[]
         // added 'protocol' to persistent and manageable String[]

Modified: geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java?rev=585308&r1=585307&r2=585308&view=diff
==============================================================================
--- geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java (original)
+++ geronimo/server/trunk/modules/geronimo-jetty6/src/test/java/org/apache/geronimo/jetty6/StatTest.java Tue Oct 16 17:51:30 2007
@@ -25,6 +25,7 @@
 import javax.management.ObjectName;
 import javax.management.j2ee.statistics.Statistic;
 import javax.management.j2ee.statistics.Stats;
+import org.apache.geronimo.management.LazyStatisticsProvider;
 
 /**
  * @version $Rev$ $Date$
@@ -40,10 +41,11 @@
         setUpStaticContentServlet(app);
         
         // start statistics collection
-        assertTrue("Stats should be off initially", !connector.isStatisticsProvider());
-        connector.statsOn(true);
+        if (connector instanceof LazyStatisticsProvider) {
+        assertTrue("Stats should be off initially", !connector.isStatsOn());
+        connector.setStatsOn(true);
+        }
         container.setCollectStatistics(true);
-        
         int n = 4; // no of connections
         for (int k = 0; k < n; k++) {
             HttpURLConnection connection = (HttpURLConnection) new URL(connector.getConnectUrl() + "/test/hello.txt")

Added: geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/LazyStatisticsProvider.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/LazyStatisticsProvider.java?rev=585308&view=auto
==============================================================================
--- geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/LazyStatisticsProvider.java (added)
+++ geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/LazyStatisticsProvider.java Tue Oct 16 17:51:30 2007
@@ -0,0 +1,30 @@
+/**
+ *  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.geronimo.management;
+
+import javax.management.j2ee.statistics.Stats;
+
+/**
+ * This is a representation of the StatisticsProvider type defined in the J2EE Management specification.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface LazyStatisticsProvider extends StatisticsProvider{
+    boolean isStatsOn();
+    void setStatsOn(boolean on);
+}

Propchange: geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/LazyStatisticsProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/LazyStatisticsProvider.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/modules/geronimo-management/src/main/java/org/apache/geronimo/management/LazyStatisticsProvider.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain