Yep Tobia is organised :-) I just had the emails flagged as interesting; should of checked against Jira before pestering.
Jody On Thu, Aug 5, 2010 at 12:00 PM, Ben Caradoc-Davies <[email protected]> wrote: > Here are two Oracle patches submitted by Tobia. I think Andrea was going to > commit one, but I do not see any mention in the issue that he did. > http://jira.codehaus.org/browse/GEOT-3175 > http://jira.codehaus.org/browse/GEOT-3176 > > Tobia is now a committer. > > On 05/08/10 09:48, Jody Garnett wrote: >> >> Hey Tobia; >> >> I am sifting through email looking at the state of Oracle (and plan to >> release geotools 2.6.5 tomorrow). There are a number of good ideas you >> have provided (both this email and one on byte[] mappings). >> >> Did you ever create a jira and push these changes back into the project? >> >> jody >> >> On Fri, Jul 2, 2010 at 8:35 PM, Tobia Di Pisa >> <[email protected]> wrote: >>> >>> Hi, >>> >>> I have consulted the Oracle documentation at this link: >>> >>> >>> http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.html#top >>> (in the 'Connections' section) >>> >>> and I see that the HOST and PORT parameters are not always required to >>> compose the JDBC URL. >>> >>> In the current 'getJDBCUrl' method the DATABASE parameter is alwais >>> required >>> to compose the JDBC URL but, in the JDBCDataStoreFactory >>> class, this parameter not have the "required" flag set up. >>> >>> To resolve this problem I modified the OracleNGDataStoreFactory class as >>> follow: >>> >>> 1) Marking HOST and PORT parameters as not "required" and DATABASE as >>> "required": >>> >>> ... >>> >>> /** parameter for database port */ >>> public static final Param PORT = new Param("port", Integer.class, >>> "Port", false, 1521); >>> >>> /** parameter for database host */ >>> public static final Param HOST = new Param("host", String.class, >>> "Host", >>> false, "localhost"); >>> >>> /** parameter for database instance */ >>> public static final Param DATABASE = new Param("database", >>> String.class, >>> "Database", true); >>> >>> ... >>> >>> 2) Modifying 'getJDBCurl' method as follow: >>> >>> ... >>> >>> @Override >>> protected String getJDBCUrl(Map params) throws IOException { >>> String db = (String) DATABASE.lookUp(params); >>> String host = (String) HOST.lookUp(params); >>> Integer port =(Integer) PORT.lookUp(params); >>> >>> if(db.startsWith("(")) >>> return JDBC_PATH.concat(db); >>> else if(db.startsWith("/")&& host != null&& port != null) >>> return >>> >>> JDBC_PATH.concat("//").concat(host).concat(":").concat(port.toString()).concat(db); >>> else if(host != null&& port != null) >>> return >>> >>> JDBC_PATH.concat(host).concat(":").concat(port.toString()).concat(":").concat(db); >>> else >>> throw new IOException("Unable to properly compose the JDBC >>> URL >>> string, some parameters as host and port may be null !"); >>> } >>> >>> ... >>> >>> 3) Modifying the 'setupParameters' method introducing the new HOST, PORT >>> and >>> DATABASE definitions: >>> >>> ... >>> >>> @Override >>> protected void setupParameters(Map parameters) { >>> // NOTE: when adding parameters here remember to add them to >>> OracleNGOCIDataStoreFactory and >>> // OracleNGJNDIDataStoreFactory >>> >>> super.setupParameters(parameters); >>> parameters.put(LOOSEBBOX.key, LOOSEBBOX); >>> parameters.put(MAX_OPEN_PREPARED_STATEMENTS.key, >>> MAX_OPEN_PREPARED_STATEMENTS); >>> parameters.put(PORT.key, PORT); >>> parameters.put(HOST.key, HOST); >>> parameters.put(DATABASE.key, DATABASE); >>> parameters.put(DBTYPE.key, DBTYPE); >>> } >>> >>> ... >>> >>> Before opening a JIRA I propose these changes. >>> >>> >>> Best regards, >>> Tobia >>> >>> >>> 2010/7/1 Andrea Aime<[email protected]> >>>> >>>> Tobia Di Pisa ha scritto: >>>>> >>>>> Hi all, >>>>> >>>>> I need to access an Oracle data store using the following parameters: >>>>> >>>>> USER: xxx >>>>> >>>>> PASSWD: xxx >>>>> >>>>> DATABASE: (DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST >>>>> = >>>>> xxx)(PORT = xxxx))(ADDRESS = (PROTOCOL = TCP)(HOST = xxx)(PORT = >>>>> xxxx))(LOAD_BALANCE = >>>>> >>>>> yes))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xxx.xxx.xxx.xx)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5)))) >>>>> >>>>> When you run the OracleNGDataStoreFactory.getJDBCUrl (Map params) >>>>> protected method, the execution of the 'lookUp' function throws an >>>>> IOException as the HOST and PORT parameters are required. >>>>> >>>>> This is the method code: >>>>> >>>>> ... >>>>> @Override >>>>> protected String getJDBCUrl(Map params) throws IOException { >>>>> String host = (String) HOST.lookUp(params); >>>>> String db = (String) DATABASE.lookUp(params); >>>>> int port = (Integer) PORT.lookUp(params); >>>>> >>>>> if( db.startsWith("(") ) >>>>> return JDBC_PATH + db; >>>>> else if( db.startsWith("/") ) >>>>> return JDBC_PATH + "//" + host + ":" + port + db; >>>>> else >>>>> return JDBC_PATH + host + ":" + port + ":" + db; >>>>> } >>>>> ... >>>>> In fact, if the DATABASE parameter starts with "(", the HOST and >>>>> PORT parameters are not used because the function returns 'JDBC_PATH + >>>>> db'. >>>>> To resolve this problem I used this code: >>>>> >>>>> ... >>>>> @Override >>>>> protected String getJDBCUrl(Map params) throws IOException { >>>>> String db = (String) DATABASE.lookUp(params); >>>>> if(db.startsWith("(")) >>>>> return JDBC_PATH + db; String host = >>>>> (String) HOST.lookUp(params); int port = (Integer) >>>>> PORT.lookUp(params); >>>>> if( db.startsWith("/") ) >>>>> return JDBC_PATH + "//" + host + ":" + port + db; >>>>> else >>>>> return JDBC_PATH + host + ":" + port + ":" + db; } >>>>> ... >>>>> >>>>> Are there any contraindications to change the method 'getJDBCUrl' in >>>>> this >>>>> way ? >>>> >>>> I don't think so, but for jdbc-ng changes you should open a Jira and >>>> cc me, Justin and Christian (the module maintainers). >>>> >>>> Is the above really solving the issue? Host and port are marked >>>> as required at the JDBCDataStoreFactory declaration. >>>> I think you also create clones in OracleDataStoreFactory >>>> that do not have the "required" flag set up and use those >>>> in getParametersInfo >>>> >>>> Cheers >>>> Andrea >>>> >>>> >>>> -- >>>> Andrea Aime >>>> OpenGeo - http://opengeo.org >>>> Expert service straight from the developers. >>>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by Sprint >>> What will you do first with EVO, the first 4G phone? >>> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >>> _______________________________________________ >>> Geotools-gt2-users mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users >>> >>> >> >> >> ------------------------------------------------------------------------------ >> The Palm PDK Hot Apps Program offers developers who use the >> Plug-In Development Kit to bring their C/C++ apps to Palm for a share >> of $1 Million in cash or HP Products. Visit us here for more details: >> http://p.sf.net/sfu/dev2dev-palm >> _______________________________________________ >> Geotools-gt2-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users >> > > > -- > Ben Caradoc-Davies <[email protected]> > Software Engineering Team Leader > CSIRO Earth Science and Resource Engineering > Australian Resources Research Centre > ------------------------------------------------------------------------------ The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm _______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
