From 473cec8735eddf05918f7493de81ad64d073e1bf Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Thu, 27 Jun 2013 16:05:31 +0100
Subject: [PATCH] Moved desktop-specific code into a separate project (other
 task #34).

---
 briar-core/.classpath                         |   6 --
 .../sf/briar/lifecycle/LifecycleModule.java   |   6 +-
 briar-desktop/.classpath                      |  16 ++++++
 briar-desktop/.gitignore                      |   2 +
 briar-desktop/.project                        |  17 ++++++
 .../.settings/org.eclipse.jdt.core.prefs      |   8 +++
 briar-desktop/build.xml                       |  53 ++++++++++++++++++
 .../libs/bluecove-2.1.1-SNAPSHOT-briar.jar    | Bin
 .../libs/bluecove-gpl-2.1.1-SNAPSHOT.jar      | Bin
 .../libs/jna-3.5.2-SNAPSHOT.jar               | Bin
 .../libs/jnotify-0.93.jar                     | Bin
 .../libs/jssc-0.9-briar.jar                   | Bin
 .../libs/libjnotify.dylib                     | Bin
 .../libs/libjnotify.so                        | Bin
 .../libs/platform-3.5.2-SNAPSHOT.jar          | Bin
 .../libs/source/jssc-0.9-briar-source.jar     | Bin
 .../lifecycle/DesktopLifecycleModule.java     |  24 ++++++++
 .../lifecycle/WindowsShutdownManagerImpl.java |   0
 .../briar/plugins/DesktopPluginsModule.java   |   2 +-
 .../plugins/bluetooth/BluetoothPlugin.java    |   0
 .../bluetooth/BluetoothPluginFactory.java     |   0
 .../BluetoothTransportConnection.java         |   0
 .../plugins/bluetooth/InvitationListener.java |   0
 .../file/LinuxRemovableDriveFinder.java       |   0
 .../file/LinuxRemovableDriveMonitor.java      |   0
 .../plugins/file/MacRemovableDriveFinder.java |   0
 .../file/MacRemovableDriveMonitor.java        |   0
 .../file/PollingRemovableDriveMonitor.java    |   0
 .../plugins/file/RemovableDriveFinder.java    |   0
 .../plugins/file/RemovableDriveMonitor.java   |   0
 .../plugins/file/RemovableDrivePlugin.java    |   0
 .../file/RemovableDrivePluginFactory.java     |   0
 .../file/UnixRemovableDriveFinder.java        |   0
 .../file/UnixRemovableDriveMonitor.java       |   0
 .../file/WindowsRemovableDriveFinder.java     |   0
 .../sf/briar/plugins/modem/CountryCodes.java  |   0
 .../src/net/sf/briar/plugins/modem/Modem.java |   0
 .../sf/briar/plugins/modem/ModemFactory.java  |   0
 .../briar/plugins/modem/ModemFactoryImpl.java |   0
 .../net/sf/briar/plugins/modem/ModemImpl.java |   0
 .../sf/briar/plugins/modem/ModemPlugin.java   |   0
 .../plugins/modem/ModemPluginFactory.java     |   0
 .../sf/briar/plugins/modem/SerialPort.java    |   0
 .../briar/plugins/modem/SerialPortImpl.java   |   0
 .../briar/plugins/modem/SerialPortList.java   |   0
 .../plugins/modem/SerialPortListImpl.java     |   0
 briar-tests/.classpath                        |   5 +-
 briar-tests/build.xml                         |  29 +++++++++-
 48 files changed, 153 insertions(+), 15 deletions(-)
 create mode 100644 briar-desktop/.classpath
 create mode 100644 briar-desktop/.gitignore
 create mode 100644 briar-desktop/.project
 create mode 100644 briar-desktop/.settings/org.eclipse.jdt.core.prefs
 create mode 100644 briar-desktop/build.xml
 rename {briar-core => briar-desktop}/libs/bluecove-2.1.1-SNAPSHOT-briar.jar (100%)
 rename {briar-core => briar-desktop}/libs/bluecove-gpl-2.1.1-SNAPSHOT.jar (100%)
 rename {briar-core => briar-desktop}/libs/jna-3.5.2-SNAPSHOT.jar (100%)
 rename {briar-core => briar-desktop}/libs/jnotify-0.93.jar (100%)
 rename {briar-core => briar-desktop}/libs/jssc-0.9-briar.jar (100%)
 rename {briar-core => briar-desktop}/libs/libjnotify.dylib (100%)
 rename {briar-core => briar-desktop}/libs/libjnotify.so (100%)
 rename {briar-core => briar-desktop}/libs/platform-3.5.2-SNAPSHOT.jar (100%)
 rename {briar-core => briar-desktop}/libs/source/jssc-0.9-briar-source.jar (100%)
 create mode 100644 briar-desktop/src/net/sf/briar/lifecycle/DesktopLifecycleModule.java
 rename {briar-core => briar-desktop}/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java (100%)
 rename briar-core/src/net/sf/briar/plugins/JavaSePluginsModule.java => briar-desktop/src/net/sf/briar/plugins/DesktopPluginsModule.java (97%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/bluetooth/InvitationListener.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/MacRemovableDriveFinder.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/RemovableDriveFinder.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/RemovableDriveMonitor.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/CountryCodes.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/Modem.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/ModemFactory.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/ModemImpl.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/ModemPlugin.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/ModemPluginFactory.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/SerialPort.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/SerialPortImpl.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/SerialPortList.java (100%)
 rename {briar-core => briar-desktop}/src/net/sf/briar/plugins/modem/SerialPortListImpl.java (100%)

diff --git a/briar-core/.classpath b/briar-core/.classpath
index 19ff64a857..bc25b13784 100644
--- a/briar-core/.classpath
+++ b/briar-core/.classpath
@@ -3,19 +3,13 @@
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="lib" path="libs/commons-io-2.0.1.jar"/>
-	<classpathentry kind="lib" path="libs/jnotify-0.93.jar"/>
-	<classpathentry kind="lib" path="libs/jssc-0.9-briar.jar" sourcepath="libs/source/jssc-0.9-briar-source.jar"/>
 	<classpathentry kind="lib" path="libs/sc-light-jdk15on-1.47.0.3-SNAPSHOT.jar" sourcepath="libs/source/sc-light-jdk15on-1.47.0.3-SNAPSHOT-source.jar"/>
 	<classpathentry kind="lib" path="libs/weupnp-0.1.1.jar"/>
-	<classpathentry kind="lib" path="libs/bluecove-2.1.1-SNAPSHOT-briar.jar"/>
-	<classpathentry kind="lib" path="libs/bluecove-gpl-2.1.1-SNAPSHOT.jar"/>
 	<classpathentry kind="lib" path="libs/javax.inject.jar"/>
 	<classpathentry kind="lib" path="libs/jsocks.jar" sourcepath="libs/source/jsocks-source.jar"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/briar-api"/>
 	<classpathentry kind="lib" path="/briar-api/libs/android.jar"/>
 	<classpathentry kind="lib" path="/briar-api/libs/guice-3.0-no_aop.jar"/>
-	<classpathentry kind="lib" path="libs/jna-3.5.2-SNAPSHOT.jar"/>
-	<classpathentry kind="lib" path="libs/platform-3.5.2-SNAPSHOT.jar"/>
 	<classpathentry kind="lib" path="libs/jtorctl-briar.jar"/>
 	<classpathentry kind="lib" path="libs/h2small-1.3.170.jar"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/briar-core/src/net/sf/briar/lifecycle/LifecycleModule.java b/briar-core/src/net/sf/briar/lifecycle/LifecycleModule.java
index d1b5c2b5c1..fb17ceb109 100644
--- a/briar-core/src/net/sf/briar/lifecycle/LifecycleModule.java
+++ b/briar-core/src/net/sf/briar/lifecycle/LifecycleModule.java
@@ -2,7 +2,6 @@ package net.sf.briar.lifecycle;
 
 import net.sf.briar.api.lifecycle.LifecycleManager;
 import net.sf.briar.api.lifecycle.ShutdownManager;
-import net.sf.briar.util.OsUtils;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Singleton;
@@ -12,8 +11,7 @@ public class LifecycleModule extends AbstractModule {
 	protected void configure() {
 		bind(LifecycleManager.class).to(
 				LifecycleManagerImpl.class).in(Singleton.class);
-		if(OsUtils.isWindows())
-			bind(ShutdownManager.class).to(WindowsShutdownManagerImpl.class);
-		else bind(ShutdownManager.class).to(ShutdownManagerImpl.class);
+		bind(ShutdownManager.class).to(
+				ShutdownManagerImpl.class).in(Singleton.class);
 	}
 }
diff --git a/briar-desktop/.classpath b/briar-desktop/.classpath
new file mode 100644
index 0000000000..0738053ab2
--- /dev/null
+++ b/briar-desktop/.classpath
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="lib" path="libs/jnotify-0.93.jar"/>
+	<classpathentry kind="lib" path="libs/jssc-0.9-briar.jar" sourcepath="libs/source/jssc-0.9-briar-source.jar"/>
+	<classpathentry kind="lib" path="libs/bluecove-2.1.1-SNAPSHOT-briar.jar"/>
+	<classpathentry kind="lib" path="libs/bluecove-gpl-2.1.1-SNAPSHOT.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/briar-api"/>
+	<classpathentry kind="lib" path="/briar-api/libs/android.jar"/>
+	<classpathentry kind="lib" path="/briar-api/libs/guice-3.0-no_aop.jar"/>
+	<classpathentry kind="lib" path="libs/jna-3.5.2-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="libs/platform-3.5.2-SNAPSHOT.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/briar-core"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/briar-desktop/.gitignore b/briar-desktop/.gitignore
new file mode 100644
index 0000000000..c745919378
--- /dev/null
+++ b/briar-desktop/.gitignore
@@ -0,0 +1,2 @@
+bin
+build
diff --git a/briar-desktop/.project b/briar-desktop/.project
new file mode 100644
index 0000000000..7ecedd7138
--- /dev/null
+++ b/briar-desktop/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>briar-desktop</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/briar-desktop/.settings/org.eclipse.jdt.core.prefs b/briar-desktop/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..aa0ae4c587
--- /dev/null
+++ b/briar-desktop/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Wed Dec 05 20:57:54 GMT 2012
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/briar-desktop/build.xml b/briar-desktop/build.xml
new file mode 100644
index 0000000000..a35c57cc56
--- /dev/null
+++ b/briar-desktop/build.xml
@@ -0,0 +1,53 @@
+<project name='briar-core' default='compile'>
+	<fileset id='api-jars' dir='../briar-api/libs'>
+		<include name='*.jar'/>
+	</fileset>
+	<fileset id='core-jars' dir='../briar-core/libs'>
+		<include name='*.jar'/>
+	</fileset>
+	<fileset id='desktop-jars' dir='libs'>
+		<include name='*.jar'/>
+	</fileset>
+	<path id='api-classes'>
+		<pathelement location='../briar-api/build'/>
+	</path>
+	<path id='core-classes'>
+		<pathelement location='../briar-core/build'/>
+	</path>
+	<target name='clean'>
+		<delete dir='../briar-api/build'/>
+		<delete dir='../briar-core/build'/>
+		<delete dir='build'/>
+	</target>
+	<target name='compile'>
+		<mkdir dir='../briar-api/build'/>
+		<javac srcdir='../briar-api/src'
+			destdir='../briar-api/build' source='1.5' target='1.5'
+			includeantruntime='false' debug='off'>
+			<classpath>
+				<fileset refid='api-jars'/>
+			</classpath>
+		</javac>
+		<mkdir dir='../briar-core/build'/>
+		<javac srcdir='../briar-core/src'
+			destdir='../briar-core/build' source='1.5' target='1.5'
+			includeantruntime='false' debug='off'>
+			<classpath>
+				<fileset refid='core-jars'/>
+				<fileset refid='api-jars'/>
+				<path refid='api-classes'/>
+			</classpath>
+		</javac>
+		<mkdir dir='build'/>
+		<javac srcdir='src' destdir='build' source='1.5' target='1.5'
+			includeantruntime='false' debug='off'>
+			<classpath>
+				<fileset refid='desktop-jars'/>
+				<fileset refid='core-jars'/>
+				<fileset refid='api-jars'/>
+				<path refid='core-classes'/>
+				<path refid='api-classes'/>
+			</classpath>
+		</javac>
+	</target>
+</project>
diff --git a/briar-core/libs/bluecove-2.1.1-SNAPSHOT-briar.jar b/briar-desktop/libs/bluecove-2.1.1-SNAPSHOT-briar.jar
similarity index 100%
rename from briar-core/libs/bluecove-2.1.1-SNAPSHOT-briar.jar
rename to briar-desktop/libs/bluecove-2.1.1-SNAPSHOT-briar.jar
diff --git a/briar-core/libs/bluecove-gpl-2.1.1-SNAPSHOT.jar b/briar-desktop/libs/bluecove-gpl-2.1.1-SNAPSHOT.jar
similarity index 100%
rename from briar-core/libs/bluecove-gpl-2.1.1-SNAPSHOT.jar
rename to briar-desktop/libs/bluecove-gpl-2.1.1-SNAPSHOT.jar
diff --git a/briar-core/libs/jna-3.5.2-SNAPSHOT.jar b/briar-desktop/libs/jna-3.5.2-SNAPSHOT.jar
similarity index 100%
rename from briar-core/libs/jna-3.5.2-SNAPSHOT.jar
rename to briar-desktop/libs/jna-3.5.2-SNAPSHOT.jar
diff --git a/briar-core/libs/jnotify-0.93.jar b/briar-desktop/libs/jnotify-0.93.jar
similarity index 100%
rename from briar-core/libs/jnotify-0.93.jar
rename to briar-desktop/libs/jnotify-0.93.jar
diff --git a/briar-core/libs/jssc-0.9-briar.jar b/briar-desktop/libs/jssc-0.9-briar.jar
similarity index 100%
rename from briar-core/libs/jssc-0.9-briar.jar
rename to briar-desktop/libs/jssc-0.9-briar.jar
diff --git a/briar-core/libs/libjnotify.dylib b/briar-desktop/libs/libjnotify.dylib
similarity index 100%
rename from briar-core/libs/libjnotify.dylib
rename to briar-desktop/libs/libjnotify.dylib
diff --git a/briar-core/libs/libjnotify.so b/briar-desktop/libs/libjnotify.so
similarity index 100%
rename from briar-core/libs/libjnotify.so
rename to briar-desktop/libs/libjnotify.so
diff --git a/briar-core/libs/platform-3.5.2-SNAPSHOT.jar b/briar-desktop/libs/platform-3.5.2-SNAPSHOT.jar
similarity index 100%
rename from briar-core/libs/platform-3.5.2-SNAPSHOT.jar
rename to briar-desktop/libs/platform-3.5.2-SNAPSHOT.jar
diff --git a/briar-core/libs/source/jssc-0.9-briar-source.jar b/briar-desktop/libs/source/jssc-0.9-briar-source.jar
similarity index 100%
rename from briar-core/libs/source/jssc-0.9-briar-source.jar
rename to briar-desktop/libs/source/jssc-0.9-briar-source.jar
diff --git a/briar-desktop/src/net/sf/briar/lifecycle/DesktopLifecycleModule.java b/briar-desktop/src/net/sf/briar/lifecycle/DesktopLifecycleModule.java
new file mode 100644
index 0000000000..8b87a83888
--- /dev/null
+++ b/briar-desktop/src/net/sf/briar/lifecycle/DesktopLifecycleModule.java
@@ -0,0 +1,24 @@
+package net.sf.briar.lifecycle;
+
+import net.sf.briar.api.lifecycle.LifecycleManager;
+import net.sf.briar.api.lifecycle.ShutdownManager;
+import net.sf.briar.util.OsUtils;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Singleton;
+
+public class DesktopLifecycleModule extends AbstractModule {
+
+	protected void configure() {
+		bind(LifecycleManager.class).to(
+				LifecycleManagerImpl.class).in(Singleton.class);
+		if(OsUtils.isWindows()) {
+			bind(ShutdownManager.class).to(
+				WindowsShutdownManagerImpl.class).in(
+					Singleton.class);
+		} else {
+			bind(ShutdownManager.class).to(
+				ShutdownManagerImpl.class).in(Singleton.class);
+		}
+	}
+}
diff --git a/briar-core/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java b/briar-desktop/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
similarity index 100%
rename from briar-core/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
rename to briar-desktop/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
diff --git a/briar-core/src/net/sf/briar/plugins/JavaSePluginsModule.java b/briar-desktop/src/net/sf/briar/plugins/DesktopPluginsModule.java
similarity index 97%
rename from briar-core/src/net/sf/briar/plugins/JavaSePluginsModule.java
rename to briar-desktop/src/net/sf/briar/plugins/DesktopPluginsModule.java
index b4f5d87df4..cea66b635d 100644
--- a/briar-core/src/net/sf/briar/plugins/JavaSePluginsModule.java
+++ b/briar-desktop/src/net/sf/briar/plugins/DesktopPluginsModule.java
@@ -21,7 +21,7 @@ import net.sf.briar.plugins.tcp.WanTcpPluginFactory;
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
 
-public class JavaSePluginsModule extends AbstractModule {
+public class DesktopPluginsModule extends AbstractModule {
 
 	public void configure() {}
 
diff --git a/briar-core/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java b/briar-desktop/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
rename to briar-desktop/src/net/sf/briar/plugins/bluetooth/BluetoothPlugin.java
diff --git a/briar-core/src/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java b/briar-desktop/src/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
rename to briar-desktop/src/net/sf/briar/plugins/bluetooth/BluetoothPluginFactory.java
diff --git a/briar-core/src/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java b/briar-desktop/src/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java
rename to briar-desktop/src/net/sf/briar/plugins/bluetooth/BluetoothTransportConnection.java
diff --git a/briar-core/src/net/sf/briar/plugins/bluetooth/InvitationListener.java b/briar-desktop/src/net/sf/briar/plugins/bluetooth/InvitationListener.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/bluetooth/InvitationListener.java
rename to briar-desktop/src/net/sf/briar/plugins/bluetooth/InvitationListener.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java b/briar-desktop/src/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
rename to briar-desktop/src/net/sf/briar/plugins/file/LinuxRemovableDriveFinder.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java b/briar-desktop/src/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java
rename to briar-desktop/src/net/sf/briar/plugins/file/LinuxRemovableDriveMonitor.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/MacRemovableDriveFinder.java b/briar-desktop/src/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
rename to briar-desktop/src/net/sf/briar/plugins/file/MacRemovableDriveFinder.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java b/briar-desktop/src/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java
rename to briar-desktop/src/net/sf/briar/plugins/file/MacRemovableDriveMonitor.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java b/briar-desktop/src/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
rename to briar-desktop/src/net/sf/briar/plugins/file/PollingRemovableDriveMonitor.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/RemovableDriveFinder.java b/briar-desktop/src/net/sf/briar/plugins/file/RemovableDriveFinder.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/RemovableDriveFinder.java
rename to briar-desktop/src/net/sf/briar/plugins/file/RemovableDriveFinder.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/RemovableDriveMonitor.java b/briar-desktop/src/net/sf/briar/plugins/file/RemovableDriveMonitor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/RemovableDriveMonitor.java
rename to briar-desktop/src/net/sf/briar/plugins/file/RemovableDriveMonitor.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java b/briar-desktop/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java
rename to briar-desktop/src/net/sf/briar/plugins/file/RemovableDrivePlugin.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java b/briar-desktop/src/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
rename to briar-desktop/src/net/sf/briar/plugins/file/RemovableDrivePluginFactory.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java b/briar-desktop/src/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java
rename to briar-desktop/src/net/sf/briar/plugins/file/UnixRemovableDriveFinder.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java b/briar-desktop/src/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java
rename to briar-desktop/src/net/sf/briar/plugins/file/UnixRemovableDriveMonitor.java
diff --git a/briar-core/src/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java b/briar-desktop/src/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java
rename to briar-desktop/src/net/sf/briar/plugins/file/WindowsRemovableDriveFinder.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/CountryCodes.java b/briar-desktop/src/net/sf/briar/plugins/modem/CountryCodes.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/CountryCodes.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/CountryCodes.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/Modem.java b/briar-desktop/src/net/sf/briar/plugins/modem/Modem.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/Modem.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/Modem.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemFactory.java b/briar-desktop/src/net/sf/briar/plugins/modem/ModemFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/ModemFactory.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/ModemFactory.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java b/briar-desktop/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/ModemFactoryImpl.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java b/briar-desktop/src/net/sf/briar/plugins/modem/ModemImpl.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/ModemImpl.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/ModemImpl.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemPlugin.java b/briar-desktop/src/net/sf/briar/plugins/modem/ModemPlugin.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/ModemPlugin.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/ModemPlugin.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/ModemPluginFactory.java b/briar-desktop/src/net/sf/briar/plugins/modem/ModemPluginFactory.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/ModemPluginFactory.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/ModemPluginFactory.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/SerialPort.java b/briar-desktop/src/net/sf/briar/plugins/modem/SerialPort.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/SerialPort.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/SerialPort.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/SerialPortImpl.java b/briar-desktop/src/net/sf/briar/plugins/modem/SerialPortImpl.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/SerialPortImpl.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/SerialPortImpl.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/SerialPortList.java b/briar-desktop/src/net/sf/briar/plugins/modem/SerialPortList.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/SerialPortList.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/SerialPortList.java
diff --git a/briar-core/src/net/sf/briar/plugins/modem/SerialPortListImpl.java b/briar-desktop/src/net/sf/briar/plugins/modem/SerialPortListImpl.java
similarity index 100%
rename from briar-core/src/net/sf/briar/plugins/modem/SerialPortListImpl.java
rename to briar-desktop/src/net/sf/briar/plugins/modem/SerialPortListImpl.java
diff --git a/briar-tests/.classpath b/briar-tests/.classpath
index 190edff6cb..0cb0657ff5 100644
--- a/briar-tests/.classpath
+++ b/briar-tests/.classpath
@@ -11,7 +11,8 @@
 	<classpathentry kind="lib" path="/briar-api/libs/guice-3.0-no_aop.jar"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/briar-core"/>
 	<classpathentry kind="lib" path="/briar-core/libs/commons-io-2.0.1.jar"/>
-	<classpathentry kind="lib" path="/briar-core/libs/jnotify-0.93.jar"/>
-	<classpathentry kind="lib" path="/briar-core/libs/jssc-0.9-briar.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/briar-desktop"/>
+	<classpathentry kind="lib" path="/briar-desktop/libs/jnotify-0.93.jar"/>
+	<classpathentry kind="lib" path="/briar-desktop/libs/jssc-0.9-briar.jar" sourcepath="/briar-desktop/libs/source/jssc-0.9-briar-source.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/briar-tests/build.xml b/briar-tests/build.xml
index 9ea36a167b..c417febb4b 100644
--- a/briar-tests/build.xml
+++ b/briar-tests/build.xml
@@ -5,6 +5,9 @@
 	<fileset id='core-jars' dir='../briar-core/libs'>
 		<include name='*.jar'/>
 	</fileset>
+	<fileset id='desktop-jars' dir='../briar-desktop/libs'>
+		<include name='*.jar'/>
+	</fileset>
 	<fileset id='test-jars' dir='libs'>
 		<include name='*.jar'/>
 	</fileset>
@@ -14,12 +17,16 @@
 	<path id='core-classes'>
 		<pathelement location='../briar-core/build'/>
 	</path>
+	<path id='desktop-classes'>
+		<pathelement location='../briar-desktop/build'/>
+	</path>
 	<path id='test-classes'>
 		<pathelement location='build'/>
 	</path>
 	<target name='clean'>
 		<delete dir='../briar-api/build'/>
 		<delete dir='../briar-core/build'/>
+		<delete dir='../briar-desktop/build'/>
 		<delete dir='build'/>
 		<delete dir='test.tmp'/>
 	</target>
@@ -42,13 +49,27 @@
 				<path refid='api-classes'/>
 			</classpath>
 		</javac>
+		<mkdir dir='../briar-desktop/build'/>
+		<javac srcdir='../briar-desktop/src'
+			destdir='../briar-desktop/build' source='1.5' target='1.5'
+			includeantruntime='false' debug='off'>
+			<classpath>
+				<fileset refid='desktop-jars'/>
+				<fileset refid='core-jars'/>
+				<fileset refid='api-jars'/>
+				<path refid='core-classes'/>
+				<path refid='api-classes'/>
+			</classpath>
+		</javac>
 		<mkdir dir='build'/>
 		<javac srcdir='src' destdir='build' source='1.5' target='1.5'
 			includeantruntime='false' debug='off'>
 			<classpath>
 				<fileset refid='test-jars'/>
+				<fileset refid='desktop-jars'/>
 				<fileset refid='core-jars'/>
 				<fileset refid='api-jars'/>
+				<path refid='desktop-classes'/>
 				<path refid='core-classes'/>
 				<path refid='api-classes'/>
 			</classpath>
@@ -61,13 +82,15 @@
 			</assertions>
 			<classpath>
 				<fileset refid='test-jars'/>
+				<fileset refid='desktop-jars'/>
 				<fileset refid='core-jars'/>
 				<fileset refid='api-jars'/>
 				<path refid='test-classes'/>
+				<path refid='desktop-classes'/>
 				<path refid='core-classes'/>
 				<path refid='api-classes'/>
 			</classpath>
-			<jvmarg value='-Djava.library.path=../briar-core/libs'/>
+			<jvmarg value='-Djava.library.path=../briar-desktop/libs'/>
 			<test name='net.sf.briar.LockFairnessTest'/>
 			<test name='net.sf.briar.ProtocolIntegrationTest'/>
 			<test name='net.sf.briar.crypto.KeyAgreementTest'/>
@@ -121,13 +144,15 @@
 			</assertions>
 			<classpath>
 				<fileset refid='test-jars'/>
+				<fileset refid='desktop-jars'/>
 				<fileset refid='core-jars'/>
 				<fileset refid='api-jars'/>
 				<path refid='test-classes'/>
+				<path refid='desktop-classes'/>
 				<path refid='core-classes'/>
 				<path refid='api-classes'/>
 			</classpath>
-			<jvmarg value='-Djava.library.path=../briar-core/libs'/>
+			<jvmarg value='-Djava.library.path=../briar-desktop/libs'/>
 			<test name='net.sf.briar.db.H2DatabaseTest'/>
 		</junit>
 	</target>
-- 
GitLab