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

Reply via email to