Author: knguyen
Date: Wed Aug 16 18:37:38 2006
New Revision: 14921
URL: https://svndev.jahia.net/websvn/listing.php?sc=1&rev=14921&repname=jahia
Log:
more caches on jahiaobject access
Modified:
trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java
trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml
Modified:
trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
URL:
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java&rev=14921&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java
(original)
+++ trunk/core/src/java/org/jahia/hibernate/manager/JahiaObjectManager.java Wed
Aug 16 18:37:38 2006
@@ -164,6 +164,7 @@
try {
delegate =
convertJahiaObjectToJahiaObjectDelegate(ObjectKey.getInstance(hibJahiaObject.getComp_id().getKey()),
hibJahiaObject);
+ addJahiaObjectDelegateInCache(delegate);
result.add(delegate);
} catch (Throwable t) {
}
@@ -197,6 +198,7 @@
try {
jahiaObjectDelegate =
convertJahiaObjectToJahiaObjectDelegate(jObj.toJahiaObject().getObjectKey(),jObj);
if ( jahiaObjectDelegate != null ){
+ addJahiaObjectDelegateInCache(jahiaObjectDelegate);
retList.add(jahiaObjectDelegate);
}
} catch ( Throwable t ){
@@ -206,15 +208,33 @@
}
public org.jahia.content.JahiaObject getJahiaObject(ObjectKey key) {
- JahiaObject hibJahiaObject = dao.findByPK(new
JahiaObjectPK(key.getType(),new Integer(key.getIDInType())));
- if ( hibJahiaObject != null ){
+
+ org.jahia.content.JahiaObject jahiaObject = null;
+ if(cache==null) {
try {
- return hibJahiaObject.toJahiaObject();
- } catch ( Throwable t){
- log.debug("Error loading JahiaObject", t);
+ cache = cacheService.createCacheInstance(CACHE_NAME);
+ } catch (JahiaInitializationException e) {
+ e.printStackTrace(); //To change body of catch statement use
File | Settings | File Templates.
}
}
- return null;
+ String entryKey = CACHE_KEY_PREFIX + key;
+ if(cache!=null) {
+ jahiaObject = (org.jahia.content.JahiaObject) cache.get(entryKey);
+ }
+ if(jahiaObject==null) {
+ JahiaObject hibJahiaObject = dao.findByPK(new
JahiaObjectPK(key.getType(),new Integer(key.getIDInType())));
+ if ( hibJahiaObject != null ){
+ try {
+ jahiaObject = hibJahiaObject.toJahiaObject();
+ } catch ( Throwable t){
+ log.debug("Error loading JahiaObject", t);
+ }
+ if(jahiaObject!=null){
+ cache.put(entryKey,jahiaObject);
+ }
+ }
+ }
+ return jahiaObject;
}
public void delete(ObjectKey key) {
@@ -250,6 +270,24 @@
return jahiaObjectDelegate;
}
+ public void addJahiaObjectDelegateInCache(JahiaObjectDelegate
jahiaObjectDelegate){
+ if ( jahiaObjectDelegate == null ){
+ return;
+ }
+ if(cache==null) {
+ try {
+ cache = cacheService.createCacheInstance(CACHE_NAME);
+ } catch (JahiaInitializationException e) {
+ e.printStackTrace(); //To change body of catch statement use
File | Settings | File Templates.
+ }
+ }
+ String entryKey = OBJECTDELEGATE_KEY_PREFIX +
jahiaObjectDelegate.getObjectKey();
+ if(cache!=null) {
+ cache.put(entryKey,jahiaObjectDelegate);
+ jahiaObjectDelegate = (JahiaObjectDelegate) cache.get(entryKey);
+ }
+ }
+
/**
* Returns the JahiaObjectDelegate instance that owns the given rule
* @param ruleId
@@ -261,8 +299,10 @@
return null;
}
try {
- return
convertJahiaObjectToJahiaObjectDelegate(hibJahiaObject.getComp_id().toObjectKey(),
+ JahiaObjectDelegate delegate =
convertJahiaObjectToJahiaObjectDelegate(hibJahiaObject.getComp_id().toObjectKey(),
hibJahiaObject);
+ addJahiaObjectDelegateInCache(delegate);
+ return delegate;
} catch ( Throwable t){
logger.debug("Error converting JahiaObject to
JahiaObjectDelegate",t);
}
@@ -271,6 +311,7 @@
public void save(JahiaObjectDelegate delegate){
JahiaObject hibJahiaObject = null;
+
try {
hibJahiaObject = dao.findByPK(new
JahiaObjectPK(delegate.getObjectKey().getType(),
new Integer(delegate.getObjectKey().getIDInType())));
@@ -407,8 +448,8 @@
public void flushCache(JahiaObjectPK key) {
if(cache != null) {
synchronized(cache){
- cache.remove(CACHE_KEY_PREFIX+key);
try {
+ cache.remove(CACHE_KEY_PREFIX+key.toObjectKey());
cache.remove(OBJECTDELEGATE_KEY_PREFIX+key.toObjectKey());
} catch (ClassNotFoundException e) {
e.printStackTrace(); //To change body of catch statement
use File | Settings | File Templates.
Modified:
trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java
URL:
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java&rev=14921&repname=jahia
==============================================================================
---
trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java
(original)
+++
trunk/core/src/java/org/jahia/hibernate/manager/JahiaRetentionRuleManager.java
Wed Aug 16 18:37:38 2006
@@ -46,6 +46,8 @@
private JahiaRetentionRuleDAO dao = null;
private JahiaObjectDAO jahiaObjectDAO = null;
+ private JahiaObjectManager jahiaObjectManager = null;
+
private Log log = LogFactory.getLog(JahiaRetentionRuleManager.class);
// --------------------- GETTER / SETTER METHODS ---------------------
@@ -62,6 +64,14 @@
this.jahiaObjectDAO = jahiaObjectDAO;
}
+ public JahiaObjectManager getJahiaObjectManager() {
+ return jahiaObjectManager;
+ }
+
+ public void setJahiaObjectManager(JahiaObjectManager jahiaObjectManager) {
+ this.jahiaObjectManager = jahiaObjectManager;
+ }
+
public List getJahiaRetentionRules() {
List list = dao.getRetentionRules();
return fillList(list);
@@ -98,24 +108,11 @@
}
public RetentionRule getRetentionRuleByObjectKey(ObjectKey objectKey) {
- org.jahia.hibernate.model.JahiaObject hibJahiaObject =
jahiaObjectDAO.findByPK(new JahiaObjectPK(
- objectKey.getType(),new Integer(objectKey.getIDInType())));
- if ( hibJahiaObject == null ){
+ JahiaObjectDelegate jahiaObjectDelegate =
jahiaObjectManager.getJahiaObjectDelegate(objectKey);
+ if ( jahiaObjectDelegate == null ){
return null;
}
- JahiaRetentionRule jahiaRetentionRule = null;
- try {
- jahiaRetentionRule = hibJahiaObject.getRetentionRule();
- } catch ( Throwable t) {
- }
- if ( jahiaRetentionRule != null ){
- try {
- return jahiaRetentionRule.getRetentionRule();
- } catch (Exception e) {
- log.warn("Could not create retention rule ",e);
- }
- }
- return null;
+ return jahiaObjectDelegate.getRule();
}
public JahiaRetentionRule getDetachedJahiaRetentionRuleById(int id) {
Modified:
trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml
URL:
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml&rev=14921&repname=jahia
==============================================================================
--- trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml
(original)
+++ trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-manager.xml Wed
Aug 16 18:37:38 2006
@@ -478,6 +478,9 @@
<property name="jahiaObjectDAO">
<ref bean="jahiaObjectDAO"/>
</property>
+ <property name="jahiaObjectManager">
+ <ref
bean="org.jahia.hibernate.manager.JahiaObjectManager"/>
+ </property>
</bean>
</property>
</bean>