Released
Source |
Planned and Released: (General Bugfix & Code Quality Improvements)
- New: Bulma theme
- New: Enterprise addons: OpenAI, Stripe, SAP OCI Punchout catalog, DHL Shipping, Mailchimp, Facebook Conversions API, Matomo, Amazon Selling Partners Integration, Algolia Search Integration, A new POS (Point of Sale) Component, WordPress Integration, Maileon Integration
- Java/JDK support: Java 11 (LTS) as default, JDK 8 removal, JDK 17 (LTS) adoption
- Update Scipio ERP Intellij IDEA integration plugin for 2023.3 – Released 5.2.0
- Support for 2023.3
- Improve Reload Resources performance
- Improve Reload Resources jarDirectory/root duplicate detection
- Improve and expand service location, controller event, response and view-map reference resolution
- Service Engine
- New: @Service/@Seca/@Eeca annotations alternative to services*.xml
- New: LocalService/ServiceHandler class-based service implementations
- Dispatcher API
- from()/fromName()/getDefault() factory methods on interface
- runAsync improvements: AsyncOptions, JobInfo (return job ID instead of void)
- Job Manager
- Statistics
- Job queueing and crashed job better handling
- Entity Engine
- Delegator API
- from()/fromName()/getDefault() factory methods on interface (DelegatorFactory unneeded)
- .query()/.querySafe()/.from()/.select() EntityQuery helper standardization
- New: Standardized JSON storage
- Automatic JSON field parsing, conversion, storage and caching on GenericEntity via getJson()/setJson()
- New entity field types, instead of very-long: json-object, json-array, json
- Standardize generic entityJson json-object field, for use on any object, via getEntityJson()/setEntityJson()
- Entity and Solr Indexing
- New/Improved: Global queue-based Entity/Product indexing
- Efficient global queue system using EntityIndexer
- Automatic global-transaction handling product indexing scheduling using scheduleProductIndexing
- Custom client Solr document processing by extending SolrDocBuilder.ProductDocBuilder
- Multi-platform document conversion support and dispatching using productIndexingConsumer service implementations that can dispatch to Solr, Algolia, Google, Solr, etc., configurable via entityindexing.properties
- Schema: Migrate more toward dynamic field usage and better currency formats
- New/Improved: Excel import/export support, configurable using properties (under Admin)
- Webserver
- Improved: WebSocket Support
- Improve SocketSessionManager, simpler-to-use base classes GenericWebSocket/CommonWebSocket, per-app implementations OrderWebSocket, AdminWebSocket, etc.
- ContextFilter automatic whitelisting (allowedPaths) of @ServerEndpoint-defined request URIs so that web.xml configuration is unnecessary
- New: Turbo JS/HotWire
- Define common websocket classes (TurboWebSocket), usage patterns
- Implement examples (AdminTurboWebSocket, LayoutDemo Hotwire section)
- Controller and Event
- New: Implement @Controller/@Request/@View annotations for Java events to define controller.xml-compatible request-map URIs and views, with full response control by returning ControlResponse.View* instances instead of legacy rigid response names, giving events more control; examples in AdminController
- Support inline groovy scripts with CDATA directly in controller.xml files
- Security
- No more dumping of last-view request parameters directly into request attributes – merge via UtilHttp.getParameterMap() instead
- Allow client code to define request attribute handling policies (RequestAttrPolicy)
- Filter JSON responses better
- CMS
- Robots.txt configuration support
- Better WISIWYG editor integration
- Redirect Management
- Cache Prewarming
- Rendering
- New/Improved: Image variants/resizing
- Better configuration via mediaprofiles.properties/ImageProperties.xml/ImageSizePreset/Content/DataResource
- Parameter-free, event-safe configuration-based auto-resizing as-needed using contentImageAutoRescale/productImageAutoRescale
- Batch resizing using productImageAutoRescaleProducts/productImageAutoRescaleAll
- Auto-triggering of image variant scaling and generation when URLs are printed, through ProductImageVariants/CategoryImageVariants classes
- New higher-level image variants classes ProductImageVariants/CategoryImageVariants to avoid relying on low-level ProductContentWrapper
- New: Tinify support, configured in imageops.properties
- Caching: @utilCache intra-template part caching; better *.ftl file caching using better Configuration and handling in FreeMarkerWorker
- Remove obsolete javaScriptEnabled flag usage in templates (or ignore)
- Localized Resource Properties
- New: Global resource bundle
- Use a single global resource bundle for all config/*Labels.xml, and always return it even when a resource file specified as long as the label is found; assume label property names are globally unique (mostly true, like global service namespace) and deprecate need for specifying resource file in UtilProperties.getMessage() and almost all property-specifying API
- Merge all config/*Labels.xml labels into global property map at first access (by file pattern)
- Allow hot-deploy components to override framework and application labels – now implicit via global map – large improvement for client code
- Core and Utility API
- Improve ScipioHttpClient with synchronous/asynchronous and reusable pooling configuration
- Exceptions
- Standardize platform-wide exceptions and constructors to extend GeneralException/GeneralRuntimeException
- Emphasize use of propertyMessageList (setPropertyMessageList) as meant for user-centric error messages, separate from main detail message and propertyMessage used for internal/logging
- UtilCache optimizations: Remove contention from execution pulses and unneeded synchronization; keep simpler for maximum speed and reliability
- Distributed cache clearing: Make more data types clearable via ActiveMQ
- Add ReflectQuery API for Java annotations, with component- and webapp-centric loading, cache and focus
- Build
- New build targets: load-extseedonly, rebuild, rebuild-debug, restart, restart-debug, etc.
- Auto-download Nashorn JS engine when using JDK 15+
- Build properties: Standardize for JDK 11, make build.properties precede macros.xml and support setting per-developer/per-machine using git-ignored build.scp.local.properties
- Shop, Order, Products
- Revamp and standardize locale, timeZone and currencyUom initialization in session everywhere (AttrHandler) so they are finally consistent
- Improve anonymous ShoppingLists with authToken and other features
- Improve ShoppingCart features and code quality
- Localize sitemap generation and improve
- Improve product promotions handling
- calculateProductPrice: handle more complex variant cases, VAT/tax and better and more consistent Solr integration
- Cookies: standardize and guard against RFC-busting characters consistently
- Improve URL building, ALTERNATIVE_URL generation
- Solr/Product search: Improve searching and result caching code and configuration for Solr-based queries in frontend
- Library updates: Update all, especially apache fileupload bug (1.3.3 -> 1.3.5, skipped 1.3.4)
- Fixes: Many through framework and application logic
|