From 83aa3b5411781f7aea2b2deaa4379dc8565ff3db Mon Sep 17 00:00:00 2001 From: Avinash Kumar Deepak Date: Fri, 6 Feb 2026 16:19:57 +0530 Subject: [PATCH 1/5] serial: use jssc from maven instead of bundled jar --- java/libraries/serial/build.gradle.kts | 49 ++++++++++++++++++- .../serial/src/processing/serial/Serial.java | 6 ++- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/java/libraries/serial/build.gradle.kts b/java/libraries/serial/build.gradle.kts index f7f1ff4136..24fb350f93 100644 --- a/java/libraries/serial/build.gradle.kts +++ b/java/libraries/serial/build.gradle.kts @@ -1,5 +1,8 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { java + alias(libs.plugins.mavenPublish) } sourceSets { @@ -16,8 +19,7 @@ repositories { dependencies { compileOnly(project(":core")) - // TODO: https://github.com/java-native/jssc - implementation(files("library/jssc.jar")) + implementation("io.github.java-native:jssc:2.10.2") } tasks.register("createLibrary") { @@ -34,4 +36,47 @@ tasks.register("createLibrary") { into("library") rename { "serial.jar" } } +} + +publishing { + repositories { + maven { + name = "App" + url = uri(project(":app").layout.buildDirectory.dir("resources-bundled/common/repository").get().asFile.absolutePath) + } + } +} + +mavenPublishing { + coordinates("$group.core", name, version.toString()) + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) + + signAllPublications() + + pom { + name.set("Processing Serial") + description.set("Processing Serial") + url.set("https://processing.org") + licenses { + license { + name.set("LGPL") + url.set("https://www.gnu.org/licenses/lgpl-2.1.html") + } + } + developers { + developer { + id.set("steftervelde") + name.set("Stef Tervelde") + } + developer { + id.set("benfry") + name.set("Ben Fry") + } + } + scm { + url.set("https://github.com/processing/processing4") + connection.set("scm:git:git://github.com/processing/processing4.git") + developerConnection.set("scm:git:ssh://git@github.com/processing/processing4.git") + } + } } \ No newline at end of file diff --git a/java/libraries/serial/src/processing/serial/Serial.java b/java/libraries/serial/src/processing/serial/Serial.java index 15ed23fcde..eadd7be2ad 100644 --- a/java/libraries/serial/src/processing/serial/Serial.java +++ b/java/libraries/serial/src/processing/serial/Serial.java @@ -259,8 +259,12 @@ public boolean getDSR() { } + /** + * @deprecated No longer supported + */ + @Deprecated public static Map getProperties(String portName) { - return SerialPortList.getPortProperties(portName); + return new java.util.HashMap<>(); } From dcf7adb7df01c2864d42e1d390f2453fa6c4c45a Mon Sep 17 00:00:00 2001 From: Avinash Kumar Deepak Date: Fri, 6 Feb 2026 16:20:14 +0530 Subject: [PATCH 2/5] io: port from ant to gradle, add maven publishing --- java/libraries/io/build.gradle.kts | 93 +++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/java/libraries/io/build.gradle.kts b/java/libraries/io/build.gradle.kts index a176f03df7..f6af4b2b13 100644 --- a/java/libraries/io/build.gradle.kts +++ b/java/libraries/io/build.gradle.kts @@ -1 +1,92 @@ -ant.importBuild("build.xml") \ No newline at end of file +import com.vanniktech.maven.publish.SonatypeHost + +plugins { + java + alias(libs.plugins.mavenPublish) +} + +sourceSets { + main { + java { + srcDirs("src") + } + } +} + +repositories { + mavenCentral() +} + +dependencies { + compileOnly(project(":core")) +} + +tasks.register("createLibrary") { + dependsOn("jar") + into(layout.buildDirectory.dir("library")) + + from(layout.projectDirectory) { + include("library.properties") + include("examples/**") + } + + from(configurations.runtimeClasspath) { + into("library") + } + + from(tasks.jar) { + into("library") + rename { "io.jar" } + } + + from(layout.projectDirectory.dir("library")) { + include("linux-arm64/**") + include("linux-armv6hf/**") + include("linux32/**") + include("linux64/**") + into("library") + } +} + +publishing { + repositories { + maven { + name = "App" + url = uri(project(":app").layout.buildDirectory.dir("resources-bundled/common/repository").get().asFile.absolutePath) + } + } +} + +mavenPublishing { + coordinates("$group.core", name, version.toString()) + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) + + signAllPublications() + + pom { + name.set("Processing IO") + description.set("Processing IO") + url.set("https://processing.org") + licenses { + license { + name.set("LGPL") + url.set("https://www.gnu.org/licenses/lgpl-2.1.html") + } + } + developers { + developer { + id.set("steftervelde") + name.set("Stef Tervelde") + } + developer { + id.set("benfry") + name.set("Ben Fry") + } + } + scm { + url.set("https://github.com/processing/processing4") + connection.set("scm:git:git://github.com/processing/processing4.git") + developerConnection.set("scm:git:ssh://git@github.com/processing/processing4.git") + } + } +} \ No newline at end of file From d4830ec64ec49d085dfbaf32cc6f267cc38ea89c Mon Sep 17 00:00:00 2001 From: Avinash Kumar Deepak Date: Fri, 6 Feb 2026 16:20:34 +0530 Subject: [PATCH 3/5] move io and net from legacy to regular library build --- java/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/build.gradle.kts b/java/build.gradle.kts index 47fa76e46b..11349f7e07 100644 --- a/java/build.gradle.kts +++ b/java/build.gradle.kts @@ -68,7 +68,7 @@ tasks.register("copyCore"){ into(coreProject.layout.projectDirectory.dir("library")) } -val legacyLibraries = arrayOf("io","net") +val legacyLibraries = emptyArray() legacyLibraries.forEach { library -> tasks.register("library-$library-extraResources"){ val build = project(":java:libraries:$library").tasks.named("build") @@ -87,7 +87,7 @@ legacyLibraries.forEach { library -> } } -val libraries = arrayOf("dxf", "pdf", "serial", "svg") +val libraries = arrayOf("dxf", "io", "net", "pdf", "serial", "svg") libraries.forEach { library -> val name = "create-$library-library" From 26e258b672000bb0fbb8e009d9afecbbad2fb118 Mon Sep 17 00:00:00 2001 From: Avinash Kumar Deepak Date: Fri, 6 Feb 2026 23:40:26 +0530 Subject: [PATCH 4/5] revert serial changes for separate pr --- java/libraries/serial/build.gradle.kts | 49 +------------------ .../serial/src/processing/serial/Serial.java | 6 +-- 2 files changed, 3 insertions(+), 52 deletions(-) diff --git a/java/libraries/serial/build.gradle.kts b/java/libraries/serial/build.gradle.kts index 24fb350f93..f7f1ff4136 100644 --- a/java/libraries/serial/build.gradle.kts +++ b/java/libraries/serial/build.gradle.kts @@ -1,8 +1,5 @@ -import com.vanniktech.maven.publish.SonatypeHost - plugins { java - alias(libs.plugins.mavenPublish) } sourceSets { @@ -19,7 +16,8 @@ repositories { dependencies { compileOnly(project(":core")) - implementation("io.github.java-native:jssc:2.10.2") + // TODO: https://github.com/java-native/jssc + implementation(files("library/jssc.jar")) } tasks.register("createLibrary") { @@ -36,47 +34,4 @@ tasks.register("createLibrary") { into("library") rename { "serial.jar" } } -} - -publishing { - repositories { - maven { - name = "App" - url = uri(project(":app").layout.buildDirectory.dir("resources-bundled/common/repository").get().asFile.absolutePath) - } - } -} - -mavenPublishing { - coordinates("$group.core", name, version.toString()) - publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) - - signAllPublications() - - pom { - name.set("Processing Serial") - description.set("Processing Serial") - url.set("https://processing.org") - licenses { - license { - name.set("LGPL") - url.set("https://www.gnu.org/licenses/lgpl-2.1.html") - } - } - developers { - developer { - id.set("steftervelde") - name.set("Stef Tervelde") - } - developer { - id.set("benfry") - name.set("Ben Fry") - } - } - scm { - url.set("https://github.com/processing/processing4") - connection.set("scm:git:git://github.com/processing/processing4.git") - developerConnection.set("scm:git:ssh://git@github.com/processing/processing4.git") - } - } } \ No newline at end of file diff --git a/java/libraries/serial/src/processing/serial/Serial.java b/java/libraries/serial/src/processing/serial/Serial.java index eadd7be2ad..15ed23fcde 100644 --- a/java/libraries/serial/src/processing/serial/Serial.java +++ b/java/libraries/serial/src/processing/serial/Serial.java @@ -259,12 +259,8 @@ public boolean getDSR() { } - /** - * @deprecated No longer supported - */ - @Deprecated public static Map getProperties(String portName) { - return new java.util.HashMap<>(); + return SerialPortList.getPortProperties(portName); } From be35e095c7d3ea5af3b5d5bad5358f2e60985508 Mon Sep 17 00:00:00 2001 From: Avinash Kumar Deepak Date: Sat, 7 Feb 2026 18:54:25 +0530 Subject: [PATCH 5/5] serial: add maven publishing, keep bundled jssc jar --- java/libraries/serial/build.gradle.kts | 51 +++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/java/libraries/serial/build.gradle.kts b/java/libraries/serial/build.gradle.kts index f7f1ff4136..652b1b398e 100644 --- a/java/libraries/serial/build.gradle.kts +++ b/java/libraries/serial/build.gradle.kts @@ -1,5 +1,8 @@ +import com.vanniktech.maven.publish.SonatypeHost + plugins { java + alias(libs.plugins.mavenPublish) } sourceSets { @@ -23,15 +26,61 @@ dependencies { tasks.register("createLibrary") { dependsOn("jar") into(layout.buildDirectory.dir("library")) + from(layout.projectDirectory) { include("library.properties") include("examples/**") } + from(configurations.runtimeClasspath) { into("library") } + from(tasks.jar) { into("library") rename { "serial.jar" } } -} \ No newline at end of file +} + +publishing { + repositories { + maven { + name = "App" + url = uri(project(":app").layout.buildDirectory.dir("resources-bundled/common/repository").get().asFile.absolutePath) + } + } +} + +mavenPublishing { + coordinates("$group.core", name, version.toString()) + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) + + signAllPublications() + + pom { + name.set("Processing Serial") + description.set("Processing Serial") + url.set("https://processing.org") + licenses { + license { + name.set("LGPL") + url.set("https://www.gnu.org/licenses/lgpl-2.1.html") + } + } + developers { + developer { + id.set("steftervelde") + name.set("Stef Tervelde") + } + developer { + id.set("benfry") + name.set("Ben Fry") + } + } + scm { + url.set("https://github.com/processing/processing4") + connection.set("scm:git:git://github.com/processing/processing4.git") + developerConnection.set("scm:git:ssh://git@github.com/processing/processing4.git") + } + } +}