package org.visualvm.demoapplicationtype.applicationtype; import com.sun.tools.visualvm.application.Application; import com.sun.tools.visualvm.application.jvm.Jvm; import com.sun.tools.visualvm.application.type.ApplicationType; import com.sun.tools.visualvm.application.type.ApplicationTypeFactory; import com.sun.tools.visualvm.application.type.MainClassApplicationTypeFactory; public class AnagramApplicationTypeFactory extends MainClassApplicationTypeFactory { private final static AnagramApplicationTypeFactory INSTANCE = new AnagramApplicationTypeFactory(); @Override public ApplicationType createApplicationTypeFor(Application app, Jvm jvm, String mainClass) { if ("com.toy.anagrams.ui.Anagrams".equals(mainClass)) { return new AnagramApplicationType(app.getPid()); } return null; } public static void initialize() { ApplicationTypeFactory.getDefault().registerProvider(INSTANCE); } public static void shutdown() { ApplicationTypeFactory.getDefault().unregisterProvider(INSTANCE); } }