Index: applications/editors/josm/plugins/graphview/.classpath
===================================================================
--- applications/editors/josm/plugins/graphview/.classpath	(revision 34515)
+++ applications/editors/josm/plugins/graphview/.classpath	(revision 34516)
@@ -2,5 +2,9 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test/unit"/>
+	<classpathentry kind="src" output="buildtest" path="test/unit">
+		<attributes>
+			<attribute name="test" value="true"/>
+		</attributes>
+	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
Index: applications/editors/josm/plugins/graphview/build.xml
===================================================================
--- applications/editors/josm/plugins/graphview/build.xml	(revision 34515)
+++ applications/editors/josm/plugins/graphview/build.xml	(revision 34516)
@@ -2,5 +2,5 @@
 <project name="graphview" default="dist" basedir=".">
     <property name="commit.message" value="option to change graph colors; closes ticket 5523 in JOSM Trac"/>
-    <property name="plugin.main.version" value="12987"/>
+    <property name="plugin.main.version" value="14153"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/GraphViewPlugin.java
===================================================================
--- applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/GraphViewPlugin.java	(revision 34515)
+++ applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/GraphViewPlugin.java	(revision 34516)
@@ -17,5 +17,4 @@
 import javax.swing.JOptionPane;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapFrame;
@@ -97,5 +96,5 @@
 
                 if (accessRuleset == null) {
-                    JOptionPane.showMessageDialog(Main.parent, tr("No ruleset has been selected!"), tr("No ruleset"), JOptionPane.ERROR_MESSAGE);
+                    JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("No ruleset has been selected!"), tr("No ruleset"), JOptionPane.ERROR_MESSAGE);
                 } else {
                     transitionStructure.setAccessParametersAndRuleset(preferences.getCurrentParameterBookmark(), accessRuleset);
@@ -108,5 +107,5 @@
 
                 if (accessRuleset == null) {
-                    JOptionPane.showMessageDialog(Main.parent, tr("No ruleset has been selected!"),
+                    JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("No ruleset has been selected!"),
                             tr("No ruleset"), JOptionPane.ERROR_MESSAGE);
                 } else {
@@ -129,11 +128,11 @@
             }
         } catch (AccessRulesetSyntaxException e) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Syntax exception in access ruleset:\n{0}", e));
+            JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("Syntax exception in access ruleset:\n{0}", e));
             Logging.error(e);
         } catch (FileNotFoundException e) {
-            JOptionPane.showMessageDialog(Main.parent, tr("File not found:\n{0}", e));
+            JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("File not found:\n{0}", e));
             Logging.error(e);
         } catch (IOException e) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Problem when accessing a file:\n{0}", e));
+            JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("Problem when accessing a file:\n{0}", e));
             Logging.error(e);
         }
@@ -148,5 +147,5 @@
 
                 if (accessRuleset == null) {
-                    JOptionPane.showMessageDialog(Main.parent, tr("No ruleset has been selected!"),
+                    JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("No ruleset has been selected!"),
                             tr("No ruleset"), JOptionPane.ERROR_MESSAGE);
                 } else {
@@ -157,11 +156,11 @@
             }
         } catch (AccessRulesetSyntaxException e) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Syntax exception in access ruleset:\n{0}", e));
+            JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("Syntax exception in access ruleset:\n{0}", e));
             Logging.error(e);
         } catch (FileNotFoundException e) {
-            JOptionPane.showMessageDialog(Main.parent, tr("File not found:\n", e));
+            JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("File not found:\n", e));
             Logging.error(e);
         } catch (IOException e) {
-            JOptionPane.showMessageDialog(Main.parent, tr("Problem when accessing a file:\n{0}", e));
+            JOptionPane.showMessageDialog(MainApplication.getMainFrame(), tr("Problem when accessing a file:\n{0}", e));
             Logging.error(e);
         }
Index: applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/layer/GraphViewLayer.java
===================================================================
--- applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/layer/GraphViewLayer.java	(revision 34515)
+++ applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/layer/GraphViewLayer.java	(revision 34516)
@@ -18,5 +18,4 @@
 import javax.swing.Icon;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.RenameLayerAction;
 import org.openstreetmap.josm.data.Bounds;
@@ -24,4 +23,5 @@
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.projection.ProjectionRegistry;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
@@ -319,5 +319,5 @@
     private static Point getNodePoint(LatLonCoords coords, MapView mv) {
         LatLon latLon = new LatLon(coords.getLat(), coords.getLon());
-        EastNorth eastNorth = Main.getProjection().latlon2eastNorth(latLon);
+        EastNorth eastNorth = ProjectionRegistry.getProjection().latlon2eastNorth(latLon);
         return mv.getPoint(eastNorth);
     }
Index: applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/preferences/GraphViewPreferences.java
===================================================================
--- applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/preferences/GraphViewPreferences.java	(revision 34515)
+++ applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/preferences/GraphViewPreferences.java	(revision 34516)
@@ -25,5 +25,4 @@
 import java.util.regex.Pattern;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.preferences.NamedColorProperty;
 import org.openstreetmap.josm.plugins.graphview.core.access.AccessParameters;
@@ -33,4 +32,5 @@
 import org.openstreetmap.josm.plugins.graphview.plugin.layer.PreferencesColorScheme;
 import org.openstreetmap.josm.plugins.graphview.plugin.preferences.VehiclePropertyStringParser.PropertyValueSyntaxException;
+import org.openstreetmap.josm.spi.preferences.Config;
 
 /**
@@ -252,25 +252,25 @@
     private void writePreferences() {
 
-        Main.pref.put("graphview.parameterBookmarks",
+        Config.getPref().put("graphview.parameterBookmarks",
                 createAccessParameterBookmarksString(parameterBookmarks));
 
         if (currentParameterBookmarkName != null) {
-            Main.pref.put("graphview.activeBookmark", currentParameterBookmarkName);
-        }
-
-        Main.pref.putBoolean("graphview.useInternalRulesets", useInternalRulesets);
-
-        Main.pref.put("graphview.rulesetFolder", rulesetFolder.getPath());
+            Config.getPref().put("graphview.activeBookmark", currentParameterBookmarkName);
+        }
+
+        Config.getPref().putBoolean("graphview.useInternalRulesets", useInternalRulesets);
+
+        Config.getPref().put("graphview.rulesetFolder", rulesetFolder.getPath());
 
         if (currentRulesetFile != null) {
-            Main.pref.put("graphview.rulesetFile", currentRulesetFile.getPath());
+            Config.getPref().put("graphview.rulesetFile", currentRulesetFile.getPath());
         }
         if (currentInternalRuleset != null) {
-            Main.pref.put("graphview.rulesetResource", currentInternalRuleset.toString());
-        }
-
-        Main.pref.putBoolean("graphview.separateDirections", separateDirections);
-
-        Main.pref.putDouble("graphview.arrowheadPlacement", arrowheadPlacement);
+            Config.getPref().put("graphview.rulesetResource", currentInternalRuleset.toString());
+        }
+
+        Config.getPref().putBoolean("graphview.separateDirections", separateDirections);
+
+        Config.getPref().putDouble("graphview.arrowheadPlacement", arrowheadPlacement);
 
     }
@@ -278,11 +278,11 @@
     private void readPreferences() {
 
-        if (!Main.pref.get("graphview.parameterBookmarks").isEmpty()) {
-            String bookmarksString = Main.pref.get("graphview.parameterBookmarks");
+        if (!Config.getPref().get("graphview.parameterBookmarks").isEmpty()) {
+            String bookmarksString = Config.getPref().get("graphview.parameterBookmarks");
             parameterBookmarks = parseAccessParameterBookmarksString(bookmarksString);
         }
 
-        if (!Main.pref.get("graphview.activeBookmark").isEmpty()) {
-            currentParameterBookmarkName = Main.pref.get("graphview.activeBookmark");
+        if (!Config.getPref().get("graphview.activeBookmark").isEmpty()) {
+            currentParameterBookmarkName = Config.getPref().get("graphview.activeBookmark");
         }
         if (!parameterBookmarks.containsKey(currentParameterBookmarkName)) {
@@ -291,17 +291,17 @@
 
 
-        useInternalRulesets = Main.pref.getBoolean("graphview.useInternalRulesets", true);
-
-        if (!Main.pref.get("graphview.rulesetFolder").isEmpty()) {
-            String dirString = Main.pref.get("graphview.rulesetFolder");
+        useInternalRulesets = Config.getPref().getBoolean("graphview.useInternalRulesets", true);
+
+        if (!Config.getPref().get("graphview.rulesetFolder").isEmpty()) {
+            String dirString = Config.getPref().get("graphview.rulesetFolder");
             rulesetFolder = new File(dirString);
         }
-        if (!Main.pref.get("graphview.rulesetFile").isEmpty()) {
-            String fileString = Main.pref.get("graphview.rulesetFile");
+        if (!Config.getPref().get("graphview.rulesetFile").isEmpty()) {
+            String fileString = Config.getPref().get("graphview.rulesetFile");
             currentRulesetFile = new File(fileString);
         }
 
-        if (!Main.pref.get("graphview.rulesetResource").isEmpty()) {
-            String rulesetString = Main.pref.get("graphview.rulesetResource");
+        if (!Config.getPref().get("graphview.rulesetResource").isEmpty()) {
+            String rulesetString = Config.getPref().get("graphview.rulesetResource");
             //get the enum value for the string
             //(InternalRuleset.valueOf cannot be used because it cannot handle invalid strings well)
@@ -317,7 +317,7 @@
         segmentColor = new NamedColorProperty(marktr("graphview default segment"), Color.WHITE).get();
         arrowheadFillColor = new NamedColorProperty(marktr("graphview arrowhead core"), Color.BLACK).get();
-        separateDirections = Main.pref.getBoolean("graphview.separateDirections", false);
-
-        arrowheadPlacement = Main.pref.getDouble("graphview.arrowheadPlacement", 1.0);
+        separateDirections = Config.getPref().getBoolean("graphview.separateDirections", false);
+
+        arrowheadPlacement = Config.getPref().getDouble("graphview.arrowheadPlacement", 1.0);
         if (arrowheadPlacement < 0.0 || arrowheadPlacement >= 1.0) {
             arrowheadPlacement = 1.0;
