public void doInit() {
   PluginId debuggerPlugin =
       PluginManager.getPluginByClassName("jetbrains.mps.debug.api.DebugInfoManager");
   if (debuggerPlugin == null) {
     return;
   }
   DebugInfoManager manager = DebugInfoManager.getInstance();
   if (manager == null) {
     return;
   }
   {
     Mapper2<SNode, Project, ILocationBreakpoint> creator =
         new Mapper2<SNode, Project, ILocationBreakpoint>() {
           public ILocationBreakpoint value(SNode debuggableNode, Project project) {
             try {
               return Debuggers.getInstance()
                   .getDebuggerByNameSafe("Java")
                   .createBreakpoint(debuggableNode, "JAVA_LINE_BREAKPOINT", project);
             } catch (DebuggerNotPresentException e) {
               if (log.isWarnEnabled()) {
                 log.warn("Exception while creating breakpoint for node" + debuggableNode, e);
               }
               return null;
             }
           }
         };
     manager.addConceptBreakpointCreator(
         "jetbrains.mps.baseLanguage.structure.Statement", creator);
   }
   {
     Mapper2<SNode, Project, ILocationBreakpoint> creator =
         new Mapper2<SNode, Project, ILocationBreakpoint>() {
           public ILocationBreakpoint value(SNode debuggableNode, Project project) {
             try {
               return Debuggers.getInstance()
                   .getDebuggerByNameSafe("Java")
                   .createBreakpoint(debuggableNode, "JAVA_FIELD_BREAKPOINT", project);
             } catch (DebuggerNotPresentException e) {
               if (log.isWarnEnabled()) {
                 log.warn("Exception while creating breakpoint for node" + debuggableNode, e);
               }
               return null;
             }
           }
         };
     manager.addConceptBreakpointCreator(
         "jetbrains.mps.baseLanguage.structure.FieldDeclaration", creator);
     manager.addConceptBreakpointCreator(
         "jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration", creator);
   }
 }