List of usage examples for org.apache.commons.vfs FileObject exists
public boolean exists() throws FileSystemException;
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 av a 2s . c om 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 .j a v a 2s .c o m*/ setHeader(_response, object.getContent()); } } else { _response.sendError(HttpServletResponse.SC_NOT_FOUND); } }
From source file:org.efaps.webdav4vfs.handler.MkColHandler.java
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { BufferedReader bufferedReader = request.getReader(); String line = bufferedReader.readLine(); if (line != null) { response.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); return;// w w w. j a v a 2s. com } FileObject object = VFSBackend.resolveFile(request.getPathInfo()); try { 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; } if (object.exists()) { response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED); return; } if (!object.getParent().exists() || !FileType.FOLDER.equals(object.getParent().getType())) { response.sendError(HttpServletResponse.SC_CONFLICT); return; } try { object.createFolder(); response.setStatus(HttpServletResponse.SC_CREATED); } catch (FileSystemException e) { response.sendError(HttpServletResponse.SC_FORBIDDEN); } }
From source file:org.efaps.webdav4vfs.handler.OptionsHandler.java
@Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setHeader("DAV", "1, 2"); String path = request.getPathInfo(); StringBuffer options = new StringBuffer(); FileObject object = VFSBackend.resolveFile(path); if (object.exists()) { options.append("OPTIONS, GET, HEAD, POST, DELETE, TRACE, COPY, MOVE, LOCK, UNLOCK, PROPFIND"); if (FileType.FOLDER.equals(object.getType())) { options.append(", PUT"); }/*from w w w . j a va2 s.c om*/ } else { options.append("OPTIONS, MKCOL, PUT, LOCK"); } response.setHeader("Allow", options.toString()); // see: http://www-128.ibm.com/developerworks/rational/library/2089.html response.setHeader("MS-Author-Via", "DAV"); }
From source file:org.efaps.webdav4vfs.handler.PropFindHandler.java
/** * Handle a PROPFIND request./*from w w w .java2 s .c o m*/ * * @param request the servlet request * @param response the servlet response * @throws IOException if there is an error that cannot be handled normally */ @Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { SAXReader saxReader = new SAXReader(); try { Document propDoc = saxReader.read(request.getInputStream()); logXml(propDoc); Element propFindEl = propDoc.getRootElement(); for (Object propElObject : propFindEl.elements()) { Element propEl = (Element) propElObject; if (VALID_PROPFIND_TAGS.contains(propEl.getName())) { FileObject object = VFSBackend.resolveFile(request.getPathInfo()); if (object.exists()) { // respond as XML encoded multi status response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); response.setStatus(SC_MULTI_STATUS); Document multiStatusResponse = getMultiStatusResponse(object, propEl, getBaseUrl(request), getDepth(request)); logXml(multiStatusResponse); // write the actual response XMLWriter writer = new XMLWriter(response.getWriter(), OutputFormat.createCompactFormat()); writer.write(multiStatusResponse); writer.flush(); writer.close(); } else { response.sendError(HttpServletResponse.SC_NOT_FOUND); } break; } } } catch (DocumentException e) { LOG.error("invalid request: " + e.getMessage()); response.sendError(HttpServletResponse.SC_BAD_REQUEST); } }
From source file:org.efaps.webdav4vfs.handler.PropPatchHandler.java
/** * Handle a PROPPATCH request./*from w w w.j a v a2s . c om*/ * * @param request the servlet request * @param response the servlet response * @throws IOException if there is an error that cannot be handled normally */ @Override public void service(HttpServletRequest request, HttpServletResponse response) throws IOException { FileObject object = VFSBackend.resolveFile(request.getPathInfo()); try { 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; } if (object.exists()) { SAXReader saxReader = new SAXReader(); try { Document propDoc = saxReader.read(request.getInputStream()); logXml(propDoc); Element propUpdateEl = propDoc.getRootElement(); List<Element> requestedProperties = new ArrayList<Element>(); for (Object elObject : propUpdateEl.elements()) { Element el = (Element) elObject; String command = el.getName(); if (AbstractDavResource.TAG_PROP_SET.equals(command) || AbstractDavResource.TAG_PROP_REMOVE.equals(command)) { for (Object propElObject : el.elements()) { for (Object propNameElObject : ((Element) propElObject).elements()) { Element propNameEl = (Element) propNameElObject; requestedProperties.add(propNameEl); } } } } // respond as XML encoded multi status response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); response.setStatus(SC_MULTI_STATUS); Document multiStatusResponse = getMultiStatusResponse(object, requestedProperties, getBaseUrl(request)); logXml(multiStatusResponse); // write the actual response XMLWriter writer = new XMLWriter(response.getWriter(), OutputFormat.createCompactFormat()); writer.write(multiStatusResponse); writer.flush(); writer.close(); } catch (DocumentException e) { LOG.error("invalid request: " + e.getMessage()); response.sendError(HttpServletResponse.SC_BAD_REQUEST); } } else { LOG.error(object.getName().getPath() + " NOT FOUND"); 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 {/* w w w. j av a 2 s. com*/ 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.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java
public boolean exists(URI uid) { boolean fileExists = false; try {/*from w w w. j a v a2s . c o m*/ FileObject envelopeFile = fsManager.resolveFile(fsBase, uid.toASCIIString()); fileExists = envelopeFile.exists(); } catch (FileSystemException e) { e.printStackTrace(); } return fileExists; }
From source file:org.gatherdata.archiver.dao.vfs.internal.VfsArchiverDao.java
public GatherArchive retrieveEnvelope(URI uid) { GatherArchive foundEnvelope = null;// w ww .j a v a 2s . co m 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 void remove(URI uid) { try {//from w ww . j a v a 2 s .c om FileObject envelopeFile = fsManager.resolveFile(fsBase, uid.toASCIIString()); if (envelopeFile.exists()) { envelopeFile.delete(); } } catch (FileSystemException e) { e.printStackTrace(); } }