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]; 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/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]
> > 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. 
> 
> 
> 
> 

------------------------------------------------------------------------------
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