tdraier     2005/11/09 12:02:44 CET

  Modified files:
    core/src/java/org/jahia/content ContentObject.java 
    core/src/java/org/jahia/services/containers 
                                                ContentContainer.java 
                                                ContentContainerList.java 
    core/src/java/org/jahia/services/fields ContentField.java 
    core/src/java/org/jahia/services/importexport 
                                                  ContentPickerListener.java 
    core/src/java/org/jahia/services/pages ContentPage.java 
    core/src/java/org/jahia/services/workflow 
                                              WorkflowEventListener.java 
  Log:
  added linked copy validation checks
  
  Revision  Changes    Path
  1.25      +28 -1     jahia/core/src/java/org/jahia/content/ContentObject.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/content/ContentObject.java.diff?r1=1.24&r2=1.25&f=h
  1.22      +4 -2      
jahia/core/src/java/org/jahia/services/containers/ContentContainer.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/containers/ContentContainer.java.diff?r1=1.21&r2=1.22&f=h
  1.15      +4 -2      
jahia/core/src/java/org/jahia/services/containers/ContentContainerList.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/containers/ContentContainerList.java.diff?r1=1.14&r2=1.15&f=h
  1.37      +1 -17     
jahia/core/src/java/org/jahia/services/fields/ContentField.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/fields/ContentField.java.diff?r1=1.36&r2=1.37&f=h
  1.18      +15 -0     
jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java.diff?r1=1.17&r2=1.18&f=h
  1.41      +2 -2      
jahia/core/src/java/org/jahia/services/pages/ContentPage.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/pages/ContentPage.java.diff?r1=1.40&r2=1.41&f=h
  1.13      +9 -1      
jahia/core/src/java/org/jahia/services/workflow/WorkflowEventListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/workflow/WorkflowEventListener.java.diff?r1=1.12&r2=1.13&f=h
  
  
  
  Index: ContentObject.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/content/ContentObject.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- ContentObject.java        3 Nov 2005 13:22:21 -0000       1.24
  +++ ContentObject.java        9 Nov 2005 11:02:41 -0000       1.25
  @@ -1164,7 +1164,34 @@
               ProcessingContext jParams,
               StateModificationContext stateModifContext)
               throws JahiaException {
  -        return new ActivationTestResults();
  +        return isPickedValidForActivation(languageCodes, jParams, 
stateModifContext);
  +    }
  +
  +    public ActivationTestResults isPickedValidForActivation (
  +            Set languageCodes,
  +            ProcessingContext jParams,
  +            StateModificationContext stateModifContext)
  +            throws JahiaException {
  +        ActivationTestResults activationTestResults = new 
ActivationTestResults();
  +        ContentObject pickedObject = getPickedObject();
  +        if (pickedObject != null) {
  +            for (Iterator iterator = languageCodes.iterator(); 
iterator.hasNext();) {
  +                String s = (String) iterator.next();
  +                if (pickedObject.getStagingStatus(s) != 
VersioningDifferenceStatus.UNCHANGED) {
  +                    try {
  +                        activationTestResults.setStatus 
(ActivationTestResults.
  +                                FAILED_OPERATION_STATUS);
  +                        activationTestResults.appendError(
  +                                new IsValidForActivationResults 
(getObjectKey().getType(),
  +                                        
Integer.parseInt(getObjectKey().getIDInType()),s,
  +                                        "Source object must be validated"));
  +                    } catch (ClassNotFoundException e) {
  +                        //...
  +                    }
  +                }
  +            }
  +        }
  +        return activationTestResults;
       }
   
       public void setWorkflowState (Set languageCodes,
  
  
  
  Index: ContentContainer.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/containers/ContentContainer.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ContentContainer.java     3 Nov 2005 13:22:26 -0000       1.21
  +++ ContentContainer.java     9 Nov 2005 11:02:42 -0000       1.22
  @@ -881,8 +881,10 @@
               ProcessingContext jParams,
               StateModificationContext stateModifContext)
               throws JahiaException {
  -        return ServicesRegistry.getInstance().getJahiaContainersService 
().isContainerValidForActivation(
  -                languageCodes, getID (), jParams.getUser(), null, jParams, 
stateModifContext);
  +        ActivationTestResults activationTestResults = 
super.isValidForActivation(languageCodes, jParams, stateModifContext);
  +        
activationTestResults.merge(ServicesRegistry.getInstance().getJahiaContainersService
 ().isContainerValidForActivation(
  +                languageCodes, getID (), jParams.getUser(), null, jParams, 
stateModifContext));
  +        return activationTestResults;
       }
   
   
  
  
  
  Index: ContentContainerList.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/containers/ContentContainerList.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- ContentContainerList.java 3 Nov 2005 13:22:26 -0000       1.14
  +++ ContentContainerList.java 9 Nov 2005 11:02:42 -0000       1.15
  @@ -547,8 +547,10 @@
               ProcessingContext jParams,
               StateModificationContext stateModifContext)
               throws JahiaException {
  -        return ServicesRegistry.getInstance().getJahiaContainersService 
().isContainerListValidForActivation(
  -                languageCodes, getID (), jParams.getUser(), null, 
stateModifContext);
  +        ActivationTestResults activationTestResults = 
super.isValidForActivation(languageCodes, jParams, stateModifContext);
  +        
activationTestResults.merge(ServicesRegistry.getInstance().getJahiaContainersService
 ().isContainerListValidForActivation(
  +                languageCodes, getID (), jParams.getUser(), null, 
stateModifContext));
  +        return activationTestResults;
       }
   
   
  
  
  
  Index: ContentField.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/fields/ContentField.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- ContentField.java 3 Nov 2005 13:22:26 -0000       1.36
  +++ ContentField.java 9 Nov 2005 11:02:42 -0000       1.37
  @@ -758,7 +758,7 @@
               ProcessingContext jParams,
               StateModificationContext stateModifContext)
               throws JahiaException {
  -        ActivationTestResults activationTestResults = new 
ActivationTestResults();
  +        ActivationTestResults activationTestResults = 
super.isValidForActivation(languageCodes, jParams, stateModifContext);
           
           int containerId = this.getContainerID();
           ContentContainer contentContainer = null;
  @@ -2053,20 +2053,4 @@
           }
           return super.checkAccess(user, permission);
       }
  -
  -    public String getPagePathString(ProcessingContext context, boolean 
ignoreMetadata) {
  -        if ( !this.isMetadata() ){
  -            return super.getPagePathString(context,ignoreMetadata);
  -        } else {
  -            try {
  -                ContentObject cObj = 
ContentObject.getContentObjectFromMetadata(this.getObjectKey());
  -                if ( cObj != null ){
  -                    return cObj.getPagePathString(context,ignoreMetadata);
  -                }
  -            } catch ( Throwable t ){
  -                logger.warn("Metadata without parent ",t);
  -            }
  -        }
  -        return "";
  -    }
   }
  
  
  
  Index: ContentPickerListener.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- ContentPickerListener.java        2 Nov 2005 15:39:31 -0000       1.17
  +++ ContentPickerListener.java        9 Nov 2005 11:02:42 -0000       1.18
  @@ -14,6 +14,8 @@
   import org.jahia.services.usermanager.JahiaGroup;
   import org.jahia.services.usermanager.JahiaGroupManagerService;
   import org.jahia.content.ContentObject;
  +import org.jahia.content.ObjectKey;
  +import org.jahia.content.events.ContentActivationEvent;
   import org.jahia.registries.ServicesRegistry;
   import org.jahia.params.ProcessingContext;
   import org.jahia.bin.Jahia;
  @@ -131,6 +133,19 @@
           }
       }
   
  +    public void contentActivation(ContentActivationEvent theEvent) {
  +        try {
  +            ContentObject object = (ContentObject) 
ContentObject.getInstance((ObjectKey)theEvent.getObject());
  +//            for (Iterator iterator = 
theEvent.getLanguageCodes().iterator(); iterator.hasNext();) {
  +//                String lang = (String) iterator.next();
  +                WorkflowEvent we = new WorkflowEvent(theEvent.getSource(), 
object, theEvent.getUser(), null, false);
  +                objectChanged(we);
  +//            }
  +        } catch (ClassNotFoundException e) {
  +            e.printStackTrace();  //To change body of catch statement use 
File | Settings | File Templates.
  +        }
  +    }
  +
       private void setUser(ContentObject picker, JahiaSite site, 
ProcessingContext jParams, JahiaUser oldUser) throws JahiaException {
           ContentObject container = picker;
           while (!(container instanceof ContentContainer) && container != 
null) {
  
  
  
  Index: ContentPage.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/pages/ContentPage.java,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- ContentPage.java  3 Nov 2005 13:22:28 -0000       1.40
  +++ ContentPage.java  9 Nov 2005 11:02:43 -0000       1.41
  @@ -3132,7 +3132,7 @@
               ProcessingContext jParams,
               StateModificationContext stateModifContext)
               throws JahiaException {
  -        ActivationTestResults activationTestResults = new 
ActivationTestResults ();
  +        ActivationTestResults activationTestResults = 
super.isValidForActivation(languageCodes, jParams, stateModifContext);
           EntryLoadRequest stagedLoadRequest = new EntryLoadRequest (
                   EntryLoadRequest.STAGING_WORKFLOW_STATE, 0, new ArrayList 
(), false);
           int pageType = getPageType (EntryLoadRequest.STAGED);
  @@ -5179,7 +5179,7 @@
           }
           return pagePath;
       }
  -    
  +
       /*
       * Update all childs content's metadata PAGE_PATH bellow this node
       *
  
  
  
  Index: WorkflowEventListener.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/workflow/WorkflowEventListener.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- WorkflowEventListener.java        2 Nov 2005 15:55:50 -0000       1.12
  +++ WorkflowEventListener.java        9 Nov 2005 11:02:43 -0000       1.13
  @@ -14,6 +14,7 @@
   import org.jahia.services.usermanager.JahiaUserManagerService;
   import org.jahia.services.version.JahiaSaveVersion;
   import org.jahia.services.version.StateModificationContext;
  +import org.jahia.services.version.ActivationTestResults;
   
   import java.util.HashSet;
   import java.util.Iterator;
  @@ -80,7 +81,14 @@
                       boolean versioningActive = site.isVersioningEnabled();
                       JahiaSaveVersion saveVersion = new JahiaSaveVersion 
(true, versioningActive);
                       StateModificationContext stateModifContext = new 
StateModificationContext(mainObject.getObjectKey(), langs, 
descendingInSubPages);
  -                    if (!object.getStagingLanguages(false,true).isEmpty()) {
  +                    ActivationTestResults testActivationResults = 
object.isValidForActivation(langs, jParams, stateModifContext);
  +                    if (!object.getStagingLanguages(false,true).isEmpty() && 
testActivationResults.getStatus() != 
ActivationTestResults.FAILED_OPERATION_STATUS) {
  +                        ContentObject parent = object.getParent(null);
  +                        if (parent != null) {
  +                            if (parent.getPickedObject() != null && 
object.getPickedObject() == null) {
  +                                break;
  +                            }
  +                        }
                           object.activate(langs, versioningActive, 
saveVersion, user, jParams, stateModifContext);
                       }
                       break;
  

Reply via email to