Alfresco Community Edition 6.0

cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco Community Edition 6.0

resplin
Intermediate
5 11 34.6K

What's new in Alfresco Community Edition 6.0


This page lists the new features added to Alfresco Community Edition during the 6.0 line of releases. Release bundles are named for the month they were generated, and may contain components from different versions of the product.

As a major release, Alfresco Community Edition 6.0 contains some changes which are not backwards compatible.

Content Repository

Code Organization and Package Names

The repository source code has been migrated from Subversion to Git. We are releasing from our new code structures, including public GitHub repositories. As part of this process:

  • The code base was split into smaller projects that produce intermediate artifacts with their own versioning.
  • The naming of the artifacts changed. The top-level artifacts include "community" to clarify that they are open source (the proprietary artifacts include "content-services" in their names).
  • The Early Access artifacts are built from a separate POM that includes an EA in the names.

Dockerized deployment

These releases come with a set of docker images instead of a GUI installer. These docker images produce a deployment that is more closely aligned with production best practices than the previous installers were capable of creating. If you are interested in how the scripts function, you can find the project that builds the docker images here.

To configure Alfresco Community Edition, it is recommended to add -Dkey=value properties to the JAVA_OPTS environment variable in the docker-compose.yml file. In this EA release, all the data is still stored inside the docker containers. This is sufficient for test and development purposes. For production like environments however, it is recommended to mount locations on the host machine into the containers so that all the data (content store, DB and SOLR indexes) gets stored on the host.

The source code for the packaging project that is used to create and run docker images and build the distribution zip can be found here.

Anonymous Usage Metrics via Heartbeat

Instances of Alfresco Content Services sends a "heartbeat" status report that Alfresco Software uses to make decisions about those products. We have been improving the heartbeat to report more detailed information so that we can evolve the product in ways that provide the most value to our customers. As part of this process, we are including the new heartbeat in Alfresco Community Edition so that we can better understand how our open source users interact with the product. This will allow us to include the needs of our open source community in our decision making, and better measure the value of our investment in our open source products. The new heartbeat service replaces the previous "Tracking Pixel" method of Community Edition Usage Tracking‌.

Alfresco Community Edition is sending anonymous usage metrics to Alfresco through the heartbeat service. These metrics are sent every 24 hours and include: version information, numbers of users and groups, numbers of models, aspects and types, whether smart folders are enabled or not as well as the JVM total, max and free memory size. On the receiving side, we detect the country where the data is sent from, but we do not store the IP address of reports coming from our open source products.

Alfresco is using this data to better target new features and their prioritization to actual usage patterns. We also track the adoption of new versions and features in our install base. To see exactly what is being sent, feel free to look at the log output generated by

log4j.logger.org.alfresco.heartbeat.datasender.internal.HBDataConsumer=DEBUG

If you wish to deactivate this data transmission, then you just need to add

heartbeat.enabled=false

to your configuration, either as value in alfresco-global.properties or as part of the JAVA_OPTS environment variable in the docker-compose file.

Over the long term, we plan to make this information available to the administrators of Alfresco Community Edition so that they can better understand the usage of their repositories.


Replacement of OpenOffice by JodConverter transformers

The OpenOffice transformers have been replaced by JodConverter transformers to provide better reliability. Prior to this release JodConverter had only been available to Enterprise customers, but in both cases they had been using the same LibreOffice process to produce the transformations. The JodConverter automatically restarts LibreOffice processes if they crash and after a fixed number of transformations (mitigating potential memory leaks).

To minimize disruption when upgrading, alfresco global properties that configured OpenOffice transformers (properties starting with "content.transformer." and then include "OpenOffice" as part of their name) will also apply to the equivalent JodConverter transformer unless an equivalent property has been defined for JodConverter. The system will also attempt to interpret ooo.enabled, ooo.port and ooo.exe properties so that the JodConverter will start if OpenOffice was previously started. It will only be able to do this for the ooo.exe property if a path including LibreOffice's install directory was provided, as the JodConverter has a jodconverter.officeHome rather than a jodconverter.exe property. If the ooo.exe property value was simply soffice (the process was found on the PATH), the jodconverter.officeHome property must be set.

Library Upgrades

  • The Jackson Library was upgraded. JSON passing entities in webscript extensions and customizations to the REST API framework will need to be rewritten to use Jackson 2 instead of Jackson 1. This usually only requires rewriting the package names and classes.
  • Tika parser, PDFBox and Apache POI libraries have all been updated to the latest versions as part of an effort to keep alfresco up to date on these libraries. Because of this update, some other libraries were required to be updated (see REPO-1066 for details)
  • Quartz library was updated to 2.3.0. As the APIs has changed the trigger and jobs are described in a different way: now the job detail is injected inside the trigger and the trigger is passed to scheduler. Previously the scheduler could be injected in the trigger directly. Java APIs of trigger and job configuration have changed as well.
  • Spring was updated to version 5.0.4. There are some changes that need to be done for the context files to be valid:
    • will need to have an updated xsd declaration
    • the local reference to beans (like idref local) is now an error
    • singleton declaration should be now done via scope. The default scope is singleton
  • Hibernate was completely removed from the product. The dialect detection is now part of alfresco-repository project.
  • JaxB was updated to 2.3.0
  • Guava was updated to 24.0-jre
  • Removed xstream library from the product
  • Updated commons-validator to 1.6 and commons-digester to 1.8.1
  • Bouncycastle libraries have been updated to 1.59
  • Apache Commons FileUpload updated to 1.3.3 and fixed CVE-2016-1000031
  • Excluded unnecessarily c3p0 library
  • Removed JSR-168 Portlets API
  • Vaadin library upgraded to 6.8.18
  • Guava was updated to 24.0-jre
  • Rhino upgraded to official release version of 1.7.9 
  • Removed c3p0 library
  • Upgraded xercesImpl library to 2.11.0 and applied Alfresco patch
  • Removed myfaces-api, myfaces-impl & jsp-api 
  • Upgraded javax.mail to 1.6.1
  • Jetty (server, security, webapp) upgraded to 8.2.0.v20160908
  • JLan library upgraded to 7.1

Improved REST APIs

New Endpoints (since ACS 5.2.1 and Alfresco Community Edition 201707) include:

  • Audit
    • GET /audit-applications: List audit applications
    • GET /audit-applications/{auditApplicationId}: Get audit application info
    • PUT /audit-applications/{auditApplicationId}: Update audit application info
    • GET /audit-applications/{auditApplicationId}/audit-entries: List audit entries for an audit application
    • DELETE /audit-applications/{auditApplicationId}/audit-entries: Permanently delete audit entries for an audit application
    • GET /audit-applications/{auditApplicationId}/audit-entries/{auditEntryId}: Get audit entry
    • DELETE /audit-applications/{auditApplicationId}/audit-entries/{auditEntryId}: Permanently delete an audit entry
    • GET /nodes/{nodeId}/audit-entries: List audit entries for a node
  • Avatar
    • GET /people/{personId}/avatar: Get avatar image
    • PUT /people/{personId}/avatar: Update avatar image
    • DELETE /people/{personId}/avatar: Delete avatar image
  • Actions
    • GET /nodes/{nodeId}/action-definitions: Retrieve actions for a node
    • GET /action-definitions: Retrieve a list of available actions
    • GET /action-definitions/{actionDefinitionId}: Retrieve the details of an action definition
    • POST /action-executions: Execute an action
  • Sites
    • GET /site-membership-requests: Get the list of site membership requests the user can action
    • POST /sites/{siteId}/site-membership-requests/{inviteeId}/approve: Approve a site membership request
    • POST /sites/{siteId}/site-membership-requests/{inviteeId}/reject: Reject a site membership request
  • Probes 
    • GET /probes/{probeId}: Check readiness and liveness of the repository

For details on new and updated endpoints, please see the following list of JIRA issues:

[REPO-2247] Tags: GET tags endpoint should provide aggregation info - Alfresco JIRA 

[REPO-2170] Enhance People API to return capabilities - Alfresco JIRA 

[REPO-3344] Web Api Parameter `required` is not being used - Alfresco JIRA 

[REPO-2093] Allow site managers to accept and reject site invitations - Alfresco JIRA 

[REPO-2339] Trashcan REST API: optionally restore node to new location - Alfresco JIRA
[REPO-3504] Deployment: Create and add Liveness and Readiness Probes 

REST API Explorer

An updated release of the REST API Explorer (v6.0.6-ga) is available on Github - alfresco-rest-api-explorer to navigate the details of the new REST API endpoints. This is included in the SDK, or can be installed by adding the WAR to your Alfresco install and configuring CORS.

This release of REST API Explorer also includes logs listing the API changes between Alfresco 5.1, Alfresco 5.2, and Alfresco 6.0. They highlight the OpenAPI spec differences between these Alfresco versions.

See also Alfresco public REST APIs to find links to more information about the new REST APIs.

Default services

FTP support is now disabled by default. Those who want to use it need to activate it manually. This produces a more secure default configuration.

CIFS support is now disabled by default. We recommend not using CIFS, as the protocol has been deprecated by Microsoft due to security vulnerabilities. We expect to remove support for CIFS in the future.

SDK
The Alfresco SDK is not yet updated with the new code locations. For more details, see More of Alfresco Content Services on GitHub. The support for 6.0.x-ea versions in Alfresco SDK will be added in next releases of Alfresco SDK.

