I was comparing our required dependencies of geode-core for the M3 vs. M2 release (Anything with compile or runtime scope in the pom and not marked optional). It looks like they are pretty similar, with the below differences.
Removed in M3: geode-joptsimple Added in M3: shiro-core commons-beanutils (required by shiro) jopt-simple Should any of these new additions be marked optional, or maybe have the dependent code moved out of core? All required runtime dependencies of geode-core: antlr:antlr:2.7.7 com.fasterxml.jackson.core:jackson-annotations:2.2.0 com.fasterxml.jackson.core:jackson-core:2.2.0 com.fasterxml.jackson.core:jackson-databind:2.2.0 com.github.stephenc.findbugs:findbugs-annotations:1.3.9-1 commons-beanutils:commons-beanutils:1.8.3 commons-io:commons-io:2.3 commons-lang:commons-lang:2.5 commons-logging:commons-logging:1.2 it.unimi.dsi:fastutil:7.0.2 javax.resource:javax.resource-api:1.7 javax.transaction:javax.transaction-api:1.2 net.java.dev.jna:jna:4.0.0 net.sf.jopt-simple:jopt-simple:5.0.1 org.apache.geode:geode-common:1.0.0-incubating.M3 org.apache.geode:geode-json:1.0.0-incubating.M3 org.apache.logging.log4j:log4j-api:2.6.1 org.apache.logging.log4j:log4j-core:2.6.1 org.apache.logging.log4j:log4j-jcl:2.6.1 org.apache.logging.log4j:log4j-jul:2.6.1 org.apache.logging.log4j:log4j-slf4j-impl:2.6.1 org.apache.shiro:shiro-core:1.2.4 org.fusesource.jansi:jansi:1.8 org.jgroups:jgroups:3.6.10.Final org.slf4j:slf4j-api:1.7.21 -Dan