Author: tdraier
Date: Wed Dec 19 17:11:25 2007
New Revision: 19391

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19391&repname=
=3Djahia
Log:
simplifed mount points, changed internal path policy,  fixed copy

Removed:
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/RootFileNode.java
Modified:
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/FileNode.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRFileNodeWrapper.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRStoreService.java
    branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/cifs/CIFSFileNode.java

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/FileNode.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/content/FileNode.jav=
a&rev=3D19391&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/content/FileNode.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/FileNode.java Wed Dec 19 17:11:25 2007
@@ -1,18 +1,19 @@
 package org.jahia.services.content;
 =

 import org.apache.log4j.Logger;
+import org.jahia.bin.Jahia;
 import org.jahia.data.containers.JahiaContainer;
 import org.jahia.data.fields.JahiaField;
-import org.jahia.data.files.JahiaFileField;
 import org.jahia.data.files.JahiaFile;
+import org.jahia.data.files.JahiaFileField;
 import org.jahia.params.ParamBean;
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.usermanager.JahiaUser;
 import org.jahia.spring.aop.interceptor.SilentJamonPerformanceMonitorInter=
ceptor;
-import org.jahia.bin.Jahia;
 import org.jahia.urls.URI;
 =

 import javax.jcr.RepositoryException;
+import javax.jcr.nodetype.NodeType;
 import javax.transaction.Status;
 import java.io.InputStream;
 import java.util.*;
@@ -133,8 +134,8 @@
         return false;
     }
 =

-    public String createCollection (String name) {
-        return name;
+    public FileNode createCollection (String name) {
+        return null;
     }
 =

     public InputStream downloadFile () {
@@ -206,6 +207,9 @@
     }
 =

     public String getPath() {
+        if (provider.getMountPoint().equals("/")) {
+            return localPath;
+        }
         return provider.getMountPoint() + localPath;
     }
 =

@@ -226,29 +230,30 @@
     }
 =

     public List getChildren() {
-        return new ArrayList();
+        List l =3D new ArrayList();
+        Map mountPoints =3D ServicesRegistry.getInstance().getJCRStoreServ=
ice().getMountPoints();
+        for (Iterator iterator =3D mountPoints.keySet().iterator(); iterat=
or.hasNext();) {
+            String key =3D (String) iterator.next();
+            if (!key.equals("/")) {
+                String mpp =3D key.substring(0, key.lastIndexOf('/'));
+                if (mpp.equals("")) mpp=3D"/";
+                if (mpp.equals(getPath())) {
+                    StoreProvider storeProvider =3D (StoreProvider) mountP=
oints.get(key);
+                    l.add(storeProvider.getFileNodeWrapper("/", user));
+                }
+            }
+        }
+        return l;
     }
 =

     public boolean hasRevisions () {
         return false;
     }
 =

-    public List getAvailableTypes() throws RepositoryException {
-        return new ArrayList();
-    }
-
-    public List getExtensionMixinTypes() {
-        return new ArrayList();
-    }
-
     public Map getProperties() {
         return new HashMap();
     }
 =

-    public Map getProperties(String type) {
-        return new HashMap();
-    }
-
     public String getName () {
         return null;
     }
