All Projects → Acosix → alfresco-simple-content-stores

Acosix / alfresco-simple-content-stores

Licence: Apache-2.0 license
Addon to provide a set of common content store implementations and easy-to-use configuration (no Spring config)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to alfresco-simple-content-stores

web-fonts-repository
A simple webfont hosting. Google Fonts alternative for your own fonts.
Stars: ✭ 99 (+147.5%)
Mutual labels:  repository
VisualNovelKit
Combo of addons + template to create narrative games in Godot inspired by Ren'Py
Stars: ✭ 78 (+95%)
Mutual labels:  addon
XIV Databar
AddOn for WoW that displays a databar at the bottom/top of the screen with several modules and customization options.
Stars: ✭ 43 (+7.5%)
Mutual labels:  addon
pyrocms-cheatsheet
Pyro CMS - Cheat Sheet
Stars: ✭ 17 (-57.5%)
Mutual labels:  addon
PieMenusPlus
Pie Menus Plus is a complete Pie Menu ecosystem for Blender 2.8+
Stars: ✭ 26 (-35%)
Mutual labels:  addon
gradle-git-versioning-plugin
This extension will set project version, based on current Git branch or tag.
Stars: ✭ 44 (+10%)
Mutual labels:  repository
WoWUnit
A unit testing framework for World of Warcraft
Stars: ✭ 20 (-50%)
Mutual labels:  addon
Blender-ArmorPaintLiveLink
This is a live-link tool to switch from Blender to ArmorPaint by only clicking in one button.
Stars: ✭ 86 (+115%)
Mutual labels:  addon
python-tuf
Python reference implementation of The Update Framework (TUF)
Stars: ✭ 1,425 (+3462.5%)
Mutual labels:  repository
eloquent-repository
Repository pattern for Eloquent ORM with focus in cache.
Stars: ✭ 30 (-25%)
Mutual labels:  repository
httpz
Fat-free hardenable opportunistic encryption for Firefox
Stars: ✭ 60 (+50%)
Mutual labels:  addon
VSCode-Bedrock-Development-Extension
An extension that provides support for files such as: .mcfunction, .json and .lang. Features include: completion, validations, formatters, diagnostics, cheat-sheets, code-actions, generation of files, and development tools to help develop Minecraft Bedrock Addons or Minecraft Education Edition.
Stars: ✭ 45 (+12.5%)
Mutual labels:  addon
godot-engine.supabase
A lightweight addon which integrates Supabase APIs for Godot Engine out of the box.
Stars: ✭ 39 (-2.5%)
Mutual labels:  addon
ansible-role-php-versions
Ansible Role - PHP Versions
Stars: ✭ 78 (+95%)
Mutual labels:  repository
JAR
Just Another Repo
Stars: ✭ 53 (+32.5%)
Mutual labels:  repository
addon-check
Automatic checks for new repository submissions
Stars: ✭ 45 (+12.5%)
Mutual labels:  addon
SQLBuilder.Core
.NET Standard 2.1、.NET 5、.NET 6 版本SQLBuilder,Expression表达式转换为SQL语句,支持SqlServer、MySql、Oracle、Sqlite、PostgreSql;基于Dapper实现了不同数据库对应的数据仓储Repository;
Stars: ✭ 85 (+112.5%)
Mutual labels:  repository
Blender-Metaverse-Addon
Blender toolset for creating content for Metaverses like High Fidelity
Stars: ✭ 53 (+32.5%)
Mutual labels:  addon
AdiBags
WoW Addon — Adirelle's bag addon.
Stars: ✭ 94 (+135%)
Mutual labels:  addon
git-pull-or-clone
Ensure a git repo exists on disk and that it's up-to-date
Stars: ✭ 46 (+15%)
Mutual labels:  repository

Build Status

About

This addon provides a set of simple / common content store implementations to enhance any installation of Alfresco Community or Enterprise. It also provides a mechanism that supports configuring custom content stores without any need for Spring bean definition / XML manipulation or overriding, just by using properties inside of the alfresco-global.properties file. General information about general aspects and configuration approach can be found in the specific documentation pages in the docs folder in this project.

Compatibility

This module is built to be compatible with Alfresco 5.2 and above. Build and tests are done primarily against Alfresco 6.1, but the underlying APIs have been determined to have been stable since 5.2. The primary difference to be aware of between Alfresco 5.2 and 6.x or newer is the fact that since Alfresco 6.x, the Tukaani XZ already comes pre-bundled with Alfresco. Users of Alfresco 5.2 which want to use the compressing content store functionality of this module need to manually add this library to their installation, as it is no longer bundled with the AMP of this project starting with version 1.2. This module may be used on either Community or Enterprise Edition. Separate branches for compatibility versions targeting Alfresco 4.2 and 5.0/5.1 were maintained only up to version 1.1 of this project - those Alfresco versions are now considered to be too old and rare in use to warrant any more (unpaid) support.

Provided Stores

Currently, this addon provides:

OOTBee Support Tools Command Console Plugin

