+1 this is a great idea for downstream systems like PCC.

+1 for bom. It's just so much easier

On Fri, Mar 15, 2019, 7:35 PM Jacob Barrett <jbarr...@pivotal.io> wrote:

> +1 for the change and +1 for BOMs.
>
> We currently have an “all” BOM and a client BOM. Defining server and other
> usecase derived BOMs should be easy.
> -jake
>
>
> > On Mar 15, 2019, at 4:16 PM, John Blum <jb...@pivotal.io> wrote:
> >
> > If users will be explicitly declaring such dependencies in their
> > applications, then I might also suggest declaring/generating a Maven
> > <dependencyManagement> section in the POM to ensure that the user is
> > getting and using the right version of these dependencies, especially
> when
> > they don't care about the version (i.e. their applications likely will
> not
> > use the same dependency, e.g. org.jgroups:jgroups).  Assuming a version
> > property is appropriately declared in the POM, then the user can always
> > override the dependency version.  All too often we running into problems
> > (e.g. NoSuchMethodError) due to incompatibility with versions.
> >
> > As fine example of a curated, harmonized, managed set of dependencies,
> see
> > the *Spring Boot* Dependency POM
> > <
> https://github.com/spring-projects/spring-boot/blob/v2.1.3.RELEASE/spring-boot-project/spring-boot-dependencies/pom.xml#L34-L3056
> >
> > [1].
> >
> > This is recommended, not required.  In general, I'd also add that GemFire
> > should produce a BOM file to manage its dependencies (both owned (e.g.
> > geode-core, geode-lucene, etc) as well as transitive) so users don't have
> > to.
> >
> > Food for thought.
> >
> >
> >
> > On Fri, Mar 15, 2019 at 4:07 PM Bruce Schuchardt <bschucha...@pivotal.io
> >
> > wrote:
> >
> >> That seems like a great idea
> >>
> >>> On 3/15/19 11:53 AM, Dan Smith wrote:
> >>> Hi,
> >>>
> >>> We would like to start using gradle's new implementation dependency
> >>> notation in our build files.
> >>>
> >>> This will affect downstream consumers of geode-core, hopefully in a
> good
> >>> way, in that many of our dependencies will now be marked runtime
> >>> dependencies in the pom instead of compile. That means it is easier for
> >>> users to avoid accidentally using one of these dependencies in their
> >> code.
> >>> But it also means if they are using one of these dependencies directly,
> >>> they will have to explicitly add it to their maven/gradle build going
> >>> forward.
> >>>
> >>> Here is a PR for this:
> >>> https://github.com/apache/geode/pull/3314
> >>>
> >>> Are there any concerns with making this switch?
> >>>
> >>> These are the dependencies that are being flipped to runtime instead of
> >>> compile in the pom:
> >>>
> >>> com.github.stephenc.findbugs:findbugs-annotations
> >>> org.jgroups:jgroups
> >>> antlr:antlr
> >>> com.fasterxml.jackson.core:jackson-annotations
> >>> com.fasterxml.jackson.core:jackson-databind
> >>> commons-io:commons-io
> >>> commons-validator:commons-validator
> >>> javax.xml.bind:jaxb-api
> >>> com.sun.xml.bind:jaxb-impl
> >>> org.apache.commons:commons-lang3
> >>> it.unimi.dsi:fastutil
> >>> net.java.dev.jna:jna
> >>> net.sf.jopt-simple:jopt-simple
> >>> org.apache.logging.log4j:log4j-api
> >>> org.apache.logging.log4j:log4j-core
> >>> org.eclipse.jetty:jetty-server
> >>> io.github.classgraph:classgraph
> >>> com.healthmarketscience.rmiio:rmiio
> >>>
> >>
> >
> >
> > --
> > -John
> > john.blum10101 (skype)
>

Reply via email to