[jbosstools-dev] BIRT Deployment
Snjezana Peco
snjezana.peco at redhat.com
Wed Jun 11 21:21:24 EDT 2008
There is a problem with deploying a BIRT web project when using
Hibernate. Hibernate classes can't be loaded from within the OSGi
framework because they have already been loaded with web classloader.
It is possible to solve this issue in several ways:
1) Using JNDI JDBC datasource.
It is necessary to create a separate session factory within OSGi; the
ODA plugin has to contain Hibernate libraries. In my opinion, this is
the worst solution and I skipped it.
2) Using JNDI SessionFactory and reflection.
The server has to bind the SessionFactory in JNDI, using
<property name="hibernate.session_factory_name"
value="java:/[ODA_DATASOURCE_NAME]"/>
in the persistence.xml file, for instance.
I have implemented this solution.
3) Creating a Session Facade Bean that would execute and analyze a query
for clients (BIRT OSGi engine)
This solution can be easily implemented, but requires an EJB environment.
4) Injecting web classloader into OSGi bundles using Adaptor Hooks
(http://wiki.eclipse.org/index.php/Adaptor_Hooks). I haven't implemented
this method yet, but think that the problem can be solved this way. I
will try it ASAP.
I have committed the org.jboss.tools.birt.core plugin that fixes the
BIRT facet (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=235206)
and changed the o.j.t.b.oda and o.j.t.b.oda.ui plugins in order to
implement solution #2.
Tested using Ganymede RC2.
Snjeza
More information about the jbosstools-dev
mailing list