From cf6beb24c0031b018f8f5dbbc3c1fee31e801f6f Mon Sep 17 00:00:00 2001 From: signald Date: Tue, 20 Dec 2022 03:03:01 -0800 Subject: [PATCH] update build files and provide a way for the websocket to receive callback to indicate the message was not saved --- build.gradle | 15 ++------------- dependencies.gradle | 3 +-- gradle/verification-metadata.xml | 13 ++++++++----- service/build.gradle | 19 +++++++++---------- .../signalservice/api/NotSavedException.java | 4 ++++ .../signalservice/api/SignalWebSocket.java | 13 ++++++++++--- settings.gradle | 1 - 7 files changed, 34 insertions(+), 34 deletions(-) create mode 100644 service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java diff --git a/build.gradle b/build.gradle index 88570c52..f574c667 100644 --- a/build.gradle +++ b/build.gradle @@ -18,11 +18,8 @@ buildscript { } } -plugins { - id("io.github.gradle-nexus.publish-plugin") version "1.1.0" -} -project.group = "com.github.turasa" +project.group = "org.signald" def getRepositoryUsername() { return hasProperty('whisperSonatypeUsername') ? whisperSonatypeUsername : "" @@ -32,18 +29,10 @@ def getRepositoryPassword() { return hasProperty('whisperSonatypePassword') ? whisperSonatypePassword : "" } -nexusPublishing { - repositories { - sonatype { - username = getRepositoryUsername() - password = getRepositoryPassword() - } - } -} subprojects { ext.lib_signal_service_version_number = "2.15.3_unofficial_65" - ext.lib_signal_service_group_info = "com.github.turasa" + ext.lib_signal_service_group_info = "org.signald" if (JavaVersion.current().isJava8Compatible()) { allprojects { diff --git a/dependencies.gradle b/dependencies.gradle index 18107b58..d6f67f8c 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -13,8 +13,7 @@ dependencyResolutionManagement { alias('google-jsr305').to('com.google.code.findbugs:jsr305:3.0.2') // 1st Party - alias('libsignal-client').to('org.signal', 'libsignal-client').versionRef('libsignal-client') - alias('libsignal-android').to('org.signal', 'libsignal-android').versionRef('libsignal-client') + alias('libsignal-client').to('org.signald', 'libsignal-client-' + System.getenv("TARGET")).versionRef('libsignal-client') // Third Party alias('jackson-core').to('com.fasterxml.jackson.core:jackson-databind:2.14.1') diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 3ae6989c..1e428740 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -840,6 +840,9 @@ + + + @@ -2111,12 +2114,12 @@ - - - + + + - - + + diff --git a/service/build.gradle b/service/build.gradle index ec21f92e..49556776 100644 --- a/service/build.gradle +++ b/service/build.gradle @@ -21,6 +21,7 @@ compileJava { } repositories { + maven {url "https://gitlab.com/api/v4/groups/6853927/-/packages/maven"} // https://gitlab.com/groups/signald/-/packages mavenCentral() mavenLocal() } @@ -98,7 +99,7 @@ def getRepositoryPassword() { publishing { publications { mavenJava(MavenPublication) { - artifactId = 'signal-service-java' + artifactId = 'signal-service-java-' + System.getenv("TARGET") from components.java pom { @@ -139,16 +140,14 @@ publishing { repositories { maven { - url = getReleaseRepositoryUrl() - credentials { - username getRepositoryUsername() - password getRepositoryPassword() + url System.getenv("CI_API_V4_URL") + "/projects/" + System.getenv("CI_PROJECT_ID") + "/packages/maven" + credentials(HttpHeaderCredentials) { + name = 'Job-Token' + value = System.getenv("CI_JOB_TOKEN") + } + authentication { + header(HttpHeaderAuthentication) } } } } - -signing { - required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } - sign publishing.publications.mavenJava -} diff --git a/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java b/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java new file mode 100644 index 00000000..05d77d1f --- /dev/null +++ b/service/src/main/java/org/whispersystems/signalservice/api/NotSavedException.java @@ -0,0 +1,4 @@ +package org.whispersystems.signalservice.api; + +public class NotSavedException extends Exception { +} diff --git a/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java b/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java index a113ac36..74867895 100644 --- a/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java +++ b/service/src/main/java/org/whispersystems/signalservice/api/SignalWebSocket.java @@ -242,6 +242,7 @@ public final class SignalWebSocket { while (true) { WebSocketRequestMessage request = getWebSocket().readRequest(timeout); WebSocketResponseMessage response = createWebSocketResponse(request); + boolean sendResponse = true; // indicates the acknowledgement should be sent to the server try { if (isSignalServiceEnvelope(request)) { Optional timestampHeader = findHeader(request); @@ -257,13 +258,19 @@ public final class SignalWebSocket { SignalServiceEnvelope envelope = new SignalServiceEnvelope(request.getBody().toByteArray(), timestamp); - callback.onMessage(envelope); + try { + callback.onMessage(envelope); + } catch (NotSavedException e) { + sendResponse = false; + } return Optional.of(envelope); } else if (isSocketEmptyRequest(request)) { return Optional.empty(); } } finally { - getWebSocket().sendResponse(response); + if(sendResponse) { + getWebSocket().sendResponse(response); + } } } } @@ -314,6 +321,6 @@ public final class SignalWebSocket { * received. */ public interface MessageReceivedCallback { - void onMessage(SignalServiceEnvelope envelope); + void onMessage(SignalServiceEnvelope envelope) throws NotSavedException; } } diff --git a/settings.gradle b/settings.gradle index 8861c008..8dd03423 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,5 @@ enableFeaturePreview('VERSION_CATALOGS') -include ':android' include 'libsignal-service' project(':libsignal-service').projectDir = file('service') -- 2.30.2