Skip to content

[OSSIE][DATABRICKS] Add Java Converter and Reformat - #333

Open
Haoranli503 wants to merge 4 commits into
apache:mainfrom
Haoranli503:databricks-converter-v2
Open

[OSSIE][DATABRICKS] Add Java Converter and Reformat#333
Haoranli503 wants to merge 4 commits into
apache:mainfrom
Haoranli503:databricks-converter-v2

Conversation

@Haoranli503

Copy link
Copy Markdown
Contributor

Summary

Adds a Java implementation of the Databricks converter alongside the existing Python
reference, and restructures converters/databricks/ to host both languages. The Java library is
the implementation maintained going forward; the Python converter becomes a reference copy slated
for deprecation.

Conversion is unchanged in spirit: pure YAML text in, YAML text out, reading and writing the two
formats as parsed maps and lists. The Java and Python implementations target the same Databricks
Unity Catalog Metric View YAML v1.1 contract, and the checked-in fixtures pin the expected output
for both directions (export: Ossie -> Metric View, import: Metric View -> Ossie).

Changes:

  • Restructure — the existing flat Python converter (src/, tests/, pyproject.toml,
    README.md, uv.lock) moves under converters/databricks/python/ with no content changes,
    making room for the Java tree.
  • Add java/ — the bidirectional converter as a Maven module: library, an
    OssieDatabricksConverter command-line tool, JUnit 5 tests, and YAML fixtures. Package
    org.apache.ossie.converter.databricks, following the conventions of the existing polaris and
    salesforce Java converters (parent org.apache:apache:39; deps SnakeYAML / Jackson / JUnit 5;
    apache-rat-plugin license audit; shade plugin for the executable CLI jar).
  • Add a root README.md describing the two-language layout and pointing at each
    implementation's own README.
  • CI (.github/workflows/converter-databricks-ci.yml) — point the Python job at the new
    python/ working directory, and add a Java job (mvn -B verify, Temurin JDK 21) mirroring
    converter-polaris-ci.yml.

Related Issues

Checklist

Specification

  • Spec changes are included in core-spec/ and follow the existing structure
  • Spec changes have been discussed on the mailing list or in a linked issue
  • Breaking changes to the spec are clearly called out in the summary

Ontology

  • Ontology changes in ontology/ are consistent with spec changes
  • New or modified terms are defined and documented

Converters

  • Converter logic in converters/ is updated to reflect spec or ontology changes
  • New converters include tests under the converter's test directory

Validation

  • Validation rules in validation/ are updated if the spec changed
  • New validation cases are covered by tests

Documentation

  • docs/ is updated to reflect any user-facing changes
  • New features or behaviors are documented with examples where appropriate
  • CONTRIBUTING.md is updated if the contribution process changed

Examples

  • examples/ are added or updated for any new spec constructs or converter support

Tests

  • All existing tests pass (pytest / CI green)
  • New functionality is covered by tests

Compliance

  • ASF license headers are present on all new source files
  • No third-party dependencies are added without PMC/IPMC approval

Haoranli503 and others added 4 commits July 20, 2026 15:36
…icks)

Bidirectional, offline converter between Apache Ossie semantic models and Databricks
Unity Catalog Metric Views (YAML v1.1), filling the DATABRICKS spoke already listed in
converters/README.md. Packaged like the sibling spokes: pyproject.toml
(apache-ossie-databricks), an ossie_databricks package under src/, ASF license headers,
and a tests/ suite (example-based + Hypothesis property-based round-trip; 74 tests).
PyYAML is the only runtime dependency.

Co-authored-by: jackstein21 <82542300+jackstein21@users.noreply.github.com>
Move the Python converter under converters/databricks/python/ (content unchanged) and add a Maven Java module -- library, CLI (OssieDatabricksConverter), JUnit tests, and fixtures under java/, package org.apache.ossie.converter.databricks -- as the maintained implementation. Add a root README describing the two-language layout, and a Java build job (mvn -B verify, JDK 21) in converter-databricks-ci.yml, mirroring the polaris converter.

Signed-off-by: Haoran Li <haoran.li@databricks.com>
Replace the Python README's forward-looking 'Future effort' section with a deprecation note: the Java converter under java/ is the maintained implementation; the Python copy is kept for reference and no longer actively extended.

Signed-off-by: Haoran Li <haoran.li@databricks.com>
Keep this branch's converter-databricks-ci.yml (adds the java build job) and converters/databricks/README.md (layout overview); the python README lives under python/.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant