diff --git a/README.md b/README.md index 03d9a2c4bb..55508f952b 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,6 @@ [![Build Status](https://travis-ci.com/Alfresco/alfresco-community-repo.svg?branch=master)](https://travis-ci.com/Alfresco/alfresco-community-repo) -This project contains the bulk of the [Alfresco Content Services Repository](https://community.alfresco.com/docs/DOC-6385-project-overview-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: @@ -16,8 +9,6 @@ Alfresco Core is a library packaged as a jar file which contains the following: * 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 @@ -31,14 +22,6 @@ Repository is a library packaged as a jar file which contains the following: * 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 suitable 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: @@ -46,13 +29,10 @@ Remote API is a library packaged as a jar file which contains the following: * WebScript implementations including [V1 REST APIs](https://community.alfresco.com/community/ecm/blog/2017/05/02/v1-rest-api-10-things-you-should-know) * [OpenCMIS](https://chemistry.apache.org/java/opencmis.html) implementations -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: * downloading from [Alfresco maven repository](https://artifacts.alfresco.com/nexus/content/groups/public) -* getting as Maven dependency by adding the dependency to your pom file: +* as Maven dependency by adding the dependency to your pom file: ~~~ org.alfresco @@ -94,40 +74,24 @@ and Alfresco maven 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](https://svn.alfresco.com/repos/alfresco-open-mirror/services/alfresco-core/) - -### Contributing guide -Please use [this guide](CONTRIBUTING.md) 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` -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 -Pbuild-docker-images -DskipTests=true -Dversion.edition=Community -cd .. - -cd acs-community-packaging -mvn clean install -Pbuild-docker-images -Dmaven.javadoc.skip=true -cd .. -~~~ -In Intellij IDEA, create a new project using the `work` directory as the source. -* File > New Project from Existing Sources > .../work > Maven +## Setting up and building your development environment +See the [Development Tomcat Environment](https://github.com/Alfresco/acs-community-packaging/tree/master/dev/README.md) +page which will show you how to try out your repository changes in a local tomcat instance. +If you wish to use Docker images, take a look at the aliases ending in `D` and the docker-compose files in this +project's test modules. ## 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 is a branch called `releases/6.2.1`. +This project has a branch for each ACS release. For example the code in ACS 6.2.1 is a +branch called `releases/6.2.2`. In addition to the original 6.2.2 release it will also contain Hot Fixes +added later. The latest unreleased code is on the `master` branch. There are also `.N` branches, such as +`releases/7.1.N` on which we gather unreleased fixes for future service pack releases. They do not indicate +that one is planned. -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. +For historic reasons the version of artifacts created on each branch do not match the ACS version. +For example artifact in ACS 7.2.0 will be `14.`. + +The enterprise projects which extend the `alfresco-community-repo` use the same branch names and leading +artifact version number. + +### Contributing guide +Please use [this guide](CONTRIBUTING.md) to make a contribution to the project. \ No newline at end of file