org.infinispan.persistence.jdbc.configuration.AbstractJdbcStoreConfigurationSerializer Maven / Gradle / Ivy
package org.infinispan.persistence.jdbc.configuration;
import static org.infinispan.configuration.serializing.SerializeUtils.writeOptional;
import javax.xml.stream.XMLStreamException;
import org.infinispan.commons.configuration.attributes.AttributeDefinition;
import org.infinispan.commons.configuration.attributes.AttributeSet;
import org.infinispan.configuration.serializing.AbstractStoreSerializer;
import org.infinispan.configuration.serializing.XMLExtendedStreamWriter;
/**
* AbstractJdbcStoreConfigurationSerializer.
*
* @author Tristan Tarrant
* @since 9.0
*/
public abstract class AbstractJdbcStoreConfigurationSerializer extends AbstractStoreSerializer {
protected void writeJdbcStoreAttributes(XMLExtendedStreamWriter writer, AbstractJdbcStoreConfiguration configuration) throws XMLStreamException {
configuration.attributes().write(writer);
}
private void writeJDBCStoreConnection(XMLExtendedStreamWriter writer, SimpleConnectionFactoryConfiguration configuration) throws XMLStreamException {
writer.writeStartElement(Element.SIMPLE_CONNECTION);
writeOptional(writer, Attribute.CONNECTION_URL, configuration.connectionUrl());
writeOptional(writer, Attribute.DRIVER_CLASS, configuration.driverClass());
writeOptional(writer, Attribute.USERNAME, configuration.username());
writeOptional(writer, Attribute.PASSWORD, configuration.password());
writer.writeEndElement();
}
private void writeJDBCStoreConnection(XMLExtendedStreamWriter writer, PooledConnectionFactoryConfiguration configuration) throws XMLStreamException {
writer.writeStartElement(Element.CONNECTION_POOL);
writeOptional(writer, Attribute.CONNECTION_URL, configuration.connectionUrl());
writeOptional(writer, Attribute.DRIVER_CLASS, configuration.driverClass());
writeOptional(writer, Attribute.USERNAME, configuration.username());
writeOptional(writer, Attribute.PASSWORD, configuration.password());
writer.writeEndElement();
}
private void writeJDBCStoreConnection(XMLExtendedStreamWriter writer, ManagedConnectionFactoryConfiguration configuration) throws XMLStreamException {
writer.writeStartElement(Element.DATA_SOURCE);
writer.writeAttribute(Attribute.JNDI_URL, configuration.jndiUrl());
writer.writeEndElement();
}
protected void writeJDBCStoreConnection(XMLExtendedStreamWriter writer, AbstractJdbcStoreConfiguration configuration) throws XMLStreamException {
ConnectionFactoryConfiguration cfc = configuration.connectionFactory();
if (cfc instanceof SimpleConnectionFactoryConfiguration) {
writeJDBCStoreConnection(writer, (SimpleConnectionFactoryConfiguration) cfc);
} else if (cfc instanceof PooledConnectionFactoryConfiguration) {
writeJDBCStoreConnection(writer, (PooledConnectionFactoryConfiguration) cfc);
} else if (cfc instanceof ManagedConnectionFactoryConfiguration) {
writeJDBCStoreConnection(writer, (ManagedConnectionFactoryConfiguration) cfc);
}
}
protected void writeJDBCStoreTable(XMLExtendedStreamWriter writer, Element element, TableManipulationConfiguration configuration) throws XMLStreamException {
AttributeSet attributes = configuration.attributes();
writer.writeStartElement(element);
attributes.write(writer, TableManipulationConfiguration.TABLE_NAME_PREFIX, Attribute.PREFIX);
attributes.write(writer, TableManipulationConfiguration.BATCH_SIZE, Attribute.BATCH_SIZE);
attributes.write(writer, TableManipulationConfiguration.FETCH_SIZE, Attribute.FETCH_SIZE);
attributes.write(writer, TableManipulationConfiguration.CREATE_ON_START, Attribute.CREATE_ON_START);
attributes.write(writer, TableManipulationConfiguration.DROP_ON_EXIT, Attribute.DROP_ON_EXIT);
writeJDBCStoreColumn(writer, Element.ID_COLUMN, attributes, TableManipulationConfiguration.ID_COLUMN_NAME, TableManipulationConfiguration.ID_COLUMN_TYPE);
writeJDBCStoreColumn(writer, Element.DATA_COLUMN, attributes, TableManipulationConfiguration.DATA_COLUMN_NAME, TableManipulationConfiguration.DATA_COLUMN_TYPE);
writeJDBCStoreColumn(writer, Element.TIMESTAMP_COLUMN, attributes, TableManipulationConfiguration.TIMESTAMP_COLUMN_NAME, TableManipulationConfiguration.TIMESTAMP_COLUMN_TYPE);
writer.writeEndElement();
}
private void writeJDBCStoreColumn(XMLExtendedStreamWriter writer, Element element, AttributeSet attributes, AttributeDefinition> columnName,
AttributeDefinition> columnType) throws XMLStreamException {
writer.writeStartElement(element);
attributes.write(writer, columnName, Attribute.NAME);
attributes.write(writer, columnType, Attribute.TYPE);
writer.writeEndElement();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy