org.geoserver.cluster.impl.handlers.DocumentFileHandler.java Source code

Java tutorial

Introduction

Here is the source code for org.geoserver.cluster.impl.handlers.DocumentFileHandler.java

Source

/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved
 * (c) 2001 - 2013 OpenPlans
 * This code is licensed under the GPL 2.0 license, available at the root
 * application directory.
 */
package org.geoserver.cluster.impl.handlers;

import java.io.OutputStream;

import org.apache.commons.io.IOUtils;
import org.geoserver.cluster.JMSEventHandler;

import com.thoughtworks.xstream.XStream;
import org.geoserver.platform.resource.Resources;

/**
 * XML file handler:<br>
 * This class can be used to handle small XML files using JDOM
 * 
 * @author Carlo Cancellieri - carlo.cancellieri@geo-solutions.it
 * 
 */
public class DocumentFileHandler extends JMSEventHandler<String, DocumentFile> {
    public DocumentFileHandler(XStream xstream, Class clazz) {
        super(xstream, clazz);
    }

    @Override
    public boolean synchronize(DocumentFile event) throws Exception {
        try (OutputStream fout = Resources.fromPath(event.getResourcePath()).out()) {
            xstream.toXML(event.getBody(), fout);
            return true;
        } catch (IllegalStateException e) {
            if (LOGGER.isLoggable(java.util.logging.Level.SEVERE))
                LOGGER.severe(e.getLocalizedMessage());
            throw e;
        }
    }

    @Override
    public String serialize(DocumentFile o) throws Exception {
        return xstream.toXML(o);
    }

    @Override
    public DocumentFile deserialize(String o) throws Exception {
        return (DocumentFile) xstream.fromXML(o);
    }

}