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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions