- Unset caching of children in the TreeFolder model. See here
- Fix wrong iterator. See here
- Speedup interceptor by using cached rules. See here
- Enhancing WMTS support. See here
Necessary migrations:
alter table wmtslayerdatasources add column capabilitiesurl text;
- Interceptor security. See here
Necessary migrations:
create table wfslayerdatasources (
id integer not null primary key,
version text,
typename text,
typenames text
);
- Enable usage of endpoints. See here
- Introduces CreatedHelper. See here
- Introduces layerappearance clickable property. See here
Necessary migrations:
alter table layerappearances add column clickable boolean default true;
- Change: Due to the introduction of Spotbugs and Checkstyle all static loggers were renamed from
LOG
tologger
. See here - Feature: Added possibility to ignore namespace bound GeoServer endpoints in the GeoServer Interceptor and to set a default base URL. See here
- Change:
format
field has been moved to parent class, which implies changes in the underlying database tables. See here
- Bugfix: Encode as UTF-8 when posting. See here
- New features:
- Add a WFS response interceptor to rewrite URLs. See here
- Changes:
- Use x-geoserver-credentials header for authorization. See here
- New features:
- Bugfix: Add a wmts.action to proxy REST like WMTS sources. See here
- Bugfix: Add missing dependencies. See here
- New features:
- GeoServer Importer: Added method for updating a layer of a given import task and import job See here
- New features:
- Changes:
- Changes:
- Support for PostgreSQL JSONB fields. See here
- Changes:
- We are now compatible to Java 11. See here
- Changes:
- https://nexus.terrestris.de/repository/public/ is now being used as maven repo. See here.
- SHOGun2 now provides default interceptors that use basic auth. See here.
- The project has been migrated to be compatible to the latest JTS versions, which is necessary, if we want to make use of the latest GeoTools/GeoServer releases. See here.
- Changes:
- Changes:
- Changes:
- TileGrid: Set inheritance to JOINED. See here.
- Changes:
- Fix determination of most specific rule. See here.
- Changes:
- Changes:
- New features:
- Changes:
-
New features:
- Basic auth has been enabled for the REST API. See here.
- Support of Oracle 12c databases. See here.
- A simple JPA JSONB converter has been introduced. See here.
- Determination of matching interceptor rules has been enhanced. See here.
- Support for the GeoServer WMS Reflector interface has been added to the interceptor. See here.
- Allow (outdated) W3DS requests to be intercepted. See here.
- Additional information can be returned in case of errors. See here.
- A model description service has been introduced. See here.
- A
GeoServerRESTImporter
has been introduced to make use of the GeoServer importer extensions REST API. See here.
-
Changes:
oraclejdk7
is not used anymore on travis CI due to missing support. See here, here, here and here. (Butopenjdk7
is still in use!)toString()
implementations have been simplified to avoid unwanted performance impacts due to lazy loading. See here.- Interceptor logging has been reduced. See here.
- The HTTP Util has been extended regarding forwarding of GET and POST requests. See here.
- New features:
- A new model hierarchy for WPS-/Plugins has been introduced: #230
- Nice DAO methods have been introduced:
- We're supporting the latest spring versions now: #247
- An interface with endpoint documentation has been introduced: #265
- You may now use a property file to get easy access to infos coming from the pom.xml: #266
- Read-only methods will NEVER persist: #269
- Changes:
- A lot of bugfixing
- If you make use of the upload functionality and errors occur, you should have a look at this change: https://github.com/terrestris/shogun2/pull/257/files
- A new field on the
TileWmsLayerDataSource
model has been introduced: #268
- New features:
- A REST filter feature has been introduced in #216 which allows basic/simple filtering based on primitve fields of (arbitrary) entities.
- Changes:
- Connection pooling has been replaced by HikariCP. Beside that HikariCP outperforms c3p0 insofar as performance is concerned, the major advantage is that there are less (required) parameters to tweak which makes the configuration of the connection pooling much simpler. Please take care of differing
artifactId
depending on your Java version - The
HttpUtil
now offers the possibility to add custom HTTP headers to requests: #218 - The
Shogun2PermissionEvaluator
can now be configured to use the plainPrincipal
object from the spring security context (instead of always fetching a full SHOGun2-database user object): #229
- Connection pooling has been replaced by HikariCP. Beside that HikariCP outperforms c3p0 insofar as performance is concerned, the major advantage is that there are less (required) parameters to tweak which makes the configuration of the connection pooling much simpler. Please take care of differing
- Upgrade notes to get projects based on v0.1.1 running with v0.1.2:
- Copy file hikari.properties from here to
src/main/resources/META-INF/
in your existing project. - Replace the c3p0-based
shogun2DataSource
in the{{your-project}}-context-db.xml
file (undersrc/main/resources/META-INF/spring/
) by the one based on hikari as it is defined in the archetype. Make sure also to add the beanhikariConfig
from the archetype.
- Copy file hikari.properties from here to
- New features:
- Some tree models have been introduced. See #208 for details.
HttpUtil
methods can now also be called with intances ofCredentials
interface- A new web interface for the easy creation of ExtJS locale JSON files (based on CSV files) has been added. See this PR for details: #213
- Changes:
Permission.WRITE
has been renamed toPermission.UPDATE
- A new permission
Permission.CREATE
has been introduced - The
saveOrUpdate
method of theAbstractCrudService
now has a more secure permission/authorization annotation. TheCREATE
case is currently not respected in the permission evaluators of SHOGun2 and should be handled in project specific implementations. - The
saveOrUpdate
method of the services are now void. Existing projects that are using this method may need some simple adaptions like changes fromPersistentObject newObject = object.saveOrUpdate()
toobject.saveOrUpdate()
- The webapp-archetype has been extended to demonstrate how custom permission evaluators for project specific solutions can be used.
- All Response-interceptors from the package
de.terrestris.shogun2.util.interceptor
now have a new parameterMutableHttpServletRequest request
. This makes sense as the request object contains basic information that may be necessary in custom implementations of a response interceptor.
- New features:
- All
PersistentObject
s now have a set of user and group permissions, i.e. all entities can be protected if needed. In this context, the permission evaluators have been overhauled. The database structure has changed here, which means that existing projects are affected by this change and would need a data migration if they can not boot in a vanilla state (withhibernate.hbm2ddl.auto=create
). - An
AbstractPermissionAwareCrudService
has been introduced. This service provides useful methods to add and remove permissions for certain objects.PermissionCollection
s will be persisted in the database when using these methods. All services should extend the abstract service mentioned above. There is only one exception: ThePermissionCollectionService
does NOT extend this service as theAbstractPermissionAwareCrudService
gets thePermissionCollectionService
injected, which would not work when thePermissionCollectionService
would try to inject itself. On top of that it does not make sense to securePermissionCollection
s withPermissionCollection
s and so on...
- All
Existing projects (that were possibly created with an old version of the webapp archetype) need adaptions regarding the following points:
- Adapt the
pom.xml
of your existing SHOGun2 project- Remove the dependency with the artifactID
shogun2-web
- Remove the dependency with the artifactID
- Adapt the existing
{{your-project}}-context-initialize-beans.xml
file (undersrc/main/resources/META-INF/spring/
) according to the new structure as it is defined in the archetype - Adapt the existing
{{your-project}}-context.xml
file (undersrc/main/resources/META-INF/spring/
) according to the new structure as it is defined in the archetype - Add the missing
geoServerNameSpaces.properties
file tosrc/main/resources/META-INF/
, like the one in the archetype - Remove all occurences of
<property name="type" value="Tile" />
in the{{your-project}}-context-initialize-beans.xml
file (undersrc/main/resources/META-INF/spring/
) - Add
http.timeout=30000
to the{{your-project}}.properties
file (undersrc/main/resources/META-INF/
) - If there are already custom implementations of one of the response interceptors from the package
de.terrestris.shogun2.util.interceptor
in your project, these methods need the new parameterMutableHttpServletRequest request
in their signature.
- All EXT-Direct related stuff has been removed. Existing projects (that were possibly created with an old version of the webapp archetype) need adaptions regarding the following points:
- Remove all annotations of type
ch.rasc.extclassgenerator.Model
- In the file
src/main/resources/META-INF/spring/{{your-project}}-context.xml
:- The package
ch.ralscha.extdirectspring
can be removed from the<context:component-scan>
element. <bean id="modelPackageCandidates" class="java.util.ArrayList">
can be removed
- The package
- In the file
src/main/webapp/WEB-INF/{{your-project}}-servlet.xml
, the packagech.ralscha.extdirectspring
can be removed from the<component-scan>
element. - In the file
src/main/webapp/WEB-INF/log4j.properties
, the config forlog4j.logger.ch.ralscha.extdirectspring
can be removed - In the file
src/main/webapp/WEB-INF/web.xml
, the<servlet-mapping>
with<url-pattern>/action/*</url-pattern>
can be removed
- Remove all annotations of type
- Existing projects should (once) boot with the
hibernate.hbm2ddl.auto
property set toUPDATE
orCREATE
to make use of the new tablesABSTR_LAYERS_USERPERMISSIONS
andABSTR_LAYERS_GROUPPERMISSIONS
(#155).