What's new in Alfresco Enterprise 4.0?
This page describes the new and enhanced features delivered in Alfresco Enterprise 4.0.
Social Content Publishing
- Publish Content to 3rd party publishing channels
- Create publishing channels of any registered type
- YouTube, Flickr, SlideShare, Facebook, Twitter, and LinkedIn available out-of-the-box
- Control which users and groups have permission to publish to each channel
- Credentials (or access tokens) stored securely against each channel in encrypted properties
- Publish content to available publishing channels
- New 'Publish' action available on any piece of content
- Automatic filtering of appropriate publishing channel based on permissions and the type of content
- Automatically publish a status update to one or more channels when content has been published
- Optionally append a link the the published content in the status update
- View the publishing history of a given piece of content
- See which publishing channels an asset has been sent to, when, and by whom
- If the channel supports it, 'unpublish' an asset after it has been published.
- Develop new types of publishing channel
- Framework provided that makes it easy for developers to build new types of publishing channel
- Simple registration of custom publishing channel types, and they immediately become available in Share
For more detail, refer to Managing social content publishing in the Alfresco Documentation Online.
File System Transfer Receiver
- Simple-to-deploy, standalone module that allows nodes to be transferred from the repository onto a remote file system
- Uses the same mechanism as the repo-to-repo transfer
- Can be used as a target for a replication job
- Can be deployed in an external web container if required
- Delivered as a standard WAR file with an embedded Tomcat wrapper
- Simply deploy the WAR file elsewhere if required
For more detail, refer to
Configuring the File System Transfer Receiver in the Alfresco Documentation Online.
Share Enhancements
Improved User Experience
- Drag-and-drop upload from the desktop
- HTML5-based
- Parallel Uploads
- Drag-and-drop to between folders, tree, and breadcrumbs in the Document Library
- Dashlet Layout Enhancements
- Dashlets updated to ensure more consistent layout, look, and feel
- Contextual help
- Site Configuration
- Page components can be added/removed from a site via drag-and-drop
- Application specific page component names such as Document Library in a particular site could be labeled 'Contracts'
- Site-Specific Branding
- Themes can be applied on a per-site basis
- Refactored Site Calendar for improved usability including:
- Improved drag-and-drop events to change time or day
- Improved toggle working hours handling
- Improved handling of multi-day, overlapping and all day events
- Configurable working week (Monday to Friday, or Saturday to Wednesday, for example)
- Application Branding
- Easily apply custom application logo for branding
- Document Library List views redesigned for usability and readability
- Inline editing of common properties in the Document Library including Document Name, Description and Tags (including auto-suggest)
- Document Library Sorting:
- Sort on Name, Title, Description, Popularity, Site, Mimetype, and more
- Sort Ascending/Descending
- Create documents in the Document Library based on a Template
- Document Details Page Redesign
- Enlarged preview area for improved readability
- Hide/reveal panels for Actions, Properties, Versions to name a few
- Simplified commenting interaction
- Current view settings automatically stored as individual user preference
- View in Google Maps action for documents with geographic data properties (cm:geographic aspect)
- Contextual component and Pop-up Help
- TinyMCE plugin to allow easy creation of links to documents
- Category support in advanced search
- Purge/Restore Deleted Items for administrators
For more detail, refer to
Using Alfresco Share in the Alfresco Documentation Online.
Rich & Creative Media
- Video and Audio Playback (Previews) from Document Details page
- Audio - MP3
- Video - Flash Video, H.264, OGG and WebM
- Thumbnail & Preview support for addtional formats including Apple iWorks
For more detail, refer to
Viewing an item in the Alfresco Documentation Online.
Social and Collaboration
- Following Connections - Connect to other users and follow their activities via activity feeds and email notifications
- New profile sub-page displays list of people you are following and people following you
- Follow/unfollow people from person search results
- Follow a person from their profile
- Activities dashlet can be filtered to show only activities for people I'm following
- Email notification when someone follows you
- Option to make the list of people you are following private
- Activity Event and Feed enhancements including:
- Activity feed event filters for: All Items, Status Updates, Comments, Content, Memberships
- Activity feed activity filters for: My Activities, Everyone else s, Everyone's, I'm following
- Personal Activity Feed Filter preferences automatically remembered
- Multiple instances of the feed dashlet with their own filter settings
- New activity feed events: Status Updates, 'Like' ratings
- 'Like' style ratings to track the popularity of content
- Comment counts to track how may comments against a piece of content
- Notifications via email digest
- Digest style email notification for user activity feeds
- User preference to enabled/disable activity email notifications
- Workflow task assignment notification emails for user and group task assignments
- Notification when user is added to a persons following list
- System setting for digest notification frequency
- Richly formatted HTML emails
- Localized and customizable email templates
For more detail, refer to
Using Alfresco Share in the Alfresco Documentation Online.
Management Tools
- Share Category Manager
- Create, update and remove categories via the Share Admin Console
- Share Tag Manager
- Browse and search for tags in use
- Globally rename or delete
- Share Node Browser
- Navigate, search and view information on nodes stored in the repository stores (similar to the Node Browser component in Alfresco Explorer)
For more detail, refer to Using the Admin Console in the Alfresco Documentation Online.
Share Customization and Extensibility
Share Document Library Extensions
- Metadata Templates
- Configuration-based property rendering for standard or custom properties
- Evaluators can be used to control when properties are displayed/hidden; for example:
- Has Aspect, Is Mimetype, Property Not Null, Site Preset, Site/Repository Mode, Container Type, Node Type, Metadata Value, Browser Type, Portlet Mode
- Target property at simple and/or detailed view
- Can be chained
- Custom property 'decorators' to control formatting of rendered properties
- Status indicators can be used to convey additional information such as Aspect applied, property value
- Extension and configuration based - no changes to OOTB code required
- Actions
- Configuration based addition or removal of actions in Document Library list views (simple & detailed) and Document Details page
- Evaluators (see above) can be used to completely or conditionally remove or add actions
- Actions can call:
- External Links
- Other Share pages
- Any repository actions, including those requiring user input
- Extension and configuration based - no changes to OOTB code required
- Action Forms
- Forms service extended to support repository actions
- Allows forms to be defined to capture parameters supplied by the user to passed through to action to be executed
- Extension and configuration based - no changes to OOTB code required
For more detail, refer to Extending the Alfresco Share Documentation Library in the Alfresco Documentation Online.
Share Extension Modules
- Plug-in Extension Modules to extend, replace, or remove components within Share without changing the OOTB code
- Add new pages, sub-components to existing pages, remove pages or their sub-components
- Configuration defines where and when extension should appear, based on evaluators
- Maps to web script
- Evaluators include:
- Site Name, Site Prefix, Portal Mode
- Can be extended with your own evaluators
- Extend existing files including Javascript Controllers, Freemarker Templates, and I18N properties; for example:
- Override I18N properties change display labels
- Extend an OOTB Javascript controller without having to copy and paste the existing code
- Replace existing regions or inject/remove markup using a Freemarker Template
- Can be deployed as a JAR
- Modules can be dynamically deployed/removed without a server restart
- SurfBug
- New tool to identify the components on a particular
- Easily identify where to extend from
For more detail, refer to Share Extensibility in the Alfresco Documentation Online.
Repository
Solr Search Service
- Provides alternative to previous in-transaction, Lucene-based indexing and search
- Removes need for in-transaction indexing and multiple indexes in a cluster
- Can be deployed and scaled on separate tier
- Read permissions evaluated at query time (permission evaluation timeouts and max search items not required)
- Improved PATH query performance
- Localization Enhancements
- Locale specific tokenization for improved cross-language support
- Improved delimiter matching in searches e.g.
- 1-2.3.txt will also match 123.txt
- Core services now use database backed queries rather than full text search (Lucene) including:
- File Folder, Person, Copy, Authority, CheckOutCheckin
- Paged query result sets
For more detail, refer to Configuring Solr search in the Alfresco Documentation Online.
Indexing Controls
- Control over how content is index via cm:indexControl aspect e.g.
- Index properties only
- Index properties and content
- Do not index
- Ability to disable indexing repository wide, such as for bulk loading
Other Repository Enhancements
- iBatis upgraded to MyBatis
- CIFS Content DiskDriver re-implementation
- Improved reliability and maintainability
- Clusterable
- Share site data now stored with the relevant site node
- IMAP enhancements for performance and reliability
- FTPS using explicit FTP over SSL/TLS
- Encrypted properties
- Used for storage of usernames/password
- Ordered peer associations
Services
Workflow
The 4.0 releases sees the full integration of the Activiti engine into the repository. The JBPM and Activiti engines can run side by side.
A new installation of 4.0 will include JBPM but it will be disabled by default. An upgraded system will still include JBPM in an enabled state but its workflow definitions will be hidden, meaning no new instances of JBPM workflows can be started. This all of course is configurable via the following properties:
system.workflow.engine.jbpm.enabled=true
system.workflow.engine.activiti.enabled=true
system.workflow.engine.jbpm.definitions.visible=false
system.workflow.engine.activiti.definitions.visible=true
These properties can be overridden using the alfresco-global.properties file.
The original workflow console in the Explorer client is compatible with Activiti so it will now list both JBPM and Activiti workflow definitions, workflow instances and tasks. However, you may want to consider using the embedded Activiti Workflow Console in Share for monitoring Activiti based workflows if you're using the Enterprise Edition.
For more detail, refer to
The Activiti workflow console in the Alfresco Documentation Online.
Share Components Services Changes
In the 4.0 release,
Solr has become the default indexing subsystem. As transactional indexing can no longer be relied upon several services had to be re-factored to use canned database based queries instead of Lucene. In order to do this some of the services needed to be converted to Java backed web scripts (the canned query functionality is not exposed to the JavaScript API).
The following areas in Share have had their back-end REST APIs converted to Java backed web scripts:
- Blog
- Calendar
- Discussions
- Links
- Wiki
Although the implementation of the services have been changed the JSON responses have not been changed in a backwards compatible way. All the original data is still present, however, in some cases additional data is now returned, for example ISO8601 formatted dates. The only exception to this is the calendar REST API, in order to fix some timezone issues some old incorrectly formatted data has been removed.
Lazy Container Creation
In Share each component uses a 'container' to store its nodes (for example, all links are stored in a 'links' container within the site). In previous releases, this container would be created when data was requested (such as in the GET /api/links/site/my-site/links the container would be automatically created).
This meant the GET web script had to be declared as requiring a 'readwrite' transaction. There are two challenges with this. Firstly, a GET request has a side-effect which it shouldn't (GET requests should be idempotent). Secondly, this introduces a performance penalty.
For these reasons the GET requests for the main Share components (Blog, Calendar, Discussions, Links, and Wiki) have all been made 'readonly'. They no longer create the container automatically, the first POST request will now do this.
In general Share usage, this will not affect any one. If you have implemented a custom component and followed this pattern, it will continue to work but Alfresco recommends you adopt the approach.
NodeLocator service
A new service was added to provide a way to lookup nodes, its main use is from the Forms association control. It allows custom for 'startLocation' strategies to be plugged in.
For more detail, refer to
NodeLocator service in the Alfresco Documentation Online.
Localizable LIST Constraint Values
It is now possible to localize the values defined in a LIST constraint.
For more detail, refer to
Localizing Models in the Alfresco Documentation Online.
JMX Forms
Version 4.0 introduces a new JMXFormProcessor to allow MBean attributes to be edited and parameter-less operations to be executed. These forms are used heavily in the Share Admin Console tools.
It is very straightforward to expose an MBean via a form. The following configuration shows the configuration for exposing the attributes of the SysAdmin MBean.
<config evaluator='string-compare' condition='Alfresco:Type=Configuration,Category=sysAdmin,id1=default'>
<forms>
<form>
<field-visibility>
<show id='alfresco.context' />
<show id='alfresco.host' />
<show id='alfresco.port' />
<show id='alfresco.protocol' />
<show id='share.context' />
<show id='share.host' />
<show id='share.port' />
<show id='share.protocol' />
<show id='server.allowedusers' />
<show id='server.maxusers' />
<show id='server.allowWrite' />
</field-visibility>
<appearance>
...
</appearance>
</form>
</forms>
</config>
To expose the MBean operations that do not take any parameters the special 'mean_operations' field can be used. The following example shows the form configuration for the License MBean.
<config evaluator='string-compare' condition='Alfresco:Name=License'>
<forms>
<form>
<field-visibility>
<show id='Subject' />
<show id='Days' />
<show id='Holder' />
<show id='ValidUntil' />
<show id='LicenseMode' />
<show id='MaxDocs' />
<show id='MaxUsers' />
<show id='RemainingDays' />
<show id='Issued' />
<show id='Issuer' />
<show id='HeartBeatDisabled' />
<show id='mbean_operations' for-mode='edit' />
</field-visibility>
<appearance>
...
</appearance>
</form>
</forms>
</config>
Action Forms
A new ActionFormProcessor was introduced in 4.0 to support the new 'onActionFormDialog' action introduced in the new Share Extensibility enhancements.
The form processor exposes the parameters of a repository actions via a form and allows the action to be executed by submitting the form. For example, the minimal form configuration for the out of the box 'transform' action would be:
<config evaluator='string-compare' condition='transform'>
<forms>
<form>
<field-visibility>
<show id='mime-type' />
<show id='destination-folder' />
</field-visibility>
</form>
</forms>
</config>
CMIS
With Version 4.0, the following CMIS features are available:
- Alfresco OpenCMIS Extension adding support for Aspects and Aspect properties
- Consolidated AtomPub and Web Services impl. behind OpenCMIS Server
- Access to OpenCMIS Client API within Repository (in-process)
- Spring Surf OpenCMIS Integration (same/similar API to in-process)
- Spring Surf Browser Updated (for Spring Surf and Repo Embedded)
- Single-Sign On support with CMIS
- Compression on AtomPub/WS responses
- .NET OpenCMIS Client API (via Apache Chemistry)
Please Note: The Alfresco 3.x CMIS URLs (http://YOURSERVER/alfresco/service/cmis and http://YOURSERVER/alfresco/cmis) are still available but have been deprecated. Please use the new OpenCMIS based bindings (http://YOURSERVER/alfresco/cmisatom and http://YOURSERVER/alfresco/cmisws/RepositoryService)
For more information on Alfresco and CMIS please see cmis.alfresco.com.
Release Notes
Enterprise Edition
4.0