Re: [Geoserver-devel] I'm a victim of GEOS-7961 NullPointer closed as cannot-reproduce but I make it happen all the time

2017-09-04 Thread Walter Stovall
I agree that synchronization is not a good fix.  It’s just a patch for my 
purposes for now and I mention it mostly to better confirm the scope of the 
problem.  The binding class is 
org.geotools.filter.v2_0.bindings.BBOXTypeBinding…

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Monday, September 4, 2017 5:53 AM
To: Walter Stovall <walter.stov...@byers.com>; Niels Charlier <ni...@scitus.be>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] I'm a victim of GEOS-7961 NullPointer closed as 
cannot-reproduce but I make it happen all the time

Hi Walter,
I believe the synchronization you're proposing is too wide and will cause 
significant scalability degradation,
a more localized solution needs to be searched.

Which binding class are you referring to? The one in 
org.geotools.filter.v2_0.bindings ?
(there are a few others, I believe this one would be used if you are doing WFS 
2.0 requests only).

Regards
Andrea


On Sat, Sep 2, 2017 at 12:31 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
https://osgeo-org.atlassian.net/browse/GEOS-7961

This bug happens under load as a result of a multithreading bug in the 
implementation of BBOXTypeBinding.getProperties.  More specifically, the 
partical.getContent() value there will be be corrupted/set to null by another 
thread executing that same code.  I’m not certain what the correct fix is yet 
but I do have some good detail and can make it fail every time.  I’m hoping 
that somebody with more knowledge on the XSD classes might have some insight 
that would help reach a solution.

I encounter this bug very reliably by running a jMeter ThreadGroup that sends 
concurrent GetFeature requests that include a BBOX filter.  I’ve since then 
figured out how to repro the bug in eclipse and identified a fairly narrow 
scope of code that is the root of the problem.

To repro this problem in eclipse place a breakpoint in 
BBOXTypeBinding.getProperties at the following code:

particle.setContent(GML.getInstance().getSchema().resolveElementDeclaration(GML.Envelope.getLocalPart()));
particle.setMinOccurs(0);

Put the breakpoint on the particle.setMinOccurs call right after the above call 
to setContent.

Now execute the GetFeature request and hit the breakpoint.  Note that as 
expected the particle.getContent() value at this point is not null, as it was 
set by the proceeding line of code.

Now while sitting on that breakpoint execute another GetFeature and stop there 
on the other thread.  Again the value of particle.getContent() is not null.  
But go to the original breakpoint in the first thread and see that 
particle.getContent() IS NOW NULL!

In other words a GetFeature started on another thread has changed the 
particle.getContent() of the original thread.  NullPointer exceptions like that 
shown in GEOS-7961 and others are now the result.

Digging deeper I see that each thread has a unique “particle” instance 
(particle on one thread refers to a different object than particle on another 
thread) – as expected since the object is obtained from the factory on entry to 
getProperties.  But in scenarios where this code works successfully (not forced 
to fail as above) it’s at least interesting that the value of 
particle.getContent() is the very same object instance on both threads.

Ultimately the root of the problem has to do with the EObjectImpl.eContainer 
member – this is the object to which each particle refers.

While I don’t know what the best fix is, I do how to make this specific failure 
never happen.  I patched my code as follows by adding the thread 
synchronization you see below in GetFeature…
synchronized(GetFeature.class) {
Encoder e = new Encoder(new FESConfiguration());
e.setOmitXMLDeclaration(true);
filter.append(e.encodeAsString(q.getFilter(), FES.Filter));
}

A more targeted fix would of course be much better and might address potential 
failures other than GetFeature.  I’m not sure what the right fix is but it 
would appear to be centered on the behavior of the following, which is rather 
convoluted for my brain to fully digest when considering changes.
  if (content != null)
msgs = ((InternalEObject)content).eInverseRemove(this, 
EOPPOSITE_FEATURE_BASE - XSDPackage.XSD_PARTICLE__CONTENT, null, msgs);
  if (newContent != null)
msgs = ((InternalEObject)newContent).eInverseAdd(this, 
EOPPOSITE_FEATURE_BASE - XSDPackage.XSD_PARTICLE__CONTENT, null, msgs);


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net<mailto:Geoserver-devel@l

[Geoserver-devel] I'm a victim of GEOS-7961 NullPointer closed as cannot-reproduce but I make it happen all the time

2017-09-02 Thread Walter Stovall
https://osgeo-org.atlassian.net/browse/GEOS-7961

This bug happens under load as a result of a multithreading bug in the 
implementation of BBOXTypeBinding.getProperties.  More specifically, the 
partical.getContent() value there will be be corrupted/set to null by another 
thread executing that same code.  I'm not certain what the correct fix is yet 
but I do have some good detail and can make it fail every time.  I'm hoping 
that somebody with more knowledge on the XSD classes might have some insight 
that would help reach a solution.

I encounter this bug very reliably by running a jMeter ThreadGroup that sends 
concurrent GetFeature requests that include a BBOX filter.  I've since then 
figured out how to repro the bug in eclipse and identified a fairly narrow 
scope of code that is the root of the problem.

To repro this problem in eclipse place a breakpoint in 
BBOXTypeBinding.getProperties at the following code:

particle.setContent(GML.getInstance().getSchema().resolveElementDeclaration(GML.Envelope.getLocalPart()));
particle.setMinOccurs(0);

Put the breakpoint on the particle.setMinOccurs call right after the above call 
to setContent.

Now execute the GetFeature request and hit the breakpoint.  Note that as 
expected the particle.getContent() value at this point is not null, as it was 
set by the proceeding line of code.

Now while sitting on that breakpoint execute another GetFeature and stop there 
on the other thread.  Again the value of particle.getContent() is not null.  
But go to the original breakpoint in the first thread and see that 
particle.getContent() IS NOW NULL!

In other words a GetFeature started on another thread has changed the 
particle.getContent() of the original thread.  NullPointer exceptions like that 
shown in GEOS-7961 and others are now the result.

Digging deeper I see that each thread has a unique "particle" instance 
(particle on one thread refers to a different object than particle on another 
thread) - as expected since the object is obtained from the factory on entry to 
getProperties.  But in scenarios where this code works successfully (not forced 
to fail as above) it's at least interesting that the value of 
particle.getContent() is the very same object instance on both threads.

Ultimately the root of the problem has to do with the EObjectImpl.eContainer 
member - this is the object to which each particle refers.

While I don't know what the best fix is, I do how to make this specific failure 
never happen.  I patched my code as follows by adding the thread 
synchronization you see below in GetFeature...
synchronized(GetFeature.class) {
Encoder e = new Encoder(new FESConfiguration());
e.setOmitXMLDeclaration(true);
filter.append(e.encodeAsString(q.getFilter(), FES.Filter));
}

A more targeted fix would of course be much better and might address potential 
failures other than GetFeature.  I'm not sure what the right fix is but it 
would appear to be centered on the behavior of the following, which is rather 
convoluted for my brain to fully digest when considering changes.
  if (content != null)
msgs = ((InternalEObject)content).eInverseRemove(this, 
EOPPOSITE_FEATURE_BASE - XSDPackage.XSD_PARTICLE__CONTENT, null, msgs);
  if (newContent != null)
msgs = ((InternalEObject)newContent).eInverseAdd(this, 
EOPPOSITE_FEATURE_BASE - XSDPackage.XSD_PARTICLE__CONTENT, null, msgs);

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] I can repro GEOS-7961 Null Pointer failure of GetFeature based on concurrent requests

2017-09-01 Thread Walter Stovall
https://osgeo-org.atlassian.net/browse/GEOS-7961

My code fails with the same null pointer stacktrace as indicated there.  I'm 
using a geoserver snapshot taken April 1 2016 running in Java 8/Tomcat 8.

I've setup an automated client with jMeter that submits GetFeature requests.  I 
run jMeter full speed with a single thread and it works every time.  Then with 
only two jMeter threads running I can make the GEOS-7961 null pointer happen 
frequently.

I attach a remote debugger to tomcat and place a conditional breakpoint:
public static QName getParticleName(XSDParticle particle) {
XSDElementDeclaration content = (XSDElementDeclaration) 
particle.getContent();
if ( content.isElementDeclarationReference() ) {

Stopping where "content==null".  I then hit the breakpoint while testing.  So 
it would appear I have a decent context for developing a fix for this.  
However, I'm very unfamiliar with the details of how these XSD classes work and 
what might be the thread-synchronization/timing vulnerabilities.

Any developer with insight please help me point in the right direction - thanks!
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Re: [Geoserver-devel] Unable to avoid day shift upon WFS-T Insert using GeoTools LOCAL_DATE_TIME_HANDLING hint

2017-05-12 Thread Walter Stovall
My proposed change is not right and may interfere with time parsing.  But the 
problem is real.  I see the XsLocalDateTime subclass and will look into 
isolating my change to that, with minor refactoring.  That can hopefully lead 
to a pull-request to fix WFS-T Insert for date values with 
localDateTimeHandling=true.

From: Walter Stovall
Sent: Thursday, May 11, 2017 11:43 AM
To: 'geoserver-devel@lists.sourceforge.net' 
<geoserver-devel@lists.sourceforge.net>
Subject: Unable to avoid day shift upon WFS-T Insert using GeoTools 
LOCAL_DATE_TIME_HANDLING hint

It appears that when WFS executes a query, it correctly examines the 
localDateTimeHandling flag to avoid shifting the day back by one.  But in the 
case of using WFS-T to insert a date, no such check is made and the day shifts 
when stored in the database.  This results in the wrong day being reported in a 
subsequent query.

For example in my Oracle table I have an INSTALLED_DATE column of type DATE.  
My Oracle database has a dbtimezone of EST (-05:00:00 offset from GMT).  I send 
a WFS insert transaction that populates the date as:

  2016-01-04

If I then select the data in a sqlDev session, Oracle tells me the date is 
03-Jan-16, where I would expect 04 instead of 03.

Then for grins I execute a WFS GetFeature with outputFormat=”JSON” and I see 
the date reported as "INSPECTION_DATE":"2016-01-03".

So, inserted 2016-01-04, query and get 2016-01-03.

I then changed the XsDateTimeFormat class as follows and apparently fixed this 
problem…I changed these lines:
if (parseTime) {
tz = TimeZone.getTimeZone(digits.toString());
} else {
// there's no meaning for timezone if not parsing time
// http://en.wikipedia.org/wiki/ISO_8601
tz = TimeZone.getTimeZone("GMT");
}

My revised code reads as:
// Apply timezone arithmetic when z+/- has been used.
if (parseTime && digits.toString().length() != 3) {
// Set the timezone based on z+/- arithmetic in the time.
tz = TimeZone.getTimeZone(digits.toString());
} else {
// Set the timezone for times or dates based on the default.
// Note that timezone does have meaning for dates because
// it facilitates handling the value as a date/time of
// midnight that day and timezone changes can adjust the
// value of the date itself.
Object hint = 
Hints.getSystemDefault(Hints.LOCAL_DATE_TIME_HANDLING);
if(Boolean.TRUE.equals(hint)) {
// Use the time zone of the JVM
tz = TimeZone.getDefault();
} else {
tz = TimeZone.getTimeZone("GMT");
}
    }

Thoughts on this as an acceptable mod?

Thanks – Walter Stovall
Byers Engineering Company

From: Andrea Aime [mailto:andrea.a...@geo-solutions.it]
Sent: Wednesday, June 22, 2016 4:46 AM
To: Chris Buckmaster 
<chris.buckmas...@runnymede.gov.uk<mailto:chris.buckmas...@runnymede.gov.uk>>
Cc: 
geoserver-us...@lists.sourceforge.net<mailto:geoserver-us...@lists.sourceforge.net>
Subject: Re: [Geoserver-users] Time Zone issue with dates using GeoServer WFS

On Wed, Jun 22, 2016 at 9:50 AM, Chris Buckmaster 
<chris.buckmas...@runnymede.gov.uk<mailto:chris.buckmas...@runnymede.gov.uk>> 
wrote:
The problem I am encountering is, for any dates that fall within British summer 
time (GMT Daylight Saving Time), it appears to be moving the actual date back 
by one day (i.e. for a date stored as 8th September 1993 in PostGIS, it is 
displaying as 07/09/1993 in my HTML / Javascript web application). The field is 
not a timestamp field, it is just a date field so from what I can gather it 
shouldn’t be storing any information on time zones?

There was a discussion about this topic on geotools-devel some time ago, the 
outcome was that yes, also dates have timezone (not hard to grasp,
e.g., now it's Wednesday here in Europe, but in a few hours it will be Thursday 
in Australia). I believe that the outcome was also that it's useful to add a 
configuration flag
for those that do not work in an international settings, so that the dates do 
not get modified in those cases.
According to the docs there is a system variable you can set:
http://docs.geotools.org/latest/userguide/library/metadata/geotools.html

So starting your JVM with -Dorg.geotools.localDateTimeHandling=true should 
change the behavior. It would be nice to have that as a global setting
in the GeoServer UI... anyone interested in coding it? :-)

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/

Re: [Geoserver-devel] Oracle DATE treated as TIMESTAMP makes WFS handle the value incorrectly when using a VTABLE

2017-05-12 Thread Walter Stovall
My problem is resolved by using the following JVM flag:

-Doracle.jdbc.mapDateToTimestamp=false

This restores the legacy mapping of DATE to sqlType 91 instead of 93 and as a 
result GeoTools will not expect time to be supplied with date and will not 
output time when writing a date as a string.

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Wednesday, May 10, 2017 12:23 PM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Oracle DATE treated as TIMESTAMP makes WFS 
handle the value incorrectly when using a VTABLE

On Wed, May 10, 2017 at 6:15 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
fwiw this looks more like a problem with the Oracle driver than GeoTools.  The 
sqlType=93 is Timestamp as represented by the ResultSetMetadata but it seems 
like it should be sqlType=91 (Date).  I’m looking at how to make GeoTools 
handle a work around for this Oracle issue.

Yes, if you check the archives of geotools/geoserver there has already been a 
discussion about it, but
not resolution (usual stuff, when a commercial component is in the mix like 
Oracle, only paid support
is active, nobody is going to move a finger in their spare time for it).

When you have a solution do a pull request following the GeoTools contribution 
rules:
https://github.com/geotools/geotools/blob/master/CONTRIBUTING.md
(in short, add a test, make sure your added code is properly formatted but 
don't reformat
code you did not modify).

Cheers
Andrea


--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare il messaggio stesso, divulgarlo anche in parte, 
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, 
costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.



The information in this message and/or attachments, is intended solely for the 
attention and use of the named addressee(s) and may be confidential or 
proprietary in nature or covered by the provisions of privacy act (Legislative 
Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in 
accord with its purpose, any disclosure, reproduction, copying, distribution, 
or either dissemination, either whole or partial, is strictly forbidden except 
previous formal approval of the named addressee(s). If you are not the intended 
recipient, please contact immediately the sender by telephone, fax or e-mail 
and delete the information in this message that has been received in error. The 
sender does not give any warranty or accept liability as the content, accuracy 
or completeness of sent messages and accepts no responsibility  for changes 
made after they were sent or for other risks which arise as a result of e-mail 
transmission, viruses, etc.

---
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] Unable to avoid day shift upon WFS-T Insert using GeoTools LOCAL_DATE_TIME_HANDLING hint

2017-05-11 Thread Walter Stovall
It appears that when WFS executes a query, it correctly examines the 
localDateTimeHandling flag to avoid shifting the day back by one.  But in the 
case of using WFS-T to insert a date, no such check is made and the day shifts 
when stored in the database.  This results in the wrong day being reported in a 
subsequent query.

For example in my Oracle table I have an INSTALLED_DATE column of type DATE.  
My Oracle database has a dbtimezone of EST (-05:00:00 offset from GMT).  I send 
a WFS insert transaction that populates the date as:

  2016-01-04

If I then select the data in a sqlDev session, Oracle tells me the date is 
03-Jan-16, where I would expect 04 instead of 03.

Then for grins I execute a WFS GetFeature with outputFormat=”JSON” and I see 
the date reported as "INSPECTION_DATE":"2016-01-03".

So, inserted 2016-01-04, query and get 2016-01-03.

I then changed the XsDateTimeFormat class as follows and apparently fixed this 
problem…I changed these lines:
if (parseTime) {
tz = TimeZone.getTimeZone(digits.toString());
} else {
// there's no meaning for timezone if not parsing time
// http://en.wikipedia.org/wiki/ISO_8601
tz = TimeZone.getTimeZone("GMT");
}

My revised code reads as:
// Apply timezone arithmetic when z+/- has been used.
if (parseTime && digits.toString().length() != 3) {
// Set the timezone based on z+/- arithmetic in the time.
tz = TimeZone.getTimeZone(digits.toString());
} else {
// Set the timezone for times or dates based on the default.
// Note that timezone does have meaning for dates because
// it facilitates handling the value as a date/time of
// midnight that day and timezone changes can adjust the
// value of the date itself.
Object hint = 
Hints.getSystemDefault(Hints.LOCAL_DATE_TIME_HANDLING);
if(Boolean.TRUE.equals(hint)) {
// Use the time zone of the JVM
tz = TimeZone.getDefault();
} else {
tz = TimeZone.getTimeZone("GMT");
}
}

Thoughts on this as an acceptable mod?

Thanks – Walter Stovall
Byers Engineering Company

From: Andrea Aime [mailto:andrea.a...@geo-solutions.it]
Sent: Wednesday, June 22, 2016 4:46 AM
To: Chris Buckmaster <chris.buckmas...@runnymede.gov.uk>
Cc: geoserver-us...@lists.sourceforge.net
Subject: Re: [Geoserver-users] Time Zone issue with dates using GeoServer WFS

On Wed, Jun 22, 2016 at 9:50 AM, Chris Buckmaster 
<chris.buckmas...@runnymede.gov.uk<mailto:chris.buckmas...@runnymede.gov.uk>> 
wrote:
The problem I am encountering is, for any dates that fall within British summer 
time (GMT Daylight Saving Time), it appears to be moving the actual date back 
by one day (i.e. for a date stored as 8th September 1993 in PostGIS, it is 
displaying as 07/09/1993 in my HTML / Javascript web application). The field is 
not a timestamp field, it is just a date field so from what I can gather it 
shouldn’t be storing any information on time zones?

There was a discussion about this topic on geotools-devel some time ago, the 
outcome was that yes, also dates have timezone (not hard to grasp,
e.g., now it's Wednesday here in Europe, but in a few hours it will be Thursday 
in Australia). I believe that the outcome was also that it's useful to add a 
configuration flag
for those that do not work in an international settings, so that the dates do 
not get modified in those cases.
According to the docs there is a system variable you can set:
http://docs.geotools.org/latest/userguide/library/metadata/geotools.html

So starting your JVM with -Dorg.geotools.localDateTimeHandling=true should 
change the behavior. It would be nice to have that as a global setting
in the GeoServer UI... anyone interested in coding it? :-)

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare il messaggio stesso, divulgarlo anche in parte, 
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità div

Re: [Geoserver-devel] Oracle DATE treated as TIMESTAMP makes WFS handle the value incorrectly when using a VTABLE

2017-05-10 Thread Walter Stovall
fwiw this looks more like a problem with the Oracle driver than GeoTools.  The 
sqlType=93 is Timestamp as represented by the ResultSetMetadata but it seems 
like it should be sqlType=91 (Date).  I'm looking at how to make GeoTools 
handle a work around for this Oracle issue.

There may be a solution in setting certain connection properties including 
oracle.jdbc.mapDateToTimestamp OR oracle.jdbc.V8Compatible as discussed at 
these links 
http://stackoverflow.com/questions/6764617/conflict-with-java-util-date-and-java-sql-timestamp,
 https://community.oracle.com/thread/485903, 
https://community.oracle.com/thread/68918.

From: Walter Stovall
Sent: Wednesday, May 10, 2017 11:13 AM
To: geoserver-devel@lists.sourceforge.net
Subject: RE: [Geoserver-devel] Oracle DATE treated as TIMESTAMP makes WFS 
handle the value incorrectly when using a VTABLE

I know more now about why Date columns are not handled correction with virtual 
tables.  I'm working on what exactly to do about it (suggestions are quite 
welcome).

In JDBCFeatureSource.buildFeatureType() it calls a different overload of 
getColumnMetadata() depending on whether it comes from a vtable.  The overload 
for vtables uses the following line of code to set the binding for my date 
column:
column.binding = store.getMapping(column.sqlType);

In my case the sqlType is 93 and that results in a binding of 
java.sql.Timestamp.

In the case of real tables the following line of code sets the binding for my 
date column:
column.binding = dialect.getMapping(columns, cx);

The above generates an apparently more correct binding of java.sql.Date and 
then correctly handles the column in my WFS use.

From: Walter Stovall
Sent: Wednesday, May 10, 2017 6:08 AM
To: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: [Geoserver-devel] Oracle DATE treated as TIMESTAMP makes WFS handle 
the value incorrectly when using a VTABLE

I'm having a problem with date vs. timestamp columns.  The problem happens when 
the layer depends on a geoserver view/vtable.

If I create a layer and just point to the database table then it works as 
expected. In the console GUI some layer attributes show as Timestamp and others 
show as Date.  But if I base the layer on a geoserver view ALL columns of 
either type DATE or TIMESTAMP show as Timestamp in the console GUI.  My view 
simply selects each column that I want to publish on the layer.

This leads downstream problems where the date value is treated as date/time.  
On input (such as WFS-T) GeoServer expects date AND time when it should be just 
date.  And on output both date and time are provided when it should be just 
date.

Any clues about what to do with this problem?

Thanks for any help!
Walter Stovall - Byers Engineering Company
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Re: [Geoserver-devel] Oracle DATE treated as TIMESTAMP makes WFS handle the value incorrectly when using a VTABLE

2017-05-10 Thread Walter Stovall
I know more now about why Date columns are not handled correction with virtual 
tables.  I'm working on what exactly to do about it (suggestions are quite 
welcome).

In JDBCFeatureSource.buildFeatureType() it calls a different overload of 
getColumnMetadata() depending on whether it comes from a vtable.  The overload 
for vtables uses the following line of code to set the binding for my date 
column:
column.binding = store.getMapping(column.sqlType);

In my case the sqlType is 93 and that results in a binding of 
java.sql.Timestamp.

In the case of real tables the following line of code sets the binding for my 
date column:
column.binding = dialect.getMapping(columns, cx);

The above generates an apparently more correct binding of java.sql.Date and 
then correctly handles the column in my WFS use.

From: Walter Stovall
Sent: Wednesday, May 10, 2017 6:08 AM
To: geoserver-devel@lists.sourceforge.net
Subject: [Geoserver-devel] Oracle DATE treated as TIMESTAMP makes WFS handle 
the value incorrectly when using a VTABLE

I'm having a problem with date vs. timestamp columns.  The problem happens when 
the layer depends on a geoserver view/vtable.

