Wicket Metrics - Component create / render / ResourceReference create

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b86851ea
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b86851ea
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b86851ea

Branch: refs/heads/master
Commit: b86851ea7a11420d1b2b60c0982df1c4139b8539
Parents: c4ac72e
Author: Tobias Soloschenko <[email protected]>
Authored: Thu Mar 10 15:12:33 2016 +0100
Committer: Tobias Soloschenko <[email protected]>
Committed: Wed Mar 16 17:55:11 2016 +0100

----------------------------------------------------------------------
 .../metrics/aspects/ApplicationAspect.java      |  2 +-
 .../wicket/metrics/aspects/ComponentAspect.java | 72 ++++++++++++++++++++
 .../wicket/metrics/aspects/PageAspect.java      | 41 -----------
 .../aspects/ResourceReferenceAspect.java        | 49 +++++++++++++
 .../src/main/resources/META-INF/aop.xml         |  3 +-
 5 files changed, 124 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b86851ea/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ApplicationAspect.java
----------------------------------------------------------------------
diff --git 
a/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ApplicationAspect.java
 
b/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ApplicationAspect.java
index 45fe51d..a2ee0dd 100644
--- 
a/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ApplicationAspect.java
+++ 
b/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ApplicationAspect.java
@@ -39,7 +39,7 @@ public class ApplicationAspect extends WicketMetrics
         * @return returns the boolean of the processRequest method
         * 
         * @throws Throwable
-        *             might occure while invoking process request
+        *             might occur while invoking process request
         */
        @Around("execution(* 
org.apache.wicket.protocol.http.WicketFilter.processRequest(..))")
        public Object aroundRequestProcessed(ProceedingJoinPoint joinPoint) 
throws Throwable

http://git-wip-us.apache.org/repos/asf/wicket/blob/b86851ea/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ComponentAspect.java
----------------------------------------------------------------------
diff --git 
a/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ComponentAspect.java
 
b/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ComponentAspect.java
new file mode 100644
index 0000000..37d4e8e
--- /dev/null
+++ 
b/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ComponentAspect.java
@@ -0,0 +1,72 @@
+/*
+ * 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.wicket.metrics.aspects;
+
+import org.apache.wicket.metrics.WicketMetrics;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+
+/**
+ * Gets information how often different components are rendered
+ * 
+ * @author Tobias Soloschenko
+ */
+@Aspect
+public class ComponentAspect extends WicketMetrics
+{
+
+       /**
+        * Collects data how often components are rendered
+        * 
+        * @param joinPoint
+        * @return the object returned from the joinPoint
+        * @throws Throwable
+        */
+       @Around("target(org.apache.wicket.Component+) && execution(* 
onRender(..))")
+       public Object aroundRender(ProceedingJoinPoint joinPoint) throws 
Throwable
+       {
+               return measureTime("core/component/render/" + 
joinPoint.getTarget().getClass().getName(),
+                       joinPoint);
+       }
+
+       /**
+        * Collects data how often components are created
+        * 
+        * @param joinPoint
+        *            the join point (component) which is created
+        * @return the object returned from the joinPoint
+        * @throws Throwable
+        *             might occur while invoking process request
+        */
+       @Around("execution(org.apache.wicket.Component.new(..))")
+       public Object aroundNew(ProceedingJoinPoint joinPoint) throws Throwable
+       {
+               mark("core/component/create/" + 
joinPoint.getTarget().getClass().getName());
+               return joinPoint.proceed();
+       }
+
+       /**
+        * Collects data how often components redirect to another page
+        */
+       @Before("call(* org.apache.wicket.Component.setResponsePage(..))")
+       public void aroundResponsePage()
+       {
+               mark("core/component/redirect");
+       }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b86851ea/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/PageAspect.java
----------------------------------------------------------------------
diff --git 
a/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/PageAspect.java
 
b/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/PageAspect.java
deleted file mode 100644
index 1f03d35..0000000
--- 
a/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/PageAspect.java
+++ /dev/null
@@ -1,41 +0,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.
- */
-package org.apache.wicket.metrics.aspects;
-
-import org.apache.wicket.metrics.WicketMetrics;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-
-/**
- * Collects basic information about pages
- * 
- * @author Tobias Soloschenko
- *
- */
-@Aspect
-public class PageAspect extends WicketMetrics
-{
-
-       /**
-        * Collects data how often a pages has been rendered
-        */
-       @Before("target(org.apache.wicket.Page+) && call(* onRender(..))")
-       public void beforeRequestProcessed()
-       {
-               mark("core/page/render");
-       }
-}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b86851ea/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ResourceReferenceAspect.java
----------------------------------------------------------------------
diff --git 
a/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ResourceReferenceAspect.java
 
b/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ResourceReferenceAspect.java
new file mode 100644
index 0000000..1430ee7
--- /dev/null
+++ 
b/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ResourceReferenceAspect.java
@@ -0,0 +1,49 @@
+/*
+ * 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.wicket.metrics.aspects;
+
+import org.apache.wicket.metrics.WicketMetrics;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+
+/**
+ * Collects basic information about pages
+ * 
+ * @author Tobias Soloschenko
+ *
+ */
+@Aspect
+public class ResourceReferenceAspect extends WicketMetrics
+{
+
+       /**
+        * Collects data how often components are created
+        * 
+        * @param joinPoint
+        *            the join point (component) which is created
+        * @return the object returned from the joinPoint
+        * @throws Throwable
+        *             might occur while invoking process request
+        */
+       
@Around("execution(org.apache.wicket.request.resource.ResourceReference.new(..))")
+       public Object aroundNew(ProceedingJoinPoint joinPoint) throws Throwable
+       {
+               mark("core/resourceReference/create/" + 
joinPoint.getTarget().getClass().getName());
+               return joinPoint.proceed();
+       }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/b86851ea/wicket-metrics/src/main/resources/META-INF/aop.xml
----------------------------------------------------------------------
diff --git a/wicket-metrics/src/main/resources/META-INF/aop.xml 
b/wicket-metrics/src/main/resources/META-INF/aop.xml
index e9c48d1..eedd397 100644
--- a/wicket-metrics/src/main/resources/META-INF/aop.xml
+++ b/wicket-metrics/src/main/resources/META-INF/aop.xml
@@ -4,7 +4,8 @@
         <include within="org.apache.wicket..*"/>
     </weaver>
     <aspects>
+               <aspect 
name="org.apache.wicket.metrics.aspects.ComponentAspect" />
                <aspect 
name="org.apache.wicket.metrics.aspects.ApplicationAspect" />
-               <aspect name="org.apache.wicket.metrics.aspects.PageAspect" />
+               <aspect 
name="org.apache.wicket.metrics.aspects.ResourceReferenceAspect" />
     </aspects>
 </aspectj>
\ No newline at end of file

Reply via email to