Example usage for org.dom4j.io XMLWriter XMLWriter

List of usage examples for org.dom4j.io XMLWriter XMLWriter

Introduction

In this page you can find the example usage for org.dom4j.io XMLWriter XMLWriter.

Prototype

public XMLWriter(OutputStream out, OutputFormat format) throws UnsupportedEncodingException 

Source Link

Usage

From source file:com.thinkberg.moxo.dav.PropFindHandler.java

License:Apache License

public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    SAXReader saxReader = new SAXReader();
    try {/*from   ww w  . j av a 2 s  .com*/
        Document propDoc = saxReader.read(request.getInputStream());
        // log(propDoc);
        Element propFindEl = propDoc.getRootElement();
        Element propEl = (Element) propFindEl.elementIterator().next();
        String propElName = propEl.getName();

        List<String> requestedProperties = new ArrayList<String>();
        boolean ignoreValues = false;
        if (TAG_PROP.equals(propElName)) {
            for (Object id : propEl.elements()) {
                requestedProperties.add(((Element) id).getName());
            }
        } else if (TAG_ALLPROP.equals(propElName)) {
            requestedProperties = DavResource.ALL_PROPERTIES;
        } else if (TAG_PROPNAMES.equals(propElName)) {
            requestedProperties = DavResource.ALL_PROPERTIES;
            ignoreValues = true;
        }

        FileObject object = getResourceManager().getFileObject(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 = getMultiStatusRespons(object, requestedProperties,
                    getBaseUrl(request), getDepth(request), ignoreValues);
            //log(multiStatusResponse);

            // write the actual response
            XMLWriter writer = new XMLWriter(response.getWriter(), OutputFormat.createCompactFormat());
            writer.write(multiStatusResponse);
            writer.flush();
            writer.close();

        } else {
            log("!! " + object.getName().getPath() + " NOT FOUND");
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        }
    } catch (DocumentException e) {
        log("!! inavlid request: " + e.getMessage());
        response.sendError(HttpServletResponse.SC_BAD_REQUEST);
    }
}

From source file:com.thinkberg.moxo.dav.PropPatchHandler.java

License:Apache License

public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
    FileObject object = getResourceManager().getFileObject(request.getPathInfo());

    try {// ww  w. j a v  a  2  s .co  m
        LockManager.getInstance().checkCondition(object, getIf(request));
    } catch (LockException e) {
        if (e.getLocks() != null) {
            response.sendError(SC_LOCKED);
        } else {
            response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
        }
        return;
    }

    SAXReader saxReader = new SAXReader();
    try {
        Document propDoc = saxReader.read(request.getInputStream());
        //      log(propDoc);

        response.setContentType("text/xml");
        response.setCharacterEncoding("UTF-8");
        response.setStatus(SC_MULTI_STATUS);

        if (object.exists()) {
            Document resultDoc = DocumentHelper.createDocument();
            Element multiStatusResponse = resultDoc.addElement("multistatus", "DAV:");
            Element responseEl = multiStatusResponse.addElement("response");
            try {
                URL url = new URL(getBaseUrl(request), URLEncoder.encode(object.getName().getPath(), "UTF-8"));
                log("!! " + url);
                responseEl.addElement("href").addText(url.toExternalForm());
            } catch (Exception e) {
                e.printStackTrace();
            }

            Element propstatEl = responseEl.addElement("propstat");
            Element propEl = propstatEl.addElement("prop");

            Element propertyUpdateEl = propDoc.getRootElement();
            for (Object elObject : propertyUpdateEl.elements()) {
                Element el = (Element) elObject;
                if ("set".equals(el.getName())) {
                    for (Object propObject : el.elements()) {
                        setProperty(propEl, object, (Element) propObject);
                    }
                } else if ("remove".equals(el.getName())) {
                    for (Object propObject : el.elements()) {
                        removeProperty(propEl, object, (Element) propObject);
                    }
                }
            }
            propstatEl.addElement("status").addText(DavResource.STATUS_403);

            //        log(resultDoc);

            // write the actual response
            XMLWriter writer = new XMLWriter(response.getWriter(), OutputFormat.createCompactFormat());
            writer.write(resultDoc);
            writer.flush();
            writer.close();
        } else {
            log("!! " + object.getName().getPath() + " NOT FOUND");
            response.sendError(HttpServletResponse.SC_NOT_FOUND);
        }
    } catch (DocumentException e) {
        log("!! inavlid request: " + e.getMessage());
        response.sendError(HttpServletResponse.SC_BAD_REQUEST);
    }
}

From source file:com.thinkberg.moxo.dav.WebdavHandler.java

License:Apache License

void log(Node element) {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try {//  w  w w  .j a  v  a  2s . c  o  m
        XMLWriter xmlWriter = new XMLWriter(bos, OutputFormat.createPrettyPrint());
        xmlWriter.write(element);
        System.out.print(bos.toString());
    } catch (IOException e) {
        servlet.log("!! " + e.getMessage());
    }
}

From source file:com.thinkberg.webdav.LockHandler.java

License:Apache License

protected void logXml(Node element) {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try {/*w  ww . jav a 2s . co m*/
        XMLWriter xmlWriter = new XMLWriter(bos, OutputFormat.createPrettyPrint());
        xmlWriter.write(element);
        LOG.debug(bos.toString());
    } catch (IOException e) {
        LOG.debug("ERROR writing XML log: " + e.getMessage());
    }
}

From source file:com.thinkberg.webdav.PropFindHandler.java

License:Apache License

/**
 * Handle a PROPFIND request./*from  www  .ja va  2 s . co  m*/
 *
 * @param request  the servlet request
 * @param response the servlet response
 * @throws IOException if there is an error that cannot be handled normally
 */
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:com.thinkberg.webdav.PropPatchHandler.java

License:Apache License

/**
 * Handle a PROPPATCH request./*from  w  ww .j  a va 2 s .  co m*/
 *
 * @param request  the servlet request
 * @param response the servlet response
 * @throws IOException if there is an error that cannot be handled normally
 */
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:com.thinkberg.webdav.WebdavHandler.java

License:Apache License

void logXml(Node element) {
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try {/*from  ww  w .  ja v  a  2s  . c om*/
        XMLWriter xmlWriter = new XMLWriter(bos, OutputFormat.createPrettyPrint());
        xmlWriter.write(element);
        LogFactory.getLog(this.getClass()).debug(bos.toString());
    } catch (IOException e) {
        LogFactory.getLog(this.getClass()).error(e.getMessage());
    }
}

From source file:com.thoughtworks.xstream.io.xml.Dom4JDriver.java

License:Open Source License

public HierarchicalStreamWriter createWriter(final Writer out) {
    final HierarchicalStreamWriter[] writer = new HierarchicalStreamWriter[1];
    final FilterWriter filter = new FilterWriter(out) {
        public void close() {
            writer[0].close();/*from  w ww.j  a  v a2  s .  com*/
        }
    };
    writer[0] = new Dom4JXmlWriter(new XMLWriter(filter, outputFormat), getNameCoder());
    return writer[0];
}

From source file:com.tmount.util.FileUtils.java

License:Open Source License

 /**
 * ?/*from ww w .j  av a2  s  . c  o m*/
 * @param fileName ??
 */
private static void initFile(String fileName){
      
   Document document = DocumentHelper.createDocument();
   Element root = document.addElement("auth");
   Element billdata = root.addElement("balance");
   billdata.setText("100");
   OutputFormat format = OutputFormat.createPrettyPrint();
   format.setEncoding("GBK");
   XMLWriter writer;
   try {
      writer = new XMLWriter(new FileWriter(new File(
            fileName)), format);
      writer.write(document); // 
      writer.close();
   } catch (IOException e) {
      log.info(" *** IOException *** ",e);
   }
      
}

From source file:com.uletian.ultcrm.business.service.CustomerInfoMessageService.java