If I create a layer and just point to the database table then it works as 
expected. In the console GUI some layer attributes show as Timestamp and others 
show as Date.  But if I base the layer on a geoserver view ALL columns of 
either type DATE or TIMESTAMP show as Timestamp in the console GUI.  My view 
simply selects each column that I want to publish on the layer.

This leads downstream problems where the date value is treated as date/time.  
On input (such as WFS-T) GeoServer expects date AND time when it should be just 
date.  And on output both date and time are provided when it should be just 
date.

Any clues about what to do with this problem?

Thanks for any help!
Walter Stovall - Byers Engineering Company
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

2017-05-10 Thread Walter Stovall
Without testing old releases I can’t say for sure when this lack of support for 
updatable views was introduced.  What I can say is that indications are, this 
is a long standing problem.  I went back to rev 84d6dc7 posted six years ago 
and I see the same “virtualTable != null” test there.  But again there might be 
reasons why the old codebase did not execute this code, the readOnly flag might 
have been undone downstream, etc…

As far as real test goes I can only say that this problem is for sure in v2.8 
of GeoServer.  I don’t have earlier experience working with updatable views.

From: Rahkonen Jukka (MML) [mailto:jukka.rahko...@maanmittauslaitos.fi]
Sent: Wednesday, May 10, 2017 7:22 AM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Hi,

We are using updateable Oracle views in a production system with some pretty 
old Geoserver so we know it works. It would be nice to know the dates of last 
changes in the related source files because that may prevent us from updating.

-Jukka Rahkonen-



Walter Stovall wrote
Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Why would you think this problem is specific to Oracle? The code I’m changing 
is in JDBCFeatureSource.buildFeatureType() at its virtualTable != null test, 
which I would think applies to jdbc data sources in general, not just Oracle.  
Am I missing something there?

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com] On Behalf Of Andrea Aime
Sent: Tuesday, May 9, 2017 12:50 PM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Hi Water,
that may well be a regression, this use case you're after is pretty uncommon 
and I've seen
it used only by Oracle users.

Since you can develop I'd make a pull request, with a test, by changing the 
following two extra files:
https://github.com/geotools/geotools/blob/master/modules/plugin/jdbc/jdbc-oracle/src/test/java/org/geotools/data/oracle/OracleViewTestSetup.java
https://github.com/geotools/geotools/blob/master/modules/plugin/jdbc/jdbc-oracle/src/test/java/org/geotools/data/oracle/OracleViewOnlineTest.java

Cheers
Andrea


On Tue, May 9, 2017 at 6:45 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
From what I can tell use of the MetadataTablePrimaryKeyFinder does not matter.  
The code is still going to hit the test in JDBCFeatureSource.buildFeatureType() 
that decides to make the feature read-only if there’s a vtable.  Fwiw the code 
was finding my primary key anyway by using Oracle data dictionary info.  I had 
read-only then and now when using a pk metadata table I’m still read-only.

I changed the code and did a successful WFS-T Insert.

My edit changes this:
if(pkey == null || pkey instanceof NullPrimaryKey || virtualTable != 
null) {
To this:
    if(pkey == null || pkey instanceof NullPrimaryKey) {

From: Walter Stovall
Sent: Tuesday, May 9, 2017 12:19 PM
To: 'Andrea Aime' 
<andrea.a...@geo-solutions.it<mailto:andrea.a...@geo-solutions.it>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: RE: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Yes it gets hit.  But it seems like the only thing anything outside that class 
would call is getPrimaryKey.  And that never gets hit.

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com] On Behalf Of Andrea Aime
Sent: Tuesday, May 9, 2017 12:17 PM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>

Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Is the MetadataTablePrimaryKeyFinder hit and used?
I'd put breakpoints in it and have a look.

Cheers
Andrea

On Tue, May 9, 2017 at 6:13 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
I’m having trouble making updatable views work.  I have the pk metadata table 
setup and configured.

Debugging the WFS-T I’m hitting this code in 
JDBCFeatureSource.buildFeatureType()…
// setup the read only marker if no pk or null pk or it's a view
boolean readOnly = false;
if(pkey == null || pkey instanceof NullPrimaryKey || virtualTable != 
null) {
readOnly = true;
}

So pkey is setup but the virtualTable != null test then forces it read-only 
anyway – seems counter to what 
http://docs.geoserver.org/stable/en/user/data/database/pr

[Geoserver-devel] Oracle DATE treated as TIMESTAMP makes WFS handle the value incorrectly when using a VTABLE

2017-05-10 Thread Walter Stovall
I'm having a problem with date vs. timestamp columns.  The problem happens when 
the layer depends on a geoserver view/vtable.

If I create a layer and just point to the database table then it works as 
expected. In the console GUI some layer attributes show as Timestamp and others 
show as Date.  But if I base the layer on a geoserver view ALL columns of 
either type DATE or TIMESTAMP show as Timestamp in the console GUI.  My view 
simply selects each column that I want to publish on the layer.

This leads downstream problems where the date value is treated as date/time.  
On input (such as WFS-T) GeoServer expects date AND time when it should be just 
date.  And on output both date and time are provided when it should be just 
date.

Any clues about what to do with this problem?

Thanks for any help!
Walter Stovall - Byers Engineering Company
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

2017-05-10 Thread Walter Stovall
Why would you think this problem is specific to Oracle? The code I’m changing 
is in JDBCFeatureSource.buildFeatureType() at its virtualTable != null test, 
which I would think applies to jdbc data sources in general, not just Oracle.  
Am I missing something there?

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Tuesday, May 9, 2017 12:50 PM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Hi Water,
that may well be a regression, this use case you're after is pretty uncommon 
and I've seen
it used only by Oracle users.

Since you can develop I'd make a pull request, with a test, by changing the 
following two extra files:
https://github.com/geotools/geotools/blob/master/modules/plugin/jdbc/jdbc-oracle/src/test/java/org/geotools/data/oracle/OracleViewTestSetup.java
https://github.com/geotools/geotools/blob/master/modules/plugin/jdbc/jdbc-oracle/src/test/java/org/geotools/data/oracle/OracleViewOnlineTest.java

Cheers
Andrea


On Tue, May 9, 2017 at 6:45 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
From what I can tell use of the MetadataTablePrimaryKeyFinder does not matter.  
The code is still going to hit the test in JDBCFeatureSource.buildFeatureType() 
that decides to make the feature read-only if there’s a vtable.  Fwiw the code 
was finding my primary key anyway by using Oracle data dictionary info.  I had 
read-only then and now when using a pk metadata table I’m still read-only.

I changed the code and did a successful WFS-T Insert.

My edit changes this:
if(pkey == null || pkey instanceof NullPrimaryKey || virtualTable != 
null) {
To this:
if(pkey == null || pkey instanceof NullPrimaryKey) {

From: Walter Stovall
Sent: Tuesday, May 9, 2017 12:19 PM
To: 'Andrea Aime' 
<andrea.a...@geo-solutions.it<mailto:andrea.a...@geo-solutions.it>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: RE: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Yes it gets hit.  But it seems like the only thing anything outside that class 
would call is getPrimaryKey.  And that never gets hit.

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com] On Behalf Of Andrea Aime
Sent: Tuesday, May 9, 2017 12:17 PM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>

Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Is the MetadataTablePrimaryKeyFinder hit and used?
I'd put breakpoints in it and have a look.

Cheers
Andrea

On Tue, May 9, 2017 at 6:13 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
I’m having trouble making updatable views work.  I have the pk metadata table 
setup and configured.

Debugging the WFS-T I’m hitting this code in 
JDBCFeatureSource.buildFeatureType()…
// setup the read only marker if no pk or null pk or it's a view
boolean readOnly = false;
if(pkey == null || pkey instanceof NullPrimaryKey || virtualTable != 
null) {
readOnly = true;
}

So pkey is setup but the virtualTable != null test then forces it read-only 
anyway – seems counter to what 
http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views
 says about being able to update views?

Can you suggest anything here?

Regards,
Walter Stovall
Byers Engineering Company

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com<mailto:andrea.a...@gmail.com>] On Behalf Of 
Andrea Aime
Sent: Tuesday, May 9, 2017 8:23 AM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

On Tue, May 9, 2017 at 1:30 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
My application builds geoserver layers that are based on a “view” as defined by 
a Oracle SELECT statement pasted into the geoserver layer editor.  By using a 
view my layer becomes read-only, but I want to update via WFS-T transactions.

The configure it accordingly ;-)

http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massaros

Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

2017-05-09 Thread Walter Stovall
From what I can tell use of the MetadataTablePrimaryKeyFinder does not matter.  
The code is still going to hit the test in JDBCFeatureSource.buildFeatureType() 
that decides to make the feature read-only if there’s a vtable.  Fwiw the code 
was finding my primary key anyway by using Oracle data dictionary info.  I had 
read-only then and now when using a pk metadata table I’m still read-only.

I changed the code and did a successful WFS-T Insert.

My edit changes this:
if(pkey == null || pkey instanceof NullPrimaryKey || virtualTable != 
null) {
To this:
if(pkey == null || pkey instanceof NullPrimaryKey) {

From: Walter Stovall
Sent: Tuesday, May 9, 2017 12:19 PM
To: 'Andrea Aime' <andrea.a...@geo-solutions.it>
Cc: geoserver-devel@lists.sourceforge.net
Subject: RE: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Yes it gets hit.  But it seems like the only thing anything outside that class 
would call is getPrimaryKey.  And that never gets hit.

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com] On Behalf Of Andrea Aime
Sent: Tuesday, May 9, 2017 12:17 PM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Is the MetadataTablePrimaryKeyFinder hit and used?
I'd put breakpoints in it and have a look.

Cheers
Andrea

On Tue, May 9, 2017 at 6:13 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
I’m having trouble making updatable views work.  I have the pk metadata table 
setup and configured.

Debugging the WFS-T I’m hitting this code in 
JDBCFeatureSource.buildFeatureType()…
// setup the read only marker if no pk or null pk or it's a view
boolean readOnly = false;
if(pkey == null || pkey instanceof NullPrimaryKey || virtualTable != 
null) {
readOnly = true;
}

So pkey is setup but the virtualTable != null test then forces it read-only 
anyway – seems counter to what 
http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views
 says about being able to update views?

Can you suggest anything here?

Regards,
Walter Stovall
Byers Engineering Company

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com<mailto:andrea.a...@gmail.com>] On Behalf Of 
Andrea Aime
Sent: Tuesday, May 9, 2017 8:23 AM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

On Tue, May 9, 2017 at 1:30 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
My application builds geoserver layers that are based on a “view” as defined by 
a Oracle SELECT statement pasted into the geoserver layer editor.  By using a 
view my layer becomes read-only, but I want to update via WFS-T transactions.

The configure it accordingly ;-)

http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313<tel:+39%200584%20962313>
fax: +39 0584 1660272<tel:+39%200584%20166%200272>
mob: +39  339 8844549<tel:+39%20339%20884%204549>

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare il messaggio stesso, divulgarlo anche in parte, 
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, 
costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.



