I added the details to the bug report :)

I need to understand better FilterEncodingPreProcessor, but after the test I 
did the other day, if we have a a filter of the form:  and( id( fids ), 
anything .... ),
 we can use the low comppliance visitor to extract the anything filter, and the 
high comppliance visitor to extract the fid filter, right?

Joaquín 

________________________________________
De: Jody Garnett [[email protected]]
Enviado el: lunes, 11 de abril de 2011 10:55
Para: Joaquín Rodriguez-Guerra Urcelay
CC: [email protected]; Justin Deoliveira; Gabriel Roldan
Asunto: Re: RE: WFS Filter composed by fid filter and comparation filter not 
being accepted by mapserver

Please go ahead and update the bug report with details; I can change the name 
of the bug report perhaps to "GetRequest Id Filter Encoding".

Just to be clear what I am trying for here is a "strict" setting that we can 
apply which would result in the correct behaviour...

If a filter of the form:  and( id( fids ), anything .... )

We will replace it and request just: id( fids) from the WFS

And then handle "anything..." on the client side (inside the WFSDataStore).


--
Jody Garnett


On Monday, 11 April 2011 at 6:17 PM, Joaquín Rodriguez-Guerra Urcelay wrote:

Thank you Jody,



Yes, please update the report, or I do it if you prefer, the only thing is that 
I think I dont have priviledges to change the name of the bug report, do you?



I will try to play a bit more with FilterEncodingPreProcessor to see If can I 
get any farther.





De: Jody Garnett [mailto:[email protected]]
Enviado el: sábado, 09 de abril de 2011 2:39
Para: Joaquín Rodriguez-Guerra Urcelay
CC: 
[email protected]<mailto:[email protected]>;
 Justin Deoliveira; Gabriel Roldan
Asunto: WFS Filter composed by fid filter and comparation filter not being 
accepted by mapserver



Hello Joaquín:



I am following you across lists. WFS is an unsupported module, generally 
meaning it does not meet the QA levels expected for GeoTools.