public void handlerCustomerInfo(String message) throws SAXException, DocumentException, IOException {
    StringWriter writer = new StringWriter();
    OutputFormat format = OutputFormat.createPrettyPrint();
    Document doc;// w ww .ja  v a  2s.  com
    doc = DocumentHelper.parseText(message);
    XMLWriter xmlwriter = new XMLWriter(writer, format);
    xmlwriter.write(doc);
    logger.info("??\n" + writer.toString());

    Element element = doc.getRootElement();
    String action = element.elementText("action");
    String sourceSys = element.elementText("sourceSys");
    String ultcrmid = element.elementText("ultcrmid");
    String crmid = element.elementText("crmid");
    String name = element.elementText("name");
    String sexy = element.elementText("sexy");
    String telephone = element.elementText("telephone");
    String country = element.elementText("country");
    String province = element.elementText("province");
    String city = element.elementText("city");
    String address = element.elementText("address");
    String postcode = element.elementText("postcode");

    if (!"UPDATE".equals(action)) {
        logger.debug("?\ncrmid:" + crmid + "\nultcrmid:" + ultcrmid);
        return;
    }
    Customer customer = customerRepository.findOne(Long.decode(ultcrmid));
    if (customer == null) {
        logger.warn("?" + ultcrmid);
        return;
    }
    customer.setPhone(telephone);
    customer.setSyncid(crmid);
    customer.setName(name);
    customer.setSex(sexy);
    customer.setCountry(country);
    customer.setProvince(province);
    customer.setCity(city);
    customer.setAddress(address);
    customer.setPostcode(postcode);
    customer.setCrmCustomerId(crmid);
    customerRepository.save(customer);

    Element elements = element.element("techs");
    Iterator<Element> iterator = elements.elementIterator("tech");
    ArrayList<Tech> techs = new ArrayList<Tech>(0);

    while (iterator.hasNext()) {
        Element techElement = iterator.next();
        String code = techElement.elementText("code");
        String techlevelno = techElement.elementText("techlevelno");
        String techerno = techElement.elementText("techerno");
        String techname = techElement.elementText("techname");
        String coursetime = techElement.elementText("coursetime");
        String trainExpireDate = techElement.elementText("trainExpireDate");
        String trainCompany = techElement.elementText("trainCompany");
        String crmTechId = techElement.elementText("crmtechid");
        String courseCode = techElement.elementText("courseCode");
        String techColor = techElement.elementText("techColor");
        String registerDate = techElement.elementText("registerDate");
        String courseLicense = techElement.elementText("courseLicense");
        String checkExpireDate = techElement.elementText("checkExpireDate");
        String memberLevel = techElement.elementText("memberLevel");

        String nextMaintCoursetime = techElement.elementText("nextMaintCoursetime");
        String nextMaintDate = techElement.elementText("nextMaintDate");
        String lastConsumeDate = techElement.elementText("lastConsumeDate");

        Tech tech = techRepository.findTechByTechlevelno(techlevelno);
        if (tech == null) {
            tech = new Tech();
        }
        TechModel techModel = null;
        try {
            techModel = techModelRepository.findModelByCode(code);
        } catch (Exception e) {
        }
        if (techModel == null) {
            logger.warn("??\n" + code);
            techModel = techModelRepository.findModelByCode("OTHERS");
        }
        tech.setCrmTechId(crmTechId);
        tech.setTechlevelno(techlevelno);
        tech.setTechModel(techModel);
        tech.setTechSery(techModel.getTechSery());
        tech.setTechCourse(techModel.getTechSery().getTechCourse());
        tech.setCustomer(customer);
        tech.setCode(code);
        tech.setTechlevelno(techlevelno);
        tech.setTecherno(techerno);
        tech.setTechname(techname);
        tech.setCoursetime(coursetime);

        try {
            tech.setTrainExpireDate(sdf.parse(trainExpireDate));
        } catch (ParseException e) {
            logger.warn("???\n" + trainExpireDate, e);
        }
        tech.setTrainCompany(trainCompany);
        tech.setCourseCode(courseCode);
        tech.setMemberLevel(memberLevel);
        tech.setColor(techColor);
        try {
            tech.setRegisterDate(sdf.parse(registerDate));
        } catch (ParseException e) {
            logger.warn("??\n" + registerDate, e);
        }
        tech.setCourseLicense(courseLicense);
        try {
            tech.setCheckExpireDate(sdf.parse(checkExpireDate));
        } catch (ParseException e) {
            logger.warn("??\n" + checkExpireDate, e);
        }

        // ?by xiecheng 2015-11-19
        tech.setNextMaintCoursetime(nextMaintCoursetime);
        try {
            tech.setNextMaintDate(sdf.parse(nextMaintDate));
        } catch (ParseException e) {
            logger.warn("??\n" + nextMaintDate, e);
        }

        try {
            tech.setLastConsumeDate(sdf.parse(lastConsumeDate));
        } catch (ParseException e) {
            logger.warn("??\n" + lastConsumeDate, e);
        }

        techs.add(tech);
    }
    techRepository.save(techs);
}