The information in this message and/or attachments, is intended solely for the 
attention and use of the named addressee(s) and may be confidential or 
proprietary in nature or covered by the provisions of privacy act (Legislative 
Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in 
accord with its purpose, any disclosure, reproducti

Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

2017-05-09 Thread Walter Stovall
Yes it gets hit.  But it seems like the only thing anything outside that class 
would call is getPrimaryKey.  And that never gets hit.

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Tuesday, May 9, 2017 12:17 PM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

Is the MetadataTablePrimaryKeyFinder hit and used?
I'd put breakpoints in it and have a look.

Cheers
Andrea

On Tue, May 9, 2017 at 6:13 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
I’m having trouble making updatable views work.  I have the pk metadata table 
setup and configured.

Debugging the WFS-T I’m hitting this code in 
JDBCFeatureSource.buildFeatureType()…
// setup the read only marker if no pk or null pk or it's a view
boolean readOnly = false;
if(pkey == null || pkey instanceof NullPrimaryKey || virtualTable != 
null) {
readOnly = true;
}

So pkey is setup but the virtualTable != null test then forces it read-only 
anyway – seems counter to what 
http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views
 says about being able to update views?

Can you suggest anything here?

Regards,
Walter Stovall
Byers Engineering Company

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com<mailto:andrea.a...@gmail.com>] On Behalf Of 
Andrea Aime
Sent: Tuesday, May 9, 2017 8:23 AM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

On Tue, May 9, 2017 at 1:30 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
My application builds geoserver layers that are based on a “view” as defined by 
a Oracle SELECT statement pasted into the geoserver layer editor.  By using a 
view my layer becomes read-only, but I want to update via WFS-T transactions.

The configure it accordingly ;-)

http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313<tel:+39%200584%20962313>
fax: +39 0584 1660272<tel:+39%200584%20166%200272>
mob: +39  339 8844549<tel:+39%20339%20884%204549>

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare il messaggio stesso, divulgarlo anche in parte, 
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, 
costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.



The information in this message and/or attachments, is intended solely for the 
attention and use of the named addressee(s) and may be confidential or 
proprietary in nature or covered by the provisions of privacy act (Legislative 
Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in 
accord with its purpose, any disclosure, reproduction, copying, distribution, 
or either dissemination, either whole or partial, is strictly forbidden except 
previous formal approval of the named addressee(s). If you are not the intended 
recipient, please contact immediately the sender by telephone, fax or e-mail 
and delete the information in this message that has been received in error. The 
sender does not give any warranty or accept liability as the content, accuracy 
or completeness of sent messages and accepts no responsibility  for changes 
made after they were sent or for other risks which arise as a result of e-mail 
transmission, viruses, etc.

---



--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosoluti

Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

2017-05-09 Thread Walter Stovall
I’m having trouble making updatable views work.  I have the pk metadata table 
setup and configured.

Debugging the WFS-T I’m hitting this code in 
JDBCFeatureSource.buildFeatureType()…
// setup the read only marker if no pk or null pk or it's a view
boolean readOnly = false;
if(pkey == null || pkey instanceof NullPrimaryKey || virtualTable != 
null) {
readOnly = true;
}

So pkey is setup but the virtualTable != null test then forces it read-only 
anyway – seems counter to what 
http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views
 says about being able to update views?

Can you suggest anything here?

Regards,
Walter Stovall
Byers Engineering Company

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Tuesday, May 9, 2017 8:23 AM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

On Tue, May 9, 2017 at 1:30 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
My application builds geoserver layers that are based on a “view” as defined by 
a Oracle SELECT statement pasted into the geoserver layer editor.  By using a 
view my layer becomes read-only, but I want to update via WFS-T transactions.

The configure it accordingly ;-)

http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare il messaggio stesso, divulgarlo anche in parte, 
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, 
costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.



The information in this message and/or attachments, is intended solely for the 
attention and use of the named addressee(s) and may be confidential or 
proprietary in nature or covered by the provisions of privacy act (Legislative 
Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in 
accord with its purpose, any disclosure, reproduction, copying, distribution, 
or either dissemination, either whole or partial, is strictly forbidden except 
previous formal approval of the named addressee(s). If you are not the intended 
recipient, please contact immediately the sender by telephone, fax or e-mail 
and delete the information in this message that has been received in error. The 
sender does not give any warranty or accept liability as the content, accuracy 
or completeness of sent messages and accepts no responsibility  for changes 
made after they were sent or for other risks which arise as a result of e-mail 
transmission, viruses, etc.

---
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

2017-05-09 Thread Walter Stovall
Thank you so much for pointing me to that!

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Tuesday, May 9, 2017 8:23 AM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Could a "simple" geoserver view become updatable?

On Tue, May 9, 2017 at 1:30 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
My application builds geoserver layers that are based on a “view” as defined by 
a Oracle SELECT statement pasted into the geoserver layer editor.  By using a 
view my layer becomes read-only, but I want to update via WFS-T transactions.

The configure it accordingly ;-)

http://docs.geoserver.org/stable/en/user/data/database/primarykey.html#using-the-metadata-table-with-views

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare il messaggio stesso, divulgarlo anche in parte, 
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, 
costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.



The information in this message and/or attachments, is intended solely for the 
attention and use of the named addressee(s) and may be confidential or 
proprietary in nature or covered by the provisions of privacy act (Legislative 
Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in 
accord with its purpose, any disclosure, reproduction, copying, distribution, 
or either dissemination, either whole or partial, is strictly forbidden except 
previous formal approval of the named addressee(s). If you are not the intended 
recipient, please contact immediately the sender by telephone, fax or e-mail 
and delete the information in this message that has been received in error. The 
sender does not give any warranty or accept liability as the content, accuracy 
or completeness of sent messages and accepts no responsibility  for changes 
made after they were sent or for other risks which arise as a result of e-mail 
transmission, viruses, etc.

---
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] Could a "simple" geoserver view become updatable?

2017-05-09 Thread Walter Stovall
My application builds geoserver layers that are based on a "view" as defined by 
a Oracle SELECT statement pasted into the geoserver layer editor.  By using a 
view my layer becomes read-only, but I want to update via WFS-T transactions.

My question is this: If my view SELECT is just a filtered list of columns, 
could geoserver be made more forgiving and let the layer be read-write?  I 
understand that if the statement includes selecting SQL expressions etc. then 
not all the "columns" in the view are necessarily updatable.  But if each 
selected column is just a column name or at least aliased to a column name of 
the same datatype as the an actual column, would not the existing layer-update 
code complete successfully?

Would it be a reasonable enhancement to have geoserver check the view against 
its base table and detect a view that could pass as read/write?

Thank you - Walter Stovall
Byers Engineering Company
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] Build of master branch fails when using the geofence-server profile

2017-05-09 Thread Walter Stovall
On the mvn command line use -P geofence-server and the build will fail to 
compile as it can't find the org.restlet.resource package.  I fixed the error 
by inserting this into ...community\geofence\pom.xml...


 org.restlet
 org.restlet

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] How can my OWS process a zip file attachment?

2016-08-15 Thread Walter Stovall
I'm coding a GeoServer web service and would like to support a method where 
there is XML for the main request and then a zip-file as well.  I'm having 
trouble figuring out how to reference the zip file in my service code.

I'm sending geoserver a multipart form as input and this gets processed in the 
Dispatcher, as it uses ServletFileUpload to parse the request.  When Dispatcher 
loops thru the return from ServletFileUpload.parseRequest it saves the 
individual FileItems into the kvp map if FileItem.isFormField() returns true.  
Otherwise the dispatcher assumes the item is an XML file and passes its reader 
to request.setInput.
In my case isFormField() will be false for both the xml and zip.  There are two 
files in the post.  One is the application/xml for the body of the request and 
the other is the application/zip for the zip file.

If I attach the body (xml) last, my XML will get parsed successfully because a 
reader for the body ends up being the last thing passed to Request.setInput().  
But then the zip file attachment is not available at all because it got 
discarded by the dispatcher since it was a file attachment and therefore not 
put into the kvp map.  If I attach the body first, the zip file ends up being 
the last input passed to Request.setInput() and the whole method fails because 
this can't be read by geoserver as a valid method request.

I can easily send the XML as a form-field instead of a file, and I see this 
code that supports a form-field called "body"
if (request.getInput() == null) {
FileItem body = kvpFileItems.get("body");
if (body != null) {
request.setInput(fileItemReader(body));
kvpFileItems.remove("body");
}
}

But this code will not run because request.getInput() is NOT null  because it 
got set a few lines up when isFormField() on the zip file returned false.

Can anybody help me with how to proceed?  It seems like if my multipart request 
has a zip file on it then that will be passed to request.setInput().  Then the 
code never makes into my service because later on geoserver uses that to figure 
out what the request is.
--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] FW: FW: Managing Oracle connections to different schemas of the same database instance can't be done with the current geoserver

2016-06-16 Thread Walter Stovall
I’m more confused than I thought.  I was thinking I’d have multiple workspaces 
sharing a single datastore.  That must be impossible since a datastore 
references a specific workspace.

From: Walter Stovall
Sent: Thursday, June 16, 2016 7:37 AM
To: 'Andrea Aime' <andrea.a...@geo-solutions.it>
Cc: geoserver-devel@lists.sourceforge.net
Subject: RE: [Geoserver-devel] FW: Managing Oracle connections to different 
schemas of the same database instance can't be done with the current geoserver

I’m working with the FeatureTypeInitializer you mentioned (which I assume is 
really FeatureTypeCallback).

I feel like I’m almost home free if I can just figure out the workspace at the 
time my FeatureTypeCallback is accessed.  Then my ConnectionLifecycleListener 
can be seeded with the workspace and I’ve got all the info I need to 
impersonate the Oracle user when onBorrow() gets called.

When FeatureTypeCallback.initialize gets called is there any way I can figure 
out which workspace matches that feature?  The FeatureTypeCallback gets called 
while workspaces are getting initialized during geoserver startup so a 
workspace reference must be accessible somewhere down the callstack but there’s 
a fair amount of reflection & bean initialization going on that makes it hard 
to figure out how to reference that.

Any ideas?

Thanks!  Walter

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com] On Behalf Of Andrea Aime
Sent: Thursday, June 16, 2016 3:51 AM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: Re: [Geoserver-devel] FW: Managing Oracle connections to different 
schemas of the same database instance can't be done with the current geoserver

On Wed, Jun 15, 2016 at 6:57 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
Oh, that’s nice – thanks.

There’s hopefully just one last part of this problem I need to address (thank 
you for all your help).

As mentioned my authenticated-user (the GSUser) is not in fact the name of the 
user I want to impersonate.  I need to figure out how to get the name of the 
impersonated user into the environment.

The impersonated user is based on the geoserver workspace and remains constant 
for the life of the workspace.  My dream solution would be that I could store 
the name of the impersonated user into the workspace itself and somehow 
leverage code that gets the name/value into the environment when a request is 
dispatched.  Poking around, I see that the WorkspaceInfoImpl has 
set/getMetadataMap().  If I could put my own name/value pair for the 
impersonated user into the MetadataMap for the workspace and then the 
MetadataMap were found to be part of the environment that would be the magic 
answer.

Of course maybe it’s not that easy but does this trigger any suggestion you 
might have?  I know the impersonated user name when I create the workspace.  I 
just don’t know how to get that into the environment when a request against the 
workspace is dispatched.

Do I need a dispatcher callback?  If so can I make the callback installed by my 
service code run before other services like WMS/WFS attempt accessing features 
so this is all setup right?


Hmm... this is getting complicated enough that I believe you are going to need 
some custom code regardless, in one or more points.
If you are using workspace specific services, you can get the current workspace 
from the LocalWorkspace class, that is holding to a thread local. If you are 
using global services instead I don't see an easy way out, as a request might 
contain data from multiple workspaces.

