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/05 18:25:24 UTC

svn commit: r1539076 [1/17] - in /incubator/sirona/trunk: ./ agent/ agent/performance/ agent/performance/aop/ agent/performance/aop/src/ agent/performance/aop/src/main/ agent/performance/aop/src/main/java/ agent/performance/aop/src/main/java/org/ agent...

Author: rmannibucau
Date: Tue Nov  5 17:25:15 2013
New Revision: 1539076

URL: http://svn.apache.org/r1539076
Log:
reorganizing project structure to get a better view of modules

Added:
    incubator/sirona/trunk/agent/
    incubator/sirona/trunk/agent/performance/
    incubator/sirona/trunk/agent/performance/aop/
    incubator/sirona/trunk/agent/performance/aop/pom.xml
    incubator/sirona/trunk/agent/performance/aop/src/
    incubator/sirona/trunk/agent/performance/aop/src/main/
    incubator/sirona/trunk/agent/performance/aop/src/main/java/
    incubator/sirona/trunk/agent/performance/aop/src/main/java/org/
    incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/
    incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/
    incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/AbstractPerformanceInterceptor.java
    incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/DefaultMonitorNameExtractor.java
    incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitorNameExtractor.java
    incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitoringProxyFactory.java
    incubator/sirona/trunk/agent/performance/aop/src/test/
    incubator/sirona/trunk/agent/performance/aop/src/test/java/
    incubator/sirona/trunk/agent/performance/aop/src/test/java/org/
    incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/
    incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/
    incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/DynamicInterceptionTest.java
    incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/MonitoringProxyFactoryTest.java
    incubator/sirona/trunk/agent/performance/aspectj/
    incubator/sirona/trunk/agent/performance/aspectj/pom.xml
    incubator/sirona/trunk/agent/performance/aspectj/src/
    incubator/sirona/trunk/agent/performance/aspectj/src/main/
    incubator/sirona/trunk/agent/performance/aspectj/src/main/java/
    incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/
    incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/apache/
    incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/apache/sirona/aspectj/
    incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/apache/sirona/aspectj/SironaAspect.java
    incubator/sirona/trunk/agent/performance/aspectj/src/test/
    incubator/sirona/trunk/agent/performance/aspectj/src/test/java/
    incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/
    incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/apache/
    incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/apache/sirona/aspectj/
    incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/apache/sirona/aspectj/AspectJMonitoringTest.java
    incubator/sirona/trunk/agent/performance/aspectj/src/test/resources/
    incubator/sirona/trunk/agent/performance/aspectj/src/test/resources/META-INF/
    incubator/sirona/trunk/agent/performance/aspectj/src/test/resources/META-INF/aop.xml
    incubator/sirona/trunk/agent/performance/cdi/
    incubator/sirona/trunk/agent/performance/cdi/pom.xml
    incubator/sirona/trunk/agent/performance/cdi/src/
    incubator/sirona/trunk/agent/performance/cdi/src/main/
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/Monitored.java
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/SironaInterceptor.java
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/internal/
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/internal/SironaPerformanceExtension.java
    incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/internal/WrappedAnnotatedType.java
    incubator/sirona/trunk/agent/performance/cdi/src/main/resources/
    incubator/sirona/trunk/agent/performance/cdi/src/main/resources/META-INF/
    incubator/sirona/trunk/agent/performance/cdi/src/main/resources/META-INF/beans.xml
    incubator/sirona/trunk/agent/performance/cdi/src/main/resources/META-INF/services/
    incubator/sirona/trunk/agent/performance/cdi/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
    incubator/sirona/trunk/agent/performance/cdi/src/test/
    incubator/sirona/trunk/agent/performance/cdi/src/test/java/
    incubator/sirona/trunk/agent/performance/cdi/src/test/java/org/
    incubator/sirona/trunk/agent/performance/cdi/src/test/java/org/apache/
    incubator/sirona/trunk/agent/performance/cdi/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/cdi/src/test/java/org/apache/sirona/cdi/
    incubator/sirona/trunk/agent/performance/cdi/src/test/java/org/apache/sirona/cdi/SironaExtensionTest.java
    incubator/sirona/trunk/agent/performance/cdi/src/test/java/org/apache/sirona/cdi/SironaExtensionTestBase.java
    incubator/sirona/trunk/agent/performance/cdi/src/test/java/org/apache/sirona/cdi/SironaInterceptorTest.java
    incubator/sirona/trunk/agent/performance/cdi/src/test/resources/
    incubator/sirona/trunk/agent/performance/cdi/src/test/resources/META-INF/
    incubator/sirona/trunk/agent/performance/cdi/src/test/resources/META-INF/beans.xml
    incubator/sirona/trunk/agent/performance/cdi/src/test/resources/sirona.properties
    incubator/sirona/trunk/agent/performance/jdbc/
    incubator/sirona/trunk/agent/performance/jdbc/pom.xml
    incubator/sirona/trunk/agent/performance/jdbc/src/
    incubator/sirona/trunk/agent/performance/jdbc/src/main/
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/sirona/jdbc/
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/sirona/jdbc/ConnectionClosedCallBack.java
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/sirona/jdbc/MonitoredConnection.java
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/sirona/jdbc/MonitoredDataSource.java
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/sirona/jdbc/MonitoredPreparedStatement.java
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/sirona/jdbc/MonitoredStatement.java
    incubator/sirona/trunk/agent/performance/jdbc/src/main/java/org/apache/sirona/jdbc/MonitoringDriver.java
    incubator/sirona/trunk/agent/performance/jdbc/src/test/
    incubator/sirona/trunk/agent/performance/jdbc/src/test/java/
    incubator/sirona/trunk/agent/performance/jdbc/src/test/java/org/
    incubator/sirona/trunk/agent/performance/jdbc/src/test/java/org/apache/
    incubator/sirona/trunk/agent/performance/jdbc/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/jdbc/src/test/java/org/apache/sirona/jdbc/
    incubator/sirona/trunk/agent/performance/jdbc/src/test/java/org/apache/sirona/jdbc/HsqlDBTest.java
    incubator/sirona/trunk/agent/performance/jpa/
    incubator/sirona/trunk/agent/performance/jpa/pom.xml
    incubator/sirona/trunk/agent/performance/jpa/src/
    incubator/sirona/trunk/agent/performance/jpa/src/main/
    incubator/sirona/trunk/agent/performance/jpa/src/main/java/
    incubator/sirona/trunk/agent/performance/jpa/src/main/java/org/
    incubator/sirona/trunk/agent/performance/jpa/src/main/java/org/apache/
    incubator/sirona/trunk/agent/performance/jpa/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/jpa/src/main/java/org/apache/sirona/jpa/
    incubator/sirona/trunk/agent/performance/jpa/src/main/java/org/apache/sirona/jpa/JPAProxyFactory.java
    incubator/sirona/trunk/agent/performance/jpa/src/main/java/org/apache/sirona/jpa/MonitoringPersistence.java
    incubator/sirona/trunk/agent/performance/jpa/src/main/java/org/apache/sirona/jpa/OverridePersistenceXmlClassLoader.java
    incubator/sirona/trunk/agent/performance/jpa/src/main/resources/
    incubator/sirona/trunk/agent/performance/jpa/src/main/resources/META-INF/
    incubator/sirona/trunk/agent/performance/jpa/src/main/resources/META-INF/services/
    incubator/sirona/trunk/agent/performance/jpa/src/main/resources/META-INF/services/javax.persistence.spi.PersistenceProvider
    incubator/sirona/trunk/agent/performance/jpa/src/test/
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/apache/
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/apache/sirona/jpa/
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/apache/sirona/jpa/EMFTest.java
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/apache/sirona/jpa/QueryTest.java
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/apache/sirona/jpa/entity/
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/apache/sirona/jpa/entity/Address.java
    incubator/sirona/trunk/agent/performance/jpa/src/test/java/org/apache/sirona/jpa/entity/Person.java
    incubator/sirona/trunk/agent/performance/jpa/src/test/resources/
    incubator/sirona/trunk/agent/performance/jpa/src/test/resources/META-INF/
    incubator/sirona/trunk/agent/performance/jpa/src/test/resources/META-INF/persistence.xml
    incubator/sirona/trunk/agent/performance/jta/
    incubator/sirona/trunk/agent/performance/jta/pom.xml
    incubator/sirona/trunk/agent/performance/jta/src/
    incubator/sirona/trunk/agent/performance/jta/src/main/
    incubator/sirona/trunk/agent/performance/jta/src/main/java/
    incubator/sirona/trunk/agent/performance/jta/src/main/java/org/
    incubator/sirona/trunk/agent/performance/jta/src/main/java/org/apache/
    incubator/sirona/trunk/agent/performance/jta/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/jta/src/main/java/org/apache/sirona/jta/
    incubator/sirona/trunk/agent/performance/jta/src/main/java/org/apache/sirona/jta/JTAGauges.java
    incubator/sirona/trunk/agent/performance/jta/src/main/java/org/apache/sirona/jta/JTAInterceptor.java
    incubator/sirona/trunk/agent/performance/jta/src/main/java/org/apache/sirona/jta/JTAMonitored.java
    incubator/sirona/trunk/agent/performance/jta/src/main/resources/
    incubator/sirona/trunk/agent/performance/jta/src/main/resources/META-INF/
    incubator/sirona/trunk/agent/performance/jta/src/main/resources/META-INF/beans.xml
    incubator/sirona/trunk/agent/performance/jta/src/main/resources/META-INF/services/
    incubator/sirona/trunk/agent/performance/jta/src/main/resources/META-INF/services/org.apache.sirona.gauges.GaugeFactory
    incubator/sirona/trunk/agent/performance/jta/src/test/
    incubator/sirona/trunk/agent/performance/jta/src/test/java/
    incubator/sirona/trunk/agent/performance/jta/src/test/java/org/
    incubator/sirona/trunk/agent/performance/jta/src/test/java/org/apache/
    incubator/sirona/trunk/agent/performance/jta/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/jta/src/test/java/org/apache/sirona/jta/
    incubator/sirona/trunk/agent/performance/jta/src/test/java/org/apache/sirona/jta/GaugesTest.java
    incubator/sirona/trunk/agent/performance/jta/src/test/resources/
    incubator/sirona/trunk/agent/performance/jta/src/test/resources/sirona.properties
    incubator/sirona/trunk/agent/performance/pom.xml
    incubator/sirona/trunk/agent/performance/spring/
    incubator/sirona/trunk/agent/performance/spring/pom.xml
    incubator/sirona/trunk/agent/performance/spring/src/
    incubator/sirona/trunk/agent/performance/spring/src/main/
    incubator/sirona/trunk/agent/performance/spring/src/main/java/
    incubator/sirona/trunk/agent/performance/spring/src/main/java/org/
    incubator/sirona/trunk/agent/performance/spring/src/main/java/org/apache/
    incubator/sirona/trunk/agent/performance/spring/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/spring/src/main/java/org/apache/sirona/spring/
    incubator/sirona/trunk/agent/performance/spring/src/main/java/org/apache/sirona/spring/AopaliancePerformanceInterceptor.java
    incubator/sirona/trunk/agent/performance/spring/src/main/java/org/apache/sirona/spring/BeanNameMonitoringAutoProxyCreator.java
    incubator/sirona/trunk/agent/performance/spring/src/main/java/org/apache/sirona/spring/PointcutMonitoringAutoProxyCreator.java
    incubator/sirona/trunk/agent/performance/spring/src/test/
    incubator/sirona/trunk/agent/performance/spring/src/test/java/
    incubator/sirona/trunk/agent/performance/spring/src/test/java/org/
    incubator/sirona/trunk/agent/performance/spring/src/test/java/org/apache/
    incubator/sirona/trunk/agent/performance/spring/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/spring/src/test/java/org/apache/sirona/spring/
    incubator/sirona/trunk/agent/performance/spring/src/test/java/org/apache/sirona/spring/SpringMonitoringTest.java
    incubator/sirona/trunk/agent/performance/spring/src/test/java/org/apache/sirona/spring/service/
    incubator/sirona/trunk/agent/performance/spring/src/test/java/org/apache/sirona/spring/service/MyService.java
    incubator/sirona/trunk/agent/performance/spring/src/test/resources/
    incubator/sirona/trunk/agent/performance/spring/src/test/resources/monitoring.xml
    incubator/sirona/trunk/agent/performance/web/
    incubator/sirona/trunk/agent/performance/web/pom.xml
    incubator/sirona/trunk/agent/performance/web/src/
    incubator/sirona/trunk/agent/performance/web/src/main/
    incubator/sirona/trunk/agent/performance/web/src/main/java/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/discovery/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/discovery/GaugeDiscoveryListener.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/jsp/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/jsp/StartTag.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/jsp/StartTagTei.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/jsp/StopTag.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/jsp/TagUtils.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/lifecycle/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/lifecycle/SironaLifecycle.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/registration/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/registration/WebMonitoringInitializer.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/servlet/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/servlet/MonitoringFilter.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/servlet/StatusGauge.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/session/
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/session/MonitoringSessionListener.java
    incubator/sirona/trunk/agent/performance/web/src/main/java/org/apache/sirona/web/session/SessionGauge.java
    incubator/sirona/trunk/agent/performance/web/src/main/resources/
    incubator/sirona/trunk/agent/performance/web/src/main/resources/META-INF/
    incubator/sirona/trunk/agent/performance/web/src/main/resources/META-INF/services/
    incubator/sirona/trunk/agent/performance/web/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
    incubator/sirona/trunk/agent/performance/web/src/test/
    incubator/sirona/trunk/agent/performance/web/src/test/java/
    incubator/sirona/trunk/agent/performance/web/src/test/java/org/
    incubator/sirona/trunk/agent/performance/web/src/test/java/org/apache/
    incubator/sirona/trunk/agent/performance/web/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/performance/web/src/test/java/org/apache/sirona/test/
    incubator/sirona/trunk/agent/performance/web/src/test/java/org/apache/sirona/test/web/
    incubator/sirona/trunk/agent/performance/web/src/test/java/org/apache/sirona/test/web/HittableServlet.java
    incubator/sirona/trunk/agent/performance/web/src/test/java/org/apache/sirona/test/web/RequestPerformanceTest.java
    incubator/sirona/trunk/agent/performance/web/src/test/resources/
    incubator/sirona/trunk/agent/performance/web/src/test/resources/arquillian.xml
    incubator/sirona/trunk/agent/performance/web/src/test/resources/sirona.properties
    incubator/sirona/trunk/agent/pom.xml
    incubator/sirona/trunk/agent/store/
    incubator/sirona/trunk/agent/store/cube/
    incubator/sirona/trunk/agent/store/cube/pom.xml
    incubator/sirona/trunk/agent/store/cube/src/
    incubator/sirona/trunk/agent/store/cube/src/main/
    incubator/sirona/trunk/agent/store/cube/src/main/java/
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/Cube.java
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubeBuilder.java
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubeCounterDataStore.java   (with props)
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubeDataStoreFactory.java   (with props)
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubeGaugeDataStore.java   (with props)
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubeNodeStatusDataStore.java
    incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/MapBuilder.java   (with props)
    incubator/sirona/trunk/agent/store/cube/src/test/
    incubator/sirona/trunk/agent/store/cube/src/test/java/
    incubator/sirona/trunk/agent/store/cube/src/test/java/org/
    incubator/sirona/trunk/agent/store/cube/src/test/java/org/apache/
    incubator/sirona/trunk/agent/store/cube/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/store/cube/src/test/java/org/apache/sirona/cube/
    incubator/sirona/trunk/agent/store/cube/src/test/java/org/apache/sirona/cube/CubeDataStoreTest.java
    incubator/sirona/trunk/agent/store/cube/src/test/java/org/apache/sirona/cube/CubeServer.java
    incubator/sirona/trunk/agent/store/cube/src/test/java/org/apache/sirona/cube/gauge/
    incubator/sirona/trunk/agent/store/cube/src/test/java/org/apache/sirona/cube/gauge/MockGauge.java
    incubator/sirona/trunk/agent/store/cube/src/test/resources/
    incubator/sirona/trunk/agent/store/cube/src/test/resources/META-INF/
    incubator/sirona/trunk/agent/store/cube/src/test/resources/META-INF/services/
    incubator/sirona/trunk/agent/store/cube/src/test/resources/META-INF/services/org.apache.sirona.gauges.Gauge
    incubator/sirona/trunk/agent/store/cube/src/test/resources/sirona.properties
    incubator/sirona/trunk/agent/store/graphite/
    incubator/sirona/trunk/agent/store/graphite/pom.xml
    incubator/sirona/trunk/agent/store/graphite/src/
    incubator/sirona/trunk/agent/store/graphite/src/main/
    incubator/sirona/trunk/agent/store/graphite/src/main/java/
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/apache/
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/apache/sirona/graphite/
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/apache/sirona/graphite/Graphite.java
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/apache/sirona/graphite/GraphiteBuilder.java
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/apache/sirona/graphite/GraphiteCounterDataStore.java   (with props)
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/apache/sirona/graphite/GraphiteDataStoreFactory.java   (with props)
    incubator/sirona/trunk/agent/store/graphite/src/main/java/org/apache/sirona/graphite/GraphiteGaugeDataStore.java   (with props)
    incubator/sirona/trunk/agent/store/graphite/src/test/
    incubator/sirona/trunk/agent/store/graphite/src/test/java/
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/sirona/graphite/
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/sirona/graphite/GraphiteTest.java
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/sirona/graphite/GraphiteTestBase.java
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/sirona/graphite/gauge/
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/sirona/graphite/gauge/MockGauge.java
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/sirona/graphite/server/
    incubator/sirona/trunk/agent/store/graphite/src/test/java/org/apache/sirona/graphite/server/GraphiteMockServer.java
    incubator/sirona/trunk/agent/store/graphite/src/test/resources/
    incubator/sirona/trunk/agent/store/graphite/src/test/resources/META-INF/
    incubator/sirona/trunk/agent/store/graphite/src/test/resources/META-INF/services/
    incubator/sirona/trunk/agent/store/graphite/src/test/resources/META-INF/services/org.apache.sirona.gauges.Gauge
    incubator/sirona/trunk/agent/store/graphite/src/test/resources/sirona.properties
    incubator/sirona/trunk/agent/store/pom.xml
    incubator/sirona/trunk/server/
    incubator/sirona/trunk/server/collector/
    incubator/sirona/trunk/server/collector/pom.xml
    incubator/sirona/trunk/server/collector/src/
    incubator/sirona/trunk/server/collector/src/main/
    incubator/sirona/trunk/server/collector/src/main/java/
    incubator/sirona/trunk/server/collector/src/main/java/org/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/Collector.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/Event.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/math/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/math/Aggregators.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/CollectorDataStoreFactory.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/counter/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/counter/AggregatedCollectorCounter.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/counter/CollectorCounter.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/counter/InMemoryCollectorCounterStore.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/counter/LeafCollectorCounter.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/gauge/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/gauge/DelegatedCollectorGaugeDataStore.java
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/status/
    incubator/sirona/trunk/server/collector/src/main/java/org/apache/sirona/collector/server/store/status/CollectorNodeStatusDataStore.java
    incubator/sirona/trunk/server/collector/src/main/resources/
    incubator/sirona/trunk/server/collector/src/main/resources/collector-sirona.properties
    incubator/sirona/trunk/server/collector/src/main/webapp/
    incubator/sirona/trunk/server/collector/src/main/webapp/WEB-INF/
    incubator/sirona/trunk/server/collector/src/main/webapp/WEB-INF/web.xml
    incubator/sirona/trunk/server/collector/src/test/
    incubator/sirona/trunk/server/collector/src/test/java/
    incubator/sirona/trunk/server/collector/src/test/java/org/
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/CollectorServer.java
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/CubeDataStoreCompatibilityTest.java
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/HttpCollectorTest.java
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/store/
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/store/counter/
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/store/counter/AggregatorTest.java
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/store/gauge/
    incubator/sirona/trunk/server/collector/src/test/java/org/apache/sirona/collector/server/store/gauge/CollectorGaugeTest.java
    incubator/sirona/trunk/server/collector/src/test/resources/
    incubator/sirona/trunk/server/collector/src/test/resources/sirona.properties
    incubator/sirona/trunk/server/plugins/
    incubator/sirona/trunk/server/plugins/pom.xml
    incubator/sirona/trunk/server/pom.xml
    incubator/sirona/trunk/server/reporting/
    incubator/sirona/trunk/server/reporting/pom.xml
    incubator/sirona/trunk/server/reporting/src/
    incubator/sirona/trunk/server/reporting/src/main/
    incubator/sirona/trunk/server/reporting/src/main/java/
    incubator/sirona/trunk/server/reporting/src/main/java/org/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/MonitoringController.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/graph/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/graph/Line.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/FilteringEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/HomeEndpoint.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/api/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/api/Regex.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/api/Template.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/api/TemplateHelper.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/internal/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/internal/EndpointInfo.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/handler/internal/Invoker.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/Local.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/Plugin.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/PluginRepository.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/gauge/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/gauge/GaugeEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/gauge/GaugePlugin.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jmx/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jmx/JMXEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jmx/JMXNode.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jmx/JMXPlugin.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/json/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/json/Jsons.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jta/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jta/JTAEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jta/JTAPlugin.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jvm/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jvm/JVMEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/jvm/JVMPlugin.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/ReportEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/ReportPlugin.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/CSVFormat.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/Format.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/HTMLFormat.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/JSONFormat.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/MapFormat.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/report/format/XMLFormat.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/status/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/status/StatusEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/status/StatusHelper.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/status/StatusPlugin.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/thread/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/thread/ThreadEndpoints.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/thread/ThreadPlugin.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/plugin/web/
    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
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/registration/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/registration/MonitoringReportingInitializer.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/template/
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/template/MapBuilder.java
    incubator/sirona/trunk/server/reporting/src/main/java/org/apache/sirona/reporting/web/template/Templates.java
    incubator/sirona/trunk/server/reporting/src/main/resources/
    incubator/sirona/trunk/server/reporting/src/main/resources/META-INF/
    incubator/sirona/trunk/server/reporting/src/main/resources/META-INF/LICENSE
    incubator/sirona/trunk/server/reporting/src/main/resources/META-INF/NOTICE
    incubator/sirona/trunk/server/reporting/src/main/resources/META-INF/services/
    incubator/sirona/trunk/server/reporting/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
    incubator/sirona/trunk/server/reporting/src/main/resources/META-INF/services/org.apache.sirona.reporting.web.plugin.Plugin
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/css/
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/css/bootstrap-datetimepicker.min.css
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/css/bootstrap.css
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/css/sb-admin.css
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/css/sirona.css
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/css/
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/css/font-awesome.min.css
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/font/
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/font/FontAwesome.otf
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/font/fontawesome-webfont.eot
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/font/fontawesome-webfont.svg
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/font/fontawesome-webfont.ttf
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/font/fontawesome-webfont.woff
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/_bootstrap.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/_core.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/_extras.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/_icons.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/_mixins.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/_path.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/_variables.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/font-awesome-ie7.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/font-awesome/scss/font-awesome.scss
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/images/
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/images/asc.gif   (with props)
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/images/desc.gif   (with props)
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/images/glyphicons-halflings.png   (with props)
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/images/tree-closed.gif   (with props)
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/images/tree-opened.gif   (with props)
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/bootstrap-datetimepicker.min.js
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/bootstrap-tab.js
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/bootstrap.js
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/jquery.flot.min.js
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/jquery.flot.time.min.js
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/jquery.min.js
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/jquery.tablesorter.js
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/jquery.tablesorter.widgets.js
    incubator/sirona/trunk/server/reporting/src/main/resources/resources/js/sirona.js
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/error.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/gauge/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/gauge/detail.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/gauge/home.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/home.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/jmx/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/jmx/main.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/jmx/mbean.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/jta/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/jta/jta.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/jvm/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/jvm/jvm.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/macro.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/page.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/report/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/report/counter.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/report/report-csv.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/report/report-json.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/report/report-xml.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/report/report.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/status/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/status/detail.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/status/home.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/threads/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/threads/thread.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/threads/threads.vm
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/web/
    incubator/sirona/trunk/server/reporting/src/main/resources/templates/web/web.vm
    incubator/sirona/trunk/server/reporting/src/main/webapp/
    incubator/sirona/trunk/server/reporting/src/main/webapp/WEB-INF/
    incubator/sirona/trunk/server/reporting/src/main/webapp/WEB-INF/web.xml
    incubator/sirona/trunk/server/reporting/src/test/
    incubator/sirona/trunk/server/reporting/src/test/java/
    incubator/sirona/trunk/server/reporting/src/test/java/org/
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/FormatsTest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/GaugesTest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/HomeTest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/JMXTest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/JTATest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/JVMTest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/ReportTest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/SironaReportingTestBase.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/StatusTest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/ThreadsTest.java
    incubator/sirona/trunk/server/reporting/src/test/java/org/apache/sirona/reporting/template/WebTest.java
    incubator/sirona/trunk/server/reporting/src/test/resources/
    incubator/sirona/trunk/server/reporting/src/test/resources/arquillian.xml
    incubator/sirona/trunk/server/reporting/src/test/resources/sirona.properties
