[jboss-cvs] jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/interceptor ...
Takuro Okada
t2-okada at nri.co.jp
Wed Nov 22 04:08:13 EST 2006
User: tokada
Date: 06/11/22 04:08:13
Modified: java/src/expansion/org/jboss/profiler/exp/agent/interceptor
Tag: JBossProfiler_Expansion JdbcInterceptor.java
Log:
Corrected some bugs.
Revision Changes Path
No revision
No revision
1.1.2.4 +29 -5 jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/interceptor/Attic/JdbcInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: JdbcInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/interceptor/Attic/JdbcInterceptor.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -b -r1.1.2.3 -r1.1.2.4
--- JdbcInterceptor.java 21 Nov 2006 06:21:44 -0000 1.1.2.3
+++ JdbcInterceptor.java 22 Nov 2006 09:08:13 -0000 1.1.2.4
@@ -63,19 +63,22 @@
* Run profiling by the method invocation.
*/
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- MetricCollector collector = parent.beforeInvoke();
+ boolean profilable = filter(method);
+
+ MetricCollector collector = null;
+ if(profilable) collector = parent.beforeInvoke();
Object retVal = method.invoke(jdbcObject, args);
// Creates new proxy for the return value if the return value is JDBC classes.
if(retVal!=null) {
Class retValInterface = detectImmediateInterface(retVal.getClass());
- if(retValInterface!=null && filter(retValInterface.getName())) {
+ if(retValInterface!=null && filter(retValInterface)) {
retVal = getInstance(retValInterface, retVal, parent);
}
}
- parent.afterInvoke(collector, method, args);
+ if(collector!=null) parent.afterInvoke(collector, method, args);
return retVal;
}
@@ -95,10 +98,31 @@
return detectedInterface;
}
- private boolean filter(String classExpression) {
+ private boolean filter(Class clazz) {
+ boolean isTarget = false;
+ for(String filter : parent.getFilters()) {
+ if(filter.length()>9) {
+ int mi = filter.indexOf('.', 9);
+ if(mi>0) {
+ filter = filter.substring(0, mi);
+ }
+ }
+ if(clazz.getName().contains(filter)) {
+ isTarget = true;
+ break;
+ }
+ }
+ return isTarget;
+ }
+
+ private boolean filter(Method method) {
boolean isTarget = false;
+ StringBuilder expression = new StringBuilder();
+ expression.append(method.getDeclaringClass());
+ expression.append(".");
+ expression.append(method.getName());
for(String filter : parent.getFilters()) {
- if(classExpression.contains(filter)) {
+ if(expression.toString().contains(filter)) {
isTarget = true;
break;
}
More information about the jboss-cvs-commits
mailing list