A few ideas come to mind (mind, I cannot guarantee any of them is good):
1) Create a subclass of the OracleNGDataStoreFactory, register it in SPI (check 
META-INF/services), and when createDataStoreInternal is called, attach a 
connection listener that looks for LocalWorkspace and your custom map. This 
code will reside in GeoServer
2) Create a FeatureTypeInitializer and register it in the GeoServer app 
context, while it's meant to initialize a particular feature type, it has 
access to the store too, and attach the listener there. Of course you'll have 
to care about not attaching the same listener multiple times
3) Modify the code a bit deeper and create a new DataAccessInitializer 
interface that would allow custom setup of stores, to be plugged in 
ResourcePool like FeatureTypeInitializer is, and do the same as above
4) Add store init parameters like we discussed before, but make them OGC 
Expression objects, or Strings that are supposed to be parsed as ECQL, and then 
roll your own custom filter functions to extract the values you need from the 
surrounding environment (e.g., LocalWorkspace)

I'd go for 3, but it's just me.

Cheers
Andrea

--
==
GeoServer Professional Services from th

Re: [Geoserver-devel] FW: Managing Oracle connections to different schemas of the same database instance can't be done with the current geoserver

2016-06-16 Thread Walter Stovall
I’m working with the FeatureTypeInitializer you mentioned (which I assume is 
really FeatureTypeCallback).

I feel like I’m almost home free if I can just figure out the workspace at the 
time my FeatureTypeCallback is accessed.  Then my ConnectionLifecycleListener 
can be seeded with the workspace and I’ve got all the info I need to 
impersonate the Oracle user when onBorrow() gets called.
When FeatureTypeCallback.initialize gets called is there any way I can figure 
out which workspace matches that feature?  The FeatureTypeCallback gets called 
while workspaces are getting initialized during geoserver startup so a 
workspace reference must be accessible somewhere down the callstack but there’s 
a fair amount of reflection & bean initialization going on that makes it hard 
to figure out how to reference that.

Any ideas?

Thanks!  Walter

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Thursday, June 16, 2016 3:51 AM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] FW: Managing Oracle connections to different 
schemas of the same database instance can't be done with the current geoserver

On Wed, Jun 15, 2016 at 6:57 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
Oh, that’s nice – thanks.

There’s hopefully just one last part of this problem I need to address (thank 
you for all your help).

As mentioned my authenticated-user (the GSUser) is not in fact the name of the 
user I want to impersonate.  I need to figure out how to get the name of the 
impersonated user into the environment.

The impersonated user is based on the geoserver workspace and remains constant 
for the life of the workspace.  My dream solution would be that I could store 
the name of the impersonated user into the workspace itself and somehow 
leverage code that gets the name/value into the environment when a request is 
dispatched.  Poking around, I see that the WorkspaceInfoImpl has 
set/getMetadataMap().  If I could put my own name/value pair for the 
impersonated user into the MetadataMap for the workspace and then the 
MetadataMap were found to be part of the environment that would be the magic 
answer.

Of course maybe it’s not that easy but does this trigger any suggestion you 
might have?  I know the impersonated user name when I create the workspace.  I 
just don’t know how to get that into the environment when a request against the 
workspace is dispatched.

Do I need a dispatcher callback?  If so can I make the callback installed by my 
service code run before other services like WMS/WFS attempt accessing features 
so this is all setup right?


Hmm... this is getting complicated enough that I believe you are going to need 
some custom code regardless, in one or more points.
If you are using workspace specific services, you can get the current workspace 
from the LocalWorkspace class, that is holding to a thread local. If you are 
using global services instead I don't see an easy way out, as a request might 
contain data from multiple workspaces.

A few ideas come to mind (mind, I cannot guarantee any of them is good):
1) Create a subclass of the OracleNGDataStoreFactory, register it in SPI (check 
META-INF/services), and when createDataStoreInternal is called, attach a 
connection listener that looks for LocalWorkspace and your custom map. This 
code will reside in GeoServer
2) Create a FeatureTypeInitializer and register it in the GeoServer app 
context, while it's meant to initialize a particular feature type, it has 
access to the store too, and attach the listener there. Of course you'll have 
to care about not attaching the same listener multiple times
3) Modify the code a bit deeper and create a new DataAccessInitializer 
interface that would allow custom setup of stores, to be plugged in 
ResourcePool like FeatureTypeInitializer is, and do the same as above
4) Add store init parameters like we discussed before, but make them OGC 
Expression objects, or Strings that are supposed to be parsed as ECQL, and then 
roll your own custom filter functions to extract the values you need from the 
surrounding environment (e.g., LocalWorkspace)

I'd go for 3, but it's just me.

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate 

[Geoserver-devel] FW: FW: Managing Oracle connections to different schemas of the same database instance can't be done with the current geoserver

2016-06-16 Thread Walter Stovall
Please ignore my response – I was reading your list of options as ‘all of the 
above’ and I understand better now that those are all separate ideas.  I need 
to study this more…thanks.

From: Walter Stovall
Sent: Thursday, June 16, 2016 4:48 AM
To: 'Andrea Aime' <andrea.a...@geo-solutions.it>
Cc: geoserver-devel@lists.sourceforge.net
Subject: RE: [Geoserver-devel] FW: Managing Oracle connections to different 
schemas of the same database instance can't be done with the current geoserver

Thanks for that detail.  I don’t yet grasp what the complexity is – I suspect 
it doesn’t apply to my geoserver use-case but maybe you could illuminate that 
for me?

I’m using global workspaces (but could consider changing that).  However an end 
user will always be referencing only one workspace in a request.  By parsing 
the request parameters the workspace can be known up front before any database 
access.

So if I have a bunch of workspaces setup that all use the same datastore, my 
assumption is that when a database connection is acquired from the datastore, 
the relevant workspace can be known at that time, enabling the code to tell the 
database connection to impersonate the user associated with the workspace.

The datastore can connect to the database under the ‘midtier/admin’ user 
account.  Then, as long as geoserver does not attempt to access a feature in 
the workspace before pointing the connection to the impersonated user for that 
workspace, the problem is solved.

If the workspace is known from the request parameters and a request never 
references more than one workspace does that simplify my problem?

Thank You - Walter

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com] On Behalf Of Andrea Aime
Sent: Thursday, June 16, 2016 3:51 AM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: Re: [Geoserver-devel] FW: Managing Oracle connections to different 
schemas of the same database instance can't be done with the current geoserver

On Wed, Jun 15, 2016 at 6:57 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
Oh, that’s nice – thanks.

There’s hopefully just one last part of this problem I need to address (thank 
you for all your help).

As mentioned my authenticated-user (the GSUser) is not in fact the name of the 
user I want to impersonate.  I need to figure out how to get the name of the 
impersonated user into the environment.

The impersonated user is based on the geoserver workspace and remains constant 
for the life of the workspace.  My dream solution would be that I could store 
the name of the impersonated user into the workspace itself and somehow 
leverage code that gets the name/value into the environment when a request is 
dispatched.  Poking around, I see that the WorkspaceInfoImpl has 
set/getMetadataMap().  If I could put my own name/value pair for the 
impersonated user into the MetadataMap for the workspace and then the 
MetadataMap were found to be part of the environment that would be the magic 
answer.

Of course maybe it’s not that easy but does this trigger any suggestion you 
might have?  I know the impersonated user name when I create the workspace.  I 
just don’t know how to get that into the environment when a request against the 
workspace is dispatched.

Do I need a dispatcher callback?  If so can I make the callback installed by my 
service code run before other services like WMS/WFS attempt accessing features 
so this is all setup right?


Hmm... this is getting complicated enough that I believe you are going to need 
some custom code regardless, in one or more points.
If you are using workspace specific services, you can get the current workspace 
from the LocalWorkspace class, that is holding to a thread local. If you are 
using global services instead I don't see an easy way out, as a request might 
contain data from multiple workspaces.

A few ideas come to mind (mind, I cannot guarantee any of them is good):
1) Create a subclass of the OracleNGDataStoreFactory, register it in SPI (check 
META-INF/services), and when createDataStoreInternal is called, attach a 
connection listener that looks for LocalWorkspace and your custom map. This 
code will reside in GeoServer
2) Create a FeatureTypeInitializer and register it in the GeoServer app 
context, while it's meant to initialize a particular feature type, it has 
access to the store too, and attach the listener there. Of course you'll have 
to care about not attaching the same listener multiple times
3) Modify the code a bit deeper and create a new DataAccessInitializer 
interface that would allow custom setup of stores, to be plugged in 
ResourcePool like FeatureTypeInitializer is, and do the same as above
4) Add store init parameters like we discussed before, but mak

Re: [Geoserver-devel] FW: Managing Oracle connections to different schemas of the same database instance can't be done with the current geoserver

2016-06-15 Thread Walter Stovall
Oh, that’s nice – thanks.

There’s hopefully just one last part of this problem I need to address (thank 
you for all your help).

As mentioned my authenticated-user (the GSUser) is not in fact the name of the 
user I want to impersonate.  I need to figure out how to get the name of the 
impersonated user into the environment.

The impersonated user is based on the geoserver workspace and remains constant 
for the life of the workspace.  My dream solution would be that I could store 
the name of the impersonated user into the workspace itself and somehow 
leverage code that gets the name/value into the environment when a request is 
dispatched.  Poking around, I see that the WorkspaceInfoImpl has 
set/getMetadataMap().  If I could put my own name/value pair for the 
impersonated user into the MetadataMap for the workspace and then the 
MetadataMap were found to be part of the environment that would be the magic 
answer.

Of course maybe it’s not that easy but does this trigger any suggestion you 
might have?  I know the impersonated user name when I create the workspace.  I 
just don’t know how to get that into the environment when a request against the 
workspace is dispatched.

Do I need a dispatcher callback?  If so can I make the callback installed by my 
service code run before other services like WMS/WFS attempt accessing features 
so this is all setup right?

Thank You - Walter

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Wednesday, June 15, 2016 12:37 PM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] FW: Managing Oracle connections to different 
schemas of the same database instance can't be done with the current geoserver

On Wed, Jun 15, 2016 at 6:25 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
Thanks.  Looking to simplify this yet more.  The solution below would still 
require me to modify the datastore setup page in geoserver so the page would 
let  me request a proxy session be created.

Nope, it's auto generated from the connection params advertised by the store. 
So no problems here, the extras would only show up when a Oracle store is 
configured.


How ‘bad’ would be if I modified the geotools SessionCommandsListener to 
specifically check for SET SESSION AUTHORIZATION being the statement getting 
executed?  When found, this is a directly executed pass-thru for non-Oracle 
dialect but for Oracle this uses their proprietary API to do the equivalent.

That class is generic and unaware that Oracle even exists, I would not go there.

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare il messaggio stesso, divulgarlo anche in parte, 
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, 
costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.



The information in this message and/or attachments, is intended solely for the 
attention and use of the named addressee(s) and may be confidential or 
proprietary in nature or covered by the provisions of privacy act (Legislative 
Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in 
accord with its purpose, any disclosure, reproduction, copying, distribution, 
or either dissemination, either whole or partial, is strictly forbidden except 
previous formal approval of the named addressee(s). If you are not the intended 
recipient, please contact immediately the sender by telephone, fax or e-mail 
and delete the information in this message that has been received in error. The 
sender does not give any warranty or accept liability as the content, accuracy 
or completeness of sent messages and accepts no responsibility  for changes 
made after they were sent or for other risks which arise as a result of e-mail 
transmission, viruses, etc.

---
--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. R

Re: [Geoserver-devel] FW: Managing Oracle connections to different schemas of the same database instance can't be done with the current geoserver

2016-06-15 Thread Walter Stovall
Thanks.  Looking to simplify this yet more.  The solution below would still 
require me to modify the datastore setup page in geoserver so the page would 
let  me request a proxy session be created.  And that doesn’t seem like a great 
thing to add to the core product because it’s only relevant to Oracle – i.e. 
Geoserver already has support for proxy sessions as long as the database 
supports the SET SESSION AUTHORIZATION statement, which Oracle does not.

How ‘bad’ would be if I modified the geotools SessionCommandsListener to 
specifically check for SET SESSION AUTHORIZATION being the statement getting 
executed?  When found, this is a directly executed pass-thru for non-Oracle 
dialect but for Oracle this uses their proprietary API to do the equivalent.

Then geoserver stays totally like it is.

Thoughts?

Walter

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Wednesday, June 15, 2016 12:11 PM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] FW: Managing Oracle connections to different 
schemas of the same database instance can't be done with the current geoserver

