As an example of #1...

I could use *Gfsh* (and, in certain cases, myself and other users/customers
alike do start servers with *Gfsh*, [1]) , but alternatively and
conveniently I could launch my servers with (preferably) *Spring Boot* [2]
or even using the GemFire API [3].

All that is needed for [2] and [3] is a Maven POM, like so...

https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/native-gemfire-server/pom.xml#L24-L50

As you can see, to launch [1], I need to figure out my classpath (which is
entirely possible using the Maven POM) but cumbersome and a real PITA...

https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/native-gemfire-server/src/main/resources/geode/bin/start-cluster.gfsh#L13-L28

Additionally, this is rather small and simple example.  A true enterprise
application has literally hundreds of dependencies, not all of which would
be required on the server classpath, but depending on the "feature" used, a
fair amount would need to be on the servers' classpath for any reasonably
practical/realistic application.

-John


[1]
https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/native-gemfire-server/src/main/resources/geode/bin/start-cluster.gfsh
[2]
https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/spring-gemfire-server/src/main/java/example/app/gemfire/server/SpringGemFireServerApplication.java#L44-L61
[3]
https://github.com/jxblum/spring-session-data-gemfire-serialization-example/blob/master/native-gemfire-server/src/main/java/example/app/gemfire/server/NativeGemFireServerApplication.java


On Thu, Feb 28, 2019 at 10:35 AM John Blum <jb...@pivotal.io> wrote:

> Dan-
>
> 2 things:
>
> 1) Users and customers (alike), in certain cases, do launch Geode Servers
> using Spring Boot, either with java -jar and a FAT JAR or other ways.
>
> 2) I have been saying for sometime now that I think it would be nice to be
> able to launch a server using a classpath configured with a Maven POM file,
> sort of like...
>
> gfsh> start server --name=X --maven-pom=/path/to/maven/pom.xml
>
> --mave-pom would set the server classpath accordingly and reliably.  All
> too often, users/customers miss critical dependencies on the cluster
> servers' classpath, especially transitive dependencies, that are required
> by their application artifacts: custom CacheLoaders, Functions, etc.
>
> Food for thought.
>
> -John
>
>
>
>
> On Thu, Feb 28, 2019 at 10:22 AM Dan Smith <dsm...@pivotal.io> wrote:
>
>> Currently, geode servers just have a flat classpath with all of the
>> dependencies of all of the modules. Having the ability to add optional
>> modules sounds like a good feature, though.
>>
>> John - what you are describing applies to maven dependencies - and I do
>> think that we should isolate optional features into separate maven
>> dependencies like geode-lucene. But that doesn't help with servers
>> launched
>> through gfsh start server unless we provide a way to configure which geode
>> modules are present on the server's classpath.
>>
>> -Dan
>>
>> On Thu, Feb 28, 2019 at 10:03 AM John Blum <jb...@pivotal.io> wrote:
>>
>> > Well, that just requires that you appropriately declare dependencies
>> with
>> > the "optionality" and "scope" (e.g. "compile", "test", "provided", etc).
>> >
>> > Additionally, Geode modules could selectively pull in the required deps
>> as
>> > needed.  For example, `geode-lucene` would only pull in the Apache
>> Lucene
>> > dependencies if the `geode-lucene` module is used.
>> >
>> > No brainer.
>> >
>> > On Thu, Feb 28, 2019 at 9:47 AM Charlie Black <cbl...@pivotal.io>
>> wrote:
>> >
>> > > Hopefully, we are thinking about classpath of the server and lazily
>> > adding
>> > > these jars only when a feature is turned on.
>> > >
>> > > On Thu, Feb 28, 2019 at 9:45 AM Dan Smith <dsm...@pivotal.io> wrote:
>> > >
>> > > > I see that geo, grumpy-core, and commons math came from adding
>> > geospatial
>> > > > support to redis -
>> > > >
>> > > >
>> > >
>> >
>> https://github.com/apache/geode/commit/7bf02251fd047cb1cf575c01b80a9807108618da
>> > > >
>> > > > -Dan
>> > > >
>> > > > On Thu, Feb 28, 2019 at 9:41 AM Anthony Baker <aba...@pivotal.io>
>> > wrote:
>> > > >
>> > > > > Looks a number of the new dependencies came in transitively with
>> the
>> > > > guava
>> > > > > version bump.
>> > > > >
>> > > > > > On Feb 27, 2019, at 5:32 PM, Anthony Baker <aba...@pivotal.io>
>> > > wrote:
>> > > > > >
>> > > > > > I was reviewing the release branch and noticed a number of new
>> > > > > dependencies have been added since the last release.  When you
>> add a
>> > > new
>> > > > > dependency, please review and follow the project license guide
>> [1].
>> > In
>> > > > > particular, update the LICENSE file in
>> geode-assembly/src/main/dist
>> > > > > depending on the license type.
>> > > > > >
>> > > > > > Currently we need to update the LICENSE file with the additional
>> > > > > MIT/BSD/CDDL dependencies.  We may also need to update NOTICE
>> files.
>> > > > > There’s also a version conflict with multiple versions of Jackson
>> in
>> > > use
>> > > > > (2.9.6 / 2.9.8).
>> > > > > >
>> > > > > > @Sai - these need to be fixed on release/1.9.0
>> > > > > >
>> > > > > > Here’s the list of additions:
>> > > > > >
>> > > > > >       animal-sniffer-annotations-1.17.jar
>> > > > > >       checker-qual-2.5.2.jar
>> > > > > >       commons-math3-3.2.jar
>> > > > > >       error_prone_annotations-2.2.0.jar
>> > > > > >       failureaccess-1.0.jar
>> > > > > >       geo-0.7.1.jar
>> > > > > >       grumpy-core-0.2.2.jar
>> > > > > >       istack-commons-runtime-2.2.jar
>> > > > > >       j2objc-annotations-1.1.jar
>> > > > > >       javax.activation-1.2.0.jar
>> > > > > >       javax.activation-api-1.2.0.jar
>> > > > > >       jsr305-3.0.2.jar
>> > > > > >
>> >  listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
>> > > > > >
>> > > > > > Removed:
>> > > > > >
>> > > > > >       activation-1.1.1
>> > > > > >       jaxb-core-2.2.11.jar
>> > > > > >
>> > > > > > Anthony
>> > > > > >
>> > > > > > [1]
>> > > > >
>> > > >
>> > >
>> >
>> https://cwiki.apache.org/confluence/display/GEODE/License+Guide+for+Contributors
>> > > > > <
>> > > > >
>> > > >
>> > >
>> >
>> https://cwiki.apache.org/confluence/display/GEODE/License+Guide+for+Contributors
>> > > > > >
>> > > > > >
>> > > > >
>> > > > >
>> > > >
>> > >
>> > >
>> > > --
>> > > Charlie Black | cbl...@pivotal.io
>> > >
>> >
>> >
>> > --
>> > -John
>> > john.blum10101 (skype)
>> >
>>
>
>
> --
> -John
> john.blum10101 (skype)
>


-- 
-John
john.blum10101 (skype)

Reply via email to