Removed:
    incubator/sirona/trunk/aop/
    incubator/sirona/trunk/aspectj/
    incubator/sirona/trunk/cdi/
    incubator/sirona/trunk/collector/
    incubator/sirona/trunk/cube/
    incubator/sirona/trunk/graphite/
    incubator/sirona/trunk/jdbc/
    incubator/sirona/trunk/jpa/
    incubator/sirona/trunk/jta/
    incubator/sirona/trunk/reporting/
    incubator/sirona/trunk/spring/
    incubator/sirona/trunk/web/
Modified:
    incubator/sirona/trunk/pom.xml

Added: incubator/sirona/trunk/agent/performance/aop/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aop/pom.xml?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aop/pom.xml (added)
+++ incubator/sirona/trunk/agent/performance/aop/pom.xml Tue Nov  5 17:25:15 2013
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<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>
+    <artifactId>sirona-performance</artifactId>
+    <groupId>org.apache.sirona</groupId>
+    <version>0.1-incubating-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>sirona-aop</artifactId>
+  <version>0.1-incubating-SNAPSHOT</version>
+  <name>Apache Sirona Incubator :: Agent :: Performance :: AOP</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.sirona</groupId>
+      <artifactId>sirona-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-proxy</artifactId>
+      <version>1.0</version>
+    </dependency>
+
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+  </dependencies>
+</project>

Added: incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/AbstractPerformanceInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/AbstractPerformanceInterceptor.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/AbstractPerformanceInterceptor.java (added)
+++ incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/AbstractPerformanceInterceptor.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,302 @@
+/*
+ * 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.aop;
+
+import org.apache.sirona.MonitoringException;
+import org.apache.sirona.Role;
+import org.apache.sirona.configuration.Configuration;
+import org.apache.sirona.counters.Counter;
+import org.apache.sirona.repositories.Repository;
+import org.apache.sirona.stopwatches.StopWatch;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.util.Locale;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * A method interceptor that compute method invocation performances.
+ * <p/>
+ * Concrete implementation will adapt the method interception API to
+ * this class requirement.
+ *
+ * @author <a href="mailto:nicolas@apache.org">Nicolas De Loof</a>
+ */
+public abstract class AbstractPerformanceInterceptor<T> implements Serializable {
+    // static for performances reasons, all these values are read through getXXX so it is overridable
+    private static final boolean ADAPTIVE = Configuration.is(Configuration.CONFIG_PROPERTY_PREFIX + "performance.adaptive", false);
+    private static final long FORCED_ITERATION = Configuration.getInteger(Configuration.CONFIG_PROPERTY_PREFIX + "performance.forced-iteration", 0);
+    private static final long THRESHOLD = duration(Configuration.getProperty(Configuration.CONFIG_PROPERTY_PREFIX + "performance.threshold", null));
+    private static final ActivationContext ALWAYS_ACTIVE_CONTEXT = new ActivationContext(true, 0, 0);
+
+    protected static final ConcurrentMap<Object, ActivationContext> CONTEXTS = new ConcurrentHashMap<Object, ActivationContext>();
+
+    private static long duration(final String duration) {
+        if (duration == null) {
+            return 0;
+        }
+        final String[] parts = duration.split(" ");
+        if (parts.length == 1) {
+            return Long.parseLong(duration.trim());
+        } else if (parts.length == 2) {
+            return TimeUnit.valueOf(parts[2].trim().toUpperCase(Locale.ENGLISH)).toNanos(Long.parseLong(parts[0].trim()));
+        }
+        return 0;
+    }
+
+    protected MonitorNameExtractor monitorNameExtractor;
+
+    public AbstractPerformanceInterceptor() {
+        setMonitorNameExtractor(DefaultMonitorNameExtractor.INSTANCE);
+    }
+
+    /**
+     * API neutral method invocation
+     */
+    protected Object doInvoke(final T invocation) throws Throwable {
+        final String name = getCounterName(invocation);
+        if (name == null) {
+            return proceed(invocation);
+        }
+
+        final ActivationContext context = doFindContext(invocation);
+
+        final StopWatch stopwatch;
+        if (context.shouldExecute()) {
+            final Counter monitor = Repository.INSTANCE.getCounter(new Counter.Key(getRole(), name));
+            stopwatch = Repository.INSTANCE.start(monitor);
+        } else {
+            stopwatch = null;
+        }
+
+        Throwable error = null;
+        try {
+            return proceed(invocation);
+        } catch (final Throwable t) {
+            error = t;
+            throw t;
+        } finally {
+            if (stopwatch != null) {
+                stopwatch.stop();
+
+                final long elapsedTime = stopwatch.getElapsedTime();
+
+                if (error != null) {
+                    final ByteArrayOutputStream writer = new ByteArrayOutputStream();
+                    error.printStackTrace(new PrintStream(writer));
+                    Repository.INSTANCE.getCounter(new Counter.Key(Role.FAILURES, writer.toString())).add(elapsedTime);
+                }
+
+                context.elapsedTime(elapsedTime);
+            }
+        }
+    }
+
+    protected boolean isAdaptive() {
+        return ADAPTIVE;
+    }
+
+    protected Object extractContextKey(final T invocation) {
+        return null;
+    }
+
+    protected ActivationContext getOrCreateContext(final Object m) {
+        final ActivationContext c = CONTEXTS.get(m);
+        if (c == null) {
+            final String counterName;
+            if (SerializableMethod.class.isInstance(m)) {
+                counterName = getCounterName(null, SerializableMethod.class.cast(m).method());
+            } else {
+                counterName = m.toString();
+            }
+            return putAndGetActivationContext(m, new ActivationContext(true, counterName));
+        }
+        return c;
+    }
+
+    protected ActivationContext putAndGetActivationContext(Object m, ActivationContext newCtx) {
+        final ActivationContext old = CONTEXTS.putIfAbsent(m, newCtx);
+        if (old != null) {
+            newCtx = old;
+        }
+        return newCtx;
+    }
+
+    protected ActivationContext doFindContext(final T invocation) {
+        if (!isAdaptive()) {
+            return ALWAYS_ACTIVE_CONTEXT;
+        }
+
+        final Object m = extractContextKey(invocation);
+        if (m != null) {
+            return getOrCreateContext(m);
+        }
+
+        return ALWAYS_ACTIVE_CONTEXT;
+    }
+
+    protected Role getRole() {
+        return Role.PERFORMANCES;
+    }
+
+    protected abstract Object proceed(T invocation) throws Throwable;
+
+    protected abstract String getCounterName(T invocation);
+
+    /**
+     * Compute the counter name associated to this method invocation
+     *
+     * @param method method being invoked
+     * @return counter name. If <code>null</code>, nothing will be monitored
+     */
+    protected String getCounterName(final Object instance, final Method method) {
+        return monitorNameExtractor.getMonitorName(instance, method);
+    }
+
+    public void setMonitorNameExtractor(final MonitorNameExtractor monitorNameExtractor) {
+        this.monitorNameExtractor = monitorNameExtractor;
+    }
+
+    protected static class SerializableMethod implements Serializable {
+        protected final String clazz;
+        protected final String method;
+        protected Method realMethod;
+        protected final int hashCode;
+
+        public SerializableMethod(final String clazz, final String method, final Method reflectMethod) {
+            this.clazz = clazz;
+            this.method = method;
+            this.realMethod = reflectMethod;
+            this.hashCode = reflectMethod.hashCode();
+        }
+
+        public SerializableMethod(final Method m) {
+            this(m.getDeclaringClass().getName(), m.getName(), m);
+        }
+
+        public Method method() {
+            if (realMethod == null) { // try to find it
+                try {
+                    Class<?> declaring = Thread.currentThread().getContextClassLoader().loadClass(clazz);
+                    while (declaring != null) {
+                        for (final Method m : declaring.getDeclaredMethods()) {
+                            if (m.getName().equals(method)) {
+                                realMethod = m;
+                                return realMethod;
+                            }
+                        }
+                        declaring = declaring.getSuperclass();
+                    }
+                } catch (final ClassNotFoundException e) {
+                    throw new MonitoringException(e);
+                }
+            }
+            return realMethod;
+        }
+
+        @Override
+        public boolean equals(final Object o) {
+            if (this == o) {
+                return true;
+            }
+            if (o == null || getClass() != o.getClass()) {
+                return false;
+            }
+
+            final SerializableMethod that = SerializableMethod.class.cast(o);
+            if (method != null && that.method != null) {
+                return method.equals(that.method);
+            }
+            return hashCode == that.hashCode;
+        }
+
+        @Override
+        public int hashCode() {
+            return hashCode;
+        }
+    }
+
+    protected static class ActivationContext implements Serializable {
+        protected final long forceIteration;
+        protected final long threshold;
+        protected final boolean thresholdActive;
+
+        protected volatile boolean active = true;
+        protected volatile AtomicInteger iteration = new AtomicInteger(0);
+
+        public ActivationContext(final boolean active, final long th, final long it) {
+            this.active = active;
+
+            if (it >= 0) {
+                forceIteration = it;
+            } else {
+                forceIteration = FORCED_ITERATION;
+            }
+
+            if (th >= 0) {
+                threshold = th;
+            } else {
+                threshold = THRESHOLD;
+            }
+
+            this.thresholdActive = this.threshold > 0;
+        }
+
+        public ActivationContext(final boolean active, final String name) {
+            this(active,
+                duration(Configuration.getProperty(Configuration.CONFIG_PROPERTY_PREFIX + "performance." + name + ".threshold", null)),
+                Configuration.getInteger(Configuration.CONFIG_PROPERTY_PREFIX + "performance." + name + ".forced-iteration", -1));
+        }
+
+        public boolean isForcedIteration() {
+            return iteration.incrementAndGet() > forceIteration;
+        }
+
+        protected long getThreshold() {
+            return threshold;
+        }
+
+        protected boolean isThresholdActive() {
+            return thresholdActive;
+        }
+
+        public boolean isActive() {
+            return active;
+        }
+
+        public void reset() {
+            active = false;
+            iteration.set(0);
+        }
+
+        public boolean shouldExecute() {
+            return isActive() || isForcedIteration();
+        }
+
+        public void elapsedTime(final long elapsedTime) {
+            if (isThresholdActive() && elapsedTime < getThreshold()) {
+                reset();
+            }
+        }
+    }
+}
\ No newline at end of file