On Wed, Jun 15, 2016 at 5:28 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
Andrea, based on your note about changing SQLDialect to support starting and 
ending an Oracle proxy session I’m looking for the best place to hook into the 
geotools code for invoking this.

Looking at the JDBCDataStore.createDataStore() method, I see where it creates a 
ConnectionLifecycleListener based on Map entries for 
SQL_ON_BORROW/SQL_ON_CONNECT.  It would seem that at this time, I could check 
for a Map entry that requests a proxy session.  When found, I create 
(potentially another) ConnectionLifecycleListener whose job it is to start/end 
the proxy session.  As you say, actually starting the proxy session would be 
implemented inside the SQLDialect and in my case, the OracleSQLDialect.

Seems like a good approach to me. I'd extend the OracleDataStoreFactory with 
one or more extra parameter that enables proxy connection, and that are given
the name of the env variable(s) you need to pass down, and if those are setup, 
then add your own custom listener to the store:
https://github.com/geotools/geotools/blob/master/modules/plugin/jdbc/jdbc-oracle/src/main/java/org/geotools/data/oracle/OracleNGDataStoreFactory.java

Maybe following this approach you don't even need to modify the SQLDialect class

Ah, you'll need to unwrap the connection from the pool via the Unwrappers, the 
Oracle store contains code already calling them (the pooled connection
wrap the Oracle one, but you need the native one). Given there are many 
connection pools we have an extension point for that.
See: 
https://github.com/geotools/geotools/blob/master/modules/plugin/jdbc/jdbc-oracle/src/main/java/org/geotools/data/oracle/OracleDialect.java#L617

Cheers
Andrea

PS: what you add to the main data store factory should also be added to the 
JNDI one (and probably to the OCI one, although I'm not sure about that one).

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare il messaggio stesso, divulgarlo anche in parte, 
distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, 
costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.



The information in this message and/or attachments, is intended solely for the 
attention and use of the named addressee(s) and may be confidential or 
proprietary in nature or covered by the provisions of privacy act (Legislative 
Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in 
accord with its purpose, any disclosure, reproduction, copying, distribution, 
or either dissemination, either whole or partial, is strictly forbidden except 
previous formal approval of the named addressee(s). If you are not the intended 
recipient, please contact immediately the sender by telephone, fax or e-mail 
and delete the information in this message that has been received in error. The 
sender does not give any warranty o

[Geoserver-devel] FW: Managing Oracle connections to different schemas of the same database instance can't be done with the current geoserver

2016-06-15 Thread Walter Stovall
Andrea, based on your note about changing SQLDialect to support starting and 
ending an Oracle proxy session I’m looking for the best place to hook into the 
geotools code for invoking this.

Looking at the JDBCDataStore.createDataStore() method, I see where it creates a 
ConnectionLifecycleListener based on Map entries for 
SQL_ON_BORROW/SQL_ON_CONNECT.  It would seem that at this time, I could check 
for a Map entry that requests a proxy session.  When found, I create 
(potentially another) ConnectionLifecycleListener whose job it is to start/end 
the proxy session.  As you say, actually starting the proxy session would be 
implemented inside the SQLDialect and in my case, the OracleSQLDialect.

I could imagine throwing an exception for now from any SQLDialect other than 
OracleSQLDialect that gets asked to do this proxy session thing.

Am I on the right track?

Thanks, Walter

From: Walter Stovall
Sent: Wednesday, June 15, 2016 8:12 AM
To: Andrea Aime <andrea.a...@geo-solutions.it>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Managing Oracle connections to different schemas 
of the same database instance can't be done with the current geoserver

Thank You Andrea.  Your note on the original sponsor would seem to imply that 
in absence of SET SESSION AUTHORIZATION support in Oracle, that the sponsor 
called a stored procedure to accomplish switching the connection from the proxy 
to the real user.  That would appear to be an easy solution, where the Session 
Start-Up and Session Close-Up SQL could call procedures to switch the 
connection and then return it to the proxy when done.

But I can’t find any pl/sql equivalent to the Oracle JDBC Driver’s 
openProxySession.  Do I misunderstand your note?

Thanks, Walter

From: andrea.a...@gmail.com<mailto:andrea.a...@gmail.com> 
[mailto:andrea.a...@gmail.com] On Behalf Of Andrea Aime
Sent: Wednesday, June 15, 2016 6:39 AM
To: Walter Stovall <walter.stov...@byers.com<mailto:walter.stov...@byers.com>>
Cc: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: Re: [Geoserver-devel] Managing Oracle connections to different schemas 
of the same database instance can't be done with the current geoserver

On Wed, Jun 15, 2016 at 12:24 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
My geoserver application needs to connect to potentially hundreds of different 
Oracle schemas.  There is a workspace associated with each schema.  My goal is 
to have a single connection pool that is shared by all of these workspaces.

Andrea shared this URL which tends to point me in the right direction.  
http://docs.geoserver.org/latest/en/user/data/database/sqlsession.html#data-sqlsession

The above solution allows for one DataStore to be shared by all of my 
workspaces, which is exactly what I need.  But this won’t work with the Oracle 
database.  Unfortunately Oracle does not support the SET SESSION AUTHORIZATION 
sql and apparently has no SQL-based equivalent.

Hi Walter,
the funny thing is, the impersonation was implemented exactly for Oracle, and 
the example for postgresql was added later for documentation and generality 
purposes.
The sponsor had a Oracle package (set of stored produces I believe?) that 
allowed to setup the impersonation by SQL,
but I don't think it was anything standard.


However, Oracle does have exactly what I need.  The problem is that it can’t be 
accomplished by executing a SQL statement.  Instead it requires a proprietary 
call to the JDBC driver.

With Oracle, ‘impersonating’ a user is accomplished by creating a proxy 
connection.  The basics of this are at 
http://docs.oracle.com/cd/B28359_01/java.111/b31224/proxya.htm#BABEJEIA.  The 
idea is that basically you setup the connection pool based on a database user 
with minimal privilege and no meaningful default schema.  Then you can borrow 
one of the connections in the pool and switch it so it now behaves as a 
connection to the user account you want to behave-as.

Doing the equivalent of SET SESSION AUTHORIZATION is accomplished with a call 
to the Oracle driver oracle.jdbc.OracleConnection.openProxySession.  And then 
when the connection is returned to the pool, an overload of the 
OracleConnection.close() method closes the proxy session while keeping the 
connection otherwise open.

I’m looking for any comments you might have on how to extend the geoserver code 
to support this.  Rather than hack the code for my own purposes I’d like to 
hope I might contribute a solution that gets rolled into the core product.

Thanks in advance for any thoughts on how to implement this in geoserver.  
References to specific geoserver/geotools interfaces are appreciated!

I don't believe we have anything ready to be used, and guess some custom 
changes to the Oracle store down in GeoTools is pretty much the
only approach. A new store parameter referring to the env vari

Re: [Geoserver-devel] Managing Oracle connections to different schemas of the same database instance can't be done with the current geoserver

2016-06-15 Thread Walter Stovall
Thank You Andrea.  Your note on the original sponsor would seem to imply that 
in absence of SET SESSION AUTHORIZATION support in Oracle, that the sponsor 
called a stored procedure to accomplish switching the connection from the proxy 
to the real user.  That would appear to be an easy solution, where the Session 
Start-Up and Session Close-Up SQL could call procedures to switch the 
connection and then return it to the proxy when done.

But I can’t find any pl/sql equivalent to the Oracle JDBC Driver’s 
openProxySession.  Do I misunderstand your note?

Thanks, Walter

From: andrea.a...@gmail.com [mailto:andrea.a...@gmail.com] On Behalf Of Andrea 
Aime
Sent: Wednesday, June 15, 2016 6:39 AM
To: Walter Stovall <walter.stov...@byers.com>
Cc: geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Managing Oracle connections to different schemas 
of the same database instance can't be done with the current geoserver

On Wed, Jun 15, 2016 at 12:24 PM, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
My geoserver application needs to connect to potentially hundreds of different 
Oracle schemas.  There is a workspace associated with each schema.  My goal is 
to have a single connection pool that is shared by all of these workspaces.

Andrea shared this URL which tends to point me in the right direction.  
http://docs.geoserver.org/latest/en/user/data/database/sqlsession.html#data-sqlsession

The above solution allows for one DataStore to be shared by all of my 
workspaces, which is exactly what I need.  But this won’t work with the Oracle 
database.  Unfortunately Oracle does not support the SET SESSION AUTHORIZATION 
sql and apparently has no SQL-based equivalent.

Hi Walter,
the funny thing is, the impersonation was implemented exactly for Oracle, and 
the example for postgresql was added later for documentation and generality 
purposes.
The sponsor had a Oracle package (set of stored produces I believe?) that 
allowed to setup the impersonation by SQL,
but I don't think it was anything standard.


However, Oracle does have exactly what I need.  The problem is that it can’t be 
accomplished by executing a SQL statement.  Instead it requires a proprietary 
call to the JDBC driver.

With Oracle, ‘impersonating’ a user is accomplished by creating a proxy 
connection.  The basics of this are at 
http://docs.oracle.com/cd/B28359_01/java.111/b31224/proxya.htm#BABEJEIA.  The 
idea is that basically you setup the connection pool based on a database user 
with minimal privilege and no meaningful default schema.  Then you can borrow 
one of the connections in the pool and switch it so it now behaves as a 
connection to the user account you want to behave-as.

Doing the equivalent of SET SESSION AUTHORIZATION is accomplished with a call 
to the Oracle driver oracle.jdbc.OracleConnection.openProxySession.  And then 
when the connection is returned to the pool, an overload of the 
OracleConnection.close() method closes the proxy session while keeping the 
connection otherwise open.

I’m looking for any comments you might have on how to extend the geoserver code 
to support this.  Rather than hack the code for my own purposes I’d like to 
hope I might contribute a solution that gets rolled into the core product.

Thanks in advance for any thoughts on how to implement this in geoserver.  
References to specific geoserver/geotools interfaces are appreciated!

I don't believe we have anything ready to be used, and guess some custom 
changes to the Oracle store down in GeoTools is pretty much the
only approach. A new store parameter referring to the env variable that's going 
to be used to pass down the user is likely a good approach, I guess you can use
The code in question is in these two modules:
https://github.com/geotools/geotools/tree/master/modules/library/jdbc
https://github.com/geotools/geotools/tree/master/modules/plugin/jdbc/jdbc-oracle

You'll probably need to roll a new method in the SQLDialect interface to allow 
creating a new connection from an existing one, too.

Cheers
Andrea

--
==
GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.
==

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054  Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39  339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


AVVERTENZE AI SENSI DEL D.Lgs. 196/2003

Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i 
file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo 
è consentito esclusivamente al destinatario del messaggio, per le finalità 
indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne 
il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di 
procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro 
sistema. Conservare i

Re: [Geoserver-devel] Unable to run geofence under eclipse

2016-03-29 Thread Walter Stovall
Thank you Jody.  I’m trying the internal geofence server but I can’t figure out 
how to debug it inside eclipse.  When I start geoserver with mvn jetty:run… it 
will start successfully and I can access the geofence GUI including the 
Geofence Data Rules and Geofence Admin Rules links that show on the geoserver 
console.

But when I start inside eclipse by launching Start.java the internal geofence 
server will not run and shows exception (listed below) when I click the 
data-rules link on the console.  It would appear that this is a known issue as 
shown by https://github.com/geoserver/geofence/issues/56 and the comment 
there...”This issue in particular prevents developing GeoServer + GeoFence 
using Eclipse the "normal" way, with Start.java, one has to use mvn jetty:run 
with the right command line options instead”.

Running with mvn jetty appears to be a severely limited source level debug 
environment.  While a remote debugger can be attached, any edits to source code 
would simply be recompiled in the eclipse workspace but not in the external 
build that mvn jetty:run is executing.

Is there a way to eclipse-debug geoserver while running the internal geofence 
server?  I can hardly see an advantage to using the internal server if not.  
But the external geofence doesn’t give me much of a source level debug 
capability either.

How can I run/debug/edit my geoserver service under development while using the 
internal geofence server?

Thanks for any comments…Walter Stovall – Byers Engineering Company.

org.apache.wicket.WicketRuntimeException: Can't instantiate page using 
constructor public org.geoserver.geofence.web.GeofenceServerPage()
at 
org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
at 
org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
at 
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
at 
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at 
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
at 
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at 
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1250)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at 
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)
at 
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at 
org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:159)
at 
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at 
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at 
org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at 
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:75)
at 
org.geoserver.wms.animate.AnimatorFilter.doFilter(AnimatorFilter.java:71)
at 
org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:71)
at 
org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:46)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at 
org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:50)
at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler

