[hibernate-dev] [OGM] Embedded MongoDB for tests

Emmanuel Bernard emmanuel at hibernate.org
Tue Jul 9 04:13:25 EDT 2013


Custom configuration is not something you would exercise for example.
I'm talking about hostname, ports, the ability to forbid plain "table"
scan.

Gunnar's proposal for an additional slave job only running the mongodb
module with the non embedded mode seems the easiest solution.

Emmanuel

On Tue 2013-07-09  9:58, Hardy Ferentschik wrote:
> I just don't get the point. AFAIU the embedded version is nothing else than a downloaded mongodb,
> installed in a given directory and started by the plugin. Where is the difference to a "proper"
> mongodb instance? Installing MongoDB is nothing else than getting the distribution and running the
> daemon. The only difference I can see is that on a production machine you would run mongodb as 
> a service and probably monitor it, but that is imo not relevant in this scenario.
> 
> --Hardy
> 
> 
> On 9 Jan 2013, at 8:36 AM, Gunnar Morling <gunnar at hibernate.org> wrote:
> 
> > 2013/7/8 Sanne Grinovero <sanne at hibernate.org>
> > 
> >> On 8 July 2013 11:08, Gunnar Morling <gunnar at hibernate.org> wrote:
> >>> 2013/7/8 Sanne Grinovero <sanne at hibernate.org>
> >>>> 
> >>>> Nice!
> >>>> now a tricky question: how can I get the tests to run both with
> >>>> embedded and external on CI?
> >>>> 
> >>>> I guess I need two jobs :-(
> >>> 
> >>> 
> >>> Yes, as of know, you'd need two jobs. If really needed, one could
> >> probably
> >>> make it run against both by configuring several surefire executions.
> >>> 
> >>> But why would you want to do that? As said, AFAICS there is no functional
> >>> difference between both "modes", so I think having CI run one of it
> >> should
> >>> be good enough.
> >> 
> >> I'm sure there is no difference for the tests, but we need to make
> >> sure both approaches work today and stay working: I want to test the
> >> infrastructure code of the testsuite.
> >> 
> >> Personally I'll likely stick to using an external MongoDB server so I
> >> would not be able to detect if someone broke the build on the embedded
> >> one.
> >> 
> > 
> > We could add another build step to the existing CI job which only runs the
> > tests of the "mongodb" module against an external instance.
> > 
> > That way we would have the "it just works" experience out of the box via
> > the embedded mode, and on CI it would still be ensured that both modes
> > work. The CI job would run a bit longer, but I think that's acceptable and
> > the set up is easier than with two separate jobs. WDYT?
> > 
> > 
> >> 
> >> Sanne
> >> 
> >>> 
> >>> 
> >>>> 
> >>>> 
> >>>> On 8 July 2013 11:01, Gunnar Morling <gunnar at hibernate.org> wrote:
> >>>>> Hi,
> >>>>> 
> >>>>> I've submitted PR #197 [1] for OGM-295.
> >>>>> 
> >>>>> This makes the "mongodb" module part of the OGM build by default,
> >>>>> executing
> >>>>> the tests on an "embedded" MongoDB instance. "Embedded" means in this
> >>>>> context, that the original distribution *.tar.gz is retrieved from
> >>>>> mongodb.org, unpacked and an external mongodb process is started
> >> before
> >>>>> and
> >>>>> stopped after test execution.
> >>>>> 
> >>>>> To run tests alternatively against an external MongoDB installation,
> >> the
> >>>>> "useExternalMongoDb" property can be specified like this:
> >>>>> 
> >>>>>    mvn clean install -DuseExternalMongoDb
> >>>>> 
> >>>>> This will skip launching/stopping of the embedded instance and expect
> >> a
> >>>>> running instance on MONGODB_HOSTNAME:MONGODB_PORT as before.
> >>>>> 
> >>>>> --Gunnar
> >>>>> 
> >>>>> [1] https://github.com/hibernate/hibernate-ogm/pull/197
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 2013/7/4 Sanne Grinovero <sanne at hibernate.org>
> >>>>>> 
> >>>>>> Thanks!
> >>>>>> 
> >>>>>> On 4 July 2013 11:26, Gunnar Morling <gunnar at hibernate.org> wrote:
> >>>>>>> Thanks, Sanne, for creating the issue. I can do that, already
> >>>>>>> assigned
> >>>>>>> it to
> >>>>>>> me.
> >>>>>>> 
> >>>>>>> --Gunnar
> >>>>>>> 
> >>>>>>> 
> >>>>>>> 
> >>>>>>> 2013/7/4 Sanne Grinovero <sanne at hibernate.org>
> >>>>>>>> 
> >>>>>>>> Created as
> >>>>>>>> https://hibernate.atlassian.net/browse/OGM-295
> >>>>>>>> 
> >>>>>>>> volunteers?
> >>>>>>>> 
> >>>>>>>> 
> >>>>>>>> On 28 June 2013 10:20, Hardy Ferentschik <hardy at hibernate.org>
> >>>>>>>> wrote:
> >>>>>>>>> 
> >>>>>>>>> On 28 Jan 2013, at 11:15 AM, Emmanuel Bernard
> >>>>>>>>> <emmanuel at hibernate.org>
> >>>>>>>>> wrote:
> >>>>>>>>> 
> >>>>>>>>>> I wonder how you can debug things though and look at the
> >> content
> >>>>>>>>>> outside
> >>>>>>>>>> your tests? I guess you would install a regular mongodb on a
> >>>>>>>>>> different
> >>>>>>>>>> port.
> >>>>>>>>> 
> >>>>>>>>> Right, for active development and/or debugging it makes probably
> >>>>>>>>> sense
> >>>>>>>>> to have a regular
> >>>>>>>>> mongodb instance.
> >>>>>>>>> 
> >>>>>>>>> I see the use case more in simple execution of the build
> >> including
> >>>>>>>>> unit
> >>>>>>>>> tests on any machine.
> >>>>>>>>> Also easier to get started for anyone new to the project.
> >>>>>>>>> 
> >>>>>>>>> --Hardy
> >>>>>>>>> 
> >>>>>>>>> 
> >>>>>>>>> _______________________________________________
> >>>>>>>>> hibernate-dev mailing list
> >>>>>>>>> hibernate-dev at lists.jboss.org
> >>>>>>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >>>>>>>> _______________________________________________
> >>>>>>>> hibernate-dev mailing list
> >>>>>>>> hibernate-dev at lists.jboss.org
> >>>>>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >>>>>>> 
> >>>>>>> 
> >>>>> 
> >>>>> 
> >>> 
> >>> 
> >> 
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> 
> 
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev


More information about the hibernate-dev mailing list