@@ -295,17 +300,33 @@
     }
 =

     public boolean moveFile(String dest) {
+        boolean result =3D copyFile(dest);
+        if (result) {
+            return deleteFile();
+        }
         return false;
     }
 =

     public boolean copyFile(String dest) {
         FileNode node =3D ServicesRegistry.getInstance().getJCRStoreServic=
e().getFileNode(dest, user);
+        boolean sameProvider =3D (provider.getKey().equals(node.getProvide=
r().getKey()));
+        if (!sameProvider) {
+            node.beginTransaction();
+            copyFile(node);
+            node.commitTransaction();
+        } else {
+            copyFile(node);
+        }
+        return true;
+    }
+
+    private boolean copyFile(FileNode node) {
         if (isCollection()) {
-            node.createCollection(getName());
+            FileNode c =3D node.createCollection(getName());
             List l =3D getChildren();
             for (Iterator iterator =3D l.iterator(); iterator.hasNext();) {
                 FileNode source =3D (FileNode) iterator.next();
-                source.copyFile(dest + "/" + getName());
+                source.copyFile(c);
             }
         } else {
             InputStream is =3D downloadFile();
@@ -334,6 +355,10 @@
         return null;
     }
 =

+    StoreProvider getProvider() {
+        return provider;
+    }
+
     public static String getPicto(final String fileName) {
         final String f =3D fileName.toLowerCase();
         for (int k =3D 0; k < extention.length; k++) {

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/JCRFileNodeWrapper.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/content/JCRFileNodeW=
rapper.java&rev=3D19391&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/content/JCRFileNodeWrapper.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRFileNodeWrapper.java Wed Dec 19 17:11:25 2007
@@ -156,7 +156,7 @@
             if (objectNode !=3D null) {
                 return true;
             }
-        } else if (WRITE.equals(perm)) {
+        } else if (WRITE.equals(perm) || MANAGE.equals(perm)) {
             try {
                 session.checkPermission(objectNode.getPath(),  "set_proper=
ty");
                 return true;
@@ -191,14 +191,15 @@
         return false;
     }
 =

-    public String createCollection (String name) {
+    public FileNode createCollection (String name) {
         name =3D JCRStoreService.cleanTitle(name);
         try {
-            objectNode.addNode(name, Constants.JAHIANT_FOLDER);
+            Node n =3D objectNode.addNode(name, Constants.JAHIANT_FOLDER);
+            return jcrProvider.getFileNodeWrapper(n.getPath(), user, sessi=
on);
         } catch (RepositoryException e) {
             logger.error("Repository error",e);
         }
-        return name;
+        return null;
     }
 =

     public InputStream downloadFile () {
@@ -319,20 +320,24 @@
 //    }
 =

     public String getAbsoluteUrl(ParamBean jParams) {
-        try {
-            return jcrProvider.getAbsoluteContextPath(jParams.getRealReque=
st()) + objectNode.getPath();
-        } catch (RepositoryException e) {
-            logger.error("Cannot get file path",e);
-            return "";
+        if (objectNode !=3D null) {
+            try {
+                return jcrProvider.getAbsoluteContextPath(jParams.getRealR=
equest()) + objectNode.getPath();
+            } catch (RepositoryException e) {
+                logger.error("Cannot get file path",e);
+            }
         }
+        return "";
     }
 =

 =

     public String getUrl() {
-        try {
-            return jcrProvider.getContextPath() + objectNode.getPath();
-        } catch (RepositoryException e) {
-            logger.error("Cannot get file path",e);
+        if (objectNode !=3D null) {
+            try {
+                return jcrProvider.getContextPath() + objectNode.getPath();
+            } catch (RepositoryException e) {
+                logger.error("Cannot get file path",e);
+            }
         }
         return "";
     }
@@ -342,8 +347,8 @@
             return false;
         }
         try {
-            return objectNode.isNodeType(Constants.NT_FOLDER) ||
-                    objectNode.isNodeType(Constants.JAHIANT_VIRTUALSITE) |=
| objectNode.getPath().equals("/");
+            return objectNode.isNodeType(Constants.NT_FOLDER) || objectNod=
e.getPath().equals("/") ||
+                    objectNode.isNodeType(Constants.JAHIANT_VIRTUALSITE) ;
         } catch (RepositoryException e) {
             return false;
         }
@@ -360,14 +365,13 @@
     }
 =

     public List getChildren() {
+        List list =3D super.getChildren();
         if (exception !=3D null) {
-            return new ArrayList ();
+            return list;
         }
-        ArrayList list =3D null;
         try {
             NodeIterator ni =3D objectNode.getNodes();
 =

-            list =3D new ArrayList ();
             while (ni.hasNext()) {
                 Node node =3D (Node) ni.nextNode();
                 try {
@@ -393,15 +397,7 @@
     }
 =

     public List getAvailableTypes() throws RepositoryException {
-        List types =3D new ArrayList();
-        NodeTypeIterator nti =3D session.getWorkspace().getNodeTypeManager=
().getMixinNodeTypes();
-        while (nti.hasNext()) {
-            NodeType nt =3D nti.nextNodeType();
-            if (nt.isNodeType(Constants.JAHIAMIX_EXTENSION)) {
-                types.add(nt.getName());
-            }
-        }
-        return types;
+        return jcrProvider.getAvailableTypes();
     }
 =

     public Map getProperties() {
@@ -459,6 +455,14 @@
         return results;
     }
 =

+    public NodeType getJahiaMetadataType() {
+        try {
+            return session.getWorkspace().getNodeTypeManager().getNodeType=
(Constants.JAHIAMIX_METADATA);
+        } catch (RepositoryException e) {
+            return null;
+        }
+    }
+
     public List getExtensionMixinTypes() {
         List results =3D new ArrayList();
         try {
@@ -488,7 +492,7 @@
             return null;
         }
         try {
-            if (objectNode.getPath().equals("/") && provider.getMountPoint=
().length()>0) {
+            if (objectNode.getPath().equals("/") && provider.getMountPoint=
().length()>1) {
                 return provider.getMountPoint().substring(1);
             } else {
                 return objectNode.getName();
@@ -641,7 +645,9 @@
             return false;
         }
         if (ServicesRegistry.getInstance().getJCRStoreService().getProvide=
r(dest) =3D=3D jcrProvider) {
-            dest =3D dest.substring(jcrProvider.getMountPoint().length());
+            if (jcrProvider.getMountPoint().length()>1) {
+                dest =3D dest.substring(jcrProvider.getMountPoint().length=
());
+            }
         } else {
             return false;
         }
@@ -659,7 +665,9 @@
             return false;
         }
         if (ServicesRegistry.getInstance().getJCRStoreService().getProvide=
r(dest) =3D=3D jcrProvider) {
-            dest =3D dest.substring(jcrProvider.getMountPoint().length());
+            if (jcrProvider.getMountPoint().length()>1) {
+                dest =3D dest.substring(jcrProvider.getMountPoint().length=
());
+            }
         } else {
             return super.copyFile(dest);
         }

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/JCRStoreService.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/content/JCRStoreServ=
ice.java&rev=3D19391&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/content/JCRStoreService.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRStoreService.java Wed Dec 19 17:11:25 2007
@@ -5,6 +5,7 @@
 import org.jahia.services.sites.JahiaSite;
 import org.jahia.services.usermanager.JahiaUser;
 import org.jahia.utils.JahiaTools;
+import org.xml.sax.ContentHandler;
 =

 import javax.jcr.RepositoryException;
 import java.util.*;
@@ -23,7 +24,7 @@
     private JCRStoreProvider mainStoreProvider;
 =

     private Map providers =3D new HashMap();
-    private Map mountPoints =3D new HashMap();
+    private SortedMap mountPoints =3D new TreeMap();
 =

     static private JCRStoreService instance =3D null;
 =

@@ -39,9 +40,9 @@
 =

     public void start() throws JahiaInitializationException {
         try {
-            providers.put(mainStoreProvider.getKey(), mainStoreProvider);
-            mainStoreProvider.setMountPoint("");
-            mainStoreProvider.setMainStorage(true);
+//            providers.put(mainStoreProvider.getKey(), mainStoreProvider);
+//            mainStoreProvider.setMountPoint("");
+//            mainStoreProvider.setMainStorage(true);
             for (Iterator iterator =3D mountPoints.keySet().iterator(); it=
erator.hasNext();) {
                 String mp =3D (String) iterator.next();
                 StoreProvider sp =3D (StoreProvider) mountPoints.get(mp);
@@ -57,11 +58,7 @@
     }
 =

     public JCRStoreProvider getMainStoreProvider() {
-        return mainStoreProvider;
-    }
-
-    public void setMainStoreProvider(JCRStoreProvider mainStoreProvider) {
-        this.mainStoreProvider =3D mainStoreProvider;
+        return (JCRStoreProvider) mountPoints.get("/");
     }
 =

     public Map getMountPoints() {
@@ -69,23 +66,23 @@
     }
 =

     public void setMountPoints(Map mountPoints) {
-        this.mountPoints =3D mountPoints;
+        this.mountPoints =3D new TreeMap(new Comparator() {
+            public int compare(Object o1, Object o2) {
+                return ((Comparable)o2).compareTo(o1);
+            }
+        });
+        this.mountPoints.putAll(mountPoints);
     }
 =

     public FileNode getFileNode(String path, JahiaUser user) {
-        if (path.equals("/")) {
-            FileNode root =3D mainStoreProvider.getFileNodeWrapper(path, u=
ser);
-            List l =3D new ArrayList();
-            for (Iterator iterator =3D mountPoints.values().iterator(); it=
erator.hasNext();) {
-                StoreProvider storeProvider =3D (StoreProvider) iterator.n=
ext();
-                l.add(storeProvider.getFileNodeWrapper("/", user));
-            }
-            return new RootFileNode(root, l);
-        } else if (path.startsWith("/")) {
+        if (path.startsWith("/")) {
             for (Iterator iterator =3D mountPoints.keySet().iterator(); it=
erator.hasNext();) {
                 String mp =3D (String) iterator.next();
-                if (path.startsWith(mp)) {
-                    String localPath =3D path.substring(mp.length());
+                if (path.equals(mp) || (mp.equals("/") ? path.startsWith(m=
p) : path.startsWith(mp+"/"))) {
+                    String localPath =3D path;
+                    if (!mp.equals("/")) {
+                        localPath =3D path.substring(mp.length());
+                    }
                     StoreProvider provider =3D (StoreProvider) mountPoints=
.get(mp);
                     return provider.getFileNodeWrapper(localPath, user);
                 }
@@ -106,13 +103,16 @@
     public StoreProvider getProvider(String path) {
         for (Iterator iterator =3D mountPoints.keySet().iterator(); iterat=
or.hasNext();) {
             String mp =3D (String) iterator.next();
-            if (path.startsWith(mp)) {
+            if (path.equals(mp) || path.startsWith(mp+"/")) {
                 return (StoreProvider) mountPoints.get(mp);
             }
         }
         return mainStoreProvider;
     }
 =

+    public void exportDocumentView(String path, ContentHandler ch, JahiaUs=
er user, boolean noRecurse) {
+        getMainStoreProvider().exportDocumentView(path, ch , user, noRecur=
se);
+    }
 =

     public static String cleanTitle(String cleanTitle) {
         return cleanTitle(cleanTitle, false);

Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/impl/cifs/CIFSFileNode.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/content/impl/cifs/CI=
FSFileNode.java&rev=3D19391&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/content/impl/cifs/CIFSFileNode.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/cifs/CIFSFileNode.java Wed Dec 19 17:11:25 2007
@@ -106,7 +106,7 @@
     }
 =

     public List getChildren() {
-        List l =3D new ArrayList();
+        List l =3D super.getChildren();
         try {
             String pref =3D localPath;
             if (!pref.equals("/")) {
@@ -132,20 +132,21 @@
         }
     }
 =

-    public String createCollection(String name) {
+    public FileNode createCollection(String name) {
         try {
-            smb =3D new SmbFile(cifsProvider.getRoot() + localPath + name,=
 cifsProvider.getPasswordAuthentication());
+            smb =3D new SmbFile(cifsProvider.getRoot() + localPath + "/" +=
 name, cifsProvider.getPasswordAuthentication());
             smb.mkdir();
+            return new CIFSFileNode(localPath + "/" + name, user, cifsProv=
ider);
         } catch (Exception e) {
             e.printStackTrace();  //To change body of catch statement use =
File | Settings | File Templates.
         }
 =

-        return name;
+        return null;
     }
 =

     public String uploadFile(String name, InputStream is, String contentTy=
pe) {
         try {
-            smb =3D new SmbFile(cifsProvider.getRoot() + localPath + name,=
 cifsProvider.getPasswordAuthentication());
+            smb =3D new SmbFile(cifsProvider.getRoot() + localPath + "/" +=
 name, cifsProvider.getPasswordAuthentication());
             smb.createNewFile();
             OutputStream os =3D smb.getOutputStream();
             CopyUtils.copy(is,os);

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

Reply via email to