| New Project: Dynamic-JPA |
|
| Written by Valery Abu-Eid | |
| Friday, 31 October 2008 20:35 | |
|
Well... Not sure if Friday evening is the right time to announce a new project (besides, an interesting one), but since I finished the overview page only today, I guess there is no choice. Speaking about our project, did you ever feel like using JPA dynamically in an OSGi-based application but got distracted by the much code to be written and countless application design options? If yes, then look no further. Dynamic-JPA was developed for this sole purpose. Like most of the projects at DynamicJava.org, Dynamic-JPA is built ground-up, its code was extracted from OSGi-based applications that proved to be most efficient in terms of using JPA dynamically in OSGi Environments. Prior to developing Dynamic-JPA I was working on few OSGi-based applications which used JPA, since I worked on them sequentially, for each of them I tried concepts that I thought could leverage the dynamic use of JPA, some of the tested concept failed, some proved to be inefficient, others passed, the ones that passed were applied alongside new ideas and concepts to the next application, and so on, until I reached a level where JPA was simply running dynamically in the OSGi Environment, switching JPA implementations, changing databases, updating configurations and cache settings and all of that was done at runtime without my application being affected. The only problem with the solution was that it's tied to a concrete application, so I extracted its code and kept upgrading it until I reached a level where it appeared to be efficient in terms of development and reuse. The result of my effort was Dynamic-JPA, using it you can use JPA dynamically in OSGi Environments with only 3-10 lines of code in which all you will need to do is consuming an OSGi Service. I worked hard on making sure that developers who work with Dynamic-JPA will not need to set custom manifest headers, provide XML configuration files or consume new classes, Dynamic-JPA is transparent to applications that use it, as such, developers will continue coding naturally using the JPA and OSGi APIs they used to work without the need to use 3rd party classes provided by Dynamic-JPA. That said, if a developer who uses Dynamic-JPA finds another solution which proves to be more efficient, all he needs to do is to uninstall Dynamic-JPA bundle and install the new solution (of course, this is in the case that the new solution doesn't require custom efforts like Dynamic-JPA does), the same goes for updates, if a newer version of Dynamic-JPA becomes available, all you need to do it to install the newer bundle then remove the old one. You can take a look at the Overview Page where an example application that demonstrates the use of Dynamic-JPA is presented. I know that there are already efforts in integrating JPA and Hibernate with OSGi, but this is the first project which is reusable, efficient from both funtional and development perspectives and provides an example application which not only proves what it claims but also is runnable even by non-java developers. |