From dd79933294de1eeda51e42f28e63546a45e6e842 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Wed, 29 Mar 2023 11:45:27 +0100
Subject: [PATCH] Publish core artifact, make others depend on it.

---
 onionwrapper-android/build.gradle   | 20 ++++++++++++++++++++
 onionwrapper-core/build.gradle      |  1 +
 onionwrapper-core/gradle.properties |  1 +
 onionwrapper-java/build.gradle      | 19 +++++++++++++++++++
 4 files changed, 41 insertions(+)
 create mode 100644 onionwrapper-core/gradle.properties

diff --git a/onionwrapper-android/build.gradle b/onionwrapper-android/build.gradle
index c7f7978..a37abee 100644
--- a/onionwrapper-android/build.gradle
+++ b/onionwrapper-android/build.gradle
@@ -31,3 +31,23 @@ dependencies {
     implementation project(':onionwrapper-core')
     implementation 'org.briarproject:dont-kill-me-lib:0.2.6'
 }
+
+mavenPublishing {
+    pom {
+        withXml {
+            // Dependencies on other modules are represented in the POM with a groupId equal to
+            // the project's name and an unspecified version. Rewrite them with the correct
+            // groupId and version.
+            Node pomNode = asNode()
+            String name = pomNode.get('name').text()
+            String groupId = pomNode.groupId.text()
+            String version = pomNode.version.text()
+            pomNode.dependencies.dependency.each() { node ->
+                if (node.groupId.text() == name) {
+                    node.groupId.each() { n -> n.value = groupId }
+                    node.version.each() { n -> n.value = version }
+                }
+            }
+        }
+    }
+}
diff --git a/onionwrapper-core/build.gradle b/onionwrapper-core/build.gradle
index a5fd862..7167ad5 100644
--- a/onionwrapper-core/build.gradle
+++ b/onionwrapper-core/build.gradle
@@ -1,5 +1,6 @@
 plugins {
     id 'java-library'
+    id 'com.vanniktech.maven.publish' version '0.18.0'
 }
 
 java {
diff --git a/onionwrapper-core/gradle.properties b/onionwrapper-core/gradle.properties
new file mode 100644
index 0000000..bb8b04d
--- /dev/null
+++ b/onionwrapper-core/gradle.properties
@@ -0,0 +1 @@
+POM_ARTIFACT_ID=onionwrapper-core
diff --git a/onionwrapper-java/build.gradle b/onionwrapper-java/build.gradle
index 3bba0f2..1df23d9 100644
--- a/onionwrapper-java/build.gradle
+++ b/onionwrapper-java/build.gradle
@@ -21,3 +21,22 @@ dependencies {
     testImplementation 'org.briarproject:snowflake-linux:2.5.1'
 }
 
+mavenPublishing {
+    pom {
+        withXml {
+            // Dependencies on other modules are represented in the POM with a groupId equal to
+            // the project's name and an unspecified version. Rewrite them with the correct
+            // groupId and version.
+            Node pomNode = asNode()
+            String name = pomNode.get('name').text()
+            String groupId = pomNode.groupId.text()
+            String version = pomNode.version.text()
+            pomNode.dependencies.dependency.each() { node ->
+                if (node.groupId.text() == name) {
+                    node.groupId.each() { n -> n.value = groupId }
+                    node.version.each() { n -> n.value = version }
+                }
+            }
+        }
+    }
+}
-- 
GitLab