Skip to content

Add Java 17 & Scala 2.13 Modern Compatibility Layer (Dual-Build Support) #813

@DhanashreePetare

Description

@DhanashreePetare

Problem / Motivation

The DBpedia Extraction Framework currently relies on:

  • Scala 2.11 (end-of-life)
  • Java 8

This makes the project increasingly difficult to:

  • build on modern systems
  • onboard new contributors
  • integrate with newer libraries and tools

Many modern development environments default to Java 17+ and Scala 2.13+, which leads to build failures or requires manual downgrades.


Proposed Solution

Introduce a modern compatibility layer that allows the framework to be built and run in both legacy and modern environments, without breaking existing behavior.

Key idea:

  • No big-bang migration
  • Maintain backward compatibility
  • Enable gradual modernization

Scope of the Proposal

  1. Dual Build Profiles

    • legacy: Scala 2.11 + Java 8 (current behavior)
    • modern: Scala 2.13 + Java 17+
  2. Compatibility Utilities

    • Introduce small abstraction helpers (e.g. for collection conversions)
    • Isolate Scala 2.11 vs 2.13 differences instead of scattering fixes
  3. Minimal Code Adjustments

    • Replace deprecated Scala APIs (e.g. JavaConversions)
    • Fix compilation issues caused by newer JDK module restrictions
    • No changes to extraction logic or RDF semantics
  4. CI Support

    • Test both legacy and modern profiles in CI
    • Ensure no regressions in existing behavior

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions