Info |
---|
The Maven dependencies for Across have changed, group across contains across-core, across-test and across-web. Group across-standard-modules now contains modules across-hibernate, ehcache-module and debug-web. |
New library: Across test
/wiki/spaces/AX/pages/12648455 contains some helper classes and configurations to quickly setup an AcrossContext with or without AcrossWebModule. Also has a setup to facilitate multi-database testing, see Integration tests.
New modules
- OAuth2Module providing OAuth2 security services and a domain model for managing clients and permissions (built on top of SpringSecurityModule and UserModule)
- PropertiesModule providing a generic infrastructure to create database backed property maps for business entities
Across core
- enhancement: Controllers are no longer exposed by default - only Service beans and beans with Exposed annotation
Status |
---|
| |
---|
colour | Red |
---|
title | Breaking change |
---|
|
enhancement: upgraded MBassador to version 1.1.10 (#15)- classes have been moved from package, MessageHandlerMetadata appears to have been dropped - custom filters might need fixing
Status |
---|
| |
---|
colour | Red |
---|
title | Breaking change |
---|
|
enhancement: bootstrap hooks have been extended (#19)- introduced AcrossBootstrapConfig class
- changed method signature: AcrossModule.prepareForBootstrap( ModuleBootstrapConfig currentModule, AcrossBootstrapConfig contextConfig)
Status |
---|
| |
---|
colour | Red |
---|
title | Breaking change |
---|
|
enhancement: installer configuration on context and modules has been refactored- added InstallerSettings property on both AcrossContext and AcrossModule (setAllowInstallers() has been replaced by setInstallerAction())
- added InstallerAction enumeration with an option to force run installers even if installed version is equal or higher (#14)
- installers can be defined either as instance or Class
- @AcrossDepends can now be used on installers as well (#13)
- @AcrossDepends no longer supports expression attribute, a new @AcrossCondition annotation has been introduced for this
- enhancement: provided AcrossContextBeanRegistry for retrieving beans from context and modules (#39)
- the registry can be used to fetch both exposed beans and module internal beans
- the bean registry is also available in the parent application context if exposing to parent is enabled
- enhancement: extended availability of AcrossContextInfo and AcrossModuleInfo
- AcrossContextInfo is exposed to parent application context
- Introduced @Module annotation
- wire either AcrossModule or AcrossModuleInfo for a module with the specified name
- wire the current AcrossModule or AcrossModuleInfo using AcrossModule.CURRENT_MODULE
- wire an exposed bean from a specific module
- AcrossModuleInfo exposes the bootstrap index of the module, AcrossContextInfo has helper methods to find the index of a module
- enhancement: scanning for beans in all modules (AcrossContextUtils.getBeansOfType) and the RefreshableRegistry now return instances sorted according to order hierarchy (#20)
- Order annotation and Ordered interface
- bootstrap index of the module
- OrderInModule annotation and OrderedInModule interface
- ehancement: exposing beans now support lazy and scoped beans, and bean management will always and only happen within the module defining the original bean (#28)
Status |
---|
| |
---|
colour | Red |
---|
title | Breaking change |
---|
|
a parent ApplicationContext should either be an instance of AcrossApplicationContext or AcrossWebApplicationContext to fully support exposed beans- in a web context this usually means configuring the created contextClass to be AcrossWebApplicationContext instead of AnnotationConfigWebApplicationContext
- in case this isn't so, an additional context will be introduced in the hierarchy, allowing for autowiring of exposed beans but limited integration with third party libraries (especially in web context)
Status |
---|
| |
---|
colour | Red |
---|
title | Breaking change |
---|
|
exposed beans now use a specific ExposedBeanDefinition and the optional transformer has been modified into ExposedBeanDefinitionTransformer with a different signature
- enhancement: Across bootstrap now locks on the database if installers need executing (#23)
- this should avoid race conditions when bootstrapping multiple applications simultaneously on the same database, downside is the possible slower startup time in simultaneous deploys
- core also provides a DistributedLockRepository that modules can use to lock entities on a database level and across application instances
- enhancement: new DatabaseInfo class allowing easy detection of the database product type based on a DataSource
Status |
---|
| |
---|
colour | Red |
---|
title | Breaking change |
---|
|
Foreach commons upgraded to 0.9- Packages have been restructured, common-concurrent library has been added
AcrossWebModule
- bugfix: Scan inherited @Controller annotations, picks up @RestController instances (#16)
- bugfix: Default message converters are now registered if none specified (#17)
- bugfix: Redirects are now handled correctly if only Thymeleaf support is enabled (#22)
- enhancement: Across web module now configures a WebTemplateRegistry
- default template support can be disabled using property
- option to automatically scan modules for NamedWebTemplateProcessor instances
DebugWebModule
Status |
---|
| |
---|
colour | Red |
---|
title | Breaking change |
---|
|
enhancement: DebugWebModule and AdminWebModule now use the same templating and handler mapping approach (#3) - feature: Provided DebugWeb bean (debugWeb) in analogy with AdminWeb for redirects and paths within debug context
- feature: dropped old debug pages and added more detailed Across/Context browsing page - switched to Twitter bootstrap (#18)
SpringSecurityModule
- added SpringSecurityInfrastructureModule providing infrastructure for common SecurityPrincipal implementation
- added SpringSecurityAclModule enabling ACL security services
UserModule
- added SecurityPrincipal implementation for User, Group and MachinePrincipal
...