package org.infinispan.persistence.rest.configuration; import javax.xml.stream.XMLStreamException; import org.infinispan.configuration.serializing.AbstractStoreSerializer; import org.infinispan.configuration.serializing.ConfigurationSerializer; import org.infinispan.configuration.serializing.XMLExtendedStreamWriter; /** * RestStoreConfigurationSerializer. * * @author Tristan Tarrant * @since 9.0 */ public class RestStoreConfigurationSerializer extends AbstractStoreSerializer implements ConfigurationSerializer<RestStoreConfiguration> { @Override public void serialize(XMLExtendedStreamWriter writer, RestStoreConfiguration configuration) throws XMLStreamException { writer.writeStartElement(Element.REST_STORE); configuration.attributes().write(writer); writeCommonStoreSubAttributes(writer, configuration); writeServer(writer, configuration); writeConnectionPool(writer, configuration.connectionPool()); writeCommonStoreElements(writer, configuration); writer.writeEndElement(); } private void writeConnectionPool(XMLExtendedStreamWriter writer, ConnectionPoolConfiguration configuration) throws XMLStreamException { writer.writeStartElement(Element.CONNECTION_POOL); writer.writeAttribute(Attribute.BUFFER_SIZE, Integer.toString(configuration.bufferSize())); writer.writeAttribute(Attribute.MAX_CONNECTIONS_PER_HOST, Integer.toString(configuration.maxConnectionsPerHost())); writer.writeAttribute(Attribute.MAX_TOTAL_CONNECTIONS, Integer.toString(configuration.maxTotalConnections())); writer.writeAttribute(Attribute.CONNECTION_TIMEOUT, Integer.toString(configuration.connectionTimeout())); writer.writeAttribute(Attribute.SOCKET_TIMEOUT, Integer.toString(configuration.socketTimeout())); writer.writeAttribute(Attribute.TCP_NO_DELAY, Boolean.toString(configuration.tcpNoDelay())); writer.writeEndElement(); } private void writeServer(XMLExtendedStreamWriter writer, RestStoreConfiguration configuration) throws XMLStreamException { writer.writeStartElement(Element.SERVER); writer.writeAttribute(Attribute.HOST, configuration.host()); writer.writeAttribute(Attribute.PORT, Integer.toString(configuration.port())); writer.writeEndElement(); } }