[Geoserver-devel] How can my geoserver OWS report the reason for failing a database connection?

2016-03-08 Thread Walter Stovall
I'm using the DataSourceFinder.getDataSource() method which will create a data 
source based on a JDBC connection parameters.  If the datasource is unable to 
establish a connection, that will get logged down inside this code but the 
exception/reason for the failure is not exposed to the client - i.e. I just get 
a null result from the method.

I would like to report the exception detail to the caller of my service.  An 
invalid user/password has a much different resolution than hostname not found 
for example.  Is there a straightforward means for doing this that I'm not 
aware of?

To me it makes a lot more sense for DataSource.getConnection() to fail with an 
exception than it does for getDataSource() to simply return null.
--
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://makebettercode.com/inteldaal-eval___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] I'm looking to enhance geofence to filter transactions by insert/update/delete

2015-11-05 Thread Walter Stovall
We have a requirement that geoserver allow or disallow insert/update/delete 
specifically (on certain layers) rather than just transactions in general.  I'm 
studying the code and developing a plan to enhance geofence in this respect.  
We're using an external geofence.

I can see that the RuleReaderService.getAccessInfo() is a key interface.  In 
all likelihood the member will not receive info in the RuleFilter that tells it 
whether there are insert/update/delete requests in the transaction, since that 
would involve forward scanning all the XML to find (or not) such tags.  I'm 
wondering if it would be appropriate to somehow potentially return an 
AccessInfo that for example says to the caller, "ALLOW, but only allow update 
(not insert/delete)".  Then in the downstream code that executes the 
transaction, that code would need to be modified to receive flags that tell it 
which operations (insert/update/delete) are permitted and throw exceptions if 
it finds any that are not.

There will be other details to manage such as the geofence GUI but this is what 
I'm thinking at a big picture level.

Any comments from developers with geofence background are appreciated.  If I 
can reasonably manage it I'll do this as a contribution to the genfence product 
rather than just my own custom code.  I'm pretty new to geoserver and geofence 
and learning my way around the code.

Thanks, Walter Stovall
Byers Engineering Company
--
___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] geoserver 2.8.x branch build error on htmlvalidator-1.2.pom - how to resolve?

2015-11-04 Thread Walter Stovall
[ERROR] Failed to execute goal on project gs-web-core: Could not resolve depende
ncies for project org.geoserver.web:gs-web-core:jar:2.8-SNAPSHOT: Failed to coll
ect dependencies at org.wicketstuff:htmlvalidator:jar:1.2: Failed to read artifa
ct descriptor for org.wicketstuff:htmlvalidator:jar:1.2: Could not transfer arti
fact org.wicketstuff:htmlvalidator:pom:1.2 from/to boundless (https://boundless.
artifactoryonline.com/boundless/snapshot/): Failed to transfer file: https://bou
ndless.artifactoryonline.com/boundless/snapshot/org/wicketstuff/htmlvalidator/1.
2/htmlvalidator-1.2.pom. Return code is: 409 , ReasonPhrase:Conflict. -> [Help 1
]

If I plug the URL 
(https://boundless.artifactoryonline.com/boundless/snapshot/org/wicketstuff/htmlvalidator/1.2/htmlvalidator-1.2.pom)
 into my browser I get...
{
  "errors" : [ {
"status" : 409,
"message" : "The repository 'snapshot' rejected the artifact 
'snapshot:org/wicketstuff/htmlvalidator/1.2/htmlvalidator-1.2.pom' due to its 
snapshot/release handling policy."
  } ]
}


--
___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] FW: geoserver 2.8.x branch build error on htmlvalidator-1.2.pom - how to resolve?

2015-11-04 Thread Walter Stovall
I got past this error by copying the .m2 directory from another workstation and 
doing an offline build.

From: Walter Stovall
Sent: Wednesday, November 04, 2015 3:51 AM
To: geoserver-devel@lists.sourceforge.net
Subject: [Geoserver-devel] geoserver 2.8.x branch build error on 
htmlvalidator-1.2.pom - how to resolve?

[ERROR] Failed to execute goal on project gs-web-core: Could not resolve depende
ncies for project org.geoserver.web:gs-web-core:jar:2.8-SNAPSHOT: Failed to coll
ect dependencies at org.wicketstuff:htmlvalidator:jar:1.2: Failed to read artifa
ct descriptor for org.wicketstuff:htmlvalidator:jar:1.2: Could not transfer arti
fact org.wicketstuff:htmlvalidator:pom:1.2 from/to boundless (https://boundless.
artifactoryonline.com/boundless/snapshot/): Failed to transfer file: https://bou
ndless.artifactoryonline.com/boundless/snapshot/org/wicketstuff/htmlvalidator/1.
2/htmlvalidator-1.2.pom. Return code is: 409 , ReasonPhrase:Conflict. -> [Help 1
]

If I plug the URL 
(https://boundless.artifactoryonline.com/boundless/snapshot/org/wicketstuff/htmlvalidator/1.2/htmlvalidator-1.2.pom)
 into my browser I get...
{
  "errors" : [ {
"status" : 409,
"message" : "The repository 'snapshot' rejected the artifact 
'snapshot:org/wicketstuff/htmlvalidator/1.2/htmlvalidator-1.2.pom' due to its 
snapshot/release handling policy."
  } ]
}


--
___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel
--
___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Re: [Geoserver-devel] Maven repo of boundlessgeo working?

2015-10-23 Thread Walter Stovall
I just posted a similar problem on the geotools list….seems like a problem with 
the boundlessgeo.com site?

I run maven to generate eclipse files for geotools.  This quickly gets to 
downloading the below plugin from boundlessgeo.com.  The download hangs and if 
I visit the URL in my web browser that hangs too.  Does anybody know a way 
around this?

Console shows this…
Downloading: http://repo.boundlessgeo.com/main/org/apache/maven/plugins/maven-as
sembly-plugin/2.4/maven-assembly-plugin-2.4.pom


From: A Huarte [mailto:ahuart...@yahoo.es]
Sent: Friday, October 23, 2015 6:23 AM
To: geoserver-devel@lists.sourceforge.net
Subject: [Geoserver-devel] Maven repo of boundlessgeo working?

Hi, I can't to build the master branch of GeoTools. I don't have access to 
maven repo: http://repo.boundlessgeo.com

I get a 403-forbidden error.

Any Idea?

Thank you very much
Alvaro

--
___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Re: [Geoserver-devel] Maven repo of boundlessgeo working?

2015-10-23 Thread Walter Stovall
That did not work for me (on my build of geotools 14.x branch)

From: Ian Turton [mailto:ijtur...@gmail.com]
Sent: Friday, October 23, 2015 6:57 AM
To: Walter Stovall
Cc: A Huarte; geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Maven repo of boundlessgeo working?

my build is hitting 
boundless.artifactoryonline.com<http://boundless.artifactoryonline.com> - so 
may be you need to do a git fetch to update?

Ian

On 23 October 2015 at 11:39, Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
I just posted a similar problem on the geotools list….seems like a problem with 
the boundlessgeo.com<http://boundlessgeo.com> site?

I run maven to generate eclipse files for geotools.  This quickly gets to 
downloading the below plugin from boundlessgeo.com<http://boundlessgeo.com>.  
The download hangs and if I visit the URL in my web browser that hangs too.  
Does anybody know a way around this?

Console shows this…
Downloading: http://repo.boundlessgeo.com/main/org/apache/maven/plugins/maven-as
sembly-plugin/2.4/maven-assembly-plugin-2.4.pom


From: A Huarte [mailto:ahuart...@yahoo.es<mailto:ahuart...@yahoo.es>]
Sent: Friday, October 23, 2015 6:23 AM
To: 
geoserver-devel@lists.sourceforge.net<mailto:geoserver-devel@lists.sourceforge.net>
Subject: [Geoserver-devel] Maven repo of boundlessgeo working?

Hi, I can't to build the master branch of GeoTools. I don't have access to 
maven repo: http://repo.boundlessgeo.com<http://repo.boundlessgeo.com/>

I get a 403-forbidden error.

Any Idea?

Thank you very much
Alvaro


--

___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net<mailto:Geoserver-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/geoserver-devel



--
Ian Turton
--
___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Re: [Geoserver-devel] Unable to run geofence under eclipse

2015-10-20 Thread Walter Stovall
I’ll see if I can get to that.  I saw a note about the integrated server being 
more limited – with no more info than that.  I already have couple problems 
where I’ll need to enhance geofence.


a)  You can’t filter transactions by type (Insert, Update, Delete).  So for 
example you can’t allow updates but prevent insert/delete.

b)  As of my last review a LIMIT rule could not specify feature attributes. 
 This is not a deal killer but leads to duplicating attribute restrictions in 
various ALLOW rules whereas it would be better for LIMIT rules to cumulatively 
limit attributes before reaching an ALLOW that just opens the gate so to speak.

I got around my eclipse-debugging problem by deploying to a local tomcat and 
attaching the debugger remotely.  I was never able to install a 2.1.1 GTW SDK 
in eclipse.

I’m in the process of nailing down my development to stable releases of 
geoserver/geofence.  Using geoserver 2.8.  For geofence it appears that the 
master branch is what’s compatible with geoserver 2.8?  Maybe there will be a 
release of a stable geofence that matches geoserver 2.8?

Thanks – Walter

From: Jody Garnett [mailto:jody.garn...@gmail.com]
Sent: Monday, October 19, 2015 11:19 AM
To: Walter Stovall; geoserver-devel@lists.sourceforge.net
Subject: Re: [Geoserver-devel] Unable to run geofence under eclipse

If possible it would be great if you can try out the geofence integration in 
2.8 ( you will need to build plugin from source but we would love the feedback 
).
On Mon, Oct 19, 2015 at 2:56 AM Walter Stovall 
<walter.stov...@byers.com<mailto:walter.stov...@byers.com>> wrote:
Using the latest eclipse and the master branch of geofence.  I’m following 
eclipse setup instructions at 
https://github.com/geoserver/geofence/wiki/Building-instructions

