/* (c) 2017 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.rest.wrapper; import org.geoserver.config.util.XStreamPersister; import org.geoserver.rest.RestBaseController; import org.geoserver.rest.converters.XStreamMessageConverter; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpInputMessage; import java.io.IOException; import java.io.InputStream; /** * Wrapper around {@link HttpInputMessage} used by {@link XStreamMessageConverter} to configure the persister before * XStream objects get read. */ public class RestHttpInputWrapper implements HttpInputMessage { HttpInputMessage message; RestBaseController controller; public RestHttpInputWrapper(HttpInputMessage message, RestBaseController controller) { this.message = message; this.controller = controller; } /** * Apply configuration to the XStreamPersister based on the converter * * @param persister The XStream persister * @param xStreamMessageConverter The XStream converter */ public void configurePersister(XStreamPersister persister, XStreamMessageConverter xStreamMessageConverter) { controller.configurePersister(persister, xStreamMessageConverter); } @Override public InputStream getBody() throws IOException { return message.getBody(); } @Override public HttpHeaders getHeaders() { return message.getHeaders(); } }