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