My problem may be related to the GWT SDK version.  I went to 
https://developers.google.com/eclipse/docs/download to install the latest GWT 
plugin.  But the instructions say to use GWT 2.1.1.  So I downloaded and 
unzipped the gwt-2.1.1.zip file.  Then in eclipse I go to 
Window->Preferences->Google->App Engine->Add and point to my unzipped 2.1.1.  
But eclipse shows an error “Failed to initialize App Engine SDK at C:\...”.  
The app engine SDK appears to be a good install – at least creating the sample 
MyWebApp with it works.

I tried running with the latest SDK but some of the switches in the 
launch-config arguments are not valid in that SDK – I think this direction is a 
wrong-turn.

Does anybody know how to get past this?

Looking in the eclipse log I find…
!ENTRY com.google.appengine.eclipse.core 4 0 2015-10-19 05:45:47.604
!MESSAGE GAE SDK gwt-2.1.1 failed validation
!STACK 1
org.eclipse.core.runtime.CoreException: Failed to initialize App Engine SDK at 
C:\byers\git\GoogleWebToolkit\gwt-2.1.1
at 
com.google.appengine.eclipse.core.sdk.AppEngineBridgeFactory.createBridge(AppEngineBridgeFactory.java:194)
at 
com.google.appengine.eclipse.core.sdk.AppEngineBridgeFactory.createBridge(AppEngineBridgeFactory.java:122)
at 
com.google.appengine.eclipse.core.sdk.AppEngineBridgeFactory.getAppEngineBridge(AppEngineBridgeFactory.java:95)
at 
com.google.appengine.eclipse.core.sdk.GaeSdk.getAppEngineBridge(GaeSdk.java:325)
at 
com.google.appengine.eclipse.core.sdk.GaeSdk.validate(GaeSdk.java:498)
at 
com.google.gdt.eclipse.core.ui.AddSdkDialog.validateSdk(AddSdkDialog.java:273)
at 
com.google.gdt.eclipse.core.ui.AddSdkDialog.validate(AddSdkDialog.java:213)
at 
com.google.gdt.eclipse.core.ui.AddSdkDialog$4.modifyText(AddSdkDialog.java:176)
at 
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
at 
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1113)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1137)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1118)
at org.eclipse.swt.widgets.Text.wmCommandChild(Text.java:3071)
at org.eclipse.swt.widgets.Control.WM_COMMAND(Control.java:4824)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4679)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5050)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native 
Method)
at 
org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2443)
at org.eclipse.swt.widgets.Text.callWindowProc(Text.java:260)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4774)
at org.eclipse.swt.widgets.Text.windowProc(Text.java:2671)
at org.eclipse.swt.widgets.Display.wind

[Geoserver-devel] Unable to run geofence under eclipse

2015-10-19 Thread Walter Stovall
Using the latest eclipse and the master branch of geofence.  I'm following 
eclipse setup instructions at 
https://github.com/geoserver/geofence/wiki/Building-instructions

My problem may be related to the GWT SDK version.  I went to 
https://developers.google.com/eclipse/docs/download to install the latest GWT 
plugin.  But the instructions say to use GWT 2.1.1.  So I downloaded and 
unzipped the gwt-2.1.1.zip file.  Then in eclipse I go to 
Window->Preferences->Google->App Engine->Add and point to my unzipped 2.1.1.  
But eclipse shows an error "Failed to initialize App Engine SDK at C:\...".  
The app engine SDK appears to be a good install - at least creating the sample 
MyWebApp with it works.

I tried running with the latest SDK but some of the switches in the 
launch-config arguments are not valid in that SDK - I think this direction is a 
wrong-turn.

Does anybody know how to get past this?

Looking in the eclipse log I find...
!ENTRY com.google.appengine.eclipse.core 4 0 2015-10-19 05:45:47.604
!MESSAGE GAE SDK gwt-2.1.1 failed validation
!STACK 1
org.eclipse.core.runtime.CoreException: Failed to initialize App Engine SDK at 
C:\byers\git\GoogleWebToolkit\gwt-2.1.1
at 
com.google.appengine.eclipse.core.sdk.AppEngineBridgeFactory.createBridge(AppEngineBridgeFactory.java:194)
at 
com.google.appengine.eclipse.core.sdk.AppEngineBridgeFactory.createBridge(AppEngineBridgeFactory.java:122)
at 
com.google.appengine.eclipse.core.sdk.AppEngineBridgeFactory.getAppEngineBridge(AppEngineBridgeFactory.java:95)
at 
com.google.appengine.eclipse.core.sdk.GaeSdk.getAppEngineBridge(GaeSdk.java:325)
at 
com.google.appengine.eclipse.core.sdk.GaeSdk.validate(GaeSdk.java:498)
at 
com.google.gdt.eclipse.core.ui.AddSdkDialog.validateSdk(AddSdkDialog.java:273)
at 
com.google.gdt.eclipse.core.ui.AddSdkDialog.validate(AddSdkDialog.java:213)
at 
com.google.gdt.eclipse.core.ui.AddSdkDialog$4.modifyText(AddSdkDialog.java:176)
at 
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
at 
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1113)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1137)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1118)
at org.eclipse.swt.widgets.Text.wmCommandChild(Text.java:3071)
at org.eclipse.swt.widgets.Control.WM_COMMAND(Control.java:4824)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4679)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5050)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native 
Method)
at 
org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2443)
at org.eclipse.swt.widgets.Text.callWindowProc(Text.java:260)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4774)
at org.eclipse.swt.widgets.Text.windowProc(Text.java:2671)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5050)
at org.eclipse.swt.internal.win32.OS.SetWindowTextW(Native 
Method)
at org.eclipse.swt.internal.win32.OS.SetWindowText(OS.java:3473)
at org.eclipse.swt.widgets.Text.setText(Text.java:2296)
at 
com.google.gdt.eclipse.core.ui.AddSdkDialog$2.widgetSelected(AddSdkDialog.java:153)
at 
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at 
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1113)
at 
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4180)
at 
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3769)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:827)
at org.eclipse.jface.window.Window.open(Window.java:803)
at 
com.google.appengine.eclipse.core.preferences.ui.GaePreferencePage$1.doAddSdk(GaePreferencePage.java:90)
at 
com.google.gdt.eclipse.core.ui.SdkTable$3.widgetSelected(SdkTable.java:242)
at 
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at 
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1113)
at 

[Geoserver-devel] [JIRA] (GEOS-7246) The HelloWorld example OWS does not build

2015-10-15 Thread Walter Stovall (JIRA)
Title: Message Title
 
 
 
 
 
 
 
 
 
 
  
 
 Walter Stovall created an issue 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 GeoServer /  GEOS-7246 
 
 
 
  The HelloWorld example OWS does not build  
 
 
 
 
 
 
 
 
 

Issue Type:
 
  Bug 
 
 
 

Assignee:
 

 Unassigned 
 
 
 

Components:
 

 Documentation 
 
 
 

Created:
 

 15/Oct/15 12:51 PM 
 
 
 

Priority:
 
  Medium 
 
 
 

Reporter:
 
 Walter Stovall 
 
 
 
 
 
 
 
 
 
 
Having a HelloWorld example is of course done to introduce new developers with something simple that works, without them having to understand all the internals yet.  
The HelloWorld example at http://docs.geoserver.org/latest/en/developer/programming-guide/ows-services/implementing.html will not build. 
Creating the example as shown on that page results in the following build error: Could not find artifact org.eclipse.emf:common:jar:2.6.0 in boundless (http://repo.boundlessgeo.com/main) 
The error can apparently be fixed by making this change to pom.xml: Boundless Maven Repository 

BAD URL AS SHOWN IN EXAMPLE http://repo.boundlessgeo.com/main
 Use this instead--> https://boundless.artifactoryonline.com/boundless/snaps

[Geoserver-devel] Seeking approval as a community contributor

2015-10-07 Thread Walter Stovall
I am seeking approval for committing geoserver fixes or improvements.  Based on 
the procedure outlined at 
http://docs.geoserver.org/latest/en/developer/policies/committing.html#comitting
 I have created a github account with user id wmstoval and have also filled out 
the corporate contributor agreement, signed by our vice president.

Please review the agreement I sent to  i...@osgeo.org<mailto:i...@osgeo.org> 
and let me know if there's anything out of order.

I'm in the process of learning the development tools leading up to creating a 
pull request for my proposed changes which will initially be a fix for 
https://osgeo-org.atlassian.net/browse/GEOT-5239

I've forked the conical repository and created an eclipse workspace to develop 
my change.  This will be a change to gt-jdbc-oracle-15-SNAPSHOT.jar, the 
OracleDialect class.

In my eclipse workspace I just have the JAR, so OracleDialect.java is not a 
writeable source file.  In spite of that I've done the development by creating 
a src folder and putting my modified OracleDialect there so it comes first on 
the classpath.  But of course that's only good for some debugging.

I would like to checkin my changes and create a pull-request.  But how would I 
get the SNAPSHOT sources into my workspace so I can make the proposed change 
where the OracleDialect source really lives?

Thank You - I look forward to contributing to this great product!

Walter Stovall
Byers Engineering Company
http://www.byers.com
6285 Barfield Road
Atlanta, GA.  30328 USA
(404) 843-1000
--
Full-scale, agent-less Infrastructure Monitoring from a single dashboard
Integrate with 40+ ManageEngine ITSM Solutions for complete visibility
Physical-Virtual-Cloud Infrastructure monitoring from one console
Real user monitoring with APM Insights and performance trend reports 
Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911=/4140___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


[Geoserver-devel] FW: Seeking approval as a community contributor

2015-10-07 Thread Walter Stovall
Excuse me - I was confused.  I do want to contribute to GeoServer but GeoTools 
is actually where the bug I want to fix is.  I'm working on building that, 
applying my change, submitting a pull request.

From: Walter Stovall
Sent: Wednesday, October 07, 2015 9:16 AM
To: geoserver-devel@lists.sourceforge.net
Subject: [Geoserver-devel] Seeking approval as a community contributor

I am seeking approval for committing geoserver fixes or improvements.  Based on 
the procedure outlined at 
http://docs.geoserver.org/latest/en/developer/policies/committing.html#comitting
 I have created a github account with user id wmstoval and have also filled out 
the corporate contributor agreement, signed by our vice president.

Please review the agreement I sent to  i...@osgeo.org<mailto:i...@osgeo.org> 
and let me know if there's anything out of order.

I'm in the process of learning the development tools leading up to creating a 
pull request for my proposed changes which will initially be a fix for 
https://osgeo-org.atlassian.net/browse/GEOT-5239

I've forked the conical repository and created an eclipse workspace to develop 
my change.  This will be a change to gt-jdbc-oracle-15-SNAPSHOT.jar, the 
OracleDialect class.

In my eclipse workspace I just have the JAR, so OracleDialect.java is not a 
writeable source file.  In spite of that I've done the development by creating 
a src folder and putting my modified OracleDialect there so it comes first on 
the classpath.  But of course that's only good for some debugging.

I would like to checkin my changes and create a pull-request.  But how would I 
get the SNAPSHOT sources into my workspace so I can make the proposed change 
where the OracleDialect source really lives?

Thank You - I look forward to contributing to this great product!

Walter Stovall
Byers Engineering Company
http://www.byers.com
6285 Barfield Road
Atlanta, GA.  30328 USA
(404) 843-1000
--
Full-scale, agent-less Infrastructure Monitoring from a single dashboard
Integrate with 40+ ManageEngine ITSM Solutions for complete visibility
Physical-Virtual-Cloud Infrastructure monitoring from one console
Real user monitoring with APM Insights and performance trend reports 
Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911=/4140___
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel