Example usage for javax.activation DataHandler writeTo

List of usage examples for javax.activation DataHandler writeTo

Introduction

In this page you can find the example usage for javax.activation DataHandler writeTo.

Prototype

public void writeTo(OutputStream os) throws IOException 

Source Link

Document

Write the data to an OutputStream.

If the DataHandler was created with a DataSource, writeTo retrieves the InputStream and copies the bytes from the InputStream to the OutputStream passed in.

Usage

From source file:org.wso2.carbon.application.upload.CarbonAppUploader.java

private void writeResource(DataHandler dataHandler, String tempDestPath, String destPath, String fileName)
        throws IOException {

    File tempDestFile = new File(tempDestPath, fileName);
    File destFile = new File(destPath, fileName);
    FileOutputStream fos = null;//from w w  w  . j a v a2s.  co m

    try {
        fos = new FileOutputStream(tempDestFile);
        dataHandler.writeTo(fos);
        fos.flush();

        /* File stream is copied to a temp directory in order handle hot deployment issue
           occurred in windows */
        FileUtils.copyFile(tempDestFile, destFile);
    } finally {
        try {
            if (fos != null) {
                fos.close();
            }
        } catch (IOException e) {
            log.warn("Can't close file streams.", e);
        }
    }

    if (!tempDestFile.delete()) {
        log.warn("temp file: " + tempDestFile.getAbsolutePath()
                + " deletion failed, scheduled deletion on server exit.");
        tempDestFile.deleteOnExit();
    }
}

From source file:org.webcurator.core.reader.LogReaderSOAPClient.java

public File retrieveLogfile(String aJob, String aFilename) {
    try {//from   w w  w .j  a  va 2 s  .  c  o  m
        WCTSoapCall call = new WCTSoapCall(host, port, service, "retrieveLogfile");
        call.regTypes(DataHandler.class);
        DataHandler dh = (DataHandler) call.invoke(aJob, aFilename);

        File f = File.createTempFile("wct", "tmp");
        dh.writeTo(new FileOutputStream(f));
        return f;
    } catch (Exception ex) {
        throw new WCTRuntimeException(
                "Failed to retrieve logfile " + aFilename + " for " + aJob + ": " + ex.getMessage(), ex);
    }
}

From source file:org.webcurator.core.reader.LogReaderSOAPClient.java

public File retrieveAQAFile(String aJob, String aFilename) {
    try {//from   w  ww.  j  av a 2s  .  c om
        WCTSoapCall call = new WCTSoapCall(host, port, service, "retrieveAQAFile");
        call.regTypes(DataHandler.class);
        DataHandler dh = (DataHandler) call.invoke(aJob, aFilename);

        File f = File.createTempFile("wct", "tmp");
        dh.writeTo(new FileOutputStream(f));
        return f;
    } catch (Exception ex) {
        throw new WCTRuntimeException(
                "Failed to retrieve aqa file " + aFilename + " for " + aJob + ": " + ex.getMessage(), ex);
    }
}

From source file:org.wso2.carbon.mediation.library.service.upload.LibraryUploader.java

private void writeResource(DataHandler dataHandler, String tempDestPath, String destPath, String fileName)
        throws IOException {

    File tempDestFile = new File(tempDestPath, fileName);
    FileChannel out = null;/*from  w ww.j  a v  a2  s  .c  o m*/
    FileChannel in = null;
    FileOutputStream fos = null;

    try {
        fos = new FileOutputStream(tempDestFile);
        dataHandler.writeTo(fos);
        fos.flush();

        /* File stream is copied to a temp directory in order handle hot deployment issue
           occurred in windows */
        dataHandler.writeTo(fos);
        out = new FileOutputStream(destPath + File.separator + fileName).getChannel();
        in = new FileInputStream(tempDestFile).getChannel();
        out.write(in.map(FileChannel.MapMode.READ_ONLY, 0, in.size()));
    } finally {
        try {
            if (out != null) {
                out.close();
            }
        } catch (IOException e) {
            log.warn("Can't close file streams.", e);
        }
        try {
            if (in != null) {
                in.close();
            }
        } catch (IOException e) {
            log.warn("Can't close file streams.", e);
        }
        try {
            if (fos != null) {
                fos.close();
            }
        } catch (IOException e) {
            log.warn("Can't close file streams.", e);
        }
    }

    if (!tempDestFile.delete()) {
        if (log.isDebugEnabled()) {
            log.debug("temp file: " + tempDestFile.getAbsolutePath()
                    + " deletion failed, scheduled deletion on server exit.");
        }
        tempDestFile.deleteOnExit();
    }
}

