cmailleux    2005/10/19 14:54:43 CEST

  Modified files:
    core/src/java/org/jahia/hibernate/dao 
                                          JahiaContainerListDAO.java 
                                          JahiaFieldsDataDAO.java 
    core/src/java/org/jahia/hibernate/manager 
                                              JahiaAuditLogManager.java 
    core/src/java/org/jahia/services/audit 
                                           JahiaDBAuditLogManagerService.java 
                                           LoggingEventListener.java 
  Log:
  Add logging of activation event
  
  Revision  Changes    Path
  1.9       +1 -1      
jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java.diff?r1=1.8&r2=1.9&f=h
  1.20      +1 -1      
jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java.diff?r1=1.19&r2=1.20&f=h
  1.6       +1 -1      
jahia/core/src/java/org/jahia/hibernate/manager/JahiaAuditLogManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaAuditLogManager.java.diff?r1=1.5&r2=1.6&f=h
  1.9       +89 -16    
jahia/core/src/java/org/jahia/services/audit/JahiaDBAuditLogManagerService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/audit/JahiaDBAuditLogManagerService.java.diff?r1=1.8&r2=1.9&f=h
  1.2       +30 -2     
jahia/core/src/java/org/jahia/services/audit/LoggingEventListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/audit/LoggingEventListener.java.diff?r1=1.1&r2=1.2&f=h
  
  
  
  Index: JahiaContainerListDAO.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JahiaContainerListDAO.java        17 Oct 2005 15:13:57 -0000      1.8
  +++ JahiaContainerListDAO.java        19 Oct 2005 12:54:42 -0000      1.9
  @@ -279,7 +279,7 @@
       public List getNonDeletedContainerListIdsInPage(Integer pageId) {
           List retval = null;
           String hql = "select distinct l.comp_id.id, l.comp_id.workflowState 
from JahiaContainerList l where l.pageid=? " +
  -                     "and l.comp_id.workflowState >=1 and 
l.comp_id.versionId <> -1 " +
  +                     "and l.comp_id.versionId <> -1 " +
                        "order by l.comp_id.workflowState desc";
           if (pageId != null) {
               final HibernateTemplate template = getHibernateTemplate();
  
  
  
  Index: JahiaFieldsDataDAO.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- JahiaFieldsDataDAO.java   17 Oct 2005 15:13:57 -0000      1.19
  +++ JahiaFieldsDataDAO.java   19 Oct 2005 12:54:42 -0000      1.20
  @@ -233,7 +233,7 @@
       public List findNonDeletedFieldsIdInPage(Integer pageId) {
           List retVal = null;
           String hql = "select distinct f.comp_id.id,f.comp_id.workflowState 
from JahiaFieldsData f " +
  -                     "where f.pageId=? and f.comp_id.workflowState>=1 and 
f.comp_id.versionId <> -1 " +
  +                     "where f.pageId=? and f.comp_id.versionId <> -1 " +
                        "order by f.comp_id.workflowState desc";
           if (pageId != null) {
               final HibernateTemplate template = getHibernateTemplate();
  
  
  
  Index: JahiaAuditLogManager.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaAuditLogManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JahiaAuditLogManager.java 3 Aug 2005 12:37:20 -0000       1.5
  +++ JahiaAuditLogManager.java 19 Oct 2005 12:54:43 -0000      1.6
  @@ -87,7 +87,7 @@
   
                   // Children can be CONTAINER...
               case LoggingEventListener.CONTAINERLIST_TYPE:
  -                list = 
containerDAO.getNonDeletedStagingContainerIdsFromList(new Integer(objectID));
  +                list = containerDAO.getAllContainerIdsFromList(new 
Integer(objectID));
                   integer = new Integer(JahiaObjectTool.CONTAINER_TYPE);
                   fillListWithArrayOfIntegers(list, integer, retList);
                   break;
  
  
  
  Index: JahiaDBAuditLogManagerService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/audit/JahiaDBAuditLogManagerService.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JahiaDBAuditLogManagerService.java        30 Sep 2005 17:24:37 -0000      
1.8
  +++ JahiaDBAuditLogManagerService.java        19 Oct 2005 12:54:43 -0000      
1.9
  @@ -52,10 +52,18 @@
   import org.jahia.params.ProcessingContext;
   import org.jahia.services.pages.JahiaPage;
   import org.jahia.services.pages.JahiaPageDefinition;
  +import org.jahia.services.pages.ContentPage;
   import org.jahia.services.sites.JahiaSite;
   import org.jahia.services.usermanager.JahiaUser;
  +import org.jahia.services.fields.ContentField;
  +import org.jahia.services.containers.ContentContainer;
  +import org.jahia.services.containers.ContentContainerList;
   import org.jahia.utils.JahiaObjectTool;
   import org.jahia.hibernate.manager.JahiaAuditLogManager;
  +import org.jahia.content.ContentFieldKey;
  +import org.jahia.content.ContentContainerKey;
  +import org.jahia.content.ContentContainerListKey;
  +import org.jahia.content.ContentPageKey;
   
   
   public class JahiaDBAuditLogManagerService extends 
JahiaAuditLogManagerService {
  @@ -308,16 +316,35 @@
                       return ((JahiaPageDefinition)je.getObject ()).getID ();
                   default:
                       throw new JahiaException (MSG_INTERNAL_ERROR,
  -                            "Incompatible Object Type passed to 
JahiaAuditLogManager",
  -                            JahiaException.SERVICE_ERROR,
  -                            JahiaException.CRITICAL_SEVERITY);
  +                                              "Incompatible Object Type 
passed to JahiaAuditLogManager",
  +                                              JahiaException.SERVICE_ERROR,
  +                                              
JahiaException.CRITICAL_SEVERITY);
               }
           } catch (Exception e) {
  -            logger.debug ("EXCEPTION MESSAGE :" + e.getMessage ());
  -            throw new JahiaException (MSG_INTERNAL_ERROR,
  -                    "Exception occurred while retrieving Event Object ID",
  -                    JahiaException.SERVICE_ERROR,
  -                    JahiaException.CRITICAL_SEVERITY);
  +            try {
  +                switch (objectType) {
  +
  +                    case FIELD_TYPE:
  +                        return ((ContentFieldKey) 
je.getObject()).getIdInType();
  +                    case CONTAINER_TYPE:
  +                        return ((ContentContainerKey) 
je.getObject()).getIdInType();
  +                    case CONTAINERLIST_TYPE:
  +                        return ((ContentContainerListKey) 
je.getObject()).getIdInType();
  +                    case PAGE_TYPE:
  +                        return ((ContentPageKey) 
je.getObject()).getIdInType();
  +                    default:
  +                        throw new JahiaException(MSG_INTERNAL_ERROR,
  +                                                 "Incompatible Object Type 
passed to JahiaAuditLogManager",
  +                                                 
JahiaException.SERVICE_ERROR,
  +                                                 
JahiaException.CRITICAL_SEVERITY);
  +                }
  +            } catch (Exception e1) {
  +                logger.debug("EXCEPTION MESSAGE :" + e1.getMessage());
  +                throw new JahiaException(MSG_INTERNAL_ERROR,
  +                                         "Exception occurred while 
retrieving Event Object ID",
  +                                         JahiaException.SERVICE_ERROR,
  +                                         JahiaException.CRITICAL_SEVERITY);
  +            }
           }
       } // end getObjectID
   
  @@ -375,16 +402,62 @@
   
                   default:
                       throw new JahiaException (MSG_INTERNAL_ERROR,
  -                            "Incompatible Object Type passed to 
JahiaAuditLogManager",
  -                            JahiaException.SERVICE_ERROR,
  -                            JahiaException.CRITICAL_SEVERITY);
  +                                              "Incompatible Object Type 
passed to JahiaAuditLogManager",
  +                                              JahiaException.SERVICE_ERROR,
  +                                              
JahiaException.CRITICAL_SEVERITY);
               }
           } catch (Exception e) {
  -            logger.debug ("EXCEPTION MESSAGE :" + e.getMessage ());
  -            throw new JahiaException (MSG_INTERNAL_ERROR,
  -                    "Exception occurred while retrieving Event Object ID",
  -                    JahiaException.SERVICE_ERROR,
  -                    JahiaException.CRITICAL_SEVERITY);
  +            try {
  +                int idInType;
  +                switch (objectType) {
  +                    case FIELD_TYPE:
  +                        idInType = ((ContentFieldKey) 
je.getObject()).getIdInType();
  +                        ContentField cf = ContentField.getField(idInType);
  +                        if (cf.getContainerID() == 0) {
  +                            parent[0] = "" + cf.getPageID();
  +                            parent[1] = "" + PAGE_TYPE;
  +                        } else {
  +                            parent[0] = "" + cf.getContainerID();
  +                            parent[1] = "" + CONTAINER_TYPE;
  +                        }
  +                        break;
  +                    case CONTAINER_TYPE:
  +                        idInType = ((ContentContainerKey) 
je.getObject()).getIdInType();
  +                        ContentContainer container = 
ContentContainer.getContainer(idInType);
  +                        parent[0] = "" + 
container.getParentContainerListID();
  +                        parent[1] = "" + CONTAINERLIST_TYPE;
  +                        break;
  +                    case CONTAINERLIST_TYPE:
  +                        idInType = ((ContentContainerListKey) 
je.getObject()).getIdInType();
  +                        ContentContainerList containerList = 
ContentContainerList.getContainerList(idInType);
  +                        if (containerList.getParentContainerID() == 0) {
  +                            parent[0] = "" + containerList.getPageID();
  +                            parent[1] = "" + PAGE_TYPE;
  +                        } else {
  +                            parent[0] = "" + 
containerList.getParentContainerID();
  +                            parent[1] = "" + CONTAINER_TYPE;
  +                        }
  +                        break;
  +                    case PAGE_TYPE:
  +                        idInType = ((ContentPageKey) 
je.getObject()).getIdInType();
  +                        ContentPage contentPage = 
ContentPage.getPage(idInType);
  +                        parent[0] = "" + contentPage.getID();
  +                        parent[1] = "" + PAGE_TYPE;
  +                        break;
  +                    default:
  +                        throw new JahiaException(MSG_INTERNAL_ERROR,
  +                                                 "Incompatible Object Type 
passed to JahiaAuditLogManager",
  +                                                 
JahiaException.SERVICE_ERROR,
  +                                                 
JahiaException.CRITICAL_SEVERITY);
  +                }
  +                return parent;
  +            } catch (Exception e1) {
  +                logger.debug("EXCEPTION MESSAGE :" + e1.getMessage());
  +                throw new JahiaException(MSG_INTERNAL_ERROR,
  +                                         "Exception occurred while 
retrieving Event Object Parent",
  +                                         JahiaException.SERVICE_ERROR,
  +                                         JahiaException.CRITICAL_SEVERITY);
  +            }
           }
       }
   
  
  
  
  Index: LoggingEventListener.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/audit/LoggingEventListener.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LoggingEventListener.java 30 Mar 2004 14:11:52 -0000      1.1
  +++ LoggingEventListener.java 19 Oct 2005 12:54:43 -0000      1.2
  @@ -50,7 +50,14 @@
   import org.jahia.registries.ServicesRegistry;
   import org.jahia.services.pages.JahiaPage;
   import org.jahia.services.pages.JahiaPageDefinition;
  +import org.jahia.services.pages.ContentPage;
  +import org.jahia.services.version.ActivationTestResults;
  +import org.jahia.services.fields.ContentField;
  +import org.jahia.services.containers.ContentContainer;
  +import org.jahia.services.containers.ContentContainerList;
   import org.jahia.utils.JahiaObjectTool;
  +import org.jahia.content.events.ContentActivationEvent;
  +import org.jahia.content.ContentObject;
   
   
   public class LoggingEventListener extends JahiaEventListener {
  @@ -81,12 +88,12 @@
               mAuditLogManager = registry.getJahiaAuditLogManagerService ();
               if (mAuditLogManager == null) {
                   throw new JahiaException (MSG_INTERNAL_ERROR, "User manager 
could not get the Audit Log Manager Service instance.",
  -                        JahiaException.SERVICE_ERROR, 
JahiaException.CRITICAL_SEVERITY);
  +                                          JahiaException.SERVICE_ERROR, 
JahiaException.CRITICAL_SEVERITY);
               }
   
           } else {
               throw new JahiaException (MSG_INTERNAL_ERROR, "User manager 
could not get the Service Registry instance.",
  -                    JahiaException.REGISTRY_ERROR, 
JahiaException.CRITICAL_SEVERITY);
  +                                      JahiaException.REGISTRY_ERROR, 
JahiaException.CRITICAL_SEVERITY);
           }
       } // end constructor
   
  @@ -223,4 +230,25 @@
           }
       }
   
  +    public void contentActivation(ContentActivationEvent theEvent) {
  +        if (theEvent.getActivationTestResults().getStatus() == 
ActivationTestResults.COMPLETED_OPERATION_STATUS) {
  +            ContentObject contentObject = theEvent.getContentObject();
  +            boolean isDeleted = false;
  +            try {
  +                isDeleted = 
contentObject.isDeleted(theEvent.getSaveVersion().getVersionID());
  +            } catch (JahiaException e) {
  +            }
  +            String action = "activation";
  +            if(isDeleted) action = "deletion";
  +            if (contentObject instanceof ContentField) {
  +                mAuditLogManager.logEvent(theEvent, FIELD_TYPE, action+" of 
field");
  +            } else if (contentObject instanceof ContentContainer) {
  +                mAuditLogManager.logEvent(theEvent, CONTAINER_TYPE, action+" 
of container");
  +            } else if (contentObject instanceof ContentContainerList) {
  +                mAuditLogManager.logEvent(theEvent, CONTAINERLIST_TYPE, 
action+" of container list");
  +            } else if (contentObject instanceof ContentPage) {
  +                mAuditLogManager.logEvent(theEvent, PAGE_TYPE, action+" of 
page");
  +            }
  +        }
  +    }
   }
  

Reply via email to