generated from coulomb/repo-seed
local OpenCMIS TCK runtime
This commit is contained in:
132
docs/LOCAL-TCK-RUNTIME.md
Normal file
132
docs/LOCAL-TCK-RUNTIME.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# Local OpenCMIS TCK Runtime
|
||||
|
||||
Status: draft
|
||||
Created: 2026-05-07
|
||||
|
||||
## Purpose
|
||||
|
||||
This document describes the local runtime needed to actually run Apache
|
||||
Chemistry OpenCMIS TCK checks from the `open-cmis-tck` guide-board extension.
|
||||
|
||||
The TCK is an open source Java toolkit. It is not vendored into this repository.
|
||||
The extension provides a pinned Maven runtime descriptor and adapter commands
|
||||
that resolve and run the TCK locally.
|
||||
|
||||
## Runtime Pin
|
||||
|
||||
The first local runtime uses:
|
||||
|
||||
- Maven coordinate:
|
||||
`org.apache.chemistry.opencmis:chemistry-opencmis-test-tck:1.1.0`
|
||||
- License: Apache License 2.0
|
||||
- Runner class:
|
||||
`org.apache.chemistry.opencmis.tck.runner.ConsoleRunner`
|
||||
- Runner contract: session-parameters file plus group-list file
|
||||
|
||||
The Apache Chemistry project is retired, so this extension pins the 1.1.0 Maven
|
||||
artifact and records the retirement boundary in runtime summaries.
|
||||
|
||||
Sources:
|
||||
|
||||
- https://repo1.maven.org/maven2/org/apache/chemistry/opencmis/chemistry-opencmis-test-tck/1.1.0/
|
||||
- https://chemistry.apache.org/java/javadoc/org/apache/chemistry/opencmis/tck/runner/ConsoleRunner.html
|
||||
- https://chemistry.apache.org/java/javadoc/org/apache/chemistry/opencmis/commons/SessionParameter.html
|
||||
|
||||
## Bootstrap
|
||||
|
||||
From this repository:
|
||||
|
||||
```sh
|
||||
PYTHONPATH=src python3 scripts/bootstrap_opencmis_tck.py
|
||||
```
|
||||
|
||||
This checks Java, Maven, and the local runtime descriptor. It writes:
|
||||
|
||||
```text
|
||||
.local/opencmis-tck/runtime-summary.json
|
||||
```
|
||||
|
||||
To resolve/cache Maven dependencies, run:
|
||||
|
||||
```sh
|
||||
PYTHONPATH=src python3 scripts/bootstrap_opencmis_tck.py --resolve
|
||||
```
|
||||
|
||||
The `--resolve` step downloads Maven dependencies into the user's Maven cache.
|
||||
It does not commit artifacts into this repository.
|
||||
|
||||
## Current Local Prerequisites
|
||||
|
||||
The local runner expects:
|
||||
|
||||
- `java` on `PATH`
|
||||
- `mvn` on `PATH`
|
||||
- network access or an already-populated Maven cache for the first
|
||||
`--resolve`
|
||||
|
||||
On Ubuntu/WSL, a typical prerequisite install is:
|
||||
|
||||
```sh
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y openjdk-17-jdk maven
|
||||
```
|
||||
|
||||
Use an already managed Java/Maven installation instead if this workstation has
|
||||
one outside WSL.
|
||||
|
||||
## Guide-Board Invocation
|
||||
|
||||
The baseline assessment profile now points the OpenCMIS wrapper at:
|
||||
|
||||
```text
|
||||
adapters/opencmis_console_adapter.py
|
||||
```
|
||||
|
||||
The adapter generates:
|
||||
|
||||
- `session.properties`
|
||||
- `groups.txt`
|
||||
- `console-runner-invocation.json`
|
||||
- `console-runner-stdout.txt`
|
||||
- `console-runner-stderr.txt`
|
||||
|
||||
and invokes Maven's `exec:java` goal against:
|
||||
|
||||
```text
|
||||
runtime/opencmis-tck/pom.xml
|
||||
```
|
||||
|
||||
That Maven descriptor pulls the OpenCMIS TCK artifact and runs
|
||||
`ConsoleRunner`.
|
||||
|
||||
## Session Parameters
|
||||
|
||||
For Browser Binding runs, the adapter writes OpenCMIS session parameters such
|
||||
as:
|
||||
|
||||
```properties
|
||||
org.apache.chemistry.opencmis.binding.spi.type=browser
|
||||
org.apache.chemistry.opencmis.binding.browser.url=<browser-url>
|
||||
org.apache.chemistry.opencmis.session.repository.id=<repository-id>
|
||||
org.apache.chemistry.opencmis.binding.browser.succinct=true
|
||||
org.apache.chemistry.opencmis.binding.compression=true
|
||||
org.apache.chemistry.opencmis.binding.cookies=true
|
||||
```
|
||||
|
||||
User and password fields are written only when explicitly supplied. Secret
|
||||
storage is not implemented in this step.
|
||||
|
||||
## Check Group Mapping
|
||||
|
||||
The first adapter maps guide-board check groups to OpenCMIS TCK group classes:
|
||||
|
||||
- `repository-type`: `BasicsTestGroup`, `TypesTestGroup`
|
||||
- `object-content`: `CRUDTestGroup`
|
||||
- `navigation`: `FilingTestGroup`
|
||||
- `query-acl-versioning`: `QueryTestGroup`, `ControlTestGroup`,
|
||||
`VersioningTestGroup`
|
||||
- `relationships`: `CRUDTestGroup`
|
||||
- `change-log`: `ControlTestGroup`
|
||||
- `extension-gaps`: no executable group yet; treated as known-gap review
|
||||
|
||||
This mapping should be refined after the first live pilot output is reviewed.
|
||||
Reference in New Issue
Block a user