arrow-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bernd Wiswedel <>
Subject Re: [Java] Issues with "Split Packages" and OSGi (and probably Java 9+)
Date Tue, 25 Aug 2020 07:50:54 GMT
Jokes aside and on second thought: Package renaming is considered an API
break and would usually require a major release according to semantic

I believe any change to fix this issue is going to cause an API break
(including moving classes within the same package to a different artifact).
As it stands right now I don't think the artifacts can be used in a Java 9+
module system (anyone there to prove me wrong?), and it's going to be
painful in an OSGi environment. (In our project we currently really only
care about the latter right now.)

On the plus side the API change is easy to understand and fix.


On Tue, Aug 25, 2020 at 12:07 AM Bernd Wiswedel <>

> Nah, they had plenty of time to object. Will look into it in the coming
> days.
> Thanks,
>  Bernd
> Jacques Nadeau <> schrieb am Di., 25. Aug. 2020, 00:03:
>> I suggest renaming the vector related util package to
>> org.apache.arrow.vector.util and memory to org.apache.arrow.memory.util. It
>> would be great if you could open a ticket and propose a patch (assuming
>> others agree with the solution).
>> On Mon, Aug 24, 2020 at 2:53 PM Bernd Wiswedel <>
>> wrote:
>>> We at KNIME ( are currently looking at Arrow as
>>> an alternative data representation. Our platform is based on Eclipse and
>>> uses OSGi for dependency management. As part of that we use the Arrow
>>> artifacts available from maven and convert them to OSGI bundles.
>>> We noticed that at least one java package (org.apache.arrow.util) is
>>> provided in two different artifacts
>>>    - arrow-memory-core: (Link to GitHub
>>>    <>
>>>    )
>>>    - arrow-vectors: (Link to GitHub
>>>    <>
>>>    )
>>> This is causing us trouble as the package is available via two chains. I
>>> believe this is also going to be troublesome once it's used in a Java 9+
>>> environment where different modules(*) can't share the same package ('split
>>> package' -- some more details are here
>>> <>
>>> ).
>>> The simplest solution is to move classes from one package to the other
>>> (same) package. If that's not an accepted option it could also be moved
>>> into a new artifact(*) arrow-util or so.
>>> Please advise!
>>> Thanks,
>>>  Bernd
>>> (*) Bundle, Module, Plug-In, Artefact ... different terms used in
>>> different contexts but they mostly mean the same thing.

View raw message