All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kuali.common.impex.TableBucketHandler Maven / Gradle / Ivy

package org.kuali.common.impex;

import java.sql.Connection;
import java.util.List;

import javax.sql.DataSource;

import org.kuali.common.impex.service.ImpexContext;
import org.kuali.common.impex.service.ImpexGeneratorService;
import org.kuali.common.threads.ElementHandler;
import org.kuali.common.threads.ListIteratorContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.datasource.DataSourceUtils;

public class TableBucketHandler implements ElementHandler {

	private static final Logger logger = LoggerFactory.getLogger(TableBucketHandler.class);

	@Override
	public void handleElement(ListIteratorContext context, int index, TableBucket element) {
		DataSource dataSource = null;
		Connection conn = null;
		try {
			List tables = element.getTables();
			ImpexGeneratorService service = element.getService();
			ImpexContext impex = element.getContext();
			dataSource = impex.getDataSource();
			List results = element.getResults();
			conn = DataSourceUtils.getConnection(dataSource);
			for (TableContext table : tables) {
				logger.debug("Dumping {}", table.getName());
				DumpTableResult result = service.dumpTable(impex, table, conn);
				synchronized (results) {
					results.add(result);
				}
				// element.getProgressTracker().progressOccurred();
			}
		} catch (Exception e) {
			throw new IllegalStateException(e);
		} finally {
			if (conn != null) {
				DataSourceUtils.releaseConnection(conn, dataSource);
			}
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy