[Geoserver-devel] IdentifierKvpPaser conflict

Hi,

I've run into a problem parsing a KVP DescribeProcess request with
the WPS module.

Both WCS and WPS have custom KVP parsers for the 'Identifier' key.

WCS' parser does not seem to have its service string set when the
KvpUtils.parse() method prunes the list of possible parsers.

Since they both share the same key value and WCS' parser comes first
in the list, it is selected to parse the WPS request, which then
generates and exception.

I had this working previously, so I'm not sure why it's no longer
working.

-Lucas

Hi Lucas,

I looked into it and I see the issue. The simple solution is attach service=WCS to the wcs kvp parser so it does not conflict. However... both the kvp readers return a CodeType instance from the ows model... so it would be duplication. However... the wcs parser uses the identifier to do a validation check against it to look up a coverage in the catalog.

So... here is an idea (Andrea I would like your feedback on what you think).

1. Move IdentifierKvpParser to the ows model
2. Move the validation check to a KvpRequestReader
3. Have both wcs and wps modules declare an instance of the reader in the app context

I suspect the only issue will be that in order to move the validation check to a request reader it would need to be duplicated for multiple requests... so lets rework a bit :).

1. Move IdentifierKvpParser to the ows model
2. Create a subclass in wcs which does the validation check
3. Have both wcs and wps modules declare an instance of the reader in the app context

Andrea: what do you think?

-Justin

Lucas Reed wrote:

Hi,

I've run into a problem parsing a KVP DescribeProcess request with
the WPS module.

Both WCS and WPS have custom KVP parsers for the 'Identifier' key.

WCS' parser does not seem to have its service string set when the
KvpUtils.parse() method prunes the list of possible parsers.

Since they both share the same key value and WCS' parser comes first
in the list, it is selected to parse the WPS request, which then
generates and exception.

I had this working previously, so I'm not sure why it's no longer
working.

-Lucas

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

!DSPAM:4007,48447d40233462143011171!

--
Justin Deoliveira
The Open Planning Project
jdeolive@anonymised.com

Justin Deoliveira ha scritto:

Hi Lucas,

I looked into it and I see the issue. The simple solution is attach service=WCS to the wcs kvp parser so it does not conflict. However... both the kvp readers return a CodeType instance from the ows model... so it would be duplication. However... the wcs parser uses the identifier to do a validation check against it to look up a coverage in the catalog.

So... here is an idea (Andrea I would like your feedback on what you think).

1. Move IdentifierKvpParser to the ows model
2. Move the validation check to a KvpRequestReader
3. Have both wcs and wps modules declare an instance of the reader in the app context

I suspect the only issue will be that in order to move the validation check to a request reader it would need to be duplicated for multiple requests... so lets rework a bit :).

1. Move IdentifierKvpParser to the ows model
2. Create a subclass in wcs which does the validation check
3. Have both wcs and wps modules declare an instance of the reader in the app context

Andrea: what do you think?

Sure thing, works for me:
http://jira.codehaus.org/browse/GEOS-1967
(working on it)
Cheers
Andrea

Andrea Aime ha scritto:
...

Sure thing, works for me:
http://jira.codehaus.org/browse/GEOS-1967
(working on it)

Ok, if you look in OWS, you'll find a CodeTypeParser
that the wcs 1.1 code extends. I also made it specify
the service name, so it should not clash anymore with
wps. Lucas, have a look and tell
me if it works for you too.

Cheers
Andrea

Thanks Andrea, that seems to have done the trick.

-Lucas

Andrea Aime wrote:

Andrea Aime ha scritto:
...

Sure thing, works for me:
http://jira.codehaus.org/browse/GEOS-1967
(working on it)

Ok, if you look in OWS, you'll find a CodeTypeParser
that the wcs 1.1 code extends. I also made it specify
the service name, so it should not clash anymore with
wps. Lucas, have a look and tell
me if it works for you too.

Cheers
Andrea