[ http://issues.apache.org/jira/browse/JCR-78?page=comments#action_61350 ]
     
Simon Brunner commented on JCR-78:
----------------------------------

I added an attribute 'configurationFile' to the HibernatePersistenceManager to 
be able to set the name of the optional configuration file. In my example, the 
file 'hibernate_repo_web.cfg.xml' contains the mappings adjusted for the 
repository 'websites'.

The configuration would look like this:

<PersistenceManager 
class="org.apache.jackrabbit.core.state.orm.hibernate.HibernatePersistenceManager">
    <param name="configurationFile" value="/hibernate_repo_web.cfg.xml" />
</PersistenceManager>


Suggested patch for HibernatePersistenceManager:

+++ HibernatePersistenceManager.java    2005/03/21 19:55:01
@@ -58,18 +58,41 @@
     private static Logger log = 
Logger.getLogger(HibernatePersistenceManager.class);
 
     private SessionFactory sessionFactory;
+    
+    /**
+     * An optional reference to a Hibernate configuration file.
+     */
+    private String configurationFile = null;
 
     public HibernatePersistenceManager() {
     }
 
     /**
+     * @return Returns the configurationFile.
+     */
+    public String getConfigurationFile() {
+        return configurationFile;
+    }
+    
+    /**
+     * @param configurationFile The configurationFile to set.
+     */
+    public void setConfigurationFile(String configurationFile) {
+        this.configurationFile = configurationFile;
+    }  
+    
+    /**
      * @see org.apache.jackrabbit.core.state.PersistenceManager#init
      */
     public void init(PMContext context) throws Exception {
         try {
             // Create the SessionFactory
-            sessionFactory = new Configuration().configure().
-                buildSessionFactory();
+            if (configurationFile != null && configurationFile.length() > 0) {
+                sessionFactory = new 
Configuration().configure(configurationFile).buildSessionFactory();
+            } else {
+                sessionFactory = new Configuration().configure().
+                    buildSessionFactory();
+            }
         } catch (Throwable ex) {
             log.error("Initial SessionFactory creation failed.", ex);
             throw new ExceptionInInitializerError(ex);

> contrib/orm-persistence: Configuration-Attribute for 
> HibernatePersistenceManager
> --------------------------------------------------------------------------------
>
>          Key: JCR-78
>          URL: http://issues.apache.org/jira/browse/JCR-78
>      Project: Jackrabbit
>         Type: Improvement
>  Environment: JCR client applications with more than one repository using the 
> HibernatePersistenceManager implementation in contrib/orm-persistence.
>     Reporter: Simon Brunner
>     Priority: Trivial
>  Attachments: hpm_patch.txt
>
> Some applications use more than one repository. Magnolia CMS 
> (www.magnolia.info) for example uses four repositories to store the websites, 
> roles, users and the configuration independently. In my opinion, a small 
> modification to the HibernatePersistenceManager located in 
> contrib/orm-persistence would allow to specify an optional Hibernate 
> configuration-file for each HibernatePersistenceManager configured within the 
> same application (instead of having a global Hibernate mapping-file for the 
> whole application). This would give us the possibility to use unique table 
> prefixes for every repository (when stored into the same database/db-schema) 
> or to use different databases/schemas for each repository.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to