[Geoserver-devel] Using ojdbc14.jar in eclipse debug environment

Hi all,

I am using GeoServer to provide real time features and attributes to Google Pro from a terabyte corporate Oracle Spatial database.

I have set up side by side installations of gs1.7.0 and 1.7.1 and all works fine except for some nasties with the updated KMLMapProducer
making decisions for me, so now I’m going to trace through the code and work out what’s going on. I have searched the forum using

“ojdbc14 eclipse” bug only got one IRC log that didn’t help. Maybe there are better keywords for me to use.

I’ve followed all available instructions.

Setup jdk and jre 1.5.0.16

Installed maven

Got ojdbc14.jar from OTN and installed into repo.

Used svn to get gt 2.51 and gs 1.7.1 release (version 10880)

Installed both into repo

Built eclipse target for gt using –Doracle.JDBC

Imported to eclipse and successfully built gt

Built eclipse target for gs using –Doracle.JDBC

Imported to eclipse and successfully built gs

Copied ojdbc14 to src\web\target\geoserver\WEB-INF\lib

Launch gs using start.jar from within Eclipse

All runs fine except I cannot see Oracle in Feature Data Set Description choices.

Can someone please tell me what I have missed?

Kind regards

Stuart

Stuart A. Mitchell ha scritto:

Hi all,

I am using GeoServer to provide real time features and attributes to Google Pro from a terabyte corporate Oracle Spatial database.

I have set up side by side installations of gs1.7.0 and 1.7.1 and all works fine except for some nasties with the updated KMLMapProducer
making decisions for me,

It would help to know what behaviour of map producer you'd like to
control better.

so now I’m going to trace through the code and work out what’s going on. I have searched the forum using

“ojdbc14 eclipse” bug only got one IRC log that didn’t help. Maybe there are better keywords for me to use.

You add the driver but you did not add the datastore. If you're using
Maven to create your eclipse projects use
mvn eclipse:eclipse -Poracle-old
if you're using the classic oracle data store, and
mvn eclipse:eclipse -Poracle
if you are trying out the ng one (soon to become the only
choice, the classic one is going to be abandoned in a matter
of months).

That will rebuild your eclipse projects and add the proper
dependencies onto the Oracle data store.
And then yes, add the jdbc driver to the mix and run.

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Thanks Andrea,

I'm just learning maven and spring so I've taken a little while to
understand what's going on. One of the biggest difficulties is
variations in documentation and advice available on the web. To activate
Oracle using ojdbc14 I have read

-Doracle.jdbc
-Doracle.JDBC
-Djdbc.oracle
-Doracle.jdbc=true
-Doracle
-Doracle=true

And now you've given me -Poracle and -Poracle-old.

William the third was right when he said the only true documentation is
the source code.

It also doesn't help that the version of ojdbc14 distributed in the
geoserver-1.7.1-oracle-plugin.zip is version 10.2.0.2.0 and the
dependency in the root pom says 10.2.0.3.0. This is made more
interesting by the fact that the project documentation says that this
version, the one in the plugin, is sealed and can't be used. That is
clearly wrong.

I am fighting a losing battle against a 140million/year IT dept to use
open source and none of this is helping.

Anyway, it's taken me about 6 hours to become productive with spring and
maven, so now I'll get on and fix some of the issues.

Regarding the KMLMapProducer, that's not really the issue. It is the KML
reflection. It is clearly not backwardly compatible between 1.7.1 and
1.7.0. KML reflection is no longer honouring my overrides of KMLScore
and KMLAttr that I was using in 1.7.0. Also, the format of the URI
returned to GE to enable it to get the data has changed - most notably
some of the URL is escaped and some of it isn't.

I haven't decided yet whether to call this a bug or just accept that my
needs are different. Either way, I'll have to override the KML
reflection for my client sites.

Thanks for your response.

Regards

Stuart

-----Original Message-----
From: Andrea Aime [mailto:aaime@anonymised.com]
Sent: Thursday, 11 December 2008 17:36
To: Stuart A. Mitchell
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Using ojdbc14.jar in eclipse debug
environment

