view geo-backend/src/test/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnectionPoolTestCase.java @ 130:e4eacd613356

Implementierung Datenzugriff auf die ArcSDE über java.sql. Methodiken ChangeLog wird nachgereicht da SubversionClientincompatiblitäten vorhanden sind. geo-backend/trunk@7 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Wed, 02 Sep 2009 15:15:52 +0000
parents
children 5a583cff97ea
line wrap: on
line source
package de.intevation.gnv.geobackend.sde.datasources;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.sql.ResultSet;

import junit.framework.TestCase;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;

import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPool;
import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory;
import de.intevation.gnv.geobackend.base.connectionpool.exception.ConnectionException;
import de.intevation.gnv.geobackend.sde.connectionpool.ArcSDEPoolableObjectFactory;

/**
 * TestCase for the usage of the ArcSDEConnectionPool.
 * @author Tim Englich <tim.englich@intevation.de>
 *
 */
public class ArcSDEConnectionPoolTestCase extends TestCase {

	/**
     * the logger, used to log exceptions and additonaly information
     */
    private static Logger log = null;
    
    static {
    	BasicConfigurator.configure();
    	log = Logger.getLogger(ArcSDEPoolableObjectFactory.class);
    }
	
	
	
	/**
	 * 
	 */
	public ArcSDEConnectionPoolTestCase() {
		super();
	}

	/**
	 * 
	 * @param name
	 */
	public ArcSDEConnectionPoolTestCase(String name) {
		super(name);
	}
	
	public void testArcSDEConnectionPool(){
		log.debug("ArcSDEConnectionPoolTestCase.testArcSDEConnectionPool");
		try {
			InputStream inputStream = new FileInputStream("src/test/ressources/ArcSDEConnectionPoolTestCase.properties");
			Properties properties = new Properties();
			properties.load(inputStream);
			
			ConnectionPoolFactory cpf = ConnectionPoolFactory.getInstance();
			cpf.initializeConnectionPool(properties);
			
			assertTrue(cpf.isInitialized());
			log.debug("ConnectionPoolFactory ist initialisiert.");
			
			ConnectionPool cp = cpf.getConnectionPool();
			assertNotNull(cp);
			log.debug("ConnectionPool ist initialisiert.");			
			
			Connection connection = null; 
			try{
				try {
					connection = cp.getConnection("N/N");
					assertNotNull(connection);
					log.debug("Connection ist initialisiert.");
				} catch (ConnectionException e) {
					log.error("Es traten Probleme bei der Verbinung zur Datenbank auf.");
					fail();
				}
				
				
				try {
		            Statement stmt = connection.createStatement();
		            ResultSet rs = stmt.executeQuery("Select MESHID, NAME from MEDIAN.MESH");
		            
		            while (rs.next()){
		            	log.debug(rs.getInt(1));
		            	log.debug(rs.getString(2));
		            	
		            	log.debug(rs.getInt("MESHID"));
		            	log.debug(rs.getString("NAME"));
		            }
		            
	            } catch (SQLException e) {
		            log.error(e,e);
	            }
			}finally{
				if (connection != null){
					try {
	                    connection.close();
                    } catch (SQLException e) {
	                    log.error(e,e);
	                    fail();
                    }
				}
			}
			
			
			
		} catch (FileNotFoundException e) {
			log.error(e,e);
			fail();
		} catch (IOException e) {
			log.error(e,e);
			fail();
		}	
	}
	
}

http://dive4elements.wald.intevation.org