Alan Davis 30892c28d1 Merge 7.0.0-A8 changes to new projects:
alfresco-remote-api 8.238
   alfresco-repository 8.286
   alfresco-data-model 8.158
   alfresco-core 8.50

MNT-21936 : Audit query Rest API does not return the correct totalItems (#838)

* MNT-21936 : Audit query Rest API does not return the correct totalItems
   Retrieve audit entries count if it has more items
   Require new release of alfresco-repository.

* MNT-21936 : introduced skipTotalItems property for AuditImpl#listAuditEntries

* MNT-21936 : Change skipTotalItems to omitTotalItems to align with API Spec

* update alfresco-repository dependency

(cherry picked from commit 91c49be12a21b23a87cd04b7584c230b2ec4b569)
Bump dependency.webscripts.version from 8.8 to 8.10 (#1252)

Bumps `dependency.webscripts.version` from 8.8 to 8.10.

Updates `spring-surf-core-configservice` from 8.8 to 8.10

Updates `spring-webscripts` from 8.8 to 8.10
- [Release notes](https://github.com/Alfresco/surf-webscripts/releases)
- [Commits](https://github.com/Alfresco/surf-webscripts/compare/spring-surf-webscripts-parent-8.8...spring-surf-webscripts-parent-8.10)

Updates `spring-webscripts-api` from 8.8 to 8.10

Updates `spring-webscripts` from 8.8 to 8.10
- [Release notes](https://github.com/Alfresco/surf-webscripts/releases)
- [Commits](https://github.com/Alfresco/surf-webscripts/compare/spring-surf-webscripts-parent-8.8...spring-surf-webscripts-parent-8.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

(cherry picked from commit 8434f5f06fbd973c24688e5c7ec3d54b8513d858)
MNT-21936 : Audit query Rest API does not return the correct totalItems (#1253)

* MNT-21936 : Audit query Rest API does not return the correct totalItems
   Add CountAuditEntryId select, that provides the total number of items for a specific auditApp
   Add getAuditEntriesCountByApp(long appId) in AuditDAO interface and its implementation in AuditDAOImpl
   Add getAuditEntriesCountByApp(String applicationName) in AuditComponent interface and its implementation in AuditComponentImpl
   Add getAuditEntriesCountByApp(String applicationName) in AuditService interface and its implementation in AuditServiceImpl

* MNT-21936 : Added default implementation for getAuditEntriesCountByApp() in AuditComponent AuditService and AuditDAOImpl

(cherry picked from commit 706251642bb5ef6dbb0a059bf6a0cd4f7b72ab43)
2020-10-13 08:53:28 +01:00
2020-07-21 18:05:13 +01:00
2020-07-21 18:05:13 +01:00
2020-07-21 18:05:13 +01:00
2020-07-21 18:05:13 +01:00
2020-07-21 18:05:13 +01:00

alfresco-community-repo

Build Status

This project contains the bulk of the Alfresco Content Services Repository code.

To make the development process simpler, it brings together code historically in alfresco-core, alfresco-data-madel, alfresco-repository, alfresco-remote-api and repository specific tests and war file creation from acs-community-packaging. They exist as sub projects within the Maven Reactor and still create the same artifacts.

Alfresco Core

Alfresco Core is a library packaged as a jar file which contains the following:

  • Various helpers and utils
  • Canned queries interface and supporting classes
  • Generic encryption supporting classes

Version 7 of the library uses Spring 5, Quartz 2.3 and does not have Hibernate dependency.

Alfresco Data Model

Data model is a library packaged as a jar file which contains the following:

  • Dictionary, Repository and Search Services interfaces
  • Models for data types and Dictionary implementation
  • Parsers

Alfresco Repository

Repository is a library packaged as a jar file which contains the following:

  • DAOs and SQL scripts
  • Various Service implementations
  • Utility classes

Tests are combined into test classes split by test type or Spring application context used in the test, see classes in src/test/java/org/alfresco. All of these classes as well as individual tests can be run by specifying the test class name and a set of DB connection properties. Check the travis.yml file for docker images that should be started to provide a sutable test environment. For example:

mvn clean test -Dtest=SomeRepoTest -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql:alfresco -Ddb.username=alfresco -Ddb.password=alfresco

Alfresco Remote API

Remote API is a library packaged as a jar file which contains the following:

Like the alfresco-repository tests are combined in test classes split by test type or Spring application context used in the test.

Artifacts

The artifacts can be obtained by:

<dependency>
  <groupId>org.alfresco</groupId>
  <artifactId>alfresco-core</artifactId>
  <version>version</version>
</dependency>

<dependency>
  <groupId>org.alfresco</groupId>
  <artifactId>alfresco-data-model</artifactId>
  <version>version</version>
</dependency>

<dependency>
  <groupId>org.alfresco</groupId>
  <artifactId>alfresco-repository</artifactId>
  <version>version</version>
</dependency>

<dependency>
  <groupId>org.alfresco</groupId>
  <artifactId>alfresco-remote-api</artifactId>
  <version>version</version>
</dependency>

<dependency>
    <groupId>org.alfresco</groupId>
    <artifactId>content-services-community</artifactId>
    <version>version</version>
    <type>war</type>
</dependency>

and Alfresco maven repository:

<repository>
  <id>alfresco-maven-repo</id>
  <url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
</repository>

The SNAPSHOT versions of the artifact are not published.

All current source versions are held in github. Historic versions can be found in Alfresco SVN

Contributing guide

Please use this guide to make a contribution to the project.

Setting up your development environment

Although it is possible to work on individual github projects, we recommend working on the alfresco-community-repo, alfresco-enterprise-repo, acs-packaging and acs-community-packaging in a single Intellij IDEA project. They depend on each other and typically you will want to make changes to all of them if you are changing the repository code. In the case of older branches, there is generally no need for the acs-community-packaging as you will not be creating a community release.

Although it is possible to work on individual github projects, we recommend working on the alfresco-community-repo and acs-community-packaging in a single Intellij IDEA project. They depend on each other and typically you will want to make changes to both of them if you are changing the repository code.

$ mkdir work
$ cd work
$ git clone git@github.com:Alfresco/alfresco-community-repo.git
$ git clone git@github.com:Alfresco/acs-community-packaging.git

If you wish to build these projects from the command line, use the following commands.

$ cd alfresco-community-repo
$ mvn clean install -PcommunityDocker -DskipTests=true -Dversion.edition=Community
$ cd ..

$ cd acs-community-packaging
$ mvn clean install -PcommunityDocker -Dmaven.javadoc.skip=true
$ cd ..

In Itellij IDEA, create a new project using the work directory as the source.

  • File > New Project from Existing Sources > .../work > Maven

Docker

We generally use Docker for testing. In order to reduce the size of images we also supply a squash option that collapses the layers in the image. This is a long-standing experimental feature that we have fould useful. However you will need to enable experimental features in your Docker Engine.

{
  "experimental": true,
  "debug": true
}

Branches

As multiple projects have been combined, branch names use the ACS version they are targeting. For example the code used to create the repository in ACS 6.2.1 in a branch called releases/6.2.1.

The actual version number of the repository artifacts created by alfresco-community-repo are however different. For example release/6.2.1 artifacts are 7.183.x. This adds some complexity, but ensures that version numbers do not go backwards in existing releases. It also provides some level of independence between the repository and other ACS components.

Description
Community Content Service Repository
Readme 435 MiB
Languages
Java 96.5%
Fluent 1.1%
JavaScript 1%
HTML 0.5%
FreeMarker 0.4%
Other 0.3%