All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.test4j.module.tracer.spring.TracerMethodRegexPointcut Maven / Gradle / Ivy

package org.test4j.module.tracer.spring;

import java.lang.reflect.Modifier;

import org.springframework.aop.ClassFilter;
import org.springframework.aop.support.JdkRegexpMethodPointcut;

@SuppressWarnings("rawtypes")
public class TracerMethodRegexPointcut extends JdkRegexpMethodPointcut {

	private static final long serialVersionUID = 8342662318985403824L;

	public TracerMethodRegexPointcut() {
		super.setPatterns(patterns);
	}

	@Override
	public ClassFilter getClassFilter() {
		final ClassFilter filter = super.getClassFilter();
		return new ClassFilter() {
			public boolean matches(Class clazz) {
				int modifier = clazz.getModifiers();
				if (Modifier.isFinal(modifier)) {
					return false;
				}
				String clazzName = clazz.getName();
				if (beenFilted(clazzName)) {
					return false;
				} else {
					return filter.matches(clazz);
				}
			}
		};
	}

	private final static String[] patterns = new String[] { ".*" };

	private final static String[] FilterClazzPrefix = new String[] { "java.",// 
"javax.", "org.springframework.", "org.hibernate.", "com.ibatis." }; /** * 过滤package * * @param clazzName * @return */ public static boolean beenFilted(String clazzName) { for (String prefix : FilterClazzPrefix) { if (clazzName.startsWith(prefix)) { return true; } } return false; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy