From 766b6f067ac06f2fc248933b616e995205d4b2a1 Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Fri, 29 Nov 2013 14:12:39 +0000
Subject: [PATCH] Use javax.inject annotations rather than the Guice versions.

---
 briar-android/.classpath                            |   1 +
 .../net/sf/briar/android/AndroidExecutorImpl.java   |   4 ++--
 .../src/net/sf/briar/android/AndroidModule.java     |   3 ++-
 .../src/net/sf/briar/android/BriarService.java      |   4 ++--
 .../net/sf/briar/android/HomeScreenActivity.java    |   4 ++--
 .../src/net/sf/briar/android/SetupActivity.java     |   4 ++--
 .../briar/android/contact/ContactListActivity.java  |   4 ++--
 .../android/groups/ConfigureGroupActivity.java      |   4 ++--
 .../briar/android/groups/CreateGroupActivity.java   |   4 ++--
 .../net/sf/briar/android/groups/GroupActivity.java  |   4 ++--
 .../sf/briar/android/groups/GroupListActivity.java  |   4 ++--
 .../briar/android/groups/ManageGroupsActivity.java  |   4 ++--
 .../briar/android/groups/ReadGroupPostActivity.java |   4 ++--
 .../android/groups/WriteGroupPostActivity.java      |   4 ++--
 .../briar/android/helloworld/HelloWorldModule.java  |   3 ++-
 .../android/identity/CreateIdentityActivity.java    |   4 ++--
 .../android/invitation/AddContactActivity.java      |   4 ++--
 .../android/messages/ConversationActivity.java      |   4 ++--
 .../android/messages/ConversationListActivity.java  |   4 ++--
 .../messages/ReadPrivateMessageActivity.java        |   4 ++--
 .../messages/WritePrivateMessageActivity.java       |   4 ++--
 {briar-core => briar-api}/libs/javax.inject.jar     | Bin
 briar-core/.classpath                               |   2 +-
 .../net/sf/briar/crypto/CryptoComponentImpl.java    |   2 +-
 .../src/net/sf/briar/crypto/CryptoModule.java       |   3 ++-
 .../src/net/sf/briar/db/DatabaseCleanerImpl.java    |   4 ++--
 .../src/net/sf/briar/db/DatabaseComponentImpl.java  |   4 ++--
 briar-core/src/net/sf/briar/db/DatabaseModule.java  |   3 ++-
 briar-core/src/net/sf/briar/db/H2Database.java      |   4 ++--
 .../net/sf/briar/invitation/InvitationModule.java   |   3 ++-
 .../briar/invitation/InvitationTaskFactoryImpl.java |   4 ++--
 .../sf/briar/lifecycle/LifecycleManagerImpl.java    |   4 ++--
 .../src/net/sf/briar/lifecycle/LifecycleModule.java |   3 ++-
 .../net/sf/briar/messaging/AuthorFactoryImpl.java   |   4 ++--
 .../net/sf/briar/messaging/GroupFactoryImpl.java    |   4 ++--
 .../net/sf/briar/messaging/MessageFactoryImpl.java  |   4 ++--
 .../net/sf/briar/messaging/MessageVerifierImpl.java |   4 ++--
 .../sf/briar/messaging/PacketReaderFactoryImpl.java |   4 ++--
 .../sf/briar/messaging/PacketWriterFactoryImpl.java |   4 ++--
 .../duplex/DuplexConnectionFactoryImpl.java         |   4 ++--
 .../messaging/duplex/DuplexMessagingModule.java     |   3 ++-
 .../simplex/SimplexConnectionFactoryImpl.java       |   4 ++--
 .../messaging/simplex/SimplexMessagingModule.java   |   3 ++-
 .../src/net/sf/briar/plugins/PluginManagerImpl.java |   4 ++--
 .../src/net/sf/briar/plugins/PluginsModule.java     |   3 ++-
 briar-core/src/net/sf/briar/plugins/PollerImpl.java |   4 ++--
 .../reliability/ReliabilityLayerFactoryImpl.java    |   4 ++--
 .../net/sf/briar/reliability/ReliabilityModule.java |   3 ++-
 .../src/net/sf/briar/serial/SerialModule.java       |   3 ++-
 .../briar/transport/ConnectionDispatcherImpl.java   |   4 ++--
 .../transport/ConnectionReaderFactoryImpl.java      |   4 ++--
 .../briar/transport/ConnectionRecogniserImpl.java   |   4 ++--
 .../transport/ConnectionWriterFactoryImpl.java      |   4 ++--
 .../src/net/sf/briar/transport/KeyManagerImpl.java  |   4 ++--
 .../src/net/sf/briar/transport/TransportModule.java |   3 ++-
 .../src/net/sf/briar/crypto/KeyAgreementTest.java   |   1 -
 .../sf/briar/crypto/KeyEncodingAndParsingTest.java  |   1 -
 57 files changed, 105 insertions(+), 94 deletions(-)
 rename {briar-core => briar-api}/libs/javax.inject.jar (100%)

diff --git a/briar-android/.classpath b/briar-android/.classpath
index 591a99a8cc..1242b5cb4f 100644
--- a/briar-android/.classpath
+++ b/briar-android/.classpath
@@ -8,5 +8,6 @@
 	<classpathentry combineaccessrules="false" kind="src" path="/briar-api"/>
 	<classpathentry kind="lib" path="/briar-api/libs/guice-3.0-no_aop.jar"/>
 	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
+	<classpathentry kind="lib" path="/briar-api/libs/javax.inject.jar"/>
 	<classpathentry kind="output" path="bin/classes"/>
 </classpath>
diff --git a/briar-android/src/net/sf/briar/android/AndroidExecutorImpl.java b/briar-android/src/net/sf/briar/android/AndroidExecutorImpl.java
index 79cf7db9cc..a1030b3e2f 100644
--- a/briar-android/src/net/sf/briar/android/AndroidExecutorImpl.java
+++ b/briar-android/src/net/sf/briar/android/AndroidExecutorImpl.java
@@ -7,13 +7,13 @@ import java.util.concurrent.Future;
 import java.util.concurrent.FutureTask;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.android.AndroidExecutor;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
 
-import com.google.inject.Inject;
-
 class AndroidExecutorImpl implements AndroidExecutor {
 
 	private static final int SHUTDOWN = 0, RUN = 1;
diff --git a/briar-android/src/net/sf/briar/android/AndroidModule.java b/briar-android/src/net/sf/briar/android/AndroidModule.java
index 817ca22b89..bcccfefd0c 100644
--- a/briar-android/src/net/sf/briar/android/AndroidModule.java
+++ b/briar-android/src/net/sf/briar/android/AndroidModule.java
@@ -12,6 +12,8 @@ import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.android.AndroidExecutor;
 import net.sf.briar.api.android.DatabaseUiExecutor;
 import net.sf.briar.api.android.ReferenceManager;
@@ -32,7 +34,6 @@ import android.content.Context;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Singleton;
 
 public class AndroidModule extends AbstractModule {
 
diff --git a/briar-android/src/net/sf/briar/android/BriarService.java b/briar-android/src/net/sf/briar/android/BriarService.java
index 2cee481420..569c6e9101 100644
--- a/briar-android/src/net/sf/briar/android/BriarService.java
+++ b/briar-android/src/net/sf/briar/android/BriarService.java
@@ -7,6 +7,8 @@ import static java.util.logging.Level.INFO;
 import java.util.concurrent.CountDownLatch;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.api.android.AndroidExecutor;
 import net.sf.briar.api.lifecycle.LifecycleManager;
@@ -19,8 +21,6 @@ import android.os.Binder;
 import android.os.IBinder;
 import android.support.v4.app.NotificationCompat;
 
-import com.google.inject.Inject;
-
 public class BriarService extends RoboService {
 
 	private static final Logger LOG =
diff --git a/briar-android/src/net/sf/briar/android/HomeScreenActivity.java b/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
index 71f94b0e88..51eadb0868 100644
--- a/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
+++ b/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
@@ -19,6 +19,8 @@ import java.util.List;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.BriarService.BriarBinder;
 import net.sf.briar.android.BriarService.BriarServiceConnection;
@@ -56,8 +58,6 @@ import android.widget.ProgressBar;
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
-import com.google.inject.Inject;
-
 public class HomeScreenActivity extends RoboActivity {
 
 	// This build expires on 30 November 2013
diff --git a/briar-android/src/net/sf/briar/android/SetupActivity.java b/briar-android/src/net/sf/briar/android/SetupActivity.java
index 14fc2bed19..699aa16bc0 100644
--- a/briar-android/src/net/sf/briar/android/SetupActivity.java
+++ b/briar-android/src/net/sf/briar/android/SetupActivity.java
@@ -16,6 +16,8 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.concurrent.Executor;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.api.AuthorFactory;
 import net.sf.briar.api.LocalAuthor;
@@ -39,8 +41,6 @@ import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
-import com.google.inject.Inject;
-
 public class SetupActivity extends RoboActivity implements OnClickListener {
 
 	private static final int MIN_PASSWORD_LENGTH = 8;
diff --git a/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java b/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
index e525239cc8..834416420c 100644
--- a/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
+++ b/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
@@ -21,6 +21,8 @@ import java.util.Map;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.invitation.AddContactActivity;
 import net.sf.briar.android.util.HorizontalBorder;
@@ -50,8 +52,6 @@ import android.widget.ImageButton;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 
-import com.google.inject.Inject;
-
 public class ContactListActivity extends RoboActivity
 implements OnClickListener, OnItemClickListener, DatabaseListener,
 ConnectionListener {
diff --git a/briar-android/src/net/sf/briar/android/groups/ConfigureGroupActivity.java b/briar-android/src/net/sf/briar/android/groups/ConfigureGroupActivity.java
index 60aa3ac6c3..e3d12fcc13 100644
--- a/briar-android/src/net/sf/briar/android/groups/ConfigureGroupActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/ConfigureGroupActivity.java
@@ -14,6 +14,8 @@ import java.util.Collections;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.contact.SelectContactsDialog;
 import net.sf.briar.android.invitation.AddContactActivity;
@@ -40,8 +42,6 @@ import android.widget.ProgressBar;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 
-import com.google.inject.Inject;
-
 public class ConfigureGroupActivity extends RoboFragmentActivity
 implements OnClickListener, NoContactsDialog.Listener,
 SelectContactsDialog.Listener {
diff --git a/briar-android/src/net/sf/briar/android/groups/CreateGroupActivity.java b/briar-android/src/net/sf/briar/android/groups/CreateGroupActivity.java
index 3eb123ad48..b6d0dff45b 100644
--- a/briar-android/src/net/sf/briar/android/groups/CreateGroupActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/CreateGroupActivity.java
@@ -19,6 +19,8 @@ import java.util.Collections;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.contact.SelectContactsDialog;
 import net.sf.briar.android.invitation.AddContactActivity;
@@ -49,8 +51,6 @@ import android.widget.RadioGroup;
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
-import com.google.inject.Inject;
-
 public class CreateGroupActivity extends RoboFragmentActivity
 implements OnEditorActionListener, OnClickListener, NoContactsDialog.Listener,
 SelectContactsDialog.Listener {
diff --git a/briar-android/src/net/sf/briar/android/groups/GroupActivity.java b/briar-android/src/net/sf/briar/android/groups/GroupActivity.java
index 7819438028..965137b0f5 100644
--- a/briar-android/src/net/sf/briar/android/groups/GroupActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/GroupActivity.java
@@ -15,6 +15,8 @@ import java.util.Collection;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.AscendingHeaderComparator;
 import net.sf.briar.android.util.HorizontalBorder;
@@ -43,8 +45,6 @@ import android.widget.ImageButton;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 
-import com.google.inject.Inject;
-
 public class GroupActivity extends RoboActivity implements DatabaseListener,
 OnClickListener, OnItemClickListener {
 
diff --git a/briar-android/src/net/sf/briar/android/groups/GroupListActivity.java b/briar-android/src/net/sf/briar/android/groups/GroupListActivity.java
index 613b66ba82..7b6d624e35 100644
--- a/briar-android/src/net/sf/briar/android/groups/GroupListActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/GroupListActivity.java
@@ -18,6 +18,8 @@ import java.util.Comparator;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.util.HorizontalBorder;
 import net.sf.briar.android.util.HorizontalSpace;
@@ -49,8 +51,6 @@ import android.widget.ImageButton;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 
-import com.google.inject.Inject;
-
 public class GroupListActivity extends RoboFragmentActivity
 implements DatabaseListener, OnClickListener, NoGroupsDialog.Listener,
 OnItemClickListener {
diff --git a/briar-android/src/net/sf/briar/android/groups/ManageGroupsActivity.java b/briar-android/src/net/sf/briar/android/groups/ManageGroupsActivity.java
index 9bf1e43d8b..14d326c9c0 100644
--- a/briar-android/src/net/sf/briar/android/groups/ManageGroupsActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/ManageGroupsActivity.java
@@ -10,6 +10,8 @@ import java.util.Comparator;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.android.util.ListLoadingProgressBar;
 import net.sf.briar.api.android.DatabaseUiExecutor;
 import net.sf.briar.api.db.DatabaseComponent;
@@ -30,8 +32,6 @@ import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.ListView;
 
-import com.google.inject.Inject;
-
 public class ManageGroupsActivity extends RoboFragmentActivity
 implements DatabaseListener, OnItemClickListener {
 
diff --git a/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java b/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java
index 2f62722418..3d9c94a130 100644
--- a/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java
@@ -15,6 +15,8 @@ import java.io.UnsupportedEncodingException;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.util.HorizontalBorder;
 import net.sf.briar.android.util.HorizontalSpace;
@@ -37,8 +39,6 @@ import android.widget.LinearLayout;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
-import com.google.inject.Inject;
-
 public class ReadGroupPostActivity extends RoboActivity
 implements OnClickListener {
 
diff --git a/briar-android/src/net/sf/briar/android/groups/WriteGroupPostActivity.java b/briar-android/src/net/sf/briar/android/groups/WriteGroupPostActivity.java
index fa4995331b..8a94109454 100644
--- a/briar-android/src/net/sf/briar/android/groups/WriteGroupPostActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/WriteGroupPostActivity.java
@@ -15,6 +15,8 @@ import java.util.Collection;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.identity.CreateIdentityActivity;
 import net.sf.briar.android.identity.LocalAuthorItem;
@@ -49,8 +51,6 @@ import android.widget.LinearLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
 
-import com.google.inject.Inject;
-
 public class WriteGroupPostActivity extends RoboActivity
 implements OnItemSelectedListener, OnClickListener {
 
diff --git a/briar-android/src/net/sf/briar/android/helloworld/HelloWorldModule.java b/briar-android/src/net/sf/briar/android/helloworld/HelloWorldModule.java
index 3f074576e8..4a28987d2a 100644
--- a/briar-android/src/net/sf/briar/android/helloworld/HelloWorldModule.java
+++ b/briar-android/src/net/sf/briar/android/helloworld/HelloWorldModule.java
@@ -4,13 +4,14 @@ import static android.content.Context.MODE_PRIVATE;
 
 import java.io.File;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.db.DatabaseConfig;
 import net.sf.briar.api.ui.UiCallback;
 import android.app.Application;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Singleton;
 
 public class HelloWorldModule extends AbstractModule {
 
diff --git a/briar-android/src/net/sf/briar/android/identity/CreateIdentityActivity.java b/briar-android/src/net/sf/briar/android/identity/CreateIdentityActivity.java
index dba0a3eef8..bd4feb7c04 100644
--- a/briar-android/src/net/sf/briar/android/identity/CreateIdentityActivity.java
+++ b/briar-android/src/net/sf/briar/android/identity/CreateIdentityActivity.java
@@ -17,6 +17,8 @@ import java.io.IOException;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.api.AuthorFactory;
 import net.sf.briar.api.LocalAuthor;
@@ -40,8 +42,6 @@ import android.widget.ProgressBar;
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
-import com.google.inject.Inject;
-
 public class CreateIdentityActivity extends RoboActivity
 implements OnEditorActionListener, OnClickListener {
 
diff --git a/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java b/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
index 6c22e433c5..fb02e7c71f 100644
--- a/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
+++ b/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java
@@ -12,6 +12,8 @@ import java.util.Collection;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.android.identity.LocalAuthorItem;
 import net.sf.briar.android.identity.LocalAuthorItemComparator;
 import net.sf.briar.android.identity.LocalAuthorSpinnerAdapter;
@@ -37,8 +39,6 @@ import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
 
-import com.google.inject.Inject;
-
 public class AddContactActivity extends RoboActivity
 implements InvitationListener {
 
diff --git a/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java b/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
index 5d023014fa..2dce8e6dd4 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
@@ -13,6 +13,8 @@ import java.util.Collection;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.AscendingHeaderComparator;
 import net.sf.briar.android.util.HorizontalBorder;
@@ -41,8 +43,6 @@ import android.widget.ImageButton;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 
-import com.google.inject.Inject;
-
 public class ConversationActivity extends RoboActivity
 implements DatabaseListener, OnClickListener, OnItemClickListener {
 
diff --git a/briar-android/src/net/sf/briar/android/messages/ConversationListActivity.java b/briar-android/src/net/sf/briar/android/messages/ConversationListActivity.java
index 2f27956e8a..719e33419b 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationListActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationListActivity.java
@@ -14,6 +14,8 @@ import java.util.Comparator;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.invitation.AddContactActivity;
 import net.sf.briar.android.util.HorizontalBorder;
@@ -42,8 +44,6 @@ import android.widget.ImageButton;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 
-import com.google.inject.Inject;
-
 public class ConversationListActivity extends RoboFragmentActivity
 implements OnClickListener, DatabaseListener, NoContactsDialog.Listener {
 
diff --git a/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java b/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java
index 4aa8c5ffa9..c47b30603b 100644
--- a/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java
@@ -15,6 +15,8 @@ import java.io.UnsupportedEncodingException;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.util.HorizontalBorder;
 import net.sf.briar.android.util.HorizontalSpace;
@@ -37,8 +39,6 @@ import android.widget.LinearLayout;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
-import com.google.inject.Inject;
-
 public class ReadPrivateMessageActivity extends RoboActivity
 implements OnClickListener {
 
diff --git a/briar-android/src/net/sf/briar/android/messages/WritePrivateMessageActivity.java b/briar-android/src/net/sf/briar/android/messages/WritePrivateMessageActivity.java
index e67058b835..dfa935cc00 100644
--- a/briar-android/src/net/sf/briar/android/messages/WritePrivateMessageActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/WritePrivateMessageActivity.java
@@ -16,6 +16,8 @@ import java.util.Collection;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.R;
 import net.sf.briar.android.contact.ContactItem;
 import net.sf.briar.android.contact.ContactItemComparator;
@@ -47,8 +49,6 @@ import android.widget.LinearLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
 
-import com.google.inject.Inject;
-
 public class WritePrivateMessageActivity extends RoboActivity
 implements OnItemSelectedListener, OnClickListener {
 
diff --git a/briar-core/libs/javax.inject.jar b/briar-api/libs/javax.inject.jar
similarity index 100%
rename from briar-core/libs/javax.inject.jar
rename to briar-api/libs/javax.inject.jar
diff --git a/briar-core/.classpath b/briar-core/.classpath
index f5c11aeb6c..03f19e28f0 100644
--- a/briar-core/.classpath
+++ b/briar-core/.classpath
@@ -3,10 +3,10 @@
 	<classpathentry kind="src" path="src"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/briar-api"/>
 	<classpathentry kind="lib" path="/briar-api/libs/guice-3.0-no_aop.jar"/>
-	<classpathentry kind="lib" path="libs/javax.inject.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="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="lib" path="libs/h2small-1.3.174.jar"/>
 	<classpathentry kind="lib" path="libs/weupnp-0.1.3-SNAPSHOT.jar"/>
+	<classpathentry kind="lib" path="/briar-api/libs/javax.inject.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/briar-core/src/net/sf/briar/crypto/CryptoComponentImpl.java b/briar-core/src/net/sf/briar/crypto/CryptoComponentImpl.java
index 6d701dbb5f..9fc1ffa8fe 100644
--- a/briar-core/src/net/sf/briar/crypto/CryptoComponentImpl.java
+++ b/briar-core/src/net/sf/briar/crypto/CryptoComponentImpl.java
@@ -4,8 +4,8 @@ import static javax.crypto.Cipher.DECRYPT_MODE;
 import static javax.crypto.Cipher.ENCRYPT_MODE;
 import static net.sf.briar.api.invitation.InvitationConstants.CODE_BITS;
 import static net.sf.briar.api.transport.TransportConstants.TAG_LENGTH;
-import static net.sf.briar.crypto.EllipticCurveConstants.PARAMETERS;
 import static net.sf.briar.crypto.EllipticCurveConstants.P;
+import static net.sf.briar.crypto.EllipticCurveConstants.PARAMETERS;
 import static net.sf.briar.util.ByteUtils.MAX_32_BIT_UNSIGNED;
 
 import java.io.ByteArrayOutputStream;
diff --git a/briar-core/src/net/sf/briar/crypto/CryptoModule.java b/briar-core/src/net/sf/briar/crypto/CryptoModule.java
index 288007a9dc..bda3ed9b00 100644
--- a/briar-core/src/net/sf/briar/crypto/CryptoModule.java
+++ b/briar-core/src/net/sf/briar/crypto/CryptoModule.java
@@ -9,13 +9,14 @@ import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.crypto.CryptoComponent;
 import net.sf.briar.api.crypto.CryptoExecutor;
 import net.sf.briar.api.lifecycle.LifecycleManager;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Singleton;
 
 public class CryptoModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/db/DatabaseCleanerImpl.java b/briar-core/src/net/sf/briar/db/DatabaseCleanerImpl.java
index 8ede59d187..10a1a554bd 100644
--- a/briar-core/src/net/sf/briar/db/DatabaseCleanerImpl.java
+++ b/briar-core/src/net/sf/briar/db/DatabaseCleanerImpl.java
@@ -6,12 +6,12 @@ import static java.util.logging.Level.WARNING;
 import java.util.TimerTask;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.clock.Timer;
 import net.sf.briar.api.db.DbClosedException;
 import net.sf.briar.api.db.DbException;
 
-import com.google.inject.Inject;
-
 class DatabaseCleanerImpl extends TimerTask implements DatabaseCleaner {
 
 	private static final Logger LOG =
diff --git a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
index 75778cc595..df375151f6 100644
--- a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
+++ b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java
@@ -22,6 +22,8 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.Author;
 import net.sf.briar.api.AuthorId;
 import net.sf.briar.api.Contact;
@@ -76,8 +78,6 @@ import net.sf.briar.api.messaging.TransportUpdate;
 import net.sf.briar.api.transport.Endpoint;
 import net.sf.briar.api.transport.TemporarySecret;
 
-import com.google.inject.Inject;
-
 /**
  * An implementation of DatabaseComponent using reentrant read-write locks.
  * Depending on the JVM's lock implementation, this implementation may allow
diff --git a/briar-core/src/net/sf/briar/db/DatabaseModule.java b/briar-core/src/net/sf/briar/db/DatabaseModule.java
index 87f629c810..165f986e8f 100644
--- a/briar-core/src/net/sf/briar/db/DatabaseModule.java
+++ b/briar-core/src/net/sf/briar/db/DatabaseModule.java
@@ -10,6 +10,8 @@ import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.clock.Clock;
 import net.sf.briar.api.clock.SystemClock;
 import net.sf.briar.api.db.DatabaseComponent;
@@ -21,7 +23,6 @@ import net.sf.briar.api.os.FileUtils;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Singleton;
 
 public class DatabaseModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/db/H2Database.java b/briar-core/src/net/sf/briar/db/H2Database.java
index a21aba6d05..d0dfa1da65 100644
--- a/briar-core/src/net/sf/briar/db/H2Database.java
+++ b/briar-core/src/net/sf/briar/db/H2Database.java
@@ -8,14 +8,14 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Properties;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.clock.Clock;
 import net.sf.briar.api.db.DatabaseConfig;
 import net.sf.briar.api.db.DbException;
 import net.sf.briar.api.os.FileUtils;
 import net.sf.briar.util.StringUtils;
 
-import com.google.inject.Inject;
-
 /** Contains all the H2-specific code for the database. */
 class H2Database extends JdbcDatabase {
 
diff --git a/briar-core/src/net/sf/briar/invitation/InvitationModule.java b/briar-core/src/net/sf/briar/invitation/InvitationModule.java
index 4c5293fb15..0039480e4b 100644
--- a/briar-core/src/net/sf/briar/invitation/InvitationModule.java
+++ b/briar-core/src/net/sf/briar/invitation/InvitationModule.java
@@ -1,9 +1,10 @@
 package net.sf.briar.invitation;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.invitation.InvitationTaskFactory;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Singleton;
 
 public class InvitationModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/invitation/InvitationTaskFactoryImpl.java b/briar-core/src/net/sf/briar/invitation/InvitationTaskFactoryImpl.java
index 66d5d649f4..b3fd50162e 100644
--- a/briar-core/src/net/sf/briar/invitation/InvitationTaskFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/invitation/InvitationTaskFactoryImpl.java
@@ -1,5 +1,7 @@
 package net.sf.briar.invitation;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.AuthorFactory;
 import net.sf.briar.api.AuthorId;
 import net.sf.briar.api.clock.Clock;
@@ -15,8 +17,6 @@ import net.sf.briar.api.transport.ConnectionDispatcher;
 import net.sf.briar.api.transport.ConnectionReaderFactory;
 import net.sf.briar.api.transport.ConnectionWriterFactory;
 
-import com.google.inject.Inject;
-
 class InvitationTaskFactoryImpl implements InvitationTaskFactory {
 
 	private final CryptoComponent crypto;
diff --git a/briar-core/src/net/sf/briar/lifecycle/LifecycleManagerImpl.java b/briar-core/src/net/sf/briar/lifecycle/LifecycleManagerImpl.java
index 0c14b3a5dd..06e007762b 100644
--- a/briar-core/src/net/sf/briar/lifecycle/LifecycleManagerImpl.java
+++ b/briar-core/src/net/sf/briar/lifecycle/LifecycleManagerImpl.java
@@ -10,13 +10,13 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.db.DatabaseComponent;
 import net.sf.briar.api.db.DbException;
 import net.sf.briar.api.lifecycle.LifecycleManager;
 import net.sf.briar.api.lifecycle.Service;
 
-import com.google.inject.Inject;
-
 class LifecycleManagerImpl implements LifecycleManager {
 
 	private static final Logger LOG =
diff --git a/briar-core/src/net/sf/briar/lifecycle/LifecycleModule.java b/briar-core/src/net/sf/briar/lifecycle/LifecycleModule.java
index fb17ceb109..bab67b5780 100644
--- a/briar-core/src/net/sf/briar/lifecycle/LifecycleModule.java
+++ b/briar-core/src/net/sf/briar/lifecycle/LifecycleModule.java
@@ -1,10 +1,11 @@
 package net.sf.briar.lifecycle;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.lifecycle.LifecycleManager;
 import net.sf.briar.api.lifecycle.ShutdownManager;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Singleton;
 
 public class LifecycleModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/messaging/AuthorFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/AuthorFactoryImpl.java
index 8dc4ba94c9..a55a60b220 100644
--- a/briar-core/src/net/sf/briar/messaging/AuthorFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/messaging/AuthorFactoryImpl.java
@@ -5,6 +5,8 @@ import static net.sf.briar.api.messaging.Types.AUTHOR;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.Author;
 import net.sf.briar.api.AuthorFactory;
 import net.sf.briar.api.AuthorId;
@@ -14,8 +16,6 @@ import net.sf.briar.api.crypto.MessageDigest;
 import net.sf.briar.api.serial.Writer;
 import net.sf.briar.api.serial.WriterFactory;
 
-import com.google.inject.Inject;
-
 class AuthorFactoryImpl implements AuthorFactory {
 
 	private final CryptoComponent crypto;
diff --git a/briar-core/src/net/sf/briar/messaging/GroupFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/GroupFactoryImpl.java
index 7bbc712005..0a251f523d 100644
--- a/briar-core/src/net/sf/briar/messaging/GroupFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/messaging/GroupFactoryImpl.java
@@ -6,6 +6,8 @@ import static net.sf.briar.api.messaging.Types.GROUP;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.crypto.CryptoComponent;
 import net.sf.briar.api.crypto.MessageDigest;
 import net.sf.briar.api.messaging.Group;
@@ -14,8 +16,6 @@ import net.sf.briar.api.messaging.GroupId;
 import net.sf.briar.api.serial.Writer;
 import net.sf.briar.api.serial.WriterFactory;
 
-import com.google.inject.Inject;
-
 class GroupFactoryImpl implements GroupFactory {
 
 	private final CryptoComponent crypto;
diff --git a/briar-core/src/net/sf/briar/messaging/MessageFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/MessageFactoryImpl.java
index 810c8fd210..5de23a977a 100644
--- a/briar-core/src/net/sf/briar/messaging/MessageFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/messaging/MessageFactoryImpl.java
@@ -18,6 +18,8 @@ import java.nio.charset.CharsetDecoder;
 import java.security.GeneralSecurityException;
 import java.security.SecureRandom;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.Author;
 import net.sf.briar.api.clock.Clock;
 import net.sf.briar.api.crypto.CryptoComponent;
@@ -35,8 +37,6 @@ import net.sf.briar.api.serial.SigningConsumer;
 import net.sf.briar.api.serial.Writer;
 import net.sf.briar.api.serial.WriterFactory;
 
-import com.google.inject.Inject;
-
 class MessageFactoryImpl implements MessageFactory {
 
 	private final Signature signature;
diff --git a/briar-core/src/net/sf/briar/messaging/MessageVerifierImpl.java b/briar-core/src/net/sf/briar/messaging/MessageVerifierImpl.java
index a0ffe69ca9..9332c59cc6 100644
--- a/briar-core/src/net/sf/briar/messaging/MessageVerifierImpl.java
+++ b/briar-core/src/net/sf/briar/messaging/MessageVerifierImpl.java
@@ -2,6 +2,8 @@ package net.sf.briar.messaging;
 
 import java.security.GeneralSecurityException;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.Author;
 import net.sf.briar.api.crypto.CryptoComponent;
 import net.sf.briar.api.crypto.KeyParser;
@@ -13,8 +15,6 @@ import net.sf.briar.api.messaging.MessageId;
 import net.sf.briar.api.messaging.MessageVerifier;
 import net.sf.briar.api.messaging.UnverifiedMessage;
 
-import com.google.inject.Inject;
-
 class MessageVerifierImpl implements MessageVerifier {
 
 	private final CryptoComponent crypto;
diff --git a/briar-core/src/net/sf/briar/messaging/PacketReaderFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/PacketReaderFactoryImpl.java
index 624e8506ce..f094ecfbe5 100644
--- a/briar-core/src/net/sf/briar/messaging/PacketReaderFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/messaging/PacketReaderFactoryImpl.java
@@ -2,6 +2,8 @@ package net.sf.briar.messaging;
 
 import java.io.InputStream;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.messaging.PacketReader;
 import net.sf.briar.api.messaging.PacketReaderFactory;
 import net.sf.briar.api.messaging.SubscriptionUpdate;
@@ -9,8 +11,6 @@ import net.sf.briar.api.messaging.UnverifiedMessage;
 import net.sf.briar.api.serial.ReaderFactory;
 import net.sf.briar.api.serial.StructReader;
 
-import com.google.inject.Inject;
-
 class PacketReaderFactoryImpl implements PacketReaderFactory {
 
 	private final ReaderFactory readerFactory;
diff --git a/briar-core/src/net/sf/briar/messaging/PacketWriterFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/PacketWriterFactoryImpl.java
index 3d80c3b3ab..8f1e5b4e56 100644
--- a/briar-core/src/net/sf/briar/messaging/PacketWriterFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/messaging/PacketWriterFactoryImpl.java
@@ -2,13 +2,13 @@ package net.sf.briar.messaging;
 
 import java.io.OutputStream;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.messaging.PacketWriter;
 import net.sf.briar.api.messaging.PacketWriterFactory;
 import net.sf.briar.api.serial.SerialComponent;
 import net.sf.briar.api.serial.WriterFactory;
 
-import com.google.inject.Inject;
-
 class PacketWriterFactoryImpl implements PacketWriterFactory {
 
 	private final SerialComponent serial;
diff --git a/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnectionFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnectionFactoryImpl.java
index aaea38cbab..22d2153cf2 100644
--- a/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnectionFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/messaging/duplex/DuplexConnectionFactoryImpl.java
@@ -5,6 +5,8 @@ import static java.util.logging.Level.WARNING;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.ContactId;
 import net.sf.briar.api.TransportId;
 import net.sf.briar.api.crypto.CryptoExecutor;
@@ -21,8 +23,6 @@ import net.sf.briar.api.transport.ConnectionReaderFactory;
 import net.sf.briar.api.transport.ConnectionRegistry;
 import net.sf.briar.api.transport.ConnectionWriterFactory;
 
-import com.google.inject.Inject;
-
 class DuplexConnectionFactoryImpl implements DuplexConnectionFactory {
 
 	private static final Logger LOG =
diff --git a/briar-core/src/net/sf/briar/messaging/duplex/DuplexMessagingModule.java b/briar-core/src/net/sf/briar/messaging/duplex/DuplexMessagingModule.java
index f9c3967f89..17f4a5b1a2 100644
--- a/briar-core/src/net/sf/briar/messaging/duplex/DuplexMessagingModule.java
+++ b/briar-core/src/net/sf/briar/messaging/duplex/DuplexMessagingModule.java
@@ -1,9 +1,10 @@
 package net.sf.briar.messaging.duplex;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.messaging.duplex.DuplexConnectionFactory;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Singleton;
 
 public class DuplexMessagingModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/messaging/simplex/SimplexConnectionFactoryImpl.java b/briar-core/src/net/sf/briar/messaging/simplex/SimplexConnectionFactoryImpl.java
index aed86936a6..441a0a46e8 100644
--- a/briar-core/src/net/sf/briar/messaging/simplex/SimplexConnectionFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/messaging/simplex/SimplexConnectionFactoryImpl.java
@@ -5,6 +5,8 @@ import static java.util.logging.Level.WARNING;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.ContactId;
 import net.sf.briar.api.TransportId;
 import net.sf.briar.api.crypto.CryptoExecutor;
@@ -22,8 +24,6 @@ import net.sf.briar.api.transport.ConnectionReaderFactory;
 import net.sf.briar.api.transport.ConnectionRegistry;
 import net.sf.briar.api.transport.ConnectionWriterFactory;
 
-import com.google.inject.Inject;
-
 class SimplexConnectionFactoryImpl implements SimplexConnectionFactory {
 
 	private static final Logger LOG =
diff --git a/briar-core/src/net/sf/briar/messaging/simplex/SimplexMessagingModule.java b/briar-core/src/net/sf/briar/messaging/simplex/SimplexMessagingModule.java
index 4455fbe603..eec9b495d8 100644
--- a/briar-core/src/net/sf/briar/messaging/simplex/SimplexMessagingModule.java
+++ b/briar-core/src/net/sf/briar/messaging/simplex/SimplexMessagingModule.java
@@ -1,9 +1,10 @@
 package net.sf.briar.messaging.simplex;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.messaging.simplex.SimplexConnectionFactory;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Singleton;
 
 public class SimplexMessagingModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/plugins/PluginManagerImpl.java b/briar-core/src/net/sf/briar/plugins/PluginManagerImpl.java
index b24c322c97..c4d11978f7 100644
--- a/briar-core/src/net/sf/briar/plugins/PluginManagerImpl.java
+++ b/briar-core/src/net/sf/briar/plugins/PluginManagerImpl.java
@@ -14,6 +14,8 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.ContactId;
 import net.sf.briar.api.TransportConfig;
 import net.sf.briar.api.TransportId;
@@ -38,8 +40,6 @@ import net.sf.briar.api.plugins.simplex.SimplexTransportWriter;
 import net.sf.briar.api.transport.ConnectionDispatcher;
 import net.sf.briar.api.ui.UiCallback;
 
-import com.google.inject.Inject;
-
 // FIXME: Don't make alien calls with a lock held (that includes waiting on a
 // latch that depends on an alien call)
 class PluginManagerImpl implements PluginManager {
diff --git a/briar-core/src/net/sf/briar/plugins/PluginsModule.java b/briar-core/src/net/sf/briar/plugins/PluginsModule.java
index 2ed0a78c51..defa2ac78d 100644
--- a/briar-core/src/net/sf/briar/plugins/PluginsModule.java
+++ b/briar-core/src/net/sf/briar/plugins/PluginsModule.java
@@ -9,13 +9,14 @@ import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.lifecycle.LifecycleManager;
 import net.sf.briar.api.plugins.PluginExecutor;
 import net.sf.briar.api.plugins.PluginManager;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Singleton;
 
 public class PluginsModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/plugins/PollerImpl.java b/briar-core/src/net/sf/briar/plugins/PollerImpl.java
index 30a356feef..8ae80eed4b 100644
--- a/briar-core/src/net/sf/briar/plugins/PollerImpl.java
+++ b/briar-core/src/net/sf/briar/plugins/PollerImpl.java
@@ -8,14 +8,14 @@ import java.util.TreeSet;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.ContactId;
 import net.sf.briar.api.clock.Clock;
 import net.sf.briar.api.plugins.Plugin;
 import net.sf.briar.api.plugins.PluginExecutor;
 import net.sf.briar.api.transport.ConnectionRegistry;
 
-import com.google.inject.Inject;
-
 class PollerImpl implements Poller, Runnable {
 
 	private static final Logger LOG =
diff --git a/briar-core/src/net/sf/briar/reliability/ReliabilityLayerFactoryImpl.java b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerFactoryImpl.java
index 411f817b07..406436dba8 100644
--- a/briar-core/src/net/sf/briar/reliability/ReliabilityLayerFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/reliability/ReliabilityLayerFactoryImpl.java
@@ -2,6 +2,8 @@ package net.sf.briar.reliability;
 
 import java.util.concurrent.Executor;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.clock.Clock;
 import net.sf.briar.api.clock.SystemClock;
 import net.sf.briar.api.reliability.ReliabilityExecutor;
@@ -9,8 +11,6 @@ import net.sf.briar.api.reliability.ReliabilityLayer;
 import net.sf.briar.api.reliability.ReliabilityLayerFactory;
 import net.sf.briar.api.reliability.WriteHandler;
 
-import com.google.inject.Inject;
-
 class ReliabilityLayerFactoryImpl implements ReliabilityLayerFactory {
 
 	private final Executor executor;
diff --git a/briar-core/src/net/sf/briar/reliability/ReliabilityModule.java b/briar-core/src/net/sf/briar/reliability/ReliabilityModule.java
index eb8744245f..c80897ba33 100644
--- a/briar-core/src/net/sf/briar/reliability/ReliabilityModule.java
+++ b/briar-core/src/net/sf/briar/reliability/ReliabilityModule.java
@@ -9,13 +9,14 @@ import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.lifecycle.LifecycleManager;
 import net.sf.briar.api.reliability.ReliabilityExecutor;
 import net.sf.briar.api.reliability.ReliabilityLayerFactory;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Singleton;
 
 public class ReliabilityModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/serial/SerialModule.java b/briar-core/src/net/sf/briar/serial/SerialModule.java
index acc25ce2b5..0c512bd15a 100644
--- a/briar-core/src/net/sf/briar/serial/SerialModule.java
+++ b/briar-core/src/net/sf/briar/serial/SerialModule.java
@@ -1,11 +1,12 @@
 package net.sf.briar.serial;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.serial.ReaderFactory;
 import net.sf.briar.api.serial.SerialComponent;
 import net.sf.briar.api.serial.WriterFactory;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Singleton;
 
 public class SerialModule extends AbstractModule {
 
diff --git a/briar-core/src/net/sf/briar/transport/ConnectionDispatcherImpl.java b/briar-core/src/net/sf/briar/transport/ConnectionDispatcherImpl.java
index ecd57aa2b7..45ec4834c8 100644
--- a/briar-core/src/net/sf/briar/transport/ConnectionDispatcherImpl.java
+++ b/briar-core/src/net/sf/briar/transport/ConnectionDispatcherImpl.java
@@ -9,6 +9,8 @@ import java.io.InputStream;
 import java.util.concurrent.Executor;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.ContactId;
 import net.sf.briar.api.TransportId;
 import net.sf.briar.api.db.DbException;
@@ -22,8 +24,6 @@ import net.sf.briar.api.transport.ConnectionDispatcher;
 import net.sf.briar.api.transport.ConnectionRecogniser;
 import net.sf.briar.api.transport.IncomingConnectionExecutor;
 
-import com.google.inject.Inject;
-
 class ConnectionDispatcherImpl implements ConnectionDispatcher {
 
 	private static final Logger LOG =
diff --git a/briar-core/src/net/sf/briar/transport/ConnectionReaderFactoryImpl.java b/briar-core/src/net/sf/briar/transport/ConnectionReaderFactoryImpl.java
index cfd2b8246e..30c1824ccd 100644
--- a/briar-core/src/net/sf/briar/transport/ConnectionReaderFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/transport/ConnectionReaderFactoryImpl.java
@@ -2,14 +2,14 @@ package net.sf.briar.transport;
 
 import java.io.InputStream;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.crypto.CryptoComponent;
 import net.sf.briar.api.crypto.SecretKey;
 import net.sf.briar.api.transport.ConnectionContext;
 import net.sf.briar.api.transport.ConnectionReader;
 import net.sf.briar.api.transport.ConnectionReaderFactory;
 
-import com.google.inject.Inject;
-
 class ConnectionReaderFactoryImpl implements ConnectionReaderFactory {
 
 	private final CryptoComponent crypto;
diff --git a/briar-core/src/net/sf/briar/transport/ConnectionRecogniserImpl.java b/briar-core/src/net/sf/briar/transport/ConnectionRecogniserImpl.java
index 080860b5b9..1b5377aca2 100644
--- a/briar-core/src/net/sf/briar/transport/ConnectionRecogniserImpl.java
+++ b/briar-core/src/net/sf/briar/transport/ConnectionRecogniserImpl.java
@@ -3,6 +3,8 @@ package net.sf.briar.transport;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.ContactId;
 import net.sf.briar.api.TransportId;
 import net.sf.briar.api.crypto.CryptoComponent;
@@ -12,8 +14,6 @@ import net.sf.briar.api.transport.ConnectionContext;
 import net.sf.briar.api.transport.ConnectionRecogniser;
 import net.sf.briar.api.transport.TemporarySecret;
 
-import com.google.inject.Inject;
-
 class ConnectionRecogniserImpl implements ConnectionRecogniser {
 
 	private final CryptoComponent crypto;
diff --git a/briar-core/src/net/sf/briar/transport/ConnectionWriterFactoryImpl.java b/briar-core/src/net/sf/briar/transport/ConnectionWriterFactoryImpl.java
index fcb1e65eb5..9b8e174afe 100644
--- a/briar-core/src/net/sf/briar/transport/ConnectionWriterFactoryImpl.java
+++ b/briar-core/src/net/sf/briar/transport/ConnectionWriterFactoryImpl.java
@@ -4,14 +4,14 @@ import static net.sf.briar.api.transport.TransportConstants.TAG_LENGTH;
 
 import java.io.OutputStream;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.crypto.CryptoComponent;
 import net.sf.briar.api.crypto.SecretKey;
 import net.sf.briar.api.transport.ConnectionContext;
 import net.sf.briar.api.transport.ConnectionWriter;
 import net.sf.briar.api.transport.ConnectionWriterFactory;
 
-import com.google.inject.Inject;
-
 class ConnectionWriterFactoryImpl implements ConnectionWriterFactory {
 
 	private final CryptoComponent crypto;
diff --git a/briar-core/src/net/sf/briar/transport/KeyManagerImpl.java b/briar-core/src/net/sf/briar/transport/KeyManagerImpl.java
index cb0fc9b63e..109df1e9bf 100644
--- a/briar-core/src/net/sf/briar/transport/KeyManagerImpl.java
+++ b/briar-core/src/net/sf/briar/transport/KeyManagerImpl.java
@@ -14,6 +14,8 @@ import java.util.Map.Entry;
 import java.util.TimerTask;
 import java.util.logging.Logger;
 
+import javax.inject.Inject;
+
 import net.sf.briar.api.ContactId;
 import net.sf.briar.api.TransportId;
 import net.sf.briar.api.clock.Clock;
@@ -33,8 +35,6 @@ import net.sf.briar.api.transport.Endpoint;
 import net.sf.briar.api.transport.TemporarySecret;
 import net.sf.briar.util.ByteUtils;
 
-import com.google.inject.Inject;
-
 // FIXME: Don't make alien calls with a lock held
 class KeyManagerImpl extends TimerTask implements KeyManager, DatabaseListener {
 
diff --git a/briar-core/src/net/sf/briar/transport/TransportModule.java b/briar-core/src/net/sf/briar/transport/TransportModule.java
index 3d08f58024..de5c1c74a3 100644
--- a/briar-core/src/net/sf/briar/transport/TransportModule.java
+++ b/briar-core/src/net/sf/briar/transport/TransportModule.java
@@ -9,6 +9,8 @@ import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 
+import javax.inject.Singleton;
+
 import net.sf.briar.api.crypto.KeyManager;
 import net.sf.briar.api.lifecycle.LifecycleManager;
 import net.sf.briar.api.transport.ConnectionDispatcher;
@@ -20,7 +22,6 @@ import net.sf.briar.api.transport.IncomingConnectionExecutor;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Singleton;
 
 public class TransportModule extends AbstractModule {
 
diff --git a/briar-tests/src/net/sf/briar/crypto/KeyAgreementTest.java b/briar-tests/src/net/sf/briar/crypto/KeyAgreementTest.java
index 65c7e97f42..f51d556c6e 100644
--- a/briar-tests/src/net/sf/briar/crypto/KeyAgreementTest.java
+++ b/briar-tests/src/net/sf/briar/crypto/KeyAgreementTest.java
@@ -1,7 +1,6 @@
 package net.sf.briar.crypto;
 
 import static org.junit.Assert.assertArrayEquals;
-
 import net.sf.briar.BriarTestCase;
 import net.sf.briar.api.crypto.CryptoComponent;
 import net.sf.briar.api.crypto.KeyPair;
diff --git a/briar-tests/src/net/sf/briar/crypto/KeyEncodingAndParsingTest.java b/briar-tests/src/net/sf/briar/crypto/KeyEncodingAndParsingTest.java
index 9ecfed57b6..d46e9ee7bc 100644
--- a/briar-tests/src/net/sf/briar/crypto/KeyEncodingAndParsingTest.java
+++ b/briar-tests/src/net/sf/briar/crypto/KeyEncodingAndParsingTest.java
@@ -1,7 +1,6 @@
 package net.sf.briar.crypto;
 
 import static org.junit.Assert.assertArrayEquals;
-
 import net.sf.briar.BriarTestCase;
 import net.sf.briar.api.crypto.KeyPair;
 import net.sf.briar.api.crypto.KeyParser;
-- 
GitLab