From source file:org.wso2.carbon.repomanager.axis2.Axis2RepoManager.java

private void writeToFileSystem(String path, String fileName, DataHandler dataHandler) throws IOException {
    File destFile = new File(path, fileName);
    FileOutputStream fos = null;/*from   w ww  .ja  v a  2s .  c om*/
    try {
        fos = new FileOutputStream(destFile);
        dataHandler.writeTo(fos);
        fos.flush();
    } finally {
        if (fos != null) {
            try {
                fos.close();
            } catch (IOException e) {
                log.error("Failed to close FileOutputStream for file " + fileName, e);
            }
        }
    }
}

From source file:it.greenvulcano.gvesb.virtual.http.HTTPCallOperation.java

private void dumpPart(Part p, Element msg, Document doc) throws Exception {
    Element content = null;// ww  w .j a  v  a  2 s .co  m
    if (p.isMimeType("text/plain")) {
        content = doc.createElement("PlainMessage");
        Text body = doc.createTextNode((String) p.getContent());
        content.appendChild(body);
    } else if (p.isMimeType("text/html")) {
        content = doc.createElement("HTMLMessage");
        CDATASection body = doc.createCDATASection((String) p.getContent());
        content.appendChild(body);
    } else if (p.isMimeType("multipart/*")) {
        Multipart mp = (Multipart) p.getContent();
        int count = mp.getCount();
        content = doc.createElement("Multipart");
        for (int i = 0; i < count; i++) {
            dumpPart(mp.getBodyPart(i), content, doc);
        }
    } else if (p.isMimeType("message/rfc822")) {
        content = doc.createElement("NestedMessage");
        dumpPart((Part) p.getContent(), content, doc);
    } else {
        content = doc.createElement("EncodedContent");
        DataHandler dh = p.getDataHandler();
        OutputStream os = new ByteArrayOutputStream();
        Base64EncodingOutputStream b64os = new Base64EncodingOutputStream(os);
        dh.writeTo(b64os);
        b64os.flush();
        b64os.close();
        content.appendChild(doc.createTextNode(os.toString()));
    }
    msg.appendChild(content);
    String filename = p.getFileName();
    if (filename != null) {
        content.setAttribute("file-name", filename);
    }
    String ct = p.getContentType();
    if (ct != null) {
        content.setAttribute("content-type", ct);
    }
    String desc = p.getDescription();
    if (desc != null) {
        content.setAttribute("description", desc);
    }
}

From source file:org.wso2.carbon.bpmn.core.mgt.services.BPMNUploader.java

private void writeResource(DataHandler dataHandler, String destPath, String fileName, File bpmnDest)
        throws IOException {
    File tempDestFile = new File(destPath, fileName);
    FileOutputStream fos = null;//from  w ww  .j  av a2s .  co  m
    File destFile = new File(bpmnDest, fileName);
    try {
        fos = new FileOutputStream(tempDestFile);
        /* File stream is copied to a temp directory in order handle hot deployment issue
           occurred in windows */
        dataHandler.writeTo(fos);
        FileUtils.copyFile(tempDestFile, destFile);
    } catch (FileNotFoundException e) {
        log.error("Cannot find the file", e);
        throw e;
    } catch (IOException e) {
        log.error("IO error.");
        throw e;
    } finally {
        close(fos);
    }

    boolean isDeleted = tempDestFile.delete();
    if (!isDeleted) {
        log.warn("temp file: " + tempDestFile.getAbsolutePath()
                + " deletion failed, scheduled deletion on server exit.");
        tempDestFile.deleteOnExit();
    }
}

From source file:org.wso2.carbon.bpel.deployer.services.BPELUploader.java

private void writeResource(DataHandler dataHandler, String destPath, String fileName, File bpelDest)
        throws IOException {
    File tempDestFile = new File(destPath, fileName);
    FileOutputStream fos = null;/*w  w  w  .ja  v a2 s .  c o m*/
    File destFile = new File(bpelDest, fileName);
    try {
        fos = new FileOutputStream(tempDestFile);
        /* File stream is copied to a temp directory in order handle hot deployment issue
           occurred in windows */
        dataHandler.writeTo(fos);
        FileUtils.copyFile(tempDestFile, destFile);
    } catch (FileNotFoundException e) {
        log.error("Cannot find the file", e);
        throw e;
    } catch (IOException e) {
        log.error("IO error.");
        throw e;
    } finally {
        close(fos);
    }

    boolean isDeleted = tempDestFile.delete();
    if (!isDeleted) {
        log.warn("temp file: " + tempDestFile.getAbsolutePath()
                + " deletion failed, scheduled deletion on server exit.");
        tempDestFile.deleteOnExit();
    }
}

From source file:org.wso2.carbon.jarservices.JarServiceCreatorAdmin.java

private void writeToFileSystem(String path, String fileName, DataHandler dataHandler) throws IOException {
    File destFile = new File(path, fileName);
    FileOutputStream fos = new FileOutputStream(destFile);
    dataHandler.writeTo(fos);
    fos.flush();/*  w  ww .  j a  v  a2s . com*/
    fos.close();
}

From source file:it.govpay.core.business.Psp.java

public String aggiornaRegistro() throws GovPayException {
    List<String> response = new ArrayList<String>();

    GpContext ctx = GpThreadLocal.get();

    log.info("Aggiornamento del Registro PSP");
    ctx.log("psp.aggiornamentoPsp");
    boolean acquisizioneOk = false;
    Throwable lastError = null;/*from  w  w w .  j  a  va  2  s .c o  m*/
    String transactionId = null;
    try {
        JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class);

        StazioniBD stazioniBD = new StazioniBD(this);
        List<Stazione> lstStazioni = stazioniBD.getStazioni();

        if (lstStazioni.size() == 0) {
            log.warn("Nessuna stazione registrata. Impossibile richiedere il catalogo dei Psp.");
            ctx.log("psp.aggiornamentoPspNoDomini");
            throw new GovPayException(EsitoOperazione.INTERNAL,
                    "Nessuna stazione registrata. Impossibile richiedere il catalogo dei Psp.");
        }

        // Finche' non ricevo un catalogo di informativa, provo per tutte le stazioni.
        ListaInformativePSP informativePsp = null;

        for (Stazione stazione : lstStazioni) {

            log.info("Richiedo catalogo per la stazione " + stazione.getCodStazione());
            Intermediario intermediario = stazione.getIntermediario(this);

            transactionId = ctx.openTransaction();
            ctx.getContext().getRequest()
                    .addGenericProperty(new Property("codStazione", stazione.getCodStazione()));
            ctx.setupNodoClient(stazione.getCodStazione(), null, Azione.nodoChiediInformativaPSP);
            ctx.log("psp.aggiornamentoPspRichiesta");

            closeConnection();

            NodoChiediInformativaPSP richiesta = new NodoChiediInformativaPSP();
            richiesta.setIdentificativoIntermediarioPA(intermediario.getCodIntermediario());
            richiesta.setIdentificativoStazioneIntermediarioPA(stazione.getCodStazione());
            richiesta.setPassword(stazione.getPassword());

            try {
                NodoClient client = null;
                try {
                    client = new NodoClient(intermediario, this);

                    NodoChiediInformativaPSPRisposta risposta = client.nodoChiediInformativaPSP(richiesta,
                            intermediario.getDenominazione());

                    if (risposta.getFault() != null) {
                        throw new GovPayException(risposta.getFault());
                    }

                    DataHandler dh = risposta.getXmlInformativa();
                    ByteArrayOutputStream output = new ByteArrayOutputStream();
                    dh.writeTo(output);

                    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
                    informativePsp = (ListaInformativePSP) jaxbUnmarshaller
                            .unmarshal(risposta.getXmlInformativa().getDataSource().getInputStream());
                } finally {
                    setupConnection(ctx.getTransactionId());
                }

                if (informativePsp == null) {
                    log.warn("Catalogo dei psp non acquisito. Impossibile aggiornare il registro.");
                    ctx.log("psp.aggiornamentoPspRichiestaKo", "Ricevuta Informativa PSP vuota.");
                    throw new GovPayException("Ricevuta Informativa PSP vuota.", EsitoOperazione.INTERNAL,
                            "Impossibile aggiornare la lista dei Psp.");
                }

                log.info("Ricevuto catalogo dei dati Informativi con "
                        + informativePsp.getInformativaPSPs().size() + " informative.");
                List<it.govpay.bd.model.Psp> catalogoPsp = new ArrayList<it.govpay.bd.model.Psp>();

                // Converto ogni informativa un PSP
                for (InformativaPSP informativaPsp : informativePsp.getInformativaPSPs()) {
                    it.govpay.bd.model.Psp psp = new it.govpay.bd.model.Psp();

                    CtInformativaMaster informativaMaster = informativaPsp.getInformativaMaster();

                    boolean isAttivo = informativaMaster.getDataInizioValidita().before(new Date());

                    psp.setAbilitato(isAttivo);
                    psp.setCodFlusso(informativaPsp.getIdentificativoFlusso());
                    psp.setCodPsp(informativaPsp.getIdentificativoPSP());
                    psp.setRagioneSociale(informativaPsp.getRagioneSociale());
                    psp.setStornoGestito(informativaMaster.getStornoPagamento() == 1);
                    psp.setBolloGestito(informativaMaster.getMarcaBolloDigitale() == 1);
                    psp.setUrlInfo(informativaMaster.getUrlInformazioniPSP());

                    for (CtInformativaDetail informativaPspDetail : informativaPsp.getListaInformativaDetail()
                            .getInformativaDetails()) {
                        Canale canale = new Canale();
                        //canale.setCondizioni(informativaPspDetail.getCondizioniEconomicheMassime());
                        canale.setCodCanale(informativaPspDetail.getIdentificativoCanale());
                        //canale.setDescrizione(informativaPspDetail.getDescrizioneServizio());
                        //canale.setDisponibilita(informativaPspDetail.getDisponibilitaServizio());
                        canale.setModelloPagamento(
                                Canale.ModelloPagamento.toEnum(informativaPspDetail.getModelloPagamento()));
                        canale.setPsp(psp);
                        canale.setTipoVersamento(
                                Canale.TipoVersamento.toEnum(informativaPspDetail.getTipoVersamento().name()));
                        //canale.setUrlInfo(informativaPspDetail.getUrlInformazioniCanale());
                        canale.setCodIntermediario(informativaPspDetail.getIdentificativoIntermediario());
                        psp.getCanalis().add(canale);
                    }

                    catalogoPsp.add(psp);
                    log.debug("Acquisita informativa [codPsp: " + psp.getCodPsp() + "]");
                }

                // Completata acquisizione del Catalogo dal Nodo dei Pagamenti.

                // Disabilito tutti i PSP e li aggiorno o inserisco in base
                // a quello che ho trovato sul catalogo.
                setAutoCommit(false);

                PspBD pspBD = new PspBD(this);
                List<it.govpay.bd.model.Psp> oldPsps = pspBD.getPsp();
                while (!oldPsps.isEmpty()) {
                    it.govpay.model.Psp psp = oldPsps.remove(0);
                    // Cerco il psp nel Catalogo appena ricevuto
                    boolean trovato = false;
                    for (int i = 0; i < catalogoPsp.size(); i++) {
                        if (catalogoPsp.get(i).getCodPsp().equals(psp.getCodPsp())) {

                            // Il psp e' nel catalogo, va aggiornato. 
                            // Rimuovo la versione aggiornata dal catalogo e lo mando in update
                            log.debug("Aggiornamento [codPsp: " + psp.getCodPsp() + "]");
                            ctx.log("psp.aggiornamentoPspAggiornatoPSP", psp.getCodPsp(),
                                    psp.getRagioneSociale());
                            response.add(psp.getRagioneSociale() + " (" + psp.getCodPsp()
                                    + ")#Acquisita versione aggiornata.");
                            pspBD.updatePsp(catalogoPsp.get(i));
                            catalogoPsp.remove(i);
                            trovato = true;
                            break;
                        }
                    }

                    if (!trovato) {
                        // Il psp non e' nel catalogo.
                        // Se era attivo, lo disattivo.
                        if (psp.isAbilitato()) {
                            log.info("Disabilitazione [codPsp: " + psp.getCodPsp() + "]");
                            ctx.log("psp.aggiornamentoPspDisabilitatoPSP", psp.getCodPsp(),
                                    psp.getRagioneSociale());
                            response.add(psp.getRagioneSociale() + " (" + psp.getCodPsp() + ")#Disabilitato.");
                            pspBD.disablePsp(psp.getId());
                        }
                    }
                }

                // I psp rimasti nel catalogo, sono nuovi e vanno aggiunti
                for (it.govpay.bd.model.Psp psp : catalogoPsp) {
                    log.info("Inserimento [codPsp: " + psp.getCodPsp() + "]");
                    ctx.log("psp.aggiornamentoPspInseritoPSP", psp.getCodPsp(), psp.getRagioneSociale());
                    response.add(psp.getRagioneSociale() + " (" + psp.getCodPsp() + ")#Aggiunto al registro.");
                    pspBD.insertPsp(psp);
                }

                commit();

                log.info("Aggiornamento Registro PSP completato.");
                ctx.log("psp.aggiornamentoPspRichiestaOk");
                acquisizioneOk = true;
                break;
            } catch (Exception e) {
                log.warn("Errore di acquisizione del Catalogo dati Informativi [Intermediario:"
                        + intermediario.getCodIntermediario() + " Stazione:" + stazione.getCodStazione() + "]",
                        e);
                ctx.log("psp.aggiornamentoPspRichiestaKo", e.getMessage());
                lastError = e;
                continue;
            } finally {
                ctx.closeTransaction(transactionId);
            }
        }

        if (acquisizioneOk) {
            ctx.log("psp.aggiornamentoPspOk");
            if (response.isEmpty()) {
                return "Acquisizione completata#Nessun psp acquisito.";
            } else {
                return StringUtils.join(response, "|");
            }
        } else {
            log.error("Impossibile aggiornare la lista dei Psp.", lastError);
            ctx.log("psp.aggiornamentoPspKo",
                    lastError == null ? "[-- No exception found --]" : lastError.getMessage());
            return "Acquisizione fallita#Riscontrato errore:" + lastError.getMessage();
        }
    } catch (Throwable se) {
        rollback();
        ctx.log("psp.aggiornamentoPspKo", se.getMessage());
        log.error("Impossibile aggiornare la lista dei Psp.", se);
        throw new GovPayException(se, "Impossibile aggiornare la lista dei Psp.");
    } finally {
        ctx.closeTransaction(transactionId);
    }
}