Mercurial > dive4elements > gnv-client
comparison 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 |
comparison
equal
deleted
inserted
replaced
128:9b3f5a067c29 | 129:110e3ac1b7d2 |
---|---|
1 /* Copyright (C) 2007 con terra GmbH (http://www.conterra.de) | |
2 * All rights reserved | |
3 * | |
4 * $Id: SDEDatasource.java,v 1.6 2008/01/30 12:38:34 blume Exp $ | |
5 * | |
6 * created by: drewnak | |
7 * created at : 21.11.2007 | |
8 * created at : 14:35:53 | |
9 * | |
10 * modified by: $Author: blume $ | |
11 * modified at: $Date: 2008/01/30 12:38:34 $ | |
12 */ | |
13 package de.intevation.gnv.geobackend.sde.datasources; | |
14 | |
15 import java.util.Map; | |
16 | |
17 import org.apache.log4j.Logger; | |
18 | |
19 import com.esri.sde.sdk.client.SeConnection; | |
20 | |
21 import de.intevation.gnv.geobackend.sde.datasources.exception.TechnicalException; | |
22 | |
23 /** | |
24 * Concrete Implementation of the datasource interface. | |
25 * | |
26 * @author drewnak | |
27 */ | |
28 public class SDEDatasource extends Datasource { | |
29 | |
30 /** | |
31 * Default Logging instance | |
32 */ | |
33 private static final Logger sLogger = Logger.getLogger(SDEDatasource.class); | |
34 private static boolean sDebug = sLogger.isDebugEnabled(); | |
35 | |
36 public static final String KEY_URL = "sde.url"; | |
37 public static final String KEY_PORT = "sde.port"; | |
38 public static final String KEY_USER = "sde.user"; | |
39 public static final String KEY_PWD = "sde.password"; | |
40 public static final String KEY_DATABASE = "sde.database"; | |
41 | |
42 | |
43 /* (non-Javadoc) | |
44 * @see de.conterra.bsh.gdi.gnviewer.datasources.Datasource#init(java.lang.String, java.util.Map) | |
45 */ | |
46 protected void init(String pName, Map pParams) { | |
47 mName = pName; | |
48 mParameters = pParams; | |
49 if (!ArcSDEConnectionPool.isConfigured()) { | |
50 /* | |
51 <DataSource name="sde" classname="de.conterra.bsh.gdi.gnviewer.datasources.sde.SDEDatasource"> | |
52 <Parameter name="sde.url">localhost</Parameter> | |
53 <Parameter name="sde.user">bsh</Parameter> | |
54 <Parameter name="sde.password">bsh</Parameter> | |
55 <Parameter name="sde.port">5151</Parameter> | |
56 </DataSource> | |
57 */ | |
58 | |
59 String lServer; | |
60 int lPort = 0; | |
61 String lDatabase; | |
62 String lUser; | |
63 String lPwd; | |
64 | |
65 lServer = setStringParameter(pParams, KEY_URL); | |
66 lUser = setStringParameter(pParams, KEY_USER); | |
67 lPwd = setStringParameter(pParams, KEY_PWD); | |
68 lDatabase = setStringParameter(pParams, KEY_DATABASE); | |
69 lPort = setIntParameter(pParams, KEY_PORT); | |
70 // todo: read techparams from config(# of initial connections, TTL) | |
71 | |
72 ArcSDEConnectionParams lParams = new ArcSDEConnectionParams(lServer, lPort, lDatabase, lUser, lPwd, 0, 10, 60000); | |
73 try { | |
74 ArcSDEConnectionPool.configure(lParams); | |
75 } catch (TechnicalException e) { | |
76 sLogger.error(e.getMessage(), e); | |
77 | |
78 } | |
79 } | |
80 } | |
81 | |
82 private String setStringParameter(Map pParams, String pMapKey) { | |
83 if (pParams.containsKey(pMapKey)) { | |
84 return (String) pParams.get(pMapKey); | |
85 } else { | |
86 if (sDebug) sLogger.debug("no param config for key " + pMapKey); | |
87 return ""; | |
88 } | |
89 } | |
90 | |
91 private int setIntParameter(Map pParams, String pMapKey) { | |
92 if (pParams.containsKey(pMapKey)) { | |
93 return Integer.parseInt((String) pParams.get(pMapKey)); | |
94 } else { | |
95 if (sDebug) sLogger.debug("no param config for key " + pMapKey); | |
96 return -1; | |
97 } | |
98 } | |
99 | |
100 /* (non-Javadoc) | |
101 * @see java.lang.Object#toString() | |
102 */ | |
103 public String toString() { | |
104 return super.toString() + " " + mName; | |
105 } | |
106 | |
107 | |
108 /** | |
109 * (non-Javadoc) | |
110 * | |
111 * @see de.conterra.bsh.gdi.gnviewer.datasources.Datasource#getConnection() | |
112 */ | |
113 public DatasourceConnection getConnection() { | |
114 return new SDEConnection(); | |
115 } | |
116 | |
117 /** | |
118 * (non-Javadoc) | |
119 * | |
120 * @see de.conterra.bsh.gdi.gnviewer.datasources.Datasource#returnConnection(de.conterra.bsh.gdi.gnviewer.datasources.DatasourceConnection) | |
121 */ | |
122 public void returnConnection(DatasourceConnection pConnection) { | |
123 if (null != pConnection) { | |
124 try { | |
125 ArcSDEConnectionPool.getInstance().returnConnection((SeConnection) pConnection); | |
126 } catch (TechnicalException e) { | |
127 sLogger.error(e.getMessage(), e); | |
128 } | |
129 } | |
130 } | |
131 } |