No problem, :-).  As an FYI... I am retesting Spring Session with Apache
Geode M1 release to see if the release POM helps resolve the dependency
issues I had.  Will report back my findings.

On Wed, Feb 10, 2016 at 9:52 AM, Anthony Baker <[email protected]> wrote:

> John, thanks for working through this.  Great suggestions!
>
> Anthony
>
> > On Feb 10, 2016, at 8:21 AM, John Blum <[email protected]> wrote:
> >
> > Following up...
> >
> > I spent a few extra cycles researching the *Apache Geode* dependencies
> > further.
> >
> > Looking at the POM file
> > <
> https://repo1.maven.org/maven2/org/apache/geode/gemfire-core/1.0.0-incubating.M1/gemfire-core-1.0.0-incubating.M1.pom
> >
> > [0]
> > (for gemfire-core) for the M1 release of *Apache Geode* in Maven Central,
> > it appears the Repository declarations were removed (+1).
> >
> > However, you still want to clean up the Repository declarations on
> develop
> > as much as possible.  Certainly, we should remove mavenLocal(),
> > mavenCentral() and all *Spring repo* declarations (here
> > <
> https://github.com/apache/incubator-geode/blob/develop/build.gradle#L46-L52
> >
> > [1]).
> > mavenCentral() is redundant.  mavenLocal() is dangerous.  And, all
> *Spring*
> > dependencies (e.g. *Spring Data GemFire*), at least versions that *Apache
> > Geode* should depend on (i.e. "GA" versions; or
> > major.minor.maint.*RELEASE*) are
> > all available in Maven Central (e.g. here
> > <http://search.maven.org/#search%7Cga%7C1%7Cspring-data-gemfire> [2]).
> >
> > But...
> >
> > With respect to *Apache Geode* dependencies, you really have to decide
> > whether the POM file will be used to "*build* *Apache Geode"*, or rather,
> > just resolve dependencies required by *Apache Geode* to "*build* and
> *run*
> > applications".  This is a significant difference, and in most cases, you
> > want the later, especially since *Apache Geode* already has an elaborate
> > "build" developed with Gradle.
> >
> > So, this means a developer should not see things like "test" dependencies
> > in the POM resolved from Maven Central (e.g. powermock (yikes),
> > mockito/jmock or even junit for that matter), especially when the user's
> > application (test) dependencies may be quite different.
> >
> > Even dependencies such as Jetty should not appear (i.e. OPTIONAL) in the
> > POM, since technically, this is a dependency for other Geode services
> that
> > only come into play if the service is enabled (e.g. Management's HTTP
> > service hosting Pulse or the Management REST API that tunnels *Gfsh*
> calls
> > through HTTP rather than JMX RMI).  Other good examples include Netty or
> > MX4J.
> >
> > As an example, compare the dependencies defined by *Spring Data
> GemFire's*
> > build
> > <
> https://github.com/spring-projects/spring-data-gemfire/blob/master/build.gradle#L64-L104
> >
> > [3]
> > as compared to *Spring Data GemFire's* POM
> > <
> https://repo1.maven.org/maven2/org/springframework/data/spring-data-gemfire/1.7.2.RELEASE/spring-data-gemfire-1.7.2.RELEASE.pom
> >
> > [4]
> > file.
> >
> > In general, the fewer dependencies a user has to pick up in order to
> build
> > an application using *Apache Geode*, the better!  Often times, developers
> > concern themselves unnecessarily with JAR file size when it is actually
> the
> > number of JAR files that really matters.  Moving more towards a more
> > modular architecture (similar to the core *Spring Framework*) will go a
> > long ways in helping to control the dependencies at appropriate times and
> > places.
> >
> > Hope this helps clarify my point and the reason for GEODE-27.
> >
> > Thanks!
> > John
> >
> >
> > [0] -
> >
> https://repo1.maven.org/maven2/org/apache/geode/gemfire-core/1.0.0-incubating.M1/gemfire-core-1.0.0-incubating.M1.pom
> > [1] -
> >
> https://github.com/apache/incubator-geode/blob/develop/build.gradle#L46-L52
> > [2] - http://search.maven.org/#search%7Cga%7C1%7Cspring-data-gemfire
> > [3] -
> >
> https://github.com/spring-projects/spring-data-gemfire/blob/master/build.gradle#L64-L104
> > [4] -
> >
> https://repo1.maven.org/maven2/org/springframework/data/spring-data-gemfire/1.7.2.RELEASE/spring-data-gemfire-1.7.2.RELEASE.pom
> >
> > On Tue, Feb 9, 2016 at 7:23 PM, John Blum <[email protected]> wrote:
> >
> >> Technically, GEODE-27 <https://issues.apache.org/jira/browse/GEODE-27>
> [0]
> >> was less about the format and more about fixing the POM so it is
> correct.
> >>
> >> Revising my earlier comments (in the JIRA), the repository declarations
> >> <
> https://github.com/apache/incubator-geode/blob/develop/build.gradle#L45-L54>
> [1],
> >> especially if publishing to *Maven Central* should be removed
> altogether.
> >> The dependencies needed to be cleaned up so that they are appropriately
> >> marked as either OPTIONAL, or not, with the appropriate SCOPE (e.g.
> test,
> >> runtime, etc) and exclusions to avoid conflicts, etc.
> >>
> >> Previously, Geode was pulling in the world and I at least ran into 1
> >> conflict while working on the Spring Session GemFire adapter, for which
> I
> >> needed to add exclusions...
> >>
> >>
> >>
> https://github.com/jxblum/spring-session/blob/sgf373-apachegeode/spring-session-data-gemfire/build.gradle#L11-L16
> >>
> >> This may have been cleaned up for the release (1.0.0-incubating.M1),
> >> though I am not certain since I have not checked recently (well, after
> the
> >> release) and have since then moved onto other things.
> >>
> >> -John
> >>
> >> [0] - https://issues.apache.org/jira/browse/GEODE-27
> >> [1] -
> >>
> https://github.com/apache/incubator-geode/blob/develop/build.gradle#L45-L54
> >>
> >>
> >> On Tue, Feb 9, 2016 at 4:03 PM, Dan Smith <[email protected]> wrote:
> >>
> >>> This seems like a pretty reasonable list to me. Maybe add in GEODE-818
> to
> >>> M2 as well? GEODE-27 talks about cleaning up the pom, but it's more
> about
> >>> fixing the format. GEODE-818 is about removing uneeded dependencies.
> >>>
> >>> -Dan
> >>>
> >>> On Tue, Feb 9, 2016 at 8:23 AM, Anthony Baker <[email protected]>
> wrote:
> >>>
> >>>> I walked through JIRA this morning.  There’s a lot of really
> interesting
> >>>> stuff we should consider for M2.  However, I think we should err on
> the
> >>>> conservative side given that we already have a lot of work in flight
> >>> (e.g.
> >>>> Pulse, Modules, WAN, CQ, etc) and we don’t want to run too long before
> >>> our
> >>>> next release.  Given the new code additions, I would expect 2-3 RC’s
> >>> will
> >>>> be needed.
> >>>>
> >>>> I’ve grouped and stack ranked the tickets that seem relevant to M2
> >>> below.
> >>>> This is just IMO and I would appreciate community input on this.
> >>>>
> >>>> Tests:
> >>>> GEODE-944 (Test failure when ISP intercepts DNS failure)
> >>>> RC2 test failures from Brian Dunlap [1]
> >>>> ----- ^ M2 ^ -----
> >>>>
> >>>> Security:
> >>>> GEODE-562 (Remove or upgrade commons-collections)
> >>>> ----- ^ M2 ^ -----
> >>>>
> >>>> IP:
> >>>> GEODE-906 (Cleanup source headers)
> >>>> GEODE-905 (Source headers)
> >>>> GEODE-901 (Source headers)
> >>>> GEODE-907 (Remove JSON code from pulse)
> >>>> GEODE-903 (Copyright date on footer)
> >>>> GEODE-914 (NOTICE)
> >>>> GEODE-904 (LICENSE)
> >>>> GEODE-918 (Add license header to generated pom)
> >>>> ----- ^ M2 ^ ----- v M3 v -----
> >>>> GEODE-835 (remove gemfire-joptsimple)
> >>>> GEODE-629 (JSON parser)
> >>>> GEODE-868 (Autogenerate NOTICE)
> >>>>
> >>>> Maven:
> >>>> GEODE-26 (remove mavenLocal)
> >>>> GEODE-917 (rename artifacts to geode)
> >>>> GEODE-27 (Maven POM)
> >>>> GEODE-946 (maven artifacts)
> >>>> ----- ^ M2 ^ ----- v M3 v -----
> >>>> GEODE-919 (Don’t checksum signature files)
> >>>>
> >>>> Docs:
> >>>> GEODE-945 (Javadoc warning)
> >>>> GEODE-54 (javadocs)
> >>>> GEODE-887 (README)
> >>>> GEODE-884 (README)
> >>>> GEODE-876 (Add README to binary distro)
> >>>> GEODE-874 (COMPILING / RUNNING)
> >>>> ----- ^ M2 ^ ----- v M3 v -----
> >>>> GEODE-33 (example code)
> >>>>
> >>>> Other:
> >>>> GEODE-12 (Pulse)
> >>>> ----- ^ M2 ^ ----- v M3 v -----
> >>>> GEODE-25 (crypto audit)
> >>>> GEODE-786 (Update SDG to 1.7.2)
> >>>> GEODE-543 (Upgrade jline and spring shell)
> >>>> GEODE-57 (Update library versions)
> >>>> GEODE-52 (@author)
> >>>> GEODE-37 (package renaming)
> >>>> GEODE-36 (Rename gfsh)
> >>>>
> >>>>
> >>>> Anthony
> >>>>
> >>>> [1]
> >>>>
> >>>
> http://mail-archives.apache.org/mod_mbox/incubator-geode-dev/201601.mbox/%3ccafdh8_1cuvs36a7yppjod9b4k1cip_p8kepkxn+wbxe4kzq...@mail.gmail.com%3e
> >>>>
> >>>>
> >>>>> On Feb 5, 2016, at 3:39 PM, Nitin Lamba <[email protected]> wrote:
> >>>>>
> >>>>> Thanks Dan!
> >>>>> We should perhaps discuss this topic in detail during our next Geode
> >>>> Clubhouse.
> >>>>>
> >>>>> @Mike, agree 100% with your prioritization though WAN and CQ have
> >>>> already been merged with develop. So unless any testing/ performance
> >>> issues
> >>>> pop-up, we'll get those included as part of the next milestone release
> >>>> automatically.
> >>>>>
> >>>>> - Nitin
> >>>>>
> >>>>> ________________________________________
> >>>>> From: Dan Smith <[email protected]>
> >>>>> Sent: Thursday, February 4, 2016 1:46 PM
> >>>>> To: geode
> >>>>> Subject: Re: [DISCUSS] Next Release Scope - version
> >>> 1.0.0-incubating.M2
> >>>>>
> >>>>> I added the bugs listed above, and a some others, to the M2 wiki page
> >>> so
> >>>> we
> >>>>> don't lose track of them. We can discuss if some of these need to get
> >>>>> pushed out of M2.
> >>>>>
> >>>>> I also created some subtasks for GEODE-823.
> >>>>>
> >>>>> On Mon, Feb 1, 2016 at 7:09 AM, Michael Stolz <[email protected]>
> >>> wrote:
> >>>>>
> >>>>>> I'd like to see the focus on docs and dependencies first.
> >>>>>> Then incorporation of WAN and CQ features.
> >>>>>>
> >>>>>> --
> >>>>>> Mike Stolz
> >>>>>> Principal Engineer, GemFire Product Manager
> >>>>>> Mobile: 631-835-4771
> >>>>>>
> >>>>>> On Fri, Jan 29, 2016 at 12:26 PM, Nitin Lamba <[email protected]>
> >>> wrote:
> >>>>>>
> >>>>>>> Thought of starting a separate thread to discuss next release
> >>> scope. So
> >>>>>>> far we have the following suggestions:
> >>>>>>>
> >>>>>>> Dan:
> >>>>>>> - GEODE-823 - remove gemfire-joptsimple, gemfire-json, rename to
> >>>> geode-,
> >>>>>>> other misc issues
> >>>>>>> - GEODE-818 - clean up dependencies
> >>>>>>> - GEODE-572 - generate public javadocs (part of GEODE-54)
> >>>>>>> - GEODE-33 - create project examples
> >>>>>>>
> >>>>>>> John:
> >>>>>>> - GEODE-27 - fix POM dependencies - related to RC feedback above
> >>>>>>> (GEODE-818)
> >>>>>>>
> >>>>>>> Few left-over from prior discussions:
> >>>>>>>
> >>>>>>> - GEODE-386 - fixing xsd namespace to Apache
> >>>>>>> - GEODE-36 - fixing gfsh cli (Removing GemFire references)
> >>>>>>> - GEODE-37 - package re-naming
> >>>>>>>
> >>>>>>> Some of these are big ticket items so we may have to space these
> out
> >>>>>>> across Milestones.
> >>>>>>>
> >>>>>>> ACTION: Please suggest on this thread OR edit the wiki page[1] so
> >>> that
> >>>>>>> JIRA [2] can be prioritized accordingly.
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> Nitin
> >>>>>>>
> >>>>>>> [1]
> >>>>>>>
> >>>>>>
> >>>>
> >>>
> https://cwiki.apache.org/confluence/display/GEODE/1.0.0-incubating.M2+%28Second%29+Release
> >>>>>>> [2]
> >>>>>>>
> >>>>>>
> >>>>
> >>>
> https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=92&view=planning
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >>
> >> --
> >> -John
> >> 503-504-8657
> >> john.blum10101 (skype)
> >>
> >
> >
> >
> > --
> > -John
> > 503-504-8657
> > john.blum10101 (skype)
>
>


-- 
-John
503-504-8657
john.blum10101 (skype)

Reply via email to