Hello all,
during last couple weeks I've been working on embedded GWC
configuration through the UI allowing to configure global caching
defaults, create and edit gridsets, add/remove caching layers
associated to layers and layer groups, and edit the caching properties
on a per layer basis, as well as to bulk configure selected
layers/groups using the global defaults.
Please check the following screen shots to get a better sense of what I mean.
<http://skitch.com/groldan/g1san/01-geowebcache-settings>
<http://skitch.com/groldan/g1saj/02-administer-grid-sets>
<http://skitch.com/groldan/g1s2y/03-viewembdeddedgridset>
<http://skitch.com/groldan/g1s2d/04-create-new-grid-set>
<http://skitch.com/groldan/g1s2q/05-delete-grid-sets>
<http://skitch.com/groldan/g1s2w/06-cachedlayerspage>
<http://skitch.com/groldan/g1s2a/07-truncatewholelayer>
<http://skitch.com/groldan/g1s24/08-stopcachingselectedlayers>
<http://skitch.com/groldan/g1s29/09-bulkconfigcachedlayers>
<http://skitch.com/groldan/g1s3r/10-tilelayer-config-for-layerinfo>
<http://skitch.com/groldan/g1s3j/11-tilelayer-config-for-layergroup>
Now, I'd need to commit that work to svn trunk. Plan is to commit to
trunk only and when/if we get enough community testing and the work
feels solid enough, backport to 2.1.x. API wise there would be no need
to change anything, and I actually have a build against the 2.1.x
branch that I mean to maintain in sync until we're good to port to
2.1.x.
But before committing to trunk I want to ask for approval on a couple things.
First one is an easy one, and is just about a three small changes to
the some core UI classes:
- Allow EnvelopePanel to be extended:
<https://github.com/groldan/geoserver/commit/d298b5d03028711829370cfcf013747185fe2921>
- Allow CRSPanel to be extended:
<https://github.com/groldan/geoserver/commit/ed118eca24debaa0ea760f49a1c7cf26b41be485>
- Allow to set the response page to the resource and layergoup edit
pages: <https://github.com/groldan/geoserver/commit/abfc8a7e3f14f1b4aec82f0a7429404a308075d5>
Second one is about adding a new external dependency. Single 1M library.:
- Add guava (google common libraries) dependency:
<https://github.com/groldan/geoserver/commit/c5197982ea20c741f2dd6afe9ddb0371e6550be4>
I've been working with this library for the most part of the year now
in other projects and it's an excellent, active and well supported
compendium of utilities for the day to day work, similar in spirit to
Apache commons, but more up to date with modern Java concepts and
missing functionalities from Apache commons-*.
Besides, I really expect it to stick with us and encourage you to take
a look at it and consider using it. Of special interest might be its
collection utilities together with functors, a fully configurable
memory cache, and a large number of io, net, and concurrency
utilities.
For instance, I'm using it for scalability reasons, in order to
provide tile layers out of the catalog layers and layer groups
dynamically, by means of a list wrapper and functor object that
creates tile layers out of internal layers on demand.
So, if you have any compelling reason not to include this dependency
on trunk right now please speak soon. I'm also expecting to use it for
other catalog scalability work that's coming down the pipe and for
which I'll start some discussion topics on the list. But if it still
feels like we don't really want another 1M dependency right now I
think I could get rid of it, it would be just weird to have to create
that kind of utility classes myself instead of using a good existing
library.
Thanks in advance for any and all comments,
Gabriel
--
Gabriel Roldan
OpenGeo - http://opengeo.org
Expert service straight from the developers.