Author: tdraier
Date: Fri Nov 23 19:14:30 2007
New Revision: 19277
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19277&repname=
=3Djahia
Log:
additional cifs file provider
Added:
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/cifs/
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/cifs/CIFSFileNode.java
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/cifs/CIFSStoreProvider.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/JCRStoreProvider.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/RootFileNode.java
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/jackrabbit/JackrabbitFileNodeWrapper.java
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/jackrabbit/JackrabbitStoreProvider.java
branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
spring/applicationcontext-services.xml
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=3D19277&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 Fri Nov 23 19:14:30 2007
@@ -1,27 +1,21 @@
package org.jahia.services.content;
=
-import com.jamonapi.Monitor;
-import com.jamonapi.MonitorFactory;
-
-import javax.jcr.*;
-import javax.jcr.nodetype.*;
-import javax.transaction.Status;
-import java.util.*;
-import java.io.InputStream;
-import java.io.IOException;
-
-import org.jahia.api.*;
-import org.jahia.api.Constants;
-import org.jahia.data.fields.JahiaField;
+import org.apache.log4j.Logger;
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.bin.Jahia;
-import org.jahia.registries.ServicesRegistry;
-import org.jahia.urls.URI;
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.apache.log4j.Logger;
+import org.jahia.bin.Jahia;
+import org.jahia.urls.URI;
+
+import javax.jcr.RepositoryException;
+import javax.transaction.Status;
+import java.io.InputStream;
+import java.util.*;
=
/**
* Created by IntelliJ IDEA.
@@ -43,7 +37,7 @@
protected static final Logger logger =3D Logger.getLogger(FileNode.cla=
ss);
private static final Logger monitorLogger =3D Logger.getLogger(SilentJ=
amonPerformanceMonitorInterceptor.class);
=
- protected StoreProvider provider;
+ protected JahiaUser user;
=
protected Exception exception =3D null;
=
@@ -54,8 +48,8 @@
"img", "img", "img", "img", "video", "video", "video", "video"=
, "video", "video",
"exe", "txt", "rar", "zip"};
=
- public FileNode(StoreProvider provider) {
- this.provider =3D provider;
+ public FileNode(String path, JahiaUser user) {
+ this.user =3D user;
}
=
public boolean beginTransaction() {
@@ -81,6 +75,9 @@
return Status.STATUS_UNKNOWN;
}
=
+ public JahiaUser getUser() {
+ return user;
+ }
=
public boolean isValid() {
return false;
@@ -137,7 +134,59 @@
}
=
public JahiaFileField getJahiaFileField () {
- return null;
+ JahiaFileField fField;
+ if (isValid()) {
+ String uri;
+ uri =3D getPath();
+ String owner =3D "root:0";
+
+ String contentType =3D "application/binary";
+ int lastDot =3D uri.lastIndexOf(".");
+ if (lastDot > -1) {
+ String mimeType =3D Jahia.getStaticServletConfig().getServ=
letContext().getMimeType(uri.substring(uri.lastIndexOf("/")+1).toLowerCase(=
));
+ if (mimeType !=3D null) {
+ contentType =3D mimeType;
+ }
+ }
+
+ JahiaFile file =3D new JahiaFile (-1, // filemanager id
+ -1, // folder id
+ owner,
+ uri, // realname
+ getPath(), // storage name
+ System.currentTimeMillis(), // modif date
+ getContentLength(), // size
+ contentType, // type
+ getName (), // title
+ "", // descr
+ String.valueOf (ServicesRegistry.getInstance ()
+ .getJahiaVersionService ().getCurrentVersionID=
()), // version
+ JahiaFile.STATE_ACTIVE);
+ fField =3D new JahiaFileField (file, new Properties ());
+ fField.setID (0);
+ URI url =3D new URI ();
+ url.setPath(getUrl());
+ url.setURIStartingAtPath (true);
+ fField.setDownloadUrl (url.toString ());
+ } else {
+ JahiaFile file =3D new JahiaFile (-1, // filemanager id
+ -1, // folder id
+ "", // upload user
+ "", // realname
+ "", // storage name
+ 0, // modif date
+ 0, // size
+ (exception =3D=3D null) ? "" : exception.getClass ().g=
etName (), // type
+ "", // title
+ "", // descr
+ String.valueOf (ServicesRegistry.getInstance ()
+ .getJahiaVersionService ().getCurrentVersionID=
()), // version
+ JahiaFile.STATE_ACTIVE);
+ fField =3D new JahiaFileField (file, new Properties ());
+ fField.setID (-1);
+ fField.setDownloadUrl ("#");
+ }
+ return fField;
}
=
public Exception getException() {
@@ -203,10 +252,6 @@
return null;
}
=
- public Date getContentLastModifiedAsDate() {
- return null;
- }
-
public Date getCreationDateAsDate() {
return null;
}
@@ -238,7 +283,19 @@
}
=
public boolean copyFile(String dest) {
- return false;
+ FileNode node =3D ServicesRegistry.getInstance().getJCRStoreServic=
e().getFileNode(dest, user);
+ if (isCollection()) {
+ 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());
+ }
+ } else {
+ InputStream is =3D downloadFile();
+ node.uploadFile(getName(), is, getContentType());
+ }
+ return true;
}
=
public boolean deleteFile () {
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=3D19277&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 Fri Nov 23 19:14:30 2007
@@ -28,6 +28,7 @@
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.urls.URI;
=
@@ -39,7 +40,6 @@
import javax.jcr.version.VersionIterator;
import java.io.IOException;
import java.io.InputStream;
-import java.lang.reflect.Array;
import java.security.AccessControlException;
import java.util.*;
=
@@ -58,8 +58,8 @@
=
protected String[] defaultPerms =3D { "add_node", "set_property", "rem=
ove", "read" };
=
- protected JCRFileNodeWrapper(String path, Session session, JCRStorePro=
vider provider) {
- super(provider);
+ protected JCRFileNodeWrapper(String path, JahiaUser user, Session sess=
ion, JCRStoreProvider provider) {
+ super(path, user);
this.jcrProvider =3D provider;
init(path,session);
}
@@ -211,7 +211,7 @@
return null;
}
=
- public String uploadFile(String name, final InputStream is, final Stri=
ng contentType) {
+ public String uploadFile(String name, InputStream is, String contentTy=
pe) {
try {
if (is !=3D null) {
Node file =3D objectNode.addNode(name, Constants.JAHIANT_F=
ILE);
@@ -221,6 +221,9 @@
} finally {
is.close();
}
+ if (contentType =3D=3D null) {
+ contentType =3D "application/binary";
+ }
content.setProperty(Constants.JCR_MIMETYPE, contentType);
content.setProperty(Constants.JCR_LASTMODIFIED, Calendar.g=
etInstance());
}
@@ -262,7 +265,7 @@
-1, // folder id
owner,
uri, // realname
- provider.getKey()+":"+uuid, // storage name
+ jcrProvider.getKey()+":"+uuid, // storage name
System.currentTimeMillis(), // modif date
getContentLength(), // size
contentType, // type
@@ -308,7 +311,7 @@
}
=
try {
- return provider.getMountPoint() + objectNode.getPath();
+ return jcrProvider.getMountPoint() + objectNode.getPath();
} catch (RepositoryException e) {
e.printStackTrace();
}
@@ -368,7 +371,7 @@
while (ni.hasNext()) {
Node node =3D (Node) ni.nextNode();
try {
- JCRFileNodeWrapper child =3D jcrProvider.getFileNodeWr=
apper(node.getPath(), session);
+ JCRFileNodeWrapper child =3D jcrProvider.getFileNodeWr=
apper(node.getPath(), user, session);
if (child.getException () =3D=3D null) {
list.add (child);
}
@@ -633,8 +636,8 @@
if (exception !=3D null) {
return false;
}
- if (dest.startsWith(provider.getMountPoint())) {
- dest =3D dest.substring(provider.getMountPoint().length());
+ if (ServicesRegistry.getInstance().getJCRStoreService().getProvide=
r(dest) =3D=3D jcrProvider) {
+ dest =3D dest.substring(jcrProvider.getMountPoint().length());
} else {
return false;
}
@@ -651,10 +654,10 @@
if (exception !=3D null) {
return false;
}
- if (dest.startsWith(provider.getMountPoint())) {
- dest =3D dest.substring(provider.getMountPoint().length());
+ if (ServicesRegistry.getInstance().getJCRStoreService().getProvide=
r(dest) =3D=3D jcrProvider) {
+ dest =3D dest.substring(jcrProvider.getMountPoint().length());
} else {
- return false;
+ return super.copyFile(dest);
}
try {
workspace.copy(objectNode.getPath(), dest + "/" + objectNode.g=
etName());
@@ -799,7 +802,7 @@
try {
Version v =3D objectNode.getVersionHistory().getVersion(name);
Node frozen =3D v.getNode(Constants.JCR_FROZENNODE);
- return jcrProvider.getFileNodeWrapper(frozen.getPath(), sessio=
n);
+ return jcrProvider.getFileNodeWrapper(frozen.getPath(), user, =
session);
} catch (RepositoryException e) {
e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
}
Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/JCRStoreProvider.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/JCRStoreProv=
ider.java&rev=3D19277&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/JCRStoreProvider.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/JCRStoreProvider.java Fri Nov 23 19:14:30 2007
@@ -184,14 +184,14 @@
public FileNode getFileNodeWrapper(String path, JahiaUser user) {
try {
Session session =3D getSession(user);
- return getFileNodeWrapper(path, session);
+ return getFileNodeWrapper(path, user, session);
} catch (RepositoryException e) {
logger.error("Repository error",e);
return null;
}
}
=
- public abstract JCRFileNodeWrapper getFileNodeWrapper(String path, Ses=
sion session);
+ public abstract JCRFileNodeWrapper getFileNodeWrapper(String path, Jah=
iaUser user, Session session);
=
protected abstract void registerCustomNodeTypes(Workspace ws, String c=
ndFileName) throws IOException, RepositoryException;
=
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=3D19277&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 Fri Nov 23 19:14:30 2007
@@ -100,9 +100,20 @@
return provider.getFileNodeWrapper(realPath, user);
}
}
- return new FileNode(null);
+ return new FileNode(null, null);
}
=
+ 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)) {
+ return (StoreProvider) mountPoints.get(mp);
+ }
+ }
+ return mainStoreProvider;
+ }
+
+
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/RootFileNode.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/RootFileNode=
.java&rev=3D19277&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/RootFileNode.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/RootFileNode.java Fri Nov 23 19:14:30 2007
@@ -24,7 +24,7 @@
private List mounts;
=
public RootFileNode(FileNode root, List mounts) {
- super(null);
+ super("/", root.getUser());
mainRootNode =3D root;
this.mounts =3D mounts;
}
@@ -166,10 +166,6 @@
return mainRootNode.getLastModifiedAsDate();
}
=
- public Date getContentLastModifiedAsDate() {
- return mainRootNode.getContentLastModifiedAsDate();
- }
-
public Date getCreationDateAsDate() {
return mainRootNode.getCreationDateAsDate();
}
Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/s=
ervices/content/impl/cifs/CIFSFileNode.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/services/content/impl/=
cifs/CIFSFileNode.java&rev=3D19277&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 (added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/cifs/CIFSFileNode.java Fri Nov 23 19:14:30 2007
@@ -0,0 +1,180 @@
+package org.jahia.services.content.impl.cifs;
+
+import jcifs.smb.SmbException;
+import jcifs.smb.SmbFile;
+import org.apache.commons.io.CopyUtils;
+import org.jahia.services.content.FileNode;
+import org.jahia.services.usermanager.JahiaUser;
+import org.jahia.params.ParamBean;
+
+import javax.jcr.RepositoryException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: toto
+ * Date: 23 nov. 2007
+ * Time: 11:54:33
+ * To change this template use File | Settings | File Templates.
+ */
+public class CIFSFileNode extends FileNode {
+ private CIFSStoreProvider cifsProvider;
+ private SmbFile smb;
+ private String relativePath;
+
+ public CIFSFileNode(String path, JahiaUser user, CIFSStoreProvider pro=
vider) {
+ super(path, user);
+ cifsProvider =3D provider;
+ try {
+ smb =3D new SmbFile(cifsProvider.getRoot() + path, cifsProvide=
r.getPasswordAuthentication());
+ if (!smb.isFile() && !path.endsWith("/")) {
+ path +=3D"/";
+ smb =3D new SmbFile(cifsProvider.getRoot() + path, cifsPro=
vider.getPasswordAuthentication());
+ }
+ relativePath =3D path;
+ } catch (Exception e) {
+ exception =3D e;
+ }
+ }
+
+ public String getName() {
+ return smb.getName(); =
+ }
+
+ public boolean isValid() {
+ try {
+ return (exception =3D=3D null) && smb.exists();
+ } catch (SmbException e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ return false;
+ }
+ }
+
+ public boolean isWriteable() {
+ try {
+ return smb.canWrite();
+ } catch (SmbException e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ return false;
+ }
+ }
+
+ public boolean hasPermission(String perm) {
+ if (exception !=3D null) {
+ return false;
+ }
+ try {
+ if (READ.equals(perm)) {
+ return smb.canRead();
+ } else if (WRITE.equals(perm)) {
+ return smb.canWrite();
+ } else if (MANAGE.equals(perm)) {
+ return false;
+ }
+ } catch (SmbException e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ return false;
+ }
+
+ return false;
+ }
+
+ public InputStream downloadFile() {
+ try {
+ return smb.getInputStream();
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+ public String getPath() {
+ return cifsProvider.getMountPoint() + relativePath;
+ }
+
+ public boolean isCollection() {
+ try {
+ return !smb.isFile();
+ } catch (SmbException e) {
+ return false;
+ }
+ }
+
+ public long getContentLength() {
+ return smb.getContentLength();
+ }
+
+ public List getChildren() {
+ List l =3D new ArrayList();
+ try {
+ String[] c =3D smb.list();
+ for (int i =3D 0; i < c.length; i++) {
+ String s =3D c[i];
+ l.add(new CIFSFileNode(relativePath + s, user, cifsProvide=
r));
+ }
+ } catch (SmbException e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ }
+ return l;
+ }
+
+ public Date getLastModifiedAsDate() {
+ try {
+ return new Date(smb.lastModified());
+ } catch (SmbException e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ return null;
+ }
+ }
+
+ public String createCollection(String name) {
+ try {
+ smb =3D new SmbFile(cifsProvider.getRoot() + relativePath + na=
me, cifsProvider.getPasswordAuthentication());
+ smb.mkdir();
+ } catch (Exception e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ }
+
+ return name;
+ }
+
+ public String uploadFile(String name, InputStream is, String contentTy=
pe) {
+ try {
+ smb =3D new SmbFile(cifsProvider.getRoot() + relativePath + na=
me, cifsProvider.getPasswordAuthentication());
+ smb.createNewFile();
+ OutputStream os =3D smb.getOutputStream();
+ CopyUtils.copy(is,os);
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ }
+
+ return name;
+ }
+
+ public boolean renameFile(String newName) {
+ try {
+ smb.renameTo(new SmbFile(cifsProvider.getRoot() + relativePath=
+ newName, cifsProvider.getPasswordAuthentication()));
+ return true;
+ } catch (SmbException e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ } catch (MalformedURLException e) {
+ e.printStackTrace(); //To change body of catch statement use =
File | Settings | File Templates.
+ }
+ return false;
+ }
+
+ public String getUrl() {
+ return cifsProvider.getDavenportPath() + cifsProvider.getRoot().su=
bstring("smb:/".length()) + relativePath;
+ }
+
+ public String getAbsoluteUrl(ParamBean jParams) {
+ return cifsProvider.getDavenportPath() + cifsProvider.getRoot().su=
bstring("smb:/".length()) + relativePath;
+ }
+
+}
Added: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/s=
ervices/content/impl/cifs/CIFSStoreProvider.java
URL: https://svndev.jahia.net/websvn/filedetails.php?path=3D/branches/JAHIA=
-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/services/content/impl/=
cifs/CIFSStoreProvider.java&rev=3D19277&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/CIFSStoreProvider.java (added)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/cifs/CIFSStoreProvider.java Fri Nov 23 19:14:30 2007
@@ -0,0 +1,83 @@
+package org.jahia.services.content.impl.cifs;
+
+import jcifs.smb.NtlmPasswordAuthentication;
+import jcifs.smb.SmbFile;
+import org.jahia.exceptions.JahiaException;
+import org.jahia.exceptions.JahiaInitializationException;
+import org.jahia.services.content.FileNode;
+import org.jahia.services.content.StoreProvider;
+import org.jahia.services.usermanager.JahiaUser;
+
+import java.net.MalformedURLException;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: toto
+ * Date: 23 nov. 2007
+ * Time: 11:38:24
+ * To change this template use File | Settings | File Templates.
+ */
+public class CIFSStoreProvider extends StoreProvider {
+
+ private String root;
+
+ private String domain;
+ private String username;
+ private String password;
+ private String davenportPath;
+
+ public void start() throws JahiaInitializationException {
+ }
+
+ public void stop() throws JahiaException {
+ }
+
+ public String getRoot() {
+ return root;
+ }
+
+ public void setRoot(String root) {
+ this.root =3D root;
+ }
+
+ public String getDomain() {
+ return domain;
+ }
+
+ public void setDomain(String domain) {
+ this.domain =3D domain;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username =3D username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password =3D password;
+ }
+
+ public String getDavenportPath() {
+ return davenportPath;
+ }
+
+ public void setDavenportPath(String davenPortPath) {
+ this.davenportPath =3D davenPortPath;
+ }
+
+ public NtlmPasswordAuthentication getPasswordAuthentication() {
+ return new NtlmPasswordAuthentication(domain, username, password);
+ }
+
+ public FileNode getFileNodeWrapper(String path, JahiaUser user) {
+ return new CIFSFileNode(path, user, this);
+ }
+
+}
Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/impl/jackrabbit/JackrabbitFileNodeWrapper.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/jackrab=
bit/JackrabbitFileNodeWrapper.java&rev=3D19277&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/jackrabbit/JackrabbitFileNodeWrapper.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/jackrabbit/JackrabbitFileNodeWrapper.java Fri Nov 23 19:1=
4:30 2007
@@ -9,6 +9,7 @@
import org.jahia.services.acl.JahiaBaseACL;
import org.jahia.services.content.JCRFileNodeWrapper;
import org.jahia.services.content.JCRStoreProvider;
+import org.jahia.services.usermanager.JahiaUser;
=
import javax.jcr.Node;
import javax.jcr.NodeIterator;
@@ -27,8 +28,8 @@
public class JackrabbitFileNodeWrapper extends JCRFileNodeWrapper {
private static final Logger logger =3D Logger.getLogger(JackrabbitFile=
NodeWrapper.class);
=
- protected JackrabbitFileNodeWrapper(String path, Session session, JCRS=
toreProvider provider) {
- super(path, session, provider);
+ protected JackrabbitFileNodeWrapper(String path, JahiaUser user, Sessi=
on session, JCRStoreProvider provider) {
+ super(path, user, session, provider);
}
=
=
Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahi=
a/services/content/impl/jackrabbit/JackrabbitStoreProvider.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/jackrab=
bit/JackrabbitStoreProvider.java&rev=3D19277&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/jackrabbit/JackrabbitStoreProvider.java (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/java/org/jahia/serv=
ices/content/impl/jackrabbit/JackrabbitStoreProvider.java Fri Nov 23 19:14:=
30 2007
@@ -27,6 +27,7 @@
import org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl;
import org.jahia.services.content.JCRFileNodeWrapper;
import org.jahia.services.content.JCRStoreProvider;
+import org.jahia.services.usermanager.JahiaUser;
=
import javax.jcr.RepositoryException;
import javax.jcr.Session;
@@ -45,13 +46,13 @@
org.apache.log4j.Logger.getLogger(JackrabbitStoreProvider.class);
=
public JackrabbitStoreProvider() {
- }
+ } =
=
public void stop() {
}
=
- public JCRFileNodeWrapper getFileNodeWrapper(String path, Session sess=
ion) {
- return new JackrabbitFileNodeWrapper(path, session, this);
+ public JCRFileNodeWrapper getFileNodeWrapper(String path, JahiaUser us=
er, Session session) {
+ return new JackrabbitFileNodeWrapper(path, user, session, this);
}
=
protected void registerCustomNodeTypes(Workspace ws, String cndFileNam=
e) throws IOException, RepositoryException {
Modified: branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-IN=
F/etc/spring/applicationcontext-services.xml
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-3-=
DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/spring/applicationcontext=
-services.xml&rev=3D19277&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/webapp/WEB-INF/etc/=
spring/applicationcontext-services.xml (original)
+++ branches/JAHIA-5-0-3-DMS-JACKRABBIT-BRANCH/core/src/webapp/WEB-INF/etc/=
spring/applicationcontext-services.xml Fri Nov 23 19:14:30 2007
@@ -881,6 +881,29 @@
</bean>
-->
=
+ <!--
+ <bean id=3D"SMBStoreProvider" class=3D"org.jahia.services.content.impl=
.cifs.CIFSStoreProvider" parent=3D"jahiaServiceTemplate" >
+ <property name=3D"key">
+ <value>cifs</value>
+ </property>
+ <property name=3D"root">
+ <value>smb://10.8.37.2/babylon</value>
+ </property>
+ <property name=3D"domain">
+ <value>JAHIA</value>
+ </property>
+ <property name=3D"username">
+ <value>GUEST</value>
+ </property>
+ <property name=3D"password">
+ <value></value>
+ </property>
+ <property name=3D"davenportPath">
+ <value>/davenport</value>
+ </property>
+ </bean>
+ -->
+
<bean id=3D"JCRStoreService" parent=3D"proxyTemplate">
<property name=3D"target">
<bean class=3D"org.jahia.services.content.JCRStoreService" par=
ent=3D"jahiaServiceTemplate" factory-method=3D"getInstance">
@@ -895,6 +918,12 @@
<ref bean=3D"SecondJCRStoreProvider"/>
</entry>
-->
+<!--
+ <entry>
+ <key><value>/babylon</value></key>
+ <ref bean=3D"SMBStoreProvider"/>
+ </entry>
+-->
</map>
</property>
</bean>
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list