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 }

http://dive4elements.wald.intevation.org