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)