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