Mercurial > dive4elements > gnv-client
view geo-backend/src/main/java/de/intevation/gnv/geobackend/sde/datasources/SDEDatasource.java @ 129:110e3ac1b7d2
Library Dependencies Added to pom.xml-File
Import of SDE-Datasources
geo-backend/trunk@5 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Wed, 02 Sep 2009 09:07:03 +0000 |
parents | |
children |
line wrap: on
line source
/* Copyright (C) 2007 con terra GmbH (http://www.conterra.de) * All rights reserved * * $Id: SDEDatasource.java,v 1.6 2008/01/30 12:38:34 blume Exp $ * * created by: drewnak * created at : 21.11.2007 * created at : 14:35:53 * * modified by: $Author: blume $ * modified at: $Date: 2008/01/30 12:38:34 $ */ package de.intevation.gnv.geobackend.sde.datasources; import java.util.Map; import org.apache.log4j.Logger; import com.esri.sde.sdk.client.SeConnection; import de.intevation.gnv.geobackend.sde.datasources.exception.TechnicalException; /** * Concrete Implementation of the datasource interface. * * @author drewnak */ public class SDEDatasource extends Datasource { /** * Default Logging instance */ private static final Logger sLogger = Logger.getLogger(SDEDatasource.class); private static boolean sDebug = sLogger.isDebugEnabled(); public static final String KEY_URL = "sde.url"; public static final String KEY_PORT = "sde.port"; public static final String KEY_USER = "sde.user"; public static final String KEY_PWD = "sde.password"; public static final String KEY_DATABASE = "sde.database"; /* (non-Javadoc) * @see de.conterra.bsh.gdi.gnviewer.datasources.Datasource#init(java.lang.String, java.util.Map) */ protected void init(String pName, Map pParams) { mName = pName; mParameters = pParams; if (!ArcSDEConnectionPool.isConfigured()) { /* <DataSource name="sde" classname="de.conterra.bsh.gdi.gnviewer.datasources.sde.SDEDatasource"> <Parameter name="sde.url">localhost</Parameter> <Parameter name="sde.user">bsh</Parameter> <Parameter name="sde.password">bsh</Parameter> <Parameter name="sde.port">5151</Parameter> </DataSource> */ String lServer; int lPort = 0; String lDatabase; String lUser; String lPwd; lServer = setStringParameter(pParams, KEY_URL); lUser = setStringParameter(pParams, KEY_USER); lPwd = setStringParameter(pParams, KEY_PWD); lDatabase = setStringParameter(pParams, KEY_DATABASE); lPort = setIntParameter(pParams, KEY_PORT); // todo: read techparams from config(# of initial connections, TTL) ArcSDEConnectionParams lParams = new ArcSDEConnectionParams(lServer, lPort, lDatabase, lUser, lPwd, 0, 10, 60000); try { ArcSDEConnectionPool.configure(lParams); } catch (TechnicalException e) { sLogger.error(e.getMessage(), e); } } } private String setStringParameter(Map pParams, String pMapKey) { if (pParams.containsKey(pMapKey)) { return (String) pParams.get(pMapKey); } else { if (sDebug) sLogger.debug("no param config for key " + pMapKey); return ""; } } private int setIntParameter(Map pParams, String pMapKey) { if (pParams.containsKey(pMapKey)) { return Integer.parseInt((String) pParams.get(pMapKey)); } else { if (sDebug) sLogger.debug("no param config for key " + pMapKey); return -1; } } /* (non-Javadoc) * @see java.lang.Object#toString() */ public String toString() { return super.toString() + " " + mName; } /** * (non-Javadoc) * * @see de.conterra.bsh.gdi.gnviewer.datasources.Datasource#getConnection() */ public DatasourceConnection getConnection() { return new SDEConnection(); } /** * (non-Javadoc) * * @see de.conterra.bsh.gdi.gnviewer.datasources.Datasource#returnConnection(de.conterra.bsh.gdi.gnviewer.datasources.DatasourceConnection) */ public void returnConnection(DatasourceConnection pConnection) { if (null != pConnection) { try { ArcSDEConnectionPool.getInstance().returnConnection((SeConnection) pConnection); } catch (TechnicalException e) { sLogger.error(e.getMessage(), e); } } } }