ddd0734f43
First cut at implementing a generic abstraction layer for pluggable metrics providers. This first cut is closely modeled after Yammer Metrics. It remains to be seen if it is indeed flexibel enough to support other providers. Provide a default implementation of this new abstraction layer based on Yammer Metrics. Support pluggable Monitoring Providers using Java 6's ServiceLoader. Use this new abstraction layer to provide stats on (a) number of Timeouts executed per second and (b) distribution of absolute deviation between scheduled and actual Timeout execution time in HashedWheelTimer. * Interface ValueDistributionMonitor, a monitor for histograms. * Interface EventRateMonitor, a monitor for measuring the rate per time unit of specific events. * Interface ValueMonitor, a monitor for tracking an arbitrary datum's current value * Interface CounterMonitor, a monitor for incrementing/decrementing a long value * Interface MonitorRegistry, a registry for monitors that serves as the interface between Netty and concrete metrics providers as e.g. Yammer Metrics. * Interface MonitorRegistryFactory, to be implemented by metrics providers. * Document how to use Netty's new monitoring support in javadocs for package io.netty.monitor.
486 lines
16 KiB
XML
486 lines
16 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
~ Copyright 2012 The Netty Project
|
|
~
|
|
~ The Netty Project 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.
|
|
-->
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<parent>
|
|
<groupId>org.sonatype.oss</groupId>
|
|
<artifactId>oss-parent</artifactId>
|
|
<version>7</version>
|
|
</parent>
|
|
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-parent</artifactId>
|
|
<packaging>pom</packaging>
|
|
<version>4.0.0.Alpha6-SNAPSHOT</version>
|
|
|
|
<name>Netty</name>
|
|
<url>http://netty.io/</url>
|
|
<description>
|
|
Netty is an asynchronous event-driven network application framework for
|
|
rapid development of maintainable high performance protocol servers and
|
|
clients.
|
|
</description>
|
|
|
|
<organization>
|
|
<name>The Netty Project</name>
|
|
<url>http://netty.io/</url>
|
|
</organization>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>Apache License, Version 2.0</name>
|
|
<url>http://www.apache.org/licenses/LICENSE-2.0</url>
|
|
</license>
|
|
</licenses>
|
|
<inceptionYear>2008</inceptionYear>
|
|
|
|
<scm>
|
|
<url>https://github.com/netty/netty</url>
|
|
<connection>scm:git:git://github.com/netty/netty.git</connection>
|
|
<developerConnection>scm:git:ssh://git@github.com/netty/netty.git</developerConnection>
|
|
<tag>HEAD</tag>
|
|
</scm>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>netty.io</id>
|
|
<name>The Netty Project Contributors</name>
|
|
<email>netty@googlegroups.com</email>
|
|
<url>http://netty.io/</url>
|
|
<organization>The Netty Project</organization>
|
|
<organizationUrl>http://netty.io/</organizationUrl>
|
|
</developer>
|
|
</developers>
|
|
|
|
<properties>
|
|
<jboss.marshalling.version>1.3.14.GA</jboss.marshalling.version>
|
|
<yammer.metrics.version>2.1.2</yammer.metrics.version>
|
|
</properties>
|
|
|
|
<modules>
|
|
<module>common</module>
|
|
<module>buffer</module>
|
|
<module>codec</module>
|
|
<module>codec-http</module>
|
|
<module>transport</module>
|
|
<module>handler</module>
|
|
<module>metrics-yammer</module>
|
|
<module>example</module>
|
|
<module>testsuite</module>
|
|
<module>all</module>
|
|
<module>tarball</module>
|
|
</modules>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<!-- JBoss Marshalling - completely optional -->
|
|
<dependency>
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
<artifactId>jboss-marshalling</artifactId>
|
|
<version>${jboss.marshalling.version}</version>
|
|
<scope>compile</scope>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>com.google.protobuf</groupId>
|
|
<artifactId>protobuf-java</artifactId>
|
|
<version>2.4.1</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.rxtx</groupId>
|
|
<artifactId>rxtx</artifactId>
|
|
<version>2.1.7</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>javax.servlet</groupId>
|
|
<artifactId>servlet-api</artifactId>
|
|
<version>2.5</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.osgi</groupId>
|
|
<artifactId>org.osgi.core</artifactId>
|
|
<version>4.3.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.osgi</groupId>
|
|
<artifactId>org.osgi.compendium</artifactId>
|
|
<version>4.3.0</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>1.6.5</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-logging</groupId>
|
|
<artifactId>commons-logging</artifactId>
|
|
<version>1.1.1</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jboss.logging</groupId>
|
|
<artifactId>jboss-logging-spi</artifactId>
|
|
<version>2.1.2.GA</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>log4j</groupId>
|
|
<artifactId>log4j</artifactId>
|
|
<version>1.2.17</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<artifactId>mail</artifactId>
|
|
<groupId>javax.mail</groupId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<artifactId>jms</artifactId>
|
|
<groupId>javax.jms</groupId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<artifactId>jmxtools</artifactId>
|
|
<groupId>com.sun.jdmk</groupId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<artifactId>jmxri</artifactId>
|
|
<groupId>com.sun.jmx</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
<optional>true</optional>
|
|
</dependency>
|
|
|
|
<!-- Metrics providers -->
|
|
<dependency>
|
|
<groupId>com.yammer.metrics</groupId>
|
|
<artifactId>metrics-core</artifactId>
|
|
<version>${yammer.metrics.version}</version>
|
|
</dependency>
|
|
|
|
<!-- Test dependencies for jboss marshalling encoder/decoder -->
|
|
<dependency>
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
<artifactId>jboss-marshalling-serial</artifactId>
|
|
<version>${jboss.marshalling.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jboss.marshalling</groupId>
|
|
<artifactId>jboss-marshalling-river</artifactId>
|
|
<version>${jboss.marshalling.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<dependencies>
|
|
<!-- Testing frameworks and related dependencies -->
|
|
<dependency>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
<version>4.10</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.easymock</groupId>
|
|
<artifactId>easymock</artifactId>
|
|
<version>3.1</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.easymock</groupId>
|
|
<artifactId>easymockclassextension</artifactId>
|
|
<version>3.1</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.jmock</groupId>
|
|
<artifactId>jmock-junit4</artifactId>
|
|
<version>2.5.1</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-simple</artifactId>
|
|
<version>1.6.6</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>1.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-tools</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireJavaVersion>
|
|
<!-- Enforce java 1.7 as minimum for compiling -->
|
|
<!-- This is needed because of java.util.zip.Deflater and NIO UDP multicast-->
|
|
<version>[1.7.0,)</version>
|
|
</requireJavaVersion>
|
|
<requireMavenVersion>
|
|
<version>[3.0.2,)</version>
|
|
</requireMavenVersion>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>2.5.1</version>
|
|
<configuration>
|
|
<encoding>UTF-8</encoding>
|
|
<source>1.6</source>
|
|
<target>1.6</target>
|
|
<debug>true</debug>
|
|
<optimize>true</optimize>
|
|
<showDeprecation>true</showDeprecation>
|
|
<showWarnings>true</showWarnings>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<!-- ensure that only methods available in java 1.6 can
|
|
be used even when compiling with java 1.7+ -->
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>animal-sniffer-maven-plugin</artifactId>
|
|
<version>1.8</version>
|
|
<configuration>
|
|
<signature>
|
|
<groupId>org.codehaus.mojo.signature</groupId>
|
|
<artifactId>java16</artifactId>
|
|
<version>1.0</version>
|
|
</signature>
|
|
<ignores>
|
|
<ignore>sun.misc.Unsafe</ignore>
|
|
<ignore>sun.misc.Cleaner</ignore>
|
|
|
|
<ignore>java.util.zip.Deflater</ignore>
|
|
|
|
<!-- Used for NIO UDP multicast -->
|
|
<ignore>java.nio.channels.DatagramChannel</ignore>
|
|
<ignore>java.nio.channels.MembershipKey</ignore>
|
|
<ignore>java.net.StandardSocketOptions</ignore>
|
|
<ignore>java.net.StandardProtocolFamily</ignore>
|
|
|
|
<!-- Used for NIO. 2 -->
|
|
<ignore>java.nio.channels.AsynchronousChannel</ignore>
|
|
<ignore>java.nio.channels.AsynchronousSocketChannel</ignore>
|
|
<ignore>java.nio.channels.AsynchronousServerSocketChannel</ignore>
|
|
<ignore>java.nio.channels.AsynchronousChannelGroup</ignore>
|
|
<ignore>java.nio.channels.NetworkChannel</ignore>
|
|
<ignore>java.nio.channels.InterruptedByTimeoutException</ignore>
|
|
</ignores>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>process-classes</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>2.9.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>check-style</id>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
<phase>validate</phase>
|
|
<configuration>
|
|
<consoleOutput>true</consoleOutput>
|
|
<logViolationsToConsole>true</logViolationsToConsole>
|
|
<failsOnError>true</failsOnError>
|
|
<failOnViolation>true</failOnViolation>
|
|
<configLocation>io/netty/checkstyle.xml</configLocation>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>netty-build</artifactId>
|
|
<version>10</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>2.12</version>
|
|
<configuration>
|
|
<forkMode>once</forkMode>
|
|
<excludes>
|
|
<exclude>**/Abstract*</exclude>
|
|
<exclude>**/TestUtil*</exclude>
|
|
</excludes>
|
|
<runOrder>random</runOrder>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>2.1.2</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>2.8.1</version>
|
|
<configuration>
|
|
<detectOfflineLinks>false</detectOfflineLinks>
|
|
<charset>UTF-8</charset>
|
|
<docencoding>UTF-8</docencoding>
|
|
<breakiterator>true</breakiterator>
|
|
<version>false</version>
|
|
<author>false</author>
|
|
<keywords>true</keywords>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>2.7</version>
|
|
<configuration>
|
|
<retryFailedDeploymentCount>10</retryFailedDeploymentCount>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-release-plugin</artifactId>
|
|
<version>2.3.2</version>
|
|
<configuration>
|
|
<useReleaseProfile>false</useReleaseProfile>
|
|
<arguments>-P release,sonatype-oss-release,full</arguments>
|
|
<autoVersionSubmodules>true</autoVersionSubmodules>
|
|
<tagNameFormat>netty-@{project.version}</tagNameFormat>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>2.5</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<version>2.5</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>2.4</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>2.4</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>2.3</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-jxr-plugin</artifactId>
|
|
<version>2.2</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<version>1.7</version>
|
|
</plugin>
|
|
|
|
<!-- Workaround for the 'M2E plugin execution not covered' problem.
|
|
See: http://wiki.eclipse.org/M2E_plugin_execution_not_covered -->
|
|
<plugin>
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
<version>1.0.0</version>
|
|
<configuration>
|
|
<lifecycleMappingMetadata>
|
|
<pluginExecutions>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<versionRange>[1.0,)</versionRange>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<execute>
|
|
<runOnIncremental>false</runOnIncremental>
|
|
</execute>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<versionRange>[1.0,)</versionRange>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<execute>
|
|
<runOnIncremental>false</runOnIncremental>
|
|
</execute>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<versionRange>[1.0,)</versionRange>
|
|
<goals>
|
|
<goal>clean</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<execute>
|
|
<runOnIncremental>false</runOnIncremental>
|
|
</execute>
|
|
</action>
|
|
</pluginExecution>
|
|
</pluginExecutions>
|
|
</lifecycleMappingMetadata>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
</project>
|
|
|