Re: [Geoserver-devel] geotools/geoserver iText and geoPDF
On Tue, Feb 1, 2011 at 9:38 AM, Frank Gasdorf fg...@users.sourceforge.net wrote: Hi List, Hi Jody First of all, sorry for cross-posting! Last Night I had a look at the iText Project [1] Jody has mentioned and I have to dive deeper to get a clue what it does and which part of the API is currently used by geotools/geoserver. What I like to get is a pdf file where the user could use (but not required) the free terrago toolbar [2] to measure distances and areas and type lat/lon coordinates to jump to locations within the pdf. But it is required to have CRS information about the data/content within the document. In addition it would be great to have layers in the hierarchy view (Index) and search capabilities on the feature content (attribute values). But however, would't that be nice features for all geoserver/geotools folks and end-users to get a ready to go pdf for the field and have these capabilities. Maybe some of you could point me to the code where the pdf stuff is taking place ... I'm going to read the adope pdf documentation [4] to find a hint if some TAGs are missed to act like a geopdf. And properly it's already supported by iText to create the meta information. An other relevant documentation is PDF Geo-registration Encoding Best Practice Version 2.2 at OGC standards best practices home [3]. Do you think we could create an enhancement in geotools/geoserver for that? I don't know, didn't had the time to investigate the links you provided. Howerver, the code that generates PDF in GeoServer is here: http://svn.codehaus.org/geoserver/trunk/src/wms/src/main/java/org/geoserver/wms/map/PDFMapResponse.java Basically we ask iText to give up a Graphics2D object and then we draw on top of it as if it was a java2d one. That does not give an occasion to do anything in between layers getting rendered. I guess one could split the map into n single maps, yet that would break labeling solid (as it has to happen at the end of the rendering to have all labels conflict resolve with each other and stay on top). That too can be handled somehow but it would require splitting the styles into components with text symbolizers and components without As for setting in the necessary metadata, I hope iText provides the necessary support for that (but I'm confident it might) Cheers Andrea PS: ah, another possible hack is to create a custom label cache that just wraps the standard one. This is because the label cache is informed on layers starting and stopping being rendered. Yet another possibility would be to make streaming renderer subclassable, but it's not on purpose, not really though to be a base class -- Ing. Andrea Aime Technical Lead GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584962313 fax: +39 0584962313 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf - -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
[Geoserver-devel] GeoServer Rendering Enhancement
Hi All, I would like to propose an enhancement to the rendering within GeoServer. With the recent release, Geoserver now be default uses StreamingRenderer, as oppose to previously when ShapefileRenderer was the default renderer. The good thing about the ShapefileRenderer, is that it made a call to StreamingRenderer. Due to the architecture of ShapefileRenderer, we were able to make the method which calls StreamingRenderer multithreaded, so that if multiple WMS layers are called (For example in OS On Demand there is an OS MasterMap product which contains 6 layers: TOPOGRAPHICAREA, TOPOGRPAHICLINE, BOUNDARYLINE, CARTOGRPAHICSYMBOL, TOPOGRPAHICPOINT AND CARTOGRAPHICTEXT) using the parallel approach, we have seen tremendous improvements in performance compared to when the ShapefileRenderer uses a single thread for rendering all 6 layers at the same time. I understand that ShapefileRenderer is now in an unsupported state, so maybe we can migrate this to be a WMSRenderer as I'm not sure of the different use cases away from WMS requests. Thanks, Steve DISCLAIMER: This email may contain confidential information and is intended only for the use of the specific individual(s) to which it is addressed. If you are not the intended recipient of this email, you are hereby notified that any unauthorized use, dissemination or copying of this email or the information contained in it or attached to it is strictly prohibited. If you received this message in error, please immediately notify the sender at Infotech or mail.ad...@infotech-enterprises.com and delete the original message. -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
Re: [Geoserver-devel] GeoServer Rendering Enhancement
On Wed, Feb 2, 2011 at 10:04 AM, Steve Way steve@infotech-enterprises.com wrote: Hi All, I would like to propose an enhancement to the rendering within GeoServer. With the recent release, Geoserver now be default uses StreamingRenderer, as oppose to previously when ShapefileRenderer was the default renderer. The good thing about the ShapefileRenderer, is that it made a call to StreamingRenderer. Due to the architecture of ShapefileRenderer, we were able to make the method which calls StreamingRenderer multithreaded, so that if multiple WMS layers are called (For example in OS On Demand there is an OS MasterMap product which contains 6 layers: TOPOGRAPHICAREA, TOPOGRPAHICLINE, BOUNDARYLINE, CARTOGRPAHICSYMBOL, TOPOGRPAHICPOINT AND CARTOGRAPHICTEXT) using the parallel approach, we have seen tremendous improvements in performance compared to when the ShapefileRenderer uses a single thread for rendering all 6 layers at the same time. I have reservations about this approach but we can discuss it. First off, the StreamingRenderer is now internally threaded, with one thread reading from the data sources and a second one painting. I can see how rendering data in parallel might improve response times for the single user case, but in general I believe this will be detrimental for a number of reasons (I'll be happy to be proven wrong though, been banging my head on rendering speed for a while and help is sure welcomed). Why I think having blinding multi-rendering is going to be more trouble than an improvement: - in order to render n layers in parallel you need to allocate n drawing surfaces, with all but the first one 4 byte deep. This makes the memory usage uncontrollable, there should be some limits otherwise this approach will take GS to OOM in no time Btw, this would also break the wms rendering size limits, as the memory to be used is computed taking into account the normal behavior of the streaming renderer - years ago I was contracted to look into uDig trashing the entire operating system while trying to just render a map made of 20-some shapefiles. Looking into it I discovered uDig was rendering exactly as you suggest, one thread per layer, and the file system layer was completely thrashed due to that. This kind of consideration is quite common and it's by no means limited to the file system. On the file system you have the disk head jump around like crazy if you access too many files in parallel, on a database you would end up using n separate connections (one per layer coming from a db) and thus would starve the connection pool, if the server is a remote one you would break the common rule of not using more than 2-6 parallel accesses (something browsers still abide to) - java2d rendering has a serious scalability problem that becomes evident once you start using many threads rendering in parallel. It seems that Oracle has made the bug report in the java database inaccessible but there is still some threads about me complaning: http://www.java.net/forum/topic/javadesktop/java-desktop-technologies/java-2d/poor-java2d-scalability-server-applicatio-0 The bug is the reason why none of the java based servers could get good numbers above 4-8 concurrent clients in the FOSS4G 2010 wms shootout: the global synchronizations inside the antialiased rendering make it impossible to have more than 2-4 threads actually active inside the antialiased rasterization path (this is why I went for parallelizing data loading and rendering instead). - in the past months I actually made a module called control-flow whose purpose is to limit parallel executing request in order to maximize throughput and stability under high load. The GS instance where I installed it became quite a bit more stable and were able to serve more requests per day. Long story short, I'm pretty sure you can get improvements in the single user/few layers case (few layers - single digit) but in order to make that approach work in the general care a lot of care must be taken. The following ideas should be taken into account when designing a layer parallel renderer for server side usage: - limit the number of parallel rendering tasks so that the memory usage does not go above the wms rendering limits - limit the parallel rendering working by zones, so that we cannot have 10 layers all hitting the same database in parallel, or we are going to starve the connection pool (this is actually something the admin should be able to configure, if you have a connection pool of 20-40 connections better never have more than 2, otherwise bye bye serving concurrent clients) - make sure anyways the global count of rendering threads does not exceed a configurable n (wms performance shootout suggest n = 8 due to the java2d scalability issue) to avoid having the jvm just sit and wait for the java2d synchronized blocks to be freed The above is actually the reason why I did not
Re: [Geoserver-devel] geotools/geoserver iText and geoPDF
Just to follow up andrea's ideas. In udig we make a custom label cache and throw it at several streaming renderers (so they can render in different threads) - so the idea of a custom label cache works very well. We also do a trick of increasing the page resolution; and then also using a visitor to edit the styles (so lines and fonts are bigger); and then rescale that output down to the final page size. This results in a larger; but higher quality pdf. Jody On 02/02/2011, at 6:36 PM, Andrea Aime wrote: On Tue, Feb 1, 2011 at 9:38 AM, Frank Gasdorf fg...@users.sourceforge.net wrote: Hi List, Hi Jody First of all, sorry for cross-posting! Last Night I had a look at the iText Project [1] Jody has mentioned and I have to dive deeper to get a clue what it does and which part of the API is currently used by geotools/geoserver. What I like to get is a pdf file where the user could use (but not required) the free terrago toolbar [2] to measure distances and areas and type lat/lon coordinates to jump to locations within the pdf. But it is required to have CRS information about the data/content within the document. In addition it would be great to have layers in the hierarchy view (Index) and search capabilities on the feature content (attribute values). But however, would't that be nice features for all geoserver/geotools folks and end-users to get a ready to go pdf for the field and have these capabilities. Maybe some of you could point me to the code where the pdf stuff is taking place ... I'm going to read the adope pdf documentation [4] to find a hint if some TAGs are missed to act like a geopdf. And properly it's already supported by iText to create the meta information. An other relevant documentation is PDF Geo-registration Encoding Best Practice Version 2.2 at OGC standards best practices home [3]. Do you think we could create an enhancement in geotools/geoserver for that? I don't know, didn't had the time to investigate the links you provided. Howerver, the code that generates PDF in GeoServer is here: http://svn.codehaus.org/geoserver/trunk/src/wms/src/main/java/org/geoserver/wms/map/PDFMapResponse.java Basically we ask iText to give up a Graphics2D object and then we draw on top of it as if it was a java2d one. That does not give an occasion to do anything in between layers getting rendered. I guess one could split the map into n single maps, yet that would break labeling solid (as it has to happen at the end of the rendering to have all labels conflict resolve with each other and stay on top). That too can be handled somehow but it would require splitting the styles into components with text symbolizers and components without As for setting in the necessary metadata, I hope iText provides the necessary support for that (but I'm confident it might) Cheers Andrea PS: ah, another possible hack is to create a custom label cache that just wraps the standard one. This is because the label cache is informed on layers starting and stopping being rendered. Yet another possibility would be to make streaming renderer subclassable, but it's not on purpose, not really though to be a base class -- Ing. Andrea Aime Technical Lead GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584962313 fax: +39 0584962313 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf - -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
Re: [Geoserver-devel] geotools/geoserver iText and geoPDF
On Wed, Feb 2, 2011 at 1:22 PM, Jody Garnett jody.garn...@gmail.com wrote: Just to follow up andrea's ideas. In udig we make a custom label cache and throw it at several streaming renderers (so they can render in different threads) - so the idea of a custom label cache works very well. Right, did not think about it, that also solves the problem of having all the labels keep on conflict resolutiong with each other, one just has to kick the label cache drawing when all the layers have done rendering We also do a trick of increasing the page resolution; and then also using a visitor to edit the styles (so lines and fonts are bigger); and then rescale that output down to the final page size. This results in a larger; but higher quality pdf. That one is no more necessary, we do have dpi control in the renderer now (have been for quite some time) Cheers Andrea -- Ing. Andrea Aime Technical Lead GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584962313 fax: +39 0584962313 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf - -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
Re: [Geoserver-devel] Basic WPS docs
On Wed, Feb 2, 2011 at 2:15 AM, Mike Pumphrey m...@opengeo.org wrote: Hi there. I just submitted a patch with some basic WPS docs. http://jira.codehaus.org/browse/GEOS-4350 To make it easier for people to read (and to see the graphics), I committed this first draft on 2.1.x. It should show up here after the next nightly build: http://docs.geoserver.org/stable/en/user/extensions/wps/index.html Feedback appreciated. A few notes: - the names of processes are case sensitive. Actually in OGC style request that is normal, all keys are case insenstive, all values are case sensitive. Process names are no exception, just like feature type names, coverage names, and wms layer names - the buffer in the example returns a square... correct answer given the params, but a little outside what one would expect from a buffer operation - in the geoserver processes paragraph you say These functions have the added bonus of being able to operate on existing layers in GeoServer, and can even write the output to a new GeoServer layer. Actually any process can work against existing GS layers, it just needs to be able to consume a feature collection or a grid coverage. And not even that in some cases, the JTS processes can feed off the GS layers via the internal WFS request if that one is chained in gs:CollectGeometries which turns the feature collection into a single geometry (it collects everything into a big multi-geometry) - the trick GS uses to get data off the internal WFS/WCS is to use a special URL for the wfs/wcs server, http://geoserver/wfs and http://geoserver/wcs (if memory serves me right) and that part is just a GS convention, it's not anything that is part of the standard - that said GS can feed off any remote WFS/WCS just fine (provided the chosen output format can be parsed by GS), and in general, but any remote call whatsoever that returns something parseable (it might be a php script returning GML for example) Cheers Andrea -- Ing. Andrea Aime Technical Lead GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584962313 fax: +39 0584962313 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf - -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
Re: [Geoserver-devel] GeoServer Rendering Enhancement
On Wed, Feb 2, 2011 at 11:11 AM, Andrea Aime andrea.a...@geo-solutions.it wrote: The above is actually the reason why I did not try to pursue this design in the past, getting it right is relatively hard and it only helps on light loads, while it makes everything way easier to break under high load. Given GS is a server side application, one that is meant to serve multiple requests in parallel, I left the fully parallelized approach to desktop apps (where it makes a lot more sense, but still should be guarded to avoid chewing up all the machine resources on non toy maps). Meh, as usual I end up sounding a lot more negative than I intend to. If we can get a speed improvements on the lighter loads I'm all for it, we just need to address it very carefully so that all the work that has been done in the past to ensure proper resource usage (and thus, stability) is not undermined by the newest changes Cheers Andrea -- Ing. Andrea Aime Technical Lead GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584962313 fax: +39 0584962313 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf - -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
[Geoserver-devel] [jira] Created: (GEOS-4352) textsymbolizers always on top of everything else?!
textsymbolizers always on top of everything else?! -- Key: GEOS-4352 URL: http://jira.codehaus.org/browse/GEOS-4352 Project: GeoServer Issue Type: Bug Affects Versions: 2.0.2 Environment: windows, geoserver with postgresql postgis Reporter: Teresa Böttcher Assignee: Andrea Aime I have a small issue with SLD, specifically the order in which symbolizers (mainly the textsymbolizer) are presented/rendered. Example: 1 layer roads with roads.sld (linesymbolizers textsymbolizers) 1 layer POI with poi.sld (pointsymbolizers textsymbolizers) Both are grouped together, with the roads-layer being drawn first. Everything seems to be according to the OGC specification and/or the GeoServer user manual, except for the textsymbolizer (of the roads.sld). These labels are ALWAYS on top of everything else. While I understand that these labels cannot know the specific dimension of the POI-graphics in different SLD-file, I would very much prefer the graphics to just overlap the street-labels (honoring the whole painters-model). (I also tried to get around this by using textsymbolizers with graphics for the POIs. But unfortunately I have a number of POIs as polygons, which do not work with the textsymbolizer. Well, text/labels work at very large scale (e.g. 1:1200), graphics don't work at all.) Is this a bug, or just standard GeoServer behavior? I would really appreciate any help/hints regarding this issue. Thank you. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
[Geoserver-devel] [jira] Created: (GEOS-4353) Reloading configuration and catalog caused a crash
Reloading configuration and catalog caused a crash -- Key: GEOS-4353 URL: http://jira.codehaus.org/browse/GEOS-4353 Project: GeoServer Issue Type: Bug Affects Versions: 2.0.2 Environment: Fedora 12 x64 Reporter: Mike Stoddart Assignee: Andrea Aime java.lang.IllegalArgumentException: Parameter message can't not be null. at org.apache.wicket.feedback.FeedbackMessage.init(FeedbackMessage.java:101) at org.apache.wicket.feedback.FeedbackMessages.error(FeedbackMessages.java:135) at org.apache.wicket.Component.error(Component.java:1170) at org.geoserver.web.admin.StatusPage$5.onClick(StatusPage.java:141) at org.apache.wicket.ajax.markup.html.AjaxLink$1.onEvent(AjaxLink.java:65) at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:163) at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:297) at org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:104) at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1239) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1316) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1418) at org.apache.wicket.RequestCycle.request(RequestCycle.java:532) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356) at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124) 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:158) 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:875) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) 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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) at
[Geoserver-devel] [jira] Created: (GEOS-4354) org.apache.wicket.WicketRuntimeException: Exception in rendering component
org.apache.wicket.WicketRuntimeException: Exception in rendering component -- Key: GEOS-4354 URL: http://jira.codehaus.org/browse/GEOS-4354 Project: GeoServer Issue Type: Bug Affects Versions: 2.0.2 Environment: Fedora 12 x64 Reporter: Mike Stoddart Assignee: Andrea Aime While choosing data to publish, I see: * Reload feature type * ... The ... is clickable and clicking it gives this stack dump: org.apache.wicket.WicketRuntimeException: Exception in rendering component: [Component id = message] at org.apache.wicket.Component.renderComponent(Component.java:2563) at org.apache.wicket.markup.html.WebComponent.onRender(WebComponent.java:60) at org.apache.wicket.Component.render(Component.java:2361) at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1298) at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1428) at org.apache.wicket.Page.onRender(Page.java:1502) at org.apache.wicket.Component.render(Component.java:2361) at org.apache.wicket.Page.renderPage(Page.java:913) at org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:63) at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1245) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1316) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1418) at org.apache.wicket.RequestCycle.request(RequestCycle.java:532) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356) at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124) 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:158) 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:875) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) 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.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at
Re: [Geoserver-devel] GeoServer Rendering Enhancement
On Wed, Feb 2, 2011 at 3:08 PM, Andrea Aime andrea.a...@geo-solutions.it wrote: On Wed, Feb 2, 2011 at 11:11 AM, Andrea Aime andrea.a...@geo-solutions.it wrote: The above is actually the reason why I did not try to pursue this design in the past, getting it right is relatively hard and it only helps on light loads, while it makes everything way easier to break under high load. Given GS is a server side application, one that is meant to serve multiple requests in parallel, I left the fully parallelized approach to desktop apps (where it makes a lot more sense, but still should be guarded to avoid chewing up all the machine resources on non toy maps). Meh, as usual I end up sounding a lot more negative than I intend to. If we can get a speed improvements on the lighter loads I'm all for it, we just need to address it very carefully so that all the work that has been done in the past to ensure proper resource usage (and thus, stability) is not undermined by the newest changes And following up with a more practical point of view, what would it take to make such renderer without the risk of getting GS down? That renderer would need: - a way to estimate the max number of threads allowed to render in parallel without breaking the memory limits (that sets the overall thread pool size for the rendering operation) - a way to tell where each data source is coming from, so that we can make a file system zone, a database x zone, a database y zone and so on, and ensure no more than x threads from the same rendering request hit it at the same time (this can be done, for example, by giving each zone a bounded queue and have the threads put or get a token in the queue before starting). This might be somewhat more difficult as the map context only contains feature collections, so I guess we'd have to use custom map layer subclasses that are marked with the respective zone - also set a max number of threads that can work globally (so a global thread pool) I guess that for starters the zone limits and the global thread pool size could be set by environment variable, this would make for a self contained rendering class that could be coded and enabled with yet another system wide variable that allows the brave to try it out. If it proves not to undermine the stability and througput of GS under load we can adopt it and turn all the system variables into actual tunables exposed to the administrator Performance wise there is also the tradeoff of merging the rendering surfaces: it takes time to merge togheter two rgba images and if you just render a few vectors on them in parallel you might actually end up slowing down things Cheers Andrea -- Ing. Andrea Aime Technical Lead GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584962313 fax: +39 0584962313 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf - -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
Re: [Geoserver-devel] Basic WPS docs
Thanks for the notes, Andrea, this is super helpful. Follow-ups, below. all keys are case insenstive, all values are case sensitive. Okay, but I do see that service=WPS works as well as service=wps. Just GeoServer being nice, though, I guess. - the buffer in the example returns a square... correct answer given the params, but a little outside what one would expect from a buffer operation I was looking for an example that would be simple to understand from just looking at the coordinates. If I had created a circle (or polygon equivalent), it might be more real world, but the numbers might not be so understandable. But I could change the example, though, if you thought it valuable. It was just the first process I came up with. Also, found it interesting that as is, the values were like -10.067 instead of -10.0. :) - in the geoserver processes paragraph you say These functions have the added bonus of being able to operate on existing layers in GeoServer, and can even write the output to a new GeoServer layer. Actually any process can work against existing GS layers, it just ... Okay. How should I categorize the differences between the gs: and the JTS: processes? (Or is there no important distinction?) I saw that the request builder had an extra entry for VECTOR_LAYER on the gs: processes, which is why I made the note. - the trick GS uses to get data off the internal WFS/WCS is to use a special URL for the wfs/wcs server, http://geoserver/wfs and http://geoserver/wcs (if memory serves me right) and that part is just a GS convention, it's not anything that is part of the standard Okay, I'll make a note of that. - that said GS can feed off any remote WFS/WCS just fine (provided the chosen output format can be parsed by GS), and in general, but any remote call whatsoever that returns something parseable (it might be a php script returning GML for example) I'm pretty sure I follow this, but if an example lived somewhere it would be great to see it. Thanks, Mike Pumphrey OpenGeo - http://opengeo.org On 2/2/2011 4:43 AM, Andrea Aime wrote: On Wed, Feb 2, 2011 at 2:15 AM, Mike Pumphreym...@opengeo.org wrote: Hi there. I just submitted a patch with some basic WPS docs. http://jira.codehaus.org/browse/GEOS-4350 To make it easier for people to read (and to see the graphics), I committed this first draft on 2.1.x. It should show up here after the next nightly build: http://docs.geoserver.org/stable/en/user/extensions/wps/index.html Feedback appreciated. A few notes: - the names of processes are case sensitive. Actually in OGC style request that is normal, all keys are case insenstive, all values are case sensitive. Process names are no exception, just like feature type names, coverage names, and wms layer names - the buffer in the example returns a square... correct answer given the params, but a little outside what one would expect from a buffer operation - in the geoserver processes paragraph you say These functions have the added bonus of being able to operate on existing layers in GeoServer, and can even write the output to a new GeoServer layer. Actually any process can work against existing GS layers, it just needs to be able to consume a feature collection or a grid coverage. And not even that in some cases, the JTS processes can feed off the GS layers via the internal WFS request if that one is chained in gs:CollectGeometries which turns the feature collection into a single geometry (it collects everything into a big multi-geometry) - the trick GS uses to get data off the internal WFS/WCS is to use a special URL for the wfs/wcs server, http://geoserver/wfs and http://geoserver/wcs (if memory serves me right) and that part is just a GS convention, it's not anything that is part of the standard - that said GS can feed off any remote WFS/WCS just fine (provided the chosen output format can be parsed by GS), and in general, but any remote call whatsoever that returns something parseable (it might be a php script returning GML for example) Cheers Andrea -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
Re: [Geoserver-devel] Basic WPS docs
On Wed, Feb 2, 2011 at 8:02 PM, Mike Pumphrey m...@opengeo.org wrote: Thanks for the notes, Andrea, this is super helpful. Follow-ups, below. all keys are case insenstive, all values are case sensitive. Okay, but I do see that service=WPS works as well as service=wps. Just GeoServer being nice, though, I guess. Yep, that's my understanding as well. - the buffer in the example returns a square... correct answer given the params, but a little outside what one would expect from a buffer operation I was looking for an example that would be simple to understand from just looking at the coordinates. If I had created a circle (or polygon equivalent), it might be more real world, but the numbers might not be so understandable. But I could change the example, though, if you thought it valuable. It was just the first process I came up with. Yeah, a circle would be made of a lot of coordinates. No biggie. Also, found it interesting that as is, the values were like -10.067 instead of -10.0. :) - in the geoserver processes paragraph you say These functions have the added bonus of being able to operate on existing layers in GeoServer, and can even write the output to a new GeoServer layer. Actually any process can work against existing GS layers, it just ... Okay. How should I categorize the differences between the gs: and the JTS: processes? (Or is there no important distinction?) I saw that the request builder had an extra entry for VECTOR_LAYER on the gs: processes, which is why I made the note. JTS processes are made to expose jts capabilities and work on single geomtries. GS processes... are all over the place, they do pretty much everything now. There is a number of them that is specific to GS though, such as gs:Import VECTOR_LAYER is something every process consuming feature collection will have. - the trick GS uses to get data off the internal WFS/WCS is to use a special URL for the wfs/wcs server, http://geoserver/wfs and http://geoserver/wcs (if memory serves me right) and that part is just a GS convention, it's not anything that is part of the standard Okay, I'll make a note of that. - that said GS can feed off any remote WFS/WCS just fine (provided the chosen output format can be parsed by GS), and in general, but any remote call whatsoever that returns something parseable (it might be a php script returning GML for example) I'm pretty sure I follow this, but if an example lived somewhere it would be great to see it. Don't have stuff handy now (I'm stuck in bed with fever and the notebook does not have everything I need in working order) I'll try to look up more examples when I get back on my feet Cheers Andrea -- Ing. Andrea Aime Technical Lead GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584962313 fax: +39 0584962313 http://www.geo-solutions.it http://geo-solutions.blogspot.com/ http://www.linkedin.com/in/andreaaime http://twitter.com/geowolf - -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
Re: [Geoserver-devel] Basic WPS docs
Thanks, Andrea, and don't worry about the example. I updated the docs, and ported to trunk. Thanks, Mike Pumphrey OpenGeo - http://opengeo.org On 2/2/2011 11:21 AM, Andrea Aime wrote: On Wed, Feb 2, 2011 at 8:02 PM, Mike Pumphreym...@opengeo.org wrote: Thanks for the notes, Andrea, this is super helpful. Follow-ups, below. all keys are case insenstive, all values are case sensitive. Okay, but I do see that service=WPS works as well as service=wps. Just GeoServer being nice, though, I guess. Yep, that's my understanding as well. - the buffer in the example returns a square... correct answer given the params, but a little outside what one would expect from a buffer operation I was looking for an example that would be simple to understand from just looking at the coordinates. If I had created a circle (or polygon equivalent), it might be more real world, but the numbers might not be so understandable. But I could change the example, though, if you thought it valuable. It was just the first process I came up with. Yeah, a circle would be made of a lot of coordinates. No biggie. Also, found it interesting that as is, the values were like -10.067 instead of -10.0. :) - in the geoserver processes paragraph you say These functions have the added bonus of being able to operate on existing layers in GeoServer, and can even write the output to a new GeoServer layer. Actually any process can work against existing GS layers, it just ... Okay. How should I categorize the differences between the gs: and the JTS: processes? (Or is there no important distinction?) I saw that the request builder had an extra entry for VECTOR_LAYER on the gs: processes, which is why I made the note. JTS processes are made to expose jts capabilities and work on single geomtries. GS processes... are all over the place, they do pretty much everything now. There is a number of them that is specific to GS though, such as gs:Import VECTOR_LAYER is something every process consuming feature collection will have. - the trick GS uses to get data off the internal WFS/WCS is to use a special URL for the wfs/wcs server, http://geoserver/wfs and http://geoserver/wcs (if memory serves me right) and that part is just a GS convention, it's not anything that is part of the standard Okay, I'll make a note of that. - that said GS can feed off any remote WFS/WCS just fine (provided the chosen output format can be parsed by GS), and in general, but any remote call whatsoever that returns something parseable (it might be a php script returning GML for example) I'm pretty sure I follow this, but if an example lived somewhere it would be great to see it. Don't have stuff handy now (I'm stuck in bed with fever and the notebook does not have everything I need in working order) I'll try to look up more examples when I get back on my feet Cheers Andrea -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel
[Geoserver-devel] [jira] Created: (GEOS-4355) Support wms:GetMap with complex features
Support wms:GetMap with complex features Key: GEOS-4355 URL: http://jira.codehaus.org/browse/GEOS-4355 Project: GeoServer Issue Type: Improvement Reporter: Niels Charlier Assignee: Niels Charlier wms:GetMap doesn't work with complex features. Most of the changes to support complex features are on geotools. These mainly consist of - removing all simple feature assumptions - supporting X-Path property expressions In rendering, parsing styles, applying filters and property selection. Most of this work has been done in different issues. This issue is just the cherry on top of the cake, getting the Geoserver WMS module ready for complex features and providing an integration test in app-schema-test that shows that it works. The only thing in the WMS package that needs to be reworked is the property validation, i.e. validate X-path property expressions instead of only accepting direct properties on simple feature types. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira -- Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d ___ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel