[Nuxeo Tech Report] News from the Developer Front #6
Hi everyone, and welcome to this new tech report. It's a rather short one this week -- we're mostly consolidating what you've read about in the previous report. Oh, and we released Nuxeo Drive :D
Drive 1.0.1 released
Drive 1.0.1 was release last week.
There is a known issue when several files are created on the server: because the server may be busy, there is a time shift between the audit log event date and the time where the audit entry is actually persisted. This time shift can lead the client to 'loose some events' and then not see some files.
To fix that, we should:
- Review the polling system: based on the audit sequence ID rather than the time window
- Prepare the upgrade of the client side database
- Make the client able to detect when a database update is needed.
There is a date formatting issue when doing Hibernate queries on Audit logs. => We should simply use Hibernate queryMaker to avoid that (
AuditReaderprovides a method to allow parameters merge and will handle that!).
Tomcat DS/Hibernate upgrade/Seam patch/H2 upgrade + MVCC branch
As already raised in previous tech reports, we still have several branches holding important infrastructure changes. We're starting the merge of these branches.
- NXP-10926: H2 upgrade + H2 MVCC mode + use H2 in memory so speed up tests
- Tomcat Pool and 'real' XA mode + upgrade hibernate + patch Seam
- Improvements on test framework and error management (need to create ticket)
- Tomcat upgrade.
A BIRT upgrade has been scheduled. The target is:
- upgrade to BIRT 4.2
- make an ODA connector for NXQL so that we can use NXQL from within BIRT designer.
The PreSales team has started a sandbox where they code some extensions that can be useful for building demos and POCs. See nuxeo-presales-prototyping-toolkit.
Part of this work is also to fill the potential holes we can have in the API or in the Extension Point system. That's why we did a quick review with Benjamin and a lot of the work should be directly merged inside the trunk:
- missing Operations
- Operation with missing parameters
- new Publisher extensions
As already explained in previous reports, changes in Automation API are one of the cornerstone of the next release.
- do some non-regression validation tests
- merge Olivier's changes on JSON marshaling
Angular Layout/CRUD Automation/Automation
Damien has started working on:
- adding a REST CRUD API
- improving the JS client and make integration with AngularJS
- wrapping the Layout system
We are almost ready to have a Widget that renders tabs defined by actions and allows Ajax Switching. This will be useful for DAM, but more globally, this would good for CAP too. So, the next steps include:
- finishing the implementation
- use by default in Nuxeo CAP tab system
- may be merging with changes on RESTDocumentLink for conversation management NXP-11331
- updating Selenium tests
Action types // Widget types
We are now very close to being able to use
WidgetTypesto define Action types. The idea is basically to make action types more than a simple string attribute, but associate it with a set of property that can be defined by the user. Doing so would be good:
- for Studio, action configuration would be easier since we can have a form
- for documentation and showcase
- for Ajax behavior
Ajax Rerender and duplicated IDs
Depending on layout and widgets config there may some cases where RichFaces + Facelet infrastructure fails to correctly manage Ids. For now, this is a problem that:
- can be avoided via small workarounds in most cases
- can not be fixed in Nuxeo
- can not be easily fixed in JSF/Facelets
The JSF duplicate ID issue on ajax rerender has been identified, and fixed by using the nxu:repeat tag (revisited) and making it create new sub-components when it detects that the iteration list has changed. Otherwise existing components are reused and their ID is not reset, leading to potential duplicate IDs. See https://jira.nuxeo.com/browse/NXP-11434.
Anahide will try to submit the problem to RichFaces/JSF2 community to see if we have some feedback.
The Box listing is used to manage the DAM thumbs view inside a
ContentView. This works in DAM, but there is still some work to be done:
- integration inside CAP/DM to manage the 'BigIcon view'
- standardize the DAM selection use case (clicking on the Thumb in DAM changes the
- Studio editor UI to be adapter to Box listing display
- this is not strictly needed for now, but this would be really better.
ContentViewthe current selection model is built on the use of the
DocumentListsManager. This system that is also used for
Clipboardbecomes an issue for selection:
- when DAM and DM show the same
ContentViewbut with different filters
- when there are several
ContentViewin the same page
If we allow to have several selection lists, this should impact the Copy/Past/Move actions available on
The next steps on DAM include:
- Tab Widget integration
- Html5 DnD integration for mass Import
- start from existing code
- add Canavas based preview if we have time
- add support for async processing
- 'Ajax Permlink' (already discussed but not done)
- functional testing
Part of the ongoing work is about unlocking advanced feature so that people using studio don't end up with a lot of XML Override in the XML extensions. This typically includes:
- Extended ContentView configuration
- Widgets configuration
- Selection configuration
Having all these new options:
- will unlock feature for advanced users
- may confuse basic users and lead them into problem
- problems we will have to fix via support
This may be worth adding a disclaimer saying something like 'use advanced settings only if you now what you are doing, support won't be able to easily help you if you mess up something'.
Category: Product & Development