diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/geo-backend/src/test/java/de/intevation/gnv/geobackend/sde/datasources/ArcSDEConnectionPoolTestCase.java	Wed Sep 02 15:15:52 2009 +0000
@@ -0,0 +1,123 @@
+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