The "pom.xml" file 
(http://svn.osgeo.org/geotools/trunk/modules/unsupported/wfs/pom.xml) lists two 
contacts as module maintainer: justin and gabriel who I have CCed.



 I had a look in the list of open issue for GeoTools WFS:

- http://jira.codehaus.org/browse/GEOT/component/11098



It shows a fairly large number of open issues; including a couple that match 
what you are describing. The difference is that your email has enough details 
that we could look into what is going on.



Here are the close matches:

- http://jira.codehaus.org/browse/GEOT-3151 Deegree 3 reports WFS-T seriously 
broken (references UDIG-1673<http://jira.codehaus.org/browse/UDIG-1673> )

- http://jira.codehaus.org/browse/GEOT-2112 XML for WFS GetFeature query has 
invalid filter

- http://jira.codehaus.org/browse/GEOT-1013 FidFilter not working in WFS data 
store?

- http://jira.codehaus.org/browse/GEOT-1499 WFSFeatureSource.getFeatures() 
always returns empty set with ALL query



The first one is the best match (and links to UDIG-1673); it ends with the 
following comment:



I talked with Markus and by "nested filter" they mean a filter in which you mid 
fid filters with something else. Fid filters are supposed to be the root of the 
filter, they cannot be mixed with anything else in OGC filter (both versions).
Solving the above it's a matter of splitting the filter and deciding which part 
of it to send the remote wfs.
Anyways, there is a bigger issue... who's going to fix this one? No 
maintainer....



So I would like to update this bug report with the details you have provided 
(and maybe give it a better name so it is easier to find).



--
Jody Garnett

On Friday, 8 April 2011 at 7:49 PM, Joaquín Rodriguez-Guerra Urcelay wrote:

Hello list

This is the first time I write here, so hello everybody :)
I have recently started to work in a project using uDig, which works with 
geotools.

The other day I was having an issue with a filter udig was sending to a wfs 
layer. The filter is a fid filter, but geotoool's streaming renderer is adding 
a bbox filter to it, and mapserver is not understanding it probably due to an 
encoding issue.

This is the filter sent by udig to mapserver (failing it due to the filter tag 
contained in the main filter tag):

http://localhost:8080/cgi-bin/mywfs?SERVICE=WFS&VERSION=1.0.0&request=getfeature&typename=PositionReal&Filter=
<Filter>
<And>
<Filter>
<FeatureId fid="PositionReal.3"/>
</Filter>
<BBOX>
<PropertyName>point</PropertyName>
<Box>
<coordinates decimal="." cs="," ts=" ">-100.82219958499486,-57.14285725714286 
100.82219958499486,57.14285725714286</coordinates>
</Box>
</BBOX>
</And>
</Filter>

And this is what mapserver understands:

http://localhost:8080/cgi-bin/mywfs?SERVICE=WFS&VERSION=1.0.0&request=getfeature&typename=PositionReal&Filter=
<Filter>
<And>
<FeatureId fid="PositionReal.3"/>
<BBOX>
<PropertyName>point</PropertyName>
<Box>
<coordinates decimal="." cs="," ts=" ">-100.82219958499486,-57.14285725714286 
100.82219958499486,57.14285725714286</coordinates>
</Box>
</BBOX>
</And>
</Filter>

Joddy Garnett helped me in the udig-devel list and he suggested that it could 
be an encoding issue, and maybe using the FilterEncodingPreProcessor we could 
fix it.

I have tried to understand the FilterEncodingPreProcessor, but I am having some 
dificulties. I have created a filter composed by a fid filter and a comparation 
filter. My goal is to have them encoded on the same xml filter, but no luck. I 
have tried the 3 compliance levels, hoping that after accepting each visitor 
(one for each level) in the filter, I would be able to invoke visitor.getFilter 
and obtain the new filter, hopefully one of them encoded as I want. So I 
printed the xml code of the getFilter() filter of each visitor, but I guess I 
didnt unerstand this correctly, right?

CODE:

org.geotools.xml.Configuration conf2 =D new 
org.geotools.filter.v1_1.OGCConfiguration();

FilterFactory2 factory = CommonFactoryFinder.getFilterFactory2(null);
String fid1 = "FID.1";
Filter fidFilter= createFidFilter("FID.1");
Filter normalFilter = CQL.toFilter("id = 1");
Filter filter = factory.and( fidFilter, normalFilter);

FFilterEncodingPreProcessor visitor1 = new 
FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_LOW);
FFilterEncodingPreProcessor visitor2 = new 
FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_MEDIUM);
FFilterEncodingPreProcessor visitor3 = new 
FilterEncodingPreProcessor(XMLHandlerHints.VALUE_FILTER_COMPLIANCE_HIGH);

System.out.println(""LOW");
FFilters.accept(filter, visitor1);
org.geotools.xml.Encoder encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSSize(2);
encoder.encode(visitor1.getFilter(), org.geotools.filter.v1_1.OGC.Filter, 
System.out );
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visitor1.getFFidFilter(), org.geotools.filter.v1_1.OGC.Filter, 
System.out );

System.out.println(""MEDIUM");
Filters.accept(filter, visitor2);
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visitor22.getFilter(), org.geotools.filter.v1_1.OGC.Filter, 
System.out );
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setInddentSize(2);
encoder.encode( visitor2.getFidFilter(), org.geotools.filter.v1_1.OGC.Filter, 
System.out );

System.out.println(""HIGH");
FFilters.accept(filter, visitor3);
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visitor3.getFilter(), org.geotools.filter.v1_0.OGC.Filter, 
System.out );
encoder = new org.geotools.xml.Encoder(conf2);
encoder.setIndenting(true);
encoder.setIndentSize(2);
encoder.encode( visittor3.getFidFilter(), org.geotools.filter.v1_1.OGC.Filter, 
System.out );

OUTPUT:


