Skip to content

Runtime Integration: Alternative to the fat birt_runtime*.jar? #1231

@patric-r

Description

@patric-r

Question here.

To date, we integrate the BIRT runtime into our application by using the BIRT Runtime zip artifact.
This zip contains several jars as regular dependencies, however interestingly, also a jar named org.eclipse.birt.runtime_4.x.jar.

This jar contains many further dependencies in the good old "fat jar" manner, like guava, slf4j, cassandra and many more.
And because of the hidden nature of fat-jars, it is cumbersome to resolve conflicts with other dependencies of our software.
Currently, we do this by deleting stuff in the jar which we assume are not required but of course, this introduces some risks.

Is there an alternative for this approach? And if not, can we do better than that?

Ideally, BIRT would provide runtime artifacts which do not contain any fat jars.
And even better, the build artifact or its documentation would express which dependencies are optional
and safe to exclude (e.g. you only need the POI jars when you want to use the office emitters) or if required, which version ranges are acceptable in order to provide maximum compatibility and to enable the safe usage of jar-dependencies we provide (which has additional benefits like security aspects).

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