Added: incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/DefaultMonitorNameExtractor.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/DefaultMonitorNameExtractor.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/DefaultMonitorNameExtractor.java (added)
+++ incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/DefaultMonitorNameExtractor.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,41 @@
+/*
+ * 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.aop;
+
+import java.lang.reflect.Method;
+
+/**
+ * @author <a href="mailto:nicolas@apache.org">Nicolas De Loof</a>
+ */
+public class DefaultMonitorNameExtractor implements MonitorNameExtractor {
+    // singleton to avoid to need too much memory for nothing
+    public static final DefaultMonitorNameExtractor INSTANCE = new DefaultMonitorNameExtractor();
+
+    private DefaultMonitorNameExtractor() {
+        // no-op
+    }
+
+    public String getMonitorName(final Object instance, final Method method) {
+        if (instance == null) { // static method
+            return method.getDeclaringClass().getName() + "." + method.getName();
+        } else {
+            return instance.getClass().getName() + "." + method.getName();
+        }
+    }
+
+}

Added: incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitorNameExtractor.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitorNameExtractor.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitorNameExtractor.java (added)
+++ incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitorNameExtractor.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,24 @@
+/*
+ * 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.aop;
+
+import java.lang.reflect.Method;
+
+public interface MonitorNameExtractor {
+    String getMonitorName(Object instance, Method method);
+}

Added: incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitoringProxyFactory.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitoringProxyFactory.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitoringProxyFactory.java (added)
+++ incubator/sirona/trunk/agent/performance/aop/src/main/java/org/apache/sirona/aop/MonitoringProxyFactory.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,81 @@
+/*
+ * 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.aop;
+
+import org.apache.sirona.configuration.Configuration;
+import org.apache.sirona.util.ClassLoaders;
+import org.apache.commons.proxy.Invoker;
+import org.apache.commons.proxy.ProxyFactory;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public final class MonitoringProxyFactory {
+    public static <T> T monitor(final Class<T> clazz, final Object instance) {
+        return clazz.cast(
+            Configuration.findOrCreateInstance(ProxyFactory.class)
+                .createInvokerProxy(ClassLoaders.current(), new MonitoringHandler(instance), new Class<?>[]{clazz}));
+    }
+
+    private MonitoringProxyFactory() {
+        // no-op
+    }
+
+    private static class MonitoringHandler extends AbstractPerformanceInterceptor<Invocation> implements Invoker {
+        private final Object instance;
+
+        public MonitoringHandler(final Object instance) {
+            this.instance = instance;
+        }
+
+        @Override
+        public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+            return doInvoke(new Invocation(instance, method, args));
+        }
+
+        @Override
+        protected Object proceed(final Invocation invocation) throws Throwable {
+            try {
+                return invocation.method.invoke(invocation.target, invocation.args);
+            } catch (final InvocationTargetException ite) {
+                throw ite.getCause();
+            }
+        }
+
+        @Override
+        protected String getCounterName(final Invocation invocation) {
+            return getCounterName(invocation.target, invocation.method);
+        }
+
+        @Override
+        protected Object extractContextKey(final Invocation invocation) {
+            return new SerializableMethod(invocation.method);
+        }
+    }
+
+    private static class Invocation {
+        private final Object target;
+        private final Method method;
+        private final Object[] args;
+
+        private Invocation(final Object target, final Method method, final Object[] args) {
+            this.target = target;
+            this.method = method;
+            this.args = args;
+        }
+    }
+}

Added: incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/DynamicInterceptionTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/DynamicInterceptionTest.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/DynamicInterceptionTest.java (added)
+++ incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/DynamicInterceptionTest.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,110 @@
+/*
+ * 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.aop;
+
+import org.apache.sirona.repositories.Repository;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.lang.reflect.Method;
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class DynamicInterceptionTest {
+
+    public static final int MAX_IT = 5;
+    public static final int THRESHOLD = 100;
+    private Repository repository;
+
+    @Before
+    @After
+    public void reset() {
+        repository = Repository.INSTANCE;
+        repository.clear();
+    }
+
+    @Test
+    public void playWithInterceptor() throws Throwable {
+        final ConfigurablePerfInterceptor interceptor = new ConfigurablePerfInterceptor();
+        assertFalse(repository.counters().iterator().hasNext());
+
+        interceptor.invoke(THRESHOLD * 5);
+        assertTrue(repository.counters().iterator().hasNext());
+        assertEquals(1, repository.counters().iterator().next().getHits());
+        assertEquals("dynamic", repository.counters().iterator().next().getKey().getName());
+
+        interceptor.invoke(THRESHOLD / 20);
+        assertEquals(2, repository.counters().iterator().next().getHits());
+
+        for (int i = 0; i < MAX_IT; i++) {
+            interceptor.invoke(THRESHOLD * 5);
+        }
+        assertEquals(2, repository.counters().iterator().next().getHits());
+
+        interceptor.invoke(THRESHOLD / 5);
+        assertEquals(3, repository.counters().iterator().next().getHits());
+
+        for (int i = 0; i < MAX_IT; i++) {
+            interceptor.invoke(THRESHOLD * 2);
+        }
+        assertEquals(3, repository.counters().iterator().next().getHits());
+
+        interceptor.invoke(THRESHOLD * 5);
+        interceptor.invoke(THRESHOLD * 5);
+        assertEquals(5, repository.counters().iterator().next().getHits());
+    }
+
+    public static class ConfigurablePerfInterceptor extends AbstractPerformanceInterceptor<Long> {
+        public void invoke(final long duration) throws Throwable {
+            doInvoke(duration);
+        }
+
+        @Override
+        protected Object proceed(final Long duration) throws Throwable {
+            Thread.sleep(duration);
+            return null;
+        }
+
+        @Override
+        protected String getCounterName(final Long invocation) {
+            return "dynamic";
+        }
+
+        @Override
+        protected Method extractContextKey(final Long invocation) {
+            try {
+                return getClass().getMethod("invoke", long.class);
+            } catch (final NoSuchMethodException e) {
+                throw new IllegalStateException(e);
+            }
+        }
+
+        @Override
+        protected boolean isAdaptive() {
+            return true;
+        }
+
+        @Override
+        protected ActivationContext doFindContext(final Long invocation) {
+            return putAndGetActivationContext(extractContextKey(null), new ActivationContext(true, TimeUnit.MILLISECONDS.toNanos(THRESHOLD), MAX_IT));
+        }
+    }
+}

Added: incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/MonitoringProxyFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/MonitoringProxyFactoryTest.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/MonitoringProxyFactoryTest.java (added)
+++ incubator/sirona/trunk/agent/performance/aop/src/test/java/org/apache/sirona/aop/MonitoringProxyFactoryTest.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,87 @@
+/*
+ * 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.aop;
+
+import org.apache.sirona.Role;
+import org.apache.sirona.counters.Counter;
+import org.apache.sirona.repositories.Repository;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.concurrent.TimeUnit;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+public class MonitoringProxyFactoryTest {
+    @Before
+    @After
+    public void reset() {
+        Repository.INSTANCE.clear();
+    }
+
+    @Test
+    public void test() {
+        final Foo foo = MonitoringProxyFactory.monitor(Foo.class, new FooImpl());
+        foo.haveARest(2000);
+
+        final Counter perf = Repository.INSTANCE.getCounter(new Counter.Key(Role.PERFORMANCES, FooImpl.class.getName() + ".haveARest"));
+        assertNotNull(perf);
+        assertEquals(2000, TimeUnit.NANOSECONDS.toMillis((int) perf.getMax()), 200);
+
+        try {
+            foo.throwSthg();
+        } catch (final Exception e) {
+            // normal
+        }
+
+        Counter failures = null;
+        for (final Counter c : Repository.INSTANCE.counters()) {
+            if (c.getKey().getName().contains("UnsupportedOperationException")) {
+                if (failures != null) {
+                    fail();
+                }
+                failures = c;
+            }
+        }
+
+        assertNotNull(failures);
+        assertEquals(1, failures.getHits());
+    }
+
+    public static interface Foo {
+        void haveARest(long ms);
+        void throwSthg();
+    }
+
+    public static class FooImpl implements Foo {
+        @Override
+        public void haveARest(long ms) {
+            try {
+                Thread.sleep(ms);
+            } catch (final InterruptedException e) {
+                // no-op
+            }
+        }
+
+        public void throwSthg() {
+            throw new UnsupportedOperationException();
+        }
+    }
+}

Added: incubator/sirona/trunk/agent/performance/aspectj/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aspectj/pom.xml?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aspectj/pom.xml (added)
+++ incubator/sirona/trunk/agent/performance/aspectj/pom.xml Tue Nov  5 17:25:15 2013
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<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/xsd/maven-4.0.0.xsd">
+  <parent>
+    <artifactId>sirona-performance</artifactId>
+    <groupId>org.apache.sirona</groupId>
+    <version>0.1-incubating-SNAPSHOT</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>sirona-aspectj</artifactId>
+  <name>Apache Sirona Incubator :: Agent :: Performance  :: AspectJ Integration</name>
+
+  <properties>
+    <aspectj.version>1.7.3</aspectj.version>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.aspectj</groupId>
+      <artifactId>aspectjrt</artifactId>
+      <version>${aspectj.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sirona</groupId>
+      <artifactId>sirona-aop</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.aspectj</groupId>
+      <artifactId>aspectjweaver</artifactId>
+      <version>${aspectj.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <argLine>-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar</argLine>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>

Added: incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/apache/sirona/aspectj/SironaAspect.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/apache/sirona/aspectj/SironaAspect.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/apache/sirona/aspectj/SironaAspect.java (added)
+++ incubator/sirona/trunk/agent/performance/aspectj/src/main/java/org/apache/sirona/aspectj/SironaAspect.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,71 @@
+/*
+ * 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.aspectj;
+
+import org.apache.sirona.aop.AbstractPerformanceInterceptor;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+
+import java.lang.reflect.Method;
+
+@Aspect
+public abstract class SironaAspect extends AbstractPerformanceInterceptor<ProceedingJoinPoint> {
+    @Pointcut
+    protected abstract void pointcut();
+
+    @Around("pointcut()")
+    public Object monitor(final ProceedingJoinPoint pjp) throws Throwable {
+        return doInvoke(pjp);
+    }
+
+    @Override
+    protected Object proceed(final ProceedingJoinPoint invocation) throws Throwable {
+        return invocation.proceed();
+    }
+
+    @Override
+    protected String getCounterName(final ProceedingJoinPoint invocation) {
+        final String monitorName = getCounterName(invocation.getTarget(), findMethod(invocation.getSignature()));
+        if (monitorName != null) {
+            return monitorName;
+        }
+        return invocation.getSignature().toLongString();
+    }
+
+    @Override
+    protected Object extractContextKey(final ProceedingJoinPoint invocation) {
+        return new SerializableMethod(findMethod(invocation.getSignature()));
+    }
+
+    private static Method findMethod(final Signature signature) {
+        if ("org.aspectj.runtime.reflect.MethodSignatureImpl".equals(signature.getClass().getName())) {
+            try {
+                final Method mtd = signature.getClass().getMethod("getMethod");
+                if (!mtd.isAccessible()) {
+                    mtd.setAccessible(true);
+                }
+                return Method.class.cast(mtd.invoke(signature));
+            } catch (final Exception e) {
+                // no-op
+            }
+        }
+        return null;
+    }
+}

Added: incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/apache/sirona/aspectj/AspectJMonitoringTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/apache/sirona/aspectj/AspectJMonitoringTest.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/apache/sirona/aspectj/AspectJMonitoringTest.java (added)
+++ incubator/sirona/trunk/agent/performance/aspectj/src/test/java/org/apache/sirona/aspectj/AspectJMonitoringTest.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,36 @@
+/*
+ * 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.aspectj;
+
+import org.apache.sirona.Role;
+import org.apache.sirona.counters.Counter;
+import org.apache.sirona.repositories.Repository;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class AspectJMonitoringTest {
+    @Test
+    public void monitor() {
+        new MonitorMe().foo();
+        assertEquals(1, Repository.INSTANCE.getCounter(new Counter.Key(Role.PERFORMANCES, getClass().getName() + "$MonitorMe.foo")).getHits());
+    }
+
+    public static class MonitorMe {
+        public void foo() {}
+    }
+}

Added: incubator/sirona/trunk/agent/performance/aspectj/src/test/resources/META-INF/aop.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/aspectj/src/test/resources/META-INF/aop.xml?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/aspectj/src/test/resources/META-INF/aop.xml (added)
+++ incubator/sirona/trunk/agent/performance/aspectj/src/test/resources/META-INF/aop.xml Tue Nov  5 17:25:15 2013
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<!--
+  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.
+-->
+<aspectj>
+  <aspects>
+    <concrete-aspect name="org.apache.sirona.aspectj.MyMonitoringAspectJ"
+                     extends="org.apache.sirona.aspectj.SironaAspect">
+      <pointcut name="pointcut" expression="execution(* org.apache.sirona.aspectj.AspectJMonitoringTest$MonitorMe.*(..))"/>
+    </concrete-aspect>
+  </aspects>
+
+  <weaver>
+    <include within="org.apache.sirona.aspectj.AspectJMonitoringTest$MonitorMe"/>
+  </weaver>
+</aspectj>

Added: incubator/sirona/trunk/agent/performance/cdi/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/cdi/pom.xml?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/cdi/pom.xml (added)
+++ incubator/sirona/trunk/agent/performance/cdi/pom.xml Tue Nov  5 17:25:15 2013
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<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/xsd/maven-4.0.0.xsd">
+  <parent>
+    <artifactId>sirona-performance</artifactId>
+    <groupId>org.apache.sirona</groupId>
+    <version>0.1-incubating-SNAPSHOT</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>sirona-cdi</artifactId>
+  <name>Apache Sirona Incubator :: Agent :: Performance  :: CDI Integration</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-jcdi_1.0_spec</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-interceptor_1.1_spec</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.sirona</groupId>
+      <artifactId>sirona-aop</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-servlet_3.0_spec</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.openwebbeans.test</groupId>
+      <artifactId>cditest-owb</artifactId>
+      <version>1.2.0</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+</project>

Added: incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/Monitored.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/Monitored.java?rev=1539076&view=auto
==============================================================================
--- incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/Monitored.java (added)
+++ incubator/sirona/trunk/agent/performance/cdi/src/main/java/org/apache/sirona/cdi/Monitored.java Tue Nov  5 17:25:15 2013
@@ -0,0 +1,29 @@
+/*
+ * 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.cdi;
+
+import javax.interceptor.InterceptorBinding;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@InterceptorBinding
+@Target({ElementType.TYPE, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Monitored {
+}