KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > util > workflow > hibernate > InfoglueHibernateWorkflowStore


1 package org.infoglue.cms.util.workflow.hibernate;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.Map JavaDoc;
5
6 import org.infoglue.cms.applications.workflowtool.util.InfogluePropertySet;
7 import org.infoglue.deliver.util.CacheController;
8
9 import net.sf.hibernate.SessionFactory;
10
11 import com.opensymphony.module.propertyset.PropertySet;
12 import com.opensymphony.module.propertyset.PropertySetManager;
13 import com.opensymphony.module.propertyset.cached.CachingPropertySet;
14 import com.opensymphony.workflow.StoreException;
15 import com.opensymphony.workflow.spi.hibernate.HibernateWorkflowStore;
16
17
18 /**
19  * Quickfix
20  */

21 public class InfoglueHibernateWorkflowStore extends HibernateWorkflowStore {
22     /**
23      *
24      */

25     private SessionFactory sessionFactory;
26     
27     /**
28      *
29      */

30     public InfoglueHibernateWorkflowStore() {}
31
32     /**
33      *
34      */

35     public InfoglueHibernateWorkflowStore(SessionFactory sessionFactory) throws StoreException {
36         super(sessionFactory);
37         this.sessionFactory = sessionFactory;
38     }
39
40     
41
42     /**
43      *
44      */

45     public void init(Map JavaDoc props) throws StoreException {
46         sessionFactory = (SessionFactory) props.get("sessionFactory");
47         super.init(props);
48     }
49
50     /**
51      *
52      */

53     public PropertySet getPropertySet(long entryId) {
54         
55         String JavaDoc key = "psCache_" + entryId;
56         PropertySet ps = (PropertySet)CacheController.getCachedObject("propertySetCache", key);
57         
58         if(ps == null)
59         {
60             HashMap JavaDoc args = new HashMap JavaDoc();
61             args.put("entityName", "OSWorkflowEntry");
62             args.put("entityId", new Long JavaDoc(entryId));
63     
64             InfoglueDefaultHibernateConfigurationProvider configurationProvider = new InfoglueDefaultHibernateConfigurationProvider();
65             configurationProvider.setSessionFactory(sessionFactory);
66     
67             args.put("configurationProvider", configurationProvider);
68     
69             
70             ps = new CachingPropertySet();
71             
72             Map JavaDoc args2 = new HashMap JavaDoc();
73             args2.put("PropertySet", PropertySetManager.getInstance("hibernate", args));
74             args2.put("bulkload", new Boolean JavaDoc(true));
75             
76             ps.init(new HashMap JavaDoc(), args2);
77             
78             CacheController.cacheObject("propertySetCache", key, ps);
79             //logger.info("Caching propertySet for entry: " + entryId + ":" + ps);
80

81             ps = PropertySetManager.getInstance("hibernate", args);
82             
83         }
84         
85         return ps;
86     }
87 }
88
Popular Tags