List of usage examples for org.apache.commons.io CopyUtils copy
public static void copy(String input, Writer output) throws IOException
String
to a Writer
. From source file:org.roosster.input.processors.HtmlProcessor.java
/** * *///from w w w . ja v a2s. co m public Entry[] process(URL url, InputStream stream, String encoding) throws Exception { Entry entry = new Entry(url); // set some basic properties entry.setFileType(FILE_TYPE); entry.setAdded(new Date()); // copy raw contents before processing stream Writer rawContents = new StringWriter(); CopyUtils.copy(stream, rawContents); String rawString = rawContents.toString(); entry.setRaw(rawString); // now process stream, and fill content HtmlParser parser = new HtmlParser(entry); parser.parse(new InputSource(new StringReader(rawString))); return new Entry[] { entry }; }
From source file:org.sprintapi.api.http.HttpServlet.java
protected void doService(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws ErrorException, IOException { final RequestHolder<Object> request = new RequestHolder<Object>(getUri(httpRequest)); request.setContext(httpRequest.getContextPath()); // Resolve incoming URL and get resource descriptor final ResourceDescriptor resourceDsc = resolve(request.getUri()); // Does the requested resource exist? if (resourceDsc == null) { throw new ErrorException(request.getUri(), HttpServletResponse.SC_NOT_FOUND); }//from w w w.ja va2 s. c om // Is requested method supported? if (httpRequest.getMethod() == null) { throw new ErrorException(request.getUri(), HttpServletResponse.SC_BAD_REQUEST); } try { request.setMethod(Method.valueOf(httpRequest.getMethod().toUpperCase(Locale.US))); } catch (IllegalArgumentException ex) { throw new ErrorException(request.getUri(), HttpServletResponse.SC_NOT_IMPLEMENTED); } if (request.getMethod() == null) { throw new ErrorException(request.getUri(), HttpServletResponse.SC_NOT_IMPLEMENTED); } // Get supported methods for requested resource Map<Method, MethodDescriptor<?, ?>> methods = resourceDsc.methods(); // Get requested method descriptors for the resource MethodDescriptor<?, ?> methodDsc = (methods != null) ? methods.get(request.getMethod()) : null; // Is requested method supported? if ((methodDsc == null)) { throw new ErrorException(request.getUri(), HttpServletResponse.SC_METHOD_NOT_ALLOWED); } ContentAdapter<InputStream, ?> inputContentAdapter = null; // Is request body expected? if (request.getMethod().isRequestBody()) { String requestContentType = httpRequest.getContentType(); inputContentAdapter = (methodDsc.consumes() != null) ? methodDsc.consumes().get(requestContentType) : null; if (inputContentAdapter == null) { throw new ErrorException(request.getUri(), HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); } } else if (httpRequest.getContentLength() > 0) { // Unexpected request body throw new ErrorException(request.getUri(), HttpServletResponse.SC_BAD_REQUEST); } ContentAdapter<?, InputStream> outputContentAdapter = null; String responseContentType = null; // Is response body expected? if (request.getMethod().isResponseBody()) { // Check Accept header HttpAcceptHeader acceptHeader = HttpAcceptHeader .read(httpRequest.getHeader(ContentDescriptor.META_ACCEPT)); if (acceptHeader != null) { Map<String, ?> produces = methodDsc.produces(); // Response content negotiation if (produces != null) { int weight = 0; for (String ct : produces.keySet()) { int tw = acceptHeader.accept(ct); if (tw > weight) { weight = tw; responseContentType = ct; outputContentAdapter = (ContentAdapter<?, InputStream>) produces.get(ct); } } } if (outputContentAdapter == null) { throw new ErrorException(request.getUri(), HttpServletResponse.SC_NOT_ACCEPTABLE); } } } if (inputContentAdapter != null) { ContentHolder<Object> lc = new ContentHolder<Object>(); lc.setBody(inputContentAdapter.transform(request.getUri(), httpRequest.getInputStream())); request.setContent(lc); } // Invoke resource method Response response = methodDsc.invoke((Request) request); if (response == null) { throw new ErrorException(request.getUri(), HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } // Write response status int responseStatus = (response.getStatus() > 0) ? response.getStatus() : HttpServletResponse.SC_OK; httpResponse.setStatus(responseStatus); if (response.getContent() == null) { return; } // Write response headers if (response.getContent().getMetaNames() != null) { for (String metaName : response.getContent().getMetaNames()) { Object metaValue = response.getContent().getMeta(metaName); if (metaValue != null) { if (metaValue instanceof Date) { httpResponse.setHeader(metaName, HttpDate.RFC1123_FORMAT.format(((Date) metaValue))); } else { httpResponse.setHeader(metaName, metaValue.toString()); } } } } if ((HttpServletResponse.SC_CREATED == responseStatus)) { httpResponse.setHeader(ContentDescriptor.META_LOCATION, response.getContext() + response.getUri()); } if ((response.getContent().getBody() == null) || (HttpServletResponse.SC_NOT_MODIFIED == responseStatus)) { return; } // Write response body if (outputContentAdapter != null) { httpResponse.setHeader(ContentDescriptor.META_CONTENT_TYPE, responseContentType); InputStream is = ((ContentAdapter<Object, InputStream>) outputContentAdapter) .transform(request.getUri(), response.getContent().getBody()); if (is != null) { CopyUtils.copy(is, httpResponse.getOutputStream()); } } }
From source file:org.sprintapi.api.http.servlet.HttpApiServlet.java
protected void doService(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws ApiErrorException, IOException { // Append signature if (config.isPoweredByAllowed()) { httpResponse.setHeader(Metadata.X_POWERED_BY_NAME, POWERED_BY_VALUE); }// w ww. j a v a2s. c om if (httpRequest.getMethod() == null) { throw new ApiErrorException(StatusCode.BAD_REQUEST, "The request is malformed. Requested method is missing."); } if (!methods.containsKey(httpRequest.getMethod().toUpperCase())) { throw new ApiErrorException(StatusCode.NOT_IMPLEMENTED, "The requested method '" + httpRequest.getMethod() + "' is not supported."); } // Wrap request final HttpRequest request = new HttpRequest(httpRequest, methods.get(httpRequest.getMethod().toUpperCase()), requestMetaAdapters, contentMetaAdapters); // Server options request? (OPTIONS *) if (request.getUri().isAsterisk()) { if (HttpMethod.OPTIONS.name().equalsIgnoreCase(httpRequest.getMethod())) { throw new ApiErrorException(StatusCode.NOT_IMPLEMENTED, "Not Implemented."); } throw new ApiErrorException(StatusCode.BAD_REQUEST, "The request is malformed."); } // Create response ResponseHolder<?> response = new ResponseHolder<Object>(); response.setMetadata(new ResponseMetadataImpl()); HttpContext<?, ?> context = HttpContext.getInstance(httpRequest); context.setDispatcher(getContextDispatcher()); service((Request) request, (Response) response, (Context) context); if (response.getStatus() == null) { response.setStatus(StatusCode.OK); } // Set response status httpResponse.setStatus((response.getStatus() != null) ? response.getStatus().getCode() : 0); // Write response headers if (response.getMetadata() != null) { writeHeaders(responseMetaAdapters, httpResponse, request, response.getMetadata(), context); } // Finish if there is no content to write if (response.getContent() == null) { return; } // Write content headers if (response.getContent().getMetadata() != null) { writeHeaders(contentMetaAdapters, httpResponse, request, response.getContent().getMetadata(), context); } // Write response content length // if (context.getResponseContext().getContentType() != null) { // httpResponse.setContentType(context.getResponseContext().getContentType().toString()); // } // Write response content body if (response.getContent().getBody() != null) { CopyUtils.copy((InputStream) response.getContent().getBody(), httpResponse.getOutputStream()); } }
From source file:org.sprintapi.api.http.servlet.todo.TodoItemReader.java
@Override public TodoItem transform(InputStream in) throws ApiErrorException { StringWriter writer = new StringWriter(); try {/*from w w w . ja v a 2 s . c o m*/ CopyUtils.copy(in, writer); String out = writer.toString(); return new TodoItem(out); } catch (IOException e) { throw new ApiErrorException(StatusCode.INTERNAL_SERVER_ERROR, e); } }
From source file:org.squale.squaleweb.applicationlayer.action.grid.GridCreationAction.java
/** * Importation d'un fichier de grille//from w w w. j ava 2s . c o m * * @param pMapping le mapping. * @param pForm le formulaire lire. * @param pRequest la requte HTTP. * @param pResponse la rponse de la servlet. * @return l'action raliser. */ public ActionForward importGrid(ActionMapping pMapping, ActionForm pForm, HttpServletRequest pRequest, HttpServletResponse pResponse) { ActionErrors errors = new ActionErrors(); ActionForward forward; try { UploadFileForm form = (UploadFileForm) pForm; IApplicationComponent ac = AccessDelegateHelper.getInstance("QualityGrid"); StringBuffer importErrors = new StringBuffer(); Collection grids = (Collection) ac.execute("importGrid", new Object[] { form.getInputStream(), importErrors }); if (importErrors.length() > 0) { // Affichage des messages d'erreur // obtenus pendant l'importation ActionMessage error = new ActionMessage("grid_import.errors", importErrors.toString()); errors.add(ActionMessages.GLOBAL_MESSAGE, error); forward = pMapping.findForward("fail"); } else { // Sauvegarde du fichier d'upload dans la session File gridFile = File.createTempFile("squaleGrid", ".xml"); InputStream is = form.getInputStream(); FileOutputStream os = new FileOutputStream(gridFile); // Copie du fichier par la couche commons-io CopyUtils.copy(is, os); is.close(); os.close(); // Sauvegarde de l'emplacement de la copie du fichier upload pRequest.getSession().setAttribute(GRID_FILE, gridFile.getCanonicalPath()); // Placement des information sur le formulaire de confirmation WActionForm gridListForm = WTransformerFactory.objToForm(GridListTransformer.class, grids); // en session car WIZARD pRequest.getSession().setAttribute(GRID_CONFIRM_FORM, gridListForm); // Indications des grilles existantes qui seront remplaces Iterator gridsIt = grids.iterator(); while (gridsIt.hasNext()) { QualityGridDTO grid = (QualityGridDTO) gridsIt.next(); // Si un id est associe la grille, elle existe dj dans la // base -> dans ce cas on place un message indiquant le remplacement // de la grille if (grid.getId() != -1) { ActionMessage error = new ActionMessage("grid_import.replace", grid.getName()); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } else { ActionMessage error = new ActionMessage("grid_import.new", grid.getName()); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } // Redirection vers la page de confirmation forward = pMapping.findForward("confirm"); } } catch (Exception e) { // Traitement des exceptions handleException(e, errors, pRequest); forward = pMapping.findForward("total_failure"); } if (!errors.isEmpty()) { saveMessages(pRequest, errors); } // On est pass par un menu donc on rinitialise le traceur resetTracker(pRequest); return forward; }
From source file:org.squale.welcom.outils.rsh.Impl.CmdRshClient.java
/** * Retourne le resultat d'un commande Unix en rsh Attention : le buffer est limit a 1024. * /*w ww .j a v a2 s . c o m*/ * @param cmd : Commande unix * @param buff : Ecrit dans l'entree standard le contenu * @throws IOException : Retourne le buffer rcp ou bien une erreur d'execution * @return resultat unix */ public int executecmd(final String cmd, final byte buff[]) throws IOException { lastReturnStream = null; lastErrorStream = null; Process rsh = null; int exitVal = DEFAULT_EXIT_VAL; // Stocke ce que l'on a envoyer final String cmdsend = rshCmd + cmd; addMessage(cmdsend + "\n"); try { rsh = Runtime.getRuntime().exec(cmdsend); // Si on a quelquechose dans le buffer if (buff != null) { CopyUtils.copy(buff, rsh.getOutputStream()); addMessage(buff); rsh.getOutputStream().close(); } exitVal = rsh.waitFor(); if (rsh.getInputStream() != null) { lastReturnStream = IOUtils.toString(rsh.getInputStream()); addMessage(lastReturnStream); } if (rsh.getErrorStream() != null) { lastErrorStream = IOUtils.toString(rsh.getErrorStream()); if (lastErrorStream.length() > 0) { addMessage(lastErrorStream); return 1; } } } catch (final IOException ioe) { addMessage(ioe.getMessage()); throw ioe; } catch (final InterruptedException e) { addMessage(e.getMessage()); throw new IOException(e.getMessage()); } if (exitVal == 0) { addMessage(">OK\n"); } return exitVal; }
From source file:org.squale.welcom.outils.rsh.Impl.JavaRshClient.java
/** * Retourne le resultat d'un commande Unix en rsh Attention : le buffer est limit a 1024. * //from w w w. j a v a 2 s .c om * @param cmd : Commande unix * @param buff : Ecrit dans l'entree standard le contenu * @throws IOException : Retourne le buffer rcp ou bien une erreur d'execution * @return resultat unix */ public int executecmd(final String cmd, final byte buff[]) throws IOException { lastReturnStream = null; lastErrorStream = null; final RCommandClient rsh = new RCommandClient(); // Stocke ce que l'on a envoyer addMessage(">" + cmd + "\n"); try { rsh.connect(serveur); rsh.rexec(loginLocal, loginDistant, cmd + "\n", true); // Si on a quelquechose dans le buffer if (buff != null) { CopyUtils.copy(buff, rsh.getOutputStream()); addMessage(buff); rsh.getOutputStream().close(); // Faut etre dconnecter avant de lire if ((rsh != null) && rsh.isConnected()) { rsh.disconnect(); } } if (rsh.getInputStream() != null) { lastReturnStream = IOUtils.toString(rsh.getInputStream()); addMessage(lastReturnStream); } if (rsh.getErrorStream() != null) { lastErrorStream = IOUtils.toString(rsh.getErrorStream()); if (lastErrorStream.length() > 0) { addMessage(lastErrorStream); return 1; } } } catch (final IOException ioe) { addMessage(ioe.getMessage()); throw ioe; } finally { if ((rsh != null) && rsh.isConnected()) { rsh.disconnect(); } } addMessage(">OK\n"); return 0; }
From source file:org.squale.welcom.struts.webServer.WebEngine.java
/** * @param pathFile : Resources/* w w w .j av a 2 s. c o m*/ * @throws IOException : Probleme sur OutPutStream * @throws ServletException */ public void process(String pathFile) throws IOException { // On remplace les // par / sauf pour (http:// ) pathFile = pathFile.replaceAll("//", "/"); pathFile = pathFile.replaceAll("http:/", "http://"); pathFile = pathFile.replaceAll("https:/", "https://"); URLManager urlManager = null; try { urlManager = new URLManager(pathFile, servlet); } catch (final IOException e) { log.error(e, e); throw e; } if (!isModified(urlManager)) { response.setStatus(STATUS_NOT_MODIFIED); } else { response.setHeader("Date", sdfWeb.format(new Date(System.currentTimeMillis()))); response.setHeader("Last-Modified", sdfWeb.format(urlManager.getLastDate())); response.setHeader("Content-Type", urlManager.getMimeType()); // Rcupere la bonne outputStream final OutputStream out = getOutputStream(); // Ouverture de la stream final InputStream is = urlManager.getUrl().openStream(); if (urlManager.isImage()) { response.setHeader("Accept-ranges", "bytes"); CopyUtils.copy(is, out); } else { // Optimization des .css String s = IOUtils.toString(is); IOUtils.closeQuietly(is); if (Util.isEquals(urlManager.getMimeType(), "text/css") && Util .isTrue(WelcomConfigurator.getMessage(WelcomConfigurator.OPTIFLUX_REMOVECOMMENTS_CSS))) { final int lastSlashPos = urlManager.getSUrl().lastIndexOf("/"); s = s.replaceAll("@import url\\(\\.\\/", "@import url(css.do?value=" + urlManager.getSUrl().substring(0, lastSlashPos + 1)); s = smartReplaceAll(s); s = removeComments(s); s = s.replaceAll("\\n\\p{Space}*", "\n"); s = s.replaceAll("[\n\r\t\f]", ""); s = s.replaceAll("[^}]*(UNI|MAJ)[^}]*}", ""); // Suppresion de tout ce qui contient la charte // unitaire } // Optimization des .js if (Util.isEquals(urlManager.getMimeType(), "application/x-javascript") && Util .isTrue(WelcomConfigurator.getMessage(WelcomConfigurator.OPTIFLUX_REMOVECOMMENTS_JS))) { s = smartReplaceAll(s); s = removeComments(s); s = s.replaceAll("\\n\\p{Space}*", "\n"); // s= s.replaceAll("([;{])\\p{Space}*[\n\r\t\f]", "\1"); } s = convertWithConfigurator(s); try { CopyUtils.copy(s, out); } catch (final IOException e) { log.error("Probleme sur le flux ... :" + pathFile, e); } } try { out.close(); } catch (final SocketException se) { log.error("Connection reset by peer : " + urlManager.getSUrl()); } } }
From source file:things.common.tools.FileTools.java
/** * Copy a file.//from w w w. j a v a2s. c om * @param source * @param destination * @throws Throwable */ public static void copy(File source, File destination) throws Throwable { InputStream ins = null; OutputStream outs = null; try { ins = new FileInputStream(source); outs = new FileOutputStream(destination); CopyUtils.copy(ins, outs); } catch (Throwable t) { throw t; } finally { try { ins.close(); } catch (Throwable tt) { } try { outs.close(); } catch (Throwable tt) { } } }
From source file:things.common.tools.FileTools.java
/** * Copy a stream. I'll implement this myself some day. * @param source/*from www . j a va 2s.com*/ * @param destination * @throws Throwable */ public static void copy(InputStream source, OutputStream destination) throws Throwable { try { CopyUtils.copy(source, destination); } catch (Throwable t) { throw t; } }