You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by pe...@apache.org on 2026/07/25 09:00:17 UTC
(openoffice) 03/20: OOoRunner basic migration.
This is an automated email from the ASF dual-hosted git repository.
leginee pushed a commit to branch bazel-migration
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 7e18bf4e52230381d91390aac4eebffe12abd260
Author: Peter Kovacs <pe...@apache.org>
AuthorDate: Sat Jun 27 02:30:35 2026 +0200
OOoRunner basic migration.
---
CLAUDE.md | 7 ++++++-
main/qadevOOo/BUILD.bazel | 32 ++++++++++++++++++++++++++++++++
main/qadevOOo/readme.md | 38 ++++++++++++++++++++++++++++++++++++++
3 files changed, 76 insertions(+), 1 deletion(-)
diff --git a/CLAUDE.md b/CLAUDE.md
index 918bf22176..d78ac0c94b 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -25,7 +25,12 @@ test 🔨 C++ unit-test infra runnable — NOW THE FRONT-LINE TASK: br
running-soffice fixture; cppunit suites need Phase-4 dep.
testtools ⬜ (bridgetest — pure-C++ UNO bridge round-trip; cli/pyuno/java variants
need rules_java — see Java bucket)
-qadevOOo ⬜ (Java-based QA test framework; needs rules_java — see Java bucket)
+qadevOOo 🔨 OOoRunner.jar built (//main/qadevOOo:OOoRunner — qadevOOo QA
+ framework, ~2137 classes; classpath ridl/unoil/jurt/juh_jar/
+ java_uno_jar; .csv objdsc NOT jarred, manifest omitted).
+ Unblocks bridges java_uno tests (acquire, java_remote). STILL
+ ⬜: OOoRunnerLight, qa/complex, JunitTest_qadevOOo_unoapi,
+ testdocs — need running-soffice/OfficeConnection fixture.
testgraphical ⬜ (graphical/visual regression tests; needs instsetoo_native + qadevOOo)
── Remaining: Java-based ────────────────────────────────────────────────
diff --git a/main/qadevOOo/BUILD.bazel b/main/qadevOOo/BUILD.bazel
new file mode 100644
index 0000000000..10a758af9e
--- /dev/null
+++ b/main/qadevOOo/BUILD.bazel
@@ -0,0 +1,32 @@
+load("@rules_java//java:defs.bzl", "java_library")
+
+# ── OOoRunner.jar ────────────────────────────────────────────────────────────
+# The qadevOOo test framework (lib.*, base.*, util.*, share.*, mod.* …) used as a
+# classpath library by UNO-Java API/integration tests — notably the bridges
+# java_uno tests (test/java_uno/acquire, com/sun/star/lib/.../java_remote/*).
+#
+# Classpath (build.xml main.classpath): ridl + unoil + jurt + juh + java_uno.
+#
+# Resources: src/main/resources holds ONLY the 670 objdsc/*.csv object-description
+# files, which the ant jar target does NOT bundle (.csv is absent from its include
+# list) — the runner reads them from the filesystem via an -objdsc parameter. So
+# this jar is compiled classes only, matching upstream.
+#
+# Manifest (Class-Path: ridl.jar unoil.jar / RegistrationClassName:
+# org.openoffice.RunnerService) is a deployment/UNO-registration detail not needed
+# for classpath use; omitted here, same as ridljar/unoloader (see ridljar/readme.md).
+java_library(
+ name = "OOoRunner",
+ srcs = glob(["java/OOoRunner/src/main/java/**/*.java"]),
+ # Legacy Java 1.4-era sources: pin --release 8 and silence Error Prone, same
+ # as jurt (modern JDK compiles them with deprecation/raw-type warnings only).
+ javacopts = ["--release", "8", "-XepDisableAllChecks"],
+ deps = [
+ "//main/ridljar:ridl",
+ "//main/unoil:unoil",
+ "//main/jurt:jurt",
+ "//main/javaunohelper:juh_jar",
+ "//main/bridges:java_uno_jar",
+ ],
+ visibility = ["//visibility:public"],
+)
diff --git a/main/qadevOOo/readme.md b/main/qadevOOo/readme.md
new file mode 100644
index 0000000000..5d7c955d2a
--- /dev/null
+++ b/main/qadevOOo/readme.md
@@ -0,0 +1,38 @@
+# qadevOOo — Bazel migration status: 🔨 (OOoRunner.jar done)
+
+## What builds
+
+| Target | Output | Description |
+|--------|--------|-------------|
+| `//main/qadevOOo:OOoRunner` | `libOOoRunner.jar` (3.5 MB, ~2137 classes) | The qadevOOo QA test framework (`lib.*`, `base.*`, `util.*`, `share.*`, `mod.*`, `ifc.*`, `helper.*`, `org.openoffice.*`). |
+
+`OOoRunner.jar` is the artifact the **bridges java_uno tests** need on their
+classpath (`test/java_uno/acquire`, `com/sun/star/lib/.../java_remote/*`) — it was
+the blocker noted in the bridges test matrix.
+
+## Key decisions
+
+- **Classpath = 5 migrated jars** (from `java/OOoRunner/build.xml` `main.classpath`):
+ `ridl`, `unoil`, `jurt`, `juh_jar`, `java_uno_jar`.
+ - ⚠️ The javaunohelper jar target is **`//main/javaunohelper:juh_jar`**, NOT
+ `:juh` (which is the `juh.dll` cc_binary). Depending on `:juh` gives no Java
+ classes → `package com.sun.star.comp.helper does not exist`
+ (Bootstrap/ComponentContext live there).
+- **`--release 8 -XepDisableAllChecks`** — 1538 legacy Java 1.4-era sources; modern
+ JDK compiles them with deprecation / unreachable-catch warnings only (same as
+ jurt). No source changes (out of scope).
+- **No resources in the jar.** `src/main/resources` holds ONLY 670
+ `objdsc/**/*.csv` object-description files, and the upstream ant jar target's
+ include list excludes `.csv` — the runner reads them from the filesystem via an
+ `-objdsc` run parameter, not the classpath. Jar = compiled classes only.
+- **Manifest omitted.** The hand-written manifest (`Class-Path: ridl.jar unoil.jar`
+ + `RegistrationClassName: org.openoffice.RunnerService`) is a deployment /
+ UNO-registration detail, irrelevant for classpath use — same treatment as
+ ridljar/unoloader.
+
+## Not yet migrated (rest of the module)
+
+- `java/OOoRunnerLight` (subset jar), `qa/complex/*` (junit complex tests),
+ `JunitTest_qadevOOo_unoapi` (the big UNO-API subsequent-test suite), `testdocs/*`
+ (C++/java test fixtures). These need the running-soffice / OfficeConnection
+ fixture and are part of the deferred subsequent-test bucket.