Index: /applications/editors/josm/plugins/tracer2/build.xml
===================================================================
--- /applications/editors/josm/plugins/tracer2/build.xml	(revision 33699)
+++ /applications/editors/josm/plugins/tracer2/build.xml	(revision 33700)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="see #josm11090"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="10580"/>
+    <property name="plugin.main.version" value="12859"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/ConnectWays.java
===================================================================
--- /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/ConnectWays.java	(revision 33699)
+++ /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/ConnectWays.java	(revision 33700)
@@ -10,5 +10,4 @@
 import java.util.Map;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.AddCommand;
 import org.openstreetmap.josm.command.ChangeCommand;
@@ -19,7 +18,9 @@
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.BBox;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.plugins.tracer2.preferences.ServerParam;
 import org.openstreetmap.josm.tools.Pair;
@@ -64,5 +65,5 @@
         BBox bbox = new BBox(way);
         bbox.addPrimitive(way, s_dMinDistance);
-        s_oWays = Main.getLayerManager().getEditDataSet().searchWays(bbox);
+        s_oWays = MainApplication.getLayerManager().getEditDataSet().searchWays(bbox);
     }
 
@@ -76,5 +77,5 @@
         BBox bbox = new BBox(way);
         bbox.addPrimitive(way, s_dMinDistance);
-        s_oNodes = Main.getLayerManager().getEditDataSet().searchNodes(bbox);
+        s_oNodes = MainApplication.getLayerManager().getEditDataSet().searchNodes(bbox);
     }
 
@@ -185,4 +186,5 @@
 
         cmds2.addAll(connectTo());
+        DataSet ds = MainApplication.getLayerManager().getEditDataSet();
 
         // add new Node
@@ -200,5 +202,5 @@
             for (Node node : way.getNodes()) {
                 if (firstNode == null || firstNode != node) {
-                    cmds.add(new AddCommand(node));
+                    cmds.add(new AddCommand(ds, node));
                 }
                 if (firstNode == null) {
@@ -210,8 +212,8 @@
         // add new way
         if (bAddWay == true) {
-            cmds.add(new AddCommand(s_oWay));
-        }
-
-        cmds.add(new ChangeCommand(s_oWayOld, trySplitWayByAnyNodes(s_oWay)));
+            cmds.add(new AddCommand(ds, s_oWay));
+        }
+
+        cmds.add(new ChangeCommand(ds, s_oWayOld, trySplitWayByAnyNodes(s_oWay)));
         cmds.addAll(cmds2);
 
Index: /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TagValues.java
===================================================================
--- /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TagValues.java	(revision 33699)
+++ /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TagValues.java	(revision 33700)
@@ -5,6 +5,7 @@
 import java.util.List;
 
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionListItem;
+import org.openstreetmap.josm.data.tagging.ac.AutoCompletionItem;
+import org.openstreetmap.josm.gui.MainApplication;
+import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
 import org.openstreetmap.josm.plugins.tracer2.preferences.ServerParam;
 
@@ -37,6 +38,5 @@
         // get values
         List<String> tagValues = new ArrayList<>();
-        List<AutoCompletionListItem> values = Main.getLayerManager().getEditDataSet().getAutoCompletionManager().getValues(m_strTag);
-        for (AutoCompletionListItem i : values) {
+        for (AutoCompletionItem i : AutoCompletionManager.of(MainApplication.getLayerManager().getEditDataSet()).getTagValues(m_strTag)) {
             tagValues.add(i.getValue());
         }
Index: /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerAction.java
===================================================================
--- /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerAction.java	(revision 33699)
+++ /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerAction.java	(revision 33700)
@@ -30,5 +30,6 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.MainApplication;
+import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -39,4 +40,5 @@
 import org.openstreetmap.josm.plugins.tracer2.server.GetVersion;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.xml.sax.SAXException;
@@ -56,8 +58,8 @@
     TracerPlugin m_oPlugin;
 
-    TracerAction(MapFrame mapFrame) {
+    TracerAction() {
         super(tr("Tracer2"), "tracer2-sml", tr("Tracer2."),
                 Shortcut.registerShortcut("tools:tracer2", tr("Tool: {0}", tr("Tracer2")), KeyEvent.VK_T, Shortcut.DIRECT),
-                mapFrame, getCursor());
+                getCursor());
     }
 
@@ -122,7 +124,8 @@
         }
         super.enterMode();
-        Main.map.mapView.setCursor(getCursor());
-        Main.map.mapView.addMouseListener(this);
-        Main.map.mapView.addKeyListener(this);
+        MapView mapView = MainApplication.getMap().mapView;
+        mapView.setCursor(getCursor());
+        mapView.addMouseListener(this);
+        mapView.addKeyListener(this);
     }
 
