mirror of
https://github.com/Alfresco/alfresco-sdk.git
synced 2025-09-10 14:12:12 +00:00
Compare commits
447 Commits
alfresco-s
...
alfresco-s
Author | SHA1 | Date | |
---|---|---|---|
|
80327a9968 | ||
|
f71c209762 | ||
|
4349038590 | ||
|
c8b1c35ac8 | ||
|
f3a64a34cf | ||
|
3e1e9ff085 | ||
|
2fda91eacc | ||
|
0d0c0109b9 | ||
|
e822e82cd3 | ||
|
5774deb1cd | ||
|
eb52d856ae | ||
|
aaf81191bb | ||
|
0a0c8d8172 | ||
|
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 | ||
|
cda786187c | ||
|
8cf04fc98d | ||
|
3b579596db | ||
|
b2afebed09 | ||
|
3707dbc5d6 | ||
|
f3d85a19ce | ||
|
6c57d9ede0 | ||
|
0958c63b44 | ||
|
eeb5e7304f | ||
|
8d06e0e791 | ||
|
a11a3a65b6 | ||
|
5936c3fcda | ||
|
3e7a6d83a9 | ||
|
235a84105a | ||
|
60dac34448 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -12,3 +12,4 @@ pom.xml.next
|
|||||||
release.properties
|
release.properties
|
||||||
**.settings
|
**.settings
|
||||||
**bin
|
**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]
|
66
.travis.yml
Normal file
66
.travis.yml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
import:
|
||||||
|
- source: Alfresco/alfresco-build-tools:.travis.docker_login.yml@v1.1.5
|
||||||
|
- source: Alfresco/alfresco-build-tools:.travis.docker_hub_login.yml@v1.1.5
|
||||||
|
- source: Alfresco/alfresco-build-tools:.travis.java.yml@v1.1.5
|
||||||
|
- source: Alfresco/alfresco-build-tools:.travis.pre-commit.yml@v1.1.5
|
||||||
|
|
||||||
|
dist: focal
|
||||||
|
|
||||||
|
git:
|
||||||
|
depth: false
|
||||||
|
quiet: true
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- /feature\/.*/
|
||||||
|
- /fix\/.*/
|
||||||
|
- sdk-4.4
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- name: test
|
||||||
|
if: commit_message !~ /\[skip tests\]/
|
||||||
|
- name: release
|
||||||
|
if: commit_message ~= /\[release\]/ AND branch = master AND type != push AND type != pull_request AND fork = false
|
||||||
|
|
||||||
|
env:
|
||||||
|
global:
|
||||||
|
- MAVEN_INSTALL_CMD="mvn clean install -B"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
|
||||||
|
- name: "current version"
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- ${MAVEN_INSTALL_CMD}
|
||||||
|
|
||||||
|
- name: "7.2 Enterprise"
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- ${MAVEN_INSTALL_CMD} -Penterprise-72-tests
|
||||||
|
|
||||||
|
- name: "7.2 Community"
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- ${MAVEN_INSTALL_CMD} -Pcommunity-72-tests
|
||||||
|
|
||||||
|
- name: "7.1 Enterprise"
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- ${MAVEN_INSTALL_CMD} -Penterprise-71-tests
|
||||||
|
|
||||||
|
- name: "7.1 Community"
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- ${MAVEN_INSTALL_CMD} -Pcommunity-71-tests
|
||||||
|
|
||||||
|
- name: "7.0 Enterprise"
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- ${MAVEN_INSTALL_CMD} -Penterprise-70-tests
|
||||||
|
|
||||||
|
- name: "7.0 Community"
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- ${MAVEN_INSTALL_CMD} -Pcommunity-70-tests
|
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 -->
|
130
README.md
130
README.md
@@ -1,55 +1,128 @@
|
|||||||
# [](#features) Alfresco SDK
|
# [](#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://travis-ci.com/Alfresco/alfresco-sdk)
|
||||||
|
[](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
|
## 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
|
## 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)
|
- 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-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).
|
- 2014-07: Project fully migrated from [Google Code](https://code.google.com/p/maven-alfresco-archetypes).
|
||||||
|
|
||||||
## User Getting Started
|
## User Getting Started
|
||||||
|
|
||||||
|
### 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 or SDK 4.3 instead of SDK 4.4.
|
||||||
|
|
||||||
|
- For Enterprise and Community versions of 7.x, SDK 4.4 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
|
### Latest Documentation
|
||||||
To get started with Alfresco SDK 2.1 (latest) visit the offical Alfresco Documentation for:
|
To get started with **Alfresco SDK 4.4.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)
|
#### Documentation about Previous Versions
|
||||||
- [Alfresco Enterprise 5.0.1 and above](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
|
| SDK Version | Alfresco Enterprise Version | Alfresco Community Version | Documentation |
|
||||||
|
| ------------- |:-------------:| :-----:|:-----|
|
||||||
#### Previous versions Documentation
|
| 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 |
|
||||||
- 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)
|
| 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 |
|
||||||
- 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)
|
| 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 |
|
||||||
### Samples
|
| 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 |
|
||||||
Sample extension projects that use the SDK, maintained by @ohej in the [Alfresco SDK Samples project](https://github.com/Alfresco/alfresco-sdk-samples/).
|
| 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 |
|
||||||
### Command reference
|
| SDK 2.2 | Alfresco 5.1.x | Alfresco 5.1.x | https://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html |
|
||||||
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).
|
| 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 |
|
||||||
### Want to get up to speed quickly in Eclipse? Check out this video!
|
| 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 |
|
||||||
|
|
||||||
[](https://www.youtube.com/watch?v=utYZaVe9Nd0)
|
|
||||||
|
|
||||||
## Reporting Issues and Community Support
|
## 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
|
## 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
|
## 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 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.
|
- 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 Artifacts Repository
|
||||||
|
|
||||||
#### Alfresco Releases
|
#### 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
|
```xml
|
||||||
<repository>
|
<repository>
|
||||||
@@ -68,6 +141,9 @@ To test new unreleased (unsupported) features, you can use the following snippet
|
|||||||
</repository>
|
</repository>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 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
|
## For Developers that want to contribute to the SDK
|
||||||
See the [Developers Wiki page](https://github.com/Alfresco/alfresco-sdk/wiki/Developer-Wiki).
|
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>
|
<groupId>org.alfresco.maven.archetype</groupId>
|
||||||
<artifactId>alfresco-allinone-archetype</artifactId>
|
<artifactId>alfresco-allinone-archetype</artifactId>
|
||||||
<packaging>maven-archetype</packaging>
|
<packaging>maven-archetype</packaging>
|
||||||
<name>Maven Alfresco SDK - All-in-One Archetype</name>
|
<name>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>
|
<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>
|
<parent>
|
||||||
<groupId>org.alfresco.maven</groupId>
|
<groupId>org.alfresco.maven</groupId>
|
||||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||||
<version>2.1.1-beta-1</version>
|
<version>4.4.0</version>
|
||||||
<relativePath>../../pom.xml</relativePath>
|
<relativePath>../../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<resources>
|
<resources>
|
||||||
<resource>
|
<resource>
|
||||||
@@ -23,7 +23,6 @@
|
|||||||
<include>archetype-resources/pom.xml</include>
|
<include>archetype-resources/pom.xml</include>
|
||||||
<include>archetype-resources/run.sh</include>
|
<include>archetype-resources/run.sh</include>
|
||||||
<include>archetype-resources/run.bat</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>
|
<include>META-INF/maven/archetype-metadata.xml</include>
|
||||||
</includes>
|
</includes>
|
||||||
<filtering>true</filtering>
|
<filtering>true</filtering>
|
||||||
@@ -34,7 +33,6 @@
|
|||||||
<exclude>archetype-resources/pom.xml</exclude>
|
<exclude>archetype-resources/pom.xml</exclude>
|
||||||
<exclude>archetype-resources/run.sh</exclude>
|
<exclude>archetype-resources/run.sh</exclude>
|
||||||
<exclude>archetype-resources/run.bat</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>
|
<exclude>META-INF/maven/archetype-metadata.xml</exclude>
|
||||||
</excludes>
|
</excludes>
|
||||||
<filtering>false</filtering>
|
<filtering>false</filtering>
|
||||||
@@ -43,13 +41,14 @@
|
|||||||
|
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-resources-plugin</artifactId>
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
<version>2.7</version>
|
|
||||||
<configuration>
|
<configuration>
|
||||||
<useDefaultDelimiters>false</useDefaultDelimiters>
|
<useDefaultDelimiters>false</useDefaultDelimiters>
|
||||||
<delimiters>
|
<delimiters>
|
||||||
<delimiter>@@</delimiter>
|
<delimiter>@@</delimiter>
|
||||||
</delimiters>
|
</delimiters>
|
||||||
|
<addDefaultExcludes>false</addDefaultExcludes>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
@@ -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"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<archetype-descriptor
|
<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"
|
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="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
<requiredProperties>
|
<requiredProperties>
|
||||||
@@ -10,8 +10,16 @@
|
|||||||
</requiredProperty>
|
</requiredProperty>
|
||||||
</requiredProperties>
|
</requiredProperties>
|
||||||
<modules>
|
<modules>
|
||||||
<module id="repo-amp" dir="repo-amp" name="repo-amp">
|
<module id="${rootArtifactId}-platform"
|
||||||
|
name="${rootArtifactId}-platform"
|
||||||
|
dir="__rootArtifactId__-platform">
|
||||||
<fileSets>
|
<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">
|
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||||
<directory>src/main/java</directory>
|
<directory>src/main/java</directory>
|
||||||
<includes>
|
<includes>
|
||||||
@@ -25,7 +33,7 @@
|
|||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet encoding="UTF-8" filtered="false">
|
<fileSet encoding="UTF-8" filtered="false">
|
||||||
<directory>src/main/amp</directory>
|
<directory>src/main/resources</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>**</include>
|
<include>**</include>
|
||||||
</includes>
|
</includes>
|
||||||
@@ -34,28 +42,24 @@
|
|||||||
</excludes>
|
</excludes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet encoding="UTF-8" filtered="true" packaged="false">
|
<fileSet encoding="UTF-8" filtered="true" packaged="false">
|
||||||
<directory>src/main/amp</directory>
|
<directory>src/main/resources</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>**/*-context.xml</include>
|
<include>**/*-context.xml</include>
|
||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</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>
|
</fileSets>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
<module id="share-amp" dir="share-amp" name="share-amp">
|
<module id="${rootArtifactId}-share"
|
||||||
|
name="${rootArtifactId}-share"
|
||||||
|
dir="__rootArtifactId__-share">
|
||||||
<fileSets>
|
<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">
|
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||||
<directory>src/main/java</directory>
|
<directory>src/main/java</directory>
|
||||||
<includes>
|
<includes>
|
||||||
@@ -69,19 +73,19 @@
|
|||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
<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>
|
<includes>
|
||||||
<include>__artifactId__-slingshot-application-context.xml</include>
|
<include>__artifactId__-slingshot-application-context.xml</include>
|
||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
<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>
|
<includes>
|
||||||
<include>__artifactId__-example-widgets.xml</include>
|
<include>__artifactId__-example-widgets.xml</include>
|
||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet encoding="UTF-8" filtered="false">
|
<fileSet encoding="UTF-8" filtered="false">
|
||||||
<directory>src/main/amp</directory>
|
<directory>src/main/resources</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>**</include>
|
<include>**</include>
|
||||||
</includes>
|
</includes>
|
||||||
@@ -90,97 +94,99 @@
|
|||||||
<exclude>**/__artifactId__-example-widgets.xml</exclude>
|
<exclude>**/__artifactId__-example-widgets.xml</exclude>
|
||||||
</excludes>
|
</excludes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
</fileSets>
|
||||||
<directory>src/test/resources</directory>
|
</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>
|
<includes>
|
||||||
<include>**</include>
|
<include>**/*.java</include>
|
||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet encoding="UTF-8" filtered="false">
|
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||||
<directory>src/main/resources</directory>
|
<directory>src/test/java</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>**</include>
|
<include>**/*.java</include>
|
||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
</fileSets>
|
</fileSets>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
<module id="repo" dir="repo" name="repo">
|
<module id="${rootArtifactId}-platform-docker"
|
||||||
|
name="${rootArtifactId}-platform-docker"
|
||||||
|
dir="__rootArtifactId__-platform-docker">
|
||||||
<fileSets>
|
<fileSets>
|
||||||
<fileSet encoding="UTF-8" filtered="false">
|
<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>
|
<includes>
|
||||||
<include>**/*.properties</include>
|
<include>**/*.properties</include>
|
||||||
</includes>
|
</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>
|
<excludes>
|
||||||
<exclude>**/dev-log4j.properties</exclude>
|
<exclude>license/**</exclude>
|
||||||
|
<exclude>Dockerfile</exclude>
|
||||||
|
<exclude>disable-webscript-caching-context.xml</exclude>
|
||||||
</excludes>
|
</excludes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
</fileSets>
|
</fileSets>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
<module id="solr4" dir="solr-config" name="solr4" filtered="false">
|
<module id="${rootArtifactId}-share-docker"
|
||||||
</module>
|
name="${rootArtifactId}-share-docker"
|
||||||
|
dir="__rootArtifactId__-share-docker">
|
||||||
<module id="share" dir="share" name="share" filtered="false">
|
|
||||||
<fileSets>
|
<fileSets>
|
||||||
<fileSet encoding="UTF-8" filtered="false">
|
<fileSet encoding="UTF-8" filtered="false">
|
||||||
<directory>src/main/resources</directory>
|
<directory>src/main/docker</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>**</include>
|
<include>Dockerfile</include>
|
||||||
|
<include>share-config-custom.xml</include>
|
||||||
</includes>
|
</includes>
|
||||||
|
<excludes>
|
||||||
|
<exclude>**/*.properties</exclude>
|
||||||
|
</excludes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
<fileSet encoding="UTF-8" filtered="true">
|
||||||
<directory>src/test/resources</directory>
|
<directory>src/main/docker</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>**</include>
|
<include>**/*.properties</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>
|
|
||||||
</includes>
|
</includes>
|
||||||
|
<excludes>
|
||||||
|
<exclude>Dockerfile</exclude>
|
||||||
|
<exclude>share-config-custom.xml</exclude>
|
||||||
|
</excludes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
</fileSets>
|
</fileSets>
|
||||||
</module>
|
</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<fileSets>
|
<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>
|
<directory></directory>
|
||||||
<includes>
|
<includes>
|
||||||
|
<include>.gitignore</include>
|
||||||
<include>run.sh</include>
|
<include>run.sh</include>
|
||||||
<include>run.bat</include>
|
<include>run.bat</include>
|
||||||
|
<include>README.md</include>
|
||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
</fileSets>
|
</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.4
|
||||||
|
|
||||||
|
This is an All-In-One (AIO) project for Alfresco SDK 4.4.
|
||||||
|
|
||||||
|
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.4</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,23 @@
|
|||||||
|
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-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension
|
||||||
|
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/
|
||||||
|
|
||||||
|
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
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
# contributor license agreements. See the NOTICE file distributed with
|
# contributor license agreements. See the NOTICE file distributed with
|
||||||
# this work for additional information regarding copyright ownership.
|
# this work for additional information regarding copyright ownership.
|
||||||
@@ -15,15 +18,12 @@
|
|||||||
# RUN TIME PROPERTIES
|
# RUN TIME PROPERTIES
|
||||||
# -------------------
|
# -------------------
|
||||||
|
|
||||||
########################################################################################################################
|
#
|
||||||
# Alfresco configuration for running locally
|
# Alfresco configuration for running locally with PostgreSQL Database
|
||||||
#
|
#
|
||||||
# Configuration when running Tomcat embedded from Maven.
|
# 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.
|
# 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 Repo Webapp (alfresco.war) context, ports etc
|
||||||
alfresco.context=alfresco
|
alfresco.context=alfresco
|
||||||
@@ -34,14 +34,11 @@ alfresco.protocol=http
|
|||||||
# Alfresco Share Webapp (share.war) context, ports etc
|
# Alfresco Share Webapp (share.war) context, ports etc
|
||||||
share.context=share
|
share.context=share
|
||||||
share.host=localhost
|
share.host=localhost
|
||||||
share.port=8080
|
share.port=8180
|
||||||
share.protocol=http
|
share.protocol=http
|
||||||
|
|
||||||
# Don't try and recover any index
|
# Don't try and recover any index
|
||||||
index.recovery.mode=NONE
|
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
|
# 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
|
# 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
|
# Fail or not when there are node integrity checker errors
|
||||||
integrity.failOnError=true
|
integrity.failOnError=true
|
||||||
|
|
||||||
# Database connection properties
|
# Alfresco Repository PostgreSQL Database configuration.
|
||||||
db.driver=${alfresco.db.datasource.class}
|
# The PostgreSQL Driver is brought in via the tomcat7-maven-plugin as a dependency.
|
||||||
db.url=${alfresco.db.url}
|
db.driver=org.postgresql.Driver
|
||||||
db.username=${alfresco.db.username}
|
|
||||||
db.password=${alfresco.db.password}
|
# 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.initial=10
|
||||||
db.pool.max=100
|
db.pool.max=100
|
||||||
hibernate.dialect=org.hibernate.dialect.H2Dialect
|
|
||||||
|
db.url=jdbc:postgresql://${rootArtifactId}-postgres:5432/alfresco
|
||||||
|
|
||||||
# File servers related properties
|
# File servers related properties
|
||||||
# For local runs we disable CIFS and FTP
|
# For local runs we disable CIFS and FTP
|
||||||
cifs.enabled=false
|
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
|
@@ -1,10 +1,9 @@
|
|||||||
# This is a full override of Alfresco 4.2.b log4j.properties
|
#set( $symbol_pound = '#' )
|
||||||
# This file overwrites the alfresco.war log4j.properties
|
#set( $symbol_dollar = '$' )
|
||||||
|
#set( $symbol_escape = '\' )
|
||||||
# Set root logger level to error
|
# Set root logger level to error
|
||||||
log4j.rootLogger=${app.log.root.level}, Console, File
|
log4j.rootLogger=error, Console, File
|
||||||
|
|
||||||
###### Console appender definition #######
|
|
||||||
|
|
||||||
# All outputs currently set to be a ConsoleAppender.
|
# All outputs currently set to be a ConsoleAppender.
|
||||||
log4j.appender.Console=org.apache.log4j.ConsoleAppender
|
log4j.appender.Console=org.apache.log4j.ConsoleAppender
|
||||||
@@ -14,21 +13,18 @@ log4j.appender.Console.layout=org.apache.log4j.PatternLayout
|
|||||||
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
|
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
|
#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
|
||||||
|
|
||||||
###### File appender definition #######
|
|
||||||
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
|
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
|
||||||
log4j.appender.File.File=${app.log.dir}alfresco.log
|
log4j.appender.File.File=logs/alfresco.log
|
||||||
log4j.appender.File.Append=true
|
log4j.appender.File.Append=true
|
||||||
log4j.appender.File.DatePattern='.'yyyy-MM-dd
|
log4j.appender.File.DatePattern='.'yyyy-MM-dd
|
||||||
log4j.appender.File.layout=org.apache.log4j.PatternLayout
|
log4j.appender.File.layout=org.apache.log4j.PatternLayout
|
||||||
log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
|
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
|
||||||
|
|
||||||
###### Hibernate specific appender definition #######
|
|
||||||
#log4j.appender.file=org.apache.log4j.FileAppender
|
#log4j.appender.file=org.apache.log4j.FileAppender
|
||||||
#log4j.appender.file.File=hibernate.log
|
#log4j.appender.file.File=hibernate.log
|
||||||
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
|
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
|
||||||
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
|
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
|
||||||
|
|
||||||
###### Log level overrides #######
|
|
||||||
|
|
||||||
# Commented-in loggers will be exposed as JMX MBeans (refer to org.alfresco.repo.admin.Log4JHierarchyInit)
|
# Commented-in loggers will be exposed as JMX MBeans (refer to org.alfresco.repo.admin.Log4JHierarchyInit)
|
||||||
# Hence, generally useful loggers should be listed with at least ERROR level to allow simple runtime
|
# Hence, generally useful loggers should be listed with at least ERROR level to allow simple runtime
|
||||||
@@ -64,16 +60,15 @@ log4j.logger.org.apache.myfaces.taglib=error
|
|||||||
# OpenOfficeConnection
|
# OpenOfficeConnection
|
||||||
log4j.logger.net.sf.jooreports.openoffice.connection=fatal
|
log4j.logger.net.sf.jooreports.openoffice.connection=fatal
|
||||||
|
|
||||||
# log prepared statement cache activity ###
|
# log prepared statement cache activity log4j.logger.org.hibernate.ps.PreparedStatementCache=info
|
||||||
log4j.logger.org.hibernate.ps.PreparedStatementCache=info
|
|
||||||
|
|
||||||
# Alfresco
|
# Alfresco
|
||||||
log4j.logger.org.alfresco=error
|
log4j.logger.org.alfresco=error
|
||||||
log4j.logger.org.alfresco.repo.admin=info
|
log4j.logger.org.alfresco.repo.admin=info
|
||||||
|
log4j.logger.org.alfresco.repo.transaction=warn
|
||||||
log4j.logger.org.alfresco.repo.cache.TransactionalCache=warn
|
log4j.logger.org.alfresco.repo.cache.TransactionalCache=warn
|
||||||
log4j.logger.org.alfresco.repo.model.filefolder=warn
|
log4j.logger.org.alfresco.repo.model.filefolder=warn
|
||||||
log4j.logger.org.alfresco.repo.tenant=info
|
log4j.logger.org.alfresco.repo.tenant=info
|
||||||
log4j.logger.org.alfresco.repo.avm=info
|
|
||||||
log4j.logger.org.alfresco.config=warn
|
log4j.logger.org.alfresco.config=warn
|
||||||
log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
|
log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
|
||||||
log4j.logger.org.alfresco.config.JBossEnabledWebApplicationContext=warn
|
log4j.logger.org.alfresco.config.JBossEnabledWebApplicationContext=warn
|
||||||
@@ -89,23 +84,18 @@ log4j.logger.org.alfresco.web=info
|
|||||||
#log4j.logger.org.alfresco.web.ui.repo.component.UIActions=debug
|
#log4j.logger.org.alfresco.web.ui.repo.component.UIActions=debug
|
||||||
#log4j.logger.org.alfresco.web.ui.repo.tag.PageTag=debug
|
#log4j.logger.org.alfresco.web.ui.repo.tag.PageTag=debug
|
||||||
#log4j.logger.org.alfresco.web.bean.clipboard=debug
|
#log4j.logger.org.alfresco.web.bean.clipboard=debug
|
||||||
log4j.logger.org.alfresco.repo.webservice=info
|
|
||||||
log4j.logger.org.alfresco.service.descriptor.DescriptorService=info
|
log4j.logger.org.alfresco.service.descriptor.DescriptorService=info
|
||||||
#log4j.logger.org.alfresco.web.page=debug
|
#log4j.logger.org.alfresco.web.page=debug
|
||||||
|
|
||||||
log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=error
|
log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=error
|
||||||
#log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=info
|
#log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=info
|
||||||
|
|
||||||
log4j.logger.org.alfresco.web.ui.common.Utils=error
|
|
||||||
#log4j.logger.org.alfresco.web.ui.common.Utils=info
|
|
||||||
|
|
||||||
log4j.logger.org.alfresco.repo.admin.patch.PatchExecuter=info
|
log4j.logger.org.alfresco.repo.admin.patch.PatchExecuter=info
|
||||||
log4j.logger.org.alfresco.repo.domain.patch.ibatis.PatchDAOImpl=info
|
log4j.logger.org.alfresco.repo.domain.patch.ibatis.PatchDAOImpl=info
|
||||||
|
|
||||||
# Specific patches
|
# Specific patches
|
||||||
log4j.logger.org.alfresco.repo.admin.patch.impl.DeploymentMigrationPatch=info
|
log4j.logger.org.alfresco.repo.admin.patch.impl.DeploymentMigrationPatch=info
|
||||||
log4j.logger.org.alfresco.repo.version.VersionMigrator=info
|
log4j.logger.org.alfresco.repo.version.VersionMigrator=info
|
||||||
log4j.logger.org.alfresco.repo.admin.patch.impl.ResetWCMToGroupBasedPermissionsPatch=info
|
|
||||||
|
|
||||||
log4j.logger.org.alfresco.repo.module.ModuleServiceImpl=info
|
log4j.logger.org.alfresco.repo.module.ModuleServiceImpl=info
|
||||||
log4j.logger.org.alfresco.repo.domain.schema.SchemaBootstrap=info
|
log4j.logger.org.alfresco.repo.domain.schema.SchemaBootstrap=info
|
||||||
@@ -113,17 +103,17 @@ log4j.logger.org.alfresco.repo.admin.ConfigurationChecker=info
|
|||||||
log4j.logger.org.alfresco.repo.node.index.AbstractReindexComponent=warn
|
log4j.logger.org.alfresco.repo.node.index.AbstractReindexComponent=warn
|
||||||
log4j.logger.org.alfresco.repo.node.index.IndexTransactionTracker=warn
|
log4j.logger.org.alfresco.repo.node.index.IndexTransactionTracker=warn
|
||||||
log4j.logger.org.alfresco.repo.node.index.FullIndexRecoveryComponent=info
|
log4j.logger.org.alfresco.repo.node.index.FullIndexRecoveryComponent=info
|
||||||
log4j.logger.org.alfresco.repo.node.index.AVMFullIndexRecoveryComponent=info
|
|
||||||
log4j.logger.org.alfresco.util.OpenOfficeConnectionTester=info
|
log4j.logger.org.alfresco.util.OpenOfficeConnectionTester=info
|
||||||
log4j.logger.org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl=warn
|
log4j.logger.org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl=warn
|
||||||
log4j.logger.org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor=warn
|
log4j.logger.org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor=warn
|
||||||
log4j.logger.org.alfresco.repo.transaction.RetryingTransactionHelper=warn
|
log4j.logger.org.alfresco.repo.transaction.RetryingTransactionHelper=warn
|
||||||
log4j.logger.org.alfresco.util.transaction.SpringAwareUserTransaction.trace=warn
|
log4j.logger.org.alfresco.util.transaction.SpringAwareUserTransaction.trace=warn
|
||||||
log4j.logger.org.alfresco.util.AbstractTriggerBean=warn
|
log4j.logger.org.alfresco.util.AbstractTriggerBean=warn
|
||||||
log4j.logger.org.alfresco.enterprise.repo.cache.cluster.KeepAliveHeartbeatReceiver=info
|
log4j.logger.org.alfresco.enterprise.repo.cluster=info
|
||||||
log4j.logger.org.alfresco.repo.version.Version2ServiceImpl=warn
|
log4j.logger.org.alfresco.repo.version.Version2ServiceImpl=warn
|
||||||
|
|
||||||
#log4j.logger.org.alfresco.web.app.DebugPhaseListener=debug
|
#log4j.logger.org.alfresco.web.app.DebugPhaseListener=debug
|
||||||
|
log4j.logger.org.alfresco.repo.node.db.NodeStringLengthWorker=info
|
||||||
|
|
||||||
log4j.logger.org.alfresco.repo.workflow=info
|
log4j.logger.org.alfresco.repo.workflow=info
|
||||||
|
|
||||||
@@ -138,7 +128,7 @@ log4j.logger.org.alfresco.ftp.protocol=error
|
|||||||
|
|
||||||
# WebDAV debugging
|
# WebDAV debugging
|
||||||
#log4j.logger.org.alfresco.webdav.protocol=debug
|
#log4j.logger.org.alfresco.webdav.protocol=debug
|
||||||
log4j.logger.org.alfresco.webdav.protocol=error
|
log4j.logger.org.alfresco.webdav.protocol=info
|
||||||
|
|
||||||
# NTLM servlet filters
|
# NTLM servlet filters
|
||||||
#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
|
#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
|
||||||
@@ -154,9 +144,6 @@ log4j.logger.org.alfresco.fileserver=warn
|
|||||||
# Repo filesystem debug logging
|
# Repo filesystem debug logging
|
||||||
#log4j.logger.org.alfresco.filesys.repo.ContentDiskDriver=debug
|
#log4j.logger.org.alfresco.filesys.repo.ContentDiskDriver=debug
|
||||||
|
|
||||||
# AVM filesystem debug logging
|
|
||||||
#log4j.logger.org.alfresco.filesys.avm.AVMDiskDriver=debug
|
|
||||||
|
|
||||||
# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated
|
# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated
|
||||||
log4j.logger.org.alfresco.repo.node.integrity=ERROR
|
log4j.logger.org.alfresco.repo.node.integrity=ERROR
|
||||||
|
|
||||||
@@ -172,18 +159,9 @@ log4j.logger.org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl=
|
|||||||
# log4j.logger.org.alfresco.repo.audit=DEBUG
|
# log4j.logger.org.alfresco.repo.audit=DEBUG
|
||||||
# log4j.logger.org.alfresco.repo.audit.model=DEBUG
|
# log4j.logger.org.alfresco.repo.audit.model=DEBUG
|
||||||
|
|
||||||
# Forms debugging
|
|
||||||
# log4j.logger.org.alfresco.web.forms=debug
|
|
||||||
# log4j.logger.org.chiba.xml.xforms=debug
|
|
||||||
log4j.logger.org.alfresco.web.forms.xforms.XFormsBean=error
|
|
||||||
log4j.logger.org.alfresco.web.forms.XSLTRenderingEngine=error
|
|
||||||
|
|
||||||
# Property sheet and modelling debugging
|
# Property sheet and modelling debugging
|
||||||
# change to error to hide the warnings about missing properties and associations
|
# change to error to hide the warnings about missing properties and associations
|
||||||
log4j.logger.alfresco.missingProperties=warn
|
log4j.logger.alfresco.missingProperties=warn
|
||||||
log4j.logger.org.alfresco.web.ui.repo.component.property.UIChildAssociation=warn
|
|
||||||
log4j.logger.org.alfresco.web.ui.repo.component.property.UIAssociation=warn
|
|
||||||
#log4j.logger.org.alfresco.web.ui.repo.component.property=debug
|
|
||||||
|
|
||||||
# Dictionary/Model debugging
|
# Dictionary/Model debugging
|
||||||
log4j.logger.org.alfresco.repo.dictionary=warn
|
log4j.logger.org.alfresco.repo.dictionary=warn
|
||||||
@@ -211,7 +189,6 @@ log4j.logger.org.alfresco.repo.usage=info
|
|||||||
log4j.logger.org.alfresco.module.vti=info
|
log4j.logger.org.alfresco.module.vti=info
|
||||||
|
|
||||||
# Forms Engine
|
# Forms Engine
|
||||||
log4j.logger.org.alfresco.repo.forms=info
|
|
||||||
log4j.logger.org.alfresco.web.config.forms=info
|
log4j.logger.org.alfresco.web.config.forms=info
|
||||||
log4j.logger.org.alfresco.web.scripts.forms=info
|
log4j.logger.org.alfresco.web.scripts.forms=info
|
||||||
|
|
||||||
@@ -221,6 +198,8 @@ log4j.logger.org.alfresco.opencmis.AlfrescoCmisServiceInterceptor=error
|
|||||||
log4j.logger.org.alfresco.cmis=error
|
log4j.logger.org.alfresco.cmis=error
|
||||||
log4j.logger.org.alfresco.cmis.dictionary=warn
|
log4j.logger.org.alfresco.cmis.dictionary=warn
|
||||||
log4j.logger.org.apache.chemistry.opencmis=info
|
log4j.logger.org.apache.chemistry.opencmis=info
|
||||||
|
log4j.logger.org.apache.chemistry.opencmis.server.impl.browser.CmisBrowserBindingServlet=OFF
|
||||||
|
log4j.logger.org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet=OFF
|
||||||
|
|
||||||
# IMAP
|
# IMAP
|
||||||
log4j.logger.org.alfresco.repo.imap=info
|
log4j.logger.org.alfresco.repo.imap=info
|
||||||
@@ -231,7 +210,6 @@ log4j.logger.org.jbpm.graph.def.GraphElement=fatal
|
|||||||
|
|
||||||
#log4j.logger.org.alfresco.repo.googledocs=debug
|
#log4j.logger.org.alfresco.repo.googledocs=debug
|
||||||
|
|
||||||
###### Scripting #######
|
|
||||||
|
|
||||||
# Web Framework
|
# Web Framework
|
||||||
log4j.logger.org.springframework.extensions.webscripts=info
|
log4j.logger.org.springframework.extensions.webscripts=info
|
||||||
@@ -246,7 +224,13 @@ log4j.logger.org.alfresco.repo.jscript=error
|
|||||||
log4j.logger.org.alfresco.repo.jscript.ScriptLogger=warn
|
log4j.logger.org.alfresco.repo.jscript.ScriptLogger=warn
|
||||||
log4j.logger.org.alfresco.repo.cmis.rest.CMISTest=info
|
log4j.logger.org.alfresco.repo.cmis.rest.CMISTest=info
|
||||||
|
|
||||||
log4j.logger.org.alfresco.repo.avm.actions=info
|
log4j.logger.org.alfresco.repo.domain.schema.script.ScriptBundleExecutorImpl=off
|
||||||
|
log4j.logger.org.alfresco.repo.domain.schema.script.ScriptExecutorImpl=info
|
||||||
|
|
||||||
|
log4j.logger.org.alfresco.repo.search.impl.solr.facet.SolrFacetServiceImpl=info
|
||||||
|
|
||||||
|
# Bulk Filesystem Import Tool
|
||||||
|
log4j.logger.org.alfresco.repo.bulkimport=warn
|
||||||
|
|
||||||
# Freemarker
|
# Freemarker
|
||||||
# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
|
# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
|
||||||
@@ -263,4 +247,24 @@ log4j.logger.org.apache.pdfbox.pdmodel.font.PDCIDFont=fatal
|
|||||||
# no index support
|
# no index support
|
||||||
log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexIndexer=fatal
|
log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexIndexer=fatal
|
||||||
log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexSearchService=fatal
|
log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexSearchService=fatal
|
||||||
log4j.logger.org.alfresco.demoamp.test=DEBUG
|
|
||||||
|
# lucene index warnings
|
||||||
|
log4j.logger.org.alfresco.repo.search.impl.lucene.index.IndexInfo=warn
|
||||||
|
|
||||||
|
# Warn about RMI socket bind retries.
|
||||||
|
log4j.logger.org.alfresco.util.remote.server.socket.HostConfigurableSocketFactory=warn
|
||||||
|
|
||||||
|
log4j.logger.org.alfresco.repo.usage.RepoUsageMonitor=info
|
||||||
|
|
||||||
|
# Authorization
|
||||||
|
log4j.logger.org.alfresco.enterprise.repo.authorization.AuthorizationService=info
|
||||||
|
log4j.logger.org.alfresco.enterprise.repo.authorization.AuthorizationsConsistencyMonitor=warn
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------
|
||||||
|
# Platform module logging
|
||||||
|
#-----------------------------------------------------------------------
|
||||||
|
log4j.logger.${package}.platformsample.DemoComponent=debug
|
||||||
|
log4j.logger.${package}.platformsample.HelloWorldWebScript=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,31 @@
|
|||||||
|
<?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.4
|
||||||
|
</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 log4j.properties configuration at top level in the AMP -->
|
||||||
|
<file>
|
||||||
|
<source>src/main/resources/alfresco/module/${project.artifactId}/log4j.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
|
# Custom AMP to WAR location mappings
|
||||||
|
|
||||||
#
|
#
|
||||||
# The following property can be used to include the standard set of 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
|
# 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
|
# 'true', i.e. the default mappings will be augmented or modified by values in
|
||||||
# this file.
|
# this file.
|
||||||
#
|
#
|
||||||
include.default=true
|
# Default mappings are:
|
||||||
|
#
|
||||||
#
|
# /config=/WEB-INF/classes
|
||||||
# Custom mappings. If 'include.default' is false, then this is the complete set.
|
# /lib=/WEB-INF/lib
|
||||||
#
|
# /licenses=/WEB-INF/licenses
|
||||||
/web=/
|
# /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_pound='#')
|
||||||
#set($symbol_dollar='$')
|
#set($symbol_dollar='$')
|
||||||
#set($symbol_escape='\' )
|
#set($symbol_escape='\' )
|
||||||
/*
|
/**
|
||||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
* Copyright (C) 2017 Alfresco Software Limited.
|
||||||
contributor license agreements. See the NOTICE file distributed with
|
* <p/>
|
||||||
this work for additional information regarding copyright ownership.
|
* This file is part of the Alfresco SDK project.
|
||||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
* <p/>
|
||||||
(the "License"); you may not use this file except in compliance with
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
the License. You may obtain a copy of the License at
|
* 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
|
* <p/>
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
Unless required by applicable law or agreed to in writing, software
|
* <p/>
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
See the License for the specific language governing permissions and
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
limitations under the License.
|
* See the License for the specific language governing permissions and
|
||||||
*/
|
* limitations under the License.
|
||||||
package ${package}.demoamp;
|
*/
|
||||||
|
package ${package}.platformsample;
|
||||||
|
|
||||||
import org.alfresco.repo.module.AbstractModuleComponent;
|
import org.alfresco.repo.module.AbstractModuleComponent;
|
||||||
import org.alfresco.repo.nodelocator.NodeLocatorService;
|
import org.alfresco.repo.nodelocator.NodeLocatorService;
|
||||||
@@ -35,7 +36,7 @@ import org.apache.commons.logging.LogFactory;
|
|||||||
* @author Maurizio Pillitu
|
* @author Maurizio Pillitu
|
||||||
*/
|
*/
|
||||||
public class DemoComponent extends AbstractModuleComponent {
|
public class DemoComponent extends AbstractModuleComponent {
|
||||||
Log log = LogFactory.getLog(DemoComponent.class);
|
private static Log logger = LogFactory.getLog(DemoComponent.class);
|
||||||
|
|
||||||
private NodeService nodeService;
|
private NodeService nodeService;
|
||||||
|
|
||||||
@@ -55,8 +56,8 @@ public class DemoComponent extends AbstractModuleComponent {
|
|||||||
@Override
|
@Override
|
||||||
protected void executeInternal() throws Throwable {
|
protected void executeInternal() throws Throwable {
|
||||||
System.out.println("DemoComponent has been executed");
|
System.out.println("DemoComponent has been executed");
|
||||||
log.debug("Test debug logging. Congratulation your AMP is working");
|
logger.debug("Test debug logging. Congratulation your JAR Module is working");
|
||||||
log.info("This is only for information purposed. Better remove me from the log in Production");
|
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>
|
<url>/sample/helloworld</url>
|
||||||
<authentication>user</authentication>
|
<authentication>user</authentication>
|
||||||
<format default="html"></format>
|
<format default="html"></format>
|
||||||
|
<lifecycle>sample</lifecycle>
|
||||||
</webscript>
|
</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.
|
## Define default values for all properties here.
|
||||||
## System Administrators can override these values in environment specific configurations in
|
## System Administrators can override these values in environment specific configurations in
|
||||||
## alfresco/tomcat/shared/classes/alfresco-global.properties.
|
## 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_dollar = '$' )
|
||||||
#set( $symbol_escape = '\' )
|
#set( $symbol_escape = '\' )
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?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
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
contributor license agreements. See the NOTICE file distributed with
|
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 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 not use this file except in compliance with
|
||||||
the License. You may obtain a copy of the License at
|
the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
Unless required by applicable law or agreed to in writing, software
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
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 -->
|
<!-- 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.
|
<!-- 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.
|
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 -Pamp-to-war twice will only execute this component the first time.
|
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. -->
|
You need to remove /alf_data_dev for it to be executed again. -->
|
||||||
<bean id="${package}.exampleComponent" class="${package}.demoamp.DemoComponent" parent="module.baseComponent" >
|
<bean id="${package}.DemoComponent" class="${package}.platformsample.DemoComponent" parent="module.baseComponent" >
|
||||||
<property name="moduleId" value="${artifactId}" /> <!-- See module.properties -->
|
<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="description" value="A demonstration component" />
|
||||||
<property name="sinceVersion" value="1.0" />
|
<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="nodeService" ref="NodeService" />
|
||||||
<property name="nodeLocatorService" ref="nodeLocatorService" />
|
<property name="nodeLocatorService" ref="nodeLocatorService" />
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
|
||||||
</beans>
|
</beans>
|
@@ -2,7 +2,6 @@
|
|||||||
#set( $symbol_dollar = '$' )
|
#set( $symbol_dollar = '$' )
|
||||||
#set( $symbol_escape = '\' )
|
#set( $symbol_escape = '\' )
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?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
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
contributor license agreements. See the NOTICE file distributed with
|
contributor license agreements. See the NOTICE file distributed with
|
||||||
@@ -19,9 +18,12 @@
|
|||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
<beans>
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
<bean id="webscript.helloworld.get"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
class="${package}.demoamp.HelloWorldWebScript"
|
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">
|
parent="webscript">
|
||||||
</bean>
|
</bean>
|
||||||
</beans>
|
</beans>
|
@@ -0,0 +1 @@
|
|||||||
|
# Add here module-specific custom log4j.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"?>
|
<?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 -->
|
<!-- Optional meta-data about the model -->
|
||||||
<description>Workflow Model for Repo Extension X</description>
|
<description>Sample Workflow Model</description>
|
||||||
<author>My Name</author>
|
<author>My Name</author>
|
||||||
<version>1.0</version>
|
<version>1.0</version>
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<!-- Custom namespace for your domain -->
|
<!-- Custom namespace for your domain -->
|
||||||
<namespaces>
|
<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>
|
</namespaces>
|
||||||
|
|
||||||
<!-- ===============================================================================================================
|
<!-- ===============================================================================================================
|
@@ -15,12 +15,18 @@
|
|||||||
limitations under the License.
|
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. -->
|
<!-- 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/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" />
|
<import resource="classpath:alfresco/module/${project.artifactId}/context/webscript-context.xml" />
|
||||||
|
|
||||||
</beans>
|
</beans>
|
@@ -24,7 +24,7 @@ module.id=${project.artifactId}
|
|||||||
#module.aliases=myModule-123, my-module
|
#module.aliases=myModule-123, my-module
|
||||||
module.title=${project.name}
|
module.title=${project.name}
|
||||||
module.description=${project.description}
|
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
|
# The following optional properties can be used to prevent the module from being added
|
||||||
# to inappropriate versions of the WAR file.
|
# 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 log4j.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
|
@@ -1,47 +1,57 @@
|
|||||||
# Set root logger level to error
|
#set( $symbol_pound = '#' )
|
||||||
log4j.rootLogger=error, Console, File
|
#set( $symbol_dollar = '$' )
|
||||||
|
#set( $symbol_escape = '\' )
|
||||||
###### Console appender definition #######
|
# Set root logger level to error
|
||||||
|
log4j.rootLogger=error, Console, File
|
||||||
# All outputs currently set to be a ConsoleAppender.
|
|
||||||
log4j.appender.Console=org.apache.log4j.ConsoleAppender
|
# Console appender definition #
|
||||||
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
|
|
||||||
|
# All outputs currently set to be a ConsoleAppender.
|
||||||
# use log4j NDC to replace %x with tenant domain / username
|
log4j.appender.Console=org.apache.log4j.ConsoleAppender
|
||||||
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
|
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
|
||||||
#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
|
|
||||||
|
# use log4j NDC to replace %x with tenant domain / username
|
||||||
###### File appender definition #######
|
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
|
||||||
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
|
#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
|
||||||
log4j.appender.File.File=${app.log.dir}share.log
|
|
||||||
log4j.appender.File.Append=true
|
# File appender definition #
|
||||||
log4j.appender.File.DatePattern='.'yyyy-MM-dd
|
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
|
||||||
log4j.appender.File.layout=org.apache.log4j.PatternLayout
|
log4j.appender.File.File=share.log
|
||||||
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
|
log4j.appender.File.Append=true
|
||||||
|
log4j.appender.File.DatePattern='.'yyyy-MM-dd
|
||||||
# Spring
|
log4j.appender.File.layout=org.apache.log4j.PatternLayout
|
||||||
log4j.logger.org.springframework=warn
|
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
|
||||||
# Turn off Spring remoting warnings that should really be info or debug.
|
|
||||||
log4j.logger.org.springframework.remoting.support=error
|
# Spring
|
||||||
log4j.logger.org.springframework.util=error
|
log4j.logger.org.springframework=warn
|
||||||
|
# Turn off Spring remoting warnings that should really be info or debug.
|
||||||
# MyFaces
|
log4j.logger.org.springframework.remoting.support=error
|
||||||
log4j.logger.org.apache.myfaces.util.DebugUtils=info
|
log4j.logger.org.springframework.util=error
|
||||||
log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error
|
|
||||||
log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error
|
# MyFaces
|
||||||
log4j.logger.org.apache.myfaces.taglib=error
|
log4j.logger.org.apache.myfaces.util.DebugUtils=info
|
||||||
|
log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error
|
||||||
# Alfresco
|
log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error
|
||||||
log4j.logger.org.alfresco=error
|
log4j.logger.org.apache.myfaces.taglib=error
|
||||||
log4j.logger.org.alfresco.config=warn
|
|
||||||
log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
|
# Alfresco
|
||||||
log4j.logger.org.alfresco.web=info
|
log4j.logger.org.alfresco=error
|
||||||
|
log4j.logger.org.alfresco.config=warn
|
||||||
# Web Framework
|
log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
|
||||||
log4j.logger.org.springframework.extensions.webscripts=info
|
log4j.logger.org.alfresco.web=info
|
||||||
log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=warn
|
|
||||||
log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off
|
# Web Framework
|
||||||
|
log4j.logger.org.springframework.extensions.webscripts=info
|
||||||
# Freemarker
|
log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=warn
|
||||||
# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
|
log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off
|
||||||
log4j.logger.freemarker.runtime=
|
|
||||||
|
# Freemarker
|
||||||
|
# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
|
||||||
|
log4j.logger.freemarker.runtime=
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------
|
||||||
|
# Custom Share module logging goes here...
|
||||||
|
#-----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -39,12 +39,13 @@
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Disable CSRF completely for now
|
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">
|
<config evaluator="string-compare" condition="CSRFPolicy" replace="true">
|
||||||
<filter/>
|
<filter/>
|
||||||
</config>
|
</config>
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Change so it is picked up from property where the Alfresco Repo Webapp is running
|
Change so it is picked up from property where the Alfresco Repo Webapp is running
|
||||||
(e.g. http://localhost:8080/alfresco)
|
(e.g. http://localhost:8080/alfresco)
|
||||||
@@ -56,7 +57,7 @@
|
|||||||
<name>Alfresco - unauthenticated access</name>
|
<name>Alfresco - unauthenticated access</name>
|
||||||
<description>Access to Alfresco Repository WebScripts that do not require authentication</description>
|
<description>Access to Alfresco Repository WebScripts that do not require authentication</description>
|
||||||
<connector-id>alfresco</connector-id>
|
<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>
|
<identity>none</identity>
|
||||||
</endpoint>
|
</endpoint>
|
||||||
|
|
||||||
@@ -65,7 +66,7 @@
|
|||||||
<name>Alfresco - user access</name>
|
<name>Alfresco - user access</name>
|
||||||
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
|
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
|
||||||
<connector-id>alfresco</connector-id>
|
<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>
|
<identity>user</identity>
|
||||||
</endpoint>
|
</endpoint>
|
||||||
|
|
||||||
@@ -74,7 +75,7 @@
|
|||||||
<name>Alfresco Feed</name>
|
<name>Alfresco Feed</name>
|
||||||
<description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
|
<description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
|
||||||
<connector-id>http</connector-id>
|
<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>
|
<basic-auth>true</basic-auth>
|
||||||
<identity>user</identity>
|
<identity>user</identity>
|
||||||
</endpoint>
|
</endpoint>
|
||||||
@@ -84,7 +85,18 @@
|
|||||||
<name>Activiti Admin UI - user access</name>
|
<name>Activiti Admin UI - user access</name>
|
||||||
<description>Access to Activiti Admin UI, that requires user authentication</description>
|
<description>Access to Activiti Admin UI, that requires user authentication</description>
|
||||||
<connector-id>activiti-admin-connector</connector-id>
|
<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>
|
<identity>user</identity>
|
||||||
</endpoint>
|
</endpoint>
|
||||||
</remote>
|
</remote>
|
@@ -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.4</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 log4j.properties configuration at top level in the AMP -->
|
||||||
|
<file>
|
||||||
|
<source>src/main/resources/alfresco/module/${project.artifactId}/log4j.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
|
# Custom AMP to WAR location mappings
|
||||||
|
|
||||||
#
|
#
|
||||||
# The following property can be used to include the standard set of 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
|
# 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
|
# 'true', i.e. the default mappings will be augmented or modified by values in
|
||||||
# this file.
|
# this file.
|
||||||
#
|
#
|
||||||
include.default=true
|
# Default mappings are:
|
||||||
|
#
|
||||||
#
|
# /config=/WEB-INF/classes
|
||||||
# Custom mappings. If 'include.default' is false, then this is the complete set.
|
# /lib=/WEB-INF/lib
|
||||||
#
|
# /licenses=/WEB-INF/licenses
|
||||||
/web=/
|
# /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;
|
border: 1px #000000 solid;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
width: 100px;
|
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 log4j.properties configuration
|
@@ -24,7 +24,7 @@ module.id=${project.artifactId}
|
|||||||
#module.aliases=myModule-123, my-module
|
#module.aliases=myModule-123, my-module
|
||||||
module.title=${project.name}
|
module.title=${project.name}
|
||||||
module.description=${project.description}
|
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
|
# The following optional properties can be used to prevent the module from being added
|
||||||
# to inappropriate versions of the WAR file.
|
# to inappropriate versions of the WAR file.
|
@@ -5,7 +5,7 @@
|
|||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
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
|
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>
|
<web-framework>
|
||||||
<dojo-pages>
|
<dojo-pages>
|
||||||
<packages>
|
<packages>
|
||||||
<package name="example" location="js/example"/>
|
<package name="tutorials" location="resources/${artifactId}/js/tutorials"/>
|
||||||
</packages>
|
</packages>
|
||||||
</dojo-pages>
|
</dojo-pages>
|
||||||
</web-framework>
|
</web-framework>
|
@@ -3,7 +3,7 @@ model.jsonModel = {
|
|||||||
id: "SET_PAGE_TITLE",
|
id: "SET_PAGE_TITLE",
|
||||||
name: "alfresco/header/SetTitle",
|
name: "alfresco/header/SetTitle",
|
||||||
config: {
|
config: {
|
||||||
title: "This is a simple page"
|
title: "This is a sample HELLO page"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -21,7 +21,7 @@ model.jsonModel = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "DEMO_SIMPLE_MSG",
|
id: "DEMO_SIMPLE_MSG",
|
||||||
name: "example/widgets/TemplateWidget"
|
name: "tutorials/widgets/TemplateWidget"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@@ -0,0 +1,73 @@
|
|||||||
|
#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: "
|
||||||
|
-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:1.2.0
|
||||||
|
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
|
||||||
|
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,454 @@
|
|||||||
<groupId>${groupId}</groupId>
|
<groupId>${groupId}</groupId>
|
||||||
<artifactId>${artifactId}</artifactId>
|
<artifactId>${artifactId}</artifactId>
|
||||||
<version>${version}</version>
|
<version>${version}</version>
|
||||||
<name>Alfresco Repository and Share Quickstart with database and an embedded Tomcat runner.</name>
|
<name>AIO - SDK 4.4</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>All-In-One (AIO) project for SDK 4.4</description>
|
||||||
</description>
|
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<parent>
|
<prerequisites>
|
||||||
<groupId>org.alfresco.maven</groupId>
|
<maven>3.3.0</maven>
|
||||||
<artifactId>alfresco-sdk-parent</artifactId>
|
</prerequisites>
|
||||||
<version>@@alfresco.sdk.parent.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>
|
<properties>
|
||||||
<!-- The following are default values for data location, Alfresco Community version, and Records Management Module version.
|
<!-- Alfresco Maven Plugin version to use -->
|
||||||
Uncomment if you need to change (Note. current default version for Enterprise edition is @@alfresco.enterprise.default.version@@)
|
<alfresco.sdk.version>@@alfresco.sdk.parent.version@@</alfresco.sdk.version>
|
||||||
<alfresco.version>@@alfresco.community.default.version@@</alfresco.version>
|
|
||||||
<alfresco.rm.version>@@alfresco.rm.version@@</alfresco.rm.version>
|
|
||||||
<alfresco.data.location>alf_data_dev</alfresco.data.location> -->
|
|
||||||
|
|
||||||
<!-- This control the root logging level for all apps uncomment and change, defaults to WARN
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<app.log.root.level>WARN</app.log.root.level>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Set the enviroment to use, this controls which properties will be picked in src/test/properties
|
<!-- Properties used in dependency declarations, you don't need to change these -->
|
||||||
for embedded run, defaults to the 'local' environment. See SDK Parent POM for more info.
|
<alfresco.groupId>org.alfresco</alfresco.groupId>
|
||||||
<env>local</env>
|
<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>
|
</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-all</artifactId>
|
||||||
|
<version>1.9.5</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>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- This will import the dependencyManagement for all artifacts in the selected Alfresco plaftorm
|
<!-- This will import the dependencyManagement for all artifacts in the selected Alfresco platform.
|
||||||
(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
|
||||||
NOTE: You still need to define dependencies in your POM, but you can omit version as it's enforced by this dependencyManagement.
|
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
|
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>
|
<dependency>
|
||||||
<groupId>${alfresco.groupId}</groupId>
|
<groupId>${alfresco.groupId}</groupId>
|
||||||
<artifactId>alfresco-platform-distribution</artifactId>
|
<artifactId>${alfresco.bomDependencyArtifactId}</artifactId>
|
||||||
<version>${alfresco.version}</version>
|
<version>${alfresco.platform.version}</version>
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</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>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
<build>
|
<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>
|
<plugins>
|
||||||
|
<!-- 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>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 -->
|
<!-- Compress JavaScript files and store as *-min.js -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>net.alchim31.maven</groupId>
|
<groupId>net.alchim31.maven</groupId>
|
||||||
<artifactId>yuicompressor-maven-plugin</artifactId>
|
<artifactId>yuicompressor-maven-plugin</artifactId>
|
||||||
|
<version>1.5.1</version>
|
||||||
|
<executions>
|
||||||
|
<!-- Compress the JS files under the assembly folder -->
|
||||||
|
<execution>
|
||||||
|
<id>compress-assembly</id>
|
||||||
|
<goals>
|
||||||
|
<goal>compress</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<sourceDirectory>${project.basedir}/src/main/assembly/web</sourceDirectory>
|
||||||
|
<outputDirectory>${project.basedir}/src/main/assembly/web</outputDirectory>
|
||||||
|
<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>
|
||||||
|
<jswarn>false</jswarn>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<!-- Compress the JS files under the resources folder -->
|
||||||
|
<execution>
|
||||||
|
<id>compress-resources</id>
|
||||||
|
<goals>
|
||||||
|
<goal>compress</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<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>
|
||||||
|
<jswarn>false</jswarn>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
<!-- Hot reloading with JRebel -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.alfresco.maven.plugin</groupId>
|
<groupId>org.zeroturnaround</groupId>
|
||||||
<artifactId>alfresco-maven-plugin</artifactId>
|
<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>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
<profile>
|
<profile>
|
||||||
<!-- Invoke your build with -Prun to run the multimodule project and enable rapid dev mode in your IDE.
|
<id>java8</id>
|
||||||
See 'run' profile in the sub modules pom.xml for further behavioral details.
|
<activation>
|
||||||
-->
|
<jdk>[1.8,11.0)</jdk>
|
||||||
<id>run</id>
|
</activation>
|
||||||
<properties>
|
<build>
|
||||||
<!-- While running in rapid dev mode with -Prun, we don't want amp web resources
|
<plugins>
|
||||||
to be added to the war, so we can load them directly from the AMP project (see
|
<plugin>
|
||||||
runner/tomcat/context-*.xml for more details) -->
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<maven.alfresco.includeWebResources>false</maven.alfresco.includeWebResources>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
</properties>
|
<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,)</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>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
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>
|
</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,47 +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 @@
|
|||||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
#set( $symbol_dollar = '$' )
|
||||||
:: Dev environment startup script for Alfresco Community ::
|
@ECHO OFF
|
||||||
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
||||||
@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% (
|
IF [%M2_HOME%]==[] (
|
||||||
mvn validate -Psetup
|
SET MVN_EXEC=mvn
|
||||||
)
|
)
|
||||||
|
|
||||||
set MAVEN_OPTS=-javaagent:"%springloadedfile%" -noverify -Xms256m -Xmx2G
|
IF NOT [%M2_HOME%]==[] (
|
||||||
|
SET MVN_EXEC=%M2_HOME%\bin\mvn
|
||||||
|
)
|
||||||
|
|
||||||
mvn install -Prun -nsu
|
IF [%1]==[] (
|
||||||
:: mvn install -Prun
|
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
|
#set( $symbol_dollar = '$' )
|
||||||
# Downloads the spring-loaded lib if not existing and runs the full all-in-one
|
#!/bin/sh
|
||||||
# (Alfresco + Share + Solr) using the runner project
|
|
||||||
springloadedfile=~/.m2/repository/org/springframework/springloaded/@@springloaded.version@@/springloaded-@@springloaded.version@@.jar
|
|
||||||
|
|
||||||
if [ ! -f $springloadedfile ]; then
|
export COMPOSE_FILE_PATH="${symbol_dollar}{PWD}/target/classes/docker/docker-compose.yml"
|
||||||
mvn validate -Psetup
|
|
||||||
|
if [ -z "${symbol_dollar}{M2_HOME}" ]; then
|
||||||
|
export MVN_EXEC="mvn"
|
||||||
|
else
|
||||||
|
export MVN_EXEC="${symbol_dollar}{M2_HOME}/bin/mvn"
|
||||||
fi
|
fi
|
||||||
MAVEN_OPTS="-javaagent:$springloadedfile -noverify -Xms256m -Xmx2G" mvn 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,420 +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>${project.parent.basedir}/${alfresco.data.location}/solr4</alfresco.solr.dir>
|
|
||||||
<alfresco.solr.home.dir>${alfresco.solr.dir}/config</alfresco.solr.home.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="${project.parent.basedir}/alf_data_dev/solr4/config/" override="true"/>
|
|
||||||
<Environment name="solr/model/dir" type="java.lang.String" value="${project.parent.basedir}/alf_data_dev/solr4/config/alfrescoModels/" override="true"/>
|
|
||||||
<Environment name="solr/content/dir" type="java.lang.String" value="${project.parent.basedir}/alf_data_dev/solr4/data/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!
|
|
@@ -1,14 +0,0 @@
|
|||||||
<!-- Share configuration related to this particular Share module extension, such as:
|
|
||||||
- Doclib action config
|
|
||||||
- Form config
|
|
||||||
- Aspect and Type config
|
|
||||||
|
|
||||||
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:
|
|
||||||
alfresco-allinone/share/src/main/resources/alfresco/web-extension/share-config-custom.xml file
|
|
||||||
-->
|
|
||||||
<alfresco-config>
|
|
||||||
|
|
||||||
|
|
||||||
</alfresco-config>
|
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user