KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > ejb3 > entity > EntityManagerFactoryLoader


1 /*
2  * JBoss, the OpenSource J2EE webOS
3  *
4  * Distributable under LGPL license.
5  * See terms of license at gnu.org.
6  */

7 package org.jboss.ejb3.entity;
8
9 import java.io.InputStream JavaDoc;
10 import java.util.List JavaDoc;
11 import java.util.Properties JavaDoc;
12 import javax.persistence.EntityManagerFactory;
13 import org.hibernate.ejb.HibernatePersistence;
14 import org.hibernate.ejb.xml.PersistenceXml;
15 import org.hibernate.cfg.Environment;
16
17 /**
18  * Comment
19  *
20  * @author <a HREF="mailto:bill@jboss.org">Bill Burke</a>
21  * @version $Revision: 1.1.2.3 $
22  */

23 public class EntityManagerFactoryLoader
24 {
25    public static EntityManagerFactory loadFactory(PersistenceXml xml, List JavaDoc<InputStream JavaDoc> hbmXmlFiles, List JavaDoc<String JavaDoc> packages, List JavaDoc<Class JavaDoc> classes, Properties JavaDoc props)
26    {
27       if (xml != null && xml.jtaDatasource != null)
28       {
29          props.put(Environment.DATASOURCE, xml.jtaDatasource);
30       }
31       return loadFactory(hbmXmlFiles, packages, classes, props);
32    }
33
34    public static EntityManagerFactory loadFactory(List JavaDoc<InputStream JavaDoc> hbmXmlFiles, List JavaDoc<String JavaDoc> packages, List JavaDoc<Class JavaDoc> classes, Properties JavaDoc props)
35    {
36       Properties JavaDoc copy = new Properties JavaDoc();
37       copy.putAll(props);
38
39       // Third-party vendors are just gonna have to conform to these APIs
40
if (classes != null) copy.put(HibernatePersistence.LOADED_CLASSES, classes);
41       if (packages != null) copy.put(HibernatePersistence.PACKAGE_NAMES, packages);
42       if (hbmXmlFiles != null) copy.put(HibernatePersistence.HBXML_FILES, hbmXmlFiles);
43       HibernatePersistence provider = new HibernatePersistence();
44       return provider.createEntityManagerFactory(copy);
45    }
46 }
47
Popular Tags