Author: tdraier
Date: Mon Jun 25 14:36:15 2007
New Revision: 17741

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D17741&repname=
=3Djahia
Log:
improt/export workfow modes ( backport 17333 )

Modified:
    trunk/core/src/java/org/jahia/engines/importexport/ExportEngine.java
    trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java
    trunk/core/src/java/org/jahia/services/importexport/ImportExportService=
.java
    trunk/core/src/java/org/jahia/services/importexport/ImportHandler.java
    trunk/core/src/java/org/jahia/services/workflow/WorkflowService.java

Modified: trunk/core/src/java/org/jahia/engines/importexport/ExportEngine.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/importexport/ExportEngine.java&rev=3D17741&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
--- trunk/core/src/java/org/jahia/engines/importexport/ExportEngine.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/engines/importexport/ExportEngine.java Mo=
n Jun 25 14:36:15 2007
@@ -131,6 +131,7 @@
             params.put(ImportExportService.INCLUDE_ALL_FILES, Boolean.TRUE=
);
             params.put(ImportExportService.INCLUDE_TEMPLATES, Boolean.TRUE=
);
             params.put(ImportExportService.INCLUDE_SITE_INFOS, Boolean.TRU=
E);
+            params.put(ImportExportService.VIEW_WORKFLOW, Boolean.TRUE);
 =

             ie.exportAll(outputStream, params, processingContext);
             outputStream.close();
@@ -154,6 +155,7 @@
             params.put(ImportExportService.INCLUDE_ALL_FILES, Boolean.TRUE=
);
             params.put(ImportExportService.INCLUDE_TEMPLATES, Boolean.TRUE=
);
             params.put(ImportExportService.INCLUDE_SITE_INFOS, Boolean.TRU=
E);
+            params.put(ImportExportService.VIEW_WORKFLOW, Boolean.TRUE);
 =

             ie.exportSites(outputStream, params, processingContext, sites);
             outputStream.close();

Modified: trunk/core/src/java/org/jahia/services/importexport/ImportExportB=
aseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportExportBaseService.java&rev=3D17741&rep=
name=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
--- trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java (original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java Mon Jun 25 14:36:15 2007
@@ -51,6 +51,8 @@
 import org.jahia.params.valves.TokenAuthValveImpl;
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.JahiaService;
+import org.jahia.services.workflow.WorkflowService;
+import org.jahia.services.workflow.ExternalWorkflow;
 import org.jahia.services.acl.ACLNotFoundException;
 import org.jahia.services.acl.JahiaACLEntry;
 import org.jahia.services.acl.JahiaACLException;
@@ -628,6 +630,7 @@
             boolean viewAcl =3D !Boolean.FALSE.equals(params.get(VIEW_ACL)=
);
             boolean viewMetadata =3D !Boolean.FALSE.equals(params.get(VIEW=
_METADATA));
             boolean viewLinks =3D !Boolean.FALSE.equals(params.get(VIEW_JA=
HIALINKS));
+            boolean viewWF =3D !Boolean.FALSE.equals(params.get(VIEW_WORKF=
LOW));
             Set ghost =3D (Set) params.get(GHOST);
 =

             String link =3D (String) params.get(LINK);
@@ -932,6 +935,10 @@
                 exportAcl(acl, "acl", attr, top);
             }
 =

+            if (viewWF) {
+                exportWF(object, attr);
+            }
+
             if (link !=3D null) {
                 attr.addAttribute(JAHIA_URI, "linkkey", "jahia:linkkey", "=
CDATA", object.getObjectKey().toString());
                 attr.addAttribute(JAHIA_URI, "linktype", "jahia:linktype",=
 "CDATA", link);
@@ -1155,6 +1162,61 @@
         }
     }
 =

