Files
open-cmis-tck/docs/LOCAL-TCK-RUNTIME.md
2026-05-07 23:43:21 +02:00

3.6 KiB

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:

Bootstrap

From this repository:

PYTHONPATH=src python3 scripts/bootstrap_opencmis_tck.py

This checks Java, Maven, and the local runtime descriptor. It writes:

.local/opencmis-tck/runtime-summary.json

To resolve/cache Maven dependencies, run:

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:

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:

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:

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:

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.