Skyve 4.1 released
This Skyve release adds a host of minor improvements across the framework such as query timeouts to prevent long running queries starving system resources. This release also adds several performance improvements and many bug fixes.
Admin
Session count and other configuration statuses added to System Dashboard
Review of Quick Import/Export layout and on-screen instructions
Fast import option (minimal logging) for Quick Import/Export
Review layout of Communication views
Add support for multiple email address list recipients in Communications
Update Data Maintenance edit view to reduce backup button widths so they don't overlap on lower screen resolutions
Add user agent header and device type to
UserMonthlyHits
Rename "Refresh" tab in Data Maintenance to "Data Refresh" to avoid confusion
Add default query for DocumentNumber for sorting
Null handling of
formatMessage
for Communications
Framework
Set admin.User.passwordLastChanged to current date/time when creating the bootstrap user
Handle null values in
SQLMetaDataUtil.populateUser()
Ensure password is never required on the public user
Fix arithmetic underflow calculating password expiry
Evict UserProxy bean if its been cached on admin.User save and delete
Trim unsecured URL prefixes in the
router.xml
andweb.xml
Implement query timeout
Update SpringSecurityListener SQL statements to enable best performance
Reduce chances of database page locking in the database during post login processing
Added new date helper methods to
Time
/TimeUtil
Update AbstractH2TestDispose to re-create caches before each test and AbstractH2TestTruncate to evict all caches after each test
Add
Decimal10DollarsAndCents
converterFixed potential
EmptyStackException
triggered duringpersistence.delete
if an exception was thrown before any elements were pushed onto the stackAdd extra information in query projected column number error messages
Add
greaterThanOrEqual()
andlessThanOrEqual()
comparison methods toDecimal
classesManufacture a filename for serving content from the Skyve REST Service if one does not exist
Only update ADM_SecurityUser in
SpringSecurityListener.resetLoginFailure()
if the database needs to be resetAllow programmatic jobs to run when a Skyve instance has
jobScheduler: false
in its JSONDo not add bizCustomer filter condition to meta-data and bizQL queries unless the Skyve installation is multi-tenant
PrimeFaces
Add refresh button for Backup list, fix column width on job schedules
Fix list grid filter binding when binding is an association
Add support for vertical radio buttons
Protect FacesView.selectGridRow() from NPEs
Use the Skyve context URL property instead of the current context from the web container to redirect when no security principal exists or faces view cannot be restored
SmartClient
Ensure all enum values display in the filter line for query columns in list grids with variant or dynamic domain values
Ensure the
filterEditorType
is set text for filter rows with variant or dynamic domain valuesFix list grid
canZoom
condition to take into account aggregate queriesEnsure that variant and dynamic domain values on a scalar attributes are not rendered as enums/combos in list grids
Add disabled condition name to payload for
contentLink
andcontentImage
widgets
NOTES FOR UPGRADING
To upgrade your Skyve project to this version, change the Skyve version in your pom.xml
to 4.1.0 and change your skyve-maven-plugin
version to 1.25.
Your project pom.xml
’s repositories will need to be updated to remove the Jasper repository if it is present:
<repository>
<id>Jasper</id>
<url>https://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases/</url>
</repository>
and change the boundlessgeo
url from https://repo.boundlessgeo.com/main
to https://repo.osgeo.org/repository/release/
.
The web.xml file will also need to be updated to add a new listener:
<listener>
<listener-class>org.skyve.impl.web.SkyveSessionListener</listener-class>
</listener>
And your project's json configuration file will need to be updated. Replace
// Datastore definitions
dataStores: {
// Skyve data store
"skyve": {
// JNDI name
jndi: "java:/H2Demo",
// Dialect
dialect: "org.skyve.impl.persistence.hibernate.dialect.H2SpatialDialect"
}
},
with
// Datastore definitions
dataStores: {
// Skyve data store
"skyve": {
// JNDI name
jndi: "java:/H2Demo",
// Dialect
dialect: "org.skyve.impl.persistence.hibernate.dialect.H2SpatialDialect",
// Timeout for data store connections employed in general UI/forms processing - 0 indicates no timeout
oltpConnectionTimeoutInSeconds: 30,
// Timeout for data store connections employed when running jobs and background tasks - 0 indicates no timeout
asyncConnectionTimeoutInSeconds: 300
}
},
See the complete upgrade instructions on GitHub.