In order to expose the runtime-administration capabilities specifically for the ecnrypting content store, this module includes a plugin extension to the Command Console tool of the OOTBee Support Tools addon, available since version 1.1.0.0 of that addon. When both modules are installed, the administrative actions can be accessed by going to e.g. <host>/alfresco/s/ootbee/admin/command-console and then using the activatePlugin simple-content-stores command. Once activated, the following commands are available:

  • listEncryptionKeys <active|inactive>
  • enableEncryptionKey <masterKey>
  • disableEncryptionKey <masterKey>
  • countEncryptedSymmetricKeys <masterKey>
  • listEncryptionKeysEligibleForReEncryption
  • reEncryptSymmetricKeys <masterKey>

In order to have the plugin listed in the global command listPlugins, the property ootbee-support-tools.command-console.plugins must be set via Alfresco's global properties to include the value simple-content-stores in the comma-separated list of values. A future version of OOTBee Support Tools may improve discovery of plugins and not require this additional configuration, which needs to merge all the plugins from all installed modules.

Build

This project uses a Maven build using templates from the Acosix Alfresco Maven project and produces module AMPs, regular Java classes JARs, JavaDoc and source attachment JARs, as well as installable (Simple Alfresco Module) JAR artifacts for the Alfresco Content Services and Share extensions. If the installable JAR artifacts are used for installing this module, developers / users are advised to consult the 'Dependencies' section of this README.

Maven toolchains

By inheritance from the Acosix Alfresco Maven framework, this project uses the Maven Toolchains plugin to allow potential cross-compilation against different Java versions. This plugin is used to avoid potentially inconsistent compiler and library versions compared to when only the source/target compiler options of the Maven compiler plugin are set, which (as an example) has caused issues with some Alfresco releases in the past where Alfresco compiled for Java 7 using the Java 8 libraries. In order to build the project it is necessary to provide a basic toolchain configuration via the user specific Maven configuration home (usually ~/.m2/). That file (toolchains.xml) only needs to list the path to a compatible JDK for the Java version required by this project, which currently is Java 8.

<?xml version='1.0' encoding='UTF-8'?>
<toolchains xmlns="http://maven.apache.org/TOOLCHAINS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/TOOLCHAINS/1.1.0 http://maven.apache.org/xsd/toolchains-1.1.0.xsd">
  <toolchain>
    <type>jdk</type>
    <provides>
      <version>1.8</version>
      <vendor>oracle</vendor>
    </provides>
    <configuration>
      <jdkHome>C:\Program Files\Java\jdk1.8.0_112</jdkHome>
    </configuration>
  </toolchain>
</toolchains>

Docker-based integration tests

In a default build using mvn clean install, this project will build the extension for Alfresco Content Services, executing regular unit-tests without running integration tests. The integration tests of this project are based on Docker and require a Docker engine to run the necessary components (PostgreSQL database as well as Alfresco Content Services). Since a Docker engine may not be available in all environments of interested community members / collaborators, the integration tests have been made optional. A full build, including integration tests, can be run by executing

mvn clean install -Ddocker.tests.enabled=true

Due to OS- and file system specific permission handling, as well as the use of Docker mounted directories to access the Alfresco content store from within unit test classes, the integration tests may also not work on systems with strict file system security in place. The project is currently being developed in a Microsoft Windows environment, and integration tests should work without fail in that environment, while *nix-based environments have been reported as problematic. Acosix will aim to work on finding alternative approaches to verifying files in the content store in future versions to enable integration tests to be run on any environment.

Dependencies

This module depends on the following projects / libraries:

  • Tukaani XZ for Java (Public Domain)
  • Acosix Alfresco Utility (Apache License, Version 2.0) - core extension

Tukaani XZ is already part of the ACS distribution since Alfresco 6.0 - it was included in AMPs of this project up to version 1.1, but has since then been removed to avoid conflicts / overrides with the ACS-bundled version of the library. If the compressing content store is to be used, this library must be manually added to an installation of Alfresco 5.2. The Acosix Alfresco Utility project provides the core extension for Alfresco Content Services as a separate artifact from the full module, which needs to be installed in Alfresco Content Services before the AMP of this project can be installed.

When the installable JAR produced by the build of this project is used for installation, the developer / user is responsible to either manually install all the required components / libraries provided by the listed projects, or use a build system to collect all relevant direct / transitive dependencies. Note: The Acosix Alfresco Utility project is also built using templates from the Acosix Alfresco Maven project, and as such produces similar artifacts. Automatic resolution and collection of (transitive) dependencies using Maven / Gradle will resolve the Java classes JAR as a dependency, and not the installable (Simple Alfresco Module) variant. It is recommended to exclude Acosix Alfresco Utility from transitive resolution and instead include it directly / explicitly.

Using SNAPSHOT builds

In order to use a pre-built SNAPSHOT artifact published to the Open Source Sonatype Repository Hosting site, the artifact repository may need to be added to the POM, global settings.xml or an artifact repository proxy server. The following is the XML snippet for inclusion in a POM file.

<repositories>
    <repository>
        <id>ossrh</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].