The Geomajas community is very active in the development of the core framework. In the last few weeks, they have made an effort to assure that all improvements from the last months actually results in new releases. For some parts of the system this was long overdue. This results in eleven (!) new releases.
The caching plug-in allows you to configure the use of a caching provider for handling feature, tile, bounds and raster (for the rasterizing plug-in) requests. An Infinispan based caching provider is included which allows the cache itself to be clustered. The actual behaviour is highly configurable allowing both default and layer specific caching behaviour to be determined. As the cache is fully integrated with the rendering and update pipelines, the system can invalidate caches when needed. The Infinispan backed caching provider caches in-memory (optionally across a cluster) and can passivate the objects to disk. You can configure both the number of objects to keep in memory and the maximum time an object (in-memory or passivated) should stay alive.
This is the initial 1.0.0 release of the plug-in. The plug-in works well (it is being used in production), but currently invalidates objects too coarsely. The next version will include a spatial index to make cache invalidation more accurate.
The quality and amount of tests is such that this plug-in is already graduated.
The REST face allows you to access a layer which is configured in Geomajas using REST as GeoJSON data. This can for example be used to display a layer using OpenLayers (the face actually includes an example which does that).
This is the initial 1.0.0 release of the plug-in which only allows read access to layers. In future versions write access and full access to the Geomajas commands will be added.
Most of the work for this release was focused on improving quality, reducing bugs and increasing performance, enhancing the stability of Geomajas further. The test coverage has increased from 37% to 51% (considering that coverage in the api module with the interfaces and DTOs is 0, this is better than it looks) and many (sonar) code violations were fixed (uncovering some bugs along the way).
Some of the most important new features include:
- Add support for mixed geometry type (LayerType.GEOMETRY).
- Allow configuration to specify that attributes should be excluded from feature attribute forms.
- Allow configuration of custom attribute editors for the feature attribute form.
- EntityAttributeService to convert between attribute maps and layer objects (entities).
- Add more warning and debugging statements when unexpected values are found in configuration.
- Update GeoTools to 2.7.1.
- Replace CQL filter parsing by ECQL.
- Allow the specification of a minimum version for optional dependencies (on plug-ins).
- Make it possible to cache/restore the security context.
- Add constant with command name in query objects, avoiding typing errors.
- Provide extra configuration for (server-side) layers.
- Add a command to transform geometries and bounding boxes.
- Add lazy conversion of attributes to internal features.
- Add configuration option to allow pixels per tile to be configured.
- GetVectorTile should not return the features (improving speed).
Google layer 1.8.0
The 1.8.0 release eases configuration, improves code quality and contains some bug fixes (including an update of the Google tile URLs). This now also includes a GWT module which allows you to display the required copyright messages for the data on the map.
GeoTools layer 1.8.0
Major improvements in this layer include the upgrade to GeoTools 2.7.1 and improved error handling when creating GeoTools data sources, including automatic reconnection to the backing server if the connection was broken.
Hibernate layer 1.8.0
The Hibernate layer code was entirely refactored to improve the code quality and speed. It now includes full association support. Lazy feature conversion is now supported to allow lazy loading of associations to be effective (if your Hibernate entities use this).
WMS layer 1.8.0
Thanks to the quality improvements the WMS layer is now graduated. There is now better support for secured WMS servers and it is assured that the passwords are not leaked to the client.
Additionally a command is added to allow accessing the GetFeatureInfo capability in WMS servers, allowing you to request feature information for a point on the image.
bug fixes and minor updates
- Geocoder plug-in 1.1.0 : some extra hooks to customize the geocoder widget for the GWT face.
- Static security 1.8.0 : serializing fixes which are needed for caching. The next version will probably improve documentation and provide a pluggable authentication mechanism.
- OpenStreetMap layer 1.9.0 : most importantly a bug concerning CRS conversion was fixed.
- Printing plug-in 2.1.0 : bug fixes and quality improvements
A lot more good stuff is in progress at the moment. There have already been a lot of improvements in the GWT face including more configurable feature attribute forms and many bugfixes.
It is expected that some extra goodness will be released before FOSS4G (which is half September).
A new plug-in is in progress and should soon be released. It allows vector layers to be rendered on the server and cached (thanks to the caching plug-in). This significantly speeds up the rendering for complex layers.
Pure GWT face
The current GWT face heavily depends on SmartGWT to provide easier styling and layout for the application. This is very good for people who want to use SmartGWT but causes some pain if you are not used to this library. It also adds some weight to the initial download and prevents some of the advanced GWT features from being used. So work has started on a lighter, pure GWT face. This will be just the map window, no widget like toolbar or layer tree, but it will be easy to combine with your own widget, independent of layout/style library (if any etc). Because of the lighter download it will also be more suitable for use in mobile applications.
Development is ongoing for SLD support. This will greatly improve the kinds of styling which can be applied. This is already (partly?) working in the rasterizing plug-in. Not all of the styling will be support in the non-rasterized SVG/VML renderings.
There are five plug-ins in development which provide additional widgets to ease development of powerful Geomajas applications when using the GWT face. One of these handles general SmartGWT components. The other four are advanced GIS widgets.
There are plans to improve the handling of coordinate reference systems and transformation. Specifically, it should be very easy to configure the axis order which applies for a data set.