package net.ihe.common.profiling; import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.WeakHashMap; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.ejb.PostActivate; import javax.ejb.PrePassivate; import javax.interceptor.InvocationContext; import org.jboss.seam.ejb.SeamInterceptor; public class SeamProfilingInterceptor extends SeamInterceptor { private static final long serialVersionUID = 7086096200283287539L; private static Set objects = Collections.newSetFromMap(new WeakHashMap()); public static Set getObjects() { return new HashSet(objects); } @PrePassivate public void prePassivate(InvocationContext invocation) { objects.remove(invocation.getTarget()); super.prePassivate(invocation); } @PostActivate public void postActivate(InvocationContext invocation) { objects.add(invocation.getTarget()); super.postActivate(invocation); } @PreDestroy public void preDestroy(InvocationContext invocation) { objects.remove(invocation.getTarget()); super.preDestroy(invocation); } @PostConstruct public void postConstruct(InvocationContext invocation) { objects.add(invocation.getTarget()); super.postConstruct(invocation); } }