Example usage for org.apache.commons.io CopyUtils copy

List of usage examples for org.apache.commons.io CopyUtils copy

Introduction

In this page you can find the example usage for org.apache.commons.io CopyUtils copy.

Prototype

public static void copy(String input, Writer output) throws IOException 

Source Link

Document

Copy chars from a String to a Writer.

Usage

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;
    }
}