mirror of
https://github.com/Alfresco/alfresco-sdk.git
synced 2025-09-10 14:12:12 +00:00
Compare commits
488 Commits
alfresco-s
...
fix/update
Author | SHA1 | Date | |
---|---|---|---|
|
41560fbb12 | ||
|
d24a4e223d | ||
|
94646f41f1 | ||
|
3a5c7ab475 | ||
|
1f9ae91cb1 | ||
|
3126e0e128 | ||
|
3a1d65965e | ||
|
88c0604a6f | ||
|
bec7914830 | ||
|
ac0503904d | ||
|
536b01c56f | ||
|
33c93c4dfe | ||
|
0985d8b36d | ||
|
ac09ab3386 | ||
|
7de8c85c0a | ||
|
94a085d2bc | ||
|
db15d4366b | ||
|
7dce05b785 | ||
|
32f23dd922 | ||
|
b3fa4568a6 | ||
|
c53fb72935 | ||
|
906a608ffa | ||
|
459e3f1424 | ||
|
a879ad83c9 | ||
|
928f99336e | ||
|
9521f6ef42 | ||
|
0a0039dcb0 | ||
|
2c29c915d4 | ||
|
7878155ed9 | ||
|
7aa6400210 | ||
|
cc0955e012 | ||
|
2899b205ba | ||
|
340785180d | ||
|
2bc06e4222 | ||
|
4f70d0f575 | ||
|
fd106b13c7 | ||
|
f59a05a0c0 | ||
|
860fc03a03 | ||
|
a2cf89ed5e | ||
|
6e8f26220a | ||
|
70d61333e8 | ||
|
cc1fced0d8 | ||
|
9b513c151a | ||
|
326104acd8 | ||
|
265814e487 | ||
|
5b6ea1e3bb | ||
|
1191057d56 | ||
|
5411098636 | ||
|
e63c849d6d | ||
|
013fed7669 | ||
|
1cae6a854f | ||
|
20d4486da9 | ||
|
cabce2d981 | ||
|
019c5c70e0 | ||
|
693fde6285 | ||
|
515d23de2c | ||
|
9a5e70f324 | ||
|
b57196f46e | ||
|
a565f66c76 | ||
|
b3808e3e8b | ||
|
3f51507ea7 | ||
|
0a082f3bfc | ||
|
35e2800858 | ||
|
4a56544cad | ||
|
9c2ac0c956 | ||
|
8d407356b7 | ||
|
42e5726313 | ||
|
9c28f38f9c | ||
|
1aff0f2a01 | ||
|
712eb22dd4 | ||
|
905f589169 | ||
|
b1139739b8 | ||
|
219389197a | ||
|
782740ef99 | ||
|
2ce90ecc93 | ||
|
b3a1dabf72 | ||
|
7928ae358b | ||
|
a204305226 | ||
|
0352e2fd07 | ||
|
af396f70ac | ||
|
8634cc1d37 | ||
|
a3a7e9f158 | ||
|
0d2c76cc0c | ||
|
a39f4248a2 | ||
|
97967c35e6 | ||
|
d92a8d14e0 | ||
|
c672e75db6 | ||
|
5ea45fcca1 | ||
|
df508d3535 | ||
|
dc8ac36265 | ||
|
0464f9bd66 | ||
|
ce64b89d1d | ||
|
232db55be7 | ||
|
584e3e0339 | ||
|
a6f0b34074 | ||
|
bf853d72c8 | ||
|
7f19645f20 | ||
|
e61146ea07 | ||
|
10809ad2ba | ||
|
3d2ff7b1e8 | ||
|
8998e37414 | ||
|
c3ae5760e8 | ||
|
89d4d3fd9a | ||
|
372afc6ba4 | ||
|
3908cc73b7 | ||
|
76d813f2f4 | ||
|
5edd1f7b43 | ||
|
12db1fcb17 | ||
|
3e4a793f5d | ||
|
fba08f9ab7 | ||
|
56300e35aa | ||
|
b4b0be82ae | ||
|
50f43f23d3 | ||
|
2ee5120413 | ||
|
7f861a9672 | ||
|
b199afcd7e | ||
|
7baf3fb0a1 | ||
|
54504b4962 | ||
|
1503134f77 | ||
|
71ed669795 | ||
|
7d9b7de8c8 | ||
|
7483212c1f | ||
|
3d30a5893b | ||
|
32666d167f | ||
|
b737483c18 | ||
|
4cdc281f7f | ||
|
f4c3ac7c84 | ||
|
af8c6c42c4 | ||
|
e61c08c650 | ||
|
cc14a39be4 | ||
|
c910fa2b40 | ||
|
3050c9deb4 | ||
|
1ce98f09aa | ||
|
6dc927e668 | ||
|
68155ef5a6 | ||
|
e5e0a7f76d | ||
|
ea4c12a836 | ||
|
d949a778ef | ||
|
099ac2ddeb | ||
|
b0bc6a38d5 | ||
|
1d1e89a86d | ||
|
517b20859e | ||
|
e27d6f1a70 | ||
|
10557e500d | ||
|
f7e4ea1b5c | ||
|
7838649c81 | ||
|
deaf4c06b8 | ||
|
067d751193 | ||
|
c0658f3a94 | ||
|
e378eec194 | ||
|
01e79d6953 | ||
|
b00ee7f5e5 | ||
|
6e5445a271 | ||
|
388f74eea3 | ||
|
2db3051599 | ||
|
8bb094b61a | ||
|
a4e79cc569 | ||
|
c14887f549 | ||
|
4e225147ea | ||
|
c5e92bdc25 | ||
|
ef59a6a39a | ||
|
42dc3659bd | ||
|
5d1fb4f4d9 | ||
|
185c4ad2bd | ||
|
0b85afc6fd | ||
|
9db0f5cff1 | ||
|
243f94227b | ||
|
330c66a1be | ||
|
ab4927afeb | ||
|
c48dffea69 | ||
|
b3391a67c3 | ||
|
465aa3de5a | ||
|
b32a78b7b3 | ||
|
7bd5c58136 | ||
|
5b21775793 | ||
|
1d551d1895 | ||
|
766847585e | ||
|
b366ae3ddd | ||
|
19369a23b5 | ||
|
93c28f5dde | ||
|
7792574dae | ||
|
e8976addea | ||
|
a7f2db61e8 | ||
|
2926a9ae83 | ||
|
246ae7a138 | ||
|
387a584aa1 | ||
|
edd8d8317b | ||
|
eb30a2d9e2 | ||
|
cf777840be | ||
|
efec137a10 | ||
|
210bee7d76 | ||
|
534e70a2c4 | ||
|
0fcec384fd | ||
|
9d1c2feaf2 | ||
|
709b820f2c | ||
|
217f135006 | ||
|
64843588f8 | ||
|
f1a7e645e4 | ||
|
e3ae54be9b | ||
|
2871883c7d | ||
|
3661a06206 | ||
|
436b9a455a | ||
|
5418b57325 | ||
|
376815c746 | ||
|
b76bb5730c | ||
|
7c4fc7a700 | ||
|
62dc99e9c6 | ||
|
ccee83f92d | ||
|
0027ef3ec4 | ||
|
32d286cb50 | ||
|
7017b057ea | ||
|
bb3780d31d | ||
|
2954b72765 | ||
|
13f6457fbd | ||
|
29006d1e93 | ||
|
301d0e81a0 | ||
|
4002c01134 | ||
|
64d53e0fe6 | ||
|
d1fb454772 | ||
|
cdcf9c6a96 | ||
|
9d7c80a147 | ||
|
beae915836 | ||
|
a6a199ad50 | ||
|
328faa3a5a | ||
|
cdaa995422 | ||
|
8617c29300 | ||
|
d2e21a38c6 | ||
|
a01573eff8 | ||
|
079b916d46 | ||
|
37275bcbf1 | ||
|
7d521e9f27 | ||
|
a7211c206b | ||
|
862c998542 | ||
|
29fdb576ab | ||
|
271ba3977f | ||
|
a1cbc0687d | ||
|
408fda1fd3 | ||
|
cb50841385 | ||
|
0d91902752 | ||
|
43405d037f | ||
|
4b98ff5846 | ||
|
45cf124566 | ||
|
0f500fab25 | ||
|
26c4364063 | ||
|
0c391693e4 | ||
|
92886f2ee9 | ||
|
991caa2191 | ||
|
f99521a851 | ||
|
49b489f181 | ||
|
424e6a5a26 | ||
|
a2b5e64848 | ||
|
6ae42f8fc0 | ||
|
c2ab1cf80a | ||
|
c7c4c49446 | ||
|
efbfc8fbba | ||
|
6e5bf3a757 | ||
|
4722c14121 | ||
|
d2c4dcc015 | ||
|
972c96ba0f | ||
|
067473669b | ||
|
3b0c2ddc9b | ||
|
9068c3209b | ||
|
4651f0a941 | ||
|
6bef9222eb | ||
|
a97975acec | ||
|
f0e604bd8c | ||
|
48a3eb6d7d | ||
|
0b79b0a71d | ||
|
3b25a7549c | ||
|
50c5c82f36 | ||
|
fff6bc4a41 | ||
|
c9a991698d | ||
|
97f0ea6119 | ||
|
7bf16b467b | ||
|
29c6a08066 | ||
|
00839a8170 | ||
|
646899610d | ||
|
126d31646e | ||
|
4c2ac6db7d | ||
|
6cd3e0c0c2 | ||
|
c6fbb76a39 | ||
|
706a6c2ccd | ||
|
c2f94e35bd | ||
|
8dd1ba923a | ||
|
0d158017e4 | ||
|
2c9fc00ea4 | ||
|
32a27e4f53 | ||
|
0577fcc168 | ||
|
c4dd6b01e6 | ||
|
eae6c13de5 | ||
|
0ca57b20a1 | ||
|
82cb58f472 | ||
|
779d53a051 | ||
|
5a35c948ca | ||
|
42a4805d93 | ||
|
1f18d34e8e | ||
|
3873d2907e | ||
|
86049b91bf | ||
|
8ff7f929e2 | ||
|
1fb478e77a | ||
|
f023ca2878 | ||
|
a891119b84 | ||
|
c84d0d4c87 | ||
|
d268c20c3a | ||
|
5291dc6e97 | ||
|
697ab7c3ec | ||
|
52a6938a66 | ||
|
7edac56eed | ||
|
fa828dede5 | ||
|
f5e3552283 | ||
|
ab9f384830 | ||
|
dced89eda6 | ||
|
3bced985d6 | ||
|
f0210c173a | ||
|
ea521ba7ee | ||
|
865ae6fd38 | ||
|
017dfcbff8 | ||
|
c25417e702 | ||
|
448b5c2929 | ||
|
ab29cc53fa | ||
|
228a98c566 | ||
|
82b7886a51 | ||
|
012dc70f43 | ||
|
b8377041a5 | ||
|
9071965850 | ||
|
1e5db412f7 | ||
|
37c26cfaa8 | ||
|
1cd4b82037 | ||
|
758ab83faf | ||
|
8862d67acd | ||
|
e4402a741f | ||
|
b1facc65de | ||
|
7668096829 | ||
|
ce7c374c1e | ||
|
68dda3b211 | ||
|
47a329a762 | ||
|
3ae8d043aa | ||
|
ba36d1ad5e | ||
|
f54fb5e3d3 | ||
|
1a8d8b76b6 | ||
|
55ac6917b7 | ||
|
993d5dcefe | ||
|
0411bc5b1d | ||
|
07bb743cfd | ||
|
ccb9f3d86f | ||
|
aebda9bf06 | ||
|
b7dbbe8995 | ||
|
c9b33b4f59 | ||
|
93dde46f51 | ||
|
addbc750c4 | ||
|
e302055caf | ||
|
3b7e32df20 | ||
|
8178eac5b8 | ||
|
b5ec7b415d | ||
|
278ba7f600 | ||
|
fef948b982 | ||
|
245a51402d | ||
|
3630cced6d | ||
|
892920c114 | ||
|
24500024ed | ||
|
85c7e11bb6 | ||
|
aede276f9b | ||
|
264d326bf2 | ||
|
d2868bdfae | ||
|
673461b6e2 | ||
|
6f1d01394d | ||
|
f5404b9d40 | ||
|
e6394e25b7 | ||
|
0fd842192b | ||
|
be8e10a556 | ||
|
3031b401a2 | ||
|
723b309670 | ||
|
051e967240 | ||
|
1f46a9e2ff | ||
|
3cbdb5dc8e | ||
|
07543c68d3 | ||
|
a07219e6e6 | ||
|
4e26291761 | ||
|
c2ac314930 | ||
|
08acf1f433 | ||
|
b9331c365f | ||
|
63bd9a63c0 | ||
|
f1dbb608d9 | ||
|
657d16b91c | ||
|
7739556c94 | ||
|
d7b0805cef | ||
|
0b8db99cd8 | ||
|
eba635c8f8 | ||
|
2782f30a42 | ||
|
a32a537206 | ||
|
49160034cf | ||
|
50dac567c2 | ||
|
9a7630acfb | ||
|
be11344137 | ||
|
db9d7d637c | ||
|
04fe0678d7 | ||
|
b46f173fb4 | ||
|
d69f7e4937 | ||
|
788347a5dd | ||
|
d6f11dd977 | ||
|
f0955cff98 | ||
|
05b2cfbb1e | ||
|
558d4b422c | ||
|
d040ceb60d | ||
|
a8db2ddde0 | ||
|
c9d1878cb9 | ||
|
99c0a14220 | ||
|
6a1b09c102 | ||
|
19d76702bd | ||
|
b88a0ae73b | ||
|
30d72ee6bd | ||
|
75672bd2c4 | ||
|
58843e516c | ||
|
db8c5e9cfd | ||
|
027ddb7df8 | ||
|
9faf59972b | ||
|
89566dc20b | ||
|
4bea907d8d | ||
|
89d4d7921a | ||
|
c41d713643 | ||
|
a49c657441 | ||
|
8968f8227b | ||
|
595a1c4cbc | ||
|
6bc23959b8 | ||
|
b84bcf798c | ||
|
38f69583d4 | ||
|
e997a33fc9 | ||
|
07c06a2bbd | ||
|
a724b3596e | ||
|
d46fa394e7 | ||
|
101a04e309 | ||
|
6eb8903562 | ||
|
4fca9989fd | ||
|
e8c1e19ecb | ||
|
9ff222e8ed | ||
|
a05d69eac2 | ||
|
e9fa82da5c | ||
|
d2c6335869 | ||
|
3010c9773a | ||
|
b7fff632e7 | ||
|
5b3b5d3914 | ||
|
9b5db76577 | ||
|
43ad42aac8 | ||
|
9c5f1e9e0d | ||
|
c46b0b86d2 | ||
|
99031d5def | ||
|
0bdacc4787 | ||
|
b6e170a0ce | ||
|
a37b121cb6 | ||
|
c7591ca848 | ||
|
54a067325a | ||
|
ceed7af6fe | ||
|
377aaa5459 | ||
|
b226302572 | ||
|
876f6286fc | ||
|
5d59d6cd27 | ||
|
6d4b901129 | ||
|
0854929d99 | ||
|
8415da72b0 | ||
|
14cd4be39c | ||
|
f2f5698a3b | ||
|
5b83b99549 | ||
|
181951ed99 | ||
|
a4711142e6 | ||
|
78d1466220 | ||
|
d99539c9b0 | ||
|
30bfc14422 | ||
|
641aa6bb8e | ||
|
f031c76a41 | ||
|
2ad03e3f5c | ||
|
7275ba32e8 | ||
|
9bf50267dd | ||
|
bbe3de2abb | ||
|
5c01e8127c | ||
|
9a1b97e64d | ||
|
b3955a1b4f | ||
|
2e546a1cae | ||
|
9dd9f530bb | ||
|
7c0ac3afb6 | ||
|
2cbfd36041 | ||
|
9faf5114f3 | ||
|
27bcaa3daf | ||
|
8f29244d99 | ||
|
87af573673 | ||
|
d53184196b | ||
|
4431863500 | ||
|
d2e9b89720 | ||
|
3e7a6d83a9 |
52
.ci.settings.xml
Normal file
52
.ci.settings.xml
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
|
||||
<servers>
|
||||
<server>
|
||||
<id>alfresco-private-repository</id>
|
||||
<username>${env.MAVEN_USERNAME}</username>
|
||||
<password>${env.MAVEN_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>activiti-private-repository</id>
|
||||
<username>${env.MAVEN_USERNAME}</username>
|
||||
<password>${env.MAVEN_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>alfresco-public-snapshots</id>
|
||||
<username>${env.MAVEN_USERNAME}</username>
|
||||
<password>${env.MAVEN_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>alfresco-public</id>
|
||||
<username>${env.MAVEN_USERNAME}</username>
|
||||
<password>${env.MAVEN_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>alfresco-plugin-public</id>
|
||||
<username>${env.MAVEN_USERNAME}</username>
|
||||
<password>${env.MAVEN_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>alfresco-plugin-public-snapshots</id>
|
||||
<username>${env.MAVEN_USERNAME}</username>
|
||||
<password>${env.MAVEN_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>alfresco-internal-snapshots</id>
|
||||
<username>${env.MAVEN_USERNAME}</username>
|
||||
<password>${env.MAVEN_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>alfresco-internal</id>
|
||||
<username>${env.MAVEN_USERNAME}</username>
|
||||
<password>${env.MAVEN_PASSWORD}</password>
|
||||
</server>
|
||||
<server>
|
||||
<id>central-releases-staging</id>
|
||||
<username>${env.MAVEN_CENTRAL_USERNAME}</username>
|
||||
<password>${env.MAVEN_CENTRAL_PASSWORD}</password>
|
||||
</server>
|
||||
</servers>
|
||||
</settings>
|
169
.github/workflows/ci.yml
vendored
Normal file
169
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
name: Alfresco SDK CI
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- fix/**
|
||||
- feature/**
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- fix/**
|
||||
- feature/**
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
|
||||
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
|
||||
MAVEN_CENTRAL_USERNAME: ${{ secrets.OSS_SONATYPE_USERNAME }}
|
||||
MAVEN_CENTRAL_PASSWORD: ${{ secrets.OSS_SONATYPE_PASSWORD }}
|
||||
GITHUB_ACTIONS_DEPLOY_TIMEOUT: 90
|
||||
|
||||
jobs:
|
||||
pre_commit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/pre-commit@v7.0.0
|
||||
|
||||
veracode_sca:
|
||||
name: "Veracode - Source Clear Scan (SCA)"
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
github.ref_name == 'master' ||
|
||||
github.event_name == 'pull_request'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.0.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.0.0
|
||||
- name: "Clean-up SNAPSHOT artifacts"
|
||||
run: find "${HOME}/.m2/repository/" -type d -name "*-SNAPSHOT*" | xargs -r -l rm -rf
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v7.0.0
|
||||
continue-on-error: true
|
||||
with:
|
||||
srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }}
|
||||
|
||||
build:
|
||||
name: "Build application"
|
||||
runs-on: ubuntu-latest
|
||||
needs: [pre_commit]
|
||||
if: "!contains(github.event.head_commit.message, '[skip tests]')"
|
||||
env:
|
||||
MAVEN_CLI_OPTS: >
|
||||
-B -q -e -fae -V -DinstallAtEnd=true -U
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.0.0
|
||||
- name: "Build"
|
||||
run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
|
||||
- name: "Verify"
|
||||
run: mvn $MAVEN_CLI_OPTS verify -Dlogging.root.level=off -Dspring.main.banner-mode=off
|
||||
|
||||
tests:
|
||||
name: ${{ matrix.name }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build]
|
||||
if: >
|
||||
!(failure() || cancelled()) &&
|
||||
!contains(github.event.head_commit.message, '[skip tests]')
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- name: "current version Java 17"
|
||||
java-version: 17
|
||||
- name: "23.4 Enterprise Java 17"
|
||||
java-version: 17
|
||||
suite: -Penterprise-234-tests
|
||||
- name: "23.4 Community Java 17"
|
||||
java-version: 17
|
||||
suite: -Pcommunity-234-tests
|
||||
- name: "23.3 Enterprise Java 17"
|
||||
java-version: 17
|
||||
suite: -Penterprise-233-tests
|
||||
- name: "23.3 Community Java 17"
|
||||
java-version: 17
|
||||
suite: -Pcommunity-233-tests
|
||||
- name: "23.2 Enterprise Java 17"
|
||||
java-version: 17
|
||||
suite: -Penterprise-232-tests
|
||||
- name: "23.2 Community Java 17"
|
||||
java-version: 17
|
||||
suite: -Pcommunity-232-tests
|
||||
- name: "23.1 Enterprise Java 17"
|
||||
java-version: 17
|
||||
suite: -Penterprise-231-tests
|
||||
- name: "23.1 Community Java 17"
|
||||
java-version: 17
|
||||
suite: -Pcommunity-231-tests
|
||||
- name: "7.4 Enterprise Java 17"
|
||||
java-version: 17
|
||||
suite: -Penterprise-74-tests
|
||||
- name: "7.4 Community Java 17"
|
||||
java-version: 17
|
||||
suite: -Pcommunity-74-tests
|
||||
- name: "7.4 Enterprise Java 11"
|
||||
java-version: 11
|
||||
suite: -Penterprise-74-tests
|
||||
- name: "7.4 Community Java 11"
|
||||
java-version: 11
|
||||
suite: -Pcommunity-74-tests
|
||||
- name: "7.3 Enterprise Java 17"
|
||||
java-version: 17
|
||||
suite: -Penterprise-73-tests
|
||||
- name: "7.3 Community Java 17"
|
||||
java-version: 17
|
||||
suite: -Pcommunity-73-tests
|
||||
- name: "7.3 Enterprise Java 11"
|
||||
java-version: 11
|
||||
suite: -Penterprise-73-tests
|
||||
- name: "7.3 Community Java 11"
|
||||
java-version: 11
|
||||
suite: -Pcommunity-73-tests
|
||||
- name: "7.2 Enterprise"
|
||||
java-version: 11
|
||||
suite: -Penterprise-72-tests
|
||||
- name: "7.2 Community"
|
||||
java-version: 11
|
||||
suite: -Pcommunity-72-tests
|
||||
- name: "7.1 Enterprise"
|
||||
java-version: 11
|
||||
suite: -Penterprise-71-tests
|
||||
- name: "7.1 Community"
|
||||
java-version: 11
|
||||
suite: -Pcommunity-71-tests
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.0.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.0.0
|
||||
with:
|
||||
java-version: ${{ matrix.java-version }}
|
||||
- name: "Login to Docker Hub"
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: "Login to Quay.io"
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: quay.io
|
||||
username: ${{ secrets.QUAY_USERNAME }}
|
||||
password: ${{ secrets.QUAY_PASSWORD }}
|
||||
- name: "Build"
|
||||
run: mvn clean install -B ${{ matrix.suite }}
|
||||
|
||||
publish:
|
||||
name: "Publish artifacts"
|
||||
runs-on: ubuntu-latest
|
||||
needs: [tests]
|
||||
if: >
|
||||
contains(github.event.head_commit.message, '[publish]')
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v7.0.0
|
||||
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v7.0.0
|
||||
- name: "Build"
|
||||
run: mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
|
||||
- name: "Publish"
|
||||
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }}
|
||||
run: mvn deploy $MAVEN_CLI_OPTS -DskipTests
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,3 +12,4 @@ pom.xml.next
|
||||
release.properties
|
||||
**.settings
|
||||
**bin
|
||||
*.DS_Store
|
||||
|
10
.pre-commit-config.yaml
Normal file
10
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
default_language_version:
|
||||
# force all unspecified python hooks to run python3
|
||||
python: python3
|
||||
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v3.4.0
|
||||
hooks:
|
||||
- id: check-yaml
|
||||
args: [--allow-multiple-documents]
|
67
ISSUE_TEMPLATE.md
Normal file
67
ISSUE_TEMPLATE.md
Normal file
@@ -0,0 +1,67 @@
|
||||
<!--
|
||||
|
||||
If you are reporting a new issue, make sure that we do not have any duplicates
|
||||
already open. You can ensure this by searching the issue list for this
|
||||
repository. If there is a duplicate, please close your issue and add a comment
|
||||
to the existing issue instead.
|
||||
|
||||
If you suspect your issue is a bug, please edit your issue description to
|
||||
include the BUG REPORT INFORMATION shown below. If you fail to provide this
|
||||
information within 7 days, we cannot debug your issue and will close it. We
|
||||
will, however, reopen it if you later provide the information.
|
||||
|
||||
---------------------------------------------------
|
||||
GENERAL SUPPORT INFORMATION
|
||||
---------------------------------------------------
|
||||
|
||||
The GitHub issue tracker is for bug reports and feature requests.
|
||||
General support can be found at the following locations:
|
||||
|
||||
- Alfresco Community - https://community.alfresco.com/community/ecm
|
||||
- Post a question on StackOverflow, using the Alfresco tag
|
||||
|
||||
-->
|
||||
|
||||
|
||||
## I'm submitting a ... (check one with "x")
|
||||
```
|
||||
[ ] bug report => search github for a similar issue or PR before submitting
|
||||
[ ] feature request
|
||||
```
|
||||
|
||||
<!--- Provide a general summary of the issue in the Title above -->
|
||||
|
||||
## Expected Behavior
|
||||
<!--- If you're describing a bug, tell us what should happen -->
|
||||
<!--- If you're suggesting a change/improvement, tell us how it should work -->
|
||||
|
||||
## Current Behavior
|
||||
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
|
||||
<!--- If suggesting a change/improvement, explain the difference from current behavior -->
|
||||
|
||||
## Possible Solution
|
||||
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
||||
<!--- or ideas how to implement the addition or change -->
|
||||
|
||||
## Steps to Reproduce (for bugs)
|
||||
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
|
||||
<!--- reproduce this bug. Include code to reproduce, if relevant -->
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
5.
|
||||
|
||||
## Context
|
||||
<!--- How has this issue affected you? What are you trying to accomplish? -->
|
||||
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
|
||||
|
||||
## Your Environment
|
||||
<!--- Include as many relevant details about the environment you experienced the bug in -->
|
||||
* Alfresco SDK version used: <!-- 2.1 / 2.2 / 3.0betaX-->
|
||||
* Alfresco version used: <!-- Enterprise 5.1, Community 5.0.f or ...-->
|
||||
* Output of command 'mvn -version': <!-- Maven/JDK version-->
|
||||
* Link to your project: <!-- optional for having a minimal example-->
|
||||
|
||||
## Additional information
|
||||
<!-- include screenshots or any other hint you mave have for us -->
|
149
README.md
149
README.md
@@ -1,55 +1,145 @@
|
||||
# [](#features) Alfresco SDK
|
||||
|
||||
This is the home of the Alfresco SDK. The Alfresco SDK is used by developers to build extensions for the Alfresco content management system. It is based on [Apache Maven](http://maven.apache.org/), compatible with major IDEs and enables Rapid Application Development (RAD) and Test Driven Development (TDD).
|
||||
|
||||
[](https://github.com/Alfresco/alfresco-sdk/actions/workflows/ci.yml)
|
||||
[](https://github.com/pre-commit/pre-commit)
|
||||

|
||||
|
||||
This is the home of the Alfresco SDK. The Alfresco SDK is used by developers to build extensions for the Alfresco Digital Business Platform. It is based on
|
||||
[Apache Maven](http://maven.apache.org/), compatible with major IDEs and enables [Rapid Application Development (RAD)](https://en.wikipedia.org/wiki/Rapid_application_development)
|
||||
and [Test Driven Development (TDD)](https://en.wikipedia.org/wiki/Test-driven_development).
|
||||
|
||||
## License
|
||||
This project is released under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). If you are an Enterprise customer check the [Support](#alfresco-enterprise-customers-and-partners-support) section.
|
||||
This project is released under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) license.
|
||||
If you are an Enterprise customer check the [Support](#alfresco-enterprise-customers-and-partners-support) section.
|
||||
|
||||
## News
|
||||
- 2015-05-20: SDK 2.1.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html), [Release notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/latest/github-report.html)
|
||||
- 2014-12-23: SDK 2.0.0 release to Maven Central. [Docs](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html), [Release Notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/archive/2.0.0/github-report.htm)
|
||||
- 2025-02: Alfresco SDK 4.11.0-A1 released
|
||||
- 2024-11: Alfresco SDK 4.10.0 released
|
||||
- 2024-08: Alfresco SDK 4.9.0 released
|
||||
- 2024-03: Alfresco SDK 4.8.0 released
|
||||
- 2023-11: Alfresco SDK 4.7.0 released
|
||||
- 2023-06: Alfresco SDK 4.6.0 released
|
||||
- 2022-10: Alfresco SDK 4.5.0 released
|
||||
- 2022-03: Alfresco SDK 4.4.0 released
|
||||
- 2021-10: Alfresco SDK 4.3.0 released
|
||||
- 2021-02: Alfresco SDK 4.2.0 released
|
||||
- 2019-10: Alfresco SDK 4.1.0 released
|
||||
- 2019-03: Alfresco SDK 4.0.0 released
|
||||
- 2019-03: Alfresco SDK 3.1.0 released
|
||||
- 2017-06-23: Alfresco SDK 3.0.1 released, [containing a critical bugfix](https://github.com/Alfresco/alfresco-sdk/issues/461)
|
||||
- 2017-04-01: Alfresco SDK 3.0.0 released
|
||||
- 2017-03-27: After years of hard work, countless iterations and gathering feedback, SDK 3.0 has finally been merged into the master branch, ready for release in the coming days
|
||||
- 2016-02-20: SDK 2.2.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html), [Release notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/latest/github-report.html)
|
||||
- 2015-10-19: SDK 2.1.1 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
|
||||
- 2015-05-20: SDK 2.1.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
|
||||
- 2014-12-23: SDK 2.0.0 release to Maven Central. [Docs](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html), [Release Notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/archive/2.0.0/github-report.htm)
|
||||
- 2014-08-22: First SNAPSHOT of SDK 2.0.0 in the [OSS Sonatype Repository](https://oss.sonatype.org/content/repositories/snapshots/org/alfresco/maven/alfresco-sdk-parent/2.0.0-SNAPSHOT/)!
|
||||
- 2014-07: Project fully migrated from [Google Code](https://code.google.com/p/maven-alfresco-archetypes).
|
||||
|
||||
## User Getting Started
|
||||
|
||||
### Important Notice about ACS 7.2
|
||||
|
||||
Please refer to https://github.com/Alfresco/alfresco-sdk/issues/635 to fix the Search Services 403 problem.
|
||||
|
||||
### Important Notice about ACS 7.1
|
||||
|
||||
#### Share Version Number
|
||||
|
||||
Since ACS 7.1, Share build pipeline has been refactored, and you now have to specify the internal
|
||||
Share version number, in addition to the version of the image, because they are not the same anymore.
|
||||
|
||||
This number can be located in the main pom.xml of the project used to build Share, hence:
|
||||
|
||||
- property `<alfresco-community-share.version>` of [acs-community-packaging](https://github.com/Alfresco/acs-community-packaging/blob/7.1.0/pom.xml#L17) (Community)
|
||||
- property `<alfresco-enterprise-share.version>`of [acs-packaging](https://github.com/Alfresco/acs-packaging/blob/7.1.0.1/pom.xml#L18) (Enterprise)
|
||||
|
||||
So, if for example you want to use the community version of `7.1.0.1`, you can go on acs-community-packaging,
|
||||
open the `7.1.0.1` release tag, browse its files, open the pom.xml in the root,
|
||||
then copy the value of `<alfresco-community-share.version>`.
|
||||
|
||||
You'll then need to paste this value inside the SDK property `<alfresco.share.version>`.
|
||||
|
||||
#### Alternate Docker User
|
||||
|
||||
- ACS 6 used to run everything as `root`.
|
||||
- ACS 7 introduced an `alfresco` user, that should've been used after the `root` user completed its configurations in the Dockerfile.
|
||||
|
||||
Due to a bug, this wasn't working in earlier SDKs, and has been fixed in SDK 4.3.
|
||||
|
||||
In order to be retro-compatible with ACS 6, however, the user is specified in the SDK property `<alfresco.platform.docker.user>`.
|
||||
|
||||
Hence, its values (already in place) are `root` for ACS 6, and `alfresco` for ACS 7+.
|
||||
|
||||
#### Log file location
|
||||
|
||||
To prevent writing permission problems when logging with the non-root user,
|
||||
the `alfresco.log` file has also been moved to a more appropriate location (Tomcat logs instead of Tomcat root).
|
||||
|
||||
### Important Notice about Version Numbers
|
||||
|
||||
In Q4 2020, Alfresco Platform has undergone a major structural refactoring.
|
||||
|
||||
Depending on the Platform version desired, you might need to use SDK 4.1, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9 or SDK 4.10 instead of SDK 4.11.0-A1.
|
||||
|
||||
- For Enterprise and Community versions of 7.x, SDK 4.4 or higher must be used
|
||||
- For Enterprise versions of 6.0.x, 6.1.x, 6.2.x newer than November 2020, SDK 4.3 must be used
|
||||
- For Enterprise and Community versions of 6.0.x, 6.1.x, 6.2.x older than November 2020, SDK 4.1 must be used
|
||||
|
||||
It's also important to remember that:
|
||||
|
||||
- Community Platform versions are built by [acs-community-packaging](https://github.com/Alfresco/acs-community-packaging)
|
||||
- Community Docker images are published on [Docker Hub](https://hub.docker.com/r/alfresco/alfresco-content-repository-community/tags?page=1&ordering=last_updated)
|
||||
- Enterprise Platform versions are built by [acs-packaging](https://github.com/Alfresco/acs-packaging)
|
||||
- Enterprise Docker images are published on *Quay.io*
|
||||
|
||||
### Latest Documentation
|
||||
To get started with Alfresco SDK 2.1 (latest) visit the offical Alfresco Documentation for:
|
||||
To get started with **Alfresco SDK 4.9.x** (latest) visit the [Alfresco Documentation](docs/README.md).
|
||||
|
||||
- [Alfresco Community 5.0.d and above](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html)
|
||||
- [Alfresco Enterprise 5.0.1 and above](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
|
||||
|
||||
#### Previous versions Documentation
|
||||
- Documentation for [Alfresco SDK 2.0](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html) (compatible with Alfresco 5.0.d Community and 5.0.0 Enterprise)
|
||||
- Documentation for [Alfresco SDK 1.1.1](http://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-intro.html) (compatible with Alfresco 4.2)
|
||||
|
||||
### Samples
|
||||
Sample extension projects that use the SDK, maintained by @ohej in the [Alfresco SDK Samples project](https://github.com/Alfresco/alfresco-sdk-samples/).
|
||||
|
||||
### Command reference
|
||||
A list of supported features and commands, explanation of Maven profiles and commands is kept in the [Alfresco Official Docs](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-cmd-reference.html).
|
||||
|
||||
### Want to get up to speed quickly in Eclipse? Check out this video!
|
||||
|
||||
[](https://www.youtube.com/watch?v=utYZaVe9Nd0)
|
||||
#### Documentation about Previous Versions
|
||||
| SDK Version | Alfresco Enterprise Version | Alfresco Community Version | Documentation |
|
||||
|---------------|:---------------------------------------------------------------------------------:|:-------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| SDK 4.11.0-A1 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x / 23.4.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x / 23.4.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.10 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x / 23.4.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x / 23.4.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.9 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x / 23.3.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x / 23.3.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.8 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x/ 23.2.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.2.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.7 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x / 23.1.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.6 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x / 7.4.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.5 | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x | Alfresco 7.0.x / 7.1.x / 7.2.x / 7.3.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.4 | Alfresco 7.0.x / 7.1.x / 7.2.x | Alfresco 7.0.x / 7.1.x / 7.2.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.3 | Alfresco 6.0.x / 6.1.x / 6.2.x / 7.0.x / 7.1.x | Alfresco 7.0.x / 7.1.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.2 | Alfresco 6.0.x / 6.1.x / 6.2.x / 7.0.x | Alfresco 7.0.x | https://github.com/Alfresco/alfresco-sdk/tree/master/docs/README.md |
|
||||
| SDK 4.1 | Alfresco 6.0.x / 6.1.x / 6.2.x | Alfresco 6.0.x / 6.1.x / 6.2.x | https://github.com/Alfresco/alfresco-sdk/blob/sdk-4.1/docs/README.md |
|
||||
| SDK 4.0 | Alfresco 6.0.x / 6.1.x | Alfresco 6.0.x / 6.1.x | https://github.com/Alfresco/alfresco-sdk/blob/sdk-4.0/docs/README.md |
|
||||
| SDK 3.1 | Alfresco 5.2.x | Alfresco 5.2.x | http://docs.alfresco.com/5.2/concepts/sdk-intro.html |
|
||||
| SDK 3.0 | Alfresco 5.2.x | Alfresco 5.2.x | http://docs.alfresco.com/5.2/concepts/sdk-intro.html |
|
||||
| SDK 2.2 | Alfresco 5.1.x | Alfresco 5.1.x | https://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 2.1 | Alfresco 5.0.1 | Alfresco 5.0.d | https://docs.alfresco.com/sdk2.1/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 2.0 | Alfresco 5.0.0 | Alfresco 5.0.c | https://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html |
|
||||
| SDK 1.1.1 | Alfresco 4.2.x | Alfresco 4.2.x | https://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-intro.html |
|
||||
|
||||
## Reporting Issues and Community Support
|
||||
Report issues (and contribute!) [here](https://github.com/Alfresco/alfresco-sdk/issues?milestone=1&state=open). You can also join the [Alfresco list on Google Groups](https://groups.google.com/forum/#!forum/maven-alfresco) or join us on the [IRC Channel](http://chat.alfresco.com/).
|
||||
Report issues (and contribute!) [here](https://github.com/Alfresco/alfresco-sdk/issues?milestone=1&state=open) or join us on the [IRC Channel](http://chat.alfresco.com/).
|
||||
|
||||
## Alfresco Enterprise Customers and Partners Support
|
||||
If you are an Alfresco Customer please check the [SDK Support status](http://www.alfresco.com/services/subscription/technical-support/product-support-status) for the version you are using and the [Compatibily Matrix](http://docs.alfresco.com/community/concepts/alfresco-sdk-compatibility.html) for the SDK / Alfresco compatibility. If your version is in Limited or Full Support, you can raise issues via the [Support Portal](http://support.alfresco.com).
|
||||
If you are an Alfresco Customer
|
||||
please check the [SDK Support status](http://www.alfresco.com/services/subscription/technical-support/product-support-status)
|
||||
for the version you are using. If your version is in Limited or Full Support and you need help, visit the [Support Portal](http://support.alfresco.com).
|
||||
|
||||
## Maven repositories
|
||||
- As of version 2.0-beta-1, The Alfresco SDK is released in [Maven Central](http://search.maven.org/#search|ga|1|alfresco-sdk). Previous versions are available in the [Alfresco Artifacts Repository](https://artifacts.alfresco.com/).
|
||||
- As of version 2.0-beta-1, The Alfresco SDK is released in [Maven Central](http://search.maven.org/#search|ga|1|alfresco-sdk). Previous versions are available
|
||||
in the [Alfresco Artifacts Repository](https://artifacts.alfresco.com/).
|
||||
- Alfresco (Community and Enterprise) artifacts are hosted in the [Alfresco Artifacts Repository](https://artifacts.alfresco.com/).
|
||||
- Alfresco Community artifacts (JARs, WARs, AMPs, poms) and SDK artifacts are publicly available.
|
||||
|
||||
*NOTE:* For Enterprise and Premiere licensed software access you need to get credential via the Alfresco Enterprise Support. See [Maven Alfresco Enterprise setup](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-using-enterprise-edition.html).
|
||||
*NOTE:* By default the Alfresco SDK will use Community Edition releases but it can be configured to use Enterprise Edition releases. Enterprise and Premier
|
||||
customers can use the SDK with Enterprise Edition releases by following the process described in [Working with Enterprise](docs/advanced-topics/working-with-enterprise/README.md).
|
||||
|
||||
### Alfresco Artifacts Repository
|
||||
|
||||
#### Alfresco Releases
|
||||
You can use the following snippet in your pom.xml to access releases on Alfresco Artifact repository:
|
||||
You can use the following snippet in your pom.xml to access releases from the Alfresco Artifact repository:
|
||||
|
||||
```xml
|
||||
<repository>
|
||||
@@ -68,6 +158,9 @@ To test new unreleased (unsupported) features, you can use the following snippet
|
||||
</repository>
|
||||
```
|
||||
|
||||
## For Developers that want to contribute to the SDK
|
||||
See the [Developers Wiki page](https://github.com/Alfresco/alfresco-sdk/wiki/Developer-Wiki).
|
||||
## Docker registries
|
||||
- Alfresco Community Docker images are publicly available at the [Alfresco's Docker Hub profile](https://hub.docker.com/u/alfresco/).
|
||||
- Alfresco Enterprise Docker images are hosted at [Quay.io](https://quay.io/). Its configuration process is described in detail in [How to configure private Alfresco Docker registry](docs/advanced-topics/working-with-enterprise/enterprise-docker-registry.md).
|
||||
|
||||
## For Developers that want to contribute to the SDK
|
||||
See the [Developers Wiki page](https://github.com/Alfresco/alfresco-sdk/wiki/Developer-Wiki).
|
1
archetypes/.gitignore
vendored
Normal file
1
archetypes/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.DS_Store
|
@@ -5,16 +5,16 @@
|
||||
<groupId>org.alfresco.maven.archetype</groupId>
|
||||
<artifactId>alfresco-allinone-archetype</artifactId>
|
||||
<packaging>maven-archetype</packaging>
|
||||
<name>Maven Alfresco SDK - All-in-One Archetype</name>
|
||||
<description>Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for: Repository WAR overlay, Repository AMP, Share WAR overlay, Solr configuration, and embedded Tomcat runner</description>
|
||||
|
||||
<name>Alfresco SDK - All-in-One Archetype</name>
|
||||
<description>Sample multi-module project for All-in-One development on the Alfresco platform. Includes modules for Platform/Repository JAR and Share JAR</description>
|
||||
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>2.1.1-beta-3</version>
|
||||
<version>4.11.0-A1</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
@@ -23,7 +23,6 @@
|
||||
<include>archetype-resources/pom.xml</include>
|
||||
<include>archetype-resources/run.sh</include>
|
||||
<include>archetype-resources/run.bat</include>
|
||||
<include>archetype-resources/runner/src/main/webapp/index.html</include>
|
||||
<include>META-INF/maven/archetype-metadata.xml</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
@@ -34,7 +33,6 @@
|
||||
<exclude>archetype-resources/pom.xml</exclude>
|
||||
<exclude>archetype-resources/run.sh</exclude>
|
||||
<exclude>archetype-resources/run.bat</exclude>
|
||||
<exclude>archetype-resources/runner/src/main/webapp/index.html</exclude>
|
||||
<exclude>META-INF/maven/archetype-metadata.xml</exclude>
|
||||
</excludes>
|
||||
<filtering>false</filtering>
|
||||
@@ -43,16 +41,17 @@
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.7</version>
|
||||
<configuration>
|
||||
<useDefaultDelimiters>false</useDefaultDelimiters>
|
||||
<delimiters>
|
||||
<delimiter>@@</delimiter>
|
||||
</delimiters>
|
||||
<addDefaultExcludes>false</addDefaultExcludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
</project>
|
@@ -0,0 +1,2 @@
|
||||
def file = new File( request.getOutputDirectory(), request.getArtifactId()+"/run.sh" );
|
||||
file.setExecutable(true, false);
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archetype-descriptor
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
|
||||
name="All In One Archetype for Alfresco. Provides rapid development, IDE integration, and running embedded of Alfresco Repo, Share and Solr"
|
||||
name="Alfresco All In One (AIO) Archetype."
|
||||
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<requiredProperties>
|
||||
@@ -10,8 +10,16 @@
|
||||
</requiredProperty>
|
||||
</requiredProperties>
|
||||
<modules>
|
||||
<module id="repo-amp" dir="repo-amp" name="repo-amp">
|
||||
<module id="${rootArtifactId}-platform"
|
||||
name="${rootArtifactId}-platform"
|
||||
dir="__rootArtifactId__-platform">
|
||||
<fileSets>
|
||||
<fileSet filtered="false" packaged="false" encoding="UTF-8">
|
||||
<directory>src/main/assembly</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
@@ -25,7 +33,7 @@
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/amp</directory>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
@@ -34,28 +42,24 @@
|
||||
</excludes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="true" packaged="false">
|
||||
<directory>src/main/amp</directory>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**/*-context.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/test/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/test/properties</directory>
|
||||
<includes>
|
||||
<include>**/*.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="share-amp" dir="share-amp" name="share-amp">
|
||||
<module id="${rootArtifactId}-share"
|
||||
name="${rootArtifactId}-share"
|
||||
dir="__rootArtifactId__-share">
|
||||
<fileSets>
|
||||
<fileSet filtered="false" packaged="false" encoding="UTF-8">
|
||||
<directory>src/main/assembly</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
@@ -69,19 +73,19 @@
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
||||
<directory>src/main/amp/config/alfresco/web-extension</directory>
|
||||
<directory>src/main/resources/alfresco/web-extension</directory>
|
||||
<includes>
|
||||
<include>__artifactId__-slingshot-application-context.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
||||
<directory>src/main/amp/config/alfresco/web-extension/site-data/extensions</directory>
|
||||
<directory>src/main/resources/alfresco/web-extension/site-data/extensions</directory>
|
||||
<includes>
|
||||
<include>__artifactId__-example-widgets.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/amp</directory>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
@@ -90,97 +94,99 @@
|
||||
<exclude>**/__artifactId__-example-widgets.xml</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
||||
<directory>src/test/resources</directory>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="${rootArtifactId}-integration-tests"
|
||||
name="${rootArtifactId}-integration-tests"
|
||||
dir="__rootArtifactId__-integration-tests">
|
||||
<fileSets>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
<include>**/*.java</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/resources</directory>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/test/java</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
<include>**/*.java</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="repo" dir="repo" name="repo">
|
||||
<module id="${rootArtifactId}-platform-docker"
|
||||
name="${rootArtifactId}-platform-docker"
|
||||
dir="__rootArtifactId__-platform-docker">
|
||||
<fileSets>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/properties</directory>
|
||||
<directory>src/main/docker</directory>
|
||||
<includes>
|
||||
<include>license/**</include>
|
||||
<include>Dockerfile</include>
|
||||
<include>disable-webscript-caching-context.xml</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/*.properties</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="true">
|
||||
<directory>src/main/docker</directory>
|
||||
<includes>
|
||||
<include>**/*.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="true">
|
||||
<directory>src/main/resources/alfresco/extension</directory>
|
||||
<includes>
|
||||
<include>dev-log4j.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/dev-log4j.properties</exclude>
|
||||
<exclude>license/**</exclude>
|
||||
<exclude>Dockerfile</exclude>
|
||||
<exclude>disable-webscript-caching-context.xml</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="solr4" dir="solr-config" name="solr4" filtered="false">
|
||||
</module>
|
||||
|
||||
<module id="share" dir="share" name="share" filtered="false">
|
||||
<module id="${rootArtifactId}-share-docker"
|
||||
name="${rootArtifactId}-share-docker"
|
||||
dir="__rootArtifactId__-share-docker">
|
||||
<fileSets>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/resources</directory>
|
||||
<directory>src/main/docker</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
<include>Dockerfile</include>
|
||||
<include>share-config-custom.xml</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/*.properties</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
||||
<directory>src/test/resources</directory>
|
||||
<fileSet encoding="UTF-8" filtered="true">
|
||||
<directory>src/main/docker</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="runner" dir="runner" name="runner" filtered="false">
|
||||
<fileSets>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>tomcat</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>test-ng</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/webapp</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
<include>**/*.properties</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>Dockerfile</exclude>
|
||||
<exclude>share-config-custom.xml</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
</modules>
|
||||
|
||||
<fileSets>
|
||||
<fileSet encoding="UTF-8">
|
||||
<fileSet encoding="UTF-8" filtered="true">
|
||||
<directory>docker</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="true">
|
||||
<directory></directory>
|
||||
<includes>
|
||||
<include>.gitignore</include>
|
||||
<include>run.sh</include>
|
||||
<include>run.bat</include>
|
||||
<include>README.md</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
|
38
archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/.gitignore
vendored
Normal file
38
archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/.gitignore
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
**.log*
|
||||
|
||||
# Maven
|
||||
target/
|
||||
pom.xml.tag
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.versionsBackup
|
||||
pom.xml.next
|
||||
release.properties
|
||||
dependency-reduced-pom.xml
|
||||
buildNumber.properties
|
||||
.mvn/timing.properties
|
||||
.mvn/wrapper/maven-wrapper.jar
|
||||
|
||||
# Eclipse
|
||||
.metadata
|
||||
.project
|
||||
.classpath
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
.settings/
|
||||
.loadpath
|
||||
.recommenders
|
||||
|
||||
# IntelliJ IDEA
|
||||
**.idea
|
||||
**.iml
|
||||
|
||||
# Visual Studio Code
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
|
||||
# macOS
|
||||
*.DS_Store
|
@@ -0,0 +1,46 @@
|
||||
# Alfresco AIO Project - SDK 4.11.0-A1
|
||||
|
||||
This is an All-In-One (AIO) project for Alfresco SDK 4.11.0-A1.
|
||||
|
||||
Run with `./run.sh build_start` or `./run.bat build_start` and verify that it
|
||||
|
||||
* Runs Alfresco Content Service (ACS)
|
||||
* Runs Alfresco Share
|
||||
* Runs Alfresco Search Service (ASS)
|
||||
* Runs PostgreSQL database
|
||||
* Deploys the JAR assembled modules
|
||||
|
||||
All the services of the project are now run as docker containers. The run script offers the next tasks:
|
||||
|
||||
* `build_start`. Build the whole project, recreate the ACS and Share docker images, start the dockerised environment composed by ACS, Share, ASS and
|
||||
PostgreSQL and tail the logs of all the containers.
|
||||
* `build_start_it_supported`. Build the whole project including dependencies required for IT execution, recreate the ACS and Share docker images, start the
|
||||
dockerised environment composed by ACS, Share, ASS and PostgreSQL and tail the logs of all the containers.
|
||||
* `start`. Start the dockerised environment without building the project and tail the logs of all the containers.
|
||||
* `stop`. Stop the dockerised environment.
|
||||
* `purge`. Stop the dockerised container and delete all the persistent data (docker volumes).
|
||||
* `tail`. Tail the logs of all the containers.
|
||||
* `reload_share`. Build the Share module, recreate the Share docker image and restart the Share container.
|
||||
* `reload_acs`. Build the ACS module, recreate the ACS docker image and restart the ACS container.
|
||||
* `build_test`. Build the whole project, recreate the ACS and Share docker images, start the dockerised environment, execute the integration tests from the
|
||||
`integration-tests` module and stop the environment.
|
||||
* `test`. Execute the integration tests (the environment must be already started).
|
||||
|
||||
# Few things to notice
|
||||
|
||||
* No parent pom
|
||||
* No WAR projects, the jars are included in the custom docker images
|
||||
* No runner project - the Alfresco environment is now managed through [Docker](https://www.docker.com/)
|
||||
* Standard JAR packaging and layout
|
||||
* Works seamlessly with Eclipse and IntelliJ IDEA
|
||||
* JRebel for hot reloading, JRebel maven plugin for generating rebel.xml [JRebel integration documentation]
|
||||
* AMP as an assembly
|
||||
* Persistent test data through restart thanks to the use of Docker volumes for ACS, ASS and database data
|
||||
* Integration tests module to execute tests against the final environment (dockerised)
|
||||
* Resources loaded from META-INF
|
||||
* Web Fragment (this includes a sample servlet configured via web fragment)
|
||||
|
||||
# TODO
|
||||
|
||||
* Abstract assembly into a dependency so we don't have to ship the assembly in the archetype
|
||||
* Functional/remote unit tests
|
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Integration Tests Module</name>
|
||||
<description>Integration Tests module for in-container integration testing - part of AIO - SDK 4.11.0-A1</description>
|
||||
<packaging>jar</packaging> <!-- Note. this just runs Integration Tests, but it needs to be a JAR otherwise
|
||||
nothing is compiled (i.e. you cannot set it to pom) -->
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- Bring in any custom module that should be tested, by default we bring in the Platform JAR module
|
||||
that is generated for the AIO project -->
|
||||
<dependency>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}-platform</artifactId>
|
||||
<version>${version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</testResource>
|
||||
</testResources>
|
||||
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.zeroturnaround</groupId>
|
||||
<artifactId>jrebel-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<rebelXmlDirectory>${project.build.testOutputDirectory}</rebelXmlDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<!-- Make sure we attach the tests so we can include them when running -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>test-jar</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- Runs the integration tests, any class that follows naming convention
|
||||
"**/IT*.java", "**/*IT.java", and "**/*ITCase.java" will be considered an integration test -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<configuration>
|
||||
<systemPropertyVariables>
|
||||
<acs.endpoint.path>${test.acs.endpoint.path}</acs.endpoint.path>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@@ -0,0 +1,191 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/**
|
||||
* Copyright (C) 2017 Alfresco Software Limited.
|
||||
* <p/>
|
||||
* This file is part of the Alfresco SDK project.
|
||||
* <p/>
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* <p/>
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p/>
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ${package}.platformsample;
|
||||
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.rad.test.AbstractAlfrescoIT;
|
||||
import org.alfresco.rad.test.AlfrescoTestRunner;
|
||||
import org.alfresco.repo.content.MimetypeMap;
|
||||
import org.alfresco.repo.nodelocator.CompanyHomeNodeLocator;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.ContentReader;
|
||||
import org.alfresco.service.cmr.repository.ContentWriter;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
/**
|
||||
* Integration Test sample for a custom content model.
|
||||
* See {@link DemoComponentIT} for more info.
|
||||
*
|
||||
* @author martin.bergljung@alfresco.com
|
||||
* @since 3.0
|
||||
*/
|
||||
@RunWith(value = AlfrescoTestRunner.class)
|
||||
public class CustomContentModelIT extends AbstractAlfrescoIT {
|
||||
private static final String ACME_MODEL_NS = "{http://www.acme.org/model/content/1.0}";
|
||||
private static final String ACME_MODEL_LOCALNAME = "contentModel";
|
||||
private static final String ACME_DOCUMENT_TYPE = "document";
|
||||
private static final String ACME_SECURITY_CLASSIFIED_ASPECT = "securityClassified";
|
||||
private static final String ACME_DOCUMENT_ID_PROPNAME = "documentId";
|
||||
|
||||
@Test
|
||||
public void testCustomContentModelPresence() {
|
||||
Collection<QName> allContentModels = getServiceRegistry().getDictionaryService().getAllModels();
|
||||
QName customContentModelQName = createQName(ACME_MODEL_LOCALNAME);
|
||||
assertTrue("Custom content model " + customContentModelQName.toString() +
|
||||
" is not present", allContentModels.contains(customContentModelQName));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateAcmeDocument() {
|
||||
// Create the ACME Doc file
|
||||
QName type = createQName(ACME_DOCUMENT_TYPE);
|
||||
String textContent = "Hello World!";
|
||||
String documentId = "DOC001";
|
||||
Map<QName, Serializable> nodeProperties = new HashMap<>();
|
||||
nodeProperties.put(createQName(ACME_DOCUMENT_ID_PROPNAME), documentId);
|
||||
nodeProperties.put(createQName("securityClassification"), "Company Confidential");
|
||||
NodeRef nodeRef = createNode("AcmeFile.txt", type, nodeProperties);
|
||||
addFileContent(nodeRef, textContent);
|
||||
|
||||
// Add an Aspect to the file (could be a custom aspect...)
|
||||
Map<QName, Serializable> aspectProperties = new HashMap<>();
|
||||
aspectProperties.put(ContentModel.PROP_TITLE, "Some Doc Title");
|
||||
aspectProperties.put(ContentModel.PROP_DESCRIPTION, "Some Doc Description");
|
||||
getServiceRegistry().getNodeService().addAspect(nodeRef, ContentModel.ASPECT_TITLED, aspectProperties);
|
||||
|
||||
// Assert that the file is created correctly
|
||||
assertEquals("Invalid type", type, getServiceRegistry().getNodeService().getType(nodeRef));
|
||||
assertTrue("Missing security aspect",
|
||||
getServiceRegistry().getNodeService().hasAspect(nodeRef, createQName(ACME_SECURITY_CLASSIFIED_ASPECT)));
|
||||
assertTrue("Missing titled aspect",
|
||||
getServiceRegistry().getNodeService().hasAspect(nodeRef, ContentModel.ASPECT_TITLED));
|
||||
assertEquals("Invalid property value", documentId,
|
||||
getServiceRegistry().getNodeService().getProperty(nodeRef, createQName(ACME_DOCUMENT_ID_PROPNAME)));
|
||||
readTextContent(nodeRef).equals(textContent);
|
||||
|
||||
// Clean up node
|
||||
if (nodeRef != null) {
|
||||
getServiceRegistry().getNodeService().deleteNode(nodeRef);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ==================== Helper Methods ============================================================================
|
||||
*/
|
||||
|
||||
/**
|
||||
* Create a QName for the ACME content model
|
||||
*
|
||||
* @param localname the local content model name without namespace specified
|
||||
* @return the full ACME QName including namespace
|
||||
*/
|
||||
private QName createQName(String localname) {
|
||||
return QName.createQName(ACME_MODEL_NS + localname);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new node, such as a file or a folder, with passed in type and properties
|
||||
*
|
||||
* @param name the name of the file or folder
|
||||
* @param type the content model type
|
||||
* @param properties the properties from the content model
|
||||
* @return the Node Reference for the newly created node
|
||||
*/
|
||||
private NodeRef createNode(String name, QName type, Map<QName, Serializable> properties) {
|
||||
NodeRef parentFolderNodeRef = getCompanyHomeNodeRef();
|
||||
QName associationType = ContentModel.ASSOC_CONTAINS;
|
||||
QName associationQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
|
||||
QName.createValidLocalName(name));
|
||||
properties.put(ContentModel.PROP_NAME, name);
|
||||
ChildAssociationRef parentChildAssocRef = getServiceRegistry().getNodeService().createNode(
|
||||
parentFolderNodeRef, associationType, associationQName, type, properties);
|
||||
|
||||
return parentChildAssocRef.getChildRef();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add some text content to a file node
|
||||
*
|
||||
* @param nodeRef the node reference for the file that should have some text content added to it
|
||||
* @param fileContent the text content
|
||||
*/
|
||||
private void addFileContent(NodeRef nodeRef, String fileContent) {
|
||||
boolean updateContentPropertyAutomatically = true;
|
||||
ContentWriter writer = getServiceRegistry().getContentService().getWriter(nodeRef, ContentModel.PROP_CONTENT,
|
||||
updateContentPropertyAutomatically);
|
||||
writer.setMimetype(MimetypeMap.MIMETYPE_TEXT_PLAIN);
|
||||
writer.setEncoding("UTF-8");
|
||||
writer.putContent(fileContent);
|
||||
}
|
||||
|
||||
/**
|
||||
* Read text content for passed in file Node Reference
|
||||
*
|
||||
* @param nodeRef the node reference for a file containing text
|
||||
* @return the text content
|
||||
*/
|
||||
private String readTextContent(NodeRef nodeRef) {
|
||||
ContentReader reader = getServiceRegistry().getContentService().getReader(nodeRef, ContentModel.PROP_CONTENT);
|
||||
if (reader == null) {
|
||||
return ""; // Maybe it was a folder after all
|
||||
}
|
||||
|
||||
InputStream is = reader.getContentInputStream();
|
||||
try {
|
||||
return IOUtils.toString(is, "UTF-8");
|
||||
} catch (IOException ioe) {
|
||||
throw new RuntimeException(ioe);
|
||||
} finally {
|
||||
if (is != null) {
|
||||
try {
|
||||
is.close();
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the node reference for the /Company Home top folder in Alfresco.
|
||||
* Use the standard node locator service.
|
||||
*
|
||||
* @return the node reference for /Company Home
|
||||
*/
|
||||
private NodeRef getCompanyHomeNodeRef() {
|
||||
return getServiceRegistry().getNodeLocatorService().getNode(CompanyHomeNodeLocator.NAME, null, null);
|
||||
}
|
||||
}
|
@@ -0,0 +1,67 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/**
|
||||
* Copyright (C) 2017 Alfresco Software Limited.
|
||||
* <p/>
|
||||
* This file is part of the Alfresco SDK project.
|
||||
* <p/>
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* <p/>
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p/>
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ${package}.platformsample;
|
||||
|
||||
import org.alfresco.rad.test.AbstractAlfrescoIT;
|
||||
import org.alfresco.rad.test.AlfrescoTestRunner;
|
||||
import org.alfresco.rad.test.Remote;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
/**
|
||||
* Integration Test of the DemoComponent using the Alfresco Test Runner.
|
||||
* The Alfresco Test Runner (i.e. AlfrescoTestRunner.class) will check if it is running in an Alfresco instance,
|
||||
* if so it will execute normally locally. On the other hand, if it detects no
|
||||
* Alfresco Spring context, then it will make a call to a custom Web Script that
|
||||
* will execute this test in the running container remotely. The remote location is
|
||||
* determined by the @Remote config.
|
||||
*
|
||||
* @author martin.bergljung@alfresco.com
|
||||
* @since 3.0
|
||||
*/
|
||||
@RunWith(value = AlfrescoTestRunner.class)
|
||||
public class DemoComponentIT extends AbstractAlfrescoIT {
|
||||
|
||||
@Test
|
||||
public void testGetCompanyHome() {
|
||||
DemoComponent demoComponent = (DemoComponent) getApplicationContext().getBean("${package}.DemoComponent");
|
||||
NodeRef companyHome = demoComponent.getCompanyHome();
|
||||
assertNotNull(companyHome);
|
||||
String companyHomePath = getServiceRegistry().getNodeService().getPath(companyHome).toPrefixString(getServiceRegistry().getNamespaceService());
|
||||
assertNotNull(companyHomePath);
|
||||
assertEquals("/app:company_home", companyHomePath);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChildNodesCount() {
|
||||
DemoComponent demoComponent = (DemoComponent) getApplicationContext().getBean("${package}.DemoComponent");
|
||||
NodeRef companyHome = demoComponent.getCompanyHome();
|
||||
int childNodeCount = demoComponent.childNodesCount(companyHome);
|
||||
assertNotNull(childNodeCount);
|
||||
// There are 7 folders by default under Company Home
|
||||
assertEquals(7, childNodeCount);
|
||||
}
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/**
|
||||
* Copyright (C) 2017 Alfresco Software Limited.
|
||||
* <p/>
|
||||
* This file is part of the Alfresco SDK project.
|
||||
* <p/>
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* <p/>
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p/>
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ${package}.platformsample;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.apache.http.auth.AuthScope;
|
||||
import org.apache.http.auth.UsernamePasswordCredentials;
|
||||
import org.apache.http.client.CredentialsProvider;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.BasicCredentialsProvider;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
/**
|
||||
* Integration Test (IT) for Hello World web script.
|
||||
*
|
||||
* @author martin.bergljung@alfresco.com
|
||||
* @version 1.0
|
||||
* @since 3.0
|
||||
*/
|
||||
public class HelloWorldWebScriptIT {
|
||||
|
||||
private static final String ACS_ENDPOINT_PROP = "acs.endpoint.path";
|
||||
private static final String ACS_DEFAULT_ENDPOINT = "http://localhost:8080/alfresco";
|
||||
|
||||
@Test
|
||||
public void testWebScriptCall() throws Exception {
|
||||
String webscriptURL = getPlatformEndpoint() + "/service/sample/helloworld";
|
||||
String expectedResponse = "Message: 'Hello from JS!' 'HelloFromJava'";
|
||||
|
||||
// Login credentials for Alfresco Repo
|
||||
CredentialsProvider provider = new BasicCredentialsProvider();
|
||||
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("admin", "admin");
|
||||
provider.setCredentials(AuthScope.ANY, credentials);
|
||||
|
||||
// Create HTTP Client with credentials
|
||||
CloseableHttpClient httpclient = HttpClientBuilder.create()
|
||||
.setDefaultCredentialsProvider(provider)
|
||||
.build();
|
||||
|
||||
// Execute Web Script call
|
||||
try {
|
||||
HttpGet httpget = new HttpGet(webscriptURL);
|
||||
HttpResponse httpResponse = httpclient.execute(httpget);
|
||||
assertEquals("Incorrect HTTP Response Status",
|
||||
HttpStatus.SC_OK, httpResponse.getStatusLine().getStatusCode());
|
||||
HttpEntity entity = httpResponse.getEntity();
|
||||
assertNotNull("Response from Web Script is null", entity);
|
||||
assertEquals("Incorrect Web Script Response", expectedResponse, EntityUtils.toString(entity));
|
||||
} finally {
|
||||
httpclient.close();
|
||||
}
|
||||
}
|
||||
|
||||
private String getPlatformEndpoint() {
|
||||
final String platformEndpoint = System.getProperty(ACS_ENDPOINT_PROP);
|
||||
return StringUtils.isNotBlank(platformEndpoint) ? platformEndpoint : ACS_DEFAULT_ENDPOINT;
|
||||
}
|
||||
}
|
@@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Alfresco Platform/Repository Docker Module</name>
|
||||
<description>Platform/Repo Docker Module to generate the final Docker image</description>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}-platform</artifactId>
|
||||
<version>${version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}-integration-tests</artifactId>
|
||||
<version>${version}</version>
|
||||
<scope>test</scope>
|
||||
<classifier>tests</classifier>
|
||||
</dependency>
|
||||
<!-- Add any additional AMPs or extension JARs here that you want to be deployed in Alfresco -->
|
||||
<!-- IMPORTANT:
|
||||
If using amp extensions only, add <includeTypes>amp</includeTypes> to the "collect-extensions" execution below.
|
||||
If using both amp and jar extensions, you have to add:
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>*</groupId>
|
||||
<artifactId>*</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
to each amp dependency definition.
|
||||
-->
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<!-- Copy the repository extension and the dependencies required for execute integration tests -->
|
||||
<execution>
|
||||
<id>collect-test-artifacts</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
|
||||
<excludeScope>compile</excludeScope>
|
||||
</configuration>
|
||||
</execution>
|
||||
<!-- Collect extensions (JARs or AMPs) declared in this module do be deployed to docker -->
|
||||
<execution>
|
||||
<id>collect-extensions</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
|
||||
<includeScope>runtime</includeScope>
|
||||
<!-- IMPORTANT: if using amp dependencies only, add <includeTypes>amp</includeTypes> -->
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Filter the Dockerfile and the other files added to the container to be able to replace maven properties -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-and-filter-docker-resources</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/docker</directory>
|
||||
<filtering>true</filtering>
|
||||
<excludes>
|
||||
<exclude>**/*.jar</exclude>
|
||||
<exclude>**/*.so</exclude>
|
||||
<exclude>**/*.gz</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>copy-and-filter-docker-resources-non-filtered</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/docker</directory>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>**/*.jar</include>
|
||||
<include>**/*.so</include>
|
||||
<include>**/*.gz</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@@ -0,0 +1,29 @@
|
||||
FROM ${docker.acs.image}:${alfresco.platform.version}
|
||||
|
||||
ARG TOMCAT_DIR=/usr/local/tomcat
|
||||
ARG USERNAME=${alfresco.platform.docker.user}
|
||||
|
||||
USER root
|
||||
|
||||
# Copy Dockerfile to avoid an error if no JARs exist
|
||||
COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/
|
||||
|
||||
# Copy Dockerfile to avoid an error if no AMPs exist
|
||||
COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/
|
||||
RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
|
||||
$TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force
|
||||
|
||||
COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties
|
||||
COPY dev-log4j2.properties $TOMCAT_DIR/shared/classes/alfresco/extension/dev-log4j2.properties
|
||||
COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension
|
||||
|
||||
# Copy Dockerfile to avoid an error if no license file exists
|
||||
COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/
|
||||
|
||||
# Move the log file
|
||||
RUN sed -i -e "s_appender.rolling.fileName\=alfresco.log_appender.rolling.fileName\=${TOMCAT_DIR}/logs\/alfresco.log_" \
|
||||
${TOMCAT_DIR}/shared/classes/alfresco/extension/dev-log4j2.properties && \
|
||||
sed -i -e "s_appender.rolling.filePattern=alfresco.log.%d{yyyy-MM-dd}_appender.rolling.filePattern\=${TOMCAT_DIR}/logs\/alfresco.log.%d{yyyy-MM-dd}_" \
|
||||
${TOMCAT_DIR}/shared/classes/alfresco/extension/dev-log4j2.properties
|
||||
|
||||
USER ${USERNAME}
|
@@ -1,3 +1,6 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
@@ -15,15 +18,12 @@
|
||||
# RUN TIME PROPERTIES
|
||||
# -------------------
|
||||
|
||||
########################################################################################################################
|
||||
# Alfresco configuration for running locally
|
||||
#
|
||||
# Alfresco configuration for running locally with PostgreSQL Database
|
||||
#
|
||||
# Configuration when running Tomcat embedded from Maven.
|
||||
# This will create the alf_data_dev directory relative to Tomcat run folder.
|
||||
# Property values from the POM but it can also be edited here.
|
||||
########################################################################################################################
|
||||
|
||||
dir.root=${alfresco.data.location}
|
||||
#
|
||||
|
||||
# Alfresco Repo Webapp (alfresco.war) context, ports etc
|
||||
alfresco.context=alfresco
|
||||
@@ -34,14 +34,11 @@ alfresco.protocol=http
|
||||
# Alfresco Share Webapp (share.war) context, ports etc
|
||||
share.context=share
|
||||
share.host=localhost
|
||||
share.port=8080
|
||||
share.port=8180
|
||||
share.protocol=http
|
||||
|
||||
# Don't try and recover any index
|
||||
index.recovery.mode=NONE
|
||||
# As we run embedded, we set Lucene
|
||||
# TODO: Find a better solution for indexing, as buildonly (embedded Lucene) is deprecated and going to be removed soon
|
||||
index.subsystem.name=buildonly
|
||||
|
||||
# These jobs seem to require Lucene (Unsupported Operation with Solr) so we disable them / set to future date
|
||||
# See https://forums.alfresco.com/en/viewtopic.php?f=52&t=41597
|
||||
@@ -53,16 +50,39 @@ wcmqs.publishQueueProcessor.schedule=0 50 2 * * ? 2060
|
||||
# Fail or not when there are node integrity checker errors
|
||||
integrity.failOnError=true
|
||||
|
||||
# Database connection properties
|
||||
db.driver=${alfresco.db.datasource.class}
|
||||
db.url=${alfresco.db.url}
|
||||
db.username=${alfresco.db.username}
|
||||
db.password=${alfresco.db.password}
|
||||
# Alfresco Repository PostgreSQL Database configuration.
|
||||
# The PostgreSQL Driver is brought in via the tomcat7-maven-plugin as a dependency.
|
||||
db.driver=org.postgresql.Driver
|
||||
|
||||
# This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module.
|
||||
# Define default values for all properties here.
|
||||
# System Administrators can override these values in environment specific configurations in
|
||||
# alfresco/tomcat/shared/classes/alfresco-global.properties.
|
||||
#
|
||||
index.subsystem.name=solr6
|
||||
solr.host=${rootArtifactId}-ass
|
||||
solr.port=8983
|
||||
solr.secureComms=secret
|
||||
solr.sharedSecret=secret
|
||||
|
||||
db.username=alfresco
|
||||
db.password=alfresco
|
||||
db.pool.initial=10
|
||||
db.pool.max=100
|
||||
hibernate.dialect=org.hibernate.dialect.H2Dialect
|
||||
|
||||
db.url=jdbc:postgresql://${rootArtifactId}-postgres:5432/alfresco
|
||||
|
||||
# File servers related properties
|
||||
# For local runs we disable CIFS and FTP
|
||||
cifs.enabled=false
|
||||
ftp.enabled=false
|
||||
ftp.enabled=false
|
||||
|
||||
csrf.filter.enabled=false
|
||||
|
||||
# Embedded broker without persistence
|
||||
messaging.broker.url=vm://localhost?broker.persistent=false
|
||||
|
||||
# Disable ATS
|
||||
transform.service.enabled=false
|
||||
local.transform.service.enabled=false
|
||||
legacy.transform.service.enabled=false
|
@@ -0,0 +1,412 @@
|
||||
rootLogger.level=error
|
||||
rootLogger.appenderRef.stdout.ref=ConsoleAppender
|
||||
rootLogger.appenderRef.rolling.ref=RollingAppender
|
||||
|
||||
# All outputs currently set to be a ConsoleAppender.
|
||||
appender.console.type=Console
|
||||
appender.console.name=ConsoleAppender
|
||||
appender.console.layout.type=PatternLayout
|
||||
# use log4j NDC to replace %x with tenant domain / username
|
||||
appender.console.layout.pattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %replace{%m}{[\r\n]+}{}%n
|
||||
|
||||
# File appender definition #
|
||||
appender.rolling.type=RollingFile
|
||||
appender.rolling.name=RollingAppender
|
||||
appender.rolling.fileName=alfresco.log
|
||||
appender.rolling.filePattern=alfresco.log.%d{yyyy-MM-dd}
|
||||
appender.rolling.layout.type=PatternLayout
|
||||
appender.rolling.layout.pattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %replace{%m}{[\r\n]+}{}%n
|
||||
appender.rolling.policies.type = Policies
|
||||
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
|
||||
appender.rolling.policies.time.interval = 1
|
||||
|
||||
# Commented-in loggers will be exposed as JMX MBeans (refer to org.alfresco.repo.admin.Log4J2HierarchyInit)
|
||||
# Hence, generally useful loggers should be listed with at least ERROR level to allow simple runtime
|
||||
# control of the level via a suitable JMX Console. Also, any other loggers can be added transiently via
|
||||
# Log4j2 addLoggerMBean as long as the logger exists and has been loaded.
|
||||
|
||||
# Hibernate
|
||||
logger.hibernate.name=org.hibernate
|
||||
logger.hibernate.level=error
|
||||
|
||||
logger.hibernate-util-JDBCExceptionReporter.name=org.hibernate.util.JDBCExceptionReporter
|
||||
logger.hibernate-util-JDBCExceptionReporter.level=fatal
|
||||
|
||||
logger.hibernate-event-def-AbstractFlushingEventListener.name=org.hibernate.event.def.AbstractFlushingEventListener
|
||||
logger.hibernate-event-def-AbstractFlushingEventListener.level=fatal
|
||||
|
||||
logger.hibernate-type.name=org.hibernate.type
|
||||
logger.hibernate-type.level=warn
|
||||
|
||||
logger.hibernate-cfg-SettingsFactory.name=org.hibernate.cfg.SettingsFactory
|
||||
logger.hibernate-cfg-SettingsFactory.level=warn
|
||||
|
||||
# Spring
|
||||
logger.springframework.name=org.springframework
|
||||
logger.springframework.level=warn
|
||||
# Turn off Spring remoting warnings that should really be info or debug.
|
||||
logger.springframework-remoting-support.name=org.springframework.remoting.support
|
||||
logger.springframework-remoting-support.level=error
|
||||
|
||||
logger.springframework-util.name=org.springframework.util
|
||||
logger.springframework-util.level=error
|
||||
|
||||
# Axis/WSS4J
|
||||
logger.apache-axis.name=org.apache.axis
|
||||
logger.apache-axis.level=info
|
||||
|
||||
logger.apache-ws.name=org.apache.ws
|
||||
logger.apache-ws.level=info
|
||||
|
||||
# CXF
|
||||
logger.apache-cxf.name=org.apache.cxf
|
||||
logger.apache-cxf.level=error
|
||||
|
||||
# MyFaces
|
||||
logger.apache-myfaces-util-DebugUtils.name=org.apache.myfaces.util.DebugUtils
|
||||
logger.apache-myfaces-util-DebugUtils.level=info
|
||||
|
||||
logger.apache-myfaces-el-VariableResolverImpl.name=org.apache.myfaces.el.VariableResolverImpl
|
||||
logger.apache-myfaces-el-VariableResolverImpl.level=error
|
||||
|
||||
logger.apache-myfaces-application-jsp-JspViewHandlerImpl.name=org.apache.myfaces.application.jsp.JspViewHandlerImpl
|
||||
logger.apache-myfaces-application-jsp-JspViewHandlerImpl.level=error
|
||||
|
||||
logger.apache-myfaces-taglib.name=org.apache.myfaces.taglib
|
||||
logger.apache-myfaces-taglib.level=error
|
||||
|
||||
# OpenOfficeConnection
|
||||
logger.sf-jooreports-openoffice-connection.name=net.sf.jooreports.openoffice.connection
|
||||
logger.sf-jooreports-openoffice-connection.level=fatal
|
||||
|
||||
# log prepared statement cache activity log4j.logger.org.hibernate.ps.PreparedStatementCache=info
|
||||
|
||||
# Alfresco
|
||||
logger.alfresco.name=org.alfresco
|
||||
logger.alfresco.level=error
|
||||
|
||||
logger.alfresco-repo-admin.name=org.alfresco.repo.admin
|
||||
logger.alfresco-repo-admin.level=info
|
||||
|
||||
logger.alfresco-repo-transaction.name=org.alfresco.repo.transaction
|
||||
logger.alfresco-repo-transaction.level=warn
|
||||
|
||||
logger.alfresco-repo-cache-TransactionalCache.name=org.alfresco.repo.cache.TransactionalCache
|
||||
logger.alfresco-repo-cache-TransactionalCache.level=warn
|
||||
|
||||
logger.alfresco-repo-model-filefolder.name=org.alfresco.repo.model.filefolder
|
||||
logger.alfresco-repo-model-filefolder.level=warn
|
||||
|
||||
logger.alfresco-repo-tenant.name=org.alfresco.repo.tenant
|
||||
logger.alfresco-repo-tenant.level=info
|
||||
|
||||
logger.alfresco-config.name=org.alfresco.config
|
||||
logger.alfresco-config.level=warn
|
||||
|
||||
logger.alfresco-config-JndiObjectFactoryBean.name=org.alfresco.config.JndiObjectFactoryBean
|
||||
logger.alfresco-config-JndiObjectFactoryBean.level=warn
|
||||
|
||||
logger.alfresco-config-JBossEnabledWebApplicationContext.name=org.alfresco.config.JBossEnabledWebApplicationContext
|
||||
logger.alfresco-config-JBossEnabledWebApplicationContext.level=warn
|
||||
|
||||
logger.alfresco-repo-management-subsystems.name=org.alfresco.repo.management.subsystems
|
||||
logger.alfresco-repo-management-subsystems.level=warn
|
||||
|
||||
logger.alfresco-repo-management-subsystems-ChildApplicationContextFactory.name=org.alfresco.repo.management.subsystems.ChildApplicationContextFactory
|
||||
logger.alfresco-repo-management-subsystems-ChildApplicationContextFactory.level=info
|
||||
|
||||
logger.alfresco-repo-management-subsystems-ChildApplicationContextFactory$ChildApplicationContext.name=org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ChildApplicationContext
|
||||
logger.alfresco-repo-management-subsystems-ChildApplicationContextFactory$ChildApplicationContext.level=warn
|
||||
|
||||
logger.alfresco-repo-security-sync.name=org.alfresco.repo.security.sync
|
||||
logger.alfresco-repo-security-sync.level=info
|
||||
|
||||
logger.alfresco-repo-security-person.name=org.alfresco.repo.security.person
|
||||
logger.alfresco-repo-security-person.level=info
|
||||
|
||||
logger.alfresco-sample.name=org.alfresco.sample
|
||||
logger.alfresco-sample.level=info
|
||||
|
||||
logger.alfresco-web.name=org.alfresco.web
|
||||
logger.alfresco-web.level=info
|
||||
|
||||
logger.alfresco-service-descriptor-DescriptorService.name=org.alfresco.service.descriptor.DescriptorService
|
||||
logger.alfresco-service-descriptor-DescriptorService.level=info
|
||||
|
||||
logger.alfresco-repo-importer-ImporterBootstrap.name=org.alfresco.repo.importer.ImporterBootstrap
|
||||
logger.alfresco-repo-importer-ImporterBootstrap.level=error
|
||||
#log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=info
|
||||
|
||||
logger.alfresco-repo-admin-patch-PatchExecuter.name=org.alfresco.repo.admin.patch.PatchExecuter
|
||||
logger.alfresco-repo-admin-patch-PatchExecuter.level=info
|
||||
|
||||
logger.alfresco-repo-domain-patch-ibatis-PatchDAOImpl.name=org.alfresco.repo.domain.patch.ibatis.PatchDAOImpl
|
||||
logger.alfresco-repo-domain-patch-ibatis-PatchDAOImpl.level=info
|
||||
|
||||
# Specific patches
|
||||
logger.alfresco-repo-admin-patch-impl-DeploymentMigrationPatch.name=org.alfresco.repo.admin.patch.impl.DeploymentMigrationPatch
|
||||
logger.alfresco-repo-admin-patch-impl-DeploymentMigrationPatch.level=info
|
||||
|
||||
logger.alfresco-repo-version-VersionMigrator.name=org.alfresco.repo.version.VersionMigrator
|
||||
logger.alfresco-repo-version-VersionMigrator.level=info
|
||||
|
||||
logger.alfresco-repo-module-ModuleServiceImpl.name=org.alfresco.repo.module.ModuleServiceImpl
|
||||
logger.alfresco-repo-module-ModuleServiceImpl.level=info
|
||||
|
||||
logger.alfresco-repo-domain-schema-SchemaBootstrap.name=org.alfresco.repo.domain.schema.SchemaBootstrap
|
||||
logger.alfresco-repo-domain-schema-SchemaBootstrap.level=info
|
||||
|
||||
logger.alfresco-repo-admin-ConfigurationChecker.name=org.alfresco.repo.admin.ConfigurationChecker
|
||||
logger.alfresco-repo-admin-ConfigurationChecker.level=info
|
||||
|
||||
logger.alfresco-repo-node-index-AbstractReindexComponent.name=org.alfresco.repo.node.index.AbstractReindexComponent
|
||||
logger.alfresco-repo-node-index-AbstractReindexComponent.level=warn
|
||||
|
||||
logger.alfresco-repo-node-index-IndexTransactionTracker.name=org.alfresco.repo.node.index.IndexTransactionTracker
|
||||
logger.alfresco-repo-node-index-IndexTransactionTracker.level=warn
|
||||
|
||||
logger.alfresco-repo-node-index-FullIndexRecoveryComponent.name=org.alfresco.repo.node.index.FullIndexRecoveryComponent
|
||||
logger.alfresco-repo-node-index-FullIndexRecoveryComponent.level=info
|
||||
|
||||
#logger.alfresco-repo-node-db-hibernate-HibernateNodeDaoServiceImpl.name=org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl
|
||||
#logger.alfresco-repo-node-db-hibernate-HibernateNodeDaoServiceImpl.level=warn
|
||||
|
||||
logger.alfresco-repo-domain-hibernate-DirtySessionMethodInterceptor.name=org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor
|
||||
logger.alfresco-repo-domain-hibernate-DirtySessionMethodInterceptor.level=warn
|
||||
|
||||
logger.alfresco-repo-transaction-RetryingTransactionHelper.name=org.alfresco.repo.transaction.RetryingTransactionHelper
|
||||
logger.alfresco-repo-transaction-RetryingTransactionHelper.level=warn
|
||||
|
||||
logger.alfresco-util-transaction-SpringAwareUserTransaction-trace.name=org.alfresco.util.transaction.SpringAwareUserTransaction.trace
|
||||
logger.alfresco-util-transaction-SpringAwareUserTransaction-trace.level=warn
|
||||
|
||||
logger.alfresco-util-AbstractTriggerBean.name=org.alfresco.util.AbstractTriggerBean
|
||||
logger.alfresco-util-AbstractTriggerBean.level=warn
|
||||
|
||||
logger.alfresco-enterprise-repo-cluster.name=org.alfresco.enterprise.repo.cluster
|
||||
logger.alfresco-enterprise-repo-cluster.level=info
|
||||
|
||||
logger.alfresco-repo-version-Version2ServiceImpl.name=org.alfresco.repo.version.Version2ServiceImpl
|
||||
logger.alfresco-repo-version-Version2ServiceImpl.level=warn
|
||||
|
||||
#logger.alfresco-web-app-DebugPhaseListener.name=org.alfresco.web.app.DebugPhaseListener
|
||||
#logger.alfresco-web-app-DebugPhaseListener.level=debug
|
||||
|
||||
logger.alfresco-repo-node-db-NodeStringLengthWorker.name=org.alfresco.repo.node.db.NodeStringLengthWorker
|
||||
logger.alfresco-repo-node-db-NodeStringLengthWorker.level=info
|
||||
|
||||
logger.alfresco-repo-workflow.name=org.alfresco.repo.workflow
|
||||
logger.alfresco-repo-workflow.level=info
|
||||
|
||||
# FTP server debugging
|
||||
logger.alfresco-ftp-protocol.name=org.alfresco.ftp.protocol
|
||||
logger.alfresco-ftp-protocol.level=error
|
||||
|
||||
# WebDAV debugging
|
||||
logger.alfresco-webdav-protocol.name=org.alfresco.webdav.protocol
|
||||
logger.alfresco-webdav-protocol.level=info
|
||||
|
||||
# NTLM servlet filters
|
||||
#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
|
||||
#log4j.logger.org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter=debug
|
||||
|
||||
# Kerberos servlet filters
|
||||
#log4j.logger.org.alfresco.web.app.servlet.KerberosAuthenticationFilter=debug
|
||||
#log4j.logger.org.alfresco.repo.webdav.auth.KerberosAuthenticationFilter=debug
|
||||
|
||||
# File servers
|
||||
logger.alfresco-fileserver.name=org.alfresco.fileserver
|
||||
logger.alfresco-fileserver.level=warn
|
||||
|
||||
# Repo filesystem debug logging
|
||||
#log4j.logger.org.alfresco.filesys.repo.ContentDiskDriver=debug
|
||||
|
||||
# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated
|
||||
logger.alfresco-repo-node-integrity.name=org.alfresco.repo.node.integrity
|
||||
logger.alfresco-repo-node-integrity.level=error
|
||||
|
||||
# Indexer debugging
|
||||
logger.alfresco-repo-search-Indexer.name=org.alfresco.repo.search.Indexer
|
||||
logger.alfresco-repo-search-Indexer.level=error
|
||||
|
||||
logger.alfresco-repo-search-impl-lucene-index.name=org.alfresco.repo.search.impl.lucene.index
|
||||
logger.alfresco-repo-search-impl-lucene-index.level=error
|
||||
|
||||
logger.alfresco-repo-search-impl-lucene-fts-FullTextSearchIndexerImpl.name=org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl
|
||||
logger.alfresco-repo-search-impl-lucene-fts-FullTextSearchIndexerImpl.level=warn
|
||||
|
||||
# Audit debugging
|
||||
# log4j.logger.org.alfresco.repo.audit=DEBUG
|
||||
# log4j.logger.org.alfresco.repo.audit.model=DEBUG
|
||||
|
||||
# Property sheet and modelling debugging
|
||||
# change to error to hide the warnings about missing properties and associations
|
||||
logger.missingProperties.name=alfresco.missingProperties
|
||||
logger.missingProperties.level=warn
|
||||
|
||||
# Dictionary/Model debugging
|
||||
logger.alfresco-repo-dictionary.name=org.alfresco.repo.dictionary
|
||||
logger.alfresco-repo-dictionary.level=warn
|
||||
|
||||
# Virtualization Server Registry
|
||||
logger.alfresco-mbeans-VirtServerRegistry.name=org.alfresco.mbeans.VirtServerRegistry
|
||||
logger.alfresco-mbeans-VirtServerRegistry.level=error
|
||||
|
||||
# Spring context runtime property setter
|
||||
logger.alfresco-util-RuntimeSystemPropertiesSetter.name=org.alfresco.util.RuntimeSystemPropertiesSetter
|
||||
logger.alfresco-util-RuntimeSystemPropertiesSetter.level=info
|
||||
|
||||
# Debugging options for clustering
|
||||
logger.alfresco-repo-content-ReplicatingContentStore.name=org.alfresco.repo.content.ReplicatingContentStore
|
||||
logger.alfresco-repo-content-ReplicatingContentStore.level=error
|
||||
|
||||
logger.alfresco-repo-content-replication.name=org.alfresco.repo.content.replication
|
||||
logger.alfresco-repo-content-replication.level=error
|
||||
|
||||
#log4j.logger.org.alfresco.repo.deploy.DeploymentServiceImpl=debug
|
||||
|
||||
# Activity service
|
||||
logger.alfresco-repo-activities.name=org.alfresco.repo.activities
|
||||
logger.alfresco-repo-activities.level=warn
|
||||
|
||||
# User usage tracking
|
||||
logger.alfresco-repo-usage.name=org.alfresco.repo.usage
|
||||
logger.alfresco-repo-usage.level=info
|
||||
|
||||
# Sharepoint
|
||||
logger.alfresco-module-vti.name=org.alfresco.module.vti
|
||||
logger.alfresco-module-vti.level=info
|
||||
|
||||
# Forms Engine
|
||||
logger.alfresco-web-config-forms.name=org.alfresco.web.config.forms
|
||||
logger.alfresco-web-config-forms.level=info
|
||||
|
||||
logger.alfresco-web-scripts-forms.name=org.alfresco.web.scripts.forms
|
||||
logger.alfresco-web-scripts-forms.level=info
|
||||
|
||||
# CMIS
|
||||
logger.alfresco-opencmis.name=org.alfresco.opencmis
|
||||
logger.alfresco-opencmis.level=error
|
||||
|
||||
logger.alfresco-opencmis-AlfrescoCmisServiceInterceptor.name=org.alfresco.opencmis.AlfrescoCmisServiceInterceptor
|
||||
logger.alfresco-opencmis-AlfrescoCmisServiceInterceptor.level=error
|
||||
|
||||
logger.alfresco-cmis.name=org.alfresco.cmis
|
||||
logger.alfresco-cmis.level=error
|
||||
|
||||
logger.alfresco-cmis-dictionary.name=org.alfresco.cmis.dictionary
|
||||
logger.alfresco-cmis-dictionary.level=warn
|
||||
|
||||
logger.apache-chemistry-opencmis.name=org.apache.chemistry.opencmis
|
||||
logger.apache-chemistry-opencmis.level=info
|
||||
|
||||
logger.apache-chemistry-opencmis-server-impl-browser-CmisBrowserBindingServlet.name=org.apache.chemistry.opencmis.server.impl.browser.CmisBrowserBindingServlet
|
||||
logger.apache-chemistry-opencmis-server-impl-browser-CmisBrowserBindingServlet.level=off
|
||||
|
||||
logger.apache-chemistry-opencmis-server-impl-atompub-CmisAtomPubServlet.name=org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet
|
||||
logger.apache-chemistry-opencmis-server-impl-atompub-CmisAtomPubServlet.level=off
|
||||
|
||||
# IMAP
|
||||
logger.alfresco-repo-imap.name=org.alfresco.repo.imap
|
||||
logger.alfresco-repo-imap.level=info
|
||||
|
||||
# JBPM
|
||||
# Note: non-fatal errors (eg. logged during job execution) should be handled by Alfresco's retrying transaction handler
|
||||
logger.jbpm-graph-def-GraphElement.name=org.jbpm.graph.def.GraphElement
|
||||
logger.jbpm-graph-def-GraphElement.level=fatal
|
||||
|
||||
# Web Framework
|
||||
logger.springframework-extensions-webscripts.name=org.springframework.extensions.webscripts
|
||||
logger.springframework-extensions-webscripts.level=info
|
||||
|
||||
logger.springframework-extensions-webscripts-ScriptLogger.name=org.springframework.extensions.webscripts.ScriptLogger
|
||||
logger.springframework-extensions-webscripts-ScriptLogger.level=warn
|
||||
|
||||
logger.springframework-extensions-webscripts-ScriptDebugger.name=org.springframework.extensions.webscripts.ScriptDebugger
|
||||
logger.springframework-extensions-webscripts-ScriptDebugger.level=off
|
||||
|
||||
# Repository
|
||||
logger.alfresco-repo-web-scripts.name=org.alfresco.repo.web.scripts
|
||||
logger.alfresco-repo-web-scripts.level=warn
|
||||
|
||||
logger.alfresco-repo-web-scripts-BaseWebScriptTest.name=org.alfresco.repo.web.scripts.BaseWebScriptTest
|
||||
logger.alfresco-repo-web-scripts-BaseWebScriptTest.level=info
|
||||
|
||||
logger.alfresco-repo-web-scripts-AlfrescoRhinoScriptDebugger.name=org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger
|
||||
logger.alfresco-repo-web-scripts-AlfrescoRhinoScriptDebugger.level=off
|
||||
|
||||
logger.alfresco-repo-jscript.name=org.alfresco.repo.jscript
|
||||
logger.alfresco-repo-jscript.level=error
|
||||
|
||||
logger.alfresco-repo-jscript-ScriptLogger.name=org.alfresco.repo.jscript.ScriptLogger
|
||||
logger.alfresco-repo-jscript-ScriptLogger.level=warn
|
||||
|
||||
logger.alfresco-repo-cmis-rest-CMISTest.name=org.alfresco.repo.cmis.rest.CMISTest
|
||||
logger.alfresco-repo-cmis-rest-CMISTest.level=info
|
||||
|
||||
logger.alfresco-repo-domain-schema-script-ScriptBundleExecutorImpl.name=org.alfresco.repo.domain.schema.script.ScriptBundleExecutorImpl
|
||||
logger.alfresco-repo-domain-schema-script-ScriptBundleExecutorImpl.level=off
|
||||
|
||||
logger.alfresco-repo-domain-schema-script-ScriptExecutorImpl.name=org.alfresco.repo.domain.schema.script.ScriptExecutorImpl
|
||||
logger.alfresco-repo-domain-schema-script-ScriptExecutorImpl.level=info
|
||||
|
||||
logger.alfresco-repo-domain-schema-script-DeleteNotExistsExecutor.name=org.alfresco.repo.domain.schema.script.DeleteNotExistsExecutor
|
||||
logger.alfresco-repo-domain-schema-script-DeleteNotExistsExecutor.level=off
|
||||
|
||||
logger.alfresco-repo-search-impl-solr-facet-SolrFacetServiceImpl.name=org.alfresco.repo.search.impl.solr.facet.SolrFacetServiceImpl
|
||||
logger.alfresco-repo-search-impl-solr-facet-SolrFacetServiceImpl.level=info
|
||||
|
||||
# Bulk Filesystem Import Tool
|
||||
logger.alfresco-repo-bulkimport.name=org.alfresco.repo.bulkimport
|
||||
logger.alfresco-repo-bulkimport.level=warn
|
||||
|
||||
# Freemarker
|
||||
# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
|
||||
logger.runtime.name=freemarker.runtime
|
||||
logger.runtime.level=
|
||||
|
||||
# Metadata extraction
|
||||
logger.alfresco-repo-content-metadata-AbstractMappingMetadataExtracter.name=org.alfresco.repo.content.metadata.AbstractMappingMetadataExtracter
|
||||
logger.alfresco-repo-content-metadata-AbstractMappingMetadataExtracter.level=warn
|
||||
|
||||
# Reduces PDFont error level due to ALF-7105
|
||||
logger.apache-pdfbox-pdmodel-font-PDSimpleFont.name=org.apache.pdfbox.pdmodel.font.PDSimpleFont
|
||||
logger.apache-pdfbox-pdmodel-font-PDSimpleFont.level=fatal
|
||||
|
||||
logger.apache-pdfbox-pdmodel-font-PDCIDFont.name=org.apache.pdfbox.pdmodel.font.PDCIDFont
|
||||
logger.apache-pdfbox-pdmodel-font-PDCIDFont.level=fatal
|
||||
|
||||
# no index support
|
||||
logger.alfresco-repo-search-impl-noindex-NoIndexIndexer.name=org.alfresco.repo.search.impl.noindex.NoIndexIndexer
|
||||
logger.alfresco-repo-search-impl-noindex-NoIndexIndexer.level=fatal
|
||||
|
||||
logger.alfresco-repo-search-impl-noindex-NoIndexSearchService.name=org.alfresco.repo.search.impl.noindex.NoIndexSearchService
|
||||
logger.alfresco-repo-search-impl-noindex-NoIndexSearchService.level=fatal
|
||||
|
||||
# lucene index warnings
|
||||
logger.alfresco-repo-search-impl-lucene-index-IndexInfo.name=org.alfresco.repo.search.impl.lucene.index.IndexInfo
|
||||
logger.alfresco-repo-search-impl-lucene-index-IndexInfo.level=warn
|
||||
|
||||
# Warn about RMI socket bind retries.
|
||||
logger.alfresco-util-remote-server-socket-HostConfigurableSocketFactory.name=org.alfresco.util.remote.server.socket.HostConfigurableSocketFactory
|
||||
logger.alfresco-util-remote-server-socket-HostConfigurableSocketFactory.level=warn
|
||||
|
||||
logger.alfresco-repo-usage-RepoUsageMonitor.name=org.alfresco.repo.usage.RepoUsageMonitor
|
||||
logger.alfresco-repo-usage-RepoUsageMonitor.level=info
|
||||
|
||||
# Authorization
|
||||
logger.alfresco-enterprise-repo-authorization-AuthorizationService.name=org.alfresco.enterprise.repo.authorization.AuthorizationService
|
||||
logger.alfresco-enterprise-repo-authorization-AuthorizationService.level=info
|
||||
|
||||
logger.alfresco-enterprise-repo-authorization-AuthorizationsConsistencyMonitor.name=org.alfresco.enterprise.repo.authorization.AuthorizationsConsistencyMonitor
|
||||
logger.alfresco-enterprise-repo-authorization-AuthorizationsConsistencyMonitor.level=warn
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Platform module logging
|
||||
#-----------------------------------------------------------------------
|
||||
logger.platformsample-DemoComponent.name=${package}.platformsample.DemoComponent
|
||||
logger.platformsample-DemoComponent.level=debug
|
||||
logger.platformsample-HelloWorldWebScript.name=${package}.platformsample.HelloWorldWebScript
|
||||
logger.platformsample-HelloWorldWebScript.level=debug
|
||||
|
||||
|
@@ -0,0 +1,51 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
# Enable hotswap so that changes in this module will be automatically reloaded
|
||||
# Watch for changed class files on watchResources path and reload class definition in the running application.
|
||||
autoHotswap=true
|
||||
#autoHotswap.port=8000
|
||||
|
||||
# Add a directory prior to application classpath (load classes and resources).
|
||||
#
|
||||
# This may be useful for example in multi module maven project to load class changes from upstream project
|
||||
# classes. Set extraClasspath to upstream project compiler output and .class file will have precedence to
|
||||
# classes from built JAR file.
|
||||
# i.e. monitor /target/classes
|
||||
# should work with extraClasspath=${project.build.outputDirectory}
|
||||
# If not try
|
||||
extraClasspath=/usr/local/tomcat/hotswap-agent
|
||||
|
||||
# Comma separated list of disabled plugins
|
||||
# Use plugin name - e.g.
|
||||
# Hotswapper, AnonymousClassPatch, WatchResources, Hibernate, Spring, Jersey2, Jetty, Tomcat,
|
||||
# ZK, Logback, JSF, Seam, ELResolver, OsgiEquinox, Proxy, WebObjects, Weld, JBossModules, Resteasy, Gae
|
||||
disabledPlugins=Hibernate,Spring
|
||||
|
||||
# Add a directory prior to webapp path (load webapp resources).
|
||||
#
|
||||
# Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing.
|
||||
# Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp).
|
||||
extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-platform/target/classes/META-INF/resources;
|
||||
|
||||
# Load static web resources from different directory.
|
||||
#
|
||||
# This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...)
|
||||
webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-platform/target/classes/META-INF/resources;
|
||||
|
||||
# Watch for changes in a directory (resources only).
|
||||
#
|
||||
# Similar to extraClasspath this property adds classpath when searching for resources (not classes).
|
||||
# While extra classpath just modifies the classloader, this setting does nothing until the resource
|
||||
# is really changed.
|
||||
#
|
||||
# Sometimes it is not possible to point extraClasspath to your i.e. src/main/resources, because there are multiple
|
||||
# replacements of resources in a building step (maven filtering resource option).
|
||||
# This setting will leave i.e. src/target/classes as default source for resources, but after the resource is modified
|
||||
# in src/main/resources, the new changed resource is served instead.
|
||||
# watchResources=
|
||||
|
||||
LOGGER.org.hotswap.agent=DEBUG
|
||||
#LOGGER.org.hotswap.agent.plugin=TRACE
|
||||
#LOGGER.org.hotswap.agent.watch=TRACE
|
||||
#LOGGER.org.hotswap.agent.command=TRACE
|
@@ -0,0 +1,6 @@
|
||||
# Enterprise License location
|
||||
|
||||
Put the Alfresco Enterprise license file in this directory.
|
||||
It will then be copied into the ACS container in the
|
||||
$TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory.
|
||||
|
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Alfresco Platform/Repository JAR Module</name>
|
||||
<description>Platform/Repo JAR Module (to be included in the alfresco.war) - part of AIO - SDK 4.11.0-A1</description>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@@ -0,0 +1,66 @@
|
||||
<assembly
|
||||
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
|
||||
|
||||
<!--
|
||||
Note that the Module dependency specified in the configuration section for the Alfresco Maven Plugin
|
||||
needs to be set to amp if any 3rd party libs should be applied by MMT:
|
||||
`
|
||||
<platformModules>
|
||||
<moduleDependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>some-platform</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>amp</type>
|
||||
</moduleDependency>
|
||||
-->
|
||||
|
||||
<id>build-amp-file</id>
|
||||
|
||||
<formats>
|
||||
<format>amp</format>
|
||||
</formats>
|
||||
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
|
||||
<files>
|
||||
<!-- Filter module.properties and put at top level in the AMP -->
|
||||
<file>
|
||||
<source>src/main/resources/alfresco/module/${project.artifactId}/module.properties</source>
|
||||
<filtered>true</filtered>
|
||||
</file>
|
||||
<!-- Include AMP -> WAR mapping file (needed for custom mappings) -->
|
||||
<file>
|
||||
<source>src/main/assembly/file-mapping.properties</source>
|
||||
<filtered>false</filtered>
|
||||
</file>
|
||||
<!-- Add module-specific log4j2.properties configuration at top level in the AMP -->
|
||||
<file>
|
||||
<source>src/main/resources/alfresco/module/${project.artifactId}/log4j2.properties</source>
|
||||
<filtered>false</filtered>
|
||||
</file>
|
||||
</files>
|
||||
|
||||
<fileSets>
|
||||
<!-- Anything in the assembly/web directory will end up in the /web directory in the AMP -->
|
||||
<fileSet>
|
||||
<directory>src/main/assembly/web</directory>
|
||||
<outputDirectory>web</outputDirectory>
|
||||
<filtered>true</filtered> <!-- Will filter files and substitute POM props such as for example ${project.name} -->
|
||||
<excludes>
|
||||
<exclude>README.md</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
|
||||
<!-- Include the project artifact (JAR) in the /lib directory in the AMP, and any 3rd party libraries (JARs)
|
||||
used by the customization.
|
||||
-->
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>lib</outputDirectory>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
|
||||
</assembly>
|
@@ -1,14 +1,27 @@
|
||||
# Custom AMP to WAR location mappings
|
||||
|
||||
#
|
||||
# The following property can be used to include the standard set of mappings.
|
||||
# The contents of this file will override any defaults. The default is
|
||||
# 'true', i.e. the default mappings will be augmented or modified by values in
|
||||
# this file.
|
||||
#
|
||||
include.default=true
|
||||
|
||||
#
|
||||
# Custom mappings. If 'include.default' is false, then this is the complete set.
|
||||
#
|
||||
/web=/
|
||||
# Custom AMP to WAR location mappings
|
||||
|
||||
#
|
||||
# The following property can be used to include the standard set of mappings.
|
||||
# The contents of this file will override any defaults. The default is
|
||||
# 'true', i.e. the default mappings will be augmented or modified by values in
|
||||
# this file.
|
||||
#
|
||||
# Default mappings are:
|
||||
#
|
||||
# /config=/WEB-INF/classes
|
||||
# /lib=/WEB-INF/lib
|
||||
# /licenses=/WEB-INF/licenses
|
||||
# /web/jsp=/jsp
|
||||
# /web/css=/css
|
||||
# /web/images=/images
|
||||
# /web/scripts=/scripts
|
||||
# /web/php=/php
|
||||
#
|
||||
include.default=true
|
||||
|
||||
#
|
||||
# Custom mappings. If 'include.default' is false, then this is the complete set.
|
||||
# Map /web to / in AMP so we can override things like favicon.ico
|
||||
#
|
||||
/web=/
|
||||
|
@@ -0,0 +1,22 @@
|
||||
# Web resources that should override out-of-the-box files
|
||||
|
||||
Put here any web resources that should override out-of-the-box
|
||||
web resources, such as favicon.ico. They will then end up in the
|
||||
*/web* directory in the AMP, and applied to the WAR, and override
|
||||
any existing web resources in the Alfresco.WAR.
|
||||
|
||||
**Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT:
|
||||
|
||||
`
|
||||
<moduleDependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>some-platform</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>amp</type>
|
||||
</moduleDependency>
|
||||
`
|
||||
|
||||
**Important**. New web resources should not be located here, but instead
|
||||
in the usual place in the *src/main/resources/META-INF/resources* directory.
|
||||
|
||||
|
@@ -0,0 +1,35 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
/**
|
||||
* Copyright (C) 2017 Alfresco Software Limited.
|
||||
* <p/>
|
||||
* This file is part of the Alfresco SDK project.
|
||||
* <p/>
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* <p/>
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p/>
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ${package}.platformsample;
|
||||
|
||||
/**
|
||||
* This class does nothing except dump some output to <i>system.out</i>.
|
||||
* This is a sample taken from Maven Alfresco SDK
|
||||
*
|
||||
* @author Derek Hulley
|
||||
*/
|
||||
public class Demo
|
||||
{
|
||||
public void init()
|
||||
{
|
||||
System.out.println("Platform JAR Module class has been loaded");
|
||||
}
|
||||
}
|
@@ -1,23 +1,24 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
package ${package}.demoamp;
|
||||
/**
|
||||
* Copyright (C) 2017 Alfresco Software Limited.
|
||||
* <p/>
|
||||
* This file is part of the Alfresco SDK project.
|
||||
* <p/>
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* <p/>
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p/>
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ${package}.platformsample;
|
||||
|
||||
import org.alfresco.repo.module.AbstractModuleComponent;
|
||||
import org.alfresco.repo.nodelocator.NodeLocatorService;
|
||||
@@ -35,7 +36,7 @@ import org.apache.commons.logging.LogFactory;
|
||||
* @author Maurizio Pillitu
|
||||
*/
|
||||
public class DemoComponent extends AbstractModuleComponent {
|
||||
Log log = LogFactory.getLog(DemoComponent.class);
|
||||
private static Log logger = LogFactory.getLog(DemoComponent.class);
|
||||
|
||||
private NodeService nodeService;
|
||||
|
||||
@@ -55,8 +56,8 @@ public class DemoComponent extends AbstractModuleComponent {
|
||||
@Override
|
||||
protected void executeInternal() throws Throwable {
|
||||
System.out.println("DemoComponent has been executed");
|
||||
log.debug("Test debug logging. Congratulation your AMP is working");
|
||||
log.info("This is only for information purposed. Better remove me from the log in Production");
|
||||
logger.debug("Test debug logging. Congratulation your JAR Module is working");
|
||||
logger.info("This is only for information purposes. Better remove me from the log in Production");
|
||||
}
|
||||
|
||||
/**
|
@@ -0,0 +1,51 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/**
|
||||
* Copyright (C) 2017 Alfresco Software Limited.
|
||||
* <p/>
|
||||
* This file is part of the Alfresco SDK project.
|
||||
* <p/>
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* <p/>
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p/>
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ${package}.platformsample;
|
||||
|
||||
import org.springframework.extensions.webscripts.Cache;
|
||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* A demonstration Java controller for the Hello World Web Script.
|
||||
*
|
||||
* @author martin.bergljung@alfresco.com
|
||||
* @since 2.1.0
|
||||
*/
|
||||
public class HelloWorldWebScript extends DeclarativeWebScript {
|
||||
private static Log logger = LogFactory.getLog(HelloWorldWebScript.class);
|
||||
|
||||
protected Map<String, Object> executeImpl(
|
||||
WebScriptRequest req, Status status, Cache cache) {
|
||||
Map<String, Object> model = new HashMap<String, Object>();
|
||||
model.put("fromJava", "HelloFromJava");
|
||||
|
||||
logger.debug("Your 'Hello World' Web Script was called!");
|
||||
|
||||
return model;
|
||||
}
|
||||
}
|
@@ -0,0 +1 @@
|
||||
Test 123
|
@@ -4,4 +4,5 @@
|
||||
<url>/sample/helloworld</url>
|
||||
<authentication>user</authentication>
|
||||
<format default="html"></format>
|
||||
<lifecycle>sample</lifecycle>
|
||||
</webscript>
|
@@ -0,0 +1 @@
|
||||
Message: '${fromJS}' '${fromJava}'
|
@@ -0,0 +1 @@
|
||||
model["fromJS"] = "Hello from JS!";
|
@@ -1,5 +1,5 @@
|
||||
## This Alfresco Repo Configuration file should be used for custom properties that are introduced by this module.
|
||||
## This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module.
|
||||
## Define default values for all properties here.
|
||||
## System Administrators can override these values in environment specific configurations in
|
||||
## alfresco/tomcat/shared/classes/alfresco-global.properties.
|
||||
##
|
||||
##
|
@@ -0,0 +1,45 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<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-3.0.xsd">
|
||||
|
||||
<!-- The bootstrap-context.xml file is used for patch definitions, importers,
|
||||
workflow, and loading custom content models. -->
|
||||
|
||||
<!-- Registration of new models -->
|
||||
<bean id="${artifactId}.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
|
||||
<property name="models">
|
||||
<list>
|
||||
<value>alfresco/module/${project.artifactId}/model/content-model.xml</value>
|
||||
<value>alfresco/module/${project.artifactId}/model/workflow-model.xml</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="labels">
|
||||
<list>
|
||||
<!-- Bootstrap Resource Bundles for the content model types, aspects, properties etc -->
|
||||
<value>alfresco/module/${project.artifactId}/messages/content-model</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="${package}.sampleprocess.workflowBootstrap" parent="workflowDeployer">
|
||||
<property name="workflowDefinitions">
|
||||
<list>
|
||||
<props>
|
||||
<prop key="engineId">activiti</prop>
|
||||
<prop key="location">alfresco/module/${project.artifactId}/workflow/sample-process.bpmn20.xml</prop>
|
||||
<prop key="mimetype">text/xml</prop>
|
||||
</props>
|
||||
</list>
|
||||
</property>
|
||||
<property name="labels">
|
||||
<list>
|
||||
<value>alfresco/module/${project.artifactId}/messages/workflow-messages</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
@@ -2,7 +2,6 @@
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
@@ -10,32 +9,36 @@
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<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-3.0.xsd">
|
||||
|
||||
<!-- A simple class that is initialized by Spring -->
|
||||
<bean id="${package}.exampleBean" class="${package}.demoamp.Demo" init-method="init" />
|
||||
<bean id="${package}.Demo" class="${package}.platformsample.Demo" init-method="init" />
|
||||
|
||||
<!-- A simple module component that will be executed once.
|
||||
Note. this module component will only be executed once, and then there will be an entry for it in the Repo.
|
||||
So doing for example $ mvn clean install -Pamp-to-war twice will only execute this component the first time.
|
||||
You need to remove /alf_data_dev for it to be executed again. -->
|
||||
<bean id="${package}.exampleComponent" class="${package}.demoamp.DemoComponent" parent="module.baseComponent" >
|
||||
Note. this module component will only be executed once, and then there will be an entry for it in the Repo DB.
|
||||
So doing for example $ mvn clean install alfresco:run twice will only execute this component the first time.
|
||||
You need to remove /alf_data_dev for it to be executed again. -->
|
||||
<bean id="${package}.DemoComponent" class="${package}.platformsample.DemoComponent" parent="module.baseComponent" >
|
||||
<property name="moduleId" value="${artifactId}" /> <!-- See module.properties -->
|
||||
<property name="name" value="exampleComponent" />
|
||||
<property name="name" value="DemoComponent" />
|
||||
<property name="description" value="A demonstration component" />
|
||||
<property name="sinceVersion" value="1.0" />
|
||||
<property name="appliesFromVersion" value="1.0" />
|
||||
<property name="appliesFromVersion" value="0.99" /> <!-- 1.0 would not work here when using SNAPSHOT version in project -->
|
||||
<property name="nodeService" ref="NodeService" />
|
||||
<property name="nodeLocatorService" ref="nodeLocatorService" />
|
||||
</bean>
|
||||
|
||||
|
||||
</beans>
|
@@ -2,7 +2,6 @@
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
@@ -19,9 +18,12 @@
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<beans>
|
||||
<bean id="webscript.helloworld.get"
|
||||
class="${package}.demoamp.HelloWorldWebScript"
|
||||
<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-3.0.xsd">
|
||||
<bean id="webscript.alfresco.tutorials.helloworld.get"
|
||||
class="${package}.platformsample.HelloWorldWebScript"
|
||||
parent="webscript">
|
||||
</bean>
|
||||
</beans>
|
@@ -0,0 +1 @@
|
||||
# Add here module-specific custom log4j2.properties configuration
|
@@ -0,0 +1,6 @@
|
||||
# This file should contain content model labels
|
||||
|
||||
acme_contentModel.type.acme_document.title=ACME Document
|
||||
acme_contentModel.aspect.acme_securityClassified.title=ACME Security Classified
|
||||
acme_contentModel.property.acme_documentId.title=Document Id
|
||||
acme_contentModel.property.acme_securityClassification.title=Security Classification
|
@@ -0,0 +1,5 @@
|
||||
#
|
||||
# Activiti My Process Workflow
|
||||
#
|
||||
my-process.workflow.title=My Process
|
||||
my-process.workflow.description=This is my custom process
|
@@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<model name="acme:contentModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
|
||||
|
||||
<!-- Optional meta-data about the model -->
|
||||
<description>Sample Document Model</description>
|
||||
<author>My Name</author>
|
||||
<version>1.0</version>
|
||||
|
||||
<imports>
|
||||
<!-- Import Alfresco Dictionary Definitions -->
|
||||
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
|
||||
<!-- Import Alfresco Content Domain Model Definitions -->
|
||||
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
|
||||
<!-- Import Alfresco System Model Definitions -->
|
||||
<import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
|
||||
</imports>
|
||||
|
||||
<!-- Custom namespace for the ACME company -->
|
||||
<namespaces>
|
||||
<namespace uri="http://www.acme.org/model/content/1.0" prefix="acme"/>
|
||||
</namespaces>
|
||||
|
||||
<constraints>
|
||||
<constraint name="acme:securityClassificationOptions" type="LIST">
|
||||
<parameter name="allowedValues">
|
||||
<list>
|
||||
<value></value>
|
||||
<!-- Empty for default search-->
|
||||
<value>Public</value>
|
||||
<value>Client Confidential</value>
|
||||
<value>Company Confidential</value>
|
||||
<value>Strictly Confidential</value>
|
||||
</list>
|
||||
</parameter>
|
||||
</constraint>
|
||||
</constraints>
|
||||
|
||||
<!-- ===============================================================================================================
|
||||
Constraints, Types, and Aspects go here...
|
||||
-->
|
||||
|
||||
<types>
|
||||
<!--
|
||||
ACME Enterprise-wide Document root type.
|
||||
All other custom document types would extend this one.
|
||||
-->
|
||||
<type name="acme:document">
|
||||
<title>Sample Document Type</title>
|
||||
<parent>cm:content</parent>
|
||||
<properties>
|
||||
<property name="acme:documentId">
|
||||
<title>Document Identification Number</title>
|
||||
<type>d:text</type>
|
||||
</property>
|
||||
</properties>
|
||||
<mandatory-aspects>
|
||||
<aspect>acme:securityClassified</aspect>
|
||||
</mandatory-aspects>
|
||||
</type>
|
||||
</types>
|
||||
|
||||
<aspects>
|
||||
<!-- A document can have security classification applied and
|
||||
faceted search is specifically enabled for best performance and we change
|
||||
default index config to not tokenize the value. -->
|
||||
<aspect name="acme:securityClassified">
|
||||
<title>ACME Security Classified</title>
|
||||
<description>Content has been security classified</description>
|
||||
<properties>
|
||||
<property name="acme:securityClassification">
|
||||
<type>d:text</type>
|
||||
<index enabled="true">
|
||||
<atomic>true</atomic>
|
||||
<stored>false</stored>
|
||||
<tokenised>false</tokenised>
|
||||
</index>
|
||||
<constraints>
|
||||
<constraint ref="acme:securityClassificationOptions"/>
|
||||
</constraints>
|
||||
</property>
|
||||
</properties>
|
||||
</aspect>
|
||||
</aspects>
|
||||
|
||||
</model>
|
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<model name="myw:workflowModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
|
||||
<model name="acmew:workflowModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
|
||||
<!-- Optional meta-data about the model -->
|
||||
<description>Workflow Model for Repo Extension X</description>
|
||||
<description>Sample Workflow Model</description>
|
||||
<author>My Name</author>
|
||||
<version>1.0</version>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
<!-- Custom namespace for your domain -->
|
||||
<namespaces>
|
||||
<namespace uri="http://www.mycompany.com/model/workflow/1.0" prefix="myw"/>
|
||||
<namespace uri="http://www.acme.org/model/workflow/1.0" prefix="acmew"/>
|
||||
</namespaces>
|
||||
|
||||
<!-- ===============================================================================================================
|
@@ -15,12 +15,18 @@
|
||||
limitations under the License.
|
||||
|
||||
-->
|
||||
<!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-3.0.xsd">
|
||||
|
||||
<!-- This is filtered by Maven at build time, so that module name is single sourced. -->
|
||||
<!-- Note. The bootstrap-context.xml file has to be loaded first.
|
||||
Otherwise your custom models are not yet loaded when your service beans are instantiated and you
|
||||
cannot for example register policies on them. -->
|
||||
<import resource="classpath:alfresco/module/${project.artifactId}/context/bootstrap-context.xml" />
|
||||
<import resource="classpath:alfresco/module/${project.artifactId}/context/service-context.xml" />
|
||||
<import resource="classpath:alfresco/module/${project.artifactId}/context/bootstrap-context.xml" />
|
||||
<import resource="classpath:alfresco/module/${project.artifactId}/context/webscript-context.xml" />
|
||||
|
||||
</beans>
|
@@ -24,7 +24,7 @@ module.id=${project.artifactId}
|
||||
#module.aliases=myModule-123, my-module
|
||||
module.title=${project.name}
|
||||
module.description=${project.description}
|
||||
module.version=${noSnapshotVersion}
|
||||
module.version=${project.version}
|
||||
|
||||
# The following optional properties can be used to prevent the module from being added
|
||||
# to inappropriate versions of the WAR file.
|
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<definitions
|
||||
xmlns:activiti="http://activiti.org/bpmn"
|
||||
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" typeLanguage="http://www.w3.org/2001/XMLSchema"
|
||||
expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
|
||||
|
||||
<process id="my-process">
|
||||
|
||||
<startEvent id="start" activiti:formKey="wf:submitAdhocTask"/>
|
||||
<sequenceFlow id="flow1" sourceRef="start" targetRef="someTask"/>
|
||||
|
||||
<userTask id="someTask" name="Activiti is awesome!" activiti:formKey="wf:adhocTask">
|
||||
<humanPerformer>
|
||||
<resourceAssignmentExpression>
|
||||
<formalExpression>${bpm_assignee.properties.userName}</formalExpression>
|
||||
</resourceAssignmentExpression>
|
||||
</humanPerformer>
|
||||
</userTask>
|
||||
<sequenceFlow id="flow2" sourceRef="someTask" targetRef="end"/>
|
||||
|
||||
<endEvent id="end"/>
|
||||
|
||||
</process>
|
||||
|
||||
</definitions>
|
@@ -0,0 +1,56 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/**
|
||||
* Copyright (C) 2017 Alfresco Software Limited.
|
||||
* <p/>
|
||||
* This file is part of the Alfresco SDK project.
|
||||
* <p/>
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* <p/>
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* <p/>
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ${package}.platformsample;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.extensions.webscripts.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
/**
|
||||
* Unit testing the Web Script Java Controller
|
||||
*
|
||||
* @author martin.bergljung@alfresco.com
|
||||
* @version 1.0
|
||||
* @since 3.0
|
||||
*/
|
||||
public class HelloWorldWebScriptControllerTest {
|
||||
|
||||
@Test
|
||||
public void testController() {
|
||||
WebScriptRequest req = Mockito.mock(WebScriptRequest.class);
|
||||
Status status = Mockito.mock(Status.class);
|
||||
Cache cache = Mockito.mock(Cache.class);
|
||||
|
||||
String helloPropName = "fromJava";
|
||||
String helloPropExpectedValue = "HelloFromJava";
|
||||
HelloWorldWebScript ws = new HelloWorldWebScript();
|
||||
Map<String, Object> model = ws.executeImpl(req, status, cache);
|
||||
|
||||
assertNotNull("Response from Web Script Java Controller is null", model);
|
||||
assertEquals("Incorrect Web Script Java Controller Response",
|
||||
helloPropExpectedValue, model.get(helloPropName));
|
||||
}
|
||||
}
|
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Alfresco Share Docker Module</name>
|
||||
<description>Share Docker Module to generate the final Docker image</description>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}-share</artifactId>
|
||||
<version>${version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<!-- Collect extensions (JARs or AMPs) declared in this module do be deployed to docker -->
|
||||
<execution>
|
||||
<id>collect-extensions</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
|
||||
<includeScope>runtime</includeScope>
|
||||
<!-- IMPORTANT: if using amp dependencies only, add <includeTypes>amp</includeTypes> -->
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Filter the Dockerfile and the other files added to the container to be able to replace maven properties -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-and-filter-docker-resources</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/docker</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@@ -0,0 +1,16 @@
|
||||
FROM ${docker.share.image}:${alfresco.share.docker.version}
|
||||
|
||||
ARG TOMCAT_DIR=/usr/local/tomcat
|
||||
|
||||
# Copy Dockerfile to avoid an error if no JARs exist
|
||||
COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/
|
||||
|
||||
# Copy Dockerfile to avoid an error if no AMPs exist
|
||||
COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/
|
||||
RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
|
||||
$TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force
|
||||
|
||||
COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension
|
||||
|
||||
COPY log4j2.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes
|
||||
COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes
|
@@ -0,0 +1,52 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
# Enable hotswap so that changes in this module will be automatically reloaded
|
||||
# Watch for changed class files on watchResources path and reload class definition in the running application.
|
||||
autoHotswap=true
|
||||
#autoHotswap.port=8000
|
||||
|
||||
# Add a directory prior to application classpath (load classes and resources).
|
||||
#
|
||||
# This may be useful for example in multi module maven project to load class changes from upstream project
|
||||
# classes. Set extraClasspath to upstream project compiler output and .class file will have precedence to
|
||||
# classes from built JAR file.
|
||||
# i.e. monitor /target/classes
|
||||
# should work with extraClasspath=${project.build.outputDirectory}
|
||||
# If not try
|
||||
extraClasspath=/usr/local/tomcat/hotswap-agent
|
||||
|
||||
|
||||
# Comma separated list of disabled plugins
|
||||
# Use plugin name - e.g.
|
||||
# Hotswapper, AnonymousClassPatch, WatchResources, Hibernate, Spring, Jersey2, Jetty, Tomcat,
|
||||
# ZK, Logback, JSF, Seam, ELResolver, OsgiEquinox, Proxy, WebObjects, Weld, JBossModules, Resteasy, Gae
|
||||
disabledPlugins=Hibernate,Spring
|
||||
|
||||
# Add a directory prior to webapp path (load webapp resources).
|
||||
#
|
||||
# Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing.
|
||||
# Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp).
|
||||
extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-share/target/classes/META-INF/resources;
|
||||
|
||||
# Load static web resources from different directory.
|
||||
#
|
||||
# This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...)
|
||||
webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-share/target/classes/META-INF/resources;
|
||||
|
||||
# Watch for changes in a directory (resources only).
|
||||
#
|
||||
# Similar to extraClasspath this property adds classpath when searching for resources (not classes).
|
||||
# While extra classpath just modifies the classloader, this setting does nothing until the resource
|
||||
# is really changed.
|
||||
#
|
||||
# Sometimes it is not possible to point extraClasspath to your i.e. src/main/resources, because there are multiple
|
||||
# replacements of resources in a building step (maven filtering resource option).
|
||||
# This setting will leave i.e. src/target/classes as default source for resources, but after the resource is modified
|
||||
# in src/main/resources, the new changed resource is served instead.
|
||||
# watchResources=
|
||||
|
||||
LOGGER.org.hotswap.agent=DEBUG
|
||||
#LOGGER.org.hotswap.agent.plugin=TRACE
|
||||
#LOGGER.org.hotswap.agent.watch=TRACE
|
||||
#LOGGER.org.hotswap.agent.command=TRACE
|
@@ -0,0 +1,89 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
# Set root logger level to error
|
||||
#log4j.rootLogger=error, Console, File
|
||||
rootLogger.level=error
|
||||
rootLogger.appenderRef.stdout.ref=ConsoleAppender
|
||||
rootLogger.appenderRef.rolling.ref=RollingAppender
|
||||
|
||||
# Console appender definition #
|
||||
|
||||
# All outputs currently set to be a ConsoleAppender.
|
||||
appender.console.type=Console
|
||||
appender.console.name=ConsoleAppender
|
||||
appender.console.layout.type=PatternLayout
|
||||
appender.console.layout.pattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %replace{%m}{[\r\n]+}{}%n
|
||||
|
||||
# use log4j NDC to replace %x with tenant domain / username
|
||||
appender.console.layout.pattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %replace{%m}{[\r\n]+}{}%n
|
||||
|
||||
# File appender definition #
|
||||
appender.rolling.type=RollingFile
|
||||
appender.rolling.name=RollingAppender
|
||||
appender.rolling.fileName=alfresco.log
|
||||
appender.rolling.filePattern=alfresco.log.%d{yyyy-MM-dd}
|
||||
appender.rolling.layout.type=PatternLayout
|
||||
appender.rolling.layout.pattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %replace{%m}{[\r\n]+}{}%n
|
||||
appender.rolling.policies.type = Policies
|
||||
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
|
||||
appender.rolling.policies.time.interval = 1
|
||||
|
||||
# Spring
|
||||
logger.springframework.name=org.springframework
|
||||
logger.springframework.level=warn
|
||||
|
||||
# Turn off Spring remoting warnings that should really be info or debug.
|
||||
logger.springframework-remoting-support.name=org.springframework.remoting.support
|
||||
logger.springframework-remoting-support.level=error
|
||||
|
||||
logger.springframework-util.name=org.springframework.util
|
||||
logger.springframework-util.level=error
|
||||
|
||||
# MyFaces
|
||||
logger.apache-myfaces-util-DebugUtils.name=org.apache.myfaces.util.DebugUtils
|
||||
logger.apache-myfaces-util-DebugUtils.level=info
|
||||
|
||||
logger.apache-myfaces-el-VariableResolverImpl.name=org.apache.myfaces.el.VariableResolverImpl
|
||||
logger.apache-myfaces-el-VariableResolverImpl.level=error
|
||||
|
||||
logger.apache-myfaces-application-jsp-JspViewHandlerImpl.name=org.apache.myfaces.application.jsp.JspViewHandlerImpl
|
||||
logger.apache-myfaces-application-jsp-JspViewHandlerImpl.level=error
|
||||
|
||||
logger.apache-myfaces-taglib.name=org.apache.myfaces.taglib
|
||||
logger.apache-myfaces-taglib.level=error
|
||||
|
||||
# Alfresco
|
||||
logger.alfresco.name=org.alfresco
|
||||
logger.alfresco.level=error
|
||||
|
||||
logger.alfresco-config.name=org.alfresco.config
|
||||
logger.alfresco-config.level=warn
|
||||
|
||||
logger.alfresco-config-JndiObjectFactoryBean.name=org.alfresco.config.JndiObjectFactoryBean
|
||||
logger.alfresco-config-JndiObjectFactoryBean.level=warn
|
||||
|
||||
logger.alfresco-web.name=org.alfresco.web
|
||||
logger.alfresco-web.level=info
|
||||
|
||||
# Web Framework
|
||||
logger.springframework-extensions-webscripts.name=org.springframework.extensions.webscripts
|
||||
logger.springframework-extensions-webscripts.level=info
|
||||
|
||||
logger.springframework-extensions-webscripts-ScriptLogger.name=org.springframework.extensions.webscripts.ScriptLogger
|
||||
logger.springframework-extensions-webscripts-ScriptLogger.level=warn
|
||||
|
||||
logger.springframework-extensions-webscripts-ScriptDebugger.name=org.springframework.extensions.webscripts.ScriptDebugger
|
||||
logger.springframework-extensions-webscripts-ScriptDebugger.level=off
|
||||
|
||||
# Freemarker
|
||||
# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
|
||||
logger.freemarker-runtime.name=freemarker.runtime
|
||||
logger.freemarker-runtime.level=
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Custom Share module logging goes here...
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@@ -39,12 +39,13 @@
|
||||
|
||||
<!--
|
||||
Disable CSRF completely for now
|
||||
It seems Share has issues on 4.2.x with the embedded tomcat and CSRFPolicy
|
||||
It seems Share has issues on 4.x with the embedded tomcat and CSRFPolicy
|
||||
-->
|
||||
<config evaluator="string-compare" condition="CSRFPolicy" replace="true">
|
||||
<filter/>
|
||||
</config>
|
||||
|
||||
|
||||
<!--
|
||||
Change so it is picked up from property where the Alfresco Repo Webapp is running
|
||||
(e.g. http://localhost:8080/alfresco)
|
||||
@@ -56,7 +57,7 @@
|
||||
<name>Alfresco - unauthenticated access</name>
|
||||
<description>Access to Alfresco Repository WebScripts that do not require authentication</description>
|
||||
<connector-id>alfresco</connector-id>
|
||||
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
|
||||
<endpoint-url>http://${acs.host}:8080/alfresco/s</endpoint-url>
|
||||
<identity>none</identity>
|
||||
</endpoint>
|
||||
|
||||
@@ -65,7 +66,7 @@
|
||||
<name>Alfresco - user access</name>
|
||||
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
|
||||
<connector-id>alfresco</connector-id>
|
||||
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
|
||||
<endpoint-url>http://${acs.host}:8080/alfresco/s</endpoint-url>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
|
||||
@@ -74,7 +75,7 @@
|
||||
<name>Alfresco Feed</name>
|
||||
<description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
|
||||
<connector-id>http</connector-id>
|
||||
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
|
||||
<endpoint-url>http://${acs.host}:8080/alfresco/s</endpoint-url>
|
||||
<basic-auth>true</basic-auth>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
@@ -84,10 +85,29 @@
|
||||
<name>Activiti Admin UI - user access</name>
|
||||
<description>Access to Activiti Admin UI, that requires user authentication</description>
|
||||
<connector-id>activiti-admin-connector</connector-id>
|
||||
<endpoint-url>${alfresco.repo.url}/activiti-admin</endpoint-url>
|
||||
<endpoint-url>http://${acs.host}:8080/alfresco/activiti-admin</endpoint-url>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
|
||||
<endpoint>
|
||||
<id>alfresco-api</id>
|
||||
<parent-id>alfresco</parent-id>
|
||||
<name>Alfresco Public API - user access</name>
|
||||
<description>Access to Alfresco Repository Public API that require user authentication.
|
||||
This makes use of the authentication that is provided by parent 'alfresco' endpoint.</description>
|
||||
<connector-id>alfresco</connector-id>
|
||||
<endpoint-url>http://${acs.host}:8080/alfresco/api</endpoint-url>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
</remote>
|
||||
</config>
|
||||
<config evaluator="string-compare" condition="Users" replace="true">
|
||||
<users>
|
||||
<username-min-length>2</username-min-length>
|
||||
<password-min-length>3</password-min-length>
|
||||
<show-authorization-status>false</show-authorization-status>
|
||||
</users>
|
||||
<enable-external-users-panel>false</enable-external-users-panel>
|
||||
</config>
|
||||
</alfresco-config>
|
||||
|
@@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Alfresco Share JAR Module</name>
|
||||
<packaging>jar</packaging>
|
||||
<description>Sample Share JAR Module (to be included in the share.war) - part of AIO - SDK 4.11.0-A1</description>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
</properties>
|
||||
|
||||
<!-- Following dependencies are needed for compiling Java code in src/main/java;
|
||||
<scope>provided</scope> is inherited for each of the following;
|
||||
for more info, please refer to alfresco-platform-distribution POM -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share</artifactId>
|
||||
<classifier>classes</classifier>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@@ -0,0 +1,66 @@
|
||||
<assembly
|
||||
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
|
||||
|
||||
<!--
|
||||
Note that the Module dependency specified in the configuration section for the Alfresco Maven Plugin
|
||||
needs to be set to amp if any 3rd party libs should be applied by MMT:
|
||||
`
|
||||
<shareModules>
|
||||
<moduleDependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>some-share</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>amp</type>
|
||||
</moduleDependency>
|
||||
-->
|
||||
|
||||
<id>build-amp-file</id>
|
||||
|
||||
<formats>
|
||||
<format>amp</format>
|
||||
</formats>
|
||||
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
|
||||
<files>
|
||||
<!-- Filter module.properties and put at top level in the AMP -->
|
||||
<file>
|
||||
<source>src/main/resources/alfresco/module/${project.artifactId}/module.properties</source>
|
||||
<filtered>true</filtered>
|
||||
</file>
|
||||
<!-- Include AMP -> WAR mapping file (needed for custom mappings) -->
|
||||
<file>
|
||||
<source>src/main/assembly/file-mapping.properties</source>
|
||||
<filtered>false</filtered>
|
||||
</file>
|
||||
<!-- Add module-specific log4j2.properties configuration at top level in the AMP -->
|
||||
<file>
|
||||
<source>src/main/resources/alfresco/module/${project.artifactId}/log4j2.properties</source>
|
||||
<filtered>false</filtered>
|
||||
</file>
|
||||
</files>
|
||||
|
||||
<fileSets>
|
||||
<!-- Anything in the assembly/web directory will end up in the /web directory in the AMP -->
|
||||
<fileSet>
|
||||
<directory>src/main/assembly/web</directory>
|
||||
<outputDirectory>web</outputDirectory>
|
||||
<filtered>true</filtered> <!-- Will filter files and substitute POM props such as for example ${project.name} -->
|
||||
<excludes>
|
||||
<exclude>README.md</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
|
||||
<!-- Include the project artifact (JAR) in the /lib directory in the AMP, and any 3rd party libraries (JARs)
|
||||
used by the customization.
|
||||
-->
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<outputDirectory>lib</outputDirectory>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
|
||||
</assembly>
|
@@ -1,14 +1,27 @@
|
||||
# Custom AMP to WAR location mappings
|
||||
|
||||
#
|
||||
# The following property can be used to include the standard set of mappings.
|
||||
# The contents of this file will override any defaults. The default is
|
||||
# 'true', i.e. the default mappings will be augmented or modified by values in
|
||||
# this file.
|
||||
#
|
||||
include.default=true
|
||||
|
||||
#
|
||||
# Custom mappings. If 'include.default' is false, then this is the complete set.
|
||||
#
|
||||
/web=/
|
||||
# Custom AMP to WAR location mappings
|
||||
|
||||
#
|
||||
# The following property can be used to include the standard set of mappings.
|
||||
# The contents of this file will override any defaults. The default is
|
||||
# 'true', i.e. the default mappings will be augmented or modified by values in
|
||||
# this file.
|
||||
#
|
||||
# Default mappings are:
|
||||
#
|
||||
# /config=/WEB-INF/classes
|
||||
# /lib=/WEB-INF/lib
|
||||
# /licenses=/WEB-INF/licenses
|
||||
# /web/jsp=/jsp
|
||||
# /web/css=/css
|
||||
# /web/images=/images
|
||||
# /web/scripts=/scripts
|
||||
# /web/php=/php
|
||||
#
|
||||
include.default=true
|
||||
|
||||
#
|
||||
# Custom mappings. If 'include.default' is false, then this is the complete set.
|
||||
# Map /web to / in AMP so we can override things like favicon.ico
|
||||
#
|
||||
/web=/
|
||||
|
@@ -0,0 +1,22 @@
|
||||
# Web resources that should override out-of-the-box files
|
||||
|
||||
Put here any web resources that should override out-of-the-box
|
||||
web resources, such as favicon.ico. They will then end up in the
|
||||
*/web* directory in the AMP, and applied to the WAR, and override
|
||||
any existing web resources in the Share.WAR.
|
||||
|
||||
**Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT:
|
||||
|
||||
`
|
||||
<moduleDependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>some-share</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>amp</type>
|
||||
</moduleDependency>
|
||||
`
|
||||
|
||||
**Important**. New web resources should not be located here, but instead
|
||||
in the usual place in the *src/main/resources/META-INF/resources/<module-id>/* directory.
|
||||
|
||||
|
@@ -2,4 +2,5 @@
|
||||
border: 1px #000000 solid;
|
||||
padding: 1em;
|
||||
width: 100px;
|
||||
background-color: deepskyblue;
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
hello-label=Hello from i18n
|
||||
|
||||
|
@@ -0,0 +1,420 @@
|
||||
<!-- Share configuration related to this particular Share module extension, such as:
|
||||
- Doclib action config
|
||||
- Form config
|
||||
- Aspect and Type config
|
||||
- Advanced Search
|
||||
|
||||
Note. Any configuration related to the whole Share.war webapp
|
||||
(i.e. not specific to this share extension) should be
|
||||
placed in the environment specific config file:
|
||||
alfresco/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml
|
||||
-->
|
||||
<alfresco-config>
|
||||
<!--================================================================================================================
|
||||
Make custom types and aspects visible in "Change Type" and "Manage Aspects" actions.
|
||||
This will also make them visible when creating rules.
|
||||
(will be merged with out-of-the-box configured types and aspects)
|
||||
=============================================================================================================-->
|
||||
|
||||
<config evaluator="string-compare" condition="DocumentLibrary">
|
||||
<aspects>
|
||||
<visible>
|
||||
<aspect name="acme:securityClassified"/>
|
||||
</visible>
|
||||
<addable> <!-- defaults to visible config -->
|
||||
</addable>
|
||||
<removeable> <!-- defaults to visible config -->
|
||||
</removeable>
|
||||
</aspects>
|
||||
<types>
|
||||
<!-- Define the ACME base doc type as decedent from cm:content -->
|
||||
<type name="cm:content">
|
||||
<subtype name="acme:document"/>
|
||||
</type>
|
||||
</types>
|
||||
</config>
|
||||
|
||||
<!--================================================================================================================
|
||||
Advanced Search Forms for types
|
||||
(search forms for aspects are not available)
|
||||
=============================================================================================================-->
|
||||
|
||||
<config evaluator="string-compare" condition="AdvancedSearch" replace="true">
|
||||
<advanced-search>
|
||||
<forms>
|
||||
<!-- Standard out-of-the-box types -->
|
||||
<form labelId="search.form.label.cm_content" descriptionId="search.form.desc.cm_content">cm:content
|
||||
</form>
|
||||
<form labelId="search.form.label.cm_folder" descriptionId="search.form.desc.cm_folder">cm:folder</form>
|
||||
|
||||
<!-- Custom type -->
|
||||
<form labelId="form.label.advancedsearch.acmeDocument"
|
||||
descriptionId="form.description.advancedsearch.acmeDocument">acme:document
|
||||
</form>
|
||||
</forms>
|
||||
</advanced-search>
|
||||
</config>
|
||||
|
||||
<!--================================================================================================================
|
||||
View, Edit, Create, and Search forms for custom types
|
||||
|
||||
The following form configurations for the custom types
|
||||
have not been created from scratch. We have instead copied
|
||||
out-of-the-box form configurations for cm:content and cm:folder
|
||||
from the tomcat/webapps/share/WEB-INF/classes/alfresco/share-form-config.xml file
|
||||
in a standard Alfresco installation (with the version matching)
|
||||
and used them as a starting point.
|
||||
|
||||
=============================================================================================================-->
|
||||
|
||||
<!-- __________________________________ acme:document base type _________________________________________________-->
|
||||
|
||||
<!-- View and Edit forms for acme:document -->
|
||||
<config evaluator="node-type" condition="acme:document">
|
||||
<forms>
|
||||
<!-- Default form configuration for the cm:content type -->
|
||||
<form>
|
||||
<field-visibility>
|
||||
<show id="cm:name"/>
|
||||
<show id="cm:title" force="true"/>
|
||||
<show id="cm:description" force="true"/>
|
||||
<show id="mimetype"/>
|
||||
<show id="cm:author" force="true"/>
|
||||
<show id="size" for-mode="view"/>
|
||||
<show id="cm:creator" for-mode="view"/>
|
||||
<show id="cm:created" for-mode="view"/>
|
||||
<show id="cm:modifier" for-mode="view"/>
|
||||
<show id="cm:modified" for-mode="view"/>
|
||||
|
||||
<!-- tags and categories -->
|
||||
<show id="cm:taggable" for-mode="edit" force="true"/>
|
||||
<show id="cm:categories"/>
|
||||
|
||||
<!-- cm:dublincore aspect -->
|
||||
<show id="cm:publisher"/>
|
||||
<show id="cm:contributor"/>
|
||||
<show id="cm:type"/>
|
||||
<show id="cm:identifier"/>
|
||||
<show id="cm:dcsource"/>
|
||||
<show id="cm:coverage"/>
|
||||
<show id="cm:rights"/>
|
||||
<show id="cm:subject"/>
|
||||
|
||||
<!-- cm:complianceable aspect -->
|
||||
<show id="cm:removeAfter"/>
|
||||
|
||||
<!-- cm:effectivity aspect -->
|
||||
<show id="cm:from"/>
|
||||
<show id="cm:to"/>
|
||||
|
||||
<!-- cm:summarizable aspect -->
|
||||
<show id="cm:summary"/>
|
||||
|
||||
<!-- cm:translatable aspect -->
|
||||
<show id="cm:translations"/>
|
||||
|
||||
<!-- cm:localizable aspect -->
|
||||
<show id="cm:locale"/>
|
||||
|
||||
<!-- cm:ownable aspect -->
|
||||
<show id="cm:owner"/>
|
||||
|
||||
<!-- cm:attachable aspect -->
|
||||
<show id="cm:attachments"/>
|
||||
|
||||
<!-- cm:emailed aspect -->
|
||||
<show id="cm:originator"/>
|
||||
<show id="cm:addressee"/>
|
||||
<show id="cm:addressees"/>
|
||||
<show id="cm:sentdate"/>
|
||||
<show id="cm:subjectline"/>
|
||||
|
||||
<!-- exif:exif aspect -->
|
||||
<show id="exif:dateTimeOriginal"/>
|
||||
<show id="exif:pixelXDimension"/>
|
||||
<show id="exif:pixelYDimension"/>
|
||||
<show id="exif:exposureTime"/>
|
||||
<show id="exif:fNumber"/>
|
||||
<show id="exif:flash"/>
|
||||
<show id="exif:focalLength"/>
|
||||
<show id="exif:isoSpeedRatings"/>
|
||||
<show id="exif:manufacturer"/>
|
||||
<show id="exif:model"/>
|
||||
<show id="exif:software"/>
|
||||
<show id="exif:orientation"/>
|
||||
<show id="exif:xResolution"/>
|
||||
<show id="exif:yResolution"/>
|
||||
<show id="exif:resolutionUnit"/>
|
||||
|
||||
<!-- audio:audio aspect -->
|
||||
<show id="audio:album"/>
|
||||
<show id="audio:artist"/>
|
||||
<show id="audio:composer"/>
|
||||
<show id="audio:engineer"/>
|
||||
<show id="audio:genre"/>
|
||||
<show id="audio:trackNumber"/>
|
||||
<show id="audio:releaseDate"/>
|
||||
<show id="audio:sampleRate"/>
|
||||
<show id="audio:sampleType"/>
|
||||
<show id="audio:channelType"/>
|
||||
<show id="audio:compressor"/>
|
||||
|
||||
<!-- cm:indexControl aspect -->
|
||||
<show id="cm:isIndexed"/>
|
||||
<show id="cm:isContentIndexed"/>
|
||||
|
||||
<!-- cm:geographic aspect -->
|
||||
<show id="cm:latitude"/>
|
||||
<show id="cm:longitude"/>
|
||||
|
||||
<!-- surf:widget aspect -->
|
||||
<show id="surf:widgetType"/>
|
||||
<show id="surf:mid"/>
|
||||
<show id="surf:label"/>
|
||||
|
||||
<!-- ACME custom props -->
|
||||
<show id="acme:documentId" force="true"/>
|
||||
<show id="acme:securityClassification"/>
|
||||
</field-visibility>
|
||||
<appearance>
|
||||
<field id="cm:name">
|
||||
<control>
|
||||
<control-param name="maxLength">255</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:title">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="cm:description">
|
||||
<control>
|
||||
<control-param name="activateLinks">true</control-param>
|
||||
</control>
|
||||
</field>
|
||||
|
||||
<set id="cm:content2cols" template="/org/alfresco/components/form/2-column-set.ftl"/>
|
||||
|
||||
<field set="cm:content2cols" id="mimetype">
|
||||
<control template="/org/alfresco/components/form/controls/mimetype.ftl"/>
|
||||
</field>
|
||||
|
||||
<field set="cm:content2cols" id="size">
|
||||
<control template="/org/alfresco/components/form/controls/size.ftl"/>
|
||||
</field>
|
||||
<field set="cm:content2cols" id="cm:creator"/>
|
||||
<field set="cm:content2cols" id="cm:created"/>
|
||||
<field set="cm:content2cols" id="cm:modifier"/>
|
||||
<field set="cm:content2cols" id="cm:modified"/>
|
||||
|
||||
<field id="cm:taggable">
|
||||
<control>
|
||||
<control-param name="compactMode">true</control-param>
|
||||
<control-param name="params">aspect=cm:taggable</control-param>
|
||||
<control-param name="createNewItemUri">/api/tag/workspace/SpacesStore</control-param>
|
||||
<control-param name="createNewItemIcon">tag</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:categories">
|
||||
<control>
|
||||
<control-param name="compactMode">true</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:originator" read-only="true"/>
|
||||
<field id="cm:addressee" read-only="true"/>
|
||||
<field id="cm:addressees" read-only="true"/>
|
||||
<field id="cm:sentdate" read-only="true"/>
|
||||
<field id="cm:subjectline" read-only="true"/>
|
||||
|
||||
<!-- ACME Props appearance -->
|
||||
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
|
||||
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
|
||||
set="acmeDocSet"/>
|
||||
</appearance>
|
||||
</form>
|
||||
|
||||
<!-- Document Library pop-up Edit Metadata form -->
|
||||
<form id="doclib-simple-metadata">
|
||||
<field-visibility>
|
||||
<show id="cm:name"/>
|
||||
<show id="cm:title" force="true"/>
|
||||
<show id="cm:description" force="true"/>
|
||||
<!-- tags and categories -->
|
||||
<show id="cm:taggable" for-mode="edit" force="true"/>
|
||||
<show id="cm:categories"/>
|
||||
|
||||
<!-- ACME custom props -->
|
||||
<show id="acme:documentId" force="true"/>
|
||||
<show id="acme:securityClassification"/>
|
||||
</field-visibility>
|
||||
<edit-form template="../documentlibrary/forms/doclib-simple-metadata.ftl"/>
|
||||
<appearance>
|
||||
<field id="cm:name">
|
||||
<control>
|
||||
<control-param name="maxLength">255</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:title">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="cm:description">
|
||||
<control>
|
||||
<control-param name="activateLinks">true</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:taggable">
|
||||
<control>
|
||||
<control-param name="compactMode">true</control-param>
|
||||
<control-param name="params">aspect=cm:taggable</control-param>
|
||||
<control-param name="createNewItemUri">/api/tag/workspace/SpacesStore</control-param>
|
||||
<control-param name="createNewItemIcon">tag</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:categories">
|
||||
<control>
|
||||
<control-param name="compactMode">true</control-param>
|
||||
</control>
|
||||
</field>
|
||||
|
||||
<!-- ACME Props appearance -->
|
||||
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
|
||||
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
|
||||
set="acmeDocSet"/>
|
||||
</appearance>
|
||||
</form>
|
||||
|
||||
<!-- Document Library Inline Edit form -->
|
||||
<form id="doclib-inline-edit">
|
||||
<field-visibility>
|
||||
<show id="cm:name"/>
|
||||
<show id="cm:content" force="true"/>
|
||||
<show id="cm:title" force="true"/>
|
||||
<show id="cm:description" force="true"/>
|
||||
|
||||
<!-- ACME custom props -->
|
||||
<show id="acme:documentId" force="true"/>
|
||||
<show id="acme:securityClassification"/>
|
||||
</field-visibility>
|
||||
<appearance>
|
||||
<field id="cm:name">
|
||||
<control>
|
||||
<control-param name="maxLength">255</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:title">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="cm:content" label-id="">
|
||||
<control>
|
||||
<control-param name="editorAppearance">explorer</control-param>
|
||||
<control-param name="forceEditor">true</control-param>
|
||||
</control>
|
||||
</field>
|
||||
|
||||
<!-- ACME Props appearance -->
|
||||
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
|
||||
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
|
||||
set="acmeDocSet"/>
|
||||
</appearance>
|
||||
</form>
|
||||
</forms>
|
||||
</config>
|
||||
|
||||
<!-- Create and search forms for acme:document -->
|
||||
<config evaluator="model-type" condition="acme:document">
|
||||
<forms>
|
||||
<form>
|
||||
<field-visibility>
|
||||
<show id="cm:name"/>
|
||||
<show id="cm:content" force="true"/>
|
||||
<show id="cm:title" force="true"/>
|
||||
<show id="cm:description" force="true"/>
|
||||
<show id="mimetype"/>
|
||||
<show id="app:editInline" force="true"/>
|
||||
|
||||
<!-- ACME custom props -->
|
||||
<show id="acme:documentId" force="true"/>
|
||||
<show id="acme:securityClassification"/>
|
||||
</field-visibility>
|
||||
<appearance>
|
||||
<field id="cm:name">
|
||||
<control>
|
||||
<control-param name="maxLength">255</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:title">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="cm:content" label-id="">
|
||||
<control>
|
||||
<control-param name="editorAppearance">explorer</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="mimetype">
|
||||
<control template="/org/alfresco/components/form/controls/hidden.ftl">
|
||||
<control-param name="contextProperty">mimeType</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="app:editInline">
|
||||
<control template="/org/alfresco/components/form/controls/hidden.ftl">
|
||||
<control-param name="contextProperty">editInline</control-param>
|
||||
</control>
|
||||
</field>
|
||||
|
||||
<!-- ACME Props appearance -->
|
||||
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
|
||||
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
|
||||
set="acmeDocSet"/>
|
||||
</appearance>
|
||||
</form>
|
||||
<!-- Search form -->
|
||||
<form id="search">
|
||||
<field-visibility>
|
||||
<show id="cm:name"/>
|
||||
<show id="cm:title" force="true"/>
|
||||
<show id="cm:description" force="true"/>
|
||||
<show id="mimetype"/>
|
||||
<show id="cm:modified"/>
|
||||
<show id="cm:modifier"/>
|
||||
|
||||
<!-- ACME custom props -->
|
||||
<show id="acme:documentId" force="true"/>
|
||||
<show id="acme:securityClassification"/>
|
||||
</field-visibility>
|
||||
<appearance>
|
||||
<field id="mimetype">
|
||||
<control template="/org/alfresco/components/form/controls/mimetype.ftl"/>
|
||||
</field>
|
||||
<field id="cm:modifier">
|
||||
<control>
|
||||
<control-param name="forceEditable">true</control-param>
|
||||
</control>
|
||||
</field>
|
||||
<field id="cm:modified">
|
||||
<control template="/org/alfresco/components/form/controls/daterange.ftl"/>
|
||||
</field>
|
||||
|
||||
<!-- ACME Props appearance -->
|
||||
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
|
||||
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
|
||||
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
|
||||
</field>
|
||||
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
|
||||
set="acmeDocSet"/>
|
||||
</appearance>
|
||||
</form>
|
||||
</forms>
|
||||
</config>
|
||||
|
||||
|
||||
</alfresco-config>
|
@@ -0,0 +1 @@
|
||||
# Add here module-specific custom log4j2.properties configuration
|
@@ -24,7 +24,7 @@ module.id=${project.artifactId}
|
||||
#module.aliases=myModule-123, my-module
|
||||
module.title=${project.name}
|
||||
module.description=${project.description}
|
||||
module.version=${noSnapshotVersion}
|
||||
module.version=${project.version}
|
||||
|
||||
# The following optional properties can be used to prevent the module from being added
|
||||
# to inappropriate versions of the WAR file.
|
@@ -5,7 +5,7 @@
|
||||
<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-2.5.xsd">
|
||||
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
|
||||
|
||||
<!--
|
||||
Define beans related to this Share extension here, such as
|
@@ -0,0 +1,25 @@
|
||||
# This file should contain messages and labels specific to this share extension
|
||||
# Put here things like:
|
||||
# Content Model Aspect and Type Labels
|
||||
# Form field labels
|
||||
# Doc lib Action labels and messages
|
||||
# Doc Lib Action Forms labels
|
||||
#
|
||||
|
||||
# Labels for custom types and aspects
|
||||
# Used in "Manage Aspects" and "Change Type" dialogs
|
||||
#
|
||||
type.acme_document=ACME Document
|
||||
aspect.acme_securityClassified=Security Classified
|
||||
|
||||
# View,Edit,Search,Create Form labels for types and aspects
|
||||
#
|
||||
form.set.label.acme.document= ACME Document Information
|
||||
form.field.label.acme.documentId=ACME Document Id
|
||||
form.field.label.acme.securityClassification=Security Classification
|
||||
|
||||
# Advanced Search Form labels (only for types)
|
||||
#
|
||||
form.label.advancedsearch.acmeDocument=ACME Documents
|
||||
form.description.advancedsearch.acmeDocument=Search for any ACME Documents
|
||||
|
@@ -12,7 +12,7 @@
|
||||
<web-framework>
|
||||
<dojo-pages>
|
||||
<packages>
|
||||
<package name="example" location="js/example"/>
|
||||
<package name="tutorials" location="resources/${artifactId}/js/tutorials"/>
|
||||
</packages>
|
||||
</dojo-pages>
|
||||
</web-framework>
|
@@ -3,7 +3,7 @@ model.jsonModel = {
|
||||
id: "SET_PAGE_TITLE",
|
||||
name: "alfresco/header/SetTitle",
|
||||
config: {
|
||||
title: "This is a simple page"
|
||||
title: "This is a sample HELLO page"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -21,7 +21,7 @@ model.jsonModel = {
|
||||
},
|
||||
{
|
||||
id: "DEMO_SIMPLE_MSG",
|
||||
name: "example/widgets/TemplateWidget"
|
||||
name: "tutorials/widgets/TemplateWidget"
|
||||
}
|
||||
]
|
||||
}
|
@@ -0,0 +1,77 @@
|
||||
#set( $symbol_dollar = '$' )
|
||||
version: '3.4'
|
||||
services:
|
||||
${rootArtifactId}-share:
|
||||
image: alfresco-share-${rootArtifactId}:development
|
||||
build:
|
||||
dockerfile: ./Dockerfile
|
||||
context: ../../../${rootArtifactId}-share-docker/target
|
||||
environment:
|
||||
CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888"
|
||||
REPO_HOST: ${rootArtifactId}-acs
|
||||
REPO_PORT: 8080
|
||||
ports:
|
||||
- "${symbol_dollar}{share.port}:8080"
|
||||
- "${symbol_dollar}{share.debug.port}:8888"
|
||||
${rootArtifactId}-acs:
|
||||
image: alfresco-content-services-${rootArtifactId}:development
|
||||
build:
|
||||
dockerfile: ./Dockerfile
|
||||
context: ../../../${rootArtifactId}-platform-docker/target
|
||||
environment:
|
||||
JAVA_TOOL_OPTIONS: "${symbol_dollar}{keystore.settings}"
|
||||
JAVA_OPTS: "
|
||||
-Dsolr.secureComms=secret
|
||||
-Dsolr.sharedSecret=secret
|
||||
-Dmessaging.broker.url=\"failover:(nio://${rootArtifactId}-activemq:61616)?timeout=3000&jms.useCompression=true\"
|
||||
"
|
||||
CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888"
|
||||
ports:
|
||||
- "${symbol_dollar}{acs.port}:8080"
|
||||
- "${symbol_dollar}{acs.debug.port}:8888"
|
||||
volumes:
|
||||
- ${rootArtifactId}-acs-volume:/usr/local/tomcat/alf_data
|
||||
depends_on:
|
||||
- ${rootArtifactId}-postgres
|
||||
${rootArtifactId}-postgres:
|
||||
image: postgres:9.6
|
||||
environment:
|
||||
POSTGRES_DB: alfresco
|
||||
POSTGRES_USER: alfresco
|
||||
POSTGRES_PASSWORD: alfresco
|
||||
command: postgres -c max_connections=300 -c log_min_messages=LOG
|
||||
ports:
|
||||
- "${symbol_dollar}{postgres.port}:5432"
|
||||
volumes:
|
||||
- ${rootArtifactId}-db-volume:/var/lib/postgresql/data
|
||||
${rootArtifactId}-ass:
|
||||
image: alfresco/alfresco-search-services:2.0.3
|
||||
environment:
|
||||
SOLR_ALFRESCO_HOST: ${rootArtifactId}-acs
|
||||
SOLR_ALFRESCO_PORT: 8080
|
||||
SOLR_SOLR_HOST: ${rootArtifactId}-ass
|
||||
SOLR_SOLR_PORT: 8983
|
||||
SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive
|
||||
ALFRESCO_SECURE_COMMS: "secret"
|
||||
JAVA_TOOL_OPTIONS: "-Dalfresco.secureComms.secret=secret"
|
||||
ports:
|
||||
- "8983:8983"
|
||||
volumes:
|
||||
- ${rootArtifactId}-ass-volume:/opt/alfresco-search-services/contentstore
|
||||
- ${rootArtifactId}-ass-volume:/opt/alfresco-search-services/data
|
||||
${rootArtifactId}-activemq:
|
||||
image: alfresco/alfresco-activemq:5.16.1
|
||||
mem_limit: 1g
|
||||
ports:
|
||||
- 8161:8161 # Web Console
|
||||
- 5672:5672 # AMQP
|
||||
- 61616:61616 # OpenWire
|
||||
- 61613:61613 # STOMP
|
||||
|
||||
volumes:
|
||||
${rootArtifactId}-acs-volume:
|
||||
external: true
|
||||
${rootArtifactId}-db-volume:
|
||||
external: true
|
||||
${rootArtifactId}-ass-volume:
|
||||
external: true
|
@@ -5,86 +5,486 @@
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
<name>Alfresco Repository and Share Quickstart with database and an embedded Tomcat runner.</name>
|
||||
<description>This All-in-One project allows to manage all the components involved in Alfresco development (Repo, Share, Solr4, AMPs) in one project
|
||||
</description>
|
||||
<name>AIO - SDK 4.11.0-A1</name>
|
||||
<description>All-In-One (AIO) project for SDK 4.11.0-A1</description>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-parent</artifactId>
|
||||
<version>@@alfresco.sdk.parent.version@@</version>
|
||||
</parent>
|
||||
<prerequisites>
|
||||
<maven>3.3.0</maven>
|
||||
</prerequisites>
|
||||
|
||||
<!--
|
||||
SDK properties have sensible defaults in the SDK parent,
|
||||
but you can override the properties below to use another version.
|
||||
For more available properties see the alfresco-sdk-parent POM.
|
||||
-->
|
||||
<properties>
|
||||
<!-- The following are default values for data location, Alfresco Community version, and Records Management Module version.
|
||||
Uncomment if you need to change (Note. current default version for Enterprise edition is @@alfresco.enterprise.default.version@@)
|
||||
<alfresco.version>@@alfresco.community.default.version@@</alfresco.version>
|
||||
<alfresco.rm.version>@@alfresco.rm.version@@</alfresco.rm.version>
|
||||
<alfresco.data.location>/absolute/path/to/alf_data_dev</alfresco.data.location> -->
|
||||
<!-- Alfresco Maven Plugin version to use -->
|
||||
<alfresco.sdk.version>@@alfresco.sdk.parent.version@@</alfresco.sdk.version>
|
||||
|
||||
<!-- This control the root logging level for all apps uncomment and change, defaults to WARN
|
||||
<app.log.root.level>WARN</app.log.root.level>
|
||||
-->
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
<!-- Set the enviroment to use, this controls which properties will be picked in src/test/properties
|
||||
for embedded run, defaults to the 'local' environment. See SDK Parent POM for more info.
|
||||
<env>local</env>
|
||||
-->
|
||||
<!-- Properties used in dependency declarations, you don't need to change these -->
|
||||
<alfresco.groupId>org.alfresco</alfresco.groupId>
|
||||
<alfresco.bomDependencyArtifactId>@@alfresco.bomDependency.artifactId@@</alfresco.bomDependencyArtifactId>
|
||||
<alfresco.platform.version>@@alfresco.platform.version@@</alfresco.platform.version>
|
||||
<alfresco.platform.docker.user>@@alfresco.platform.docker.user@@</alfresco.platform.docker.user>
|
||||
<alfresco.share.version>@@alfresco.share.version@@</alfresco.share.version>
|
||||
<alfresco.share.docker.version>@@alfresco.share.docker.version@@</alfresco.share.docker.version>
|
||||
|
||||
<!-- Docker images -->
|
||||
<docker.acs.image>@@alfresco.platform.docker.image@@</docker.acs.image>
|
||||
<docker.share.image>@@alfresco.share.docker.image@@</docker.share.image>
|
||||
|
||||
<keystore.settings>@@keystore.settings@@</keystore.settings>
|
||||
|
||||
<!-- JRebel Hot reloading of classpath stuff and web resource stuff -->
|
||||
<jrebel.version>1.1.8</jrebel.version>
|
||||
|
||||
<!-- Environment configuration properties -->
|
||||
<share.port>8180</share.port>
|
||||
<share.debug.port>9898</share.debug.port>
|
||||
<acs.host>${artifactId}-acs</acs.host>
|
||||
<acs.port>8080</acs.port>
|
||||
<acs.debug.port>8888</acs.debug.port>
|
||||
<postgres.port>5555</postgres.port>
|
||||
<!-- This parameter is only required for those cases in which ACS is not exposed in http://localhost:8080/alfresco (i.e. Windows Docker) -->
|
||||
<test.acs.endpoint.path>@@test.acs.endpoint.path@@</test.acs.endpoint.path>
|
||||
|
||||
<!-- The Alfresco Share web application is accessible via this URL -->
|
||||
<share.client.url>http://localhost:8080/share</share.client.url>
|
||||
</properties>
|
||||
|
||||
<!-- Here we realize the connection with the Alfresco selected platform (e.g.version and edition) -->
|
||||
<!-- Libs used in Unit and Integration tests -->
|
||||
<!-- IMPORTANT - Test dependencies need to be here in the top parent POM as
|
||||
the Alfresco Maven IT Mojo runs as part of the parent project ... -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>4.2.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- The main Alfresco Repo dependency for compiling Java code in src/main/java -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-remote-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- Bring in Alfresco RAD so we get access to AlfrescoTestRunner classes -->
|
||||
<dependency>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-rad</artifactId>
|
||||
<version>${alfresco.sdk.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<!-- This will import the dependencyManagement for all artifacts in the selected Alfresco plaftorm
|
||||
(see http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies)
|
||||
NOTE: You still need to define dependencies in your POM, but you can omit version as it's enforced by this dependencyManagement.
|
||||
NOTE: It defaults to the latest version this SDK pom has been tested with, but alfresco version can/should be overridden in your project's pom
|
||||
-->
|
||||
<!-- This will import the dependencyManagement for all artifacts in the selected Alfresco platform.
|
||||
NOTE: You still need to define dependencies in your POM, but you can omit version as
|
||||
it's enforced by this dependencyManagement.
|
||||
NOTE: It defaults to the latest version this SDK pom has been tested with,
|
||||
but alfresco version can/should be overridden in your project's pom
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-platform-distribution</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<artifactId>${alfresco.bomDependencyArtifactId}</artifactId>
|
||||
<version>${alfresco.platform.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
<!-- Redefine the following Share dependencies as they have different version numbers than platform.
|
||||
They are defined in alfresco-platform-distribution... -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share</artifactId>
|
||||
<version>${alfresco.share.version}</version>
|
||||
<type>war</type>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share</artifactId>
|
||||
<version>${alfresco.share.version}</version>
|
||||
<classifier>classes</classifier>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-web-framework-commons</artifactId>
|
||||
<version>${alfresco.share.version}</version>
|
||||
<classifier>classes</classifier>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<!--
|
||||
Build an AMP if 3rd party libs are needed by the extensions
|
||||
JARs are the default artifact produced in your modules, if you want to build an amp for each module
|
||||
you have to enable this plugin and inspect the src/main/assembly.xml file if you want to customize
|
||||
the layout of your AMP. The end result is that Maven will produce both a JAR file and an AMP with your
|
||||
module.
|
||||
-->
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-amp-file</id>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<appendAssemblyId>false</appendAssemblyId>
|
||||
<descriptor>src/main/assembly/amp.xml</descriptor>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.alfresco.maven.plugin</groupId>
|
||||
<artifactId>alfresco-maven-plugin</artifactId>
|
||||
<version>${alfresco.sdk.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
-->
|
||||
|
||||
<!-- Filter resources in any sub-project with this config -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<configuration>
|
||||
<encoding>UTF-8</encoding>
|
||||
<nonFilteredFileExtensions> <!-- jpg, jpeg, gif, bmp and png are added automatically -->
|
||||
<nonFilteredFileExtension>ftl</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>acp</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>
|
||||
<nonFilteredFileExtension>js</nonFilteredFileExtension>
|
||||
</nonFilteredFileExtensions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.zeroturnaround</groupId>
|
||||
<artifactId>jrebel-maven-plugin</artifactId>
|
||||
<version>${jrebel.version}</version>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>3.0.0-M1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>integration-test</id>
|
||||
<phase>integration-test</phase>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>verify-test</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.surefire</groupId>
|
||||
<artifactId>surefire-junit47</artifactId>
|
||||
<version>3.0.0-M1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>3.1.1</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
|
||||
<!-- Make sure resources in sub-projects are filtered -->
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
<plugins>
|
||||
<!-- Compress JavaScript files and store as *-min.js -->
|
||||
<!-- Filter the test resource files in the AIO parent project, and do property substitutions.
|
||||
We need this config so this is done before the Alfresco Maven Plugin 'run' is executed. -->
|
||||
<plugin>
|
||||
<groupId>net.alchim31.maven</groupId>
|
||||
<artifactId>yuicompressor-maven-plugin</artifactId>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<inherited>false</inherited>
|
||||
<!-- Run only for the AIO parent Project -->
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-and-filter-docker-resources</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.outputDirectory}/docker</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>docker</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- Compress JavaScript files and store as *.min.js -->
|
||||
<plugin>
|
||||
<groupId>org.alfresco.maven.plugin</groupId>
|
||||
<artifactId>alfresco-maven-plugin</artifactId>
|
||||
<groupId>com.github.blutorange</groupId>
|
||||
<artifactId>closure-compiler-maven-plugin</artifactId>
|
||||
<version>2.28.0</version>
|
||||
<executions>
|
||||
<!-- Compress the JS files under the assembly folder -->
|
||||
<execution>
|
||||
<id>compress-assembly</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>minify</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<baseSourceDir>${project.basedir}/src/main/assembly</baseSourceDir>
|
||||
<baseTargetDir>${project.basedir}/src/main/assembly</baseTargetDir>
|
||||
<sourceDir>web</sourceDir>
|
||||
<targetDir>web</targetDir>
|
||||
<skipMerge>true</skipMerge>
|
||||
<includes>
|
||||
<include>**/*.js</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/webscripts/**</exclude>
|
||||
<exclude>**/site-webscripts/**</exclude>
|
||||
<exclude>**/META-INF/**</exclude>
|
||||
<exclude>**/*.lib.js</exclude>
|
||||
<exclude>**/*.css</exclude>
|
||||
<exclude>**/*.min.js</exclude>
|
||||
<exclude>**/*.min.css</exclude>
|
||||
</excludes>
|
||||
<force>true</force>
|
||||
</configuration>
|
||||
</execution>
|
||||
<!-- Compress the JS files under the resources folder -->
|
||||
<execution>
|
||||
<id>compress-resources</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>minify</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<baseSourceDir>${project.basedir}/src/main</baseSourceDir>
|
||||
<baseTargetDir>${project.basedir}/src/main</baseTargetDir>
|
||||
<sourceDir>resources</sourceDir>
|
||||
<targetDir>resources</targetDir>
|
||||
<skipMerge>true</skipMerge>
|
||||
<includes>
|
||||
<include>**/*.js</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/webscripts/**</exclude>
|
||||
<exclude>**/site-webscripts/**</exclude>
|
||||
<exclude>**/*.lib.js</exclude>
|
||||
<exclude>**/*.css</exclude>
|
||||
<exclude>**/*.min.js</exclude>
|
||||
<exclude>**/*.min.css</exclude>
|
||||
</excludes>
|
||||
<force>true</force>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- Hot reloading with JRebel -->
|
||||
<plugin>
|
||||
<groupId>org.zeroturnaround</groupId>
|
||||
<artifactId>jrebel-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>generate-rebel-xml</id>
|
||||
<phase>process-resources</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<!-- For more information about how to configure JRebel plugin see:
|
||||
http://manuals.zeroturnaround.com/jrebel/standalone/maven.html#maven-rebel-xml -->
|
||||
<classpath>
|
||||
<fallback>all</fallback>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>${project.build.outputDirectory}</directory>
|
||||
<directory>${project.build.testOutputDirectory}</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
</classpath>
|
||||
|
||||
<!--
|
||||
alwaysGenerate - default is false
|
||||
If 'false' - rebel.xml is generated if timestamps of pom.xml and the current rebel.xml file are not equal.
|
||||
If 'true' - rebel.xml will always be generated
|
||||
-->
|
||||
<alwaysGenerate>true</alwaysGenerate>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<!-- Invoke your build with -Prun to run the multimodule project and enable rapid dev mode in your IDE.
|
||||
See 'run' profile in the sub modules pom.xml for further behavioral details.
|
||||
-->
|
||||
<id>run</id>
|
||||
<properties>
|
||||
<!-- While running in rapid dev mode with -Prun, we don't want amp web resources
|
||||
to be added to the war, so we can load them directly from the AMP project (see
|
||||
runner/tomcat/context-*.xml for more details) -->
|
||||
<maven.alfresco.includeWebResources>false</maven.alfresco.includeWebResources>
|
||||
</properties>
|
||||
<id>java8</id>
|
||||
<activation>
|
||||
<jdk>[1.8,11.0)</jdk>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>java11</id>
|
||||
<activation>
|
||||
<jdk>[11.0,17)</jdk>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<release>11</release>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>java17</id>
|
||||
<activation>
|
||||
<jdk>[17,)</jdk>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<release>17</release>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
<!--
|
||||
Alfresco Maven Repositories
|
||||
-->
|
||||
<repositories>
|
||||
<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>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<!-- Alfresco Enterprise Edition Artifacts, put username/pwd for server in settings.xml -->
|
||||
<repository>
|
||||
<id>alfresco-private-repository</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/private</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>alfresco-internal</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/internal</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<pluginRepositories>
|
||||
<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>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>daily</updatePolicy>
|
||||
</snapshots>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
</project>
|
@@ -1,64 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Alfresco Repository AMP Module</name>
|
||||
<packaging>amp</packaging>
|
||||
<description>This is a sample Alfresco repository AMP project, depended upon by the alfresco WAR aggregator</description>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<!-- Property overrides are mostly done in parent pom -->
|
||||
</properties>
|
||||
|
||||
<!-- Following dependencies are needed for compiling Java code in src/main/java;
|
||||
<scope>provided</scope> is inherited for each of the following;
|
||||
for more info, please refer to alfresco-platform-distribution POM -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Uncomment if you are using RM (Records Management) module, brings in RM related classes -->
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-rm</artifactId>
|
||||
<version>${alfresco.rm.version}</version>
|
||||
<classifier>classes</classifier>
|
||||
</dependency>
|
||||
-->
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
|
||||
<!--
|
||||
Brings in the extra Enterprise specific repository classes,
|
||||
if the 'enterprise' profile has been activated, needs to be activated manually. -->
|
||||
<profile>
|
||||
<id>enterprise</id>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-enterprise-repository</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
|
||||
<!-- If we are running in embedded Tomcat skip unit tests -->
|
||||
<profile>
|
||||
<id>run</id>
|
||||
<properties>
|
||||
<skipTests>true</skipTests>
|
||||
</properties>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
@@ -1 +0,0 @@
|
||||
Message: ${fromJS} ${fromJava}
|
@@ -1 +0,0 @@
|
||||
model["fromJS"] = "Hello World from JS!";
|
@@ -1,27 +0,0 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<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-2.0.xsd">
|
||||
|
||||
<!-- The bootstrap-context.xml file is used for patch definitions, importers,
|
||||
workflow, and loading custom content models. -->
|
||||
|
||||
|
||||
<!-- Registration of new models -->
|
||||
<bean id="${package}.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
|
||||
<property name="models">
|
||||
<list>
|
||||
<value>alfresco/module/${project.artifactId}/model/content-model.xml</value>
|
||||
<value>alfresco/module/${project.artifactId}/model/workflow-model.xml</value>
|
||||
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
|
||||
</beans>
|
@@ -1,42 +0,0 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<beans>
|
||||
|
||||
<!-- A simple class that is initialized by Spring -->
|
||||
<bean id="${package}.exampleBean" class="${package}.demoamp.Demo" init-method="init" />
|
||||
|
||||
<!-- A simple module component that will be executed once.
|
||||
Note. this module component will only be executed once, and then there will be an entry for it in the Repo.
|
||||
So doing for example $ mvn clean install -Prun twice will only execute this component the first time.
|
||||
You need to remove /alf_data_dev for it to be executed again. -->
|
||||
<bean id="${package}.exampleComponent" class="${package}.demoamp.DemoComponent" parent="module.baseComponent" >
|
||||
<property name="moduleId" value="${artifactId}" /> <!-- See module.properties -->
|
||||
<property name="name" value="exampleComponent" />
|
||||
<property name="description" value="A demonstration component" />
|
||||
<property name="sinceVersion" value="1.0" />
|
||||
<property name="appliesFromVersion" value="1.0" />
|
||||
<property name="nodeService" ref="NodeService" />
|
||||
<property name="nodeLocatorService" ref="nodeLocatorService" />
|
||||
</bean>
|
||||
|
||||
|
||||
</beans>
|
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<model name="myc:contentModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
|
||||
|
||||
<!-- Optional meta-data about the model -->
|
||||
<description>Document Model for Repo Extension X</description>
|
||||
<author>My Name</author>
|
||||
<version>1.0</version>
|
||||
|
||||
<imports>
|
||||
<!-- Import Alfresco Dictionary Definitions -->
|
||||
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
|
||||
<!-- Import Alfresco Content Domain Model Definitions -->
|
||||
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
|
||||
<!-- Import Alfresco System Model Definitions -->
|
||||
<import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
|
||||
</imports>
|
||||
|
||||
<!-- Custom namespace for your domain -->
|
||||
<namespaces>
|
||||
<namespace uri="http://www.mycompany.com/model/content/1.0" prefix="myc"/>
|
||||
</namespaces>
|
||||
|
||||
<!-- ===============================================================================================================
|
||||
Constraints, Types, and Aspects go here...
|
||||
-->
|
||||
|
||||
</model>
|
@@ -1,16 +0,0 @@
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
@@ -1,17 +0,0 @@
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
Test jsp. Change me!
|
@@ -1,2 +0,0 @@
|
||||
This folder (root in the AMP) gets mapped automagically in WEB-INF/licenses
|
||||
in the war build
|
@@ -1,16 +0,0 @@
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
@@ -1,18 +0,0 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
package ${package}.demoamp;
|
||||
|
||||
/**
|
||||
* This class does nothing except dump some output to <i>system.out</i>.
|
||||
* This is a sample taken from Maven Alfresco SDK
|
||||
*
|
||||
* @author Derek Hulley
|
||||
*/
|
||||
public class Demo
|
||||
{
|
||||
public void init()
|
||||
{
|
||||
System.out.println("SDK Demo AMP class has been loaded");
|
||||
}
|
||||
}
|
@@ -1,43 +0,0 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/*
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
package ${package}.demoamp;
|
||||
|
||||
import org.springframework.extensions.webscripts.Cache;
|
||||
import org.springframework.extensions.webscripts.DeclarativeWebScript;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* A demonstration Java controller for the Hello World Web Script.
|
||||
*
|
||||
* @author martin.bergljung@alfresco.com
|
||||
* @since 2.1.0
|
||||
*/
|
||||
public class HelloWorldWebScript extends DeclarativeWebScript {
|
||||
protected Map<String, Object> executeImpl(
|
||||
WebScriptRequest req, Status status, Cache cache) {
|
||||
Map<String, Object> model = new HashMap<String, Object>();
|
||||
model.put("fromJava", "HelloFromJava");
|
||||
return model;
|
||||
}
|
||||
}
|
@@ -1,86 +0,0 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
package ${package}.demoamp.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import ${package}.demoamp.DemoComponent;
|
||||
import org.alfresco.model.ContentModel;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.tradeshift.test.remote.Remote;
|
||||
import com.tradeshift.test.remote.RemoteTestRunner;
|
||||
|
||||
/**
|
||||
* A simple class demonstrating how to run out-of-container tests
|
||||
* loading Alfresco application context.
|
||||
*
|
||||
* This class uses the RemoteTestRunner to try and connect to
|
||||
* localhost:4578 and send the test name and method to be executed on
|
||||
* a running Alfresco. One or more hostnames can be configured in the @Remote
|
||||
* annotation.
|
||||
*
|
||||
* If there is no available remote server to run the test, it falls
|
||||
* back on local running of JUnits.
|
||||
*
|
||||
* For proper functioning the test class file must match exactly
|
||||
* the one deployed in the webapp (either via JRebel or static deployment)
|
||||
* otherwise "incompatible magic value XXXXX" class error loading issues will arise.
|
||||
*
|
||||
* @author Gabriele Columbro
|
||||
* @author Maurizio Pillitu
|
||||
*
|
||||
*/
|
||||
@RunWith(RemoteTestRunner.class)
|
||||
@Remote(runnerClass=SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration("classpath:alfresco/application-context.xml")
|
||||
public class DemoComponentTest {
|
||||
|
||||
private static final String ADMIN_USER_NAME = "admin";
|
||||
|
||||
static Logger log = Logger.getLogger(DemoComponentTest.class);
|
||||
|
||||
@Autowired
|
||||
protected DemoComponent demoComponent;
|
||||
|
||||
@Autowired
|
||||
@Qualifier("NodeService")
|
||||
protected NodeService nodeService;
|
||||
|
||||
@Test
|
||||
public void testWiring() {
|
||||
assertNotNull(demoComponent);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCompanyHome() {
|
||||
AuthenticationUtil.setFullyAuthenticatedUser(ADMIN_USER_NAME);
|
||||
NodeRef companyHome = demoComponent.getCompanyHome();
|
||||
assertNotNull(companyHome);
|
||||
String companyHomeName = (String) nodeService.getProperty(companyHome, ContentModel.PROP_NAME);
|
||||
assertNotNull(companyHomeName);
|
||||
assertEquals("Company Home", companyHomeName);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChildNodesCount() {
|
||||
AuthenticationUtil.setFullyAuthenticatedUser(ADMIN_USER_NAME);
|
||||
NodeRef companyHome = demoComponent.getCompanyHome();
|
||||
int childNodeCount = demoComponent.childNodesCount(companyHome);
|
||||
assertNotNull(childNodeCount);
|
||||
// There are 7 folders by default under Company Home
|
||||
assertEquals(7, childNodeCount);
|
||||
}
|
||||
|
||||
}
|
@@ -1,46 +0,0 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership.
|
||||
# The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
########################################################################################################################
|
||||
# Alfresco configuration for running locally
|
||||
#
|
||||
# Configuration when running Tomcat embedded from Maven.
|
||||
# This will create the alf_data_dev directory relative to Tomcat run folder.
|
||||
# Property values from the POM but it can also be edited here.
|
||||
########################################################################################################################
|
||||
dir.root=${alfresco.data.location}
|
||||
|
||||
# Use Solr4 as that is used by default with Alfresco 5
|
||||
index.subsystem.name=solr4
|
||||
solr.host=localhost
|
||||
solr.port=8080
|
||||
solr.secureComms=none
|
||||
|
||||
# Fail or not when there are node integrity checker errors
|
||||
integrity.failOnError=true
|
||||
|
||||
# Database connection properties
|
||||
db.driver=${alfresco.db.datasource.class}
|
||||
db.url=${alfresco.db.url}
|
||||
db.username=${alfresco.db.username}
|
||||
db.password=${alfresco.db.password}
|
||||
db.pool.initial=10
|
||||
db.pool.max=100
|
||||
hibernate.dialect=org.hibernate.dialect.H2Dialect
|
||||
|
||||
# File servers related properties
|
||||
# For local runs we disable CIFS and FTP
|
||||
cifs.enabled=false
|
||||
ftp.enabled=false
|
@@ -1,23 +0,0 @@
|
||||
# Overrides only log4j locations and add the test logging properties
|
||||
# This gets merged with the main file
|
||||
|
||||
# Set root logger level to error
|
||||
log4j.rootLogger=${app.log.root.level}, Console, File
|
||||
|
||||
###### Console appender definition #######
|
||||
|
||||
# All outputs currently set to be a ConsoleAppender.
|
||||
log4j.appender.Console=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
|
||||
|
||||
# use log4j NDC to replace %x with tenant domain / username
|
||||
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
|
||||
#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
|
||||
|
||||
###### File appender definition #######
|
||||
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
|
||||
log4j.appender.File.File=${app.log.dir}alfresco.log
|
||||
log4j.appender.File.Append=true
|
||||
log4j.appender.File.DatePattern='.'yyyy-MM-dd
|
||||
log4j.appender.File.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
|
@@ -1,184 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
|
||||
license agreements. See the NOTICE file distributed with this work for additional
|
||||
information regarding copyright ownership. The ASF licenses this file to
|
||||
You under the Apache License, Version 2.0 (the "License"); you may not use
|
||||
this file except in compliance with the License. You may obtain a copy of
|
||||
the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
|
||||
by applicable law or agreed to in writing, software distributed under the
|
||||
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||
OF ANY KIND, either express or implied. See the License for the specific
|
||||
language governing permissions and limitations under the License. -->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Alfresco Repository WAR Aggregator</name>
|
||||
<packaging>war</packaging>
|
||||
<description>Alfresco Repository aggregator, installs your repository AMPs in the Alfresco WAR for aggregation and easy deployment purposes</description>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<!-- During development we set log root level to Debug,
|
||||
this will be applicable to the log configuration in
|
||||
repo/src/main/resources/alfresco/extension/dev-log4j.properties,
|
||||
such as DemoComponent logging. -->
|
||||
<app.log.root.level>DEBUG</app.log.root.level>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>${alfresco.repo.artifactId}</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<!-- Demonstrating the dependency / installation of the repo AMP developed in the 'repo-amp' module -->
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>repo-amp</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>amp</type>
|
||||
</dependency>
|
||||
<!-- Uncomment if you are using SPP (SharePoint Protocol Support) for Online Edit etc -->
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-spp</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>amp</type>
|
||||
</dependency>
|
||||
-->
|
||||
<!-- Uncomment if you are using the RM (Records Management) module. -->
|
||||
<!--
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-rm</artifactId>
|
||||
<version>${alfresco.rm.version}</version>
|
||||
<type>amp</type>
|
||||
</dependency>
|
||||
-->
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<!-- Here is can control the order of overlay of your (WAR, AMP, etc.) dependencies
|
||||
| NOTE: At least one WAR dependency must be uncompressed first
|
||||
| NOTE: In order to have a dependency effectively added to the WAR you need to
|
||||
| explicitly mention it in the overlay section.
|
||||
| NOTE: First-win resource strategy is used by the WAR plugin
|
||||
-->
|
||||
<overlays>
|
||||
<!-- Current project customizations. This is normally empty, since customizations come from the AMPs -->
|
||||
<overlay/>
|
||||
<!-- The Alfresco WAR -->
|
||||
<overlay>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>${alfresco.repo.artifactId}</artifactId>
|
||||
<type>war</type>
|
||||
<!-- To allow inclusion of META-INF -->
|
||||
<excludes/>
|
||||
</overlay>
|
||||
<!-- Add / sort your AMPs here -->
|
||||
<overlay>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>repo-amp</artifactId>
|
||||
<type>amp</type>
|
||||
</overlay>
|
||||
<!-- Uncomment if you are using SPP -->
|
||||
<!--
|
||||
<overlay>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-spp</artifactId>
|
||||
<type>amp</type>
|
||||
</overlay>
|
||||
-->
|
||||
<!-- Uncomment if you are using RM -->
|
||||
<!--
|
||||
<overlay>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-rm</artifactId>
|
||||
<type>amp</type>
|
||||
</overlay>
|
||||
-->
|
||||
</overlays>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<!-- Overrides the run profile to disable securecomms and add rapid development configuration -->
|
||||
<profile>
|
||||
<id>run</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare-exploded-war</id>
|
||||
<goals>
|
||||
<goal>exploded</goal>
|
||||
</goals>
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>default-war</id>
|
||||
<configuration>
|
||||
<webXml>${project.build.directory}/${project.build.finalName}-nossl/WEB-INF/web.xml</webXml>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- Replaces web.xml where applicable, commenting out the security-constraints -->
|
||||
<plugin>
|
||||
<groupId>com.google.code.maven-replacer-plugin</groupId>
|
||||
<artifactId>replacer</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>disable-securecomms</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>replace</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<ignoreErrors>true</ignoreErrors>
|
||||
<file>${project.build.directory}/${project.build.finalName}/WEB-INF/web.xml</file>
|
||||
<outputDir>${project.build.directory}/${project.build.finalName}-nossl/WEB-INF/</outputDir>
|
||||
<preserveDir>false</preserveDir>
|
||||
<replacements>
|
||||
<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>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-rad</artifactId>
|
||||
<version>${maven.alfresco.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
@@ -1,6 +0,0 @@
|
||||
#set( $symbol_pound = '#' )
|
||||
#set( $symbol_dollar = '$' )
|
||||
#set( $symbol_escape = '\' )
|
||||
# You can add here custom log4j classes. This will be merged with the main log4j.properties
|
||||
# See http://wiki.alfresco.com/wiki/Developing_an_Alfresco_Module#Best_Log4j_Configuration_Practices
|
||||
log4j.logger.${package}.demoamp.DemoComponent=${app.log.root.level}
|
@@ -1,15 +1,128 @@
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
:: Dev environment startup script for Alfresco Community ::
|
||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
@echo off
|
||||
#set( $symbol_dollar = '$' )
|
||||
@ECHO OFF
|
||||
|
||||
set springloadedfile=%HOME%\.m2\repository\org\springframework\springloaded\@@springloaded.version@@\springloaded-@@springloaded.version@@.jar
|
||||
SET COMPOSE_FILE_PATH=%CD%\target\classes\docker\docker-compose.yml
|
||||
|
||||
if not exist %springloadedfile% (
|
||||
mvn validate -Psetup
|
||||
IF [%M2_HOME%]==[] (
|
||||
SET MVN_EXEC=mvn
|
||||
)
|
||||
|
||||
set MAVEN_OPTS=-javaagent:"%springloadedfile%" -noverify -Xms256m -Xmx2G
|
||||
IF NOT [%M2_HOME%]==[] (
|
||||
SET MVN_EXEC=%M2_HOME%\bin\mvn
|
||||
)
|
||||
|
||||
mvn clean install -Prun -nsu
|
||||
:: mvn install -Prun
|
||||
IF [%1]==[] (
|
||||
echo "Usage: %0 {build_start|build_start_it_supported|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
|
||||
GOTO END
|
||||
)
|
||||
|
||||
IF %1==build_start (
|
||||
CALL :down
|
||||
CALL :build
|
||||
CALL :start
|
||||
CALL :tail
|
||||
GOTO END
|
||||
)
|
||||
IF %1==build_start_it_supported (
|
||||
CALL :down
|
||||
CALL :build
|
||||
CALL :prepare-test
|
||||
CALL :start
|
||||
CALL :tail
|
||||
GOTO END
|
||||
)
|
||||
IF %1==start (
|
||||
CALL :start
|
||||
CALL :tail
|
||||
GOTO END
|
||||
)
|
||||
IF %1==stop (
|
||||
CALL :down
|
||||
GOTO END
|
||||
)
|
||||
IF %1==purge (
|
||||
CALL:down
|
||||
CALL:purge
|
||||
GOTO END
|
||||
)
|
||||
IF %1==tail (
|
||||
CALL :tail
|
||||
GOTO END
|
||||
)
|
||||
IF %1==reload_share (
|
||||
CALL :build_share
|
||||
CALL :start_share
|
||||
CALL :tail
|
||||
GOTO END
|
||||
)
|
||||
IF %1==reload_acs (
|
||||
CALL :build_acs
|
||||
CALL :start_acs
|
||||
CALL :tail
|
||||
GOTO END
|
||||
)
|
||||
IF %1==build_test (
|
||||
CALL :down
|
||||
CALL :build
|
||||
CALL :prepare-test
|
||||
CALL :start
|
||||
CALL :test
|
||||
CALL :tail_all
|
||||
CALL :down
|
||||
GOTO END
|
||||
)
|
||||
IF %1==test (
|
||||
CALL :test
|
||||
GOTO END
|
||||
)
|
||||
echo "Usage: %0 {build_start|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
|
||||
:END
|
||||
EXIT /B %ERRORLEVEL%
|
||||
|
||||
:start
|
||||
docker volume create ${rootArtifactId}-acs-volume
|
||||
docker volume create ${rootArtifactId}-db-volume
|
||||
docker volume create ${rootArtifactId}-ass-volume
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" up --build -d
|
||||
EXIT /B 0
|
||||
:start_share
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" up --build -d ${rootArtifactId}-share
|
||||
EXIT /B 0
|
||||
:start_acs
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" up --build -d ${rootArtifactId}-acs
|
||||
EXIT /B 0
|
||||
:down
|
||||
if exist "%COMPOSE_FILE_PATH%" (
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" down
|
||||
)
|
||||
EXIT /B 0
|
||||
:build
|
||||
call %MVN_EXEC% clean package
|
||||
EXIT /B 0
|
||||
:build_share
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" kill ${rootArtifactId}-share
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" rm -f ${rootArtifactId}-share
|
||||
call %MVN_EXEC% clean package -pl ${rootArtifactId}-share,${rootArtifactId}-share-docker
|
||||
EXIT /B 0
|
||||
:build_acs
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" kill ${rootArtifactId}-acs
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" rm -f ${rootArtifactId}-acs
|
||||
call %MVN_EXEC% clean package -pl ${rootArtifactId}-integration-tests,${rootArtifactId}-platform,${rootArtifactId}-platform-docker
|
||||
EXIT /B 0
|
||||
:tail
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" logs -f
|
||||
EXIT /B 0
|
||||
:tail_all
|
||||
docker compose -f "%COMPOSE_FILE_PATH%" logs --tail="all"
|
||||
EXIT /B 0
|
||||
:prepare-test
|
||||
call %MVN_EXEC% verify -DskipTests=true -pl ${rootArtifactId}-platform,${rootArtifactId}-integration-tests,${rootArtifactId}-platform-docker
|
||||
EXIT /B 0
|
||||
:test
|
||||
call %MVN_EXEC% verify -pl ${rootArtifactId}-platform,${rootArtifactId}-integration-tests
|
||||
EXIT /B 0
|
||||
:purge
|
||||
docker volume rm -f ${rootArtifactId}-acs-volume
|
||||
docker volume rm -f ${rootArtifactId}-db-volume
|
||||
docker volume rm -f ${rootArtifactId}-ass-volume
|
||||
EXIT /B 0
|
@@ -1,9 +1,123 @@
|
||||
#!/bin/bash
|
||||
# Downloads the spring-loaded lib if not existing and runs the full all-in-one
|
||||
# (Alfresco + Share + Solr) using the runner project
|
||||
springloadedfile=~/.m2/repository/org/springframework/springloaded/@@springloaded.version@@/springloaded-@@springloaded.version@@.jar
|
||||
#set( $symbol_dollar = '$' )
|
||||
#!/bin/sh
|
||||
|
||||
if [ ! -f $springloadedfile ]; then
|
||||
mvn validate -Psetup
|
||||
export COMPOSE_FILE_PATH="${symbol_dollar}{PWD}/target/classes/docker/docker-compose.yml"
|
||||
|
||||
if [ -z "${symbol_dollar}{M2_HOME}" ]; then
|
||||
export MVN_EXEC="mvn"
|
||||
else
|
||||
export MVN_EXEC="${symbol_dollar}{M2_HOME}/bin/mvn"
|
||||
fi
|
||||
MAVEN_OPTS="-javaagent:$springloadedfile -noverify -Xms256m -Xmx2G" mvn clean install -Prun
|
||||
|
||||
start() {
|
||||
docker volume create ${rootArtifactId}-acs-volume
|
||||
docker volume create ${rootArtifactId}-db-volume
|
||||
docker volume create ${rootArtifactId}-ass-volume
|
||||
docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" up --build -d
|
||||
}
|
||||
|
||||
start_share() {
|
||||
docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" up --build -d ${rootArtifactId}-share
|
||||
}
|
||||
|
||||
start_acs() {
|
||||
docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" up --build -d ${rootArtifactId}-acs
|
||||
}
|
||||
|
||||
down() {
|
||||
if [ -f "${symbol_dollar}COMPOSE_FILE_PATH" ]; then
|
||||
docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" down
|
||||
fi
|
||||
}
|
||||
|
||||
purge() {
|
||||
docker volume rm -f ${rootArtifactId}-acs-volume
|
||||
docker volume rm -f ${rootArtifactId}-db-volume
|
||||
docker volume rm -f ${rootArtifactId}-ass-volume
|
||||
}
|
||||
|
||||
build() {
|
||||
${symbol_dollar}MVN_EXEC clean package
|
||||
}
|
||||
|
||||
build_share() {
|
||||
docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" kill ${rootArtifactId}-share
|
||||
yes | docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" rm -f ${rootArtifactId}-share
|
||||
${symbol_dollar}MVN_EXEC clean package -pl ${rootArtifactId}-share,${rootArtifactId}-share-docker
|
||||
}
|
||||
|
||||
build_acs() {
|
||||
docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" kill ${rootArtifactId}-acs
|
||||
yes | docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" rm -f ${rootArtifactId}-acs
|
||||
${symbol_dollar}MVN_EXEC clean package -pl ${rootArtifactId}-integration-tests,${rootArtifactId}-platform,${rootArtifactId}-platform-docker
|
||||
}
|
||||
|
||||
tail() {
|
||||
docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" logs -f
|
||||
}
|
||||
|
||||
tail_all() {
|
||||
docker compose -f "${symbol_dollar}COMPOSE_FILE_PATH" logs --tail="all"
|
||||
}
|
||||
|
||||
prepare_test() {
|
||||
${symbol_dollar}MVN_EXEC verify -DskipTests=true -pl ${rootArtifactId}-platform,${rootArtifactId}-integration-tests,${rootArtifactId}-platform-docker
|
||||
}
|
||||
|
||||
test() {
|
||||
${symbol_dollar}MVN_EXEC verify -pl ${rootArtifactId}-platform,${rootArtifactId}-integration-tests
|
||||
}
|
||||
|
||||
case "${symbol_dollar}1" in
|
||||
build_start)
|
||||
down
|
||||
build
|
||||
start
|
||||
tail
|
||||
;;
|
||||
build_start_it_supported)
|
||||
down
|
||||
build
|
||||
prepare_test
|
||||
start
|
||||
tail
|
||||
;;
|
||||
start)
|
||||
start
|
||||
tail
|
||||
;;
|
||||
stop)
|
||||
down
|
||||
;;
|
||||
purge)
|
||||
down
|
||||
purge
|
||||
;;
|
||||
tail)
|
||||
tail
|
||||
;;
|
||||
reload_share)
|
||||
build_share
|
||||
start_share
|
||||
tail
|
||||
;;
|
||||
reload_acs)
|
||||
build_acs
|
||||
start_acs
|
||||
tail
|
||||
;;
|
||||
build_test)
|
||||
down
|
||||
build
|
||||
prepare_test
|
||||
start
|
||||
test
|
||||
tail_all
|
||||
down
|
||||
;;
|
||||
test)
|
||||
test
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${symbol_dollar}0 {build_start|build_start_it_supported|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
|
||||
esac
|
@@ -1,421 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Alfresco, Share and Solr4 Tomcat Runner</name>
|
||||
<packaging>pom</packaging>
|
||||
<description>Alfresco, Share and Solr4 Tomcat Runner</description>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>run</id>
|
||||
|
||||
<!-- TODO: figure out a way to define these properties in a parent POM, they are now also duplicated
|
||||
in the solr-config/pom.xml -->
|
||||
<properties>
|
||||
<alfresco.solr.dir>${alfresco.data.location}/solr4</alfresco.solr.dir>
|
||||
<alfresco.solr.home.dir>${alfresco.solr.dir}/config</alfresco.solr.home.dir>
|
||||
<alfresco.solr.data.dir>${alfresco.solr.dir}/data</alfresco.solr.data.dir>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- Copy and filter webapp context files - output dir is runner/target/contexts -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-tomcat-resources</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/contexts</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>tomcat</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- Run Tomcat 7 embedded with Alfresco.war and Share.war contexts.
|
||||
The solr4.war is fetched directly from the Maven repo, it is not built like the other WARs.
|
||||
Plugin version is picked up from alfresco-sdk-parent.pom pluginManagement definition,
|
||||
which also brings in the H2 database lib -->
|
||||
<plugin>
|
||||
<groupId>org.apache.tomcat.maven</groupId>
|
||||
<artifactId>tomcat7-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>run-wars</id>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<phase>pre-integration-test</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<ignorePackaging>true</ignorePackaging>
|
||||
<!-- Make sure Catalina classes are picked up when we got virtual webapp contexts with classpaths -->
|
||||
<useSeparateTomcatClassLoader>true</useSeparateTomcatClassLoader>
|
||||
<path>/</path>
|
||||
<systemProperties>
|
||||
<solr.solr.home>${alfresco.solr.home.dir}</solr.solr.home>
|
||||
</systemProperties>
|
||||
<!-- Should this class loader delegate to the parent class loader before searching its
|
||||
own repositories (i.e. the usual Java2 delegation model) -->
|
||||
<!-- Prevent parent classloader delegation, each webapp loads.
|
||||
If set to true then you will get a truckload of Solr logging as
|
||||
the alf_data_dev/solr4/config/log4j-solr.properties file is not picked up.
|
||||
This also fixes issues with the Google Guava Library, which this tomcat plugin uses
|
||||
version 10.0.1 of but Solr uses 14.0.1 -->
|
||||
<delegate>false</delegate>
|
||||
<webapps>
|
||||
<webapp>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>repo</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>war</type>
|
||||
<!-- Make sure webapp is loaded with context and everything,
|
||||
if set to 'false' then you will get 404 when trying to access the webapp from browser -->
|
||||
<asWebapp>true</asWebapp>
|
||||
<contextPath>/alfresco</contextPath>
|
||||
<contextFile>${project.build.directory}/contexts/context-repo.xml</contextFile>
|
||||
</webapp>
|
||||
<webapp>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>share</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>war</type>
|
||||
<asWebapp>true</asWebapp>
|
||||
<contextPath>/share</contextPath>
|
||||
<contextFile>${project.build.directory}/contexts/context-share.xml</contextFile>
|
||||
</webapp>
|
||||
<webapp>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-solr4</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>war</type>
|
||||
<asWebapp>true</asWebapp>
|
||||
<contextPath>/solr4</contextPath>
|
||||
<contextFile>${project.build.directory}/contexts/context-solr.xml</contextFile>
|
||||
</webapp>
|
||||
</webapps>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<!-- Runs Share User Interface regression tests using Alfresco Share PO (Page Object) vanilla Selenium / Webdrone (WebDriver wrapper).
|
||||
NOTE: Assumes an already running Alfresco + Share at the default location ${share.client.url}
|
||||
(e.g. by invoking:
|
||||
$ mvn clean install -Prun,regression-testing
|
||||
to run a specific test do:
|
||||
$ mvn clean install -Prun,regression-testing -Dit.test=LoginPageTest
|
||||
-->
|
||||
<profile>
|
||||
<id>regression-testing</id>
|
||||
<properties>
|
||||
<!-- Re-configure Tomcat 7 Plugin (see run profile) to fork so we can run tests in parallel -->
|
||||
<!-- Note. the fork option does not fork a new JVM. Rather it is run in a thread created by the
|
||||
Maven Launcher class (org.codehaus.plexus.classworlds.launcher.Launcher) that is invoked by the mvn command. -->
|
||||
<maven.tomcat.fork>true</maven.tomcat.fork>
|
||||
|
||||
<!-- Make sure we are actually testing something -->
|
||||
<skipTests>false</skipTests>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- Need to unpack the tests becuase of Jiras: -->
|
||||
<!-- https://jira.codehaus.org/browse/SUREFIRE-997 -->
|
||||
<!-- https://jira.codehaus.org/browse/SUREFIRE-1024 -->
|
||||
<!-- Workaround for classloading issue in share-po (need to unpack it)-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare-regression-test-resources</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifact>${alfresco.groupId}:share-po:${alfresco.version}:jar:tests</artifact>
|
||||
<outputDirectory>${project.build.directory}/testng-resources</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.18.1</version>
|
||||
<configuration>
|
||||
<suiteXmlFiles>
|
||||
<!-- Smaller test suite for Share, essential stuff like Login, Navigation, DocLib, and Search -->
|
||||
<!-- Currently using our own config to be able to comment out one test class
|
||||
<suiteXmlFile>${project.build.directory}/testng-resources/testng-alfresco-share.xml</suiteXmlFile> -->
|
||||
<suiteXmlFile>${project.basedir}/test-ng/testng-alfresco-share.xml</suiteXmlFile>
|
||||
</suiteXmlFiles>
|
||||
<testClassesDirectory>${project.build.directory}/testng-resources</testClassesDirectory>
|
||||
<systemPropertyVariables>
|
||||
<!-- Where is the Alfresco Share Webapp that we are testing -->
|
||||
<share.target>${share.client.url}</share.target>
|
||||
</systemPropertyVariables>
|
||||
|
||||
<!-- The out-of-the-box Alfresco Share PO test classes does not follow the *IT.java
|
||||
naming convention, they use *Test.java, so need to add that -->
|
||||
<includes>
|
||||
<include>**/*Test.java</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>regression-tests</id>
|
||||
<phase>integration-test</phase>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>verify-tests</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<!-- Bring in the Share Page Objects (PO) used in the regression tests -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share-po</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<scope>test</scope>
|
||||
|
||||
<!-- Exclude version 2.39.0 of selenium that does not work with latest FF browsers, we include
|
||||
version 2.45 later on here in this profile -->
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-server</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- Bring in the Share Page Object (PO) regression tests that comes with Alfresco.
|
||||
These tests cover the Alfresco Share Web Application -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share-po</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
|
||||
<!-- Exclude version 2.39.0 of selenium that does not work with latest FF browsers, we include
|
||||
version 2.45 later on here in this profile -->
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-server</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- Make sure we are running with newer selenium that works with newest FF (newer than 2.39.0) -->
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>2.45.0-alfresco</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-server</artifactId>
|
||||
<version>2.45.0-alfresco</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>servlet-api-2.5</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- Test NG is defined with test scope in share-po, so need it here too -->
|
||||
<!-- Alfresco code creates a wrapper around Test NG -->
|
||||
<dependency>
|
||||
<groupId>org.alfresco.test</groupId>
|
||||
<artifactId>alfresco-testng</artifactId>
|
||||
<version>1.1</version>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.hamcrest</groupId>
|
||||
<artifactId>hamcrest-core</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
|
||||
<!-- Runs functional domain specific tests using Alfresco Share PO (Page Object) vanilla Selenium / Webdrone (WebDriver wrapper).
|
||||
NOTE: Assumes an already running Alfresco + Share at the default location ${share.client.url}
|
||||
(e.g. by invoking:
|
||||
$ mvn clean install -Prun,functional-testing
|
||||
to run a specific test do:
|
||||
$ mvn clean install -Prun,functional-testing -Dit.test=DemoPageTestIT
|
||||
-->
|
||||
<profile>
|
||||
<id>functional-testing</id>
|
||||
<properties>
|
||||
<!-- Re-configure Tomcat 7 Plugin (see run profile) to fork so we can run tests in parallel -->
|
||||
<!-- Note. the fork option does not fork a new JVM. Rather it is run in a thread created by the
|
||||
Maven Launcher class (org.codehaus.plexus.classworlds.launcher.Launcher) that is invoked by the mvn command. -->
|
||||
<maven.tomcat.fork>true</maven.tomcat.fork>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.18.1</version>
|
||||
<configuration>
|
||||
<suiteXmlFiles>
|
||||
<suiteXmlFile>${project.parent.basedir}/share-amp/target/test-classes/testng.xml</suiteXmlFile>
|
||||
</suiteXmlFiles>
|
||||
<testClassesDirectory>${project.parent.basedir}/share-amp/target/test-classes</testClassesDirectory>
|
||||
<systemPropertyVariables>
|
||||
<!-- Where is the Alfresco Share Webapp that we are testing -->
|
||||
<share.target>${share.client.url}</share.target>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>functional-tests</id>
|
||||
<phase>integration-test</phase>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>verify-tests</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<dependencies>
|
||||
<!-- Bring in the Share Page Objects (PO) used in our functional tests.
|
||||
Without it TestNG cannot load our test class when it uses page objects such as LoginPage -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share-po</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<scope>test</scope>
|
||||
|
||||
<!-- Exclude version 2.39.0 of selenium that does not work with latest FF browsers, we include
|
||||
version 2.45 later on here in this profile -->
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-server</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- Bring in the Share Page Object (PO) Tests that comes with Alfresco. It has
|
||||
the org.alfresco.po.share.AbstractTest class that our custom tests extend.
|
||||
Without it TestNG cannot load our test class -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share-po</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
|
||||
<!-- Exclude version 2.39.0 of selenium that does not work with latest FF browsers, we include
|
||||
version 2.45 later on here in this profile -->
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-server</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- Make sure we are running with newer selenium that works with newest FF (newer than 2.39.0) -->
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>2.45.0-alfresco</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-server</artifactId>
|
||||
<version>2.45.0-alfresco</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>servlet-api-2.5</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- Test NG is defined with test scope in share-po, so need it here too -->
|
||||
<!-- Alfresco code creates a wrapper around Test NG -->
|
||||
<dependency>
|
||||
<groupId>org.alfresco.test</groupId>
|
||||
<artifactId>alfresco-testng</artifactId>
|
||||
<version>1.1</version>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.hamcrest</groupId>
|
||||
<artifactId>hamcrest-core</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
|
||||
</profiles>
|
||||
</project>
|
@@ -1,24 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Alfresco SDK @@alfresco.sdk.parent.version@@ - Running Alfresco ${alfresco.version}</title>
|
||||
</head>
|
||||
<body style="font: 13px/1.231 Open Sans,arial,helvetica,clean,sans-serif;">
|
||||
<img alt="Maven Alfresco SDK" src="https://github.com/Alfresco/alfresco-sdk/raw/master/src/site/resources/img/alfresco-maven-logo.jpg">
|
||||
<p>Congratulations, you are successfully running the <a href="https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-sdk-aggregator/latest/archetypes/alfresco-allinone-archetype/index.html">All in One project from the <a href="https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-sdk-aggregator/latest/index.html">Alfresco SDK @@alfresco.sdk.parent.version@@</a>, powered by <a href="http://maven.apache.org/">Apache Maven</a>!
|
||||
<br/>
|
||||
You can access the Alfresco components running embedded below:</p>
|
||||
<ul>
|
||||
<li><a href="/share">Alfresco Share</a></li>
|
||||
<li><a href="/alfresco">Alfresco Repository</a></li>
|
||||
<li><a href="/solr4">Alfresco Solr4</a></li>
|
||||
</ul>
|
||||
<p><b>Resources:</b></p>
|
||||
<ul>
|
||||
<li><a href="http://docs.alfresco.com">Alfresco Documentation</a></li>
|
||||
<li><a href="https://support.alfresco.com">Alfresco Enterprise Support portal</a></li>
|
||||
<li><a href="https://github.com/Alfresco/alfresco-sdk/fork">Fork and contribute to this SDK!</a></li>
|
||||
<li><a href="https://issues.alfresco.com/jira/browse/ALF">Report an Alfresco issue</a></li>
|
||||
<li><a href="https://github.com/Alfresco/alfresco-sdk/issues/new">Report an SDK issue</a></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
@@ -1,79 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
|
||||
<suite thread-count="1" parallel="tests" preserve-order="true" verbose="6" name="Alfresco Share UI Basic Regression Test">
|
||||
<groups>
|
||||
<run>
|
||||
<include name="unit"/>
|
||||
<include name="alfresco-one"/>
|
||||
<exclude name=".*Bug42"/>
|
||||
<exclude name=".*Bug"/>
|
||||
<exclude name="chromeOnly"/>
|
||||
<exclude name="Hybrid"/>
|
||||
<exclude name="download"/>
|
||||
<exclude name="communityIssue"/>
|
||||
</run>
|
||||
</groups>
|
||||
<test name="LoginPageTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.LoginPageTest" />
|
||||
</classes>
|
||||
</test>
|
||||
<test name="NavigationBarTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.NavigationBarTest" />
|
||||
</classes>
|
||||
</test>
|
||||
<test name="LiveSearchDropdownTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.search.LiveSearchDropdownTest" />
|
||||
</classes>
|
||||
</test>
|
||||
<test name="FacetedSearchResultsPageTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.search.FacetedSearchResultsPageTest" />
|
||||
</classes>
|
||||
</test>
|
||||
<test name="DocumentDetailsPageTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.site.document.DocumentDetailsPageTest"/>
|
||||
</classes>
|
||||
</test>
|
||||
<!-- TODO: fix this, currently does not work
|
||||
<test name="DocumentLibraryPageTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.site.document.DocumentLibraryPageTest"/>
|
||||
</classes>
|
||||
</test>
|
||||
-->
|
||||
<test name="FileDirectoryInfoTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.site.document.FileDirectoryInfoTest">
|
||||
<methods>
|
||||
<!-- these currently take longer than 60 seconds for page rendering... -->
|
||||
<exclude name="test107TagsForFolder" />
|
||||
<exclude name="test114TagsForFile" />
|
||||
</methods>
|
||||
</class>
|
||||
</classes>
|
||||
</test>
|
||||
<test name="FolderDetailsPageTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.site.document.FolderDetailsPageTest"/>
|
||||
</classes>
|
||||
</test>
|
||||
<test name="ManagePermissionsTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.site.document.ManagePermissionsTest"/>
|
||||
</classes>
|
||||
</test>
|
||||
<test name="InviteMembersPageTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.site.InviteMembersPageTest" />
|
||||
</classes>
|
||||
</test>
|
||||
<test name="SiteFinderPageTest">
|
||||
<classes>
|
||||
<class name="org.alfresco.po.share.site.SiteFinderPageTest" />
|
||||
</classes>
|
||||
</test>
|
||||
</suite>
|
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ===================================================================================================================
|
||||
This context file is used only in a development IDE for rapid development,
|
||||
it is never released with the Alfresco.war
|
||||
|
||||
IMPORTANT: If an AMP or JAR extension is added to the Alfresco WAR,
|
||||
then you need to add the paths below for this new extension.
|
||||
=================================================================================================================-->
|
||||
|
||||
<!-- Pick up static resource files from ../repo/target/repo.
|
||||
The Alfresco.war 5.0 does not have a webapp (it used to have Alfresco Explorer but not anymore)
|
||||
that we will access, so this docBase might not be needed -->
|
||||
<Context docBase="${project.parent.basedir}/alfresco-war/target/${project.build.finalName}">
|
||||
<!-- Pick up static resource files from AMPs and other directories (this should not include docBase) -->
|
||||
<Resources className="org.apache.naming.resources.VirtualDirContext"
|
||||
extraResourcePaths="/=${project.parent.basedir}/repo-amp/target/repo-amp/web" />
|
||||
<!-- IMPORTANT! The extraResourcePaths string need to be on one continues line, so if we add another Repo AMP,
|
||||
it would look something like this:
|
||||
<Resources className="org.apache.naming.resources.VirtualDirContext"
|
||||
extraResourcePaths="/=${project.parent.basedir}/repo-amp/target/repo-amp/web,/=${project.parent.basedir}/component-a-repo/target/component-a-repo/web" />
|
||||
-->
|
||||
|
||||
<!-- Configure where the Alfresco (alfresco.war) web application can load classes, test classes, and config files -->
|
||||
<!-- Setup the virtual class path like this:
|
||||
1) target/classes
|
||||
2) target/${project.build.finalName}/config
|
||||
3) target/test-classes
|
||||
|
||||
This way mvn compile can be invoked and all changes will be picked up
|
||||
-->
|
||||
<Loader className="org.apache.catalina.loader.VirtualWebappLoader"
|
||||
searchVirtualFirst="true"
|
||||
virtualClasspath="${project.parent.basedir}/repo-amp/target/classes;
|
||||
${project.parent.basedir}/repo-amp/target/repo-amp/config;
|
||||
${project.parent.basedir}/repo-amp/target/test-classes" />
|
||||
|
||||
<!-- Load from all directories, not just when the META-INF directory is found in exploded JAR -->
|
||||
<JarScanner scanAllDirectories="true" />
|
||||
</Context>
|
||||
|
||||
|
||||
|
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ===================================================================================================================
|
||||
This context file is used only in a development IDE for rapid development,
|
||||
it is never released with the Share.war
|
||||
|
||||
IMPORTANT: If an AMP or JAR extension is added to the Share WAR,
|
||||
then you need to add the paths below for this new extension.
|
||||
=================================================================================================================-->
|
||||
<Context>
|
||||
<!-- Pick up static resource files from any Share extensions, being it a JAR or an AMP
|
||||
(this should not include docBase) -->
|
||||
<Resources className="org.apache.naming.resources.VirtualDirContext"
|
||||
extraResourcePaths="/=${project.parent.basedir}/share-amp/target/share-amp/web" />
|
||||
<!-- IMPORTANT! The extraResourcePaths string need to be on one continues line, so if we add another Share AMP,
|
||||
it would look something like this:
|
||||
<Resources className="org.apache.naming.resources.VirtualDirContext"
|
||||
extraResourcePaths="/=${project.parent.basedir}/share-amp/target/share-amp/web,/=${project.parent.basedir}/component-a-share/target/component-a-share/web" />
|
||||
-->
|
||||
|
||||
<!-- Configure where the Share (share.war) web application can load classes, config, and test classes (in that order) -->
|
||||
<!-- Setup the virtual class path like this:
|
||||
1) share-amp/target/classes
|
||||
2) share-amp/target/${project.build.finalName}/config
|
||||
3) share-amp/target/test-classes
|
||||
4) Add other AMP paths here....
|
||||
5) share/target/test-classes (loads the share-config-custom.xml used during test runs)
|
||||
|
||||
This way mvn compile can be invoked and all changes will be picked up
|
||||
-->
|
||||
<Loader className="org.apache.catalina.loader.VirtualWebappLoader"
|
||||
searchVirtualFirst="true"
|
||||
virtualClasspath="${project.parent.basedir}/share-amp/target/classes;
|
||||
${project.parent.basedir}/share-amp/target/share-amp/config;
|
||||
${project.parent.basedir}/share-amp/target/test-classes;
|
||||
${project.parent.basedir}/share/target/test-classes" />
|
||||
|
||||
<!-- Load from all directories, not just when the META-INF directory is found in exploded JAR -->
|
||||
<JarScanner scanAllDirectories="true" />
|
||||
</Context>
|
||||
|
||||
|
||||
|
@@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Context>
|
||||
<Environment name="solr/home" type="java.lang.String" value="${alfresco.solr.home.dir}/" override="true"/>
|
||||
<Environment name="solr/model/dir" type="java.lang.String" value="${alfresco.solr.home.dir}/alfrescoModels/" override="true"/>
|
||||
<Environment name="solr/content/dir" type="java.lang.String" value="${alfresco.solr.data.dir}/content/" override="true"/>
|
||||
|
||||
<!-- Pick up static resource files from any Solr extensions, being it a JAR or an AMP,
|
||||
by default there are no extensions, just the standard Solr webapp files.
|
||||
(this should not include docBase)-->
|
||||
<Resources className="org.apache.naming.resources.VirtualDirContext"
|
||||
extraResourcePaths="/=${project.parent.basedir}/runner/target/tomcat/webapps/alfresco-solr4" />
|
||||
|
||||
<!-- Configure where the Solr (solr4.war) web application can load classes, test classes, and config -->
|
||||
<!-- Solr is not customized by default so just points to standard Solr classes. -->
|
||||
<!-- Setup the virtual class path like this:
|
||||
1) target/classes
|
||||
3) target/test-classes
|
||||
|
||||
This way mvn compile can be invoked and all changes will be picked up-->
|
||||
|
||||
<Loader className="org.apache.catalina.loader.VirtualWebappLoader"
|
||||
searchVirtualFirst="true"
|
||||
virtualClasspath="${project.parent.basedir}/runner/target/tomcat/webapps/alfresco-solr4/WEB-INF/classes" />
|
||||
|
||||
<!-- Load from all directories, not just when the META-INF directory is found in exploded JAR -->
|
||||
<JarScanner scanAllDirectories="true" />
|
||||
</Context>
|
@@ -1,107 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<name>Alfresco Share AMP Module</name>
|
||||
<packaging>amp</packaging>
|
||||
<description>This is a sample Alfresco Share AMP project, depended upon by the share WAR module</description>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
SDK properties have sensible defaults in the SDK parent,
|
||||
but you can override the properties below to use another version.
|
||||
For more available properties see the alfresco-sdk-parent POM.
|
||||
-->
|
||||
<properties>
|
||||
<!-- Defines the target WAR artifactId to run this amp, only used with the -Pamp-to-war switch
|
||||
Allowed values: alfresco | share. In this case it's configured to use OOTB share -->
|
||||
<app.amp.client.war.artifactId>share</app.amp.client.war.artifactId>
|
||||
|
||||
<!-- Defines the log level used in log4j.properties -->
|
||||
<app.log.root.level>WARN</app.log.root.level>
|
||||
</properties>
|
||||
|
||||
<!-- Following dependencies are needed for compiling Java code in src/main/java;
|
||||
<scope>provided</scope> is inherited for each of the following;
|
||||
for more info, please refer to alfresco-platform-distribution POM -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>classes</classifier>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.extensions.surf</groupId>
|
||||
<artifactId>spring-surf-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!--===============================================================
|
||||
The following dependencies are needed to be able to compile the
|
||||
custom functional tests that are based on Page Objects (PO)
|
||||
===============================================================-->
|
||||
|
||||
<!-- Bring in the Share Page Objects (PO) used in our functional tests.
|
||||
It contains page objects such as LoginPage -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share-po</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- Bring in the Share Page Object (PO) Tests that comes with Alfresco. It has
|
||||
the org.alfresco.po.share.AbstractTest class that our custom tests extend. -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>share-po</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>tests</classifier>
|
||||
<scope>test</scope>
|
||||
|
||||
<!-- Exclude version 2.39.0 of selenium that does not work with latest FF browsers, we include
|
||||
version 2.45 later on here -->
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-server</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- Bring in newer selenium version -->
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>2.45.0-alfresco</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- Test NG is defined with test scope in share-po, so need it here too -->
|
||||
<!-- Alfresco code creates a wrapper around Test NG -->
|
||||
<dependency>
|
||||
<groupId>org.alfresco.test</groupId>
|
||||
<artifactId>alfresco-testng</artifactId>
|
||||
<version>1.1</version>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.hamcrest</groupId>
|
||||
<artifactId>hamcrest-core</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@@ -1,9 +0,0 @@
|
||||
# This file should contain messages and labels specific to this share extension
|
||||
# Put here things like:
|
||||
# Content Model Aspect and Type Labels
|
||||
# Form field labels
|
||||
# Doc lib Action labels and messages
|
||||
# Doc Lib Action Forms labels
|
||||
#
|
||||
|
||||
|
@@ -1,2 +0,0 @@
|
||||
hello-label=Hello from i18n!
|
||||
hello-test=New label!
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user