Stuart A. Mitchell ha scritto:

Hi all,

I am using GeoServer to provide real time features and attributes to
Google Pro from a terabyte corporate Oracle Spatial database.

I have set up side by side installations of gs1.7.0 and 1.7.1 and all
works fine except for some nasties with the updated KMLMapProducer
making decisions for me,

It would help to know what behaviour of map producer you'd like to
control better.

so now I'm going to trace through the code and
work out what's going on. I have searched the forum using

"ojdbc14 eclipse" bug only got one IRC log that didn't help. Maybe

there

are better keywords for me to use.

You add the driver but you did not add the datastore. If you're using
Maven to create your eclipse projects use
mvn eclipse:eclipse -Poracle-old
if you're using the classic oracle data store, and
mvn eclipse:eclipse -Poracle
if you are trying out the ng one (soon to become the only
choice, the classic one is going to be abandoned in a matter
of months).

That will rebuild your eclipse projects and add the proper
dependencies onto the Oracle data store.
And then yes, add the jdbc driver to the mix and run.

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Stuart A. Mitchell ha scritto:

Thanks Andrea,

I'm just learning maven and spring so I've taken a little while to
understand what's going on. One of the biggest difficulties is
variations in documentation and advice available on the web. To activate
Oracle using ojdbc14 I have read

-Doracle.jdbc
-Doracle.JDBC
-Djdbc.oracle
-Doracle.jdbc=true
-Doracle
-Doracle=true

And now you've given me -Poracle and -Poracle-old.

William the third was right when he said the only true documentation is
the source code.

We don't have a policy regarding those profiles so what worked
in the past might not work today. They are created and die as
a developer needs them.

It also doesn't help that the version of ojdbc14 distributed in the
geoserver-1.7.1-oracle-plugin.zip is version 10.2.0.2.0 and the
dependency in the root pom says 10.2.0.3.0. This is made more
interesting by the fact that the project documentation says that this
version, the one in the plugin, is sealed and can't be used. That is
clearly wrong.

Oracle is not receiving much love, sorry, that documentation is
most probably outdated. You can join the project and fix all of the
above if you want (the documentation is a wiki, so you can just register
yourself on the wiki and fix it)

I am fighting a losing battle against a 140million/year IT dept to use
open source and none of this is helping.

You can also consider asking for commercial support on GeoServer and
have the above fixed by someone that already knows his way around
(and ask the docs to be amended as well).

Anyway, it's taken me about 6 hours to become productive with spring and
maven, so now I'll get on and fix some of the issues.

Regarding the KMLMapProducer, that's not really the issue. It is the KML
reflection. It is clearly not backwardly compatible between 1.7.1 and
1.7.0. KML reflection is no longer honouring my overrides of KMLScore
and KMLAttr that I was using in 1.7.0. Also, the format of the URI
returned to GE to enable it to get the data has changed - most notably
some of the URL is escaped and some of it isn't.

The KML reflector is using super-overlays by default afaik now, but
I'm a little short on details here. David (cc'ed) will know more.

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Andrea and All,

Please don't misinterpret my tone or intentions. I think GT and GS are
fantastic. I intend to fight the good fight and make GS a critical part
of the IT infrastructure at my clients organisation. Once it is
deployed, I will write a case study that can be published on the GS web
site. Commercial confidentiality prevents me giving away anything that
might identify the client. However, I can tell you that the site has a
Google Enterprise server in house which stores the companies own 2cm
imagery of over 2million sq kms and that the client has almost 1 million
of their own physical sites to track in real time. The channel
management people at Google have said that to <do what I'm doing -
sorry!> is a world first. After having done quite a bit of research and
analysis, I have chosen GS to be the critical component. I am basing my
professional reputation on this choice and I'm just trying to
understanding my investment.

You should all take all that I have said as a huge compliment for the
great work to date.

As for joining the project, I hope to become a significant contributor
as time permits.

Kind Regards

Stuart

-----Original Message-----
From: Andrea Aime [mailto:aaime@anonymised.com]
Sent: Thursday, 11 December 2008 18:39
To: Stuart A. Mitchell
Cc: geoserver-devel@lists.sourceforge.net; David Winslow
Subject: Re: [Geoserver-devel] Using ojdbc14.jar in eclipse debug
environment

Stuart A. Mitchell ha scritto:

Thanks Andrea,

I'm just learning maven and spring so I've taken a little while to
understand what's going on. One of the biggest difficulties is
variations in documentation and advice available on the web. To

activate

Oracle using ojdbc14 I have read

-Doracle.jdbc
-Doracle.JDBC
-Djdbc.oracle
-Doracle.jdbc=true
-Doracle
-Doracle=true

And now you've given me -Poracle and -Poracle-old.

William the third was right when he said the only true documentation

is

the source code.

We don't have a policy regarding those profiles so what worked
in the past might not work today. They are created and die as
a developer needs them.

It also doesn't help that the version of ojdbc14 distributed in the
geoserver-1.7.1-oracle-plugin.zip is version 10.2.0.2.0 and the
dependency in the root pom says 10.2.0.3.0. This is made more
interesting by the fact that the project documentation says that this
version, the one in the plugin, is sealed and can't be used. That is
clearly wrong.

Oracle is not receiving much love, sorry, that documentation is
most probably outdated. You can join the project and fix all of the
above if you want (the documentation is a wiki, so you can just register
yourself on the wiki and fix it)

I am fighting a losing battle against a 140million/year IT dept to use
open source and none of this is helping.

You can also consider asking for commercial support on GeoServer and
have the above fixed by someone that already knows his way around
(and ask the docs to be amended as well).

Anyway, it's taken me about 6 hours to become productive with spring

and

maven, so now I'll get on and fix some of the issues.

Regarding the KMLMapProducer, that's not really the issue. It is the

KML

reflection. It is clearly not backwardly compatible between 1.7.1 and
1.7.0. KML reflection is no longer honouring my overrides of KMLScore
and KMLAttr that I was using in 1.7.0. Also, the format of the URI
returned to GE to enable it to get the data has changed - most notably
some of the URL is escaped and some of it isn't.

The KML reflector is using super-overlays by default afaik now, but
I'm a little short on details here. David (cc'ed) will know more.

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.

Anyway, it's taken me about 6 hours to become productive with spring and
maven, so now I'll get on and fix some of the issues.

Regarding the KMLMapProducer, that's not really the issue. It is the KML
reflection. It is clearly not backwardly compatible between 1.7.1 and
1.7.0. KML reflection is no longer honouring my overrides of KMLScore
and KMLAttr that I was using in 1.7.0. Also, the format of the URI
returned to GE to enable it to get the data has changed - most notably
some of the URL is escaped and some of it isn't.
    
The KML reflector is using super-overlays by default afaik now, but
I'm a little short on details here. David (cc'ed) will know more.

Cheers
Andrea

Regionated superoverlays are the default output from the reflector now, but we have also added a 'mode' parameter to the reflector to control the form of the output. Adding '&mode=refresh' to your reflector request will bring back the old "refresh after the user stops panning" behavior. The section on the reflector in the Google Earth documentation on the wiki (http://geoserver.org/display/GEOSDOC/Google+Earth) has been updated with more information about the reflector's new options.

It probably is a bug that KMAttr is not respected in superoverlay mode, but regionating more-or-less supercedes KMScore (in that it breaks the data set down into smaller KML documents that are each fairly small, so the limit imposed by the score will never be met.)

-d

It probably is a bug that KMAttr is not respected in superoverlay mode, but regionating more-or-less supercedes KMScore (in that it breaks the data set down into smaller KML documents that are each fairly small, so the limit imposed by the score will never be met.)

-d
  

Actually, I was unable to reproduce the kmattr problem locally. Are you seeing any stack traces in your GeoServer log file? I also noticed in your earlier email you referred to the option as KMLAttr, not KMAttr. If you are including the L then the option would be ignored.

-d