LOW
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"; 
xmlns:gml="http://www.opengis.net/gml";>
<ogc:And>
<ogc:PropertyIsEqualTo matchCase="true">
<ogc:PropertyName>id</ogc:PropertyName>
<ogc:Literal>1</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:And>
</ogc:Filter>
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"; 
xmlns:gml="http://www.opengis.net/gml"/>
MEDIUM
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"; 
xmlns:gml="http://www.opengis.net/gml"/>
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"; 
xmlns:gml="http://www.opengis.net/gml";>
<ogc:FeatureId fid="FID.1"/>
</ogc:Filter>
HIGH
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"; 
xmlns:gml="http://www.opengis.net/gml"/>
<?xml version="1.0" encoding="UTF-8"?>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"; 
xmlns:gml="http://www.opengis.net/gml";>
<ogc:FeatureId fid="FID.1"/>
</ogc:Filter>

are we on the right track? any close to the solution?

Thank you!

Joaquín
______________________
This message including any attachments may contain confidential
information, according to our Information Security Management System,
and intended solely for a specific individual to whom they are addressed.
Any unauthorised copy, disclosure or distribution of this message
is strictly forbidden. If you have received this transmission in error,
please notify the sender immediately and delete it.

______________________
Este mensaje, y en su caso, cualquier fichero anexo al mismo,
puede contener informacion clasificada por su emisor como confidencial
en el marco de su Sistema de Gestion de Seguridad de la
Informacion siendo para uso exclusivo del destinatario, quedando
prohibida su divulgacion copia o distribucion a terceros sin la
autorizacion expresa del remitente. Si Vd. ha recibido este mensaje
erroneamente, se ruega lo notifique al remitente y proceda a su borrado.
Gracias por su colaboracion.

______________________


------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Geotools-gt2-users mailing list
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users



________________________________
This message including any attachments may contain confidential information, 
according to our Information Security Management System, and intended solely 
for a specific individual to whom they are addressed. Any unauthorised copy, 
disclosure or distribution of this message is strictly forbidden. If you have 
received this transmission in error, please notify the sender immediately and 
delete it.
________________________________
Este mensaje, y en su caso, cualquier fichero anexo al mismo, puede contener 
informaci?n clasificada por su emisor como confidencial en el marco de su 
Sistema de Gesti?n de Seguridad de la Informaci?n siendo para uso exclusivo del 
destinatario, quedando prohibida su divulgaci?n copia o distribuci?n a terceros 
sin la autorizaci?n expresa del remitente. Si Vd. ha recibido este mensaje 
err?neamente, se ruega lo notifique al remitente y proceda a su borrado. 
Gracias por su colaboraci?n.
________________________________
Esta mensagem, incluindo qualquer ficheiro anexo, pode conter informa??o 
confidencial, de acordo com nosso Sistema de Gest?o de Seguran?a da Informa??o, 
sendo para uso exclusivo do destinat?rio e estando proibida a sua divulga??o, 
c?pia ou distribui??o a terceiros sem autoriza??o expressa do remetente da 
mesma. Se recebeu esta mensagem por engano, por favor avise de imediato o 
remetente e apague-a. Obrigado pela sua colabora??o.
________________________________


______________________
This message including any attachments may contain confidential 
information, according to our Information Security Management System,
 and intended solely for a specific individual to whom they are addressed.
 Any unauthorised copy, disclosure or distribution of this message
 is strictly forbidden. If you have received this transmission in error,
 please notify the sender immediately and delete it.

______________________
Este mensaje, y en su caso, cualquier fichero anexo al mismo,
 puede contener informacion clasificada por su emisor como confidencial
 en el marco de su Sistema de Gestion de Seguridad de la 
Informacion siendo para uso exclusivo del destinatario, quedando 
prohibida su divulgacion copia o distribucion a terceros sin la 
autorizacion expresa del remitente. Si Vd. ha recibido este mensaje 
 erroneamente, se ruega lo notifique al remitente y proceda a su borrado. 
Gracias por su colaboracion.

______________________


------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to