diff --git a/pom.xml b/pom.xml index 69882cdfe613a8f321df6859d07ec0dd86fac2c3..1dd8dcfa60a7a5a19edbafc030ba25cccd5f1e56 100644 --- a/pom.xml +++ b/pom.xml @@ -3,10 +3,16 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> + <packaging>pom</packaging> <prerequisites> <maven>3.0.0</maven> </prerequisites> + <modules> + <module>redis-dispatch</module> + <module>service</module> + </modules> + <groupId>org.whispersystems.textsecure</groupId> <artifactId>TextSecureServer</artifactId> <version>2.52</version> @@ -14,7 +20,6 @@ <properties> <dropwizard.version>1.3.9</dropwizard.version> <jackson.api.version>2.9.8</jackson.api.version> - <resilience4j.version>0.14.1</resilience4j.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> @@ -44,109 +49,6 @@ <artifactId>dropwizard-migrations</artifactId> <version>${dropwizard.version}</version> </dependency> - <dependency> - <groupId>io.dropwizard</groupId> - <artifactId>dropwizard-testing</artifactId> - <version>${dropwizard.version}</version> - </dependency> - <dependency> - <groupId>io.dropwizard</groupId> - <artifactId>dropwizard-metrics-graphite</artifactId> - <version>${dropwizard.version}</version> - </dependency> - <dependency> - <groupId>org.bouncycastle</groupId> - <artifactId>bcprov-jdk16</artifactId> - <version>1.46</version> - </dependency> - <dependency> - <groupId>org.syslog4j</groupId> - <artifactId>syslog4j</artifactId> - <version>0.9.30</version> - </dependency> - - <dependency> - <groupId>io.github.resilience4j</groupId> - <artifactId>resilience4j-circuitbreaker</artifactId> - <version>${resilience4j.version}</version> - </dependency> - <dependency> - <groupId>io.github.resilience4j</groupId> - <artifactId>resilience4j-retry</artifactId> - <version>${resilience4j.version}</version> - </dependency> - - - <dependency> - <groupId>com.amazonaws</groupId> - <artifactId>aws-java-sdk-s3</artifactId> - <version>1.11.366</version> - </dependency> - <dependency> - <groupId>com.amazonaws</groupId> - <artifactId>aws-java-sdk-sqs</artifactId> - <version>1.11.362</version> - </dependency> - <dependency> - <groupId>com.google.protobuf</groupId> - <artifactId>protobuf-java</artifactId> - <version>2.6.1</version> - </dependency> - - <dependency> - <groupId>redis.clients</groupId> - <artifactId>jedis</artifactId> - <version>2.9.0</version> - <type>jar</type> - <scope>compile</scope> - </dependency> - - <dependency> - <groupId>org.postgresql</groupId> - <artifactId>postgresql</artifactId> - <version>9.4-1201-jdbc41</version> - </dependency> - <dependency> - <groupId>org.whispersystems</groupId> - <artifactId>websocket-resources</artifactId> - <version>0.5.10</version> - </dependency> - <dependency> - <groupId>org.whispersystems</groupId> - <artifactId>curve25519-java</artifactId> - <version>0.5.0</version> - </dependency> - - - <dependency> - <groupId>com.turo</groupId> - <artifactId>pushy</artifactId> - <version>0.13.7</version> - </dependency> - <dependency> - <groupId>com.turo</groupId> - <artifactId>pushy-dropwizard-metrics-listener</artifactId> - <version>0.13.7</version> - </dependency> - <dependency> - <groupId>io.netty</groupId> - <artifactId>netty-tcnative-boringssl-static</artifactId> - <version>2.0.20.Final</version> - <scope>runtime</scope> - </dependency> - - - <dependency> - <groupId>org.whispersystems</groupId> - <artifactId>gcm-sender-async</artifactId> - <version>0.1.6</version> - </dependency> - - <dependency> - <groupId>com.googlecode.libphonenumber</groupId> - <artifactId>libphonenumber</artifactId> - <version>8.10.2</version> - </dependency> <dependency> <groupId>javax.xml.bind</groupId> @@ -161,33 +63,9 @@ <dependency> - <groupId>org.glassfish.jersey.test-framework.providers</groupId> - <artifactId>jersey-test-framework-provider-grizzly2</artifactId> - <version>2.19</version> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - </exclusion> - <exclusion> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <version>2.25.1</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>com.opentable.components</groupId> - <artifactId>otj-pg-embedded</artifactId> - <version>0.13.1</version> + <groupId>io.dropwizard</groupId> + <artifactId>dropwizard-testing</artifactId> + <version>${dropwizard.version}</version> <scope>test</scope> </dependency> <dependency> @@ -210,30 +88,14 @@ </exclusion> </exclusions> </dependency> - + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>2.25.1</version> + <scope>test</scope> + </dependency> </dependencies> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpclient</artifactId> - <version>4.4.1</version> - </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpcore</artifactId> - <version>4.4.1</version> - </dependency> - - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <version>${jackson.api.version}</version> - </dependency> - </dependencies> - </dependencyManagement> - <build> <plugins> <plugin> @@ -257,40 +119,6 @@ </archive> </configuration> </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>1.6</version> - <configuration> - <createDependencyReducedPom>true</createDependencyReducedPom> - <filters> - <filter> - <artifact>*:*</artifact> - <excludes> - <exclude>META-INF/*.SF</exclude> - <exclude>META-INF/*.DSA</exclude> - <exclude>META-INF/*.RSA</exclude> - </excludes> - </filter> - </filters> - </configuration> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <transformers> - <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> - <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> - <mainClass>org.whispersystems.textsecuregcm.WhisperServerService</mainClass> - </transformer> - </transformers> - </configuration> - </execution> - </executions> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -298,33 +126,7 @@ <version>3.0.0-M1</version> </plugin> - <plugin> - <artifactId>maven-assembly-plugin</artifactId> - <version>2.4</version> - <configuration> - <descriptors> - <descriptor>assembly.xml</descriptor> - </descriptors> - </configuration> - <executions> - <execution> - <id>make-assembly</id> <!-- this is used for inheritance merges --> - <phase>package</phase> <!-- bind to the packaging phase --> - <goals> - <goal>single</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> </build> - <repositories> - <repository> - <id>gcm-server-repository</id> - <url>https://raw.github.com/whispersystems/maven/master/gcm-server/releases/</url> - </repository> - </repositories> - </project> diff --git a/redis-dispatch/pom.xml b/redis-dispatch/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..55a86d2159cbfbe6364a43e66aeaf8acb7c38238 --- /dev/null +++ b/redis-dispatch/pom.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>TextSecureServer</artifactId> + <groupId>org.whispersystems.textsecure</groupId> + <version>2.49</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.whispersystems.textsecure</groupId> + <artifactId>redis-dispatch</artifactId> + <version>2.49</version> + + +</project> \ No newline at end of file diff --git a/src/main/java/org/whispersystems/dispatch/DispatchChannel.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/DispatchChannel.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/DispatchChannel.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/DispatchChannel.java diff --git a/src/main/java/org/whispersystems/dispatch/DispatchManager.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/DispatchManager.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/DispatchManager.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/DispatchManager.java diff --git a/src/main/java/org/whispersystems/dispatch/io/RedisInputStream.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/io/RedisInputStream.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/io/RedisInputStream.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/io/RedisInputStream.java diff --git a/src/main/java/org/whispersystems/dispatch/io/RedisPubSubConnectionFactory.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/io/RedisPubSubConnectionFactory.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/io/RedisPubSubConnectionFactory.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/io/RedisPubSubConnectionFactory.java diff --git a/src/main/java/org/whispersystems/dispatch/redis/PubSubConnection.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/PubSubConnection.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/redis/PubSubConnection.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/PubSubConnection.java diff --git a/src/main/java/org/whispersystems/dispatch/redis/PubSubReply.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/PubSubReply.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/redis/PubSubReply.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/PubSubReply.java diff --git a/src/main/java/org/whispersystems/dispatch/redis/protocol/ArrayReplyHeader.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/protocol/ArrayReplyHeader.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/redis/protocol/ArrayReplyHeader.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/protocol/ArrayReplyHeader.java diff --git a/src/main/java/org/whispersystems/dispatch/redis/protocol/IntReply.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/protocol/IntReply.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/redis/protocol/IntReply.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/protocol/IntReply.java diff --git a/src/main/java/org/whispersystems/dispatch/redis/protocol/StringReplyHeader.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/protocol/StringReplyHeader.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/redis/protocol/StringReplyHeader.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/redis/protocol/StringReplyHeader.java diff --git a/src/main/java/org/whispersystems/dispatch/util/Util.java b/redis-dispatch/src/main/java/org/whispersystems/dispatch/util/Util.java similarity index 100% rename from src/main/java/org/whispersystems/dispatch/util/Util.java rename to redis-dispatch/src/main/java/org/whispersystems/dispatch/util/Util.java diff --git a/src/test/java/org/whispersystems/dispatch/DispatchManagerTest.java b/redis-dispatch/src/test/java/org/whispersystems/dispatch/DispatchManagerTest.java similarity index 100% rename from src/test/java/org/whispersystems/dispatch/DispatchManagerTest.java rename to redis-dispatch/src/test/java/org/whispersystems/dispatch/DispatchManagerTest.java diff --git a/src/test/java/org/whispersystems/dispatch/redis/PubSubConnectionTest.java b/redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/PubSubConnectionTest.java similarity index 99% rename from src/test/java/org/whispersystems/dispatch/redis/PubSubConnectionTest.java rename to redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/PubSubConnectionTest.java index c0fc63c5f35895fcd6dc245f5937021a54adfb55..d827cdff8611d3465da04feb7b32a2e1c22264e9 100644 --- a/src/test/java/org/whispersystems/dispatch/redis/PubSubConnectionTest.java +++ b/redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/PubSubConnectionTest.java @@ -9,7 +9,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; -import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import static org.junit.Assert.*; diff --git a/src/test/java/org/whispersystems/dispatch/redis/protocol/ArrayReplyHeaderTest.java b/redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/protocol/ArrayReplyHeaderTest.java similarity index 100% rename from src/test/java/org/whispersystems/dispatch/redis/protocol/ArrayReplyHeaderTest.java rename to redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/protocol/ArrayReplyHeaderTest.java diff --git a/src/test/java/org/whispersystems/dispatch/redis/protocol/IntReplyHeaderTest.java b/redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/protocol/IntReplyHeaderTest.java similarity index 100% rename from src/test/java/org/whispersystems/dispatch/redis/protocol/IntReplyHeaderTest.java rename to redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/protocol/IntReplyHeaderTest.java diff --git a/src/test/java/org/whispersystems/dispatch/redis/protocol/StringReplyHeaderTest.java b/redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/protocol/StringReplyHeaderTest.java similarity index 100% rename from src/test/java/org/whispersystems/dispatch/redis/protocol/StringReplyHeaderTest.java rename to redis-dispatch/src/test/java/org/whispersystems/dispatch/redis/protocol/StringReplyHeaderTest.java diff --git a/service/pom.xml b/service/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..7a710b21e9eaca78e5a30ae09c22c25941587816 --- /dev/null +++ b/service/pom.xml @@ -0,0 +1,223 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>TextSecureServer</artifactId> + <groupId>org.whispersystems.textsecure</groupId> + <version>2.49</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.whispersystems.textsecure</groupId> + <artifactId>service</artifactId> + <version>2.49</version> + + <properties> + <resilience4j.version>0.14.1</resilience4j.version> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + + <dependencies> + <dependency> + <groupId>org.whispersystems.textsecure</groupId> + <artifactId>redis-dispatch</artifactId> + <version>2.49</version> + </dependency> + + <dependency> + <groupId>org.bouncycastle</groupId> + <artifactId>bcprov-jdk16</artifactId> + <version>1.46</version> + </dependency> + <dependency> + <groupId>org.syslog4j</groupId> + <artifactId>syslog4j</artifactId> + <version>0.9.30</version> + </dependency> + + + <dependency> + <groupId>io.github.resilience4j</groupId> + <artifactId>resilience4j-circuitbreaker</artifactId> + <version>${resilience4j.version}</version> + </dependency> + <dependency> + <groupId>io.github.resilience4j</groupId> + <artifactId>resilience4j-retry</artifactId> + <version>${resilience4j.version}</version> + </dependency> + + + <dependency> + <groupId>com.amazonaws</groupId> + <artifactId>aws-java-sdk-s3</artifactId> + <version>1.11.366</version> + </dependency> + <dependency> + <groupId>com.amazonaws</groupId> + <artifactId>aws-java-sdk-sqs</artifactId> + <version>1.11.362</version> + </dependency> + <dependency> + <groupId>com.google.protobuf</groupId> + <artifactId>protobuf-java</artifactId> + <version>2.6.1</version> + </dependency> + + <dependency> + <groupId>redis.clients</groupId> + <artifactId>jedis</artifactId> + <version>2.9.0</version> + <type>jar</type> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.twilio.sdk</groupId> + <artifactId>twilio-java-sdk</artifactId> + <version>4.4.4</version> + </dependency> + + <dependency> + <groupId>org.postgresql</groupId> + <artifactId>postgresql</artifactId> + <version>9.4-1201-jdbc41</version> + </dependency> + <dependency> + <groupId>org.whispersystems</groupId> + <artifactId>websocket-resources</artifactId> + <version>0.5.10</version> + </dependency> + <dependency> + <groupId>org.whispersystems</groupId> + <artifactId>curve25519-java</artifactId> + <version>0.5.0</version> + </dependency> + + + <dependency> + <groupId>com.turo</groupId> + <artifactId>pushy</artifactId> + <version>0.13.7</version> + </dependency> + <dependency> + <groupId>com.turo</groupId> + <artifactId>pushy-dropwizard-metrics-listener</artifactId> + <version>0.13.7</version> + <exclusions> + <exclusion> + <groupId>io.dropwizard.metrics</groupId> + <artifactId>metrics-core</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>io.netty</groupId> + <artifactId>netty-tcnative-boringssl-static</artifactId> + <version>2.0.20.Final</version> + <scope>runtime</scope> + </dependency> + + + <dependency> + <groupId>org.whispersystems</groupId> + <artifactId>gcm-sender-async</artifactId> + <version>0.1.6</version> + </dependency> + + <dependency> + <groupId>com.googlecode.libphonenumber</groupId> + <artifactId>libphonenumber</artifactId> + <version>8.10.2</version> + </dependency> + + + <dependency> + <groupId>org.glassfish.jersey.test-framework.providers</groupId> + <artifactId>jersey-test-framework-provider-grizzly2</artifactId> + <version>2.25.1</version> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + </exclusion> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>com.opentable.components</groupId> + <artifactId>otj-pg-embedded</artifactId> + <version>0.13.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + <version>4.4.1</version> + </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpcore</artifactId> + <version>4.4.1</version> + </dependency> + + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>${jackson.api.version}</version> + </dependency> + </dependencies> + </dependencyManagement> + + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>1.6</version> + <configuration> + <createDependencyReducedPom>true</createDependencyReducedPom> + <filters> + <filter> + <artifact>*:*</artifact> + <excludes> + <exclude>META-INF/*.SF</exclude> + <exclude>META-INF/*.DSA</exclude> + <exclude>META-INF/*.RSA</exclude> + </excludes> + </filter> + </filters> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <transformers> + <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> + <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <mainClass>org.whispersystems.textsecuregcm.WhisperServerService</mainClass> + </transformer> + </transformers> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + +</project> diff --git a/protobuf/Makefile b/service/protobuf/Makefile similarity index 100% rename from protobuf/Makefile rename to service/protobuf/Makefile diff --git a/protobuf/PubSubMessage.proto b/service/protobuf/PubSubMessage.proto similarity index 100% rename from protobuf/PubSubMessage.proto rename to service/protobuf/PubSubMessage.proto diff --git a/protobuf/TextSecure.proto b/service/protobuf/TextSecure.proto similarity index 100% rename from protobuf/TextSecure.proto rename to service/protobuf/TextSecure.proto diff --git a/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java rename to service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/AccountAuthenticator.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/AccountAuthenticator.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/AccountAuthenticator.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/AccountAuthenticator.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/Anonymous.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/Anonymous.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/Anonymous.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/Anonymous.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/AuthenticationCredentials.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/AuthenticationCredentials.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/AuthenticationCredentials.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/AuthenticationCredentials.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/AuthorizationHeader.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/AuthorizationHeader.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/AuthorizationHeader.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/AuthorizationHeader.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/CertificateGenerator.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/CertificateGenerator.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/CertificateGenerator.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/CertificateGenerator.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/DirectoryCredentials.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/DirectoryCredentials.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/DirectoryCredentials.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/DirectoryCredentials.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/DirectoryCredentialsGenerator.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/DirectoryCredentialsGenerator.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/DirectoryCredentialsGenerator.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/DirectoryCredentialsGenerator.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/InvalidAuthorizationHeaderException.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/InvalidAuthorizationHeaderException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/InvalidAuthorizationHeaderException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/InvalidAuthorizationHeaderException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/OptionalAccess.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/OptionalAccess.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/OptionalAccess.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/OptionalAccess.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/StoredVerificationCode.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/StoredVerificationCode.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/StoredVerificationCode.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/StoredVerificationCode.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/TurnToken.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/TurnToken.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/TurnToken.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/TurnToken.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/TurnTokenGenerator.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/TurnTokenGenerator.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/TurnTokenGenerator.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/TurnTokenGenerator.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/auth/UnidentifiedAccessChecksum.java b/service/src/main/java/org/whispersystems/textsecuregcm/auth/UnidentifiedAccessChecksum.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/auth/UnidentifiedAccessChecksum.java rename to service/src/main/java/org/whispersystems/textsecuregcm/auth/UnidentifiedAccessChecksum.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/AccountDatabaseCrawlerConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/AccountDatabaseCrawlerConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/AccountDatabaseCrawlerConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/AccountDatabaseCrawlerConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/ApnConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/ApnConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/ApnConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/ApnConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/AttachmentsConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/AttachmentsConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/AttachmentsConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/AttachmentsConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/CircuitBreakerConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/CircuitBreakerConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/CircuitBreakerConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/CircuitBreakerConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/DatabaseConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatabaseConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/DatabaseConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatabaseConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryClientConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryClientConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryClientConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryClientConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryServerConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryServerConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryServerConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/DirectoryServerConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/GcmConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/GcmConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/GcmConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/GcmConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/GraphiteConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/GraphiteConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/GraphiteConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/GraphiteConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/MaxDeviceConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/MaxDeviceConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/MaxDeviceConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/MaxDeviceConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/MessageCacheConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/MessageCacheConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/MessageCacheConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/MessageCacheConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/ProfilesConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/ProfilesConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/ProfilesConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/ProfilesConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/PushConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/PushConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/PushConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/PushConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/RateLimitsConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/RateLimitsConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/RateLimitsConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/RateLimitsConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/RecaptchaConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/RecaptchaConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/RecaptchaConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/RecaptchaConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/RedisConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/RedisConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/RedisConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/RedisConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/RetryConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/RetryConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/RetryConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/RetryConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/SqsConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/SqsConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/SqsConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/SqsConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/TestDeviceConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/TestDeviceConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/TestDeviceConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/TestDeviceConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/TurnConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/TurnConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/TurnConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/TurnConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/TwilioConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/TwilioConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/TwilioConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/TwilioConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/UnidentifiedDeliveryConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/UnidentifiedDeliveryConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/UnidentifiedDeliveryConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/UnidentifiedDeliveryConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/configuration/VoiceVerificationConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/VoiceVerificationConfiguration.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/configuration/VoiceVerificationConfiguration.java rename to service/src/main/java/org/whispersystems/textsecuregcm/configuration/VoiceVerificationConfiguration.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerBase.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerBase.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerBase.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerBase.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerV1.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerV1.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerV1.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerV1.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerV2.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerV2.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerV2.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/AttachmentControllerV2.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/CertificateController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/CertificateController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/CertificateController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/CertificateController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceLimitExceededException.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceLimitExceededException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceLimitExceededException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceLimitExceededException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/DirectoryController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DirectoryController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/DirectoryController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/DirectoryController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/InvalidDestinationException.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/InvalidDestinationException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/InvalidDestinationException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/InvalidDestinationException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/KeepAliveController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeepAliveController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/KeepAliveController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeepAliveController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/KeysController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/MessageController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/MismatchedDevicesException.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/MismatchedDevicesException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/MismatchedDevicesException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/MismatchedDevicesException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/NoSuchUserException.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/NoSuchUserException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/NoSuchUserException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/NoSuchUserException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/ProfileController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/ProfileController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/ProfileController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/ProfileController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/ProvisioningController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/ProvisioningController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/ProvisioningController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/ProvisioningController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/RateLimitExceededException.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/RateLimitExceededException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/RateLimitExceededException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/RateLimitExceededException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/StaleDevicesException.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/StaleDevicesException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/StaleDevicesException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/StaleDevicesException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/TransparentDataController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/TransparentDataController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/TransparentDataController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/TransparentDataController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/ValidationException.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/ValidationException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/ValidationException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/ValidationException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/controllers/VoiceVerificationController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/VoiceVerificationController.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/controllers/VoiceVerificationController.java rename to service/src/main/java/org/whispersystems/textsecuregcm/controllers/VoiceVerificationController.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/crypto/Curve.java b/service/src/main/java/org/whispersystems/textsecuregcm/crypto/Curve.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/crypto/Curve.java rename to service/src/main/java/org/whispersystems/textsecuregcm/crypto/Curve.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/crypto/DjbECPrivateKey.java b/service/src/main/java/org/whispersystems/textsecuregcm/crypto/DjbECPrivateKey.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/crypto/DjbECPrivateKey.java rename to service/src/main/java/org/whispersystems/textsecuregcm/crypto/DjbECPrivateKey.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/crypto/DjbECPublicKey.java b/service/src/main/java/org/whispersystems/textsecuregcm/crypto/DjbECPublicKey.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/crypto/DjbECPublicKey.java rename to service/src/main/java/org/whispersystems/textsecuregcm/crypto/DjbECPublicKey.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/crypto/ECKeyPair.java b/service/src/main/java/org/whispersystems/textsecuregcm/crypto/ECKeyPair.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/crypto/ECKeyPair.java rename to service/src/main/java/org/whispersystems/textsecuregcm/crypto/ECKeyPair.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/crypto/ECPrivateKey.java b/service/src/main/java/org/whispersystems/textsecuregcm/crypto/ECPrivateKey.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/crypto/ECPrivateKey.java rename to service/src/main/java/org/whispersystems/textsecuregcm/crypto/ECPrivateKey.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/crypto/ECPublicKey.java b/service/src/main/java/org/whispersystems/textsecuregcm/crypto/ECPublicKey.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/crypto/ECPublicKey.java rename to service/src/main/java/org/whispersystems/textsecuregcm/crypto/ECPublicKey.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/AccountAttributes.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/AccountAttributes.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/AccountAttributes.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/AccountAttributes.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/AccountCount.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/AccountCount.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/AccountCount.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/AccountCount.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/AcknowledgeWebsocketMessage.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/AcknowledgeWebsocketMessage.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/AcknowledgeWebsocketMessage.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/AcknowledgeWebsocketMessage.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/ActiveUserTally.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/ActiveUserTally.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/ActiveUserTally.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/ActiveUserTally.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/ApnRegistrationId.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/ApnRegistrationId.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/ApnRegistrationId.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/ApnRegistrationId.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentDescriptorV1.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentDescriptorV1.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentDescriptorV1.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentDescriptorV1.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentDescriptorV2.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentDescriptorV2.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentDescriptorV2.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentDescriptorV2.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentUri.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentUri.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentUri.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/AttachmentUri.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContact.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContact.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/ClientContact.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContact.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContactTokens.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContactTokens.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/ClientContactTokens.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContactTokens.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContacts.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContacts.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/ClientContacts.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/ClientContacts.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/CryptoEncodingException.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/CryptoEncodingException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/CryptoEncodingException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/CryptoEncodingException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/DeliveryCertificate.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/DeliveryCertificate.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/DeliveryCertificate.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/DeliveryCertificate.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceInfo.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceInfo.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/DeviceInfo.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceInfo.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceInfoList.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceInfoList.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/DeviceInfoList.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceInfoList.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceName.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceName.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/DeviceName.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceName.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceResponse.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceResponse.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/DeviceResponse.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/DeviceResponse.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryFeedbackRequest.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryFeedbackRequest.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryFeedbackRequest.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryFeedbackRequest.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryReconciliationRequest.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryReconciliationRequest.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryReconciliationRequest.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryReconciliationRequest.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryReconciliationResponse.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryReconciliationResponse.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryReconciliationResponse.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/DirectoryReconciliationResponse.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/EncryptedOutgoingMessage.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/EncryptedOutgoingMessage.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/EncryptedOutgoingMessage.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/EncryptedOutgoingMessage.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/GcmRegistrationId.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/GcmRegistrationId.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/GcmRegistrationId.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/GcmRegistrationId.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingMessage.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingMessage.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/IncomingMessage.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingMessage.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingMessageList.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingMessageList.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/IncomingMessageList.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingMessageList.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingWebsocketMessage.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingWebsocketMessage.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/IncomingWebsocketMessage.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/IncomingWebsocketMessage.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/MessageProtos.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/MessageProtos.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/MessageProtos.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/MessageProtos.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/MessageResponse.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/MessageResponse.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/MessageResponse.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/MessageResponse.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/MismatchedDevices.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/MismatchedDevices.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/MismatchedDevices.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/MismatchedDevices.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/OutgoingMessageEntity.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/OutgoingMessageEntity.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/OutgoingMessageEntity.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/OutgoingMessageEntity.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/OutgoingMessageEntityList.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/OutgoingMessageEntityList.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/OutgoingMessageEntityList.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/OutgoingMessageEntityList.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/PreKey.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKey.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/PreKey.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKey.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyCount.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyCount.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyCount.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyCount.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyResponse.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyResponse.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyResponse.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyResponse.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyResponseItem.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyResponseItem.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyResponseItem.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyResponseItem.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyState.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyState.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyState.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/PreKeyState.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/Profile.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/Profile.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/Profile.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/Profile.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/ProfileAvatarUploadAttributes.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/ProfileAvatarUploadAttributes.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/ProfileAvatarUploadAttributes.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/ProfileAvatarUploadAttributes.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/ProvisioningMessage.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/ProvisioningMessage.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/ProvisioningMessage.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/ProvisioningMessage.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/RegistrationLock.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/RegistrationLock.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/RegistrationLock.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/RegistrationLock.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/RegistrationLockFailure.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/RegistrationLockFailure.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/RegistrationLockFailure.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/RegistrationLockFailure.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/SendMessageResponse.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/SendMessageResponse.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/SendMessageResponse.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/SendMessageResponse.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/SignedPreKey.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/SignedPreKey.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/SignedPreKey.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/SignedPreKey.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/StaleDevices.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/StaleDevices.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/StaleDevices.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/StaleDevices.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/UnregisteredEvent.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/UnregisteredEvent.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/UnregisteredEvent.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/UnregisteredEvent.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/entities/UnregisteredEventList.java b/service/src/main/java/org/whispersystems/textsecuregcm/entities/UnregisteredEventList.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/entities/UnregisteredEventList.java rename to service/src/main/java/org/whispersystems/textsecuregcm/entities/UnregisteredEventList.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/http/FaultTolerantHttpClient.java b/service/src/main/java/org/whispersystems/textsecuregcm/http/FaultTolerantHttpClient.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/http/FaultTolerantHttpClient.java rename to service/src/main/java/org/whispersystems/textsecuregcm/http/FaultTolerantHttpClient.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/http/FormDataBodyPublisher.java b/service/src/main/java/org/whispersystems/textsecuregcm/http/FormDataBodyPublisher.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/http/FormDataBodyPublisher.java rename to service/src/main/java/org/whispersystems/textsecuregcm/http/FormDataBodyPublisher.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/limits/LeakyBucket.java b/service/src/main/java/org/whispersystems/textsecuregcm/limits/LeakyBucket.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/limits/LeakyBucket.java rename to service/src/main/java/org/whispersystems/textsecuregcm/limits/LeakyBucket.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/limits/LockingRateLimiter.java b/service/src/main/java/org/whispersystems/textsecuregcm/limits/LockingRateLimiter.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/limits/LockingRateLimiter.java rename to service/src/main/java/org/whispersystems/textsecuregcm/limits/LockingRateLimiter.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiter.java b/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiter.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiter.java rename to service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiter.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiters.java b/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiters.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiters.java rename to service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiters.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/liquibase/AbstractLiquibaseCommand.java b/service/src/main/java/org/whispersystems/textsecuregcm/liquibase/AbstractLiquibaseCommand.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/liquibase/AbstractLiquibaseCommand.java rename to service/src/main/java/org/whispersystems/textsecuregcm/liquibase/AbstractLiquibaseCommand.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/liquibase/CloseableLiquibase.java b/service/src/main/java/org/whispersystems/textsecuregcm/liquibase/CloseableLiquibase.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/liquibase/CloseableLiquibase.java rename to service/src/main/java/org/whispersystems/textsecuregcm/liquibase/CloseableLiquibase.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/liquibase/DbMigrateCommand.java b/service/src/main/java/org/whispersystems/textsecuregcm/liquibase/DbMigrateCommand.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/liquibase/DbMigrateCommand.java rename to service/src/main/java/org/whispersystems/textsecuregcm/liquibase/DbMigrateCommand.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/liquibase/DbStatusCommand.java b/service/src/main/java/org/whispersystems/textsecuregcm/liquibase/DbStatusCommand.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/liquibase/DbStatusCommand.java rename to service/src/main/java/org/whispersystems/textsecuregcm/liquibase/DbStatusCommand.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/liquibase/NameableDbCommand.java b/service/src/main/java/org/whispersystems/textsecuregcm/liquibase/NameableDbCommand.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/liquibase/NameableDbCommand.java rename to service/src/main/java/org/whispersystems/textsecuregcm/liquibase/NameableDbCommand.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/liquibase/NameableMigrationsBundle.java b/service/src/main/java/org/whispersystems/textsecuregcm/liquibase/NameableMigrationsBundle.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/liquibase/NameableMigrationsBundle.java rename to service/src/main/java/org/whispersystems/textsecuregcm/liquibase/NameableMigrationsBundle.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/mappers/DeviceLimitExceededExceptionMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/mappers/DeviceLimitExceededExceptionMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/mappers/DeviceLimitExceededExceptionMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/mappers/DeviceLimitExceededExceptionMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/mappers/IOExceptionMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/mappers/IOExceptionMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/mappers/IOExceptionMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/mappers/IOExceptionMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/mappers/InvalidWebsocketAddressExceptionMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/mappers/InvalidWebsocketAddressExceptionMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/mappers/InvalidWebsocketAddressExceptionMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/mappers/InvalidWebsocketAddressExceptionMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/mappers/RateLimitExceededExceptionMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/mappers/RateLimitExceededExceptionMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/mappers/RateLimitExceededExceptionMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/mappers/RateLimitExceededExceptionMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/CpuUsageGauge.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/CpuUsageGauge.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/CpuUsageGauge.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/CpuUsageGauge.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/FileDescriptorGauge.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/FileDescriptorGauge.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/FileDescriptorGauge.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/FileDescriptorGauge.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/FreeMemoryGauge.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/FreeMemoryGauge.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/FreeMemoryGauge.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/FreeMemoryGauge.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/JsonMetricsReporter.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/JsonMetricsReporter.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/JsonMetricsReporter.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/JsonMetricsReporter.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/JsonMetricsReporterFactory.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/JsonMetricsReporterFactory.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/JsonMetricsReporterFactory.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/JsonMetricsReporterFactory.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/LoggingNetworkAppenderFactory.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/LoggingNetworkAppenderFactory.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/LoggingNetworkAppenderFactory.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/LoggingNetworkAppenderFactory.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkGauge.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkGauge.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkGauge.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkGauge.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkReceivedGauge.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkReceivedGauge.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkReceivedGauge.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkReceivedGauge.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkSentGauge.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkSentGauge.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkSentGauge.java rename to service/src/main/java/org/whispersystems/textsecuregcm/metrics/NetworkSentGauge.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/providers/RedisClientFactory.java b/service/src/main/java/org/whispersystems/textsecuregcm/providers/RedisClientFactory.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/providers/RedisClientFactory.java rename to service/src/main/java/org/whispersystems/textsecuregcm/providers/RedisClientFactory.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/providers/RedisHealthCheck.java b/service/src/main/java/org/whispersystems/textsecuregcm/providers/RedisHealthCheck.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/providers/RedisHealthCheck.java rename to service/src/main/java/org/whispersystems/textsecuregcm/providers/RedisHealthCheck.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/providers/TimeProvider.java b/service/src/main/java/org/whispersystems/textsecuregcm/providers/TimeProvider.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/providers/TimeProvider.java rename to service/src/main/java/org/whispersystems/textsecuregcm/providers/TimeProvider.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/APNSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/APNSender.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/APNSender.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/APNSender.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/ApnFallbackManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/ApnFallbackManager.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/ApnFallbackManager.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/ApnFallbackManager.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/ApnMessage.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/ApnMessage.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/ApnMessage.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/ApnMessage.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/GCMSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/GCMSender.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/GCMSender.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/GCMSender.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/GcmMessage.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/GcmMessage.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/GcmMessage.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/GcmMessage.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/NotPushRegisteredException.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/NotPushRegisteredException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/NotPushRegisteredException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/NotPushRegisteredException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/PushSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/PushSender.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/PushSender.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/PushSender.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/ReceiptSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/ReceiptSender.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/ReceiptSender.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/ReceiptSender.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/RetryingApnsClient.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/RetryingApnsClient.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/RetryingApnsClient.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/RetryingApnsClient.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/TransientPushFailureException.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/TransientPushFailureException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/TransientPushFailureException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/TransientPushFailureException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/push/WebsocketSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/push/WebsocketSender.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/push/WebsocketSender.java rename to service/src/main/java/org/whispersystems/textsecuregcm/push/WebsocketSender.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/recaptcha/RecaptchaClient.java b/service/src/main/java/org/whispersystems/textsecuregcm/recaptcha/RecaptchaClient.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/recaptcha/RecaptchaClient.java rename to service/src/main/java/org/whispersystems/textsecuregcm/recaptcha/RecaptchaClient.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/redis/LuaScript.java b/service/src/main/java/org/whispersystems/textsecuregcm/redis/LuaScript.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/redis/LuaScript.java rename to service/src/main/java/org/whispersystems/textsecuregcm/redis/LuaScript.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/redis/RedisException.java b/service/src/main/java/org/whispersystems/textsecuregcm/redis/RedisException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/redis/RedisException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/redis/RedisException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/redis/RedisOperation.java b/service/src/main/java/org/whispersystems/textsecuregcm/redis/RedisOperation.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/redis/RedisOperation.java rename to service/src/main/java/org/whispersystems/textsecuregcm/redis/RedisOperation.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/redis/ReplicatedJedisPool.java b/service/src/main/java/org/whispersystems/textsecuregcm/redis/ReplicatedJedisPool.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/redis/ReplicatedJedisPool.java rename to service/src/main/java/org/whispersystems/textsecuregcm/redis/ReplicatedJedisPool.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/s3/PolicySigner.java b/service/src/main/java/org/whispersystems/textsecuregcm/s3/PolicySigner.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/s3/PolicySigner.java rename to service/src/main/java/org/whispersystems/textsecuregcm/s3/PolicySigner.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/s3/PostPolicyGenerator.java b/service/src/main/java/org/whispersystems/textsecuregcm/s3/PostPolicyGenerator.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/s3/PostPolicyGenerator.java rename to service/src/main/java/org/whispersystems/textsecuregcm/s3/PostPolicyGenerator.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/s3/UrlSigner.java b/service/src/main/java/org/whispersystems/textsecuregcm/s3/UrlSigner.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/s3/UrlSigner.java rename to service/src/main/java/org/whispersystems/textsecuregcm/s3/UrlSigner.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/sms/SmsSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/sms/SmsSender.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/sms/SmsSender.java rename to service/src/main/java/org/whispersystems/textsecuregcm/sms/SmsSender.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/sms/TwilioSmsSender.java b/service/src/main/java/org/whispersystems/textsecuregcm/sms/TwilioSmsSender.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/sms/TwilioSmsSender.java rename to service/src/main/java/org/whispersystems/textsecuregcm/sms/TwilioSmsSender.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/sqs/DirectoryQueue.java b/service/src/main/java/org/whispersystems/textsecuregcm/sqs/DirectoryQueue.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/sqs/DirectoryQueue.java rename to service/src/main/java/org/whispersystems/textsecuregcm/sqs/DirectoryQueue.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRule.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRule.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRule.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRule.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRules.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRules.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRules.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/AbusiveHostRules.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/Account.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawler.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawler.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawler.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawler.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerCache.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerCache.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerCache.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerCache.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerListener.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerListener.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerListener.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerListener.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerRestartException.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerRestartException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerRestartException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountDatabaseCrawlerRestartException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/Accounts.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Accounts.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/Accounts.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/Accounts.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/AccountsManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountsManager.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/AccountsManager.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/AccountsManager.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/ActiveUserCounter.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/ActiveUserCounter.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/ActiveUserCounter.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/ActiveUserCounter.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/Device.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Device.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/Device.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/Device.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryManager.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryManager.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryManager.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryReconciler.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryReconciler.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryReconciler.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryReconciler.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryReconciliationClient.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryReconciliationClient.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryReconciliationClient.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/DirectoryReconciliationClient.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/FaultTolerantDatabase.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/FaultTolerantDatabase.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/FaultTolerantDatabase.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/FaultTolerantDatabase.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/KeyRecord.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/KeyRecord.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/KeyRecord.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/KeyRecord.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/Keys.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Keys.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/Keys.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/Keys.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/Messages.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Messages.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/Messages.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/Messages.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesCache.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesCache.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/MessagesCache.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesCache.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesManager.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/MessagesManager.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/MessagesManager.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/PendingAccounts.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingAccounts.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/PendingAccounts.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingAccounts.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/PendingAccountsManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingAccountsManager.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/PendingAccountsManager.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingAccountsManager.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevices.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevices.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevices.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevices.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevicesManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevicesManager.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevicesManager.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/PendingDevicesManager.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubAddress.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubAddress.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/PubSubAddress.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubAddress.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubManager.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/PubSubManager.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubManager.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubProtos.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubProtos.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/PubSubProtos.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/PubSubProtos.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/PublicAccount.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/PublicAccount.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/PublicAccount.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/PublicAccount.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/AbusiveHostRuleRowMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/AbusiveHostRuleRowMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/mappers/AbusiveHostRuleRowMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/AbusiveHostRuleRowMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/AccountRowMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/AccountRowMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/mappers/AccountRowMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/AccountRowMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/KeyRecordRowMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/KeyRecordRowMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/mappers/KeyRecordRowMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/KeyRecordRowMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/OutgoingMessageEntityRowMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/OutgoingMessageEntityRowMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/mappers/OutgoingMessageEntityRowMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/OutgoingMessageEntityRowMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/StoredVerificationCodeRowMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/StoredVerificationCodeRowMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/storage/mappers/StoredVerificationCodeRowMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/storage/mappers/StoredVerificationCodeRowMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/Base64.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/Base64.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/Base64.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/Base64.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/BlockingThreadPoolExecutor.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/BlockingThreadPoolExecutor.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/BlockingThreadPoolExecutor.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/BlockingThreadPoolExecutor.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/ByteArrayAdapter.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/ByteArrayAdapter.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/ByteArrayAdapter.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/ByteArrayAdapter.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/ByteUtil.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/ByteUtil.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/ByteUtil.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/ByteUtil.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/CircuitBreakerUtil.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/CircuitBreakerUtil.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/CircuitBreakerUtil.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/CircuitBreakerUtil.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/Constants.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/Constants.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/Constants.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/Constants.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/Conversions.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/Conversions.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/Conversions.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/Conversions.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/ExecutorUtils.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/ExecutorUtils.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/ExecutorUtils.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/ExecutorUtils.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/Hex.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/Hex.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/Hex.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/Hex.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/IterablePair.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/IterablePair.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/IterablePair.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/IterablePair.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/Pair.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/Pair.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/Pair.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/Pair.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/SystemMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/SystemMapper.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/SystemMapper.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/SystemMapper.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/Util.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/Util.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/Util.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/Util.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/util/VerificationCode.java b/service/src/main/java/org/whispersystems/textsecuregcm/util/VerificationCode.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/util/VerificationCode.java rename to service/src/main/java/org/whispersystems/textsecuregcm/util/VerificationCode.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/AuthenticatedConnectListener.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/AuthenticatedConnectListener.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/AuthenticatedConnectListener.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/AuthenticatedConnectListener.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/DeadLetterHandler.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/DeadLetterHandler.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/DeadLetterHandler.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/DeadLetterHandler.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/InvalidWebsocketAddressException.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/InvalidWebsocketAddressException.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/InvalidWebsocketAddressException.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/InvalidWebsocketAddressException.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningAddress.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningAddress.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningAddress.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningAddress.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningConnectListener.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningConnectListener.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningConnectListener.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningConnectListener.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningConnection.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningConnection.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningConnection.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/ProvisioningConnection.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketAccountAuthenticator.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketAccountAuthenticator.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketAccountAuthenticator.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketAccountAuthenticator.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnection.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnection.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnection.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebSocketConnection.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/websocket/WebsocketAddress.java b/service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebsocketAddress.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/websocket/WebsocketAddress.java rename to service/src/main/java/org/whispersystems/textsecuregcm/websocket/WebsocketAddress.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/workers/CertificateCommand.java b/service/src/main/java/org/whispersystems/textsecuregcm/workers/CertificateCommand.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/workers/CertificateCommand.java rename to service/src/main/java/org/whispersystems/textsecuregcm/workers/CertificateCommand.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/workers/DeleteUserCommand.java b/service/src/main/java/org/whispersystems/textsecuregcm/workers/DeleteUserCommand.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/workers/DeleteUserCommand.java rename to service/src/main/java/org/whispersystems/textsecuregcm/workers/DeleteUserCommand.java diff --git a/src/main/java/org/whispersystems/textsecuregcm/workers/VacuumCommand.java b/service/src/main/java/org/whispersystems/textsecuregcm/workers/VacuumCommand.java similarity index 100% rename from src/main/java/org/whispersystems/textsecuregcm/workers/VacuumCommand.java rename to service/src/main/java/org/whispersystems/textsecuregcm/workers/VacuumCommand.java diff --git a/src/main/resources/META-INF/services/io.dropwizard.logging.AppenderFactory b/service/src/main/resources/META-INF/services/io.dropwizard.logging.AppenderFactory similarity index 100% rename from src/main/resources/META-INF/services/io.dropwizard.logging.AppenderFactory rename to service/src/main/resources/META-INF/services/io.dropwizard.logging.AppenderFactory diff --git a/src/main/resources/META-INF/services/io.dropwizard.metrics.ReporterFactory b/service/src/main/resources/META-INF/services/io.dropwizard.metrics.ReporterFactory similarity index 100% rename from src/main/resources/META-INF/services/io.dropwizard.metrics.ReporterFactory rename to service/src/main/resources/META-INF/services/io.dropwizard.metrics.ReporterFactory diff --git a/src/main/resources/abusedb.xml b/service/src/main/resources/abusedb.xml similarity index 100% rename from src/main/resources/abusedb.xml rename to service/src/main/resources/abusedb.xml diff --git a/src/main/resources/accountsdb.xml b/service/src/main/resources/accountsdb.xml similarity index 100% rename from src/main/resources/accountsdb.xml rename to service/src/main/resources/accountsdb.xml diff --git a/src/main/resources/banner.txt b/service/src/main/resources/banner.txt similarity index 100% rename from src/main/resources/banner.txt rename to service/src/main/resources/banner.txt diff --git a/src/main/resources/lua/account_database_crawler/unlock.lua b/service/src/main/resources/lua/account_database_crawler/unlock.lua similarity index 100% rename from src/main/resources/lua/account_database_crawler/unlock.lua rename to service/src/main/resources/lua/account_database_crawler/unlock.lua diff --git a/src/main/resources/lua/apn/get.lua b/service/src/main/resources/lua/apn/get.lua similarity index 100% rename from src/main/resources/lua/apn/get.lua rename to service/src/main/resources/lua/apn/get.lua diff --git a/src/main/resources/lua/apn/insert.lua b/service/src/main/resources/lua/apn/insert.lua similarity index 100% rename from src/main/resources/lua/apn/insert.lua rename to service/src/main/resources/lua/apn/insert.lua diff --git a/src/main/resources/lua/apn/remove.lua b/service/src/main/resources/lua/apn/remove.lua similarity index 100% rename from src/main/resources/lua/apn/remove.lua rename to service/src/main/resources/lua/apn/remove.lua diff --git a/src/main/resources/lua/get_items.lua b/service/src/main/resources/lua/get_items.lua similarity index 100% rename from src/main/resources/lua/get_items.lua rename to service/src/main/resources/lua/get_items.lua diff --git a/src/main/resources/lua/get_queues_to_persist.lua b/service/src/main/resources/lua/get_queues_to_persist.lua similarity index 100% rename from src/main/resources/lua/get_queues_to_persist.lua rename to service/src/main/resources/lua/get_queues_to_persist.lua diff --git a/src/main/resources/lua/insert_item.lua b/service/src/main/resources/lua/insert_item.lua similarity index 100% rename from src/main/resources/lua/insert_item.lua rename to service/src/main/resources/lua/insert_item.lua diff --git a/src/main/resources/lua/remove_item_by_guid.lua b/service/src/main/resources/lua/remove_item_by_guid.lua similarity index 100% rename from src/main/resources/lua/remove_item_by_guid.lua rename to service/src/main/resources/lua/remove_item_by_guid.lua diff --git a/src/main/resources/lua/remove_item_by_id.lua b/service/src/main/resources/lua/remove_item_by_id.lua similarity index 100% rename from src/main/resources/lua/remove_item_by_id.lua rename to service/src/main/resources/lua/remove_item_by_id.lua diff --git a/src/main/resources/lua/remove_item_by_sender.lua b/service/src/main/resources/lua/remove_item_by_sender.lua similarity index 100% rename from src/main/resources/lua/remove_item_by_sender.lua rename to service/src/main/resources/lua/remove_item_by_sender.lua diff --git a/src/main/resources/lua/remove_queue.lua b/service/src/main/resources/lua/remove_queue.lua similarity index 100% rename from src/main/resources/lua/remove_queue.lua rename to service/src/main/resources/lua/remove_queue.lua diff --git a/src/main/resources/messagedb.xml b/service/src/main/resources/messagedb.xml similarity index 100% rename from src/main/resources/messagedb.xml rename to service/src/main/resources/messagedb.xml diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/auth/OptionalAccessTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/auth/OptionalAccessTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/auth/OptionalAccessTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/auth/OptionalAccessTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AccountControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AccountControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AccountControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AccountControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AttachmentControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AttachmentControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AttachmentControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/AttachmentControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/CertificateControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/CertificateControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/CertificateControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/CertificateControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DeviceControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DeviceControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DeviceControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DeviceControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DirectoryControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DirectoryControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DirectoryControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DirectoryControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/KeyControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/KeyControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/KeyControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/KeyControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/MessageControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/MessageControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/MessageControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/MessageControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/ProfileControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/ProfileControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/ProfileControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/ProfileControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/TransparentDataControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/TransparentDataControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/TransparentDataControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/TransparentDataControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/VoiceVerificationControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/VoiceVerificationControllerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/controllers/VoiceVerificationControllerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/VoiceVerificationControllerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/entities/ClientContactTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/entities/ClientContactTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/entities/ClientContactTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/entities/ClientContactTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/entities/PreKeyTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/entities/PreKeyTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/entities/PreKeyTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/entities/PreKeyTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/http/FaultTolerantHttpClientTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/http/FaultTolerantHttpClientTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/http/FaultTolerantHttpClientTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/http/FaultTolerantHttpClientTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/limits/LeakyBucketTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/limits/LeakyBucketTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/limits/LeakyBucketTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/limits/LeakyBucketTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/push/APNSenderTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/push/APNSenderTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/push/APNSenderTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/push/APNSenderTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/push/GCMSenderTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/push/GCMSenderTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/push/GCMSenderTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/push/GCMSenderTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/redis/ReplicatedJedisPoolTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/redis/ReplicatedJedisPoolTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/redis/ReplicatedJedisPoolTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/redis/ReplicatedJedisPoolTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/s3/PolicySignerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/s3/PolicySignerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/s3/PolicySignerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/s3/PolicySignerTest.java diff --git a/src/test/java/org/whispersystems/sms/TwilioSmsSenderTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/sms/TwilioSmsSenderTest.java similarity index 100% rename from src/test/java/org/whispersystems/sms/TwilioSmsSenderTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/sms/TwilioSmsSenderTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AbusiveHostRulesTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AbusiveHostRulesTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/AbusiveHostRulesTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AbusiveHostRulesTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountDatabaseCrawlerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountDatabaseCrawlerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountDatabaseCrawlerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountDatabaseCrawlerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountsManagerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountsManagerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountsManagerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountsManagerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountsTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountsTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountsTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountsTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/ActiveUserCounterTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/ActiveUserCounterTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/ActiveUserCounterTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/ActiveUserCounterTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/DirectoryReconcilerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/DirectoryReconcilerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/DirectoryReconcilerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/DirectoryReconcilerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/KeysTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/KeysTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/KeysTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/KeysTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/MessagesTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/MessagesTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/MessagesTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/MessagesTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PendingAccountsTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PendingAccountsTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/PendingAccountsTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PendingAccountsTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PendingDevicesTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PendingDevicesTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/PendingDevicesTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PendingDevicesTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PublicAccountTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PublicAccountTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/storage/PublicAccountTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/PublicAccountTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/util/AuthHelper.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/AuthHelper.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/util/AuthHelper.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/util/AuthHelper.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/util/BlockingThreadPoolExecutorTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/BlockingThreadPoolExecutorTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/util/BlockingThreadPoolExecutorTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/util/BlockingThreadPoolExecutorTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/util/JsonHelpers.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/JsonHelpers.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/util/JsonHelpers.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/util/JsonHelpers.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/util/NumberPrefixTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/NumberPrefixTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/util/NumberPrefixTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/util/NumberPrefixTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/util/SynchronousExecutorService.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/SynchronousExecutorService.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/util/SynchronousExecutorService.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/util/SynchronousExecutorService.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/util/UrlSignerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/UrlSignerTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/util/UrlSignerTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/util/UrlSignerTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/util/ValidNumberTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/util/ValidNumberTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/util/ValidNumberTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/util/ValidNumberTest.java diff --git a/src/test/java/org/whispersystems/textsecuregcm/tests/websocket/WebSocketConnectionTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/websocket/WebSocketConnectionTest.java similarity index 100% rename from src/test/java/org/whispersystems/textsecuregcm/tests/websocket/WebSocketConnectionTest.java rename to service/src/test/java/org/whispersystems/textsecuregcm/tests/websocket/WebSocketConnectionTest.java diff --git a/src/test/resources/fixtures/contact.json b/service/src/test/resources/fixtures/contact.json similarity index 100% rename from src/test/resources/fixtures/contact.json rename to service/src/test/resources/fixtures/contact.json diff --git a/src/test/resources/fixtures/contact.relay.json b/service/src/test/resources/fixtures/contact.relay.json similarity index 100% rename from src/test/resources/fixtures/contact.relay.json rename to service/src/test/resources/fixtures/contact.relay.json diff --git a/src/test/resources/fixtures/contact.relay.video.json b/service/src/test/resources/fixtures/contact.relay.video.json similarity index 100% rename from src/test/resources/fixtures/contact.relay.video.json rename to service/src/test/resources/fixtures/contact.relay.video.json diff --git a/src/test/resources/fixtures/contact.relay.voice.json b/service/src/test/resources/fixtures/contact.relay.voice.json similarity index 100% rename from src/test/resources/fixtures/contact.relay.voice.json rename to service/src/test/resources/fixtures/contact.relay.voice.json diff --git a/src/test/resources/fixtures/current_message_extra_device.json b/service/src/test/resources/fixtures/current_message_extra_device.json similarity index 100% rename from src/test/resources/fixtures/current_message_extra_device.json rename to service/src/test/resources/fixtures/current_message_extra_device.json diff --git a/src/test/resources/fixtures/current_message_multi_device.json b/service/src/test/resources/fixtures/current_message_multi_device.json similarity index 100% rename from src/test/resources/fixtures/current_message_multi_device.json rename to service/src/test/resources/fixtures/current_message_multi_device.json diff --git a/src/test/resources/fixtures/current_message_registration_id.json b/service/src/test/resources/fixtures/current_message_registration_id.json similarity index 100% rename from src/test/resources/fixtures/current_message_registration_id.json rename to service/src/test/resources/fixtures/current_message_registration_id.json diff --git a/src/test/resources/fixtures/current_message_single_device.json b/service/src/test/resources/fixtures/current_message_single_device.json similarity index 100% rename from src/test/resources/fixtures/current_message_single_device.json rename to service/src/test/resources/fixtures/current_message_single_device.json diff --git a/src/test/resources/fixtures/legacy_message_single_device.json b/service/src/test/resources/fixtures/legacy_message_single_device.json similarity index 100% rename from src/test/resources/fixtures/legacy_message_single_device.json rename to service/src/test/resources/fixtures/legacy_message_single_device.json diff --git a/src/test/resources/fixtures/mismatched_registration_id.json b/service/src/test/resources/fixtures/mismatched_registration_id.json similarity index 100% rename from src/test/resources/fixtures/mismatched_registration_id.json rename to service/src/test/resources/fixtures/mismatched_registration_id.json diff --git a/src/test/resources/fixtures/missing_device_response.json b/service/src/test/resources/fixtures/missing_device_response.json similarity index 100% rename from src/test/resources/fixtures/missing_device_response.json rename to service/src/test/resources/fixtures/missing_device_response.json diff --git a/src/test/resources/fixtures/missing_device_response2.json b/service/src/test/resources/fixtures/missing_device_response2.json similarity index 100% rename from src/test/resources/fixtures/missing_device_response2.json rename to service/src/test/resources/fixtures/missing_device_response2.json diff --git a/src/test/resources/fixtures/prekey.json b/service/src/test/resources/fixtures/prekey.json similarity index 100% rename from src/test/resources/fixtures/prekey.json rename to service/src/test/resources/fixtures/prekey.json diff --git a/src/test/resources/fixtures/prekey_v2.json b/service/src/test/resources/fixtures/prekey_v2.json similarity index 100% rename from src/test/resources/fixtures/prekey_v2.json rename to service/src/test/resources/fixtures/prekey_v2.json diff --git a/src/test/resources/fixtures/transparent_account.json b/service/src/test/resources/fixtures/transparent_account.json similarity index 100% rename from src/test/resources/fixtures/transparent_account.json rename to service/src/test/resources/fixtures/transparent_account.json diff --git a/src/test/resources/fixtures/transparent_account2.json b/service/src/test/resources/fixtures/transparent_account2.json similarity index 100% rename from src/test/resources/fixtures/transparent_account2.json rename to service/src/test/resources/fixtures/transparent_account2.json diff --git a/src/test/resources/fixtures/voice_verification_en_us.xml b/service/src/test/resources/fixtures/voice_verification_en_us.xml similarity index 100% rename from src/test/resources/fixtures/voice_verification_en_us.xml rename to service/src/test/resources/fixtures/voice_verification_en_us.xml diff --git a/src/test/resources/fixtures/voice_verification_pt_br.xml b/service/src/test/resources/fixtures/voice_verification_pt_br.xml similarity index 100% rename from src/test/resources/fixtures/voice_verification_pt_br.xml rename to service/src/test/resources/fixtures/voice_verification_pt_br.xml diff --git a/src/test/resources/fixtures/voice_verification_ru.xml b/service/src/test/resources/fixtures/voice_verification_ru.xml similarity index 100% rename from src/test/resources/fixtures/voice_verification_ru.xml rename to service/src/test/resources/fixtures/voice_verification_ru.xml diff --git a/system.properties b/system.properties deleted file mode 100644 index 97270b43fdb85b77e797fe0f60fb267ac574faee..0000000000000000000000000000000000000000 --- a/system.properties +++ /dev/null @@ -1 +0,0 @@ -java.runtime.version=1.7