Author: tdraier
Date: Wed Dec 19 17:08:38 2007
New Revision: 19389
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19389&repname=
=3Djahia
Log:
export file repository
Modified:
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/importexport/ImportExportBaseService.java
Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/importexport/ImportExportBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/services/importexport/ImportE=
xportBaseService.java&rev=3D19389&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-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/importexport/ImportExportBaseService.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/importexport/ImportExportBaseService.java Wed Dec 19 17:08:38 2007
@@ -88,9 +88,7 @@
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.w3c.dom.Document;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
+import org.xml.sax.*;
import org.xml.sax.helpers.AttributesImpl;
import org.xml.sax.helpers.DefaultHandler;
=
@@ -268,7 +266,7 @@
=
public void exportAllFilesAcl(OutputStream out, ProcessingContext jPar=
ams) throws JahiaException, SAXException, IOException {
DataWriter dw =3D new DataWriter(new OutputStreamWriter(out, "UTF-=
8"));
- exportAllFilesAcl(dw, jParams);
+ exportAllFilesInfo(dw, jParams);
}
=
public void exportZip(ContentObject object, Set languageCodes, OutputS=
tream out, ProcessingContext jParams, Map params) throws JahiaException, SA=
XException, IOException {
@@ -292,21 +290,19 @@
if (params !=3D null && Boolean.TRUE.equals(params.get(INCLUDE_ALL=
_FILES))) {
files.clear();
JCRStoreService service =3D ServicesRegistry.getInstance().get=
JCRStoreService();
- getAllFiles(service.getFileNode("/shared", jParams.getUser()),=
files);
- getAllFiles(service.getFileNode("/users", jParams.getUser()),f=
iles);
- getAllFiles(service.getFileNode("/groups", jParams.getUser()),=
files);
+ getAllFiles(service.getFileNode("/"+jParams.getSiteKey(), jPar=
ams.getUser()),files);
params.put(INCLUDE_FILES, Boolean.TRUE);
}
=
if (params !=3D null && Boolean.TRUE.equals(params.get(INCLUDE_FIL=
ES))) {
DataWriter dw =3D new DataWriter(new OutputStreamWriter(zout, =
"UTF-8"));
=
- zout.putNextEntry(new ZipEntry("filesacl.xml"));
+ zout.putNextEntry(new ZipEntry("repository.xml"));
=
if (Boolean.TRUE.equals(params.get(INCLUDE_ALL_FILES))) {
- exportAllFilesAcl(dw, jParams);
+ exportAllFilesInfo(dw, jParams);
} else {
- exportFilesAcl(dw, files, jParams);
+ exportFilesInfo(dw, files, jParams);
}
dw.flush();
=
@@ -1738,7 +1734,7 @@
return uuid;
}
=
- private void exportFilesAcl(ContentHandler ch, Set files, ProcessingCo=
ntext jParams) throws SAXException {
+ private void exportFilesInfo(ContentHandler ch, Set files, ProcessingC=
ontext jParams) throws SAXException {
ch.startDocument();
ch.startPrefixMapping("jahia", JAHIA_URI);
ch.endPrefixMapping("jahia");
@@ -1753,45 +1749,20 @@
}
=
ch.startElement(JAHIA_URI, "filesacl", "jahia:filesacl", attr);
+ JCRStoreService jcrStoreService =3D ServicesRegistry.getInstance()=
.getJCRStoreService();
=
for (Iterator iterator =3D files.iterator(); iterator.hasNext();) {
FileNode file =3D (FileNode) iterator.next();
attr =3D new AttributesImpl();
=
attr.addAttribute(JAHIA_URI, "path", "jahia:path", "CDATA", fi=
le.getPath());
-
- Map read =3D file.getPermissions(FileNode.READ);
- Map write =3D file.getPermissions(FileNode.WRITE);
- Map admin =3D file.getPermissions(FileNode.MANAGE);
- Set users =3D new HashSet();
-
- users.addAll(read.keySet());
- users.addAll(write.keySet());
- users.addAll(admin.keySet());
- String perms =3D "";
- for (Iterator iterator1 =3D users.iterator(); iterator1.hasNex=
t();) {
- String key =3D (String) iterator1.next();
- String name =3D getUserForFileAcl(jParams, key);
- if (name !=3D null && name.length() > 0) {
- perms +=3D "|" + name + ":" +
- (((((Integer) read.get(key)).intValue() & File=
Node.GRANTED) =3D=3D 0) ? '-' : 'r') +
- (((((Integer) write.get(key)).intValue() & Fil=
eNode.GRANTED) =3D=3D 0) ? '-' : 'w') +
- (((((Integer) admin.get(key)).intValue() & Fil=
eNode.GRANTED) =3D=3D 0) ? '-' : 'a');
- }
- }
- if (perms.length() > 0) {
- perms =3D perms.substring(1);
- attr.addAttribute(JAHIA_URI, "fileacl", "jahia:fileacl", "=
CDATA", perms);
- }
- exportFileProperties(file, prefixes, attr);
- ch.startElement(JAHIA_URI, "file", "jahia:file", attr);
- ch.endElement(JAHIA_URI, "file", "jahia:file");
+ jcrStoreService.exportDocumentView(file.getPath(), getNoEnding=
ContentHandler(ch), jParams.getUser(), true);
}
ch.endElement(JAHIA_URI, "filesacl", "jahia:fileacl");
ch.endDocument();
}
=
- private void exportAllFilesAcl(ContentHandler ch, ProcessingContext jP=
arams) throws SAXException {
+ private void exportAllFilesInfo(final ContentHandler ch, ProcessingCon=
text jParams) throws SAXException {
ch.startDocument();
ch.startPrefixMapping("jahia", JAHIA_URI);
ch.endPrefixMapping("jahia");
@@ -1810,135 +1781,58 @@
attr =3D new AttributesImpl();
attr.addAttribute(NS_URI, "jahia", "xmlns:jahia", "CDATA", JAHIA_U=
RI);
JCRStoreService jcrStoreService =3D ServicesRegistry.getInstance()=
.getJCRStoreService();
- exportAllFilesAcl(ch, jcrStoreService.getFileNode("/shared", jPara=
ms.getUser()), jParams, prefixes);
- exportAllFilesAcl(ch, jcrStoreService.getFileNode("/users", jParam=
s.getUser()), jParams, prefixes);
- exportAllFilesAcl(ch, jcrStoreService.getFileNode("/groups", jPara=
ms.getUser()), jParams, prefixes);
+ jcrStoreService.exportDocumentView("/"+jParams.getSiteKey(), getNo=
EndingContentHandler(ch), jParams.getUser(), false);
attr.addAttribute(NS_URI, "jahia", "xmlns:jahia", "CDATA", JAHIA_U=
RI);
=
ch.endElement(JAHIA_URI, "filesacl", "jahia:fileacl");
ch.endDocument();
}
=
- private void exportAllFilesAcl(ContentHandler ch, FileNode file, Proce=
ssingContext jParams, Map prefixes) throws SAXException {
- AttributesImpl attr =3D new AttributesImpl();
-
- String path =3D file.getPath();
-
- boolean showAcls =3D true;
- StringTokenizer st =3D new StringTokenizer(path,"/");
- String first =3D st.nextToken();
- if ("users".equals(first) || "groups".equals(first)) {
- if (st.hasMoreTokens()) {
- st.nextToken();
- if (st.hasMoreTokens()) {
- String third =3D st.nextToken();
- if (!st.hasMoreTokens()) {
- if ("members".equals(third) || "mygroups".equals(t=
hird)) {
- //users/root/mygroups
- return;
- } else {
- //users/root/private
- showAcls =3D false;
- }
- }
- } else {
- // /users/root
- showAcls =3D false;
- }
- } else {
- // /users or /groups
- showAcls =3D false;
+ private ContentHandler getNoEndingContentHandler(final ContentHandler =
ch) {
+ ContentHandler noEndingHandler =3D new ContentHandler() {
+ public void setDocumentLocator(Locator locator) {
+ ch.setDocumentLocator(locator);
}
- }
-
-
- attr.addAttribute(JAHIA_URI, "path", "jahia:path", "CDATA", path);
=
- if (showAcls) {
- Map read =3D file.getPermissions(FileNode.READ);
- Map write =3D file.getPermissions(FileNode.WRITE);
- Map admin =3D file.getPermissions(FileNode.MANAGE);
- Set users =3D new HashSet();
-
- users.addAll(read.keySet());
- users.addAll(write.keySet());
- users.addAll(admin.keySet());
- String perms=3D "";
- for (final Iterator iterator =3D users.iterator(); iterator.ha=
sNext();) {
- String key =3D (String) iterator.next();
- String name =3D getUserForFileAcl(jParams, key);
- if (name !=3D null && name.length() > 0) {
- Integer r =3D (Integer) read.get(key);
- if ((r.intValue() & FileNode.SET) =3D=3D FileNode.SET)=
{
- Integer w =3D (Integer) write.get(key);
- Integer a =3D (Integer) admin.get(key);
- perms +=3D "|" + name + ":" +
- (r=3D=3Dnull||((r.intValue() & FileNode.GR=
ANTED) =3D=3D 0) ? '-' : 'r') +
- (w=3D=3Dnull||((w.intValue() & FileNode.GR=
ANTED) =3D=3D 0) ? '-' : 'w') +
- (a=3D=3Dnull||((a.intValue() & FileNode.GR=
ANTED) =3D=3D 0) ? '-' : 'a');
- }
- }
+ public void startDocument() throws SAXException {
}
- if (perms.length() > 0) {
- perms =3D perms.substring(1);
- attr.addAttribute(JAHIA_URI, "fileacl", "jahia:fileacl", "=
CDATA", perms);
+
+ public void endDocument() throws SAXException {
}
- }
- exportFileProperties(file, prefixes, attr);
- ch.startElement(JAHIA_URI, "file", "jahia:file", attr);
- ch.endElement(JAHIA_URI, "file", "jahia:file");
=
- List children =3D file.getChildren();
- for (Iterator iterator =3D children.iterator(); iterator.hasNext()=
;) {
- FileNode child =3D (FileNode) iterator.next();
+ public void startPrefixMapping(String prefix, String uri) thro=
ws SAXException {
+ ch.startPrefixMapping(prefix, uri);
+ }
=
- exportAllFilesAcl(ch, child, jParams, prefixes);
- }
+ public void endPrefixMapping(String prefix) throws SAXExceptio=
n {
+ ch.endPrefixMapping(prefix);
+ }
=
- }
+ public void startElement(String uri, String localName, String =
qName, Attributes atts) throws SAXException {
+ ch.startElement(uri, localName, qName, atts);
+ }
=
- private void exportFileProperties(FileNode file, Map prefixes, Attribu=
tesImpl attr) {
- if (file.isValid() && file.hasRevisions()) {
- Map p =3D file.getProperties();
- }
- }
+ public void endElement(String uri, String localName, String qN=
ame) throws SAXException {
+ ch.endElement(uri, localName, qName);
+ }
=
- private String getUserForFileAcl(ProcessingContext jParams, String s) {
- if (s.equals("nobody") || s.equals("all")) {
- s =3D "+/groups/" + JahiaGroupManagerService.GUEST_GROUPNAME +=
"/members";
- } else if (s.equals("root")) {
- s =3D "+/groups/" + JahiaGroupManagerService.ADMINISTRATORS_GR=
OUPNAME +
- "/members";
- } else if (s.equals("user") || s.equals("authenticated")) {
- s =3D "+/groups/" + JahiaGroupManagerService.USERS_GROUPNAME +=
"/members";
- } else if (s.equals("guest") || s.equals("unauthenticated")) {
- s =3D "/users/" + JahiaUserManagerService.GUEST_USERNAME + "/m=
embers";
- }
- if (s.startsWith("+/groups/")) {
- JahiaGroup group =3D ServicesRegistry.getInstance().getJahiaGr=
oupManagerService()
- .lookupGroup(jParams.getSiteID(), s.substring(9, s.las=
tIndexOf('/')));
- if (group =3D=3D null) {
- return null;
+ public void characters(char[] cha, int start, int length) thro=
ws SAXException {
+ ch.characters(cha, start, length);
}
- return "g:"+group.getGroupname();
- } else if (s.startsWith("/users/")) {
- String name =3D s.substring(7);
- if (name.indexOf('/') > -1) {
- name =3D name.substring(0, name.indexOf('/'));
+
+ public void ignorableWhitespace(char[] cha, int start, int len=
gth) throws SAXException {
+ ch.ignorableWhitespace(cha, start, length);
}
- JahiaUser jahiaUser;
- try {
- jahiaUser =3D ServicesRegistry.getInstance().getJahiaSiteU=
serManagerService()
- .getMember(jParams.getSiteID(), name);
- } catch (JahiaException e) {
- return null;
+
+ public void processingInstruction(String target, String data) =
throws SAXException {
+ ch.processingInstruction(target, data);
}
- if (jahiaUser =3D=3D null) {
- return null;
+
+ public void skippedEntity(String name) throws SAXException {
+ ch.skippedEntity(name);
}
- return "u:"+jahiaUser.getUsername();
- }
- return null;
+ };
+ return noEndingHandler;
}
=
private void exportCategories(ContentHandler ch, JahiaUser user) throw=
s JahiaException, SAXException {
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list