To get the version history for a file use the VersionsApi.listVersionHistory method, which will retrieve a list of all the node versions.
For more information about this ReST API endpoint, see Get File Version History.
For a description of the common parameters, such as include, see Common Parameters.
import org.alfresco.core.handler.VersionsApi;
import org.alfresco.core.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.List;
@Component
public class ListVersionHistoryCmd {
static final Logger LOGGER = LoggerFactory.getLogger(ListVersionHistoryCmd.class);
@Autowired
VersionsApi versionsApi;
public void execute(String fileNodeId) throws IOException {
VersionPagingList nodes = listVersionHistory(fileNodeId);
}
/**
* List the version history for a file node.
*
* @param fileNodeId the id of the file node
* @return a list of child node objects contained in the folder, or null if not found
*/
private VersionPagingList listVersionHistory(String fileNodeId) {
Integer skipCount = 0;
Integer maxItems = 100;
List<String> include = null;
List<String> fields = null;
LOGGER.info("Listing versions for file node ID {}", fileNodeId);
VersionPagingList result = versionsApi.listVersionHistory(fileNodeId, include, fields, skipCount, maxItems).getBody().getList();
for (VersionEntry versionEntry: result.getEntries()) {
LOGGER.info("Node version " + versionEntry.getEntry().toString());
}
return result;
}
}
We would execute this command class something like this, passing in the file Node ID:
% java -jar target/rest-api-0.0.1-SNAPSHOT.jar list-file-versions 0492460b-6269-4ca1-9668-0d934d2f3370
2021-04-29 08:04:48.145 INFO 18326 --- [ main] o.a.tutorial.restapi.RestApiApplication : Started RestApiApplication in 6.498 seconds (JVM running for 7.686)
2021-04-29 08:04:48.148 INFO 18326 --- [ main] o.a.tutorial.restapi.RestApiApplication : args[0]: list-file-versions
2021-04-29 08:04:48.152 INFO 18326 --- [ main] o.a.tutorial.restapi.RestApiApplication : args[1]: 0492460b-6269-4ca1-9668-0d934d2f3370
2021-04-29 08:04:48.152 INFO 18326 --- [ main] o.a.t.restapi.ListVersionHistoryCmd : Listing versions for file node ID 0492460b-6269-4ca1-9668-0d934d2f3370
2021-04-29 08:04:48.990 INFO 18326 --- [ main] o.a.t.restapi.ListVersionHistoryCmd : Node version class Version {
id: 3.0
versionComment: null
name: somestuff2.txt
nodeType: acme:document
isFolder: false
isFile: true
modifiedAt: 2021-04-28T12:44:51.578Z
modifiedByUser: class UserInfo {
displayName: Administrator
id: admin
}
content: class ContentInfo {
mimeType: text/plain
mimeTypeName: Plain Text
sizeInBytes: 30
encoding: ISO-8859-1
}
aspectNames: null
properties: null
}
2021-04-29 08:04:48.990 INFO 18326 --- [ main] o.a.t.restapi.ListVersionHistoryCmd : Node version class Version {
id: 2.0
versionComment: null
name: somestuff2.txt
nodeType: acme:document
isFolder: false
isFile: true
modifiedAt: 2021-04-28T12:02:33.526Z
modifiedByUser: class UserInfo {
displayName: Administrator
id: admin
}
content: class ContentInfo {
mimeType: text/plain
mimeTypeName: Plain Text
sizeInBytes: 23
encoding: ISO-8859-1
}
aspectNames: null
properties: null
}
2021-04-29 08:04:48.990 INFO 18326 --- [ main] o.a.t.restapi.ListVersionHistoryCmd : Node version class Version {
id: 1.0
versionComment: null
name: somestuff2.txt
nodeType: acme:document
isFolder: false
isFile: true
modifiedAt: 2021-04-28T12:02:33.143Z
modifiedByUser: class UserInfo {
displayName: Administrator
id: admin
}
content: class ContentInfo {
mimeType: text/plain
mimeTypeName: Plain Text
sizeInBytes: 0
encoding: UTF-8
}
aspectNames: null
properties: null
}
Note the id property that contains the file version number. The versionComment property would contain any comments made when uploading a new version of the file. Folder nodes does not have content.