@@ -132,6 +135,7 @@
 
         super.exitMode();
-        Main.map.mapView.removeMouseListener(this);
-        Main.map.mapView.removeKeyListener(this);
+        MapView mapView = MainApplication.getMap().mapView;
+        mapView.removeMouseListener(this);
+        mapView.removeKeyListener(this);
     }
 
@@ -145,5 +149,5 @@
          * Positional data
          */
-        final LatLon pos = Main.map.mapView.getLatLon(clickPoint.x, clickPoint.y);
+        final LatLon pos = MainApplication.getMap().mapView.getLatLon(clickPoint.x, clickPoint.y);
 
         try {
@@ -166,5 +170,5 @@
             executeTraceThread.start();
         } catch (Exception e) {
-            e.printStackTrace();
+            Logging.error(e);
         }
     }
@@ -350,5 +354,5 @@
     @Override
     public void mousePressed(MouseEvent e) {
-        if (!Main.map.mapView.isActiveLayerDrawable()) {
+        if (!MainApplication.getMap().mapView.isActiveLayerDrawable()) {
             return;
         }
@@ -372,3 +376,2 @@
 
 }
-
Index: /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerPlugin.java
===================================================================
--- /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerPlugin.java	(revision 33699)
+++ /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/TracerPlugin.java	(revision 33700)
@@ -4,5 +4,5 @@
 import java.io.File;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
@@ -20,5 +20,5 @@
     public TracerPlugin(PluginInformation info) {
         super(info);
-        MainMenu.add(Main.main.menu.moreToolsMenu, new TracerAction(Main.map));
+        MainMenu.add(MainApplication.getMenu().moreToolsMenu, new TracerAction());
 
         s_oPlugin = this;
Index: /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamList.java
===================================================================
--- /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamList.java	(revision 33699)
+++ /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/preferences/ServerParamList.java	(revision 33700)
@@ -11,5 +11,5 @@
 import java.util.List;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.Logging;
 
 public class ServerParamList {
@@ -58,5 +58,5 @@
             }
         } catch (Exception e) {
-            Main.warn("Tracer2 warning: can't load file " + m_strFilename);
+            Logging.warn("Tracer2 warning: can't load file " + m_strFilename);
         }
     }
@@ -68,5 +68,5 @@
             }
         } catch (Exception e) {
-            Main.warn("Tracer2 warning: can't save file " + m_strFilename);
+            Logging.warn("Tracer2 warning: can't save file " + m_strFilename);
         }
     }
Index: /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetTrace.java
===================================================================
--- /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetTrace.java	(revision 33699)
+++ /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetTrace.java	(revision 33700)
@@ -4,7 +4,7 @@
 import java.util.ArrayList;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.plugins.tracer2.preferences.ServerParam;
+import org.openstreetmap.josm.tools.Logging;
 
 public class GetTrace extends Request {
@@ -68,5 +68,5 @@
         } catch (Exception e) {
             //m_listLatLon = new ArrayList<>();
-            Main.warn(e);
+            Logging.warn(e);
         }
     }
@@ -94,5 +94,5 @@
         } catch (Exception e) {
             //m_listLatLon = new ArrayList<>();
-            Main.warn(e);
+            Logging.warn(e);
         }
     }
Index: /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetVersion.java
===================================================================
--- /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetVersion.java	(revision 33699)
+++ /applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetVersion.java	(revision 33700)
@@ -2,5 +2,5 @@
 package org.openstreetmap.josm.plugins.tracer2.server;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.Logging;
 
 public class GetVersion extends Request {
@@ -42,5 +42,5 @@
             if (astrParts.length > 3) m_nVersionRevision = Integer.parseInt(astrParts[3]);
         } catch (Exception e) {
-            Main.warn(e);
+            Logging.warn(e);
         }
     }
