Author: pferraro
Date: 2008-11-13 18:01:02 -0500 (Thu, 13 Nov 2008)
New Revision: 2062
Added:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/config/LoadMetricConfiguration.java
Modified:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/LoadMetric.java
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/LoadMetricMBean.java
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/impl/AbstractLoadMetric.java
Log:
Cleaned up LoadMetricMBean hierarchy. Extract LoadMetricConfiguration for use by
ClusterListener.
Added:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/config/LoadMetricConfiguration.java
===================================================================
---
trunk/mod_cluster/src/main/java/org/jboss/modcluster/config/LoadMetricConfiguration.java
(rev 0)
+++
trunk/mod_cluster/src/main/java/org/jboss/modcluster/config/LoadMetricConfiguration.java 2008-11-13
23:01:02 UTC (rev 2062)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.modcluster.config;
+
+
+/**
+ * @author Paul Ferraro
+ *
+ */
+public interface LoadMetricConfiguration
+{
+ /**
+ * Returns the "weight" of this metric, i.e. significance of this load
metric compared to the other metrics.
+ * @return the weight of the metric
+ */
+ int getWeight();
+
+ /**
+ * Returns the load capacity of this metric.
+ * Used to normalize the value returned by {@link #getLoad()} expressed as a
percentage of the capacity, such that:
+ * 0 <= ({@link #getLoad()} / {@link #getCapacity()}) < 1
+ * @return the estimated capacity of this metric.
+ */
+ double getCapacity();
+}
Modified:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/LoadMetric.java
===================================================================
---
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/LoadMetric.java 2008-11-13
22:08:21 UTC (rev 2061)
+++
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/LoadMetric.java 2008-11-13
23:01:02 UTC (rev 2062)
@@ -21,32 +21,24 @@
*/
package org.jboss.modcluster.load.metric;
+import org.jboss.modcluster.config.LoadMetricConfiguration;
+
/**
* Represents a specific load metric.
* @author Paul Ferraro
*/
-public interface LoadMetric<C extends LoadContext>
+public interface LoadMetric<C extends LoadContext> extends LoadMetricConfiguration
{
/**
- * Returns the "weight" of this metric, i.e. significance of this load
metric compared to the other metrics.
- * @return the weight of the metric
- */
- int getWeight();
-
- /**
- * Returns the load capacity of this metric.
- * Used to normalize the value returned by {@link #getLoad()} expressed as a
percentage of the capacity, such that:
- * 0 <= ({@link #getLoad()} / {@link #getCapacity()}) < 1
- * @return the estimated capacity of this metric.
- */
- double getCapacity();
-
- /**
* Returns the current load. This value only has meaning when expressed as a ratio of
the capacity.
* @return the current load.
* @throws Exception if there was an error fetching this metric.
*/
double getLoad(C context) throws Exception;
+ /**
+ * The source of this metric's load context.
+ * @return a load metric source
+ */
LoadMetricSource<C> getSource();
}
Modified:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/LoadMetricMBean.java
===================================================================
---
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/LoadMetricMBean.java 2008-11-13
22:08:21 UTC (rev 2061)
+++
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/LoadMetricMBean.java 2008-11-13
23:01:02 UTC (rev 2062)
@@ -21,12 +21,14 @@
*/
package org.jboss.modcluster.load.metric;
+import org.jboss.modcluster.config.LoadMetricConfiguration;
+
/**
* @author Paul Ferraro
*
*/
-public interface LoadMetricMBean<C extends LoadContext> extends
LoadMetric<C>
+public interface LoadMetricMBean extends LoadMetricConfiguration
{
void setWeight(int weight);
Modified:
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/impl/AbstractLoadMetric.java
===================================================================
---
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/impl/AbstractLoadMetric.java 2008-11-13
22:08:21 UTC (rev 2061)
+++
trunk/mod_cluster/src/main/java/org/jboss/modcluster/load/metric/impl/AbstractLoadMetric.java 2008-11-13
23:01:02 UTC (rev 2062)
@@ -30,7 +30,7 @@
*
* @author Paul Ferraro
*/
-public abstract class AbstractLoadMetric<C extends LoadContext> implements
LoadMetricMBean<C>
+public abstract class AbstractLoadMetric<C extends LoadContext> implements
LoadMetric<C>, LoadMetricMBean
{
private volatile int weight = 1;
private volatile double capacity = 1;