Help

Inactive Bloggers

Last night I uploaded two bugfix releases of Hibernate Search stable branches:

  • 4.4.3.Final (Hibernate ORM 4.2 and JPA 2.0 users, JBoss 7.2 and EAP6)
  • 4.5.1.Final (Hibernate ORM 4.3 and JPA 2.1 users, WildFly 8)

They both contain several backported fixes, thanks to the excellent testing efforst of Guillaume Smet and Yoann Rodiere, who found very sophisticated issues and also helped with patches. I now added Yoann as committer too, congratulations!

Details of fixes can be found in the 4.4.3.Final changelog.txt and 4.5.1.Final changelog.txt.

Happy searching!

08. Apr 2014, 22:44 CET, by Brett Meyer

Hibernate ORM 4.2.12.Final was just released! Please see the full changelog for more information: https://hibernate.atlassian.net/secure/ReleaseNote.jspa?projectId=10031&version=16350.

As previously mentioned, 4.3.x is the new stable version and we have shifted focus towards ORM 5.

Another 4.2.x release was necessary due to a few important fixes:

  • HHH-9107: a regression in 4.2.11 broke reading entities from the 2LC under certain circumstances (involving polymorphism)
  • HHH-4700, HHH-6747, and HHH-9100: improved/corrected CASE and CAST statements in HQL
  • HHH-7971: enabling ENABLE_LAZY_LOAD_NO_TRANS would clear collections if they were accessed outside of a transaction
  • HHH-9071: Proxy narrowing loses the initialized state of the original proxy
  • HHH-9078: corrected the use of @OrderColumns on ToMany cascading

JBoss Nexus: https://repository.jboss.org/nexus/content/groups/public/org/hibernate
Maven Central: http://repo1.maven.org/maven2/org/hibernate/hibernate-core (should update in a couple of days)
SourceForge: https://sourceforge.net/projects/hibernate/files/hibernate4
Downloads: 4.2.12.Final ZIP, 4.2.12.Final TGZ

Version 5.0.0.Alpha3 is now available: now integrating with Apache Lucene 4.7.1, which was released just 24 hours before.

<dependency>
 <groupId>org.hibernate</groupId>
 <artifactId>hibernate-search-orm</artifactId>
 <version>5.0.0.Alpha3</version>
</dependency>

More Like This

Introduced and better described on our previous post and in the Query DSL chapter, the new feature now also works with compressed fields and @IndexedEmbedded fields.

OSGi and ClassLoaders

On our path to 5.0 we're aiming to a full internal refactoring of ClassLoaders handling, Service loading strategies, etc.. with the goal to be reliable in complex modular deployments, including OSGi. To reach a full OSGi compatibility some public API packages will need to change in the next version too!

Many smaller details

There is a list of smaller polishing, like more reliable JGroups and Infinispan tests, a diet program for dependencies, updates to latest Hibernate ORM, JGroups and Infinispan versions.

Performance tuning

The primary performance bottleneck I've observed in the new Lucene 4 backend is the need to tune the max_threads_state option on Lucene's IndexWriter. This option controls the level of parallelism you want to allow to the IndexWriter. The default is a very reasonable 8, but this is now configurable using the typical format as expressed in the Lucene Tuning chapter:

hibernate.search.​[default|<indexname>].​indexwriter.max_thread_states 

What's next?

We're currently busy with OSGi tests, an easy way to extend the set of FieldBridges supported by the engine, improved handling of dynamic types and overall structure of how you define your indexed model. Also worth nothing that all of this will be integrated in the Infinispan Query engine soon. You can find an high level overview on our Roadmap page.

02. Apr 2014, 17:28 CET, by Brett Meyer

Hibernate ORM 4.3.5.Final was just released! Please see the full changelog for all the details: https://hibernate.atlassian.net/secure/ReleaseNote.jspa?projectId=10031&version=16251. As usual, big thanks to the community for several contributions!

JBoss Nexus: https://repository.jboss.org/nexus/content/groups/public/org/hibernate
Maven Central: http://repo1.maven.org/maven2/org/hibernate/hibernate-core (should update in a couple of days)
SourceForge: https://sourceforge.net/projects/hibernate/files/hibernate4
Downloads: 4.3.5.Final ZIP, 4.3.5.Final TGZ

What do you get from a 10+ year old open source framework, thousands of users within a wide range of roles, and complexity? A JIRA instance with over 3,000 unresolved tickets ;). Is that number indicative of low software quality? Definitely not. But therein lies the problem. A vast majority of the tickets are no longer issues, no longer relevant, or duplicates. Due to the quantity, it became nearly impossible to weed through them all.

So, recently, I've given some effort towards attempting to clean things up. This has been a combination of manual reviews of tickets, scripts identifying possible duplicates [1], and various forms of JIRA queries that attempt to show stale issues. So far, I've reduced the number of un-assigned, un-resolved tickets by almost 1k. To date, only a few of those have turned up being issues that were still legitimate in ORM 4+.

In addition, I've enacted a few policies that have helped (and will continue to help) tremendously, both for contributors and the community as a whole. Most notably, any new BUG ticket that does not have a provided test case is immediately moved into an Awaiting Test Case state. If nothing is received within around 3 months, we've begun to automatically reject them. Although most contributors generally appreciate reproducers that are either standalone or extend one of ORM's pre-existing unit tests (preferably), at least providing enough detail (entities, mappings, code snippets, etc.) is the bare minimum.

Along the same lines, we've been discussing a possible tactic on the mailing list [2]. We'd like to push all ORM 3 tickets to the Awaiting Test Case state and request a reproducer on ORM 4 or 5. This would affect only BUGs with: 1.) affectsVersions set to ORM 3 only (not ORM 4/5) 2.) unassigned and 3.) not updated in the last 90 days. Those would then fall under our policy of automatically rejecting if the ticket does not receive a test case within 3 months or so. Please see the mailing list for the discussion, as well as the query that would be used. If there are any opinions against giving that a shot, please say so.

It's also worth re-iterating that JIRA should not be used instead of the user forums [3] or Q&A sites like StackOverflow. Please create tickets only for concise issues w/ reproducing test cases (or, of course, new features and possible improvements).

If you're interested in more info about the steps I took during the actual cleanup, a somewhat detailed write-up is here: http://www.3riverdev.com/blog/man-vs-jira-the-3000-issue-tracker-fight

If you have any questions or ideas, please contact me! brmeyer on Freenode IRC is your best bet, as well as comments on this post. Thanks!

[1] https://github.com/3RiverDevelopment/bug-tracker-duplicate-utils
[2] http://lists.jboss.org/pipermail/hibernate-dev/2014-March/011238.html
[3] https://forum.hibernate.org/viewforum.php?f=1

Showing 1 to 5 of 1199 blog entries