List of usage examples for org.apache.commons.vfs FileObject getContent
public FileContent getContent() throws FileSystemException;
From source file:org.eclim.util.file.FileUtils.java
/** * Converts the supplied byte offset in the specified file to the * corresponding char offset for that file using the supplied file encoding. * * @param filename The absolute path to the file. * @param byteOffset The byte offset to be converted. * @param encoding The encoding of the file. If null, defaults to utf-8. * * @return The char offset.//from w w w .j a va2s .co m */ public static int byteOffsetToCharOffset(String filename, int byteOffset, String encoding) throws Exception { FileSystemManager fsManager = VFS.getManager(); FileObject file = fsManager.resolveFile(filename); return byteOffsetToCharOffset(file.getContent().getInputStream(), byteOffset, encoding); }
From source file:org.efaps.webdav4vfs.handler.GetHandler.java
@Override() public void service(final HttpServletRequest _request, final HttpServletResponse _response) throws IOException { FileObject object = VFSBackend.resolveFile(_request.getPathInfo()); if (object.exists()) { if (FileType.FOLDER.equals(object.getType())) { _response.sendError(HttpServletResponse.SC_FORBIDDEN); return; }//from w w w .j a va 2s.co m setHeader(_response, object.getContent()); final InputStream is = object.getContent().getInputStream(); final OutputStream os = _response.getOutputStream(); IOUtils.copyLarge(is, os); is.close(); } else { _response.sendError(HttpServletResponse.SC_NOT_FOUND); } }
From source file:org.efaps.webdav4vfs.handler.HeadHandler.java
@Override() public void service(final HttpServletRequest _request, final HttpServletResponse _response) throws IOException { FileObject object = VFSBackend.resolveFile(_request.getPathInfo()); if (object.exists()) { if (FileType.FOLDER.equals(object.getType())) { _response.sendError(HttpServletResponse.SC_FORBIDDEN); } else {/* w w w. ja v a 2 s .c om*/ setHeader(_response, object.getContent()); } } else { _response.sendError(HttpServletResponse.SC_NOT_FOUND); } }
From source file:org.efaps.webdav4vfs.handler.PutHandler.java
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { FileObject object = VFSBackend.resolveFile(request.getPathInfo()); try {//from ww w. ja va 2s.c o m if (!LockManager.getInstance().evaluateCondition(object, getIf(request)).result) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } } catch (LockException e) { response.sendError(SC_LOCKED); return; } catch (ParseException e) { response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED); return; } // it is forbidden to write data on a folder if (object.exists() && FileType.FOLDER.equals(object.getType())) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } FileObject parent = object.getParent(); if (!parent.exists()) { response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } if (!FileType.FOLDER.equals(parent.getType())) { response.sendError(HttpServletResponse.SC_CONFLICT); return; } InputStream is = request.getInputStream(); OutputStream os = object.getContent().getOutputStream(); long bytesCopied = IOUtils.copyLarge(is, os); String contentLengthHeader = request.getHeader("Content-length"); LOG.debug(String.format("sent %d/%s bytes", bytesCopied, contentLengthHeader == null ? "unknown" : contentLengthHeader)); os.flush(); object.close(); response.setStatus(HttpServletResponse.SC_CREATED); }
From source file:org.efaps.webdav4vfs.test.ramvfs.RamFileSystem.java
/** * Import the given file with the name relative to the given root. * * @param _fo file object/*from w w w .ja va 2 s .c om*/ * @param _root root file object * @throws FileSystemException if file object could not be imported */ void toRamFileObject(final FileObject _fo, final FileObject _root) throws FileSystemException { final RamFileObject memFo = (RamFileObject) this .resolveFile(_fo.getName().getPath().substring(_root.getName().getPath().length())); if (_fo.getType().hasChildren()) { // Create Folder memFo.createFolder(); // Import recursively final FileObject[] fos = _fo.getChildren(); for (int i = 0; i < fos.length; i++) { final FileObject child = fos[i]; this.toRamFileObject(child, _root); } } else if (_fo.getType().equals(FileType.FILE)) { // Read bytes try { final InputStream is = _fo.getContent().getInputStream(); try { final OutputStream os = new BufferedOutputStream(memFo.getOutputStream(), 512); int i; while ((i = is.read()) != -1) { os.write(i); } os.flush(); os.close(); } finally { try { is.close(); } catch (final IOException e) { // ignore on close exception } } } catch (final IOException e) { throw new FileSystemException(e.getClass().getName() + " " + e.getMessage()); } } else { throw new FileSystemException("File is not a folder nor a file " + memFo); } }
From source file:org.efaps.webdav4vfs.util.Util.java
/** * * @param _object// w w w .j a va2 s .c o m * @return */ public static String getETag(final FileObject _object) { final String fileName = _object.getName().getPath(); String lastModified = ""; try { lastModified = String.valueOf(_object.getContent().getLastModifiedTime()); } catch (final FileSystemException e) { // ignore error here } return DigestUtils.shaHex(fileName + lastModified); }
From source file:org.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java
public GatherArchive retrieveEnvelope(URI uid) { GatherArchive foundEnvelope = null;//from w ww.jav a 2s . c om try { FileObject envelopeFile = fsManager.resolveFile(fsBase, uid.toASCIIString()); if (envelopeFile.exists()) { foundEnvelope = (GatherArchive) SerializationUtils .deserialize(envelopeFile.getContent().getInputStream()); } } catch (FileSystemException e) { e.printStackTrace(); } return foundEnvelope; }
From source file:org.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java
public List<GatherArchive> getAll() { List<GatherArchive> allEnvelopes = new ArrayList<GatherArchive>(); try {//w w w.j a va 2s . c o m for (FileObject envelopeFile : fsBase.getChildren()) { allEnvelopes.add( (GatherArchive) SerializationUtils.deserialize(envelopeFile.getContent().getInputStream())); } } catch (FileSystemException e) { e.printStackTrace(); } return allEnvelopes; }
From source file:org.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java
public GatherArchive save(GatherArchive envelopeToSave) { try {/*from www .jav a 2s . c om*/ FileObject envelopeFile = fsManager.resolveFile(fsBase, envelopeToSave.getUid().toASCIIString()); if (envelopeFile.exists()) { envelopeFile.delete(); } envelopeFile.createFile(); SerializationUtils.serialize(envelopeToSave, envelopeFile.getContent().getOutputStream()); } catch (FileSystemException e) { e.printStackTrace(); } return envelopeToSave; }
From source file:org.jahia.services.content.impl.external.vfs.VFSDataSource.java
private ExternalData getFile(FileObject fileObject) throws FileSystemException { String identifier = fileObject.getURL().toString(); String type;/*from www.j av a2 s . c om*/ type = getDataType(fileObject); Map<String, String[]> properties = new HashMap<String, String[]>(); if (fileObject.getContent() != null) { long lastModifiedTime = fileObject.getContent().getLastModifiedTime(); if (lastModifiedTime > 0) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(lastModifiedTime); String[] timestampt = new String[] { ISO8601.format(calendar) }; properties.put(Constants.JCR_CREATED, timestampt); properties.put(Constants.JCR_LASTMODIFIED, timestampt); } } String path = fileObject.getName().getPath().substring(rootPath.length()); if (!path.startsWith("/")) { path = "/" + path; } return new ExternalData(identifier, path, type, properties); }