joelittlejohn / embedmongo-maven-plugin

Maven plugin wrapper for the flapdoodle.de embedded MongoDB API
Apache License 2.0
88 stars 51 forks source link

Nicely support Mongo versions flapdoodle doesn't yet support #78

Closed glajchs closed 5 years ago

glajchs commented 6 years ago

Basically the list of "features" to use for mongo, and therefore things like command line arguments, comes from a Version.java file in flapdoodle, but the kicker is that the version needs to match exactly. Since the latest flapdoodle in the maven central repo (2.0.3) only supports 3.6.2, when I specify 3.6.5, we can't match the enum, and therefore no "features" are specified.

Right now this results in the "--nohttpinterface" option being passed to the mongod process, which is invalid in 3.6.x, and mongo doesn't start propertly.

If we instead "downgrade" unknown versions, we could for instance borrow the config for the 3.6.2 version and apply it to the 3.6.5 actual binary, which I think would work fine.

I tried to get the flapdoodle folks to support this at their level, but that doesn't seem like it's going to happen: https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo/issues/255

For now I've worked around this by using 3.6.2 in our tests instead of 3.6.5, but this is less than ideal as we are trying to vet upgrading to 3.6.5, and would like to test with the same version.

joelittlejohn commented 6 years ago

Hi @glajchs. Do you have any idea what kind of change you would propose to this library to fix this problem?

glajchs commented 6 years ago

Actually I think I've implemented what I was looking for in our fork. I'll submit a pull request.

glajchs commented 6 years ago

I opened a pull request with my changes. https://github.com/joelittlejohn/embedmongo-maven-plugin/pull/79

glajchs commented 6 years ago

Nevermind, my changes don't actually work. Looks like flapdoodle is where this needs to happen.

joelittlejohn commented 5 years ago

Closing this but we will keep #81 open