Documentation
The documentation has been refreshed for this release. The documentation is currently published at docs.alfresco.com: Alfresco Community Edition

Localisation
This release includes: French, German, Italian, Spanish, Japanese, Dutch, Norwegian (Bokmål), Russian, Brazilian Portuguese and Simplified Chinese versions.

Alfresco Share

Spring was updated to version 5.0.4 and Hazelcast - Spring to version 3.7.1.

Share is now also delivered in a Docker container.

Search Services

Solr is now also delivered in a Docker container.

Mobile

Records Management

Alfresco Developer Framework

SDK

General

Documentation

The documentation has been refreshed for this release. The documentation is currently published at docs.alfresco.com: Alfresco Community Edition

Localisation

This release includes: French, German, Italian, Spanish, Japanese, Dutch, Norwegian (Bokmål), Russian, Brazilian Portuguese and Simplified Chinese versions.

Feature Removals

A number of features are considered deprecated and will be removed in a future release:

More information is available in https://community.alfresco.com/community/ecm/blog/2018/01/03/architecture-changes-for-alfresco-conte...

Release Notes

Unreleased Alfresco Community Edition 201709 EA

Alfresco Community Edition 201711 EA

Alfresco Community Edition 201802 EA

Alfresco Community Edition 201803 EA 

Alfresco Community Edition 201804 EA  

 

About the Author
Content Management and Business Intelligence Specialist | @Alfresco and @Pentaho blogger | Inventor and principal developer of #AAAR
11 Comments
josephlefebvre
Active Member II

The 6.0 version is already relevant ?

Otherwise, is it planned ?

Thanks

resplin
Intermediate

We started the work on Alfresco Content Services 6.0 in September of 2017, though we have not yet finalized the release plan. This page allows us to keep track of the improvements we add as we make them. You can see these improvements in the nightly builds and in the monthly releases of Alfresco Community Edition, which is now numbered in the 6.0 version family.

yash_patel_c2
Established Member

Hi,

I have just installed Alfresco Community Early Access v6.0.2. Site Data Lists is mentioned in the Feature Removal section but it is still there. I can see the version of Share is Alfresco Share v5.2.f. So can someone let me know, by when Share 6.0 will be available ?

Thanks

fcorti
Alfresco Employee

You can try this:  

yash_patel_c2
Established Member

Hi,

I have upgraded from Alfresco Share v5.2.f to Alfresco Share v6.0.a from this link . I am still confused as, now I am using Alfresco Share v6.0.a and Alfresco Community Early Access v6.0.2, but I can't see any changes from user perspective such as Site Data Lists, Calendar, etc are still there. Please help me to understand this.

Thanks 

fcorti
Alfresco Employee

Hi Yash,

In the following link is clearly written: future removals.

 

I hope this helps you to clarify.

Cheers.

yreg
Active Member II

GET /nodes/{nodeId}/audit-entries: List audit entries for a node

How does that cope with node moves ? meaning :

  • Is the implementation immune to nodes being moved from one location to one other keeping all audit data ?
  • Is the implementation immune to nodes created in a location, where a node having the same name used to exist (but got moved/removed)?

 

stefankopf
Alfresco Employee

Audit data is recorded based on the nodeId. This id is stable during the lifetime of a node, i.e. it does not change when a node is moved. A new node will have a different nodeId, even if it has the same path and name.

The nodeId is a auto-generated UUID.

yreg
Active Member II

I am not so sure about that Stefan, ideally what you said should be the case, but I don't see that recorded in alfresco-access audit app : alfresco-repository/alfresco-audit-access.xml at master · Alfresco/alfresco-repository · GitHub Also checked the AuditImpl in Github, I can see that is using alfresco-access audit app (hardcoded reference) and is converting noderef to path, and performing lookup based on that : alfresco-remote-api/AuditImpl.java at master · Alfresco/alfresco-remote-api · GitHub . Note that I have raised this concern few months back, and haven't gotten any feedback: https://issues.alfresco.com/jira/browse/REPO-1786?focusedCommentId=564193&page=com.atlassian.jira.pl... 

stefankopf
Alfresco Employee

Sorry for the confusion. We are now looking into this in more detail now. I will keep you updated.

stefankopf
Alfresco Employee

We decided to deprecate this API endpoint. Please see https://issues.alfresco.com/jira/browse/MNT-19912 

This endpoint does not provide what users expect it to provide, and, given the actual setup of the alfresco-access audit application, will never be able to provide this information.

Instead, you should use the GET /audit-applications/{auditApplicationId}/audit-entries endpoint together with a where clause that filters the audit entries you are interested in. To get exactly what you need, you might need to define your own audit app beforehand.

Thanks for pointing us to this problem!