[hibernate-issues] [Hibernate-JIRA] Closed: (HHH-1124) Provide factory for IoC container configuration

Steve Ebersole (JIRA) noreply at atlassian.com
Mon Mar 21 13:00:40 EDT 2011


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Ebersole closed HHH-1124.
-------------------------------


Closing stale resolved issues

> Provide factory for IoC container configuration
> -----------------------------------------------
>
>                 Key: HHH-1124
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1124
>             Project: Hibernate Core
>          Issue Type: New Feature
>          Components: core
>            Reporter: Christian Bauer
>            Assignee: Steve Ebersole
>            Priority: Minor
>
> I remember an issue back in the H2 days about this, but couldn't find  it again.
> We should provide an IoC configuration factory, out-of-the-box in Hibernate, very similar to what Seam has right now:
> public class HibernateFactory {
>     private String cfgResourceName;
>     private Properties cfgProperties;
>     private Hashtable jndiProperties;
>     private List<String> mappingClasses;
>     private List<String> mappingFiles;
>     private List<String> mappingJars;
>     private List<String> mappingPackages;
>     private List<String> mappingResources;
>     public Object buildSessionFactory() throws Exception {
>         AnnotationConfiguration acfg = new AnnotationConfiguration();
>         // Programmatic configuration
>         if (cfgProperties != null) {
>             acfg.setProperties(cfgProperties);
>         }
>         // Prefix regular JNDI properties for Hibernate
>         if (jndiProperties != null) {
>             for (Iterator it = jndiProperties.entrySet().iterator(); it.hasNext();) {
>                 Map.Entry entry = (Map.Entry)it.next();
>                 acfg.setProperty(Environment.JNDI_PREFIX + "." + entry.getKey(),
>                                  (String)entry.getValue() );
>             }
>         }
>         // hibernate.cfg.xml configuration
>         if (cfgProperties == null && cfgResourceName == null) {
>             acfg.configure();
>         } else if (cfgProperties == null && cfgResourceName != null) {
>             acfg.configure(cfgResourceName);
>         }
>         // Mapping metadata
>         if (mappingClasses != null)
>             for(String className: mappingClasses)
>                 acfg.addAnnotatedClass(ReflectHelper.classForName(className));
>         if (mappingFiles != null)
>             for(String fileName: mappingFiles)
>                 acfg.addFile(fileName);
>         if (mappingJars != null)
>             for(String jarName: mappingJars)
>                 acfg.addJar( new File(jarName) );
>         if (mappingPackages != null)
>             for(String packageName: mappingPackages)
>                 acfg.addPackage(packageName);
>         if (mappingResources != null)
>             for(String resourceName: mappingResources)
>                 acfg.addResource(resourceName);
>         return acfg.buildSessionFactory();
>     }
>     public String getCfgResourceName() {
>         return cfgResourceName;
>     }
>     public void setCfgResourceName(String cfgFileName) {
>         this.cfgResourceName = cfgFileName;
>     }
>     public Properties getCfgProperties() {
>         return cfgProperties;
>     }
>     public void setCfgProperties(Properties cfgProperties) {
>         this.cfgProperties = cfgProperties;
>     }
>     public List<String> getMappingClasses() {
>         return mappingClasses;
>     }
>     public void setMappingClasses(List<String> mappingClasses) {
>         this.mappingClasses = mappingClasses;
>     }
>     public List<String> getMappingFiles() {
>         return mappingFiles;
>     }
>     public void setMappingFiles(List<String> mappingFiles) {
>         this.mappingFiles = mappingFiles;
>     }
>     public List<String> getMappingJars() {
>         return mappingJars;
>     }
>     public void setMappingJars(List<String> mappingJars) {
>         this.mappingJars = mappingJars;
>     }
>     public List<String> getMappingPackages() {
>         return mappingPackages;
>     }
>     public void setMappingPackages(List<String> mappingPackages) {
>         this.mappingPackages = mappingPackages;
>     }
>     public List<String> getMappingResources() {
>         return mappingResources;
>     }
>     public void setMappingResources(List<String> mappingResources) {
>         this.mappingResources = mappingResources;
>     }
>     public Hashtable getJndiProperties() {
>         return jndiProperties;
>     }
>     public void setJndiProperties(Hashtable jndiProperties) {
>         this.jndiProperties = jndiProperties;
>     }
> }
> (The reason for the separate jndiProperties is simple: We inject the same properties as for the JBoss Microcontainer, without the hibernate.* prefix.)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list