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

Reply via email to