Index: /applications/editors/josm/plugins/photo_geotagging/.classpath
===================================================================
--- /applications/editors/josm/plugins/photo_geotagging/.classpath	(revision 34541)
+++ /applications/editors/josm/plugins/photo_geotagging/.classpath	(revision 34542)
@@ -2,5 +2,9 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test/unit"/>
+	<classpathentry kind="src" output="bintest" 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/photo_geotagging/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- /applications/editors/josm/plugins/photo_geotagging/.settings/org.eclipse.jdt.core.prefs	(revision 34541)
+++ /applications/editors/josm/plugins/photo_geotagging/.settings/org.eclipse.jdt.core.prefs	(revision 34542)
@@ -9,4 +9,5 @@
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
@@ -32,4 +33,9 @@
 org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
 org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
 org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
 org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
@@ -38,4 +44,12 @@
 org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
Index: /applications/editors/josm/plugins/photo_geotagging/build.xml
===================================================================
--- /applications/editors/josm/plugins/photo_geotagging/build.xml	(revision 34541)
+++ /applications/editors/josm/plugins/photo_geotagging/build.xml	(revision 34542)
@@ -5,5 +5,5 @@
     <property name="commit.message" value=""/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="12840"/>
+    <property name="plugin.main.version" value="14153"/>
 
     <property name="plugin.author" value="Paul Hartmann"/>
Index: /applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/ExifGPSTagger.java
===================================================================
--- /applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/ExifGPSTagger.java	(revision 34541)
+++ /applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/ExifGPSTagger.java	(revision 34542)
@@ -39,4 +39,5 @@
      * @param ele elevation - can be null if not available
      * @param imgDir image direction in degrees (0..360) - can be null if not available
+     * @throws IOException in case of I/O error
      */
     public static void setExifGPSTag(File jpegImageFile, File dst, double lat, double lon, Date gpsTime, Double speed, Double ele, Double imgDir) throws IOException {
Index: /applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/GeotaggingAction.java
===================================================================
--- /applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/GeotaggingAction.java	(revision 34541)
+++ /applications/editors/josm/plugins/photo_geotagging/src/org/openstreetmap/josm/plugins/photo_geotagging/GeotaggingAction.java	(revision 34542)
@@ -33,5 +33,4 @@
 import javax.swing.UIManager;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -42,4 +41,5 @@
 import org.openstreetmap.josm.gui.layer.geoimage.GeoImageLayer;
 import org.openstreetmap.josm.gui.layer.geoimage.ImageEntry;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -97,8 +97,8 @@
         cont.add(settingsPanel, GBC.eol().insets(3,10,3,0));
 
-        final JCheckBox backups = new JCheckBox(tr("keep backup files"), Main.pref.getBoolean(KEEP_BACKUP, true));
+        final JCheckBox backups = new JCheckBox(tr("keep backup files"), Config.getPref().getBoolean(KEEP_BACKUP, true));
         settingsPanel.add(backups, GBC.eol().insets(3,3,0,0));
 
-        final JCheckBox setMTime = new JCheckBox(tr("change file modification time:"), Main.pref.getBoolean(CHANGE_MTIME, false));
+        final JCheckBox setMTime = new JCheckBox(tr("change file modification time:"), Config.getPref().getBoolean(CHANGE_MTIME, false));
         settingsPanel.add(setMTime, GBC.std().insets(3,3,5,3));
 
@@ -106,5 +106,5 @@
         final JComboBox<String> mTimeMode = new JComboBox<>(mTimeModeArray);
         {
-            String mTimeModePref = Main.pref.get(MTIME_MODE, null);
+            String mTimeModePref = Config.getPref().get(MTIME_MODE, null);
             int mTimeIdx = 0;
             if ("gps".equals(mTimeModePref)) {
@@ -131,5 +131,5 @@
 
         int result = new ExtendedDialog(
-                Main.parent,
+                MainApplication.getMainFrame(),
                 tr("Photo Geotagging Plugin"),
                 new String[] {tr("OK"), tr("Cancel")})
@@ -146,6 +146,6 @@
         final boolean keep_backup = backups.isSelected();
         final boolean change_mtime = setMTime.isSelected();
-        Main.pref.putBoolean(KEEP_BACKUP, keep_backup);
-        Main.pref.putBoolean(CHANGE_MTIME, change_mtime);
+        Config.getPref().putBoolean(KEEP_BACKUP, keep_backup);
+        Config.getPref().putBoolean(CHANGE_MTIME, change_mtime);
         if (change_mtime) {
             String mTimeModePref;
@@ -160,5 +160,5 @@
                 mTimeModePref = null;
             }
-            Main.pref.put(MTIME_MODE, mTimeModePref);
+            Config.getPref().put(MTIME_MODE, mTimeModePref);
         }
 
@@ -427,4 +427,6 @@
     /**
      * Check if there is any suitable image.
+     * @param layer geo image layer
+     * @return {@code true} if there is any suitable image
      */
     private boolean enabled(GeoImageLayer layer) {