+    private void exportWF(ContentObject obj, AttributesImpl attr) throws J=
ahiaException {
+        WorkflowService service =3D ServicesRegistry.getInstance().getWork=
flowService();
+
+        Map m =3D service.getDbEntry((ContentObjectKey) obj.getObjectKey()=
);
+        Integer mode =3D (Integer) m.get(WorkflowService.FIELD_MODE);
+        if (mode !=3D null )  {
+            switch(mode.intValue()) {
+                case WorkflowService.INACTIVE:
+                    attr.addAttribute(JAHIA_URI, "workflow", "jahia:workfl=
ow", "CDATA", "inactive");
+                    return;
+                case WorkflowService.JAHIA_INTERNAL:
+                    attr.addAttribute(JAHIA_URI, "workflow", "jahia:workfl=
ow", "CDATA", "internal");
+                    return;
+                case WorkflowService.EXTERNAL:
+                    attr.addAttribute(JAHIA_URI, "workflow", "jahia:workfl=
ow", "CDATA", "external");
+                    String name =3D (String) m.get(WorkflowService.FIELD_E=
XTERNAL_NAME);
+                    String processId =3D (String) m.get(WorkflowService.FI=
ELD_EXTERNAL_PROCESS);
+                    attr.addAttribute(JAHIA_URI, "workflowName", "jahia:wo=
rkflowName", "CDATA", name);
+                    attr.addAttribute(JAHIA_URI, "workflowProcess", "jahia=
:workflowProcess", "CDATA", processId);
+                    ExternalWorkflow workflow =3D service.getExternalWorkf=
low(name);
+                    if (workflow !=3D null) {
+                        final Collection rolesList =3D workflow.getAllActi=
ons(processId);
+                        for (Iterator iterator =3D rolesList.iterator(); i=
terator.hasNext();) {
+                            String role =3D (String) iterator.next();
+                            JahiaGroup grp =3D service.getRoleGroup(obj, r=
ole, false);
+                            if (grp !=3D null) {
+                                Enumeration en =3D grp.members();
+                                String v =3D "";
+                                while (en.hasMoreElements()) {
+                                    Object curMember =3D en.nextElement();
+                                    if (curMember instanceof JahiaUser) {
+                                        JahiaUser user =3D (JahiaUser) cur=
Member;
+                                        v +=3D "|u:"+user.getUsername();
+                                    } else if (curMember instanceof JahiaG=
roup) {
+                                        JahiaGroup group =3D (JahiaGroup) =
curMember;
+                                        v +=3D "|g:"+group.getGroupname();
+                                    }
+                                }
+                                if (v.length()> 0) {
+                                    attr.addAttribute(JAHIA_URI, "workflow=
Role"+role, "jahia:workflowRole"+role, "CDATA", v.substring(1));
+                                }
+                            }
+                        }
+                    }
+                    return;
+                case WorkflowService.INHERITED:
+                    attr.addAttribute(JAHIA_URI, "workflow", "jahia:workfl=
ow", "CDATA", "inherited");
+                    return;
+                case WorkflowService.LINKED:
+                    attr.addAttribute(JAHIA_URI, "workflow", "jahia:workfl=
ow", "CDATA", "linked");
+                    return;
+            }
+        }
+    }
+
     private String getFieldValue(ContentField contentField, Set files, Pro=
cessingContext jParams, ContentObjectEntryState entryState, AttributesImpl =
attr) throws JahiaException {
         String value =3D contentField.getValue(jParams, entryState);
         if ("<empty>".equals(value) || value =3D=3D null) {
@@ -1193,7 +1255,7 @@
                     try {
                         WebAppContext appContext =3D ServicesRegistry.getI=
nstance()
                                 .getApplicationsManagerService()
-                                .getApplicationContext(appID.intValue());
+                                .getApplicationContext(epi.getApplicationI=
D());
                         Vector roles =3D appContext.getRoles();
                         if (roles !=3D null) {
                             JahiaGroupManagerService gMgr =3D ServicesRegi=
stry.getInstance()
@@ -1203,19 +1265,21 @@
                                 String role =3D (String) iterator.next();
                                 String gName =3D appID + "_" + contentFiel=
d.getID() + "_" + role;
                                 JahiaGroup grp =3D gMgr.lookupGroup(0, gNa=
me);
-                                Enumeration en =3D grp.members();
-                                while (en.hasMoreElements()) {
-                                    Object o =3D  en.nextElement();
-                                    if (o instanceof JahiaUser) {
-                                        perms +=3D "|u:" + ((JahiaUser)o).=
getUsername();
-                                    } else if (o instanceof JahiaGroup) {
-                                        perms +=3D "|g:" + ((JahiaGroup)o)=
.getGroupname();
+                                if (grp !=3D null) {
+                                    Enumeration en =3D grp.members();
+                                    while (en.hasMoreElements()) {
+                                        Object o =3D  en.nextElement();
+                                        if (o instanceof JahiaUser) {
+                                            perms +=3D "|u:" + ((JahiaUser=
)o).getUsername();
+                                        } else if (o instanceof JahiaGroup=
) {
+                                            perms +=3D "|g:" + ((JahiaGrou=
p)o).getGroupname();
+                                        }
+                                    }
+                                    if (perms.length() > 0) {
+                                        String attrName =3D role + "Role";
+                                        perms =3D perms.substring(1);
+                                        attr.addAttribute(JAHIA_URI, attrN=
ame, "jahia:" + attrName, "CDATA", perms);
                                     }
-                                }
-                                if (perms.length() > 0) {
-                                    String attrName =3D role + "Role";
-                                    perms =3D perms.substring(1);
-                                    attr.addAttribute(JAHIA_URI, attrName,=
 "jahia:" + attrName, "CDATA", perms);
                                 }
                             }
                         }

Modified: trunk/core/src/java/org/jahia/services/importexport/ImportExportS=
ervice.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportExportService.java&rev=3D17741&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
--- trunk/core/src/java/org/jahia/services/importexport/ImportExportService=
.java (original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportExportService=
.java Mon Jun 25 14:36:15 2007
@@ -80,6 +80,7 @@
     String VIEW_METADATA =3D "metadata";
     String VIEW_JAHIALINKS =3D "links";
     String VIEW_ACL =3D "acl";
+    String VIEW_WORKFLOW =3D "wf";
     String INCLUDED =3D "included";
 =

     // Export

Modified: trunk/core/src/java/org/jahia/services/importexport/ImportHandler=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportHandler.java&rev=3D17741&repname=3Djah=
ia
=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
--- trunk/core/src/java/org/jahia/services/importexport/ImportHandler.java =
(original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportHandler.java =
Mon Jun 25 14:36:15 2007
@@ -72,6 +72,8 @@
 import org.jahia.services.webdav.DAVFileAccess;
 import org.jahia.services.webdav.JahiaWebdavBaseService;
 import org.jahia.services.workflow.WorkflowEvent;
+import org.jahia.services.workflow.WorkflowService;
+import org.jahia.services.workflow.ExternalWorkflow;
 import org.jahia.utils.LanguageCodeConverters;
 import org.jahia.engines.EngineMessage;
 import org.springframework.transaction.support.TransactionTemplate;
@@ -91,6 +93,7 @@
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
 import java.util.prefs.Preferences;
+import java.security.Principal;
 =

 /**
  * Created by IntelliJ IDEA.
@@ -368,7 +371,7 @@
                         ServicesRegistry.getInstance ().getJahiaEventServi=
ce ().fireObjectChanged(theEvent);
 =

                         setAcl(currentObject, atts);
-
+                        setWF(currentObject, atts);
                         if (uuid !=3D null) {
                             setUuid(currentObject, uuid);
                         }
@@ -743,6 +746,7 @@
 =

         if (object !=3D null) {
             setAcl(object, atts);
+            setWF(object, atts);
             String uuid =3D atts.getValue(ImportExportService.JCR_URI, "uu=
id");
             if (uuid !=3D null) {
                 setUuid(object, uuid);
@@ -1108,6 +1112,7 @@
 =

         if (object !=3D null) {
             setAcl(object, atts);
+            setWF(object, atts);
             setMetadata(object, atts);
             setJahiaLinks(object, atts);
 =

@@ -1494,6 +1499,59 @@
         }
     }
 =

+    protected void setWF(ContentObject object, Attributes atts) throws Jah=
iaException {
+        String wf =3D atts.getValue(ImportExportBaseService.JAHIA_URI, "wo=
rkflow");
+        if (wf !=3D null) {
+            WorkflowService service =3D ServicesRegistry.getInstance().get=
WorkflowService();
+            if ("inactive".equals(wf)) {
+                service.setWorkflowMode(object, WorkflowService.INACTIVE, =
null,null,jParams);
+            } else if ("internal".equals(wf)) {
+                service.setWorkflowMode(object, WorkflowService.JAHIA_INTE=
RNAL, null,null,jParams);
+            } else if ("external".equals(wf)) {
+                String name =3D atts.getValue(ImportExportService.JAHIA_UR=
I, "workflowName");
+                String process =3D atts.getValue(ImportExportService.JAHIA=
_URI, "workflowProcess");
+                service.setWorkflowMode(object, WorkflowService.EXTERNAL, =
name, process, jParams);
+                ExternalWorkflow workfow =3D service.getExternalWorkflow(n=
ame);
+                Collection roles =3D workfow.getAllActions(process);
+                for (Iterator iterator =3D roles.iterator(); iterator.hasN=
ext();) {
+                    String role =3D (String) iterator.next();
+                    String v =3D atts.getValue(ImportExportService.JAHIA_U=
RI, "workflowRole"+role);
+                    if (v !=3D null )  {                        =

+                        JahiaGroup g =3D service.getRoleGroup(object, role=
, true);
+                        StringTokenizer st =3D new StringTokenizer(v, "|");
+                        while (st.hasMoreTokens())  {
+                            String principal =3D st.nextToken();
+                            String userName =3D principal.substring(2);
+                            Principal p =3D null;
+                            if (principal.charAt(0) =3D=3D 'u') {
+                                try {
+                                    p =3D ServicesRegistry.getInstance().g=
etJahiaSiteUserManagerService().getMember(site.getID(), userName);
+                                    if (p =3D=3D null) {
+                                        p =3D ServicesRegistry.getInstance=
().getJahiaUserManagerService().lookupUser(userName);
+                                    }
+                                } catch (JahiaException e) {
+                                }
+                            } else {
+                                p =3D ServicesRegistry.getInstance().getJa=
hiaGroupManagerService().lookupGroup(site.getID(), userName);
+                                if (p =3D=3D null) {
+                                    p =3D ServicesRegistry.getInstance().g=
etJahiaGroupManagerService().lookupGroup(userName);
+
+                                }
+                            }
+                            if (p !=3D null ) {
+                                g.addMember(p);
+                            }
+                        }
+                    }
+                }
+            } else if ("inherited".equals(wf)) {
+                service.setWorkflowMode(object, WorkflowService.INHERITED,=
 null,null,jParams);
+            } else if ("linked".equals(wf)) {
+                service.setWorkflowMode(object, WorkflowService.LINKED, nu=
ll,null,jParams);
+            }
+        }
+    }
+
     private void setUuid(ContentObject object, String uuid) throws JahiaEx=
ception {
         if (copyUuid) {
             object.setProperty("originalUuid",uuid);

Modified: trunk/core/src/java/org/jahia/services/workflow/WorkflowService.j=
ava
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/workflow/WorkflowService.java&rev=3D17741&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
--- trunk/core/src/java/org/jahia/services/workflow/WorkflowService.java (o=
riginal)
+++ trunk/core/src/java/org/jahia/services/workflow/WorkflowService.java Mo=
n Jun 25 14:36:15 2007
@@ -839,7 +839,7 @@
     }
 =

 =

-    private Map getDbEntry(ContentObjectKey object) {
+    public Map getDbEntry(ContentObjectKey object) {
         return workflowManager.getWorkflowEntry(object.toString());
     }
 =


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

Reply via email to