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 {
+}