Hi All,
After a longer-than-expected delay, and a few bugfixes, the OpenMRS 1.6 Release Candidate is ready, and available on the prereleases page.
Have at it!
Assuming no bugs, this should become the official release by March 19th.
-Darius
Hi All,
After a longer-than-expected delay, and a few bugfixes, the OpenMRS 1.6 Release Candidate is ready, and available on the prereleases page.
Have at it!
Assuming no bugs, this should become the official release by March 19th.
-Darius
Update: February 18, 2010
I just fixed the last two configuration issues and can now hotswap most classes, jsps, and other resources for both OpenMRS core and OpenMRS modules! See the instructions below.
Update: February 17, 2010
This is AWESOME! With the JRebel configuration (see below), I am now able to hotswap the following resources:
How does JRebel work?You can simply follow the instructions on the JRebel blog or the Reference Manaul included in the JRebel installation zipfile. Here are a few of the resources that were used throughout the process:
JRebel maps your project workspace directly to your running application. When you change any class or resource in your IDE, you can immediately see the change in your application, skipping the build and redeploy phases and reducing the 3-7 weeks your team wastes each year.
JAVA_OPTS="-noverify -javaagent:/var/lib/jrebel/jrebel.jar=org.openmrs.util.OpenmrsClassLoader,org.openmrs.module.ModuleClassLoader -Drebel.log=true $JAVA_OPTS -Xmx512m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewSize=128m -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000"More options can be found in the JRebel Configuration Guide.
<?xml version="1.0" encoding="UTF-8"?>
<application
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.zeroturnaround.com"
xsi:schemaLocation="http://www.zeroturnaround.com http://www.zeroturnaround.com/alderaan/rebel-2_0.xsd">
<classpath>
<dir name="/home/jmiranda/Workspace/openmrs-1.6.x-trunk/build"></dir>
<dir name="/home/jmiranda/Workspace/module-reporting-trunk/build"></dir>
<dir name="/home/jmiranda/Workspace/module-serialization.xstream/build"></dir>
<dir name="/home/jmiranda/Workspace/module-htmlwidgets/build"></dir>
</classpath>
<web>
<link target="WEB-INF/">
<dir name="/home/jmiranda/Workspace/openmrs-1.6.x-trunk/web/WEB-INF">
<exclude name="**/*.xml"/>
</dir>
</link>
</web>
<web>
<link target="WEB-INF/view/module/reporting/">
<dir name="/home/jmiranda/Workspace/module-reporting-trunk/web/module">
<exclude name="**/*.xml"/>
</dir>
</link>
</web>
</application>
WorkaroundInvalid option -noverify
Cannot parse command line arguments
JRebel: '-noverify' missing, changing/adding/removing constructors will not be enabled!Solution
ERROR - ApplicationDispatcher.invoke(711) |2010-02-13 12:33:48,206| Servlet.service() for servlet jsp threw exception
org.zeroturnaround.javarebel.integration.jasper.JspRemovedException: /WEB-INF/view/module/reporting/reports/manageReportDesigns.jsp
at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java)
at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:333)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:561)
...
ERROR - ContextLoader.initWebApplicationContext(215) |2010-02-13 02:40:39,394| Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: I/O failure during classpath scanning; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/test/context
/support/AbstractTestExecutionListener.class] cannot be opened because it does not exist
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:222)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:201)
...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hL7ServiceTarget' defined in class path resource [applicationContext-service.xml]: Cannot resolve reference to bean 'hL7DAO' while setting bean property 'HL7DAO'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hL7DAO' defined in class path resource [applicationContext-service.xml]: Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'sessionFactory': FactoryBean which is currently in creation returned null from getObject
<web>
<link target="WEB-INF/">
<dir name="/home/jmiranda/Workspace/openmrs-1.6.x-trunk/web/WEB-INF">
<exclude name="**/*.xml"/>
</dir>
</link>
</web>
Hi All,
Apologies, but there was a non-obvious-but-show-stopper bug in the Beta 2 from this morning. The offending code has been removed, and OpenMRS 1.6 Beta 3 is now ready for testing. You can get it here.
Assuming no further major bugs, we should have the release candidate out in a week. We’re looking for one implementation (in addition to AMPATH, who has generously offered) to test out the release candidate in production, so we can be totally sure it’s stable. Let me know if you’re interested in that being you.
-Darius
Hi All,
OpenMRS 1.6 Beta 2 is now ready for testing. You can get it here.
Assuming no major bugs, we should have the release candidate out in a week. We’re looking for one implementation (in addition to AMPATH, who has generously offered) to test out the release candidate in production, so we can be totally sure it’s stable. Let me know if you’re interested in that being you.
-Darius
Hi All,
Thanks to everyone who tested our alpha release of 1.6, we’re releasing 1.6 Beta. You can get it on the downloads page.
We’ve made only two significant changes since the alpha:
You can see the additional trivial changes in the release notes.
We still need to see some further testing of Beta release before we’re ready to move onto a release candidate. And I’m actually going on vacation for a week. So…go ahead and test away so that when I get back we’ll be all set to release.
-Darius
It's been a while since I last updated on the progress of the Facility Data Module. So without farther adieu here we go:
Hi OpenMRS Community,
Our first alpha preview release of OpenMRS 1.6 is ready!
First off, I’d like to thank the 35 developers who contributed code to this release: Agnor, arthurs, ayeung, ball, bmckown, bwolfe, cliff.mcintosh, dfuterman, djazayeri, dthomas, emendez, ewolodzko, hkwathome, jamesm, jmiranda, Keelhaul, Knoll_Frank, luzhuangwei, madanmohan, mkopinsky, mogoodrich, mseaton, msheley, n.nehete, nribeka, Pascal, r0bby, rarcos, rcrichton, samrajni, sunbiz, suneeth, tmdugan, upul, yatitandon
You can read the release notes here or, if you’re impatient, you can go straight to the prerelease downloads page.
Note that this is a PRE-release, intended for testing, and not for production deployment. The changes made in 1.6 are much less invasive than those we made in 1.5, so I expect there to be far fewer bugs, and I expect us to be able to get to beta, or even to a release candidate, within a couple weeks. But to do that we need your help. We need people to install 1.6 alpha, play around with it and look for bugs.
There are three specific things I’d really like to ask for help testing:
A week from today I would like to release an alpha-2 or a beta release, so do your testing sooner rather than later.
Thanks,
Darius
In order to improve the performance of mysql when dealing with large databases, there's a couple of settings that can be tweaked in your my.cnf file (or through a MySQL administration tool). The following line has proven to be the most useful.
innodb_buffer_pool_size = 1G
I've been meaning to write about this improvement for the last few weeks, but I wanted to test it myself first. So far I'm very pleased with the performance improvement (database restore time is down from about 3 hours to about 45 minutes on a ~1.2G database). I haven't tested how this setting affects MySQL during normal execution, but it certainly helps improve performance during backups and restores. So if you find yourself backing up and restoring large MySQL databases, you should test this out. You should (obviously) not set innodb_buffer_pool_size to a value greater than the available memory on your machine.
Thanks to Marc Harrison for the tip.
If you want to read some more about this configuration, I found a couple of blog entries from a few years ago Enjoy!
http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/
More to come ...

OpenMRS is planning a Meet-and-Greet at AMIA 2009 in San Francisco on Tuesday, 17-November, at 7:30 pm. We will meet for drinks at the Urban Tavern next to the Hilton.