mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merge master into RM-5859_AnyMarksStaging.
This commit is contained in:
678
pom.xml
678
pom.xml
@@ -4,15 +4,9 @@
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-rm</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>2.7.1-SNAPSHOT</version>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
<name>Alfresco Records Management</name>
|
||||
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-parent</artifactId>
|
||||
<version>2.1.1</version>
|
||||
</parent>
|
||||
|
||||
<url>http://www.alfresco.org/</url>
|
||||
<inceptionYear>2005</inceptionYear>
|
||||
<organization>
|
||||
@@ -24,8 +18,7 @@
|
||||
<connection>scm:git:https://git.alfresco.com/records-management/records-management.git</connection>
|
||||
<developerConnection>scm:git:https://git.alfresco.com/records-management/records-management.git</developerConnection>
|
||||
<url>https://git.alfresco.com/records-management/records-management</url>
|
||||
<tag>HEAD</tag>
|
||||
</scm>
|
||||
</scm>
|
||||
|
||||
<issueManagement>
|
||||
<system>JIRA</system>
|
||||
@@ -41,17 +34,39 @@
|
||||
</prerequisites>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>alfresco-internal</id>
|
||||
<name>Alfresco Internal Repository</name>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/internal/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>alfresco-public</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>alfresco-public-snapshots</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>alfresco-private</id>
|
||||
<name>Alfresco Internal Repository</name>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/private</url>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>alfresco-public</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>alfresco-plugin-public</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
|
||||
</pluginRepository>
|
||||
<pluginRepository>
|
||||
<id>alfresco-plugin-public-snapshots</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
|
||||
<distributionManagement>
|
||||
@@ -186,18 +201,277 @@
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
</profile>
|
||||
|
||||
<!--
|
||||
The following profile adds the /properties directories as resource directories in the project.
|
||||
This means we can filter the property files in these directories.
|
||||
The presence of this /properties directory also activates these profiles.
|
||||
-->
|
||||
<profile>
|
||||
<id>enable-test-properties-filtering</id>
|
||||
<activation>
|
||||
<file>
|
||||
<!-- No properties allowed here. Only hardcoded values are properly interpreted -->
|
||||
<exists>src/test/properties</exists>
|
||||
</file>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>${maven.buildhelper.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>add-env-test-properties</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>add-test-resource</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>${app.properties.test.folder}</directory>
|
||||
<includes>
|
||||
<include>${app.properties.test.include}</include>
|
||||
</includes>
|
||||
<filtering>${app.filtering.enabled}</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<!--Docker profiles-->
|
||||
<!-- Profile used only to build docker images-->
|
||||
<profile>
|
||||
<id>buildDockerImage</id>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>fabric8-maven-plugin</artifactId>
|
||||
<version>${fabric8.maven.version}</version>
|
||||
<configuration>
|
||||
<images>
|
||||
<image>
|
||||
<name>${image.name}</name>
|
||||
<build>
|
||||
<dockerFileDir>${project.basedir}/</dockerFileDir>
|
||||
</build>
|
||||
</image>
|
||||
</images>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-image</id>
|
||||
<phase>install</phase>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>build-image-verify</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!-- Profile used to build docker images with given tag and push them to the given image registry (quay.io) -->
|
||||
<profile>
|
||||
<id>internal</id>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>fabric8-maven-plugin</artifactId>
|
||||
<version>${fabric8.maven.version}</version>
|
||||
<configuration>
|
||||
<images>
|
||||
<image>
|
||||
<name>${image.name}:${image.tag}</name>
|
||||
<registry>${image.registry}</registry>
|
||||
<build>
|
||||
<dockerFileDir>${project.basedir}/</dockerFileDir>
|
||||
</build>
|
||||
</image>
|
||||
</images>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-push-image</id>
|
||||
<phase>deploy</phase>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
<goal>push</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!-- Profile used to build and push docker images with latest tag to the given image registry (quay.io) and
|
||||
hub.docker -->
|
||||
<profile>
|
||||
<id>master</id>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>fabric8-maven-plugin</artifactId>
|
||||
<version>${fabric8.maven.version}</version>
|
||||
<configuration>
|
||||
<images>
|
||||
<image>
|
||||
<name>${image.name}</name>
|
||||
<registry>${image.registry}</registry>
|
||||
<build>
|
||||
<dockerFileDir>${project.basedir}/</dockerFileDir>
|
||||
</build>
|
||||
</image>
|
||||
<image>
|
||||
<name>${image.name}</name>
|
||||
<build>
|
||||
<dockerFileDir>${project.basedir}/</dockerFileDir>
|
||||
</build>
|
||||
</image>
|
||||
</images>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-push-image</id>
|
||||
<phase>deploy</phase>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
<goal>push</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!-- Profile used to build and push docker images with project.version tag to the given image registry (quay.io) and
|
||||
hub.docker -->
|
||||
<profile>
|
||||
<id>release</id>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>fabric8-maven-plugin</artifactId>
|
||||
<version>${fabric8.maven.version}</version>
|
||||
<configuration>
|
||||
<images>
|
||||
<image>
|
||||
<name>${image.name}:${project.version}</name>
|
||||
<registry>${image.registry}</registry>
|
||||
<build>
|
||||
<dockerFileDir>${project.basedir}/</dockerFileDir>
|
||||
</build>
|
||||
</image>
|
||||
<image>
|
||||
<name>${image.name}:${project.version}</name>
|
||||
<build>
|
||||
<dockerFileDir>${project.basedir}/</dockerFileDir>
|
||||
</build>
|
||||
</image>
|
||||
</images>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-push-image</id>
|
||||
<phase>deploy</phase>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
<goal>push</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<properties>
|
||||
<alfresco.client.contextPath>/alfresco</alfresco.client.contextPath>
|
||||
<alfresco.data.location>${session.executionRootDirectory}/alf_data_dev</alfresco.data.location>
|
||||
<alfresco.db.datasource.class>org.gjt.mm.mysql.Driver</alfresco.db.datasource.class>
|
||||
<alfresco.db.name>alf_dev</alfresco.db.name>
|
||||
<alfresco.db.params>AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=10000;MVCC=FALSE;LOCK_MODE=0;IGNORECASE=TRUE</alfresco.db.params>
|
||||
<alfresco.db.password>alfresco</alfresco.db.password>
|
||||
<alfresco.db.url>jdbc:mysql://${alfresco.db.host}:${alfresco.db.port}/${alfresco.db.name}</alfresco.db.url>
|
||||
<alfresco.db.username>alfresco</alfresco.db.username>
|
||||
<alfresco.groupId>org.alfresco</alfresco.groupId>
|
||||
<alfresco.share.artifactId>share</alfresco.share.artifactId>
|
||||
<alfresco-spring-webscripts.version>6.19</alfresco-spring-webscripts.version>
|
||||
<api.explorer.version>6.0.7-ga</api.explorer.version>
|
||||
<!-- Set this here and override it in the community and enterprise modules. -->
|
||||
<alfresco.version>0.0</alfresco.version>
|
||||
|
||||
<share.client.contextPath>/share</share.client.contextPath>
|
||||
|
||||
<maven.alfresco.includeDependencies>false</maven.alfresco.includeDependencies>
|
||||
<maven.build.sourceVersion>1.8</maven.build.sourceVersion>
|
||||
<maven.build.testSourceVersion>1.8</maven.build.testSourceVersion>
|
||||
<maven.buildhelper.version>1.9.1</maven.buildhelper.version>
|
||||
<maven.compiler.version>3.2</maven.compiler.version>
|
||||
<maven.enforcer.plugin>1.4</maven.enforcer.plugin>
|
||||
<maven.resources.version>2.7</maven.resources.version>
|
||||
<maven.tomcat.port>8080</maven.tomcat.port>
|
||||
|
||||
<fabric8.docker.version>0.25.0</fabric8.docker.version>
|
||||
<mockito.version>1.10.19</mockito.version>
|
||||
<postgresql.version>42.2.1</postgresql.version>
|
||||
<postgresql.port>5432</postgresql.port>
|
||||
<mysql.version>5.1.40</mysql.version>
|
||||
<mysql.port>3306</mysql.port>
|
||||
<!--This prevents a clash when postgres is already running natively on the machine.-->
|
||||
<database.port>5431</database.port>
|
||||
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<argLine>-Xmx1024m -XX:MaxPermSize=256m -Duser.language=en -Dcom.sun.management.jmxremote</argLine>
|
||||
|
||||
<license.update.dryrun>true</license.update.dryrun>
|
||||
<license.verbose>false</license.verbose>
|
||||
|
||||
<app.amp.client.war.folder>${project.build.directory}/${project.build.finalName}-war</app.amp.client.war.folder>
|
||||
<app.amp.folder>src/main/amp</app.amp.folder>
|
||||
<app.amp.output.folder>../${project.build.finalName}</app.amp.output.folder>
|
||||
<app.filtering.enabled>true</app.filtering.enabled>
|
||||
<app.log.dir>${project.build.directory}/</app.log.dir>
|
||||
<app.log.root.level>WARN</app.log.root.level>
|
||||
<app.properties.include>**</app.properties.include>
|
||||
<app.properties.folder>src/main/properties/local</app.properties.folder>
|
||||
<app.properties.test.include>**</app.properties.test.include>
|
||||
<app.properties.test.folder>src/test/properties/local</app.properties.test.folder>
|
||||
|
||||
<fabric8.maven.version>3.5.37</fabric8.maven.version>
|
||||
<image.name>imageNameNotSet</image.name>
|
||||
<image.tag>latest</image.tag>
|
||||
<image.registry>quay.io</image.registry>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@@ -207,6 +481,27 @@
|
||||
<artifactId>guava</artifactId>
|
||||
<version>18.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-all</artifactId>
|
||||
<version>${mockito.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.alfresco.surf</groupId>
|
||||
<artifactId>spring-webscripts</artifactId>
|
||||
<version>${alfresco-spring-webscripts.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>${alfresco.postgres.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${mysql.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
@@ -223,8 +518,8 @@
|
||||
<finalName>${project.artifactId}-${project.version}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>1.4</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>enforce-java</id>
|
||||
@@ -255,8 +550,8 @@
|
||||
<regexPropertySetting>
|
||||
<name>rm.module.repo.version.min</name>
|
||||
<value>${alfresco.version}</value>
|
||||
<regex>(\d+)\.(\d+).*</regex>
|
||||
<replacement>$1.$2</replacement>
|
||||
<regex>(\d+)\.(\d+).*</regex>
|
||||
<replacement>$1.$2</replacement>
|
||||
<failIfNoMatch>false</failIfNoMatch>
|
||||
</regexPropertySetting>
|
||||
<regexPropertySetting>
|
||||
@@ -283,8 +578,8 @@
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.18</version>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>**/*UnitTest.java</include>
|
||||
@@ -292,7 +587,6 @@
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>3.0.1</version>
|
||||
<executions>
|
||||
@@ -305,7 +599,6 @@
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>2.10.4</version>
|
||||
<executions>
|
||||
@@ -314,12 +607,155 @@
|
||||
<goals>
|
||||
<goal>jar</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<additionalparam>-Xdoclint:none</additionalparam>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<additionalparam>-Xdoclint:none</additionalparam>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>2.6.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-clean</id>
|
||||
<phase>clean</phase>
|
||||
<goals>
|
||||
<goal>clean</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>2.5.2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-install</id>
|
||||
<phase>install</phase>
|
||||
<goals>
|
||||
<goal>install</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>2.7</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-deploy</id>
|
||||
<phase>deploy</phase>
|
||||
<goals>
|
||||
<goal>deploy</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>3.3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-site</id>
|
||||
<phase>site</phase>
|
||||
<goals>
|
||||
<goal>site</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<reportPlugins>
|
||||
<reportPlugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
</reportPlugin>
|
||||
</reportPlugins>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>default-deploy</id>
|
||||
<phase>site-deploy</phase>
|
||||
<goals>
|
||||
<goal>deploy</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<reportPlugins>
|
||||
<reportPlugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
</reportPlugin>
|
||||
</reportPlugins>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<reportPlugins>
|
||||
<reportPlugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
</reportPlugin>
|
||||
</reportPlugins>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<extensions>
|
||||
<extension>
|
||||
<groupId>org.apache.maven.archetype</groupId>
|
||||
<artifactId>archetype-packaging</artifactId>
|
||||
<version>2.2</version>
|
||||
</extension>
|
||||
<extension>
|
||||
<groupId>org.apache.maven.wagon</groupId>
|
||||
<artifactId>wagon-webdav-jackrabbit</artifactId>
|
||||
<version>2.2</version>
|
||||
</extension>
|
||||
</extensions>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>${app.filtering.enabled}</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>${app.amp.folder}</directory>
|
||||
<targetPath>${app.amp.output.folder}</targetPath>
|
||||
<filtering>${app.filtering.enabled}</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/resources</directory>
|
||||
<filtering>${app.filtering.enabled}</filtering>
|
||||
</testResource>
|
||||
</testResources>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.18</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-install-plugin</artifactId>
|
||||
<version>2.5.2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.5</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>2.2-beta-5</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.alfresco.maven.plugin</groupId>
|
||||
<artifactId>alfresco-maven-plugin</artifactId>
|
||||
<version>2.1.1</version>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<snapshotToTimestamp>true</snapshotToTimestamp>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>${maven.compiler.version}</version>
|
||||
@@ -362,7 +798,7 @@
|
||||
</action>
|
||||
</pluginExecution>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>
|
||||
org.codehaus.mojo
|
||||
</groupId>
|
||||
@@ -372,20 +808,19 @@
|
||||
<versionRange>
|
||||
[1.9.1,)
|
||||
</versionRange>
|
||||
<goals>
|
||||
<goal>regex-properties</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore />
|
||||
</action>
|
||||
<goals>
|
||||
<goal>regex-properties</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>${maven.enforcer.plugin}</version>
|
||||
</plugin>
|
||||
@@ -395,12 +830,10 @@
|
||||
<version>1.0-alpha-2</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.19</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.8</version>
|
||||
</plugin>
|
||||
@@ -417,76 +850,73 @@
|
||||
|
||||
<!-- Maven Release Plugin (Use a recent version for better Git Support) -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-release-plugin</artifactId>
|
||||
<version>2.5.3</version>
|
||||
<configuration>
|
||||
<tagNameFormat>V@{project.version}</tagNameFormat>
|
||||
</configuration>
|
||||
<artifactId>maven-release-plugin</artifactId>
|
||||
<version>2.5.3</version>
|
||||
<configuration>
|
||||
<tagNameFormat>V@{project.version}</tagNameFormat>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<!-- Disable doclint until RM-3150 is fixed -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
<additionalparam>-Xdoclint:none</additionalparam>
|
||||
</configuration>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
<additionalparam>-Xdoclint:none</additionalparam>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>license-maven-plugin</artifactId>
|
||||
<version>1.8</version>
|
||||
<configuration>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>license-maven-plugin</artifactId>
|
||||
<version>1.8</version>
|
||||
<configuration>
|
||||
|
||||
<verbose>${license.verbose}</verbose>
|
||||
<addSvnKeyWords>false</addSvnKeyWords>
|
||||
<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
|
||||
<addSvnKeyWords>false</addSvnKeyWords>
|
||||
<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
|
||||
|
||||
<!-- header configuration -->
|
||||
<organizationName>Alfresco Software Limited</organizationName>
|
||||
<descriptionTemplate>${project.parent.parent.basedir}/license/description.ftl</descriptionTemplate>
|
||||
<canUpdateCopyright>true</canUpdateCopyright>
|
||||
<canUpdateDescription>true</canUpdateDescription>
|
||||
<organizationName>Alfresco Software Limited</organizationName>
|
||||
<descriptionTemplate>${project.parent.parent.basedir}/license/description.ftl</descriptionTemplate>
|
||||
<canUpdateCopyright>true</canUpdateCopyright>
|
||||
<canUpdateDescription>true</canUpdateDescription>
|
||||
|
||||
<!-- licence configuration -->
|
||||
<licenseResolver>file:${project.parent.parent.basedir}/license</licenseResolver>
|
||||
<licenseResolver>file:${project.parent.parent.basedir}/license</licenseResolver>
|
||||
|
||||
<!-- dry run options -->
|
||||
<dryRun>${license.update.dryrun}</dryRun>
|
||||
<failOnMissingHeader>true</failOnMissingHeader>
|
||||
<failOnNotUptodateHeader>true</failOnNotUptodateHeader>
|
||||
<failOnMissingHeader>true</failOnMissingHeader>
|
||||
<failOnNotUptodateHeader>true</failOnNotUptodateHeader>
|
||||
|
||||
<!-- default root -->
|
||||
<roots>
|
||||
<root>src</root>
|
||||
</roots>
|
||||
<roots>
|
||||
<root>src</root>
|
||||
</roots>
|
||||
|
||||
<!-- exculsions -->
|
||||
<excludes>
|
||||
<exclude>**/package-info.java</exclude>
|
||||
<exclude>**/*.properties</exclude>
|
||||
<exclude>**/*.css</exclude>
|
||||
<exclude>**/*.xml</exclude>
|
||||
<exclude>**/*.json</exclude>
|
||||
<exclude>**/*.txt</exclude>
|
||||
<exclude>**/*.html</exclude>
|
||||
</excludes>
|
||||
<excludes>
|
||||
<exclude>**/package-info.java</exclude>
|
||||
<exclude>**/*.properties</exclude>
|
||||
<exclude>**/*.css</exclude>
|
||||
<exclude>**/*.xml</exclude>
|
||||
<exclude>**/*.json</exclude>
|
||||
<exclude>**/*.txt</exclude>
|
||||
<exclude>**/*.html</exclude>
|
||||
</excludes>
|
||||
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>first</id>
|
||||
<goals>
|
||||
<goal>update-file-header</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>first</id>
|
||||
<goals>
|
||||
<goal>update-file-header</goal>
|
||||
</goals>
|
||||
<phase>process-sources</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>${maven.resources.version}</version>
|
||||
<dependencies>
|
||||
@@ -496,6 +926,108 @@
|
||||
<version>3.1.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<encoding>UTF-8</encoding>
|
||||
<nonFilteredFileExtensions>
|
||||
<nonFilteredFileExtension>ftl</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>acp</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>jpg</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>png</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>gif</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>svg</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>doc</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>ppt</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>pptx</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>bin</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>lic</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>swf</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>zip</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>msg</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>eot</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>css</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>ico</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>psd</nonFilteredFileExtension>
|
||||
</nonFilteredFileExtensions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>2.5</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.alfresco.maven.plugin</groupId>
|
||||
<artifactId>alfresco-maven-plugin</artifactId>
|
||||
<version>2.1.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<archiveClasses>false</archiveClasses>
|
||||
<archive>
|
||||
<manifest>
|
||||
<addClasspath>true</addClasspath>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>2.6.1</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.9</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-archetype-plugin</artifactId>
|
||||
<version>2.2</version>
|
||||
<configuration>
|
||||
<skip>${skipTests}</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.google.code.maven-replacer-plugin</groupId>
|
||||
<artifactId>replacer</artifactId>
|
||||
<version>1.5.3</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.tomcat.maven</groupId>
|
||||
<artifactId>tomcat7-maven-plugin</artifactId>
|
||||
<version>2.2</version>
|
||||
<configuration>
|
||||
<useSeparateTomcatClassLoader>true</useSeparateTomcatClassLoader>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>net.alchim31.maven</groupId>
|
||||
<artifactId>yuicompressor-maven-plugin</artifactId>
|
||||
<version>1.5.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>compress-js</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>compress</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>**/webscripts/**</exclude>
|
||||
<exclude>**/site-webscripts/**</exclude>
|
||||
<exclude>**/*.lib.js</exclude>
|
||||
<exclude>**/*.css</exclude>
|
||||
</excludes>
|
||||
<warSourceDirectory>src/main/resources/META-INF</warSourceDirectory>
|
||||
<jswarn>false</jswarn>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-rm</artifactId>
|
||||
<version>2.7.1-SNAPSHOT</version>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<licenses>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-rm-automation</artifactId>
|
||||
<version>2.7.1-SNAPSHOT</version>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
@@ -26,6 +26,8 @@
|
||||
*/
|
||||
package org.alfresco.rest.rm.community.model.common;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -50,4 +52,10 @@ public class IdNamePair
|
||||
|
||||
@JsonProperty (required = true)
|
||||
private String name;
|
||||
|
||||
@JsonProperty (required = true)
|
||||
private List<String> aspectNames;
|
||||
|
||||
@JsonProperty (required = true)
|
||||
private String nodeType;
|
||||
}
|
||||
|
@@ -136,6 +136,7 @@ public class SearchAPI extends BaseAPI
|
||||
{
|
||||
String searchFilterParamaters = MessageFormat.format(RM_DEFAULT_NODES_FILTERS, Boolean.toString(includeFolders),
|
||||
Boolean.toString(includeCategories));
|
||||
|
||||
return getItemNames(rmSearch(username, password, "rm", query, searchFilterParamaters, sortby));
|
||||
}
|
||||
|
||||
|
@@ -710,6 +710,7 @@ public class BaseRMRestTest extends RestTest
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
results = searchApi.searchForNodeNamesAsUser(user.getUsername(), user.getPassword(), term, sortby,
|
||||
includeFolders, includeCategories);
|
||||
if (!results.isEmpty() && results.containsAll(expectedResults))
|
||||
|
@@ -0,0 +1,96 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Records Management Module
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2018 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* -
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
* -
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* -
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
* -
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.rest.rm.community.recordcategories;
|
||||
|
||||
import static org.alfresco.utility.data.RandomData.getRandomName;
|
||||
import static org.alfresco.utility.report.log.Step.STEP;
|
||||
import static org.testng.Assert.assertTrue;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.alfresco.rest.rm.community.base.BaseRMRestTest;
|
||||
import org.alfresco.rest.rm.community.model.record.Record;
|
||||
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategory;
|
||||
import org.alfresco.rest.rm.community.model.recordcategory.RecordCategoryChild;
|
||||
|
||||
import org.alfresco.rest.rm.community.requests.gscore.api.RecordsAPI;
|
||||
import org.alfresco.rest.v0.service.DispositionScheduleService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
public class AutomaticDispositionTest extends BaseRMRestTest
|
||||
{
|
||||
private static final String CUT_OFF_ASPECT = "rma:cutOff";
|
||||
|
||||
@Autowired
|
||||
private DispositionScheduleService dispositionScheduleService;
|
||||
|
||||
private RecordCategory categoryWithRSOnRecords;
|
||||
|
||||
/**
|
||||
* Given there is a complete record eligible for cut off
|
||||
* When the correct duration of time passes
|
||||
* Then the record will be automatically cut off
|
||||
*/
|
||||
@Test(enabled = false)
|
||||
public void testAutomaticCutOff() throws Exception
|
||||
{
|
||||
STEP("Create record category with retention schedule and apply it to records.");
|
||||
categoryWithRSOnRecords = createRootCategory(getRandomName("categoryWithRSOnRecords"));
|
||||
dispositionScheduleService.createCategoryRetentionSchedule(categoryWithRSOnRecords.getName(), true);
|
||||
|
||||
STEP("Add retention schedule cut off step with immediate period.");
|
||||
dispositionScheduleService.addCutOffAfterPeriodStep(categoryWithRSOnRecords.getName(), "immediately");
|
||||
|
||||
STEP("Create a record folder with a record");
|
||||
RecordCategoryChild recordFolder = createRecordFolder(categoryWithRSOnRecords.getId(), getRandomName
|
||||
("recordFolder"));
|
||||
Record record = createElectronicRecord(recordFolder.getId(), getRandomName("elRecord"));
|
||||
|
||||
STEP("Complete the record and wait upon to 5 minutes for automatic job to execute");
|
||||
completeRecord(record.getId());
|
||||
|
||||
RecordsAPI recordsAPI = getRestAPIFactory().getRecordsAPI();
|
||||
List<String> aspects = recordsAPI.getRecord(record.getId()).getAspectNames();
|
||||
int count = 0;
|
||||
while (!aspects.contains(CUT_OFF_ASPECT) && count < 30)
|
||||
{
|
||||
// sleep .. allowing the job time to execute
|
||||
Thread.sleep(10000);
|
||||
count++;
|
||||
aspects = recordsAPI.getRecord(record.getId()).getAspectNames();
|
||||
}
|
||||
assertTrue(aspects.contains(CUT_OFF_ASPECT), "Record should now be cut off");
|
||||
}
|
||||
|
||||
@AfterClass (alwaysRun = true)
|
||||
public void deleteCategory()
|
||||
{
|
||||
deleteRecordCategory(categoryWithRSOnRecords.getId());
|
||||
}
|
||||
}
|
@@ -11,14 +11,14 @@
|
||||
* Easy Access Records
|
||||
* Physical Records
|
||||
* Record Import and Export
|
||||
* Version Records
|
||||
* [Version Records](./versionRecords)
|
||||
* Retention
|
||||
* [Destruction](./destruction)
|
||||
* Retention Schedules and Events
|
||||
* Transfer and Accession
|
||||
* Security
|
||||
* [Extended permission service](extendedPermissionService.md)
|
||||
* Roles, Capabilities and Permissions
|
||||
* [Extended permission service](security/extendedPermissionService.md)
|
||||
* [Roles and Capabilities](security/rolesAndCapabilities.md)
|
||||
* Discovery
|
||||
* Governance Search
|
||||
* Legal Holds
|
||||
@@ -27,3 +27,5 @@
|
||||
* Governance Rules
|
||||
* Core Module Services
|
||||
* [RM Patch Service](./PatchService.md)
|
||||
* Build and Release
|
||||
* [Build](./build)
|
||||
|
6
rm-community/documentation/build/README.md
Normal file
6
rm-community/documentation/build/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
## GS Build 
|
||||
|
||||
Build location: https://bamboo.alfresco.com/bamboo/browse/RM (not externally accessible.)
|
||||
|
||||
Build Flow:
|
||||

|
BIN
rm-community/documentation/build/resource/build.png
Normal file
BIN
rm-community/documentation/build/resource/build.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
66
rm-community/documentation/build/resource/build.puml
Normal file
66
rm-community/documentation/build/resource/build.puml
Normal file
@@ -0,0 +1,66 @@
|
||||
@startuml
|
||||
|
||||
Title: Governance Services Build Pipeline (RM HEAD)
|
||||
|
||||
'build plans:
|
||||
'Ent UI: Automated UI Tests Enterprise
|
||||
'Com API: Automation Community REST API
|
||||
'Ent API: Automation Enterprise REST API
|
||||
'Community
|
||||
'Com UI: Community Automated UI Tests
|
||||
'Enterprise
|
||||
'Ent L1: Enterprise Level 1 Automated UI Tests
|
||||
'Ent L2: Level 2 Automated UI Tests Enterprise
|
||||
'RM Benchmark Driver
|
||||
|
||||
|
||||
start
|
||||
|
||||
if(Trigger) then (commit to path)
|
||||
if (rm-community/*)
|
||||
:Community;
|
||||
fork
|
||||
:Ent L1;
|
||||
fork again
|
||||
:Enterprise;
|
||||
fork
|
||||
:Ent L2;
|
||||
fork again
|
||||
:Ent UI;
|
||||
end fork
|
||||
end fork
|
||||
elseif (rm-enterprise/*)
|
||||
:Enterprise;
|
||||
fork
|
||||
:Ent L2;
|
||||
fork again
|
||||
:Ent UI;
|
||||
end fork
|
||||
elseif (rm-automation/*)
|
||||
fork
|
||||
:Ent L1;
|
||||
fork again
|
||||
:Ent L2;
|
||||
fork again
|
||||
:Ent UI;
|
||||
end fork
|
||||
stop
|
||||
elseif (rm-community-rest-api/*)
|
||||
:Com API;
|
||||
stop
|
||||
elseif (rm-enterprise-rest-api/*)
|
||||
:Ent API;
|
||||
stop
|
||||
elseif (rm-benchmark-driver/*)
|
||||
:Benchmark;
|
||||
stop
|
||||
else
|
||||
end
|
||||
endif
|
||||
else (Time: 1am)
|
||||
:Community UI;
|
||||
stop
|
||||
endif
|
||||
:Release Step;
|
||||
end
|
||||
@enduml
|
Binary file not shown.
After Width: | Height: | Size: 135 KiB |
@@ -0,0 +1,196 @@
|
||||
@startuml
|
||||
|
||||
class RecordCategory {
|
||||
}
|
||||
|
||||
class Record {
|
||||
}
|
||||
|
||||
class NonElectronicRecord {
|
||||
}
|
||||
|
||||
class FilePlanComponent {
|
||||
}
|
||||
|
||||
class Transfer {
|
||||
location : String
|
||||
pdfIndicator : boolean
|
||||
}
|
||||
|
||||
note bottom of Transfer {
|
||||
A holding pen for records
|
||||
that are being transferred
|
||||
out of the system
|
||||
}
|
||||
|
||||
class Hold {
|
||||
}
|
||||
|
||||
class EasyAccessRecord {
|
||||
}
|
||||
|
||||
class RetentionSchedule {
|
||||
}
|
||||
|
||||
class SecurityGroup {
|
||||
enum groupType
|
||||
{HIERARCHICAL,
|
||||
USER_REQUIRES_ANY,
|
||||
USER_REQUIRES_ALL}
|
||||
unmarkedMark: SecurityMark
|
||||
}
|
||||
|
||||
class SecurityMark {
|
||||
}
|
||||
|
||||
class SecurityClassification {
|
||||
}
|
||||
|
||||
class Event {
|
||||
}
|
||||
|
||||
class Role {
|
||||
}
|
||||
|
||||
class Capability {
|
||||
name:String
|
||||
}
|
||||
|
||||
class RmSite {
|
||||
}
|
||||
|
||||
class FilePlan {
|
||||
}
|
||||
|
||||
class UnfiledRecordContainer {
|
||||
}
|
||||
|
||||
class UnfiledRecordFolder {
|
||||
}
|
||||
|
||||
class HoldContainer {
|
||||
}
|
||||
|
||||
class TransferContainer {
|
||||
}
|
||||
|
||||
class RecordsManagementContainer {
|
||||
}
|
||||
|
||||
class RecordFolder {
|
||||
}
|
||||
|
||||
class ClassificationReason {
|
||||
}
|
||||
|
||||
class ClassificationExemption {
|
||||
}
|
||||
|
||||
class Content {
|
||||
}
|
||||
|
||||
class Folder {
|
||||
}
|
||||
|
||||
class File {
|
||||
}
|
||||
|
||||
class User {
|
||||
}
|
||||
|
||||
class Group {
|
||||
}
|
||||
|
||||
class ClassificationInfo {
|
||||
classification: SecurityClassification
|
||||
reason:ClassificationReason[]
|
||||
classifiedBy: String
|
||||
agency:String
|
||||
}
|
||||
|
||||
class SourceReference {
|
||||
name:String
|
||||
originatingOrg:String
|
||||
publicationDate:Date
|
||||
}
|
||||
|
||||
class DowngradeSchedule {
|
||||
date:Date
|
||||
event:String
|
||||
instructions:String
|
||||
}
|
||||
|
||||
class DeclassificationSchedule {
|
||||
date:Date
|
||||
event:String
|
||||
exemption:Exemption[]
|
||||
}
|
||||
|
||||
class ClassificationGuide <<Enterprise>> {
|
||||
}
|
||||
|
||||
class DeclassificationTimeframe {
|
||||
}
|
||||
|
||||
|
||||
ClassificationInfo *-- "*" SourceReference
|
||||
ClassificationInfo *-- "0..1" DowngradeSchedule
|
||||
|
||||
Folder <|-- RecordFolder
|
||||
|
||||
FilePlanComponent <|-- RecordsManagementContainer
|
||||
FilePlanComponent <|-- RecordFolder
|
||||
FilePlanComponent <|-- NonElectronicRecord
|
||||
FilePlanComponent <|-- Record
|
||||
RecordsManagementContainer <|-- Hold
|
||||
RecordsManagementContainer <|-- UnfiledRecordContainer
|
||||
RecordsManagementContainer <|-- HoldContainer
|
||||
RecordsManagementContainer <|-- TransferContainer
|
||||
RecordsManagementContainer <|-- FilePlan
|
||||
RecordsManagementContainer <|-- RecordCategory
|
||||
|
||||
Hold "*" o- "*" FilePlanComponent : contains
|
||||
|
||||
SecurityGroup "1" *- "*" SecurityMark
|
||||
|
||||
Content o-- "*" SecurityMark : securityControls
|
||||
User o-- "*" SecurityMark : clearance
|
||||
Group o-- "*" SecurityMark : clearance
|
||||
|
||||
RecordCategory "1" *- "*" RecordFolder
|
||||
RecordCategory *- "*" RecordCategory
|
||||
|
||||
note bottom of RecordCategory {
|
||||
A RecordCategory may contain either RecordFolders or
|
||||
RecordCategories but not both. A RecordCategory may only exist
|
||||
as the child of either another RecordCategory or the FilePlan
|
||||
}
|
||||
|
||||
FilePlan *- "*" RecordsManagementContainer
|
||||
HoldContainer *- "*" Hold
|
||||
UnfiledRecordContainer *-- "*" UnfiledRecordFolder
|
||||
UnfiledRecordFolder *-- "*" Record
|
||||
RecordFolder *- "*" Record : contains
|
||||
RecordFolder *-- "*" NonElectronicRecord : contains
|
||||
|
||||
File <|-- Record
|
||||
|
||||
TransferContainer *- "*" Transfer
|
||||
Transfer *- "*" Record
|
||||
|
||||
Role o- "*" Capability
|
||||
User o- "*" Role
|
||||
Group o- "*" Role
|
||||
|
||||
SecurityMark <|-- SecurityClassification
|
||||
Content o- "0..1" SecurityClassification
|
||||
|
||||
Record <|- EasyAccessRecord
|
||||
Folder "1" o-- "*" EasyAccessRecord
|
||||
|
||||
Content <|-- Folder
|
||||
Content <|-- File
|
||||
|
||||
(Content, SecurityClassification) .. ClassificationInfo
|
||||
|
||||
@enduml
|
Binary file not shown.
After Width: | Height: | Size: 27 KiB |
41
rm-community/documentation/security/rolesAndCapabilities.md
Normal file
41
rm-community/documentation/security/rolesAndCapabilities.md
Normal file
@@ -0,0 +1,41 @@
|
||||
## Alfresco Governance Services' Roles and Capabilities
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Purpose
|
||||
|
||||
Roles and capabilities allow the GS system to provide a finer grain security evaluation, determining whether an authority has the capability to perform a perticular action on a node.
|
||||
|
||||
### Overview
|
||||
|
||||
Roles are defined as a collection of capabilities. A capability, generally, has a one to one relationship with an action within the system.
|
||||
|
||||
Authorities are assigned roles. If an authority is assigned to a role then it that authority has the capabilities contained within that role, allowing them to perform the related actions.
|
||||
|
||||
An authority can be assigned many roles, with the associated capabilities being additive.
|
||||
|
||||
Capabilties are evaluated in addition to any ACLs attached to a node, but they are mutally exclusive. A authority may have the capability, but not the permissions on a node and vice versa.
|
||||
|
||||
### Design
|
||||
|
||||
Roles are implementented as groups. So for every role that is created, there is a corresponding group within the system.
|
||||
|
||||
Capabilities are implemented as permissions. In order add a new capability to the system, the extended RM permission model needs to be extended.
|
||||
|
||||
When a capability is added to a role, then the capability group is assigned the capability role on the root file plan node.
|
||||
|
||||
In this way the permissions of the systems roles reflect their capabilities on the file plan via the capability permissions assigned.
|
||||
|
||||
When an authority is assigned to a role, that authority is added as a member of the corresponding role group. In this way they inherit the capability permissions on the file plan that relate to that role group.
|
||||
|
||||
If a user attempts to perform an action on a records management artifact which has a related capability. Assuming the user has permission to see the artifact in the first place, then the users capability to perform the action is evaluated.
|
||||
|
||||
This is done by firstly determining whether the capability is relevant for this 'kind' of records management artifact. For example the addHold capability is not relevant for a record category.
|
||||
|
||||
Then the capability permission is evaluated by traversing to the file plan node and checking whether the current user has the capabilty permission byt virtue of it's membership of the right role group.
|
||||
|
||||
Finally any further conditions attached to the capability are evaluated.
|
||||
|
||||

|
20
rm-community/documentation/versionRecords/README.md
Normal file
20
rm-community/documentation/versionRecords/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
## Version Records 
|
||||
|
||||
### Notes:
|
||||
|
||||
NodesService varies depending on store. Version Service has a different service that hydrates effectively fake nodes (which contain url, version details, associations, aspects, as denormalised meta data) back into a full node
|
||||
|
||||
Recorded Versions take content out of version store and create a record by version store implementation extension.
|
||||
|
||||
Declaring record as version - standard use case is auto declaring or via records. Head version is extracted to a record, rather than a new version being created
|
||||
|
||||
Records are linked by association
|
||||
|
||||
Disposition events can be triggered automatically from versioning events.
|
||||
|
||||
### Diagram:
|
||||
|
||||

|
||||
|
||||
|
||||
|
BIN
rm-community/documentation/versionRecords/RecordedVersions.png
Normal file
BIN
rm-community/documentation/versionRecords/RecordedVersions.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 65 KiB |
@@ -8,7 +8,7 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-rm</artifactId>
|
||||
<version>2.7.1-SNAPSHOT</version>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<licenses>
|
||||
@@ -27,7 +27,7 @@
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-parent</artifactId>
|
||||
<artifactId>acs-community-packaging</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
@@ -39,11 +39,46 @@
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-joda</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-yaml</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<properties>
|
||||
<alfresco.version>5.2.g</alfresco.version>
|
||||
<share.version>5.2.f</share.version>
|
||||
<jackson.version>2.9.5</jackson.version>
|
||||
<spring.version>5.0.4.RELEASE</spring.version>
|
||||
|
||||
<alfresco.version>6.0.7-ga</alfresco.version>
|
||||
<share.version>6.0.b</share.version>
|
||||
<!-- The properties app.amp.* need to be set for share to work. -->
|
||||
<app.filtering.enabled>true</app.filtering.enabled>
|
||||
</properties>
|
||||
</project>
|
||||
|
1
rm-community/rm-community-repo/.maven-dockerignore
Normal file
1
rm-community/rm-community-repo/.maven-dockerignore
Normal file
@@ -0,0 +1 @@
|
||||
target/docker/**
|
6
rm-community/rm-community-repo/Dockerfile
Normal file
6
rm-community/rm-community-repo/Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM alfresco/alfresco-content-repository-community:6.0.7-ga
|
||||
|
||||
COPY target/alfresco-rm-community-repo-*.amp /usr/local/tomcat/amps/
|
||||
|
||||
RUN java -jar /usr/local/tomcat/alfresco-mmt/alfresco-mmt*.jar install \
|
||||
/usr/local/tomcat/amps/alfresco-rm-community-repo-*.amp /usr/local/tomcat/webapps/alfresco -nobackup
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Extend Imap Service -->
|
||||
<bean id="rm.imapService" abstract="true" class="org.alfresco.repo.imap.ExtendedImapServiceImpl">
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- I18N -->
|
||||
<bean id="rmActionResourceBundles" class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<bean id="groupBase"
|
||||
abstract="true"
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- Assignable Capabilities -->
|
||||
<bean id="rmAccessAuditCapability"
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Capability Conditions -->
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Assignable Capabilities -->
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
<!-- Assignable Capabilities -->
|
||||
|
||||
<!-- Cut off -->
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Assignable Capabilities -->
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Assignable Capabilities -->
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Public Capabilities -->
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="rmCreate"
|
||||
parent="rmBaseCapability"
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="rmViewRecordsCapability"
|
||||
parent="rmBaseCapability"
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="rmCloseFoldersCapability"
|
||||
parent="declarativeCapability">
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- Assignable Capabilities -->
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="rmManageRulesCapability"
|
||||
parent="declarativeCapability">
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Assignable Capabilities -->
|
||||
|
||||
|
@@ -5,11 +5,11 @@
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||
http://www.springframework.org/schema/context/spring-context.xsd
|
||||
http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">
|
||||
http://www.springframework.org/schema/aop/spring-aop.xsd ">
|
||||
|
||||
<!-- content destruction component -->
|
||||
<bean name="contentDestructionComponent" class="org.alfresco.module.org_alfresco_module_rm.content.ContentDestructionComponent">
|
||||
|
@@ -1,11 +1,13 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- This file contains DOD specific capabilities relating to classification. -->
|
||||
<!-- When we support classification they can be re-included and adjusted accordingly, for now they are deprecated -->
|
||||
<!-- by making them private. -->
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="classifiedRecordsGroup"
|
||||
parent="groupBase">
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Bootstrap Records Management Models -->
|
||||
<bean id="org_alfresco_module_dod5015_dod5015dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- extend node service security to report capability details on failure -->
|
||||
<bean id="rm.NodeService_security" abstract="true" class="org.alfresco.module.org_alfresco_module_rm.security.RMMethodSecurityInterceptor"/>
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Helper abstract bean definitions -->
|
||||
|
||||
|
@@ -4,9 +4,9 @@
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd ">
|
||||
http://www.springframework.org/schema/aop/spring-aop.xsd ">
|
||||
|
||||
<!-- Module compatibility component -->
|
||||
<bean name="rm.moduleCompatibilityComponent" class="org.alfresco.module.org_alfresco_module_rm.bootstrap.ModuleCompatibilityComponent">
|
||||
|
@@ -7,5 +7,4 @@ module.aliases=org_alfresco_module_dod5015
|
||||
module.title=Records Management
|
||||
module.description=Alfresco Record Management Extension
|
||||
module.version=${rm.module.version}
|
||||
|
||||
module.repo.version.min=${rm.module.repo.version.min}
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- load version.properties -->
|
||||
<bean id="rm.version.properties" parent="common-placeholder-configurer">
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- RM v2.0 Patches -->
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- RM v2.1 Patches -->
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- RM v2.2 Patches -->
|
||||
<bean id="org_alfresco_module_rm_RMv22ReportTemplatePatch"
|
||||
|
@@ -1,9 +1,10 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- RM v2.3 Patches -->
|
||||
<!-- RM v2.3 Patches -->
|
||||
|
||||
<bean id="rm.recordContributorsGroupPatch"
|
||||
parent="rm.parentModulePatch"
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- RM v2.4 Patches -->
|
||||
|
||||
|
@@ -2,7 +2,8 @@
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<bean id="rmSqlSessionFactory" class="org.alfresco.ibatis.HierarchicalSqlSessionFactoryBean">
|
||||
<property name="resourceLoader" ref="dialectResourceLoader"/>
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- I18N -->
|
||||
<bean id="rmActionResourceBundles" class="org.alfresco.i18n.ResourceBundleBootstrapComponent">
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- audit extractors -->
|
||||
|
||||
|
@@ -1,9 +1,11 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- The beans that implement RM capabilities -->
|
||||
<!-- The beans that implement RM capabilities -->
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Capability Conditions -->
|
||||
<import resource="classpath:alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml"/>
|
||||
|
@@ -1,7 +1,10 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Records Management Security Service -->
|
||||
<!-- @deprecated As of release 2.1 -->
|
||||
@@ -22,9 +25,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordsManagementSecurityService_transaction"/>
|
||||
<idref bean="RecordsManagementSecurityService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordsManagementSecurityService_security"/>
|
||||
<idref bean="RecordsManagementSecurityService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -76,9 +79,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordsManagementService_transaction"/>
|
||||
<idref bean="RecordsManagementService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordsManagementService_security"/>
|
||||
<idref bean="RecordsManagementService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean
|
||||
id="disposition.properties.base"
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Identifier Service Implementation Bean -->
|
||||
<bean id="recordsManagementIdentifierService" class="org.alfresco.module.org_alfresco_module_rm.identifier.IdentifierServiceImpl">
|
||||
|
@@ -1,9 +1,15 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/util
|
||||
http://www.springframework.org/schema/util/spring-util.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="baseRMJobExecuter" abstract="true">
|
||||
<bean id="baseRMJobExecuter" abstract="true">
|
||||
<property name="repositoryState" ref="repositoryState" />
|
||||
<property name="retryingTransactionHelper" ref="retryingTransactionHelper" />
|
||||
</bean>
|
||||
@@ -13,19 +19,26 @@
|
||||
<!-- Notify Of Records Due For Review Job
|
||||
Sends out emails of records due for review
|
||||
-->
|
||||
<bean id="scheduledNotifyOfRecordsDueForReviewJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.module.org_alfresco_module_rm.job.RecordsManagementJob</value>
|
||||
<bean id="scheduledNotifyOfRecordsDueForReviewSchedulerAccessor" class="org.alfresco.schedule.AlfrescoSchedulerAccessorBean">
|
||||
<property name="scheduler" ref="schedulerFactory" />
|
||||
<property name="triggers" >
|
||||
<list>
|
||||
<bean id="scheduledNotifyOfRecordsDueForReviewJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
|
||||
<property name="jobDetail" ref="scheduledNotifyOfRecordsDueForReviewJobDetail" />
|
||||
<property name="cronExpression" value="${rm.notifyOfRecordsDueForReview.cronExpression}"/>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="scheduledNotifyOfRecordsDueForReviewJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
|
||||
<property name="jobClass" value ="org.alfresco.module.org_alfresco_module_rm.job.RecordsManagementJob" />
|
||||
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="jobName" value="scheduledNotifyOfRecordsDueForReview"/>
|
||||
<entry key="jobLockService">
|
||||
<ref bean="jobLockService" />
|
||||
</entry>
|
||||
<entry key="jobExecuter">
|
||||
<ref bean="scheduledNotifyOfRecordsDueForReviewJobExecuter" />
|
||||
</entry>
|
||||
<entry key="jobLockService" value-ref="jobLockService" />
|
||||
<entry key="jobExecuter" value-ref="scheduledNotifyOfRecordsDueForReviewJobExecuter" />
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -38,35 +51,15 @@
|
||||
<property name="recordsManagementNotificationHelper" ref="recordsManagementNotificationHelper" />
|
||||
</bean>
|
||||
|
||||
<bean id="scheduledNotifyOfRecordsDueForReviewJobTrigger" class="org.alfresco.util.CronTriggerBean">
|
||||
<property name="jobDetail">
|
||||
<ref bean="scheduledNotifyOfRecordsDueForReviewJobDetail" />
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<property name="cronExpression">
|
||||
<!-- <value>0 30 2 * * ?</value> -->
|
||||
<value>${rm.notifyOfRecordsDueForReview.cronExpression}</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Disposition Lifecycle Job -->
|
||||
<bean id="scheduledDispositionLifecyceleJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.module.org_alfresco_module_rm.job.RecordsManagementJob</value>
|
||||
</property>
|
||||
<bean id="scheduledDispositionLifecyceleJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
|
||||
<property name="jobClass" value="org.alfresco.module.org_alfresco_module_rm.job.RecordsManagementJob"/>
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="jobName" value="dispositionLifecycle" />
|
||||
<entry key="runAuditAs" value="${audit.rm.runas}" />
|
||||
<entry key="jobLockService">
|
||||
<ref bean="jobLockService" />
|
||||
</entry>
|
||||
<entry key="jobExecuter">
|
||||
<ref bean="dispositionLifecycleJobExecuter" />
|
||||
</entry>
|
||||
<entry key="jobLockService" value-ref="jobLockService" />
|
||||
<entry key="jobExecuter" value-ref="dispositionLifecycleJobExecuter" />
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -89,45 +82,42 @@
|
||||
<property name="recordsManagementActionService" ref="recordsManagementActionService" />
|
||||
</bean>
|
||||
|
||||
<bean id="scheduledDispositionLifecyceleJobTrigger" class="org.alfresco.util.CronTriggerBean">
|
||||
<property name="jobDetail">
|
||||
<ref bean="scheduledDispositionLifecyceleJobDetail" />
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<property name="cronExpression">
|
||||
|
||||
<!-- run at 3am -->
|
||||
<!-- <value>0 30 3 * * ?</value> -->
|
||||
<!-- <value>0/30 * * * * ?</value> -->
|
||||
<value>${rm.dispositionlifecycletrigger.cronexpression}</value>
|
||||
</property>
|
||||
<bean id="scheduledDispositionLifecyceleSchedulerAccessor" class="org.alfresco.schedule.AlfrescoSchedulerAccessorBean">
|
||||
<property name="scheduler" ref="schedulerFactory" />
|
||||
<property name="triggers">
|
||||
<bean id="scheduledDispositionLifecyceleJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
|
||||
<property name="jobDetail" ref ="scheduledDispositionLifecyceleJobDetail" />
|
||||
<!-- run at 3am -->
|
||||
<!-- <value>0 30 3 * * ?</value> -->
|
||||
<!-- <value>0/30 * * * * ?</value> -->
|
||||
<property name="cronExpression" value="${rm.dispositionlifecycletrigger.cronexpression}"/>
|
||||
</bean>
|
||||
</property >
|
||||
</bean>
|
||||
|
||||
<bean id="scheduledPublishUpdatesJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
|
||||
<property name="jobClass">
|
||||
<value>org.alfresco.module.org_alfresco_module_rm.job.RecordsManagementJob</value>
|
||||
</property>
|
||||
<bean id="scheduledPublishUpdatesJobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
|
||||
<property name="jobClass" value="org.alfresco.module.org_alfresco_module_rm.job.RecordsManagementJob" />
|
||||
<property name="jobDataAsMap">
|
||||
<map>
|
||||
<entry key="jobName" value="publishUpdates"/>
|
||||
<entry key="jobLockService">
|
||||
<ref bean="jobLockService" />
|
||||
</entry>
|
||||
<entry key="jobExecuter">
|
||||
<ref bean="publishUpdatesJobExecuter" />
|
||||
</entry>
|
||||
<entry key="jobName" value="publishUpdates" />
|
||||
<entry key="jobLockService" value-ref="jobLockService" />
|
||||
<entry key="jobExecuter" value-ref="publishUpdatesJobExecuter" />
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="scheduledPublishUpdatesJobTrigger" class="org.alfresco.util.CronTriggerBean">
|
||||
<property name="jobDetail" ref="scheduledPublishUpdatesJobDetail" />
|
||||
<bean id="scheduledPublishUpdatesSchedulerAccessor" class="org.alfresco.schedule.AlfrescoSchedulerAccessorBean">
|
||||
<property name="scheduler" ref="schedulerFactory" />
|
||||
<property name="cronExpression">
|
||||
<!-- <value>0 30 3 * * ?</value> -->
|
||||
<value>0/30 * * * * ?</value>
|
||||
<property name="triggers">
|
||||
<list>
|
||||
<bean id="scheduledPublishUpdatesJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
|
||||
<property name="jobDetail" ref="scheduledPublishUpdatesJobDetail" />
|
||||
<property name="cronExpression">
|
||||
<!-- <value>0 30 3 * * ?</value> -->
|
||||
<value>0/30 * * * * ?</value>
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Ensure backwards compatibility with 4.2 and 4.2.1 -->
|
||||
<bean class="org.alfresco.module.org_alfresco_module_rm.model.compatibility.DictionaryBootstrapPostProcessor"/>
|
||||
|
@@ -2,8 +2,8 @@
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
|
||||
|
||||
<bean id="rm.quickShareLinks" parent="quickShareLinks">
|
||||
<property name="nodes" ref="nodes"/>
|
||||
@@ -202,7 +202,7 @@
|
||||
</bean>
|
||||
|
||||
<!-- Map RM exceptions to HTML status codes -->
|
||||
<bean id="rm.simpleMappingExceptionResolver" abstract="true" parent="simpleMappingExceptionResolver">
|
||||
<bean id="rm.simpleMappingExceptionResolver" abstract="true" parent="simpleMappingExceptionResolverParent">
|
||||
<property name="exceptionMappings">
|
||||
<map merge="true">
|
||||
<entry key="org.alfresco.service.cmr.attributes.DuplicateAttributeException" value="#{T(org.springframework.extensions.webscripts.Status).STATUS_CONFLICT}" />
|
||||
@@ -212,7 +212,23 @@
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.util.BeanExtender">
|
||||
<property name="beanName" value="simpleMappingExceptionResolver"/>
|
||||
<property name="beanName" value="simpleMappingExceptionResolverParent"/>
|
||||
<property name="extendingBeanName" value="rm.simpleMappingExceptionResolver"/>
|
||||
</bean>
|
||||
|
||||
<!-- Extend restJsonModule to include the custom serializers for formatting the LocalDate and DateTime from
|
||||
joda-->
|
||||
<bean id="rm.restJsonModule" parent="restJsonModule">
|
||||
<property name="jsonSerializers">
|
||||
<list merge="true">
|
||||
<bean class="org.alfresco.rm.rest.api.util.CustomLocalDateSerializer" />
|
||||
<bean class="org.alfresco.rm.rest.api.util.CustomDateTimeSerializer" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean class="org.alfresco.util.BeanExtender">
|
||||
<property name="beanName" value="restJsonModule" />
|
||||
<property name="extendingBeanName" value="rm.restJsonModule" />
|
||||
</bean>
|
||||
</beans>
|
@@ -1,5 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd" >
|
||||
|
||||
<!-- ========================== -->
|
||||
<!-- Enforcement of permissions -->
|
||||
@@ -10,7 +13,6 @@
|
||||
<!-- and enforce security based on the currently authenticated user. -->
|
||||
<!-- -->
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- ===================== -->
|
||||
<!-- Permissions Model DAO -->
|
||||
@@ -63,7 +65,7 @@
|
||||
<!-- Note: ff the context evaluates to null (e.g. doing an exists test on a node -->
|
||||
<!-- that does not exist) then access will be allowed. -->
|
||||
|
||||
<bean id="aclEntryVoter" class="org.alfresco.repo.security.permissions.impl.acegi.RMACLEntryVoter" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
|
||||
<bean id="aclEntryVoter" class="org.alfresco.repo.security.permissions.impl.acegi.RMACLEntryVoter" abstract="false" lazy-init="default" autowire="default">
|
||||
<property name="permissionService">
|
||||
<ref bean="permissionService"></ref>
|
||||
</property>
|
||||
@@ -126,7 +128,8 @@
|
||||
<!-- Post method call application of security -->
|
||||
<!-- ======================================== -->
|
||||
|
||||
<bean id="afterAcl" class="org.alfresco.repo.security.permissions.impl.acegi.ACLEntryAfterInvocationProvider" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
|
||||
<bean id="afterAcl" class="org.alfresco.repo.security.permissions.impl.acegi.ACLEntryAfterInvocationProvider"
|
||||
abstract="false" lazy-init="default" autowire="default" >
|
||||
<property name="permissionService">
|
||||
<ref bean="permissionServiceImpl"></ref>
|
||||
</property>
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- Report Content Model -->
|
||||
|
||||
@@ -39,9 +40,9 @@
|
||||
<property name="target" ref="reportService"/>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="ReportService_transaction"/>
|
||||
<idref bean="ReportService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="ReportService_security"/>
|
||||
<idref bean="ReportService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
@@ -6,13 +6,13 @@
|
||||
xmlns:util="http://www.springframework.org/schema/util"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-3.0.xsd
|
||||
http://www.springframework.org/schema/context/spring-context.xsd
|
||||
http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/aop
|
||||
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
|
||||
http://www.springframework.org/schema/aop/spring-aop.xsd
|
||||
http://www.springframework.org/schema/util
|
||||
http://www.springframework.org/schema/util/spring-util-3.0.xsd">
|
||||
http://www.springframework.org/schema/util/spring-util.xsd">
|
||||
|
||||
<!-- Helper beans -->
|
||||
|
||||
@@ -66,9 +66,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="VitalRecordService_transaction"/>
|
||||
<idref bean="VitalRecordService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="VitalRecordService_security"/>
|
||||
<idref bean="VitalRecordService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -117,9 +117,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="DispositionService_transaction"/>
|
||||
<idref bean="DispositionService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="DispositionService_security"/>
|
||||
<idref bean="DispositionService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -187,9 +187,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="rmTransferService_transaction"/>
|
||||
<idref bean="rmTransferService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="rmTransferService_security"/>
|
||||
<idref bean="rmTransferService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -232,9 +232,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="CapabilityService_transaction"/>
|
||||
<idref bean="CapabilityService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<!-- <idref local="CapabilityService_security"/> -->
|
||||
<!-- <idref bean="CapabilityService_security"/> -->
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -353,9 +353,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordsManagementSearchService_transaction"/>
|
||||
<idref bean="RecordsManagementSearchService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordsManagementSearchService_security"/>
|
||||
<idref bean="RecordsManagementSearchService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -410,9 +410,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="FilePlanService_transaction"/>
|
||||
<idref bean="FilePlanService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="FilePlanService_security"/>
|
||||
<idref bean="FilePlanService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -475,9 +475,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="FilePlanPermissionService_transaction"/>
|
||||
<idref bean="FilePlanPermissionService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="FilePlanPermissionService_security"/>
|
||||
<idref bean="FilePlanPermissionService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -531,9 +531,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="FilePlanRoleService_transaction"/>
|
||||
<idref bean="FilePlanRoleService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="FilePlanRoleService_security"/>
|
||||
<idref bean="FilePlanRoleService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -598,9 +598,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="ExtendedSecurityService_transaction"/>
|
||||
<idref bean="ExtendedSecurityService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="ExtendedSecurityService_security"/>
|
||||
<idref bean="ExtendedSecurityService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -636,9 +636,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="ModelSecurityService_transaction"/>
|
||||
<idref bean="ModelSecurityService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="ModelSecurityService_security"/>
|
||||
<idref bean="ModelSecurityService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -680,9 +680,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordsManagementActionService_transaction"/>
|
||||
<idref bean="RecordsManagementActionService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordsManagementActionService_security"/>
|
||||
<idref bean="RecordsManagementActionService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -737,9 +737,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordsManagementEventService_transaction"/>
|
||||
<idref bean="RecordsManagementEventService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordsManagementEventService_security"/>
|
||||
<idref bean="RecordsManagementEventService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -808,9 +808,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordsManagementAdminService_transaction"/>
|
||||
<idref bean="RecordsManagementAdminService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordsManagementAdminService_security"/>
|
||||
<idref bean="RecordsManagementAdminService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -885,9 +885,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="FreezeService_transaction"/>
|
||||
<idref bean="FreezeService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="FreezeService_security"/>
|
||||
<idref bean="FreezeService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -959,9 +959,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordsManagementAuditService_transaction"/>
|
||||
<idref bean="RecordsManagementAuditService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordsManagementAuditService_security"/>
|
||||
<idref bean="RecordsManagementAuditService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -1019,9 +1019,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordFolderService_transaction"/>
|
||||
<idref bean="RecordFolderService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordFolderService_security"/>
|
||||
<idref bean="RecordFolderService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -1113,9 +1113,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordService_transaction"/>
|
||||
<idref bean="RecordService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordService_security"/>
|
||||
<idref bean="RecordService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -1185,9 +1185,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="InplaceRecordService_transaction"/>
|
||||
<idref bean="InplaceRecordService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="InplaceRecordService_security"/>
|
||||
<idref bean="InplaceRecordService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -1228,9 +1228,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="FilePlanAuthenticationService_transaction"/>
|
||||
<idref bean="FilePlanAuthenticationService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="FilePlanAuthenticationService_security"/>
|
||||
<idref bean="FilePlanAuthenticationService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -1306,8 +1306,8 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="CustomEmailMappingService_transaction"/>
|
||||
<idref local="CustomEmailMappingService_security"/>
|
||||
<idref bean="CustomEmailMappingService_transaction"/>
|
||||
<idref bean="CustomEmailMappingService_security"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
</list>
|
||||
</property>
|
||||
@@ -1439,8 +1439,8 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="CaveatConfigService_transaction"/>
|
||||
<idref local="CaveatConfigService_security"/>
|
||||
<idref bean="CaveatConfigService_transaction"/>
|
||||
<idref bean="CaveatConfigService_security"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
</list>
|
||||
</property>
|
||||
@@ -1484,9 +1484,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="DataSetService_transaction"/>
|
||||
<idref bean="DataSetService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="DataSetService_security"/>
|
||||
<idref bean="DataSetService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -1546,9 +1546,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="HoldService_transaction"/>
|
||||
<idref bean="HoldService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="HoldService_security"/>
|
||||
<idref bean="HoldService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -1594,9 +1594,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RelationshipService_transaction"/>
|
||||
<idref bean="RelationshipService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RelationshipService_security"/>
|
||||
<idref bean="RelationshipService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -1647,9 +1647,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordableVersionConfigService_transaction"/>
|
||||
<idref bean="RecordableVersionConfigService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordableVersionConfigService_security"/>
|
||||
<idref bean="RecordableVersionConfigService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<bean id="jsonConversionComponentCache" class="org.alfresco.repo.cache.DefaultSimpleCache" />
|
||||
|
||||
|
@@ -1,9 +1,10 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- Recordable Version Model -->
|
||||
<!-- Recordable Version Model -->
|
||||
<bean id="org_alfresco_module_rm_version_dictionaryBootstrap" parent="dictionaryModelBootstrap">
|
||||
<property name="models">
|
||||
<list>
|
||||
@@ -64,9 +65,9 @@
|
||||
<property name="target" ref="versionService"/>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="RecordableVersionService_transaction"/>
|
||||
<idref bean="RecordableVersionService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="RecordableVersionService_security"/>
|
||||
<idref bean="RecordableVersionService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- Abstract parent bean for many RM get and post beans -->
|
||||
<bean id="rmBaseWebscript" parent="webscript" abstract="true">
|
||||
|
@@ -1,6 +1,9 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<bean id="rm.workflowBootstrap" parent="workflowDeployer">
|
||||
<property name="workflowDefinitions">
|
||||
<!-- Request info workflow definition -->
|
||||
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<bean id="rm-method-security-properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
|
||||
<property name="locations">
|
||||
|
59
rm-community/rm-community-repo/docker-compose.yml
Normal file
59
rm-community/rm-community-repo/docker-compose.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
version: "3"
|
||||
|
||||
# For remote debug we need the CATALINA_OPTS and to expose port 8000.
|
||||
|
||||
services:
|
||||
alfresco:
|
||||
# acs repo community image with ags repo community amp applied
|
||||
image: alfresco/ags-repo-community:latest
|
||||
environment:
|
||||
CATALINA_OPTS : "
|
||||
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
|
||||
"
|
||||
JAVA_OPTS : "
|
||||
-Ddb.driver=org.postgresql.Driver
|
||||
-Ddb.username=alfresco
|
||||
-Ddb.password=alfresco
|
||||
-Ddb.url=jdbc:postgresql://postgres:5432/alfresco
|
||||
-Dsolr.host=solr6
|
||||
-Dsolr.port=8983
|
||||
-Dsolr.secureComms=none
|
||||
-Dsolr.base.url=/solr
|
||||
-Dindex.subsystem.name=solr6
|
||||
-Dalfresco.restApi.basicAuthScheme=true
|
||||
-Dimap.server.enabled=true
|
||||
-Dftp.enabled=true
|
||||
-Dftp.dataPortFrom=30000
|
||||
-Dftp.dataPortTo=30099
|
||||
-Dcifs.enabled=true
|
||||
"
|
||||
ports:
|
||||
- 8080:8080
|
||||
- 8000:8000
|
||||
- 445:445
|
||||
- 143:143
|
||||
- "21:21"
|
||||
- "30000-30099:30000-30099"
|
||||
|
||||
postgres:
|
||||
image: library/postgres:10.1
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=alfresco
|
||||
- POSTGRES_USER=alfresco
|
||||
- POSTGRES_DB=alfresco
|
||||
ports:
|
||||
- 5432:5432
|
||||
|
||||
solr6:
|
||||
image: alfresco/alfresco-search-services:1.1.1
|
||||
environment:
|
||||
#Solr needs to know how to register itself with Alfresco
|
||||
- SOLR_ALFRESCO_HOST=alfresco
|
||||
- SOLR_ALFRESCO_PORT=8080
|
||||
#Alfresco needs to know how to call solr
|
||||
- SOLR_SOLR_HOST=solr6
|
||||
- SOLR_SOLR_PORT=8983
|
||||
#Create the default alfresco and archive cores
|
||||
- SOLR_CREATE_ALFRESCO_DEFAULTS=alfresco,archive
|
||||
ports:
|
||||
- 8083:8983 #Browser port
|
@@ -9,23 +9,30 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-rm-community</artifactId>
|
||||
<version>2.7.1-SNAPSHOT</version>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
|
||||
<alfresco.data.location>${basedir}/target/alf_test_data</alfresco.data.location>
|
||||
<alfresco.db.hibernate.dialect>org.hibernate.dialect.H2Dialect</alfresco.db.hibernate.dialect>
|
||||
<alfresco.db.hibernate.dialect>org.alfresco.repo.domain.dialect.MySQLInnoDBDialect</alfresco.db.hibernate.dialect>
|
||||
<alfresco.db.name>alfresco</alfresco.db.name>
|
||||
<alfresco.db.username>alfresco</alfresco.db.username>
|
||||
<alfresco.db.password>alfresco</alfresco.db.password>
|
||||
<alfresco.db.host>localhost</alfresco.db.host>
|
||||
<alfresco.test.db.name>alfresco-test</alfresco.test.db.name>
|
||||
<alfresco.repo.artifactId>alfresco-platform</alfresco.repo.artifactId>
|
||||
<alfresco.postgres.version>9.1-901.jdbc4</alfresco.postgres.version>
|
||||
<alfresco.mysql.version>5.1.31</alfresco.mysql.version>
|
||||
<alfresco.rm.artifactId>alfresco-rm-community-repo</alfresco.rm.artifactId>
|
||||
<skip.integrationtests>true</skip.integrationtests>
|
||||
<alfresco.solr.home>${project.build.directory}/solr/home</alfresco.solr.home>
|
||||
<api.explorer.version>1.4</api.explorer.version>
|
||||
|
||||
<!-- 6.0 changes -->
|
||||
<dependency.alfresco-core.version>7.3</dependency.alfresco-core.version>
|
||||
<dependency.alfresco-repository.version>6.55</dependency.alfresco-repository.version>
|
||||
<dependency.alfresco-remote-api.version>6.38</dependency.alfresco-remote-api.version>
|
||||
<alfresco.alfresco-share-services.version>6.0.b</alfresco.alfresco-share-services.version>
|
||||
<image.name>alfresco/ags-repo-community</image.name>
|
||||
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
@@ -120,17 +127,71 @@
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!--Docker Maven Plugin-->
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>${fabric8.docker.version}</version>
|
||||
<configuration>
|
||||
<images>
|
||||
<image>
|
||||
<alias>test-database</alias>
|
||||
<name>postgres:9.4.12</name>
|
||||
<run>
|
||||
<ports>
|
||||
<port>${database.port}:${postgresql.port}</port>
|
||||
</ports>
|
||||
<env>
|
||||
<POSTGRES_PASSWORD>${alfresco.db.password}</POSTGRES_PASSWORD>
|
||||
<POSTGRES_USER>${alfresco.db.username}</POSTGRES_USER>
|
||||
<POSTGRES_DB>${alfresco.test.db.name}</POSTGRES_DB>
|
||||
</env>
|
||||
<cmd>
|
||||
<shell>-c max_connections=300</shell>
|
||||
</cmd>
|
||||
<wait>
|
||||
<log>database system is ready to accept connections</log>
|
||||
<time>20000</time>
|
||||
</wait>
|
||||
</run>
|
||||
</image>
|
||||
</images>
|
||||
<skip>${skip.integrationtests}</skip>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>start</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<goals>
|
||||
<goal>start</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>stop</id>
|
||||
<phase>post-integration-test</phase>
|
||||
<goals>
|
||||
<goal>stop</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>integration-tests</id>
|
||||
<phase>integration-test</phase>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<systemPropertyVariables>
|
||||
<db.name>${alfresco.test.db.name}</db.name>
|
||||
<db.driver>org.postgresql.Driver</db.driver>
|
||||
<db.url>jdbc:postgresql://localhost:${database.port}/${alfresco.test.db.name}</db.url>
|
||||
<dir.root>${project.build.directory}/alf-data-test</dir.root>
|
||||
</systemPropertyVariables>
|
||||
<skipTests>${skip.integrationtests}</skipTests>
|
||||
<includes>
|
||||
<include>**/AllTestSuite.class</include>
|
||||
@@ -157,7 +218,7 @@
|
||||
<artifactItem>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-share-services</artifactId>
|
||||
<version>${share.version}</version>
|
||||
<version>${alfresco.alfresco-share-services.version}</version>
|
||||
<type>amp</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
@@ -175,7 +236,7 @@
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>${app.amp.client.war.artifactId}</artifactId>
|
||||
<artifactId>content-services-community</artifactId>
|
||||
<type>war</type>
|
||||
<version>${alfresco.version}</version>
|
||||
</artifactItem>
|
||||
@@ -214,7 +275,7 @@
|
||||
<phase>prepare-package</phase>
|
||||
<configuration>
|
||||
<backup>true</backup>
|
||||
<ampLocation>${project.build.directory}/alfresco-share-services-${share.version}.amp</ampLocation>
|
||||
<ampLocation>${project.build.directory}/alfresco-share-services-${alfresco.alfresco-share-services.version}.amp</ampLocation>
|
||||
<warLocation>${app.amp.client.war.folder}</warLocation>
|
||||
</configuration>
|
||||
</execution>
|
||||
@@ -298,14 +359,47 @@
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-remote-api</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<version>${dependency.alfresco-remote-api.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<version>${dependency.alfresco-repository.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<version>${dependency.alfresco-repository.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-remote-api</artifactId>
|
||||
<version>${dependency.alfresco-remote-api.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-core</artifactId>
|
||||
<version>${dependency.alfresco-core.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.alfresco.surf</groupId>
|
||||
<artifactId>spring-webscripts</artifactId>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.takari.junit</groupId>
|
||||
<artifactId>takari-cpsuite</artifactId>
|
||||
@@ -317,41 +411,9 @@
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.alfresco.surf</groupId>
|
||||
<artifactId>spring-webscripts</artifactId>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-all</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<version>2.5</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-remote-api</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>${alfresco.postgres.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@@ -359,19 +421,6 @@
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>h2scripts</classifier>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>*</groupId>
|
||||
<artifactId>*</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.reflections</groupId>
|
||||
<artifactId>reflections</artifactId>
|
||||
@@ -382,25 +431,61 @@
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-parser</artifactId>
|
||||
<version>1.0.23</version>
|
||||
<version>1.0.35</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.github.fge/json-schema-validator -->
|
||||
<dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.fge</groupId>
|
||||
<artifactId>json-schema-validator</artifactId>
|
||||
<version>2.2.6</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-all</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-joda</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
||||
<artifactId>jackson-dataformat-yaml</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
|
||||
<profile>
|
||||
<id>use-mysql</id>
|
||||
<properties>
|
||||
<alfresco.db.name>${my.db.name}</alfresco.db.name>
|
||||
<alfresco.db.port>${my.db.port}</alfresco.db.port>
|
||||
<alfresco.db.hibernate.dialect>org.hibernate.dialect.MySQLInnoDBDialect</alfresco.db.hibernate.dialect>
|
||||
<alfresco.db.hibernate.dialect>org.alfresco.repo.domain.dialect.MySQLInnoDBDialect</alfresco.db.hibernate.dialect>
|
||||
<alfresco.db.params />
|
||||
<alfresco.db.master.url>jdbc:mysql://${alfresco.db.host}:${alfresco.db.port}/${alfresco.db.name}</alfresco.db.master.url>
|
||||
<alfresco.db.url>jdbc:mysql://${alfresco.db.host}:${alfresco.db.port}/${alfresco.db.name}</alfresco.db.url>
|
||||
@@ -412,7 +497,7 @@
|
||||
<properties>
|
||||
<alfresco.db.name>${my.db.name}</alfresco.db.name>
|
||||
<alfresco.db.port>${my.db.port}</alfresco.db.port>
|
||||
<alfresco.db.hibernate.dialect>org.hibernate.dialect.PostgreSQLDialect</alfresco.db.hibernate.dialect>
|
||||
<alfresco.db.hibernate.dialect>org.alfresco.repo.domain.dialect.PostgreSQLDialect</alfresco.db.hibernate.dialect>
|
||||
<alfresco.db.params />
|
||||
<alfresco.db.master.url>jdbc:postgresql:template1</alfresco.db.master.url>
|
||||
<alfresco.db.url>jdbc:postgresql:${alfresco.db.name}</alfresco.db.url>
|
||||
@@ -438,32 +523,13 @@
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>${alfresco.repo.artifactId}</artifactId>
|
||||
<artifactId>content-services-community</artifactId>
|
||||
<type>war</type>
|
||||
<version>${alfresco.version}</version>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>unpack-alfresco-config</id>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<phase>generate-resources</phase>
|
||||
<configuration>
|
||||
<outputDirectory>${alfresco.solr.home}</outputDirectory>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<artifactId>alfresco-solr4</artifactId>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<classifier>config</classifier>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>zip</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
@@ -482,74 +548,6 @@
|
||||
<includeWebResources>false</includeWebResources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>regex-property</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>regex-property</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<name>solrHomePath</name>
|
||||
<value>${alfresco.solr.home}</value>
|
||||
<regex>\\</regex>
|
||||
<replacement>\\\\</replacement>
|
||||
<failIfNoMatch>false</failIfNoMatch>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.google.code.maven-replacer-plugin</groupId>
|
||||
<artifactId>replacer</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>setup-solr-config</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>replace</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<regex>false</regex>
|
||||
<includes>
|
||||
<include>${alfresco.solr.home}/context.xml</include>
|
||||
<include>${alfresco.solr.home}/archive-SpacesStore/conf/solrcore.properties</include>
|
||||
<include>${alfresco.solr.home}/workspace-SpacesStore/conf/solrcore.properties</include>
|
||||
<include>${app.amp.client.war.folder}/WEB-INF/web.xml</include>
|
||||
</includes>
|
||||
<replacements>
|
||||
<replacement>
|
||||
<token>@@ALFRESCO_SOLR4_DIR@@</token>
|
||||
<value>${solrHomePath}/</value>
|
||||
</replacement>
|
||||
<replacement>
|
||||
<token>@@ALFRESCO_SOLR4_MODEL_DIR@@</token>
|
||||
<value>${solrHomePath}/alfrescoModels/</value>
|
||||
</replacement>
|
||||
<replacement>
|
||||
<token>@@ALFRESCO_SOLR4_CONTENT_DIR@@</token>
|
||||
<value>${solrHomePath}/data/content/</value>
|
||||
</replacement>
|
||||
<replacement>
|
||||
<token>@@ALFRESCO_SOLR4_DATA_DIR@@</token>
|
||||
<value>${solrHomePath}/data/index/</value>
|
||||
</replacement>
|
||||
<replacement>
|
||||
<token><![CDATA[<!-- Toggle securecomms placeholder start -->]]></token>
|
||||
<value><![CDATA[<!--]]></value>
|
||||
</replacement>
|
||||
<replacement>
|
||||
<token><![CDATA[<!-- Toggle securecomms placeholder end -->]]></token>
|
||||
<value><![CDATA[-->]]></value>
|
||||
</replacement>
|
||||
</replacements>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.tomcat.maven</groupId>
|
||||
<artifactId>tomcat7-maven-plugin</artifactId>
|
||||
@@ -570,15 +568,6 @@
|
||||
<delegate>false</delegate>
|
||||
<contextFile>${project.basedir}/tomcat/context.xml</contextFile>
|
||||
<webapps>
|
||||
<webapp>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-solr4</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>war</type>
|
||||
<asWebapp>true</asWebapp>
|
||||
<contextPath>/solr4</contextPath>
|
||||
<contextFile>${alfresco.solr.home}/context.xml</contextFile>
|
||||
</webapp>
|
||||
<webapp>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>api-explorer</artifactId>
|
||||
@@ -608,26 +597,13 @@
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${alfresco.mysql.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>h2scripts</classifier>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>*</groupId>
|
||||
<artifactId>*</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
<version>${mysql.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<profile>
|
||||
<id>wipeDB</id>
|
||||
<build>
|
||||
@@ -651,7 +627,7 @@
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${alfresco.mysql.version}</version>
|
||||
<version>${mysql.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<executions>
|
||||
@@ -680,5 +656,50 @@
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<!--Docker profiles used to build specific docker images for community repo, defined in parent pom -->
|
||||
<profile>
|
||||
<id>buildDockerImage</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>fabric8-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>internal</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>fabric8-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>master</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>fabric8-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>release</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>fabric8-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
@@ -237,7 +237,7 @@ public class ApiNodesModelFactory
|
||||
}
|
||||
if (includeParam.contains(RMNode.PARAM_PATH))
|
||||
{
|
||||
rmNode.setPath(apiUtils.lookupPathInfo(info.getNodeRef()));
|
||||
rmNode.setPath(nodes.lookupPathInfo(info.getNodeRef(), null));
|
||||
}
|
||||
if (isMinimalInfo && includeParam.contains(RMNode.PARAM_ASPECT_NAMES))
|
||||
{
|
||||
|
@@ -39,12 +39,14 @@ import java.io.Serializable;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
import net.sf.acegisecurity.vote.AccessDecisionVoter;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.capability.CapabilityService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService;
|
||||
@@ -108,9 +110,6 @@ import org.alfresco.util.ParameterCheck;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.social.InternalServerErrorException;
|
||||
|
||||
import net.sf.acegisecurity.vote.AccessDecisionVoter;
|
||||
|
||||
/**
|
||||
* Utility class that handles common api endpoint tasks
|
||||
@@ -611,7 +610,7 @@ public class FilePlanComponentsApiUtils
|
||||
else
|
||||
{
|
||||
// Throw internal error as this method should not be called for other types
|
||||
throw new InternalServerErrorException("Creating relative path of type '" + nodesType + "' not suported for this endpoint");
|
||||
throw new InvalidArgumentException("Creating relative path of type '" + nodesType + "' not suported for this endpoint");
|
||||
}
|
||||
|
||||
return lastNodeRef;
|
||||
@@ -949,56 +948,6 @@ public class FilePlanComponentsApiUtils
|
||||
return allowableOperations;
|
||||
}
|
||||
|
||||
protected PathInfo lookupPathInfo(NodeRef nodeRefIn)
|
||||
{
|
||||
List<ElementInfo> pathElements = new ArrayList<>();
|
||||
Boolean isComplete = Boolean.TRUE;
|
||||
final Path nodePath = nodeService.getPath(nodeRefIn);;
|
||||
final int pathIndex = 2;
|
||||
|
||||
for (int i = nodePath.size() - pathIndex; i >= 0; i--)
|
||||
{
|
||||
Element element = nodePath.get(i);
|
||||
if (element instanceof Path.ChildAssocElement)
|
||||
{
|
||||
ChildAssociationRef elementRef = ((Path.ChildAssocElement) element).getRef();
|
||||
if (elementRef.getParentRef() != null)
|
||||
{
|
||||
NodeRef childNodeRef = elementRef.getChildRef();
|
||||
if (permissionService.hasPermission(childNodeRef, PermissionService.READ) == AccessStatus.ALLOWED)
|
||||
{
|
||||
Serializable nameProp = nodeService.getProperty(childNodeRef, ContentModel.PROP_NAME);
|
||||
pathElements.add(0, new ElementInfo(childNodeRef.getId(), nameProp.toString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Just return the pathInfo up to the location where the user has access
|
||||
isComplete = Boolean.FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String pathStr = null;
|
||||
if (!pathElements.isEmpty())
|
||||
{
|
||||
StringBuilder sb = new StringBuilder(120);
|
||||
for (PathInfo.ElementInfo e : pathElements)
|
||||
{
|
||||
sb.append("/").append(e.getName());
|
||||
}
|
||||
pathStr = sb.toString();
|
||||
}
|
||||
else
|
||||
{
|
||||
// There is no path element, so set it to null in order to be
|
||||
// ignored by Jackson during serialisation
|
||||
isComplete = null;
|
||||
}
|
||||
return new PathInfo(pathStr, isComplete, pathElements);
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to obtain file plan type or null if the rm site does not exist.
|
||||
*
|
||||
|
@@ -31,6 +31,8 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import org.alfresco.rest.api.model.Assoc;
|
||||
import org.alfresco.rest.api.model.PathInfo;
|
||||
import org.alfresco.rest.api.model.UserInfo;
|
||||
@@ -103,6 +105,7 @@ public abstract class RMNode
|
||||
|
||||
}
|
||||
|
||||
@JsonProperty ("id")
|
||||
@UniqueId
|
||||
public NodeRef getNodeRef()
|
||||
{
|
||||
|
@@ -31,6 +31,8 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import org.alfresco.rest.api.model.UserInfo;
|
||||
import org.alfresco.rest.framework.resource.UniqueId;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
@@ -67,6 +69,7 @@ public class Transfer
|
||||
{
|
||||
}
|
||||
|
||||
@JsonProperty ("id")
|
||||
@UniqueId
|
||||
public NodeRef getNodeRef()
|
||||
{
|
||||
|
@@ -31,6 +31,8 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import org.alfresco.rest.api.model.UserInfo;
|
||||
import org.alfresco.rest.framework.resource.UniqueId;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
@@ -60,6 +62,7 @@ public class TransferContainer
|
||||
{
|
||||
}
|
||||
|
||||
@JsonProperty ("id")
|
||||
@UniqueId
|
||||
public NodeRef getNodeRef()
|
||||
{
|
||||
|
@@ -28,6 +28,7 @@
|
||||
package org.alfresco.rm.rest.api.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
/**
|
||||
* Abstract class carrying information for an unfiled container or unfiled record folder child
|
||||
@@ -43,6 +44,7 @@ public abstract class UnfiledChild extends RMNode
|
||||
protected Boolean isUnfiledRecordFolder;
|
||||
protected Boolean isRecord;
|
||||
|
||||
@JsonProperty (PARAM_IS_UNFILED_RECORD_FOLDER)
|
||||
public Boolean getIsUnfiledRecordFolder()
|
||||
{
|
||||
return isUnfiledRecordFolder;
|
||||
@@ -54,6 +56,7 @@ public abstract class UnfiledChild extends RMNode
|
||||
this.isUnfiledRecordFolder = isUnfiledRecordFolder;
|
||||
}
|
||||
|
||||
@JsonProperty (PARAM_IS_RECORD)
|
||||
public Boolean getIsRecord()
|
||||
{
|
||||
return isRecord;
|
||||
|
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Records Management Module
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2018 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* -
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
* -
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* -
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
* -
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.rm.rest.api.util;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.joda.time.format.ISODateTimeFormat;
|
||||
|
||||
/**
|
||||
* Custom Date Time serializer for formatting org.joda.time.DateTime
|
||||
*
|
||||
* @author Rodica Sutu
|
||||
* @since 3.0
|
||||
*/
|
||||
public class CustomDateTimeSerializer extends StdSerializer<DateTime>
|
||||
{
|
||||
/** Date time format */
|
||||
private final static DateTimeFormatter DATE_TIME_FORMAT = ISODateTimeFormat.dateTime();
|
||||
|
||||
public CustomDateTimeSerializer()
|
||||
{
|
||||
super(DateTime.class);
|
||||
}
|
||||
|
||||
protected CustomDateTimeSerializer(Class<DateTime> t)
|
||||
{
|
||||
super(t);
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom serialize method to convert the org.joda.time.DateTime into string value using the DATE_TIME_FORMAT
|
||||
*
|
||||
* @param value datetime value
|
||||
* @param jgen
|
||||
* @param provider
|
||||
* @throws IOException
|
||||
*/
|
||||
@Override
|
||||
public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException
|
||||
{
|
||||
jgen.writeString(DATE_TIME_FORMAT.print(value));
|
||||
}
|
||||
}
|
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Records Management Module
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2018 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* -
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
* -
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* -
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
* -
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.rm.rest.api.util;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonParser;
|
||||
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.joda.time.format.ISODateTimeFormat;
|
||||
|
||||
|
||||
/**
|
||||
* Custom Local Date deserializer converting a string to org.joda.time.LocalDate when the time is optional;
|
||||
*
|
||||
* @author Rodica Sutu
|
||||
* @since 3.0
|
||||
*/
|
||||
public class CustomLocalDateDeserializer extends StdDeserializer<LocalDate>
|
||||
{
|
||||
/** Date time format with time optional */
|
||||
private final static DateTimeFormatter LOCAL_DATE_OPTIONAL_TIME_PARSER = ISODateTimeFormat.localDateOptionalTimeParser();
|
||||
|
||||
public CustomLocalDateDeserializer()
|
||||
{
|
||||
super(LocalDate.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom deserialize method to convert string to the org.joda.time.LocalDate type with LOCAL_DATE_OPTIONAL_TIME_PARSER
|
||||
*
|
||||
* @param jp local date value
|
||||
* @param ctxt
|
||||
* @throws IOException
|
||||
*/
|
||||
@Override
|
||||
public LocalDate deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException
|
||||
{
|
||||
String str = jp.getText().trim();
|
||||
if (str.length() == 0)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return LOCAL_DATE_OPTIONAL_TIME_PARSER.parseLocalDate(str);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Records Management Module
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2018 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* -
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
* -
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* -
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
* -
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.rm.rest.api.util;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.joda.time.format.ISODateTimeFormat;
|
||||
|
||||
/**
|
||||
* Custom Local Date serializer for formatting org.joda.time.LocalDate
|
||||
*
|
||||
* @author Rodica Sutu
|
||||
* @since 3.0
|
||||
*/
|
||||
public class CustomLocalDateSerializer extends StdSerializer<LocalDate>
|
||||
{
|
||||
/** Local date format yyyy-MM-dd*/
|
||||
private final static DateTimeFormatter DATE_FORMAT = ISODateTimeFormat.date();
|
||||
|
||||
public CustomLocalDateSerializer()
|
||||
{
|
||||
super(LocalDate.class);
|
||||
}
|
||||
|
||||
protected CustomLocalDateSerializer(Class<LocalDate> t)
|
||||
{
|
||||
super(t);
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom serialize method to convert the org.joda.time.LocalDate into string value using the DATE_FORMAT
|
||||
*
|
||||
* @param value local date value
|
||||
* @param jgen
|
||||
* @param provider
|
||||
* @throws IOException
|
||||
*/
|
||||
@Override
|
||||
public void serialize(LocalDate value, JsonGenerator jgen, SerializerProvider provider) throws IOException
|
||||
{
|
||||
jgen.writeString(DATE_FORMAT.print(value));
|
||||
}
|
||||
}
|
@@ -65,5 +65,9 @@ cifs.enabled=false
|
||||
ftp.enabled=false
|
||||
|
||||
# Solr config
|
||||
index.subsystem.name=solr4
|
||||
solr.secureComms=none
|
||||
index.subsystem.name=solr6
|
||||
solr.secureComms=none
|
||||
solr.port=8983
|
||||
|
||||
#By default the basic auth is on false - REPO-2575
|
||||
alfresco.restApi.basicAuthScheme=true
|
@@ -1,137 +0,0 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Records Management Module
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2018 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* -
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
* -
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* -
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
* -
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
|
||||
package org.alfresco.module.org_alfresco_module_rm.test.integration.job;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.alfresco.module.org_alfresco_module_rm.action.impl.CutOffAction;
|
||||
import org.alfresco.module.org_alfresco_module_rm.audit.RecordsManagementAuditService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionAction;
|
||||
import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionSchedule;
|
||||
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
|
||||
import org.alfresco.module.org_alfresco_module_rm.test.util.CommonRMTestUtils;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.alfresco.util.GUID;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
|
||||
/**
|
||||
* Test automatic disposition via scheduled job.
|
||||
*
|
||||
* @author Roy Wetherall
|
||||
* @since 2.2
|
||||
*/
|
||||
public class AutomaticDispositionTest extends BaseRMTestCase
|
||||
{
|
||||
@SuppressWarnings("unused")
|
||||
private RecordsManagementAuditService auditService;
|
||||
|
||||
/** additional job context to override job frequency */
|
||||
protected String[] getConfigLocations()
|
||||
{
|
||||
return ArrayUtils.add(super.getConfigLocations(), "classpath:test-job-context.xml");
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase#initServices()
|
||||
*/
|
||||
@Override
|
||||
protected void initServices()
|
||||
{
|
||||
super.initServices();
|
||||
auditService = (RecordsManagementAuditService)applicationContext.getBean("recordsManagementAuditService");
|
||||
}
|
||||
|
||||
/**
|
||||
* Given there is a complete record eligible for cut off, when the correct frequency of time passes, then
|
||||
* the record will be automatically cut off
|
||||
*/
|
||||
public void testAutomaticCutOff()
|
||||
{
|
||||
doBehaviourDrivenTest(new BehaviourDrivenTest()
|
||||
{
|
||||
NodeRef sourceCategory;
|
||||
NodeRef sourceRecordFolder;
|
||||
NodeRef record;
|
||||
|
||||
public void given()
|
||||
{
|
||||
// create test data
|
||||
sourceCategory = filePlanService.createRecordCategory(filePlan, GUID.generate());
|
||||
DispositionSchedule dis = utils.createBasicDispositionSchedule(sourceCategory, GUID.generate(), GUID.generate(), true, false);
|
||||
Map<QName, Serializable> adParams = new HashMap<QName, Serializable>(3);
|
||||
adParams.put(PROP_DISPOSITION_ACTION_NAME, CutOffAction.NAME);
|
||||
adParams.put(PROP_DISPOSITION_DESCRIPTION, GUID.generate());
|
||||
adParams.put(PROP_DISPOSITION_PERIOD, CommonRMTestUtils.PERIOD_IMMEDIATELY);
|
||||
dispositionService.addDispositionActionDefinition(dis, adParams);
|
||||
sourceRecordFolder = recordFolderService.createRecordFolder(sourceCategory, GUID.generate());
|
||||
|
||||
// create and complete record
|
||||
record = utils.createRecord(sourceRecordFolder, GUID.generate());
|
||||
utils.completeRecord(record);
|
||||
|
||||
// check the disposition action details
|
||||
DispositionAction dispositionAction = dispositionService.getNextDispositionAction(record);
|
||||
assertNotNull(dispositionAction);
|
||||
assertNotNull(CutOffAction.NAME, dispositionAction.getName());
|
||||
assertTrue(dispositionService.isNextDispositionActionEligible(record));
|
||||
}
|
||||
|
||||
public void when() throws Exception
|
||||
{
|
||||
// sleep .. allowing the job time to execute
|
||||
Thread.sleep(30000);
|
||||
}
|
||||
|
||||
public void then()
|
||||
{
|
||||
// record should now be cut off
|
||||
assertTrue(dispositionService.isDisposableItemCutoff(record));
|
||||
|
||||
// TODO .. automatic dispoistion does not log entry in audit
|
||||
// .. the following test checks for this, but is currently commented out
|
||||
// .. because it doesn't work!
|
||||
// RecordsManagementAuditQueryParameters params = new RecordsManagementAuditQueryParameters();
|
||||
// params.setEvent(CutOffAction.NAME);
|
||||
// params.setMaxEntries(1);
|
||||
// List<RecordsManagementAuditEntry> entries = auditService.getAuditTrail(params);
|
||||
// assertNotNull(entries);
|
||||
// assertEquals(1, entries.size());
|
||||
//
|
||||
// RecordsManagementAuditEntry entry = entries.get(0);
|
||||
// assertEquals(record, entry.getNodeRef());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// TODO automatic retain
|
||||
|
||||
// TODO automatic destroy
|
||||
}
|
@@ -1,621 +0,0 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Records Management Module
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2018 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* -
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
* -
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* -
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
* -
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
|
||||
package org.alfresco.module.org_alfresco_module_rm.test.legacy.service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.transaction.UserTransaction;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.module.org_alfresco_module_rm.caveat.RMCaveatConfigService;
|
||||
import org.alfresco.module.org_alfresco_module_rm.caveat.RMCaveatConfigServiceImpl;
|
||||
import org.alfresco.module.org_alfresco_module_rm.dod5015.DOD5015Model;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
import org.alfresco.service.cmr.security.AuthorityService;
|
||||
import org.alfresco.service.cmr.security.AuthorityType;
|
||||
import org.alfresco.service.cmr.security.MutableAuthenticationService;
|
||||
import org.alfresco.service.cmr.security.PersonService;
|
||||
import org.alfresco.service.transaction.TransactionService;
|
||||
import org.alfresco.util.BaseSpringTest;
|
||||
import org.alfresco.util.PropertyMap;
|
||||
|
||||
/**
|
||||
* Test of RM Caveat (Admin facing scripts)
|
||||
*
|
||||
* @author Mark Rogers
|
||||
*/
|
||||
public class RMCaveatConfigServiceImplTest extends BaseSpringTest implements DOD5015Model
|
||||
{
|
||||
protected static StoreRef SPACES_STORE = new StoreRef(StoreRef.PROTOCOL_WORKSPACE, "SpacesStore");
|
||||
|
||||
private NodeRef filePlan;
|
||||
|
||||
private NodeService nodeService;
|
||||
private TransactionService transactionService;
|
||||
private RMCaveatConfigService caveatConfigService;
|
||||
|
||||
private MutableAuthenticationService authenticationService;
|
||||
private PersonService personService;
|
||||
private AuthorityService authorityService;
|
||||
|
||||
|
||||
// example base test data for supplemental markings list
|
||||
protected final static String NOFORN = "NOFORN"; // Not Releasable to Foreign Nationals/Governments/Non-US Citizens
|
||||
protected final static String NOCONTRACT = "NOCONTRACT"; // Not Releasable to Contractors or Contractor/Consultants
|
||||
protected final static String FOUO = "FOUO"; // For Official Use Only
|
||||
protected final static String FGI = "FGI"; // Foreign Government Information
|
||||
|
||||
protected final static String RM_LIST = "rmc:smList"; // existing pre-defined list
|
||||
protected final static String RM_LIST_ALT = "rmc:anoList";
|
||||
|
||||
@Override
|
||||
protected void onSetUpInTransaction() throws Exception
|
||||
{
|
||||
super.onSetUpInTransaction();
|
||||
|
||||
// Get the service required in the tests
|
||||
this.nodeService = (NodeService)this.applicationContext.getBean("NodeService"); // use upper 'N'odeService (to test access config interceptor)
|
||||
this.authenticationService = (MutableAuthenticationService)this.applicationContext.getBean("AuthenticationService");
|
||||
this.personService = (PersonService)this.applicationContext.getBean("PersonService");
|
||||
this.authorityService = (AuthorityService)this.applicationContext.getBean("AuthorityService");
|
||||
this.caveatConfigService = (RMCaveatConfigServiceImpl)this.applicationContext.getBean("caveatConfigService");
|
||||
this.transactionService = (TransactionService)this.applicationContext.getBean("TransactionService");
|
||||
|
||||
|
||||
// Set the current security context as admin
|
||||
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
|
||||
|
||||
// Get the test data
|
||||
setUpTestData();
|
||||
}
|
||||
|
||||
private void setUpTestData()
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onTearDownInTransaction() throws Exception
|
||||
{
|
||||
try
|
||||
{
|
||||
UserTransaction txn = transactionService.getUserTransaction(false);
|
||||
txn.begin();
|
||||
this.nodeService.deleteNode(filePlan);
|
||||
txn.commit();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// Nothing
|
||||
//System.out.println("DID NOT DELETE FILE PLAN!");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onTearDownAfterTransaction() throws Exception
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
super.onTearDownAfterTransaction();
|
||||
}
|
||||
|
||||
public void testSetup()
|
||||
{
|
||||
// NOOP
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test of Caveat Config
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testAddRMConstraintList() throws Exception
|
||||
{
|
||||
setComplete();
|
||||
endTransaction();
|
||||
|
||||
cleanCaveatConfigData();
|
||||
|
||||
startNewTransaction();
|
||||
|
||||
/**
|
||||
* Now remove the entire list (rma:smList);
|
||||
*/
|
||||
logger.debug("test remove entire list rmc:smList");
|
||||
caveatConfigService.deleteRMConstraint(RM_LIST);
|
||||
|
||||
/**
|
||||
* Now add the list again
|
||||
*/
|
||||
logger.debug("test add back rmc:smList");
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
|
||||
/**
|
||||
* Negative test - add a list that already exists
|
||||
*/
|
||||
logger.debug("try to create duplicate list rmc:smList");
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
|
||||
/**
|
||||
* Negative test - remove a list that does not exist
|
||||
*/
|
||||
logger.debug("test remove entire list rmc:smList");
|
||||
caveatConfigService.deleteRMConstraint(RM_LIST);
|
||||
try
|
||||
{
|
||||
caveatConfigService.deleteRMConstraint(RM_LIST);
|
||||
fail("unknown constraint should have thrown an exception");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// expect to go here
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Negative test - add a constraint to property that does not exist
|
||||
*/
|
||||
logger.debug("test property does not exist");
|
||||
try
|
||||
{
|
||||
caveatConfigService.addRMConstraint("rma:mer", "", new String[0]);
|
||||
fail("unknown property should have thrown an exception");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// expect to go here
|
||||
}
|
||||
endTransaction();
|
||||
cleanCaveatConfigData();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of addRMConstraintListValue
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testAddRMConstraintListValue() throws Exception
|
||||
{
|
||||
setComplete();
|
||||
endTransaction();
|
||||
|
||||
cleanCaveatConfigData();
|
||||
setupCaveatConfigData();
|
||||
|
||||
startNewTransaction();
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
|
||||
/**
|
||||
* Add a user to the list
|
||||
*/
|
||||
List<String> values = new ArrayList<String>();
|
||||
values.add(NOFORN);
|
||||
values.add(NOCONTRACT);
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "jrogers", values);
|
||||
|
||||
/**
|
||||
* Add another value to that list
|
||||
*/
|
||||
caveatConfigService.addRMConstraintListValue(RM_LIST, "jrogers", FGI);
|
||||
|
||||
/**
|
||||
* Negative test - attempt to add a duplicate value
|
||||
*/
|
||||
caveatConfigService.addRMConstraintListValue(RM_LIST, "jrogers", FGI);
|
||||
|
||||
/**
|
||||
* Negative test - attempt to add to a list that does not exist
|
||||
*/
|
||||
try
|
||||
{
|
||||
caveatConfigService.addRMConstraintListValue(RM_LIST_ALT, "mhouse", FGI);
|
||||
fail("exception not thrown");
|
||||
}
|
||||
catch (Exception re)
|
||||
{
|
||||
// should go here
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Negative test - attempt to add to a list that does exist and user that does not exist
|
||||
*/
|
||||
try
|
||||
{
|
||||
caveatConfigService.addRMConstraintListValue(RM_LIST, "mhouse", FGI);
|
||||
fail("exception not thrown");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// should go here
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test of UpdateRMConstraintListAuthority
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testUpdateRMConstraintListAuthority() throws Exception
|
||||
{
|
||||
setComplete();
|
||||
endTransaction();
|
||||
|
||||
cleanCaveatConfigData();
|
||||
setupCaveatConfigData();
|
||||
|
||||
startNewTransaction();
|
||||
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
|
||||
/**
|
||||
* Add a user to the list
|
||||
*/
|
||||
List<String> values = new ArrayList<String>();
|
||||
values.add(NOFORN);
|
||||
values.add(NOCONTRACT);
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "jrogers", values);
|
||||
|
||||
/**
|
||||
* Add to a authority that already exists
|
||||
* Should replace existing authority
|
||||
*/
|
||||
List<String> updatedValues = new ArrayList<String>();
|
||||
values.add(FGI);
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "jrogers", updatedValues);
|
||||
|
||||
/**
|
||||
* Add a group to the list
|
||||
*/
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "Engineering", values);
|
||||
|
||||
/**
|
||||
* Add to a list that does not exist
|
||||
* Should create a new list
|
||||
*/
|
||||
caveatConfigService.deleteRMConstraint(RM_LIST);
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "jrogers", values);
|
||||
|
||||
|
||||
/**
|
||||
* Add to a authority that already exists
|
||||
* Should replace existing authority
|
||||
*/
|
||||
|
||||
endTransaction();
|
||||
cleanCaveatConfigData();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of RemoveRMConstraintListAuthority
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testRemoveRMConstraintListAuthority() throws Exception
|
||||
{
|
||||
setComplete();
|
||||
endTransaction();
|
||||
|
||||
cleanCaveatConfigData();
|
||||
setupCaveatConfigData();
|
||||
|
||||
startNewTransaction();
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
|
||||
List<String> values = new ArrayList<String>();
|
||||
values.add(FGI);
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "jrogers", values);
|
||||
|
||||
/**
|
||||
* Remove a user from a list
|
||||
*/
|
||||
caveatConfigService.removeRMConstraintListAuthority(RM_LIST, "jrogers");
|
||||
|
||||
/**
|
||||
* Negative test - remove a user that does not exist
|
||||
*/
|
||||
caveatConfigService.removeRMConstraintListAuthority(RM_LIST, "jrogers");
|
||||
|
||||
/**
|
||||
* Negative test - remove a user from a list that does not exist.
|
||||
* Should create a new list
|
||||
*/
|
||||
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "jrogers", values);
|
||||
|
||||
endTransaction();
|
||||
cleanCaveatConfigData();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Test of Caveat Config
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public void testRMCaveatConfig() throws Exception
|
||||
{
|
||||
setComplete();
|
||||
endTransaction();
|
||||
|
||||
cleanCaveatConfigData();
|
||||
|
||||
startNewTransaction();
|
||||
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
|
||||
List<String> values = new ArrayList<String>();
|
||||
values.add(NOFORN);
|
||||
values.add(FOUO);
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "dfranco", values);
|
||||
|
||||
values.add(FGI);
|
||||
values.add(NOCONTRACT);
|
||||
caveatConfigService.updateRMConstraintListAuthority(RM_LIST, "dmartinz", values);
|
||||
|
||||
// Test list of allowed values for caveats
|
||||
|
||||
List<String> allowedValues = AuthenticationUtil.runAs(new RunAsWork<List<String>>()
|
||||
{
|
||||
public List<String> doWork()
|
||||
{
|
||||
// get allowed values for given caveat (for current user)
|
||||
return caveatConfigService.getRMAllowedValues(RM_LIST);
|
||||
}
|
||||
}, "dfranco");
|
||||
|
||||
assertEquals(2, allowedValues.size());
|
||||
assertTrue(allowedValues.contains(NOFORN));
|
||||
assertTrue(allowedValues.contains(FOUO));
|
||||
|
||||
|
||||
allowedValues = AuthenticationUtil.runAs(new RunAsWork<List<String>>()
|
||||
{
|
||||
public List<String> doWork()
|
||||
{
|
||||
// get allowed values for given caveat (for current user)
|
||||
return caveatConfigService.getRMAllowedValues(RM_LIST);
|
||||
}
|
||||
}, "dmartinz");
|
||||
|
||||
assertEquals(4, allowedValues.size());
|
||||
assertTrue(allowedValues.contains(NOFORN));
|
||||
assertTrue(allowedValues.contains(NOCONTRACT));
|
||||
assertTrue(allowedValues.contains(FOUO));
|
||||
assertTrue(allowedValues.contains(FGI));
|
||||
|
||||
/**
|
||||
//
|
||||
* Now remove the entire list (rma:smList);
|
||||
*/
|
||||
logger.debug("test remove entire list rmc:smList");
|
||||
caveatConfigService.deleteRMConstraint(RM_LIST);
|
||||
|
||||
|
||||
/**
|
||||
* Now add the list again
|
||||
*/
|
||||
logger.debug("test add back rmc:smList");
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
|
||||
/**
|
||||
* Negative test - add a list that already exists
|
||||
*/
|
||||
logger.debug("try to create duplicate list rmc:smList");
|
||||
caveatConfigService.addRMConstraint(RM_LIST, "my title", new String[0]);
|
||||
|
||||
/**
|
||||
* Negative test - remove a list that does not exist
|
||||
*/
|
||||
logger.debug("test remove entire list rmc:smList");
|
||||
caveatConfigService.deleteRMConstraint(RM_LIST);
|
||||
try
|
||||
{
|
||||
caveatConfigService.deleteRMConstraint(RM_LIST);
|
||||
fail("unknown constraint should have thrown an exception");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// expect to go here
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Negative test - add a constraint to property that does not exist
|
||||
*/
|
||||
logger.debug("test property does not exist");
|
||||
try
|
||||
{
|
||||
caveatConfigService.addRMConstraint("rma:mer", "", new String[0]);
|
||||
fail("unknown property should have thrown an exception");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// expect to go here
|
||||
}
|
||||
endTransaction();
|
||||
cleanCaveatConfigData();
|
||||
}
|
||||
|
||||
private void cleanCaveatConfigData()
|
||||
{
|
||||
startNewTransaction();
|
||||
|
||||
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
|
||||
|
||||
deleteUser("jrangel");
|
||||
deleteUser("dmartinz");
|
||||
deleteUser("jrogers");
|
||||
deleteUser("hmcneil");
|
||||
deleteUser("dfranco");
|
||||
deleteUser("gsmith");
|
||||
deleteUser("eharris");
|
||||
deleteUser("bbayless");
|
||||
deleteUser("mhouse");
|
||||
deleteUser("aly");
|
||||
deleteUser("dsandy");
|
||||
deleteUser("driggs");
|
||||
deleteUser("test1");
|
||||
|
||||
deleteGroup("Engineering");
|
||||
deleteGroup("Finance");
|
||||
deleteGroup("test1");
|
||||
|
||||
caveatConfigService.updateOrCreateCaveatConfig("{}"); // empty config !
|
||||
|
||||
setComplete();
|
||||
endTransaction();
|
||||
}
|
||||
|
||||
private void setupCaveatConfigData()
|
||||
{
|
||||
startNewTransaction();
|
||||
|
||||
// Switch to admin
|
||||
AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
|
||||
|
||||
// Create test users/groups (if they do not already exist)
|
||||
|
||||
createUser("jrangel");
|
||||
createUser("dmartinz");
|
||||
createUser("jrogers");
|
||||
createUser("hmcneil");
|
||||
createUser("dfranco");
|
||||
createUser("gsmith");
|
||||
createUser("eharris");
|
||||
createUser("bbayless");
|
||||
createUser("mhouse");
|
||||
createUser("aly");
|
||||
createUser("dsandy");
|
||||
createUser("driggs");
|
||||
createUser("test1");
|
||||
|
||||
createGroup("Engineering");
|
||||
createGroup("Finance");
|
||||
createGroup("test1");
|
||||
|
||||
addToGroup("jrogers", "Engineering");
|
||||
addToGroup("dfranco", "Finance");
|
||||
|
||||
// not in grouo to start with - added later
|
||||
//addToGroup("gsmith", "Engineering");
|
||||
|
||||
|
||||
//URL url = AbstractContentTransformerTest.class.getClassLoader().getResource("testCaveatConfig2.json"); // from test-resources
|
||||
//assertNotNull(url);
|
||||
//File file = new File(url.getFile());
|
||||
//assertTrue(file.exists());
|
||||
|
||||
//caveatConfigService.updateOrCreateCaveatConfig(file);
|
||||
|
||||
setComplete();
|
||||
endTransaction();
|
||||
}
|
||||
|
||||
protected void createUser(String userName)
|
||||
{
|
||||
if (! authenticationService.authenticationExists(userName))
|
||||
{
|
||||
authenticationService.createAuthentication(userName, "PWD".toCharArray());
|
||||
}
|
||||
|
||||
if (! personService.personExists(userName))
|
||||
{
|
||||
PropertyMap ppOne = new PropertyMap(4);
|
||||
ppOne.put(ContentModel.PROP_USERNAME, userName);
|
||||
ppOne.put(ContentModel.PROP_FIRSTNAME, "firstName");
|
||||
ppOne.put(ContentModel.PROP_LASTNAME, "lastName");
|
||||
ppOne.put(ContentModel.PROP_EMAIL, "email@email.com");
|
||||
ppOne.put(ContentModel.PROP_JOBTITLE, "jobTitle");
|
||||
|
||||
personService.createPerson(ppOne);
|
||||
}
|
||||
}
|
||||
|
||||
protected void deleteUser(String userName)
|
||||
{
|
||||
if (personService.personExists(userName))
|
||||
{
|
||||
personService.deletePerson(userName);
|
||||
}
|
||||
}
|
||||
|
||||
protected void createGroup(String groupShortName)
|
||||
{
|
||||
createGroup(null, groupShortName);
|
||||
}
|
||||
|
||||
protected void createGroup(String parentGroupShortName, String groupShortName)
|
||||
{
|
||||
if (parentGroupShortName != null)
|
||||
{
|
||||
String parentGroupFullName = authorityService.getName(AuthorityType.GROUP, parentGroupShortName);
|
||||
if (!authorityService.authorityExists(parentGroupFullName))
|
||||
{
|
||||
authorityService.createAuthority(AuthorityType.GROUP, groupShortName, groupShortName, null);
|
||||
authorityService.addAuthority(parentGroupFullName, groupShortName);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
authorityService.createAuthority(AuthorityType.GROUP, groupShortName, groupShortName, null);
|
||||
}
|
||||
}
|
||||
|
||||
protected void deleteGroup(String groupShortName)
|
||||
{
|
||||
String groupFullName = authorityService.getName(AuthorityType.GROUP, groupShortName);
|
||||
if (authorityService.authorityExists(groupFullName))
|
||||
{
|
||||
authorityService.deleteAuthority(groupFullName);
|
||||
}
|
||||
}
|
||||
|
||||
protected void addToGroup(String authorityName, String groupShortName)
|
||||
{
|
||||
authorityService.addAuthority(authorityService.getName(AuthorityType.GROUP, groupShortName), authorityName);
|
||||
}
|
||||
|
||||
protected void removeFromGroup(String authorityName, String groupShortName)
|
||||
{
|
||||
authorityService.removeAuthority(authorityService.getName(AuthorityType.GROUP, groupShortName), authorityName);
|
||||
}
|
||||
|
||||
}
|
@@ -35,8 +35,6 @@ import org.alfresco.module.org_alfresco_module_rm.search.RecordsManagementSearch
|
||||
import org.alfresco.module.org_alfresco_module_rm.search.SavedSearchDetails;
|
||||
import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.util.Pair;
|
||||
|
||||
/**
|
||||
* Search service implementation unit test.
|
||||
@@ -45,22 +43,12 @@ import org.alfresco.util.Pair;
|
||||
*/
|
||||
public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
|
||||
{
|
||||
@Override
|
||||
protected boolean isMultiHierarchyTest()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
private static final String SEARCH1 = "search1";
|
||||
private static final String SEARCH2 = "search2";
|
||||
private static final String SEARCH3 = "search3";
|
||||
private static final String SEARCH4 = "search4";
|
||||
|
||||
private String user;
|
||||
|
||||
private NodeRef folderLevelRecordFolder;
|
||||
private NodeRef recordLevelRecordFolder;
|
||||
|
||||
private int numberOfReports;
|
||||
|
||||
/**
|
||||
@@ -89,58 +77,6 @@ public class RecordsManagementSearchServiceImplTest extends BaseRMTestCase
|
||||
}, AuthenticationUtil.getSystemUserName());
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase#setupMultiHierarchyTestData()
|
||||
*/
|
||||
@Override
|
||||
protected void setupMultiHierarchyTestData()
|
||||
{
|
||||
super.setupMultiHierarchyTestData();
|
||||
|
||||
doTestInTransaction(new Test<Void>()
|
||||
{
|
||||
@Override
|
||||
public Void run()
|
||||
{
|
||||
folderLevelRecordFolder = mhRecordFolder42;
|
||||
recordLevelRecordFolder = mhRecordFolder43;
|
||||
|
||||
utils.createRecord(folderLevelRecordFolder, "recordOne.txt", null, "record one - folder level - elephant");
|
||||
utils.createRecord(folderLevelRecordFolder, "recordTwo.txt", null, "record two - folder level - snake");
|
||||
utils.createRecord(folderLevelRecordFolder, "recordThree.txt", null, "record three - folder level - monkey");
|
||||
utils.createRecord(recordLevelRecordFolder, "recordFour.txt", null, "record four - record level - elephant");
|
||||
utils.createRecord(recordLevelRecordFolder, "recordFive.txt", null, "record five - record level - snake");
|
||||
utils.createRecord(recordLevelRecordFolder, "recordSix.txt", null, "record six - record level - monkey");
|
||||
|
||||
return null;
|
||||
}
|
||||
}, AuthenticationUtil.getSystemUserName());
|
||||
}
|
||||
|
||||
public void testSearch()
|
||||
{
|
||||
// Full text search
|
||||
doTestInTransaction(new Test<Void>()
|
||||
{
|
||||
@Override
|
||||
public Void run()
|
||||
{
|
||||
String query = "keywords:\"elephant\"";
|
||||
RecordsManagementSearchParameters params = new RecordsManagementSearchParameters();
|
||||
params.setIncludeUndeclaredRecords(true);
|
||||
List<Pair<NodeRef, NodeRef>> results = rmSearchService.search(siteId, query, params);
|
||||
assertNotNull(results);
|
||||
assertEquals(2, results.size());
|
||||
|
||||
return null;
|
||||
}
|
||||
}, AuthenticationUtil.getSystemUserName());
|
||||
|
||||
// Property search
|
||||
|
||||
//
|
||||
}
|
||||
|
||||
public void testSaveSearch()
|
||||
{
|
||||
// Add some saved searches (as admin user)
|
||||
|
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# Alfresco version information
|
||||
#
|
||||
|
||||
# Version label
|
||||
version.major=6
|
||||
version.minor=0
|
||||
version.revision=0
|
||||
version.label=
|
||||
|
||||
# Edition label
|
||||
version.edition=Community
|
||||
|
||||
# SCM Revision number
|
||||
version.scmrevision=@scm-path@-r@scm-revision@
|
||||
|
||||
# Build number
|
||||
version.build=r@scm-revision@-b@build-number@
|
@@ -1,7 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- test model -->
|
||||
<bean id="org_alfresco_module_rm_rmTestdictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="org_alfresco_module_rm_dictionaryBootstrap">
|
||||
@@ -115,15 +116,18 @@
|
||||
</bean>
|
||||
|
||||
<!-- Make sure the job doesn't fire during the test -->
|
||||
<bean id="scheduledPublishUpdatesJobTrigger" class="org.alfresco.util.CronTriggerBean">
|
||||
<property name="jobDetail">
|
||||
<ref bean="scheduledPublishUpdatesJobDetail" />
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<property name="cronExpression">
|
||||
<value>0 30 3 * * ?</value>
|
||||
<bean id="scheduledPublishUpdatesSchedulerAccessor" class="org.alfresco.schedule.AlfrescoSchedulerAccessorBean">
|
||||
<property name="scheduler" ref="schedulerFactory" />
|
||||
<property name="triggers">
|
||||
<list>
|
||||
<bean id="scheduledPublishUpdatesJobTrigger"
|
||||
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
|
||||
<property name="jobDetail" ref="scheduledPublishUpdatesJobDetail" />
|
||||
<property name="cronExpression">
|
||||
<value>0 30 3 * * ?</value>
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
@@ -188,9 +192,9 @@
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref local="TestService_transaction"/>
|
||||
<idref bean="TestService_transaction"/>
|
||||
<idref bean="exceptionTranslator"/>
|
||||
<idref local="TestService_security"/>
|
||||
<idref bean="TestService_security"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
@@ -233,7 +237,7 @@
|
||||
<value>Search</value>
|
||||
</property>
|
||||
<property name="sourceBeanName">
|
||||
<value>buildonly</value>
|
||||
<value>${index.subsystem.name}</value>
|
||||
</property>
|
||||
<property name="instancePath">
|
||||
<list>
|
||||
|
@@ -1,17 +1,18 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="scheduledDispositionLifecyceleJobTrigger" class="org.alfresco.util.CronTriggerBean">
|
||||
<property name="jobDetail">
|
||||
<ref bean="scheduledDispositionLifecyceleJobDetail" />
|
||||
</property>
|
||||
<property name="scheduler">
|
||||
<ref bean="schedulerFactory" />
|
||||
</property>
|
||||
<property name="cronExpression">
|
||||
<value>0/30 * * * * ?</value>
|
||||
<bean id="scheduledDispositionLifecyceleSchedulerAccessor"
|
||||
class="org.alfresco.schedule.AlfrescoSchedulerAccessorBean">
|
||||
<property name="scheduler" ref="schedulerFactory" />
|
||||
<property name="triggers">
|
||||
<bean id="scheduledDispositionLifecyceleJobTrigger"
|
||||
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
|
||||
<property name="jobDetail" ref="scheduledDispositionLifecyceleJobDetail" />
|
||||
<property name="cronExpression" value="0/30 * * * * ?" />
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||
|
||||
<!-- Test listeners -->
|
||||
|
||||
|
@@ -27,8 +27,8 @@
|
||||
|
||||
package org.alfresco.module.org_alfresco_module_rm.test.util;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@@ -39,14 +39,15 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
||||
import com.fasterxml.jackson.dataformat.yaml.snakeyaml.parser.ParserException;
|
||||
import com.github.fge.jackson.JsonLoader;
|
||||
import com.github.fge.jsonschema.core.exceptions.ProcessingException;
|
||||
import com.github.fge.jsonschema.core.report.ProcessingMessage;
|
||||
import com.github.fge.jsonschema.core.report.ProcessingReport;
|
||||
import com.github.fge.jsonschema.main.JsonSchema;
|
||||
import com.github.fge.jsonschema.main.JsonSchemaFactory;
|
||||
@@ -105,11 +106,11 @@ public class BaseYamlUnitTest
|
||||
assertEquals("Failed to obtain Swagger version from yaml file " + yamlFilePath,
|
||||
swagger.getSwagger(), OPEN_API_SPECIFICATION);
|
||||
}
|
||||
catch (ParserException ex)
|
||||
catch (ProcessingException ex)
|
||||
{
|
||||
// ensure the yaml filename is included in the message
|
||||
String context = String.format(yamlFilePath + ": %n" + ex.getContext());
|
||||
throw new ParserException(context, ex.getContextMark(), ex.getProblem(), ex.getProblemMark()) ;
|
||||
String context = String.format(yamlFilePath + ": %n" + ex.getMessage());
|
||||
throw new ProcessingException(context) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -155,6 +156,15 @@ public class BaseYamlUnitTest
|
||||
{
|
||||
final JsonNode dataNode = JsonLoader.fromString(jsonData);
|
||||
final ProcessingReport report = schema.validate(dataNode);
|
||||
return report.isSuccess();
|
||||
boolean isOk = report.isSuccess();
|
||||
if (!isOk)
|
||||
{
|
||||
Iterator<ProcessingMessage> messages = report.iterator();
|
||||
if (messages.hasNext())
|
||||
{
|
||||
throw new ProcessingException(messages.next().toString());
|
||||
}
|
||||
}
|
||||
return isOk;
|
||||
}
|
||||
}
|
||||
|
@@ -7,11 +7,10 @@
|
||||
<parent>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-rm-community</artifactId>
|
||||
<version>2.7.1-SNAPSHOT</version>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<alfresco.api.explorer.version>5.2.0.1</alfresco.api.explorer.version>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
@@ -70,7 +69,7 @@
|
||||
<dependency>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>api-explorer</artifactId>
|
||||
<version>${alfresco.api.explorer.version}</version>
|
||||
<version>${api.explorer.version}</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
14
scripts/cleanImages.sh
Normal file
14
scripts/cleanImages.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
set -x
|
||||
|
||||
echo $imagesToBeDeleted
|
||||
echo "List all images:"
|
||||
docker images -a
|
||||
|
||||
docker_images_list=$(docker images | grep $imagesToBeDeleted | awk '{print $3}' | uniq)
|
||||
if [ "$docker_images_list" == "" ]; then
|
||||
echo "No docker images on the agent"
|
||||
else
|
||||
echo "Clearing images: $docker_images_list"
|
||||
docker rmi -f $docker_images_list
|
||||
fi
|
31
scripts/startAlfresco.sh
Normal file
31
scripts/startAlfresco.sh
Normal file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e # exit if commands fails
|
||||
set -x # trace what gets exe
|
||||
|
||||
docker info
|
||||
docker-compose --version
|
||||
echo "Starting Alfresco with AGS amps applied in Docker container"
|
||||
docker-compose ps
|
||||
docker-compose up -d
|
||||
|
||||
WAIT_INTERVAL=1
|
||||
COUNTER=0
|
||||
TIMEOUT=300
|
||||
t0=`date +%s`
|
||||
|
||||
echo "Waiting for alfresco to start"
|
||||
until $(curl --output /dev/null --silent --head --fail http://localhost:8080/alfresco) || [ "$COUNTER" -eq "$TIMEOUT" ]; do
|
||||
printf '.'
|
||||
sleep $WAIT_INTERVAL
|
||||
COUNTER=$(($COUNTER+$WAIT_INTERVAL))
|
||||
done
|
||||
|
||||
if (("$COUNTER" < "$TIMEOUT")) ; then
|
||||
t1=`date +%s`
|
||||
delta=$((($t1 - $t0)/60))
|
||||
echo "Alfresco Started in $delta minutes"
|
||||
else
|
||||
echo "Waited $COUNTER seconds"
|
||||
echo "Alfresco Could not start in time."
|
||||
exit 1
|
||||
fi
|
7
scripts/stopDockerContainers.sh
Normal file
7
scripts/stopDockerContainers.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e # exit if commands fails
|
||||
set -x # trace what gets exe
|
||||
|
||||
docker-compose ps
|
||||
docker-compose kill
|
||||
docker-compose rm -fv
|
Reference in New Issue
Block a user