Hi!
Some hints how to connect to Oracle DB using UDIG plug-in (This is
full road while Jukka didn’t say about source code modifications ).
There are couple of bugs (if bug is not feature in that case) that
were found and were the reason of fault to get connection.
The following steps must be performed:
1) From dummy-spatial-8.1.8.jar that is in net.refractions.udig.lib
delete the following class files:
oracle.jdbc.*
oracle.sql.*
2) Put classes12.jar or ojdbc14.jar into lib folder of
net.refractions.udig.lib plugin
3) Add information about added JDBC driver library into all places in
project (in “Library” and “Order and Export” tabs of “Java Build Path”
entry in project properties dialog.
4) Don’t forget “Refresh” project in package Explorer
5) Open manifest editor and add JDBC driver library and “Runtime” tab.
Add JDBC driver library into “Classpath” list, check that oracle.jdbc,
oracle.jdbc.driver, oracle.jdbc.pool entries exist in “Exported
packages” list.
The next steps are important and they concern source code and
corrections that we can’t update into repository at the current
momentJ.. and we have local versions of these corrections
In OracleServiceExtension class find the following method and comment
the following code as specified in this snippet:
======================
*public* IService createService( URL id, Map<String,Serializable>
params ) {
// if(params!=null &&
params.containsKey(getFactory().getParametersInfo()[2].key)
//&& params.get(getFactory().getParametersInfo()[2].key) instanceof
String){
// String val =
(String)params.get(getFactory().getParametersInfo()[2].key);
// params.remove(val);
// params.put(getFactory().getParametersInfo()[2].key,new Integer(val));
// }
*if*(!getFactory().canProcess(params))
*return* *null*;
*if*(id == *null*){
<<<<<======================
Then in OracleSpatialWizardPage find the following place and comment
whatever is commented by me:
======================
*public* Map<String,Serializable> getParams() {
Map<String,Serializable> params = *new* HashMap<String,Serializable>();
Param[] dbParams = factory.getParametersInfo();
params.put(dbParams[0].key,"oracle"); //$NON-NLS-1$
params.put(dbParams[1].key, getHostText());
String port1 = getPortText();
// try {
// params.put(dbParams[2].key, new Integer(port1));
// } catch (NumberFormatException e) {
// params.put(dbParams[2].key, new Integer(1521));
// }
<<<<<===================
Then in DataBaseRegistryWizardPage find line of code that is actually
in createControl() method:
==================
composite.setTabList(tablist.toArray(new Control[tablist.size()]));
<<<<< ==================
and change it to the following snippet of code:
======================
*if* (schema != *null*) {
*if*(advanced == *null*)
composite.setTabList(*new*
Control[]{host,user,pass,database,schema,advancedKey,port});
*else*
composite.setTabList(*new*
Control[]{host,user,pass,database,schema,advancedKey,advanced,port});
}
*else* {
*if*(advanced == *null*)
composite.setTabList(*new*
Control[]{host,user,pass,database,advancedKey,port});
*else*
composite.setTabList(*new*
Control[]{host,user,pass,database,advancedKey,advanced,port});
}
<<<<< ================
After just recompile all plugins that were changed by these
modifications and start application
This approach is only for those who works with source code… there is
no way to make these modifications in compiled product J
If anyone who is able to submit changes to repository will do it, that
would be perfect!
Be open to ask me directly about problems ( vitali@xxxxxxxxxxxx
<mailto:vitali@xxxxxxxxxxxx> )
Regards, Vitali.
------------------------------------------------------------------------
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel