Christophe,
It is not clear to me who is the consumer of this BOM.

Java clients should depend on pulsar-client
Pulsar IO and Functions have their own dependencies.

So what's the target? Protocol Handlers? Servlets? Proxy extensions?


Enrico

Il Lun 14 Feb 2022, 15:05 Nicolò Boschi <boschi1...@gmail.com> ha scritto:

> Great idea!
> +1
>
> Il giorno mar 8 feb 2022 alle ore 12:18 Christophe Bornet <
> bornet.ch...@gmail.com> ha scritto:
>
> > Hi everyone,
> >
> > I'd like to open a discussion on PIP 141 : Pulsar BOM
> >
> > The PIP is here : https://github.com/apache/pulsar/issues/14168
> >
> > ## Motivation
> >
> > When designing NAR modules loaded by Nifi in the broker such as protocol
> > handlers, proxy extensions, Pulsar IO connectors, etc..., it's important
> > that the dependencies that are common to the module and the broker are as
> > close as possible to prevent incompatible library exceptions
> > (NoSuchClassError, NoSuchMethodError, IncompatibleClassChangeError, etc
> > ...) at runtime. If a class is both in the NAR and in the broker, the
> > broker one will be loaded.
> >
> > ## Goal
> >
> > This proposal is to define a BOM (Bill Of Materials) for Pulsar.
> > A BOM is a special kind of POM that contains all the dependency versions
> > that are used by the project and can be imported in another project.
> > Currently there is a `dependencyManagement` section in Pulsar's parent
> POM
> > but it's not always possible to derive from this parent POM as it
> imports a
> > lot more things than the dependency versions and external projects
> usually
> > prefer to have their own parent POM.
> > External projects can import this BOM and use the same library versions
> as
> > Pulsar at compile/test time.
> >
> > ## API Changes
> >
> > No API changes
> >
> > ## Implementation
> >
> > The `dependencyManagement` section of Pulsar's parent POM and related
> > properties will be extracted in a POM and put in a `pulsar-bom`
> directory.
> > The `pulsar-bom` artifact shall be built and released independently from
> > the rest of Pulsar project (not a maven module).
> > The Pulsar's parent POM `dependencyManagement` section is replaced by:
> >
> >   <dependencyManagement>
> >     <dependencies>
> >       <dependency>
> >         <groupId>org.apache.pulsar</groupId>
> >         <artifactId>pulsar-bom</artifactId>
> >         <version>2.10.0-SNAPSHOT</version>
> >         <type>pom</type>
> >         <scope>import</scope>
> >       </dependency>
> >     </dependencies>
> >   </dependencyManagement>
> >
> > The CI will have to build `pulsar-bom` before building Pulsar.
> >
> > ## Reject Alternatives
> >
> > The BOM could be part of a distinct Git project. This would be harder to
> > handle for contributions that modify both the BOM and Pulsar.
> >
> >
> > Thanks a lot for your feedback !
> >
> > Christophe
> >
>
>
> --
> Nicolò Boschi
>

Reply via email to