An open API service indexing awesome lists of open source software.

https://github.com/magenta-aps/alfresco-compositional-design

Simple example of a compositional design using the strategy pattern and the state pattern
https://github.com/magenta-aps/alfresco-compositional-design

Last synced: 21 days ago
JSON representation

Simple example of a compositional design using the strategy pattern and the state pattern

Awesome Lists containing this project

README

        

# Alfresco ACS JAR Module - SDK 4.0

This is an ACS project for Alfresco SDK 4.0.

Run with `./run.sh build_start` or `./run.bat build_start` and verify that it

* Runs Alfresco Content Service (ACS)
* (Optional) Runs Alfresco Share
* Runs Alfresco Search Service (ASS)
* Runs PostgreSQL database
* Deploys the JAR assembled module

All the services of the project are now run as docker containers. The run script offers the next tasks:

* `build_start`. Build the whole project, recreate the ACS docker image, start the dockerised environment composed by ACS, Share (optional), ASS
and PostgreSQL and tail the logs of all the containers.
* `build_start_it_supported`. Build the whole project including dependencies required for IT execution, recreate the ACS docker image, start the dockerised environment
composed by ACS, Share (optional), ASS and PostgreSQL and tail the logs of all the containers.
* `start`. Start the dockerised environment without building the project and tail the logs of all the containers.
* `stop`. Stop the dockerised environment.
* `purge`. Stop the dockerised container and delete all the persistent data (docker volumes).
* `tail`. Tail the logs of all the containers.
* `reload_acs`. Build the ACS module, recreate the ACS docker image and restart the ACS container.
* `build_test`. Build the whole project, recreate the ACS docker image, start the dockerised environment, execute the integration tests and stop
the environment.
* `test`. Execute the integration tests (the environment must be already started).

# Few things to notice

* No parent pom
* No WAR projects, the jars are included in the custom docker images
* No runner project - the Alfresco environment is now managed through [Docker](https://www.docker.com/)
* Standard JAR packaging and layout
* Works seamlessly with Eclipse and IntelliJ IDEA
* JRebel for hot reloading, JRebel maven plugin for generating rebel.xml [JRebel integration documentation]
* AMP as an assembly
* Persistent test data through restart thanks to the use of Docker volumes for ACS, ASS and database data
* Resources loaded from META-INF
* Web Fragment (this includes a sample servlet configured via web fragment)

# TODO

* Abstract assembly into a dependency so we don't have to ship the assembly in the archetype
* Functional/remote unit tests