Our First ADF Experience
Hans De Bal
@hdebal
Learn. Connect. Collaborate.
Warning
Mismatch between use-case and
product!
 Limited use of ADF components
ADF
Learn. Connect. Collaborate.
Our ADF
story
• First ADF project
• ADF 2.3  2.4  2.5
• Started from scratch, not from ACA
• Compatible with IE, FF and Chrome
• Mobile-friendly
• Components integrated in non-document
centric application
Learn. Connect. Collaborate.
Experience
Technical
• Nice
components
but…
• Custom
implementation
of injectables
Technical Ctd.
• Loading time
(PROD)
• Keeping up
with latest
versions of
dependencies
Varia
• Demo-shell,
ACA, APW
• Gitter/Bi-
weekly calls
Learn. Connect. Collaborate.
Bugs/remarks
5 bugs
6 feature
requests
• 6 fixed after
upgrade
• 2 fixed in
ADF 3.0
• 2 still in
backlog
Upgrades
• Response
times
• Next ADF-
version
• Hotfixes?
PRs
• Contributions
from
community
User friendly?
• Taskcompon
ent
• Peopleselect
or
• Tasklist
• … ?
Learn. Connect. Collaborate.
Documentation
Functional
• Lack of
functional
description
• Lack of visuals
Technical
• Good
entrypoint
• Actual use,
dive into the
code
ACS or APS?
• Is it a ACS or
APS
component?
E.g.
peopleselector
https://alfresco.github.io/adf-component-catalog/index.html
Demo
APS (1.9)
Learn. Connect. Collaborate.
Why APS?
• Customer had the license
• Speed up development
• Strategy of Alfresco (more future proof)
• Integrated components in ADF (task forms,
tasklist…)
Learn. Connect. Collaborate.
Quality?
Disappointing!
• No SDK/RAD
• Lack of decent developer documentation
• Form designer very limited (multi-person
picker)
• Public API
– Always returns null for certain property
– Parameters that don’t work
– Response object in api-explorer not matching
actual response
– When querying tasks, no permissions returned
– …
• Process variables substitution in link doesn't
work for completed processes
Learn. Connect. Collaborate.
Quality?
• Manual installation custom processes
• Process app not available automatically for all
users.
• No jobLockService
 Lots of bugs and shortcomings!
Learn. Connect. Collaborate.
Conclusion
APS 2.0? Or embedded activiti engine
Support
Learn. Connect. Collaborate.
Help wanted!
• Where to log ADF issue?
• Support for ACS was good
• Support for APS was mixed
Learn. Connect. Collaborate.
Some figures
• ADF
– 2 fixed in 3.0
– 2 in backlog
• ACS
– 2 pending engineering
• 1 PR merged
• APS
– 6 pending engineering
11
5
8
7
3
2
ADF ACS APS
Opened Fixed
Custom synchronization and
authentication system
Learn. Connect. Collaborate.
Custom subsystem
• Create properties and context.xml file under
src/main/resources/alfresco/subsystems
• Create “userRegistry”-and “authenticationComponent”-bean
Learn. Connect. Collaborate.
Synchronization
• Implements UserRegistry
• Override some methods
– getPeopleSince
– getPersonNames
• REST-call to get all users
Learn. Connect. Collaborate.
Authentication
• Extend
AbstractAuthenticationComponent
• Override authenticateImpl
• REST-call to authenticate user
Our First ADF Experience

Our First ADF Experience