Hey Sanne, I started creating the layout for the hibernate-ogm-ehcache module. Now I stumbled on something, given I'm no maven expert, I think might not be quite right: from the parent project, it couldn't resolve the dependency to hibernate-ogm-core, so I first had to install that from the ./hibernate-ogm-core module, so I could build from the root. I think this might not be what is wanted though ... Is there a reason for that ? Or is this some weirdness I experience because I used mvn2 still ? Otherwise I started the module on my fork on github and will work to get something passing tests as soon as possible. Thanks a lot for all these changes! Alex
PS: Also, I started using my Hibernate-core code style, but look like this might use another, right ? On Sun, Dec 4, 2011 at 7:21 PM, Sanne Grinovero <sa...@hibernate.org> wrote: > Hi Greg, > we've implemented all changes in Hibernate OGM which we discussed at > Devoxx to make it easier for you to create a new module and get > started experimenting with an EHCache integration. > > Actually to proof myself correct I've already created a new module, > and removed Infinispan from the main module relegating it in it's own > extension; so while in the main pom and possibly in some comments and > documentation Infinispan might still be mentioned as the "main" > supported engine, it's not the case anymore as far as the > implementation concerns: the tests of the core module are now using a > "spiced" ConcurrentHashMap instead and we'll improve on the docs too > as soon as we actually have an alternative. I hope this will let you > get started quickly, basically you only have to look into the > Infinispan module and think how to best implement the 6 trivial > classes. > > The structure of the testsuite might need some warnings: since the > tests verify the functionality via the user API, we actually want to > re-run all the tests on each database. That's what Hibernate Core > always did, via a couple of properties it switches the JDBC driver and > connection details, just one class cares for the dialect which > encapsulates the database specifics; but most code is well tested > using a single database, so by default the testsuite runs H2 only, > while Jenkins re-runs the full testsuite on all supported databases. > In the case of Hibernate OGM, the code which we actually want to test > is the integration with each database, so running tests on only one of > them is not really an option. > To re-run the same testsuite multiple times, and to keep all the > database specific code and dependencies in different modules, we're > hacking a bit around Maven by packaging the testsuite from the main > module and referring to the same tests again in each module. > > Basically I'd suggest to have a look at how the > hibernate-ogm-infinispan module reuses the test code from > hibernate-ogm-core; most of the magic is triggered by the > maven-dependency-plugin in the parent pom.xml and the > org.hibernate.ogm.test.utils.InfinispanTestHelper in the test sources. > > Of course you can add additional EHCache tests as you like in the new > hibernate-ogm-ehcache module, but I'd suggest to reuse all tests from > hibernate-ogm-core. > > We can certainly polish this approach if it doesn't proof sound in > practice, but I hope it's a good way to get started with it. It should > provide some convergence of features across "databases"; if some > feature can really not be implemented we can introduce flags to > disable groups of tests in specific modules; for now there exists one > such flag which disables JTA integration [1] : I'm using it with the > Map implementation as I didn't implement transactional support on it. > In theory you could introduce more such flags if you really need to > disable some other tests, but that would be the least desirable option > as we hope to provide a consistent behaviour across different backing > databases as much as possible. > > The basic build information can be found here: > http://docs.jboss.org/hibernate/ogm/3.0/reference/en-US/html/ogm-howtocontribute.html > > For any question, we're looking forward to help you! > > Regards, > Sanne > > 1 - > org.hibernate.ogm.test.utils.TestableGridDialect.backendSupportsTransactions() -- Alex Snaps <alex.sn...@gmail.com> Senior Software Engineer - Terracotta http://twitter.com/alexsnaps http://www.linkedin.com/in/alexsnaps _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev