Author: tdraier
Date: Thu Sep 20 12:53:59 2007
New Revision: 18573

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18573&repname=
=3Djahia
Log:
only call selected engines when updating container ( JAHIA-2252 )

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/updatecont=
ainer/UpdateContainer_Engine.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/upda=
tecontainer/UpdateContainer_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/updatecontainer/UpdateContainer_Eng=
ine.java&rev=3D18573&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/updatecont=
ainer/UpdateContainer_Engine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/updatecont=
ainer/UpdateContainer_Engine.java Thu Sep 20 12:53:59 2007
@@ -398,6 +398,13 @@
         JahiaContainer theContainer =3D jahiaContentContainerFacade.getCon=
tainer(elh.getPreviousEntryLoadRequest(), true);
         engineMap.put("theContainer", theContainer);
 =

+        Set allProcessedScreen =3D (Set) engineMap.get("allProcessedScreen=
");
+        if (allProcessedScreen =3D=3D null) {
+            allProcessedScreen =3D new HashSet();
+            engineMap.put("allProcessedScreen", allProcessedScreen);
+        }
+        allProcessedScreen.add(lastScreen);
+
         if (lastScreen.equals("edit")) {
 =

             final FieldsEditHelper feh =3D (FieldsEditHelper) engineMap.ge=
t(
@@ -629,6 +636,7 @@
                 ManageImportExport.getInstance().handleActions(jParams, mo=
de,
                         engineMap, theContainer.getContentContainer());
             } else if (theScreen.equals("save") || theScreen.equals("apply=
")) {
+                Set allProcessedScreen =3D (Set) engineMap.get("allProcess=
edScreen");
                 final String navigation =3D jParams.getParameter("navigati=
on");
                 final boolean isNavigation =3D navigation !=3D null && nav=
igation.length() > 0;
                 final String lastScreen =3D jParams.getParameter("lastscre=
en");
@@ -671,7 +679,7 @@
                 }
                 // #endif
 =

-                if (ProcessingContext.isMultipartRequest(((ParamBean) jPar=
ams).getRequest())) {
+                if (allProcessedScreen.contains("import") && ProcessingCon=
text.isMultipartRequest(((ParamBean) jParams).getRequest())) {
                     if (ManageImportExport.getInstance().handleActions(jPa=
rams, JahiaEngine.SAVE_MODE,
                             engineMap, theContainer.getContentContainer())=
) {
                         if (theScreen.equals("apply")) {
@@ -695,14 +703,18 @@
 =

                 mode =3D JahiaEngine.VALIDATE_MODE;
 =

-                EngineValidationHelper evh =3D ManageRights.getInstance().=
handleActions(jParams, mode, engineMap,
-                        theContainer.getAclID(), null, null, sameAcl,theCo=
ntainer.getContentContainer().getObjectKey().toString());
+                EngineValidationHelper evh =3D null;
 =

-                if (evh !=3D null && evh.hasErrors()) {
-                    engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER, ev=
h);
-                    engineMap.put("screen", "rightsMgmt");
-                    engineMap.put("jspSource", TEMPLATE_JSP);
-                    return evh;
+                if (allProcessedScreen.contains("rightsMgmt")) {
+                    evh =3D ManageRights.getInstance().handleActions(jPara=
ms, mode, engineMap,
+                            theContainer.getAclID(), null, null, sameAcl,t=
heContainer.getContentContainer().getObjectKey().toString());
+
+                    if (evh !=3D null && evh.hasErrors()) {
+                        engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER=
, evh);
+                        engineMap.put("screen", "rightsMgmt");
+                        engineMap.put("jspSource", TEMPLATE_JSP);
+                        return evh;
+                    }
                 }
 =

                 evh =3D AddContainer_Engine.validate(
@@ -746,12 +758,15 @@
                     JahiaContainerDefinition def =3D theContainer.getDefin=
ition();
                     objectKey[0] =3D def.getObjectKey();
                 }
-                evh =3D Metadata_Engine.getInstance().handleActions(jParam=
s, mode, objectKey[0]);
-                if (evh !=3D null && evh.hasErrors()) {
-                    engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER, ev=
h);
-                    engineMap.put("screen", evh.getNextScreen());
-                    engineMap.put("jspSource", TEMPLATE_JSP);
-                    return evh;
+
+                if (allProcessedScreen.contains("metadata")) {
+                    evh =3D Metadata_Engine.getInstance().handleActions(jP=
arams, mode, objectKey[0]);
+                    if (evh !=3D null && evh.hasErrors()) {
+                        engineMap.put(JahiaEngine.ENGINE_VALIDATION_HELPER=
, evh);
+                        engineMap.put("screen", evh.getNextScreen());
+                        engineMap.put("jspSource", TEMPLATE_JSP);
+                        return evh;
+                    }
                 }
 =

                 engineMap.remove(JahiaEngine.ENGINE_VALIDATION_HELPER);
@@ -787,13 +802,16 @@
                     final JahiaContainerList theList =3D servicesRegistry.=
getJahiaContainersService().
                             loadContainerListInfo(theContainer.getListID()=
, loadVersion);
 =

-                    // save workflow
-                    if (!ManageWorkflow.getInstance().handleActions(jParam=
s, mode,
-                            engineMap, theContainer.getContentContainer())=
) {
-                        engineMap.put("screen", "workflow");
-                        engineMap.put("jspSource", TEMPLATE_JSP);
-                        return null;
+                    if (allProcessedScreen.contains("workflow")) {
+                        // save workflow
+                        if (!ManageWorkflow.getInstance().handleActions(jP=
arams, mode,
+                                engineMap, theContainer.getContentContaine=
r())) {
+                            engineMap.put("screen", "workflow");
+                            engineMap.put("jspSource", TEMPLATE_JSP);
+                            return null;
+                        }
                     }
+
                     // 0 for parentAclID in saveContainerInfo, because con=
tainer already exists
                     //  -> container already has an aclID
                     //  -> no need to create a new one
@@ -803,7 +821,7 @@
                     saveFields(theContainer, jahiaContentContainerFacade, =
feh, jParams, mode, engineMap);
 =

                     // save rights
-                    if (engineMap.get("adminAccess") !=3D null) {
+                    if (allProcessedScreen.contains("rightsMgmt") && engin=
eMap.get("adminAccess") !=3D null) {
                         engineMap.put("logObjectType", Integer.toString(Lo=
ggingEventListener.CONTAINER_TYPE));
                         engineMap.put("logObject", theContainer);
                         //ViewRights.getInstance().handleActions( jParams,=
 mode, engineMap, theContainer.getAclID() );
@@ -829,24 +847,30 @@
                         // cut points though.
                     }
 =

-                    if (engineMap.get("writeAccess") !=3D null || engineMa=
p.get("adminAccess") !=3D null) {
-                        objectKey[0] =3D null;
-                        ContentContainer contentContainer =3D ContentConta=
iner.getContainer(theContainer.getID());
-                        objectKey[0] =3D contentContainer.getObjectKey();
-                        TimeBasedPublishingEngine.getInstance().handleActi=
ons(jParams, mode, engineMap, objectKey[0]);
-                    } else {
-                        throw new JahiaForbiddenAccessException();
+                    if (allProcessedScreen.contains("timeBasedPublishing")=
) {
+                        if ((engineMap.get("writeAccess") !=3D null || eng=
ineMap.get("adminAccess") !=3D null)) {
+                            objectKey[0] =3D null;
+                            ContentContainer contentContainer =3D ContentC=
ontainer.getContainer(theContainer.getID());
+                            objectKey[0] =3D contentContainer.getObjectKey=
();
+                            TimeBasedPublishingEngine.getInstance().handle=
Actions(jParams, mode, engineMap, objectKey[0]);
+                        } else {
+                            throw new JahiaForbiddenAccessException();
+                        }
                     }
 =

-                    // save categories
-                    ManageCategories.getInstance().handleActions(jParams, =
mode, engineMap,
-                            new ContentContainerKey(jahiaContentContainerF=
acade.getContainerID()),
-                            theContainer.getDefinition(), false);
+                    if (allProcessedScreen.contains("categories")) {
+                        // save categories
+                        ManageCategories.getInstance().handleActions(jPara=
ms, mode, engineMap,
+                                new ContentContainerKey(jahiaContentContai=
nerFacade.getContainerID()),
+                                theContainer.getDefinition(), false);
+                    }
 =

                     flushPageCacheThatDisplayContainer(jParams, theContain=
er);
 =

                     // save metadata
-                    Metadata_Engine.getInstance().handleActions(jParams, m=
ode, objectKey[0]);
+                    if (allProcessedScreen.contains("metadata")) {
+                        Metadata_Engine.getInstance().handleActions(jParam=
s, mode, objectKey[0]);
+                    }
 =

                     // Only fire the event if at least 1 field in the cont=
ainer has been updated
                     if (jParams.getSessionState().getAttribute("FireContai=
nerUpdated") !=3D null) {

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to