mirror of
https://github.com/Alfresco/alfresco-sdk.git
synced 2025-09-10 14:12:12 +00:00
Compare commits
447 Commits
maven-alfr
...
alfresco-s
Author | SHA1 | Date | |
---|---|---|---|
|
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 | ||
|
27bcaa3daf | ||
|
8f29244d99 | ||
|
87af573673 | ||
|
d53184196b | ||
|
4431863500 | ||
|
d2e9b89720 | ||
|
cda786187c | ||
|
8cf04fc98d | ||
|
3b579596db | ||
|
b2afebed09 | ||
|
3707dbc5d6 | ||
|
f3d85a19ce | ||
|
6c57d9ede0 | ||
|
0958c63b44 | ||
|
eeb5e7304f | ||
|
8d06e0e791 | ||
|
a11a3a65b6 | ||
|
5936c3fcda | ||
|
3e7a6d83a9 | ||
|
235a84105a | ||
|
3465b3aaf5 | ||
|
509e4072e8 | ||
|
6e7e2d7740 | ||
|
841c72e64a | ||
|
6b83be9d9f | ||
|
f4c9a36256 | ||
|
7309916d83 | ||
|
de723e44ff | ||
|
60dac34448 | ||
|
477067a992 | ||
|
016879ec87 | ||
|
97cbaefc6f | ||
|
c854a0aad3 | ||
|
d483c01a6c | ||
|
3116123800 | ||
|
a39a11ffe7 | ||
|
41dd5ff1ea | ||
|
2a3eb3919e | ||
|
f9c4647f22 | ||
|
bc97442af7 | ||
|
9c49d6c7f9 | ||
|
2453421d1b | ||
|
5e17baa651 | ||
|
c3b43c0c68 | ||
|
6f0589ce63 | ||
|
abee710157 | ||
|
19b0d1d8a7 | ||
|
6ebaa083d4 | ||
|
80f62c65ca | ||
|
f946d711ea | ||
|
4a25c4ceba | ||
|
6140990608 | ||
|
6a6fcacf78 | ||
|
3a9f08620a | ||
|
8b48a63e0a | ||
|
d0fdd2fdfe | ||
|
603fe956c6 | ||
|
ccb6728e4c | ||
|
3ef4131ce8 | ||
|
f1735544ab | ||
|
ee6861e873 | ||
|
2a45c2eaa5 | ||
|
b33837280d | ||
|
748231a932 | ||
|
8707fbebbf | ||
|
8d5d26a1a5 | ||
|
0f6b82d7f1 | ||
|
c7559ba8ea | ||
|
96efddd7af | ||
|
1a95fab1eb | ||
|
85ea35c7b6 | ||
|
788b64ccc6 | ||
|
ec8c8748e8 | ||
|
b3d1a5b3d1 | ||
|
b265ffb00e | ||
|
d5e9278d52 | ||
|
db7e154a31 | ||
|
b84ea0ffb3 | ||
|
56f8336af3 | ||
|
790b8cdfdb | ||
|
dbec475d0b | ||
|
c541f66845 | ||
|
fab637d1cb | ||
|
e8c7fdbc8b | ||
|
b178eaffaa | ||
|
8fa82cfad5 | ||
|
f050c75615 | ||
|
f3f70d6035 | ||
|
da6c97d857 | ||
|
d4872f7e1a | ||
|
c79889e662 | ||
|
ed7e5e2ead | ||
|
126747dbc9 | ||
|
4c0e340ab4 | ||
|
cf86202c28 | ||
|
d8816d7fa7 | ||
|
e2da89679c | ||
|
c9865d2295 | ||
|
a7856633ec | ||
|
c62178aadf | ||
|
12807d4af3 | ||
|
10bd148795 | ||
|
4e625f0ce3 | ||
|
db3e891c05 | ||
|
60193a7029 | ||
|
a04ef8ad72 | ||
|
221752ef0d | ||
|
593f4e9143 | ||
|
c7296f71c2 | ||
|
d2aa943430 | ||
|
ca3fea4e1b | ||
|
6ff39d81ff | ||
|
9dae6e5279 | ||
|
28d475711e | ||
|
36ad3db030 | ||
|
10fb9dedac | ||
|
041f188760 | ||
|
ae7f3bd532 | ||
|
58cf54fe7d | ||
|
58ee1a3c79 | ||
|
2237ab18d0 | ||
|
84d01c7217 | ||
|
0ef8953ffb | ||
|
e377a9ef74 | ||
|
1448f64560 | ||
|
8bf4214be1 | ||
|
bfd6d9ccc8 | ||
|
6af15e115c | ||
|
2d8a6cfcb6 | ||
|
61b833a362 | ||
|
3b74df1b9f | ||
|
705550faae | ||
|
fa762dd48c | ||
|
640ffcff90 | ||
|
1662c159c5 | ||
|
60689add1e | ||
|
79aef16e36 | ||
|
c7b88eb3d1 | ||
|
44b6327aca | ||
|
1bc351d51b | ||
|
1c56ccdab2 | ||
|
6826351beb | ||
|
f5a4787964 | ||
|
6493b8e9d1 | ||
|
c8fc67a273 | ||
|
27236060b9 | ||
|
a0be18daee | ||
|
bbf5197a5a | ||
|
30d8412f0b | ||
|
4355d0fb50 | ||
|
55c21e7989 | ||
|
5e02d4d071 | ||
|
3a322ceb2d | ||
|
6cf5ec1305 | ||
|
7a9d6c9403 | ||
|
154da68795 | ||
|
9c4adc5dd6 | ||
|
a94f0081d0 | ||
|
600eeeacc3 | ||
|
447a22a2ae | ||
|
2bdaf65f2c | ||
|
4d1886a4da | ||
|
134d16973d | ||
|
a641eb8a6b | ||
|
5400489974 | ||
|
a46eed0d7b | ||
|
a594d9b523 | ||
|
c6beb898ad | ||
|
70533a2973 | ||
|
e97deb4f14 | ||
|
3b2e93904f | ||
|
60d805768a | ||
|
9616129c69 | ||
|
ef2dd626f1 | ||
|
cb796f3b2a | ||
|
a0c8e3e867 | ||
|
c75a137a80 | ||
|
284710ab26 | ||
|
4c6610a004 | ||
|
8e10982a4a | ||
|
cb8315e268 | ||
|
19701b28c6 | ||
|
6f3363074e | ||
|
247b23a818 | ||
|
d23ce407cd | ||
|
572cbab5f6 | ||
|
b97c4fccdc | ||
|
09fefd9034 | ||
|
8fe1d265f8 | ||
|
4489f44636 | ||
|
077ff66198 | ||
|
6c8a4580d5 | ||
|
27dd99b809 | ||
|
2d6eec000d | ||
|
dd270a3ca8 | ||
|
561aa10ff7 | ||
|
5c4174e0d8 | ||
|
ab258df2b4 | ||
|
65414648c8 | ||
|
dad090fc73 | ||
|
84e8fd5ae7 | ||
|
f3df237cf0 | ||
|
fe2fdd3c06 | ||
|
be3b8618ae | ||
|
6d5ab89f4a | ||
|
51ab29e79b | ||
|
dab870c8f5 | ||
|
6076eecf4c | ||
|
eb583a15fd | ||
|
114d66fca1 | ||
|
faf0d89df9 | ||
|
a409cf08bd | ||
|
5421b845c8 | ||
|
fc55716499 | ||
|
ec26fef087 | ||
|
7ad13ab5ca | ||
|
6a770b9c3f | ||
|
6f1672b481 | ||
|
b4da819901 | ||
|
7871162941 | ||
|
97f7a04704 | ||
|
1020ea3e2b | ||
|
701c3e87d4 | ||
|
9b712d83e2 | ||
|
4a6c98d2a4 | ||
|
2718581d23 | ||
|
11a75c823a | ||
|
53547a4d8b | ||
|
148dff92ed | ||
|
6fb92cf40b | ||
|
90e8f95197 | ||
|
d2fbf381e5 | ||
|
da5ffcf2a6 | ||
|
52aac9ab2b | ||
|
a7b553866f | ||
|
d2517be6a1 | ||
|
9aacf6064c | ||
|
13a384c437 | ||
|
15f2aa1c85 | ||
|
2c880f6619 | ||
|
495820dbc1 | ||
|
a4f932de0c | ||
|
5e6c04700d | ||
|
8070c7c5e2 | ||
|
879f02b534 | ||
|
cccf604bb2 | ||
|
10eef5a821 | ||
|
661982b7bb | ||
|
292a90ac3a | ||
|
c625cccd3b | ||
|
fd8708c2f3 | ||
|
d367cf4a00 | ||
|
e354786112 | ||
|
ccdd59657f | ||
|
760d970240 | ||
|
3f44c3be58 | ||
|
b55d13b0d0 | ||
|
a37e89f34b | ||
|
351a81f4f0 | ||
|
addad0866f | ||
|
ba31887533 | ||
|
17350c4328 | ||
|
feb0d736da | ||
|
ed17a67187 | ||
|
3735773e71 | ||
|
f7731c25c0 | ||
|
3028567d0f | ||
|
ba7714fccc | ||
|
e5a8e944d5 | ||
|
d16c7572a5 | ||
|
e841f8039a | ||
|
80b914ba3d | ||
|
0c879938b2 | ||
|
1d6be1d5b0 | ||
|
23ffd5fa9d | ||
|
75ad7f1d40 | ||
|
d99773c1f4 | ||
|
c537eb438f | ||
|
d095094ff4 | ||
|
3adbf119f8 | ||
|
a1ca398736 | ||
|
0f5e234d2b | ||
|
c27b75f819 | ||
|
4dadee2e76 | ||
|
4c21e6f8cf | ||
|
9e4dd2b84f | ||
|
047c05032c | ||
|
61b61ccbb6 | ||
|
2513926a09 | ||
|
9e051bf382 | ||
|
dfa0937cd5 | ||
|
a9e8bde3a2 | ||
|
5c56d668e2 | ||
|
c814ca2b18 | ||
|
49f3014c5e | ||
|
66d30c9841 | ||
|
89519f33aa | ||
|
2461827c0d | ||
|
14727c05cf | ||
|
6b7c68ed22 | ||
|
aa48517e04 | ||
|
7ae88244ff | ||
|
bdd82bfa97 | ||
|
36cbd57dcd | ||
|
3e97370fcf | ||
|
a5fde50bc0 | ||
|
5e7f4c623e | ||
|
df38011aa0 | ||
|
3c4d153f3d | ||
|
e3aeee2310 | ||
|
6c3977a52a | ||
|
38fd25b352 | ||
|
335c395e3a | ||
|
54eed21b25 | ||
|
278ed06ae4 | ||
|
a1d5ac50a4 | ||
|
7c388afdbd | ||
|
a06f1b3642 | ||
|
48f3c3a2b3 | ||
|
b4c4e34a02 | ||
|
1e1430fb5f | ||
|
427944a051 | ||
|
3f2b3e8dc5 | ||
|
7b1d3cca7c | ||
|
59f63764ec | ||
|
16e3456457 | ||
|
5ab005c182 | ||
|
84a34450a4 | ||
|
adbad5c377 | ||
|
42c16e2844 | ||
|
1d2213ee84 | ||
|
782c34b652 | ||
|
c11a4bea38 | ||
|
11520dd4f5 | ||
|
d2efe45daa | ||
|
4fcde94b42 | ||
|
4a9ee81c91 | ||
|
685cc19e32 | ||
|
bc55760810 | ||
|
8568a8f1e3 | ||
|
9f24d52e8c | ||
|
a5fd434727 | ||
|
800a40b895 | ||
|
281b079bff | ||
|
49c8586c8f | ||
|
206f2d1aa6 | ||
|
5a3bbf9358 | ||
|
3f364593da | ||
|
f6f3910f06 | ||
|
58e55471ea | ||
|
f3fe02bd6b | ||
|
a5d942eeea | ||
|
953656e2bd | ||
|
7cb1ddae97 | ||
|
8032c2a83c | ||
|
6ce6a25bef | ||
|
3dc65c84dd | ||
|
505d7f7659 | ||
|
13b215b1c1 | ||
|
c7e12d32c6 | ||
|
ed0bde637b | ||
|
2ef8794fa1 | ||
|
568fe5f476 | ||
|
8966296c1d | ||
|
d051aeef80 | ||
|
4d60a2defc | ||
|
2f3e4c4a18 | ||
|
5c0fad94ac | ||
|
0f914216c1 | ||
|
22102ca16f | ||
|
02f11b7a41 | ||
|
be9ffb4f28 | ||
|
39a9bb3cc9 | ||
|
e3458874da | ||
|
0a1ea9c34d | ||
|
c570ba5b38 | ||
|
572c8bdaed | ||
|
eb3de51c9a | ||
|
a69a6c240a | ||
|
3805b97335 | ||
|
34fee645b8 | ||
|
d42a868990 | ||
|
dc1b95cb08 | ||
|
830df696c5 | ||
|
394102051d | ||
|
081321c879 | ||
|
fdc7942511 | ||
|
c9eceeddff | ||
|
f623dfeecd | ||
|
11ff4a2942 | ||
|
a869e55b25 | ||
|
56475bb755 | ||
|
884f1596a9 | ||
|
9ff7d19278 | ||
|
58d01898bd | ||
|
d36f8c00a3 | ||
|
adf8bd6392 | ||
|
b299709cc3 | ||
|
1fbfe5501c | ||
|
1c0056e6b2 | ||
|
ac87c8ef7a | ||
|
16226ee5ab | ||
|
39086a6eb8 | ||
|
e76e42865a | ||
|
cccc2201e0 | ||
|
824f744f84 | ||
|
c7edadab00 | ||
|
f83762b8ef |
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
**.idea
|
||||
**.classpath
|
||||
**.project
|
||||
**.ipr
|
||||
**.iml
|
||||
**.log
|
||||
**.log*
|
||||
target/
|
||||
pom.xml.tag
|
||||
pom.xml.releaseBackup
|
||||
pom.xml.next
|
||||
release.properties
|
||||
**.settings
|
||||
**bin
|
155
KEYS
Normal file
155
KEYS
Normal file
@@ -0,0 +1,155 @@
|
||||
This file contains the PGP keys of various developers.
|
||||
|
||||
Users: pgp < KEYS
|
||||
gpg --import KEYS
|
||||
Developers:
|
||||
gpg --list-key <your email> and append it to this file.
|
||||
gpg -a --export <your email> and append it to this file.
|
||||
|
||||
(gpg --list-key <your email>
|
||||
&& gpg --armor --export <your email>) >> this file.
|
||||
|
||||
################################################################
|
||||
# Gabriele Columbro
|
||||
################################################################
|
||||
|
||||
pub 4096R/6FE5701E 2012-03-25
|
||||
uid Gabriele Columbro (VALID CODE SIGNING KEY) <gabriele@apache.org>
|
||||
sub 4096R/E97059F3 2012-03-25
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.10 (GNU/Linux)
|
||||
|
||||
mQINBE9u680BEADFHOMCFOnPeuSNLJw+KiKVFm9Waa9oWMxKpYhCP4bDA0sH85/W
|
||||
ZKJDaPR+2p5JAoB0y3ZfxHfmhoLZRmLgP1oSJBfB2VgdbG1My4Oshd/h8Tr5pAJj
|
||||
bulvC5urWcYD9eYNFVJtG28l7epnjx0NglA6WBk9Bx5+XGSLvxaQkCu6S7D9V+cw
|
||||
2nJqZia7ul/J5xjGWy5aBZubwj1UT2YhZwxEmSjlBo0jrf8y4YScCz2VXJVs33p1
|
||||
CHQESCuBRZ0dK2kCmRaU+2bhJy9+nFstHYVAygwbQ8Km4sqSpcjEAZTpKK/lspbH
|
||||
c7TcZcFujLCCoHuAh4k0I/Qp3My0QqUpmdwsWQdbknP4MkQJlYB5GxnJnFzsA1Hg
|
||||
fJwOa23b1lFNhZSdmY9NSM+2Ihg1XB4pb4Z0+uqLMAVR8owpuaJ329W+LJJutQyC
|
||||
87Kc1KH4He8KuENGhQT16+NJlUFrRSYaST9NB9RbFURc1eUMgHHXjcJp9sny2YPY
|
||||
bq89W0HtHSNH0My/akK47qcX1ddKGE8PTVdS5kDhS+w75f9Lf+gyV5HflzZSaaSQ
|
||||
+rD/WZ8uTeQKNSYvupdv63i1FIOJd1Ip0C8fj/STwWdDRvq5UwiHsiGgw30WCNAy
|
||||
VQ+OPJ+7DNm4pJEkcxno+WeTbCpZGysvFjouDPig/+a69IMPEYE2xQuz7wARAQAB
|
||||
tEBHYWJyaWVsZSBDb2x1bWJybyAoVkFMSUQgQ09ERSBTSUdOSU5HIEtFWSkgPGdh
|
||||
YnJpZWxlQGFwYWNoZS5vcmc+iQI4BBMBAgAiBQJPbuvNAhsDBgsJCAcDAgYVCAIJ
|
||||
CgsEFgIDAQIeAQIXgAAKCRA1c7pOb+VwHnTxD/0V9Fnn7pjVWYkUi/62xh4DXfMO
|
||||
urvsafeH5JXE3a6e856sFg8AV/w2ceJYqzZ5l46GkF/B9buParLQmnXTni/ClokU
|
||||
IeRM/Faj964DXZRAdTiu06VnGxzTN5Dpo1rr/wccjamq/B19ta7xW+z+zfY9jby3
|
||||
UUHkIV0itVIRZ3K3Tc7tssmj4ATkwvHlXWQo89cQcoTpBrJyClRsSWPQgefws38P
|
||||
6J+PXUqBuw5JDH6WhOvovkWBZt0ryduCjHNat7JYYjLBzPX//rMj8c9xytFHCxaq
|
||||
JUvS9BAdW5UE3mG8OBkvRhNqvPLrKUch9ETiYWetWf3trRUDQhHhngN/t9a7pVDx
|
||||
vsP63fozPD58LK7Ete05emukYg18xGGhRixu10KgwbuAqJD2t6GUd2gjJBI/5Qua
|
||||
99ImffhLoLNuv6w2XE2ePPkMLBOh4SdzOHJ23ffO8IDRG8yfQD9yT1dC+aHEKd6D
|
||||
OA/pJGcjoXUubtoa0ARKL30gx6d4xXeiaRKHUP/tLHx5nxctGOPNYgwz4j4VyaR/
|
||||
KNpFU3bZPR0NWAKNcjTO2MT4ZzBMOidWJjWM3D29ZYa23Lwxea7hpswL2PQgHthu
|
||||
jqArjrBTuMLmUw/L4kGQDfOfrasBoYTHKK3J2WejczgaNmEd2Rd7LjJGJZBGdcBu
|
||||
l98PjbR9xLxkm3ql0okEHAQQAQIABgUCT3l9MAAKCRCKr4jW2E5BrgLBIACvfl3Z
|
||||
cgPoZy/SRLF6FojxgwzX7/3t45jZnQXxWvnuEb6cFjyXU+y3i/9x9yRs8B2EeW3v
|
||||
uSEa8lsUo/QN08almF+QOzNMof+RGhHsPanlm8dW5iibdWfP+GsL0S5Mo6GhaFZW
|
||||
SQUfYWsuqUGBmLp9aH3uMTkCvjq2iNZ0UoTm8ZQ+iJnNhfE2iMkH6U6WBEAr9PID
|
||||
uFLVy2uw2kKKdPVpRntQuOyUKuCQC1ydN2kH/I01TwonFepBCjdEMtaW9tTZNJ5A
|
||||
Z8nKOlXOX+zo1HNEiD6hGAqn2ZqotnzFKrx4AwhDb4Wt3N2Nc9YBM7noxlKQuPby
|
||||
Pa9ydXmtIrRHjAHJeL0dY2BFfRb5zeUuiuz+zOY186LDCaH+txjPeudKxDv7uyNu
|
||||
5XNAbRUQj06ZxhtPT/xvzpIcxuqOzAh/znZXM3RnOB6Wj3p4jXC/neEJwKL/yuEo
|
||||
bZvIa/dnU5tI7uVhfrK3SKdi4Q+oQgYvTmy/mrISJB9p2npJAr+mrq7XpwZD77HT
|
||||
ZxYMZKjY6aQ8KoTgR48JXKylxuEGidZJduVLGsHH3mF2YcENgKcPQCOI+uSHP432
|
||||
Tt/7ARsbYV9lF+9XDn75UAQrOjlbhs/ovOlzhx+BAbmszZADwRbMB+CQl2N4ds3l
|
||||
LhtkbqAfs2bjauw9NnSmNAhxFdnCmBnN96+GysfQOnxhUI6LT+S8S6bWsTinq1Xa
|
||||
d7lXhGtyD1LtDpdzynLjQgis6v+45IvYUa6zoOkTunhM2A0jsZhmjk9ZpZHywyZF
|
||||
K5nNZQy6Q6L5OmW1XNnxtob02d4sotNoAEYvrPo3QLDsL4UI3Z1DnrvW8K4DQBj7
|
||||
4EkANks7o70pxYdMElhYy4rJ5rt25004jeYztuwE885T5CSHN+0aPdjkP5rZSkuU
|
||||
90j7hOT2qDkFf/H81RZufDdgyVKzLRkAYKiSrZaqAXcqBEOMq6rYMitkgEP07FOP
|
||||
6eFBImRpz0OINGz3hrVCNHbxng/TWke3wi05DBRcJIhNWu8P2QXdDaAEBORFunAT
|
||||
NISbdt4/5p5DYOdxe9wlUECKdE2zDG++JTat30lsNfZi183QOQfGCd770kFrGcMY
|
||||
DvpyUVT8BZqS9TSsS97Zhg6boRU9Etb8MORYJ2cGdXwjrUerFBmHebSmSZPKTMKF
|
||||
rznEiwroUQQsIoTzbnd88KlgqbwCazGM2LfI0svONvNXbu7B7iKkcNU9M2LpRZu3
|
||||
n5t7v/Nfilc3YssRNi5nFWQarmqP2qTkyr434OeFSuzO9yz5/BGPcWbvkBzWExMS
|
||||
6854rMPAFh3g6YdyJnhjf9TaNNlMH9xKQgsL5C9Q4YGSGU9oklhSq3W5FSxT97E0
|
||||
NhwVmN+yElh3FBswuQINBE9u680BEAC8CvXUxbns4X8dvxEcgb8ReDGTa2vVij0U
|
||||
kBqDyHq1Yta1e6Qm34fNizcds/avbmBB8q8dTNMR1Ka4aPukc+M+oGOY4aKgQNCW
|
||||
YfrdBVAdVZ9RCyZC9Jy3XlPoSBokLGxz4J212OdWTOzQTzIEfsVzAQmxGmnqv5yP
|
||||
R+PKLGZvyRpwAjz12K4yZmztOte8mi/pQtKXzB45LggbHh39iO1nG6EKQLWyyoA2
|
||||
olF9Eb+yHdZQOpLCLnqc7FS3Cbz80SVqGS5miU3CSp7GTBEA1wualxKvNNiPO2p2
|
||||
MMnjMVcxZx1k3d4C7+uMGvtZiTqa7tmWODz1dfwolfYQ/E4TcxG2vzKatE07JG7X
|
||||
3vVmfR2Bjb2ITN8Kj1ZdVeQkHgJvRx8B6glFQhv6lso5XUuoWt5Gm66wCyirjCDn
|
||||
OLJKk6YkdSop8EweAy675VFoq3LSASyep72jrgT3AMf8U0nAgZSrwLMjBjSVzIRs
|
||||
FNv30iCBXYy/bmSyfMEphjttKCYHnNjZS8fD+ka1zzXnOXglWNtDGDOdJ5zaIymW
|
||||
R4FZlrQMjs4y564WMHJWG9exncSPHNPLLieGAng4oJjAXR92GgrTZQAcghTRGBOn
|
||||
rRYzv9ob6n2wgnA8wR+Wmy0xcmF44xNht3mfD1qTO0P2Fdhdm4ZvXQBII0tXkwMl
|
||||
OJ/BR732xQARAQABiQIfBBgBAgAJBQJPbuvNAhsMAAoJEDVzuk5v5XAeTZQP/2g9
|
||||
1KOS1pia2gAOmFbuu0ep1THRxuLydcn6C306YmnL2l+o5z0YE4nPYiD9rd+PkWFm
|
||||
0itE2WBBZkEloesUcjX/xsw7t6pdzd3W6nu1LXPcppOeHAc1ofrRWqKSmfD5k2lB
|
||||
8dzuRKltU6b829wcDi0HlL+dP8G9pcJXz2cMs09QchOdvm/hQam9SHFwx9IDJvrt
|
||||
nHB4kLfUTJ0Fs4FjtT+nfozXE+wXd23+HyNVQPX3rTO5IR4DOTDNSZ+vxqkE0BeF
|
||||
6M4dDvMADBEgkEwpsRzioEp75biw5bq8YsDvYNGpyJOFt46bRWjrzOcUsIXMy4eQ
|
||||
uTk/flFQs3ukw7q7DvSBVRokfjFHWr3FZC30xyRijJImW4F1Xqa3HphC3+4fSQjx
|
||||
w652pOx0aZlBHtVByYBLYcrCGcJ8p6ijpPX60ur3a8ebdUHND912+mIGiQzhkHiK
|
||||
VBvvfOrbWzcNwbxAsNncAfjr/3adPAjbyMH10+e+sNhLMJuYYgP8pVhp8BTKFJF9
|
||||
hrGAueS2lH5DUpjZPqClR+txnAK+hVCuFogoWsdsbRHMLkqKqhnQjWnvRrU0ud9j
|
||||
ytG/XwLK3RL7LTmPIC9RqlO1U1A3h5Ykw2INH/bB90lBxmydmp/PHpkhjEAEvzGW
|
||||
r+ipOwsWpF6kLIHUT2LuPxLqTGQCrqYtJyTp61tE
|
||||
=GUM9
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
################################################################
|
||||
# Alfresco Software, Inc - PGP key
|
||||
################################################################
|
||||
|
||||
pub 4096R/DAD3B670 2014-10-20 [expires: 2015-10-20]
|
||||
Key fingerprint = 6959 A697 47E2 7AC4 E1E7 1636 199D 99B1 DAD3 B670
|
||||
uid Alfresco Software, Inc (GPG) <info@alfresco.com>
|
||||
sub 4096R/A4B70B45 2014-10-20 [expires: 2015-10-20]
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
mQINBFRFM3EBEADveqoXdxufZiP+hK992UJO9OIumDts9SlirI4VviyRlCn/qc3X
|
||||
5wzAAsTNRBJjsk3S3O3EfmK79GodIb0ebnQSbv6+EnwPK0uwS0ykoy7JrMUHVBY+
|
||||
zI9AwGIe0UpCRXfPH3x0O1Psi1fcKGR/Qs2ouTnCpzDZRq3kFt7/iCXm6t8QpaxE
|
||||
y4KNxT/S8MeGydslqgbEA4fCZ6RP9kzFs8tCNyv9WxHkcb0oos/nC2ihJy3HZATO
|
||||
A2qeTxS5pf6O1hJuE7XRIRCPTN1j0uSAl4ebDKPn4uANz8MwYcZBz89lWVmP/wEz
|
||||
AoN8jWjqb/SstURj+czjXoxhoxMaLDMjdw5RoJsLUmlfp2j9eaFbxmUl103wUL+O
|
||||
R+6sk5pXHpvifjeI/AjNTaZe6WVfkgcUqkHmw0GUgdASgBLBDciGd+O4sXr/L/iZ
|
||||
wxhdxcubWy4MbKcy7QlcS4Z4FwK6jjPQKjn+7PT3Wexh8SAX0661gntV7Rr/SYIY
|
||||
edyRdtLd+SP+TuOn4wQY5x8ahHqGi4PDoSaCMAZ8jbQnbAXXeOlkBuyDm+Z4iGDC
|
||||
OQgjvvQufB2ZA1ml9DjtZOWIdgUQfanGaO8TW+V5v+PFvfMkRFIMMyS8WEp6ePT/
|
||||
IOBDxUBQ0BZ1BktkQ+Oifi179EyvghpePciUWX5oDf6AfW/QfLhnkVhQPQARAQAB
|
||||
tDBBbGZyZXNjbyBTb2Z0d2FyZSwgSW5jIChHUEcpIDxpbmZvQGFsZnJlc2NvLmNv
|
||||
bT6JAj4EEwECACgFAlRFM3ECGwMFCQHhM4AGCwkIBwMCBhUIAgkKCwQWAgMBAh4B
|
||||
AheAAAoJEBmdmbHa07ZwTtYP/jdMOUFvUqAwaiDBap0+DqyyFgeWfa90b3O6LlAf
|
||||
BeKin4lq8TEVL1CCehRSILAgd0nQQYHeJvLwpvZNl4t2TBFk5e/Xd4gHdszum4Ms
|
||||
aJ0qc2G61ep5vE5z11Ca2vWLEG1Org+iVtZuMZcsCtPhFjyHE1PRU1s0ApoIXZxt
|
||||
z35pgz5PSldPpOk4nuUKIhLLTpNLNd4fgbPiHhyqJloTMsOEycZ+W5Em2Ib2/kxx
|
||||
0GIjAy5A9IlezALKengZ4NjHFwcddcP6+2rFgBTY/7KhhGNyOghwSIIJOdp0BQwD
|
||||
bSN26e5WpYT+gja44QZ44KdMpOcxH8Qt0lJmjULizxcbYTPMsoPF3Jszm0E5auOQ
|
||||
y2cixDEfmioqgJ4KKS6AIXd/yfLEvsGEU1Zz1a1yDQz12ZhzBa/GtoQRhzWErspR
|
||||
7kMPiGKQEhQowB7vHfiCmVhx89RWPwZFFyLz92jS11ZGpeBlWF4hMSefQR7sFWLi
|
||||
rYw0LOyMyFyz9P60ZKX18LHltxsrsteJA7zARcS0uv112O7wSTX1k44s5fiaWlVR
|
||||
Ciuchcp0eTcsYa4Jiz4yZNnJhRi7tnsQJOXYF4IjGAxnJoBLSUUt2uEWtMg09m5F
|
||||
vgrCNcc8HFy1hIIHy0l5CaLJY/5x9Z1Lg2dbwVP7+goTRogRGvpdjy7/eMlQEAgm
|
||||
HMtsuQINBFRFM3EBEADCohKTxy3JYJ3dPzxhD/76nX0zkyvuhepVXAkpzjhWSx9r
|
||||
9RQSB6WLnczlZVriQKVPR6RZ7fn4XhLim3v9e9c188R1WeUvuHWaJXDAvBWFarLu
|
||||
y7kd1ZRpS0UWWE+k/WBruT5rEqjpW4Un/7WINsr972Ic7IFiv5ISUC7h/ylym5T1
|
||||
w15WRZnMF96tLmMjzGdqJYrbu7Y4ZPYr5VwWnd9hE9Cal3YMMsfcXlIWOzw7BRDO
|
||||
aWmMsWyFiVkwCeAZOSYthu4Qdo3bSlGo5C46JuRcdU1ZimZKztC1qlihiju7oWfa
|
||||
3hJT/uWFu06IAdcI6lq4yEb+iG73BNUGNMDzpTeWLW7Q3IByZ/e9/DzFJcjsDf5N
|
||||
jCzJGxAtEJ28egrZe6/Fk6yBwE0+nzUmOPU3qqi57aFFajfdV89SoQwKG83IpNJl
|
||||
L9vbE62Iljm0DNK3VEotw9OMc6B3z6TfatVclqLFTH5Q+4rNcCytpK747loGVJcP
|
||||
KFs1FzFj+hW2MkFcnY1JbuaSuyrhPVpg4Z1bjxLVLdlisYm0AL+n+z0tmFO45XJ2
|
||||
mS06ckpqFAhk5HOOMOd/9+Qi3p9orE6dFM+TIWnxDphpws43O+FSYM8OJk7saGos
|
||||
DNMvm9C0oz07MwMuthkLmSBsWmkZYXrvkUY1lrTdpyqqs11qllBZ1PsRATKeIQAR
|
||||
AQABiQIlBBgBAgAPBQJURTNxAhsMBQkB4TOAAAoJEBmdmbHa07ZwQl4P/2FH+4Sa
|
||||
JJgaNGoyyo1Oh1Xd1OMHf++V7FpXxHHmgEv6bTz3E8xHTMA7Zm1iBIPGrIo2loKe
|
||||
49p3gbGFtvZLLT31Tg+usUN62QntKYOIiztdjsxzTskBgJH+A4Ucz7O1NsN6GQXF
|
||||
QgGFlEpWApXCK8ogNp6ntwxGCyOFvZujuJjSFUZcpNEGhOYhYuKvo18qboP3RgVy
|
||||
o74FPtPvh3YMz9DLRXeVbhhIq0oejek5z0aOXEjgZipVO4U7uDO5EVcG57jIVfiI
|
||||
WM681KHG/Djx64GmSi9wo+P687Ib7+UHSzBTeEm9YVRNNSQFbuvxqq9XhDctkkbZ
|
||||
m/QRbQXJFPQJcDOLLH06JNQ+/KvT8uwduiBFs2x77qKrVCxqCQU8XwY+KnyGouf9
|
||||
sLdxDZwGoXFbnCyRKFH+fqoIMdcYzIT/VvGswTCNqSOvDxnSNO9REVbdsIJwenqt
|
||||
QetRR7SVYKfcyLMCtMek3Fgst85khwP8tIYAEerE+XN04b1FfD3mjqvgBdUY7IDM
|
||||
W1NVRTtjlX46ltNvtERO8JGYMqlRW/wpDXQzRxryNY7frXA+fhog2L53cOK/Fwc8
|
||||
UcbLubQPkh/6+w4SybT2F8otOB1J8KZ0tzbTd5JxuX0V0AD8OjH+uuN67r5bQBk9
|
||||
ARVlLqDOpHP01PW6WUQta2xAQ2mshuQZTX1H
|
||||
=3Y/D
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
201
LICENSE
Normal file
201
LICENSE
Normal file
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
|
||||
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
|
||||
|
||||
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.
|
75
README.md
Normal file
75
README.md
Normal file
@@ -0,0 +1,75 @@
|
||||
# [](#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).
|
||||
|
||||
## 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.
|
||||
|
||||
## News
|
||||
|
||||
- 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), [Release notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/latest/github-report.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), [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)
|
||||
- 2014-08-22: First SNAPSHOT of SDK 2.0.0 in the [OSS Sonatype Repository](https://oss.sonatype.org/content/repositories/snapshots/org/alfresco/maven/alfresco-sdk-parent/2.0.0-SNAPSHOT/)!
|
||||
- 2014-07: Project fully migrated from [Google Code](https://code.google.com/p/maven-alfresco-archetypes).
|
||||
|
||||
## User Getting Started
|
||||
|
||||
### Latest Documentation
|
||||
To get started with Alfresco SDK 2.1.1 (latest) visit the offical Alfresco Documentation for:
|
||||
|
||||
- [Alfresco Community 5.0.d and above](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html)
|
||||
- [Alfresco Enterprise 5.0.1 and above](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
|
||||
|
||||
#### Previous versions Documentation
|
||||
- Documentation for [Alfresco SDK 2.0](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html) (compatible with Alfresco 5.0.d Community and 5.0.0 Enterprise)
|
||||
- Documentation for [Alfresco SDK 1.1.1](http://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-intro.html) (compatible with Alfresco 4.2)
|
||||
|
||||
### Samples
|
||||
Sample extension projects that use the SDK, maintained by @ohej in the [Alfresco SDK Samples project](https://github.com/Alfresco/alfresco-sdk-samples/).
|
||||
|
||||
### Command reference
|
||||
A list of supported features and commands, explanation of Maven profiles and commands is kept in the [Alfresco Official Docs](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-cmd-reference.html).
|
||||
|
||||
### Want to get up to speed quickly in Eclipse? Check out this video!
|
||||
|
||||
[](https://www.youtube.com/watch?v=utYZaVe9Nd0)
|
||||
|
||||
## 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/).
|
||||
|
||||
## 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).
|
||||
|
||||
## 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/).
|
||||
- Alfresco (Community and Enterprise) artifacts are hosted in the [Alfresco Artifacts Repository](https://artifacts.alfresco.com/).
|
||||
- Alfresco Community artifacts (JARs, WARs, AMPs, poms) and SDK artifacts are publicly available.
|
||||
|
||||
*NOTE:* For Enterprise and Premiere licensed software access you need to get credential via the Alfresco Enterprise Support. See [Maven Alfresco Enterprise setup](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-using-enterprise-edition.html).
|
||||
|
||||
### Alfresco Artifacts Repository
|
||||
|
||||
#### Alfresco Releases
|
||||
You can use the following snippet in your pom.xml to access releases on Alfresco Artifact repository:
|
||||
|
||||
```xml
|
||||
<repository>
|
||||
<id>alfresco-public</id>
|
||||
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
|
||||
</repository>
|
||||
```
|
||||
|
||||
#### SDK Snapshots
|
||||
To test new unreleased (unsupported) features, you can use the following snippet in your pom.xml to access SDK nightlies (SNAPSHOTS) from the OSS Sonatype repository:
|
||||
|
||||
```xml
|
||||
<repository>
|
||||
<id>oss-sonatype-snapshots</id>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
```
|
||||
|
||||
## For Developers that want to contribute to the SDK
|
||||
See the [Developers Wiki page](https://github.com/Alfresco/alfresco-sdk/wiki/Developer-Wiki).
|
||||
|
58
archetypes/alfresco-allinone-archetype/pom.xml
Normal file
58
archetypes/alfresco-allinone-archetype/pom.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<?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/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.alfresco.maven.archetype</groupId>
|
||||
<artifactId>alfresco-allinone-archetype</artifactId>
|
||||
<packaging>maven-archetype</packaging>
|
||||
<name>Maven Alfresco SDK - All-in-One Archetype</name>
|
||||
<description>Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for: Repository WAR overlay, Repository AMP, Share WAR overlay, Solr configuration, and embedded Tomcat runner</description>
|
||||
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>2.2.0</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>archetype-resources/pom.xml</include>
|
||||
<include>archetype-resources/run.sh</include>
|
||||
<include>archetype-resources/run.bat</include>
|
||||
<include>archetype-resources/runner/src/main/webapp/index.html</include>
|
||||
<include>META-INF/maven/archetype-metadata.xml</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<excludes>
|
||||
<exclude>archetype-resources/pom.xml</exclude>
|
||||
<exclude>archetype-resources/run.sh</exclude>
|
||||
<exclude>archetype-resources/run.bat</exclude>
|
||||
<exclude>archetype-resources/runner/src/main/webapp/index.html</exclude>
|
||||
<exclude>META-INF/maven/archetype-metadata.xml</exclude>
|
||||
</excludes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.7</version>
|
||||
<configuration>
|
||||
<useDefaultDelimiters>false</useDefaultDelimiters>
|
||||
<delimiters>
|
||||
<delimiter>@@</delimiter>
|
||||
</delimiters>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@@ -0,0 +1,187 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archetype-descriptor
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
|
||||
name="All In One Archetype for Alfresco. Provides rapid development, IDE integration, and running embedded of Alfresco Repo, Share and Solr"
|
||||
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<requiredProperties>
|
||||
<requiredProperty key="version">
|
||||
<defaultValue>1.0-SNAPSHOT</defaultValue>
|
||||
</requiredProperty>
|
||||
</requiredProperties>
|
||||
<modules>
|
||||
<module id="${rootArtifactId}-repo-amp" name="${rootArtifactId}-repo-amp" dir="__rootArtifactId__-repo-amp">
|
||||
<fileSets>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.java</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/test/java</directory>
|
||||
<includes>
|
||||
<include>**/*.java</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/amp</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/*-context.xml</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="true" packaged="false">
|
||||
<directory>src/main/amp</directory>
|
||||
<includes>
|
||||
<include>**/*-context.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/test/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/test/properties</directory>
|
||||
<includes>
|
||||
<include>**/*.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="${rootArtifactId}-share-amp" name="${rootArtifactId}-share-amp" dir="__rootArtifactId__-share-amp" >
|
||||
<fileSets>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.java</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/test/java</directory>
|
||||
<includes>
|
||||
<include>**/*.java</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
||||
<directory>src/main/amp/config/alfresco/web-extension</directory>
|
||||
<includes>
|
||||
<include>__artifactId__-slingshot-application-context.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
||||
<directory>src/main/amp/config/alfresco/web-extension/site-data/extensions</directory>
|
||||
<includes>
|
||||
<include>__artifactId__-example-widgets.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/amp</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/__artifactId__-slingshot-application-context.xml</exclude>
|
||||
<exclude>**/__artifactId__-example-widgets.xml</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
||||
<directory>src/test/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="repo" dir="repo" name="repo">
|
||||
<fileSets>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/properties</directory>
|
||||
<includes>
|
||||
<include>**/*.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="true">
|
||||
<directory>src/main/resources/alfresco/extension</directory>
|
||||
<includes>
|
||||
<include>dev-log4j.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/dev-log4j.properties</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="solr4" dir="solr-config" name="solr4" filtered="false">
|
||||
</module>
|
||||
|
||||
<module id="share" dir="share" name="share" filtered="false">
|
||||
<fileSets>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="false" encoding="UTF-8">
|
||||
<directory>src/test/resources</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
|
||||
<module id="runner" dir="runner" name="runner" filtered="false">
|
||||
<fileSets>
|
||||
<fileSet encoding="UTF-8" filtered="true">
|
||||
<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>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</module>
|
||||
</modules>
|
||||
|
||||
<fileSets>
|
||||
<fileSet encoding="UTF-8">
|
||||
<directory></directory>
|
||||
<includes>
|
||||
<include>run.sh</include>
|
||||
<include>run.bat</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</archetype-descriptor>
|
@@ -0,0 +1,64 @@
|
||||
<?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>
|
@@ -0,0 +1,7 @@
|
||||
<webscript>
|
||||
<shortname>Hello World Sample Webscript</shortname>
|
||||
<description>Hands back a greeting</description>
|
||||
<url>/sample/helloworld</url>
|
||||
<authentication>user</authentication>
|
||||
<format default="html"></format>
|
||||
</webscript>
|
@@ -0,0 +1 @@
|
||||
Message: ${fromJS} ${fromJava}
|
@@ -0,0 +1 @@
|
||||
model["fromJS"] = "Hello World from JS!";
|
@@ -0,0 +1,5 @@
|
||||
## This Alfresco Repo Configuration file should be used for custom properties that are introduced by this module.
|
||||
## Define default values for all properties here.
|
||||
## System Administrators can override these values in environment specific configurations in
|
||||
## alfresco/tomcat/shared/classes/alfresco-global.properties.
|
||||
##
|
@@ -0,0 +1,27 @@
|
||||
#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="${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>
|
||||
</bean>
|
||||
|
||||
|
||||
|
||||
</beans>
|
@@ -0,0 +1,42 @@
|
||||
#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="${artifactId}.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="${artifactId}.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,25 +1,27 @@
|
||||
<?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.
|
||||
|
||||
-->
|
||||
#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'>
|
||||
|
||||
<beans>
|
||||
<!--
|
||||
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
|
||||
|
||||
<import resource="classpath:alfresco/module/${artifactId}/context/service-context.xml" />
|
||||
|
||||
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>
|
||||
<bean id="webscript.helloworld.get"
|
||||
class="${package}.demoamp.HelloWorldWebScript"
|
||||
parent="webscript">
|
||||
</bean>
|
||||
</beans>
|
@@ -0,0 +1,27 @@
|
||||
<?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>
|
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<model name="myw:workflowModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
|
||||
<!-- Optional meta-data about the model -->
|
||||
<description>Workflow 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 Workflow Model Definitions -->
|
||||
<import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
|
||||
</imports>
|
||||
|
||||
<!-- Custom namespace for your domain -->
|
||||
<namespaces>
|
||||
<namespace uri="http://www.mycompany.com/model/workflow/1.0" prefix="myw"/>
|
||||
</namespaces>
|
||||
|
||||
<!-- ===============================================================================================================
|
||||
Constraints, Types, and Aspects go here...
|
||||
-->
|
||||
</model>
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
<?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
|
||||
@@ -16,19 +15,17 @@
|
||||
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="${groupId}.${artifactId}.exampleBean" class="org.alfresco.demoamp.Demo" init-method="init" />
|
||||
|
||||
<!-- A simple module component that will be executed once -->
|
||||
<bean id="${artifactId}.exampleComponent" class="org.alfresco.demoamp.DemoComponent" parent="module.baseComponent" >
|
||||
<property name="moduleId" value="${pom.artifactId}" /> <!-- See module.properties -->
|
||||
<property name="name" value="exampleComponent" />
|
||||
<property name="description" value="A demonstration component" />
|
||||
<property name="sinceVersion" value="2.0" />
|
||||
<property name="appliesFromVersion" value="2.0" />
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
-->
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
|
||||
<!-- 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/webscript-context.xml" />
|
||||
|
||||
</beans>
|
@@ -23,7 +23,7 @@ module.id=${project.artifactId}
|
||||
#module.aliases=myModule-123, my-module
|
||||
module.title=${project.name}
|
||||
module.description=${project.description}
|
||||
module.version=${noSnapshotVersion}.${buildNumber}
|
||||
module.version=${project.version}
|
||||
|
||||
# The following optional properties can be used to prevent the module from being added
|
||||
# to inappropriate versions of the WAR file.
|
@@ -0,0 +1,17 @@
|
||||
<!--
|
||||
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!
|
@@ -0,0 +1,18 @@
|
||||
#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");
|
||||
}
|
||||
}
|
@@ -0,0 +1,83 @@
|
||||
#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.alfresco.repo.module.AbstractModuleComponent;
|
||||
import org.alfresco.repo.nodelocator.NodeLocatorService;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* A basic component that will be started for this module.
|
||||
* Uses the NodeLocatorService to easily find nodes and the
|
||||
* NodeService to display them
|
||||
*
|
||||
* @author Gabriele Columbro
|
||||
* @author Maurizio Pillitu
|
||||
*/
|
||||
public class DemoComponent extends AbstractModuleComponent {
|
||||
Log log = LogFactory.getLog(DemoComponent.class);
|
||||
|
||||
private NodeService nodeService;
|
||||
|
||||
private NodeLocatorService nodeLocatorService;
|
||||
|
||||
public void setNodeService(NodeService nodeService) {
|
||||
this.nodeService = nodeService;
|
||||
}
|
||||
|
||||
public void setNodeLocatorService(NodeLocatorService nodeLocatorService) {
|
||||
this.nodeLocatorService = nodeLocatorService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bogus component execution
|
||||
*/
|
||||
@Override
|
||||
protected void executeInternal() throws Throwable {
|
||||
System.out.println("DemoComponent has been executed");
|
||||
log.debug("Test debug logging. Congratulation your AMP is working");
|
||||
log.info("This is only for information purposed. Better remove me from the log in Production");
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a demo service interaction with Alfresco Foundation API.
|
||||
* This sample method returns the number of child nodes of a certain type
|
||||
* under a certain node.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int childNodesCount(NodeRef nodeRef) {
|
||||
return nodeService.countChildAssocs(nodeRef, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the NodeRef of "Company Home"
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public NodeRef getCompanyHome()
|
||||
|
||||
{
|
||||
return nodeLocatorService.getNode("companyhome", null, null);
|
||||
}
|
||||
}
|
@@ -0,0 +1,43 @@
|
||||
#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;
|
||||
}
|
||||
}
|
@@ -0,0 +1,86 @@
|
||||
#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);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,46 @@
|
||||
# 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
|
@@ -0,0 +1,53 @@
|
||||
<?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>
|
||||
<!-- This disables javascript compilation so that webscripts can be hot reloaded -->
|
||||
<bean id="javaScriptProcessor" class="org.alfresco.repo.jscript.RhinoScriptProcessor" init-method="register">
|
||||
<property name="name">
|
||||
<value>javascript</value>
|
||||
</property>
|
||||
<property name="extension">
|
||||
<value>js</value>
|
||||
</property>
|
||||
<!-- compile javascript and cache compiled scripts -->
|
||||
<property name="compile">
|
||||
<value>false</value>
|
||||
</property>
|
||||
<!-- allow sharing of sealed scopes for performance -->
|
||||
<!-- disable to give each script it's own new scope which can be extended -->
|
||||
<property name="shareSealedScopes">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="scriptService">
|
||||
<ref bean="scriptService"/>
|
||||
</property>
|
||||
<!-- Creates ScriptNodes which require the ServiceRegistry -->
|
||||
<property name="serviceRegistry">
|
||||
<ref bean="ServiceRegistry"/>
|
||||
</property>
|
||||
<property name="storeUrl">
|
||||
<value>${spaces.store}</value>
|
||||
</property>
|
||||
<property name="storePath">
|
||||
<value>${spaces.company_home.childname}</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
</beans>
|
@@ -0,0 +1,23 @@
|
||||
# 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
|
@@ -0,0 +1,99 @@
|
||||
<?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 and it also brings
|
||||
in selenium-grid and selenium. -->
|
||||
<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 selenium as it is already brought in by share-po dependency above -->
|
||||
<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>
|
||||
<!-- 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>
|
@@ -0,0 +1,29 @@
|
||||
#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.5.xsd">
|
||||
|
||||
<!--
|
||||
Define beans related to this Share extension here, such as
|
||||
evaluators and resource bootstrapping.
|
||||
|
||||
Note. Any configuration related to the whole Share.war webapp
|
||||
(i.e. not specific to this share extension) should be
|
||||
placed in the alfresco-allinone/share/src/main/resources/alfresco/web-extension/custom-slingshot-application-context.xml file
|
||||
-->
|
||||
|
||||
<!-- Add module specific messages and labels -->
|
||||
<bean id="${artifactId}.resources"
|
||||
class="org.springframework.extensions.surf.util.ResourceBundleBootstrapComponent">
|
||||
<property name="resourceBundles">
|
||||
<list>
|
||||
<value>alfresco.web-extension.messages.${artifactId}</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -0,0 +1,9 @@
|
||||
# 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
|
||||
#
|
||||
|
||||
|
@@ -0,0 +1,23 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
<extension>
|
||||
<modules>
|
||||
<module>
|
||||
<id>${artifactId} - Example Aikau Widgets</id>
|
||||
<version>1.0</version>
|
||||
<auto-deploy>true</auto-deploy>
|
||||
<configurations>
|
||||
<config evaluator="string-compare" condition="WebFramework" replace="false">
|
||||
<web-framework>
|
||||
<dojo-pages>
|
||||
<packages>
|
||||
<package name="example" location="js/example"/>
|
||||
</packages>
|
||||
</dojo-pages>
|
||||
</web-framework>
|
||||
</config>
|
||||
</configurations>
|
||||
</module>
|
||||
</modules>
|
||||
</extension>
|
@@ -0,0 +1,6 @@
|
||||
<webscript>
|
||||
<shortname>Simple Page</shortname>
|
||||
<description>Simple page definition</description>
|
||||
<family>Share</family>
|
||||
<url>/simple-page</url>
|
||||
</webscript>
|
@@ -0,0 +1 @@
|
||||
<@processJsonModel group="share"/>
|
@@ -0,0 +1,29 @@
|
||||
model.jsonModel = {
|
||||
widgets: [{
|
||||
id: "SET_PAGE_TITLE",
|
||||
name: "alfresco/header/SetTitle",
|
||||
config: {
|
||||
title: "This is a simple page"
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "MY_HORIZONTAL_WIDGET_LAYOUT",
|
||||
name: "alfresco/layout/HorizontalWidgets",
|
||||
config: {
|
||||
widgetWidth: 50,
|
||||
widgets: [
|
||||
{
|
||||
id: "DEMO_SIMPLE_LOGO",
|
||||
name: "alfresco/logo/Logo",
|
||||
config: {
|
||||
logoClasses: "alfresco-logo-only"
|
||||
}
|
||||
},
|
||||
{
|
||||
id: "DEMO_SIMPLE_MSG",
|
||||
name: "example/widgets/TemplateWidget"
|
||||
}
|
||||
]
|
||||
}
|
||||
}]
|
||||
};
|
@@ -0,0 +1,6 @@
|
||||
## If you are overriding out-of-the-box Alfresco web scripts, put these files here
|
||||
## in the correct org.alfresco... package.
|
||||
## If you are defining a new custom web script, add it under
|
||||
## resources/alfresco/web-extension/site-webscripts/{your domain path}.
|
||||
##
|
||||
|
@@ -0,0 +1,14 @@
|
||||
# Custom AMP to WAR location mappings
|
||||
|
||||
#
|
||||
# The following property can be used to include the standard set of mappings.
|
||||
# The contents of this file will override any defaults. The default is
|
||||
# 'true', i.e. the default mappings will be augmented or modified by values in
|
||||
# this file.
|
||||
#
|
||||
include.default=true
|
||||
|
||||
#
|
||||
# Custom mappings. If 'include.default' is false, then this is the complete set.
|
||||
#
|
||||
/web=/
|
@@ -18,12 +18,13 @@
|
||||
# SDK Sample module
|
||||
|
||||
# ==== Beginning of Alfresco required/optional properties ====== #
|
||||
|
||||
module.id=${alfresco.module.id}
|
||||
# NB: These properties are filtered at build time by Maven, single
|
||||
# sourcing from POM properties
|
||||
module.id=${project.artifactId}
|
||||
#module.aliases=myModule-123, my-module
|
||||
module.title=${project.name}
|
||||
module.description=${project.description}
|
||||
module.version=${alfresco.module.version}
|
||||
module.version=${project.version}
|
||||
|
||||
# The following optional properties can be used to prevent the module from being added
|
||||
# to inappropriate versions of the WAR file.
|
@@ -0,0 +1,20 @@
|
||||
define(["dojo/_base/declare",
|
||||
"dijit/_WidgetBase",
|
||||
"alfresco/core/Core",
|
||||
"dijit/_TemplatedMixin",
|
||||
"dojo/text!./templates/TemplateWidget.html"
|
||||
],
|
||||
function(declare, _Widget, Core, _Templated, template) {
|
||||
return declare([_Widget, Core, _Templated], {
|
||||
templateString: template,
|
||||
i18nRequirements: [ {i18nFile: "./i18n/TemplateWidget.properties"} ],
|
||||
cssRequirements: [{cssFile:"./css/TemplateWidget.css"}],
|
||||
|
||||
buildRendering: function example_widgets_TemplateWidget__buildRendering() {
|
||||
this.greeting = this.message('hello-label');
|
||||
|
||||
this.inherited(arguments);
|
||||
|
||||
}
|
||||
});
|
||||
});
|
@@ -0,0 +1,5 @@
|
||||
.my-template-widget {
|
||||
border: 1px #000000 solid;
|
||||
padding: 1em;
|
||||
width: 100px;
|
||||
}
|
@@ -0,0 +1,2 @@
|
||||
hello-label=Hello from i18n!
|
||||
hello-test=New label!
|
@@ -0,0 +1 @@
|
||||
<div class="my-template-widget">${greeting}</div>
|
@@ -0,0 +1,14 @@
|
||||
<!-- 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>
|
@@ -0,0 +1,96 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/*
|
||||
* Copyright (C) 2005-2016 Alfresco Software Limited.
|
||||
* This file is part of Alfresco
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ${package}.demoamp;
|
||||
|
||||
import ${package}.demoamp.po.DemoPage;
|
||||
import org.alfresco.po.share.LoginPage;
|
||||
import org.alfresco.po.AbstractTest;
|
||||
import org.alfresco.po.share.PeopleFinderPage;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.BeforeMethod;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/**
|
||||
* Functional test that demonstrates how to write and
|
||||
* extend an alfresco share page object.
|
||||
* This test shows the interaction with page objects
|
||||
* brought from share-po project along with newly created ones
|
||||
* that are present in the Demo amp.
|
||||
*
|
||||
* @author Michael Suzuki
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class DemoPageTestIT extends AbstractTest {
|
||||
DemoPage page;
|
||||
|
||||
@BeforeClass(groups = {"alfresco-one"})
|
||||
public void prepare() throws Exception {
|
||||
// Navigate to share, which will redirect to Login page
|
||||
driver.navigate().to(shareUrl + "/page");
|
||||
|
||||
// Resolve/Bind current page to LoginPage object
|
||||
LoginPage loginPage = resolvePage(driver).render();
|
||||
loginPage.loginAs(username, password);
|
||||
}
|
||||
|
||||
@BeforeMethod
|
||||
public void loadPage() {
|
||||
// Goto demo page
|
||||
driver.navigate().to(shareUrl + "/page/hdp/ws/simple-page");
|
||||
|
||||
// We need to instantiate the page like this as it is not yet in
|
||||
// the factory known list of pages
|
||||
page = factoryPage.instantiatePage(driver, DemoPage.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findLogo() {
|
||||
Assert.assertTrue(page.isSimpleLogoDisplayed());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void messageIsDisplayed() {
|
||||
page.render();
|
||||
String msg = page.getMessage();
|
||||
Assert.assertNotNull(msg);
|
||||
Assert.assertEquals("Hello from i18n!", msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Example of test reusing methods in abstract share page objects.
|
||||
*/
|
||||
@Test
|
||||
public void titleDisplayed() {
|
||||
// Invoke render when ready to use page object.
|
||||
page.render();
|
||||
Assert.assertNotNull(page);
|
||||
Assert.assertTrue(page.getTitle().contains("This is a simple page"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that show how we are able to reuse share page objects
|
||||
* objects in particular the navigation object.
|
||||
*/
|
||||
@Test
|
||||
public void navigate() {
|
||||
Assert.assertNotNull(page.getNav());
|
||||
PeopleFinderPage peopleFinderPage = page.getNav().selectPeople().render();
|
||||
Assert.assertNotNull(peopleFinderPage);
|
||||
}
|
||||
}
|
@@ -0,0 +1,70 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
/*
|
||||
* Copyright (C) 2005-2016 Alfresco Software Limited.
|
||||
* This file is part of Alfresco
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ${package}.demoamp.po;
|
||||
|
||||
import org.alfresco.po.share.SharePage;
|
||||
import org.alfresco.po.RenderTime;
|
||||
import org.openqa.selenium.NoSuchElementException;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
/**
|
||||
* Demo of simple share page object that encapsulates the demo of simple page.
|
||||
*
|
||||
* @author Michael Suzuki
|
||||
* @since 2.0.1
|
||||
*/
|
||||
public class DemoPage extends SharePage {
|
||||
@FindBy(id="DEMO_SIMPLE_LOGO")
|
||||
WebElement logo;
|
||||
|
||||
@FindBy(id="DEMO_SIMPLE_MSG")
|
||||
WebElement msg;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public DemoPage render(RenderTime timer) {
|
||||
|
||||
// Wait for logo and message to display, then consider page rendered
|
||||
while (true) {
|
||||
timer.start();
|
||||
try {
|
||||
if (isSimpleLogoDisplayed() && isMessageDisplayed()) {
|
||||
break;
|
||||
}
|
||||
} catch (NoSuchElementException nse) {
|
||||
} finally {
|
||||
timer.end();
|
||||
}
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isSimpleLogoDisplayed() {
|
||||
return isDisplayed(logo);
|
||||
}
|
||||
|
||||
public boolean isMessageDisplayed() {
|
||||
return isDisplayed(msg);
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return msg.getText();
|
||||
}
|
||||
}
|
@@ -0,0 +1,12 @@
|
||||
#set($symbol_pound='#')
|
||||
#set($symbol_dollar='$')
|
||||
#set($symbol_escape='\' )
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
|
||||
<suite name="Custom Share AMP Page Object Tests" parallel="false">
|
||||
<test name="DemoPageTest">
|
||||
<classes>
|
||||
<class name="${package}.demoamp.DemoPageTestIT"/>
|
||||
</classes>
|
||||
</test>
|
||||
</suite>
|
@@ -0,0 +1,138 @@
|
||||
<?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>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
<name>Alfresco Repository and Share Quickstart with database and an embedded Tomcat runner.</name>
|
||||
<description>This All-in-One project allows to manage all the components involved in Alfresco development (Repo, Share, Solr4, AMPs) in one project
|
||||
</description>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-parent</artifactId>
|
||||
<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>
|
||||
<!-- The following are default values for data location, Alfresco Community version, and Records Management Module version.
|
||||
Uncomment if you need to change (Note. current default version for Enterprise edition is @@alfresco.enterprise.default.version@@)
|
||||
<alfresco.version>@@alfresco.community.default.version@@</alfresco.version>
|
||||
<alfresco.rm.version>@@alfresco.rm.version@@</alfresco.rm.version>
|
||||
<alfresco.data.location>/absolute/path/to/alf_data_dev</alfresco.data.location> -->
|
||||
|
||||
<!-- This control the root logging level for all apps uncomment and change, defaults to WARN
|
||||
<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
|
||||
for embedded run, defaults to the 'local' environment. See SDK Parent POM for more info.
|
||||
<env>local</env>
|
||||
-->
|
||||
|
||||
<!-- The Alfresco Share web application is accessible via this URL -->
|
||||
<share.client.url>http://localhost:8080/share</share.client.url>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- If we are running tests then make the H2 Scripts available.
|
||||
Note. tests are skipped when you are running -Prun -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>h2scripts</classifier>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>*</groupId>
|
||||
<artifactId>*</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<!-- Here we realize the connection with the Alfresco selected platform (e.g.version and edition) -->
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<!-- This will import the dependencyManagement for all artifacts in the selected Alfresco plaftorm
|
||||
(see http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies)
|
||||
NOTE: You still need to define dependencies in your POM, but you can omit version as it's enforced by this dependencyManagement.
|
||||
NOTE: It defaults to the latest version this SDK pom has been tested with, but alfresco version can/should be overridden in your project's pom
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-platform-distribution</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- Compress JavaScript files and store as *-min.js -->
|
||||
<plugin>
|
||||
<groupId>net.alchim31.maven</groupId>
|
||||
<artifactId>yuicompressor-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.alfresco.maven.plugin</groupId>
|
||||
<artifactId>alfresco-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<!-- Invoke your build with -Prun to run the multimodule project and enable rapid dev mode in your IDE.
|
||||
See 'run' profile in the sub modules pom.xml for further behavioral details.
|
||||
-->
|
||||
<id>run</id>
|
||||
<properties>
|
||||
<!-- While running in rapid dev mode with -Prun, we don't want amp web resources
|
||||
to be added to the war, so we can load them directly from the AMP project (see
|
||||
runner/tomcat/context-*.xml for more details) -->
|
||||
<maven.alfresco.includeWebResources>false</maven.alfresco.includeWebResources>
|
||||
</properties>
|
||||
</profile>
|
||||
|
||||
<!-- if we're on a unix machine, chmod run.sh to be executable -->
|
||||
<profile>
|
||||
<id>chmod</id>
|
||||
<activation><os><family>unix</family></os></activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>1.2.1</version>
|
||||
<inherited>false</inherited>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>chmod</id>
|
||||
<phase>validate</phase>
|
||||
<goals><goal>exec</goal></goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<executable>chmod</executable>
|
||||
<arguments>
|
||||
<argument>+x</argument>
|
||||
<argument>${basedir}/run.sh</argument>
|
||||
</arguments>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
@@ -0,0 +1,185 @@
|
||||
<?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>${rootArtifactId}-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. -->
|
||||
<!-- Set alfresco.rm.version in parent pom to appropriate version for 5.1
|
||||
<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>${rootArtifactId}-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>
|
||||
<!-- Include remote JUnit test lib to allow remote unit testing and start remote JUnit runner. -->
|
||||
<dependency>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-rad</artifactId>
|
||||
<version>${maven.alfresco.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
@@ -0,0 +1,78 @@
|
||||
# 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.
|
||||
# RUN TIME PROPERTIES
|
||||
# -------------------
|
||||
|
||||
########################################################################################################################
|
||||
# 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}
|
||||
|
||||
# Alfresco Repo Webapp (alfresco.war) context, ports etc
|
||||
alfresco.context=alfresco
|
||||
alfresco.host=localhost
|
||||
alfresco.port=8080
|
||||
alfresco.protocol=http
|
||||
|
||||
# Alfresco Share Webapp (share.war) context, ports etc
|
||||
share.context=share
|
||||
share.host=localhost
|
||||
share.port=8080
|
||||
share.protocol=http
|
||||
|
||||
# Use Solr4 as that is used by default with Alfresco 5
|
||||
index.subsystem.name=solr4
|
||||
solr.host=localhost
|
||||
solr.port=8080
|
||||
solr.secureComms=none
|
||||
|
||||
# Setting Solr backup for the future. Tweak this if needed (ideally in other env properties files)
|
||||
solr.backup.alfresco.cronExpression=0 30 2 * * ? 2050
|
||||
solr.backup.archive.cronExpression=0 30 3 * * ? 2050
|
||||
solr.backup.alfresco.remoteBackupLocation=${dir.root}/solr4Backup/alfresco
|
||||
solr.backup.archive.remoteBackupLocation=${dir.root}/solr4Backup/archive
|
||||
|
||||
# We are in the local DEV properties file, no need for Solr backup
|
||||
solr.backup.alfresco.numberToKeep=0
|
||||
solr.backup.archive.numberToKeep=0
|
||||
|
||||
# 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
|
||||
# If you want to enable them (and so full WQS functionality), please also set index.subsystem.name=lucene
|
||||
wcmqs.dynamicCollectionProcessor.schedule=0 30 2 * * ? 2060
|
||||
wcmqs.feedbackProcessor.schedule=0 40 2 * * ? 2060
|
||||
wcmqs.publishQueueProcessor.schedule=0 50 2 * * ? 2060
|
||||
|
||||
# Fail or not when there are node integrity checker errors
|
||||
integrity.failOnError=true
|
||||
|
||||
# Database connection properties
|
||||
db.driver=${alfresco.db.datasource.class}
|
||||
db.url=${alfresco.db.url}
|
||||
db.username=${alfresco.db.username}
|
||||
db.password=${alfresco.db.password}
|
||||
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
|
@@ -0,0 +1,6 @@
|
||||
#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}
|
@@ -0,0 +1,8 @@
|
||||
@ECHO OFF
|
||||
|
||||
IF "%MAVEN_OPTS%" == "" (
|
||||
ECHO The environment variable 'MAVEN_OPTS' is not set, setting it for you
|
||||
SET MAVEN_OPTS=-Xms256m -Xmx2G -XX:PermSize=300m
|
||||
)
|
||||
ECHO MAVEN_OPTS is set to '%MAVEN_OPTS%'
|
||||
mvn clean install -Prun
|
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
if [[ -z ${MAVEN_OPTS} ]]; then
|
||||
echo "The environment variable 'MAVEN_OPTS' is not set, setting it for you";
|
||||
MAVEN_OPTS="-Xms256m -Xmx1524m -XX:PermSize=300m"
|
||||
fi
|
||||
echo "MAVEN_OPTS is set to '$MAVEN_OPTS'";
|
||||
mvn clean install -Prun
|
@@ -0,0 +1,468 @@
|
||||
<?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>
|
||||
|
||||
<properties>
|
||||
<!-- Bring in newer Spring with support for annotations, used for Page Object tests -->
|
||||
<spring.version>4.1.6.RELEASE</spring.version>
|
||||
</properties>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>run</id>
|
||||
|
||||
<!-- TODO: figure out a way to define these properties in a parent POM, they are now also duplicated
|
||||
in the solr-config/pom.xml -->
|
||||
<properties>
|
||||
<alfresco.solr.dir>${alfresco.data.location}/solr4</alfresco.solr.dir>
|
||||
<alfresco.solr.home.dir>${alfresco.solr.dir}/config</alfresco.solr.home.dir>
|
||||
<alfresco.solr.data.dir>${alfresco.solr.dir}/data</alfresco.solr.data.dir>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- Copy and filter webapp context files - output dir is runner/target/contexts -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-tomcat-resources</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/contexts</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>tomcat</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- Run Tomcat 7 embedded with Alfresco.war and Share.war contexts.
|
||||
The solr4.war is fetched directly from the Maven repo, it is not built like the other WARs.
|
||||
Plugin version is picked up from alfresco-sdk-parent.pom pluginManagement definition,
|
||||
which also brings in the H2 database lib -->
|
||||
<plugin>
|
||||
<groupId>org.apache.tomcat.maven</groupId>
|
||||
<artifactId>tomcat7-maven-plugin</artifactId>
|
||||
<dependencies>
|
||||
<!-- Bring in the H2 Database scripts needed when running embedded, they are now
|
||||
available from the standard generated artifacts, no longer needed to be picked
|
||||
up from the alfresco-rad project -->
|
||||
<dependency>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>h2scripts</classifier>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>*</groupId>
|
||||
<artifactId>*</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- Explicitly bring in the Plexus Archiver so assembly goes quicker -->
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-archiver</artifactId>
|
||||
<version>2.3</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<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>
|
||||
<!-- Encode url in UTF-8 for proper character handling -->
|
||||
<uriEncoding>UTF-8</uriEncoding>
|
||||
<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>
|
||||
<webapp>
|
||||
<groupId>org.alfresco</groupId>
|
||||
<artifactId>api-explorer</artifactId>
|
||||
<version>${maven.alfresco.api.explorer.version}</version>
|
||||
<contextPath>/api-explorer</contextPath>
|
||||
<type>war</type>
|
||||
<asWebapp>true</asWebapp>
|
||||
</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 our functional tests.
|
||||
It contains page objects such as LoginPage and it also brings
|
||||
in selenium-grid and selenium. -->
|
||||
<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 selenium as it is already brought in by share-po dependency above -->
|
||||
<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>
|
||||
<!-- 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>
|
||||
<!-- Bring in newer selenium version if required
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>2.48.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
-->
|
||||
<!-- Need to bring in a newer Spring that supports annotations, Alfresco brings in older one -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-core</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-beans</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-aspects</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</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}/${rootArtifactId}-share-amp/target/test-classes/testng.xml</suiteXmlFile>
|
||||
</suiteXmlFiles>
|
||||
<testClassesDirectory>${project.parent.basedir}/${rootArtifactId}-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.
|
||||
It contains page objects such as LoginPage and it also brings
|
||||
in selenium-grid and selenium. -->
|
||||
<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 selenium as it is already brought in by share-po dependency above -->
|
||||
<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>
|
||||
<!-- 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>
|
||||
<!-- Bring in newer selenium version if required
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>2.48.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
-->
|
||||
<!-- Need to bring in a newer Spring that supports annotations, Alfresco brings in older one -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-core</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-beans</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-aspects</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
|
||||
</profiles>
|
||||
</project>
|
@@ -0,0 +1,25 @@
|
||||
<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="/api-explorer">Alfresco REST API Explorer</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>
|
@@ -0,0 +1,77 @@
|
||||
<?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>
|
||||
<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>
|
@@ -0,0 +1,41 @@
|
||||
<?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
|
||||
=================================================================================================================-->
|
||||
|
||||
<!-- Setup a virtual context for the /alfresco webapp.
|
||||
The run profile uses the tomcat7-maven-plugin to kick off the webapp and it is configured with the
|
||||
webapp resources and path (i.e. /alfresco).
|
||||
|
||||
Note. Alfresco.war 5.0 does not have a webapp, just an index page, the Alfresco Explorer webapp is no longer available.
|
||||
-->
|
||||
<Context>
|
||||
<Resources className="org.apache.naming.resources.VirtualDirContext"
|
||||
extraResourcePaths="/=${project.parent.basedir}/${rootArtifactId}-repo-amp/target/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}/${rootArtifactId}-repo-amp/target/amp/web,/=${project.parent.basedir}/component-a-repo/target/amp/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/amp/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}/${rootArtifactId}-repo-amp/target/classes;
|
||||
${project.parent.basedir}/${rootArtifactId}-repo-amp/target/amp/config;
|
||||
${project.parent.basedir}/${rootArtifactId}-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>
|
||||
|
||||
|
||||
|
@@ -0,0 +1,41 @@
|
||||
<?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
|
||||
=================================================================================================================-->
|
||||
|
||||
<!-- Setup a virtual context for the /share webapp.
|
||||
The run profile uses the tomcat7-maven-plugin to kick off the webapp and it is configured with the
|
||||
webapp resources and path (i.e. /share). -->
|
||||
<Context>
|
||||
<Resources className="org.apache.naming.resources.VirtualDirContext"
|
||||
extraResourcePaths="/=${project.parent.basedir}/${rootArtifactId}-share-amp/target/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}/${rootArtifactId}-share-amp/target/amp/web,/=${project.parent.basedir}/component-a-share/target/amp/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) ${rootArtifactId}-share-amp/target/classes
|
||||
2) ${rootArtifactId}-share-amp/target/amp/config
|
||||
3) ${rootArtifactId}-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}/${rootArtifactId}-share-amp/target/classes;
|
||||
${project.parent.basedir}/${rootArtifactId}-share-amp/target/amp/config;
|
||||
${project.parent.basedir}/${rootArtifactId}-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>
|
||||
|
||||
|
||||
|
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Context>
|
||||
<Environment name="solr/home" type="java.lang.String" value="${alfresco.solr.home.dir}/" override="true"/>
|
||||
<Environment name="solr/model/dir" type="java.lang.String" value="${alfresco.solr.home.dir}/alfrescoModels/" override="true"/>
|
||||
<Environment name="solr/content/dir" type="java.lang.String" value="${alfresco.solr.data.dir}/content/" override="true"/>
|
||||
|
||||
<!-- Pick up static resource files from any Solr extensions, being it a JAR or an AMP,
|
||||
by default there are no extensions, just the standard Solr webapp files.
|
||||
(this should not include docBase)-->
|
||||
<Resources className="org.apache.naming.resources.VirtualDirContext"
|
||||
extraResourcePaths="/=${project.parent.basedir}/runner/target/tomcat/webapps/alfresco-solr4" />
|
||||
|
||||
<!-- Configure where the Solr (solr4.war) web application can load classes, test classes, and config -->
|
||||
<!-- Solr is not customized by default so just points to standard Solr classes. -->
|
||||
<!-- Setup the virtual class path like this:
|
||||
1) target/classes
|
||||
3) target/test-classes
|
||||
|
||||
This way mvn compile can be invoked and all changes will be picked up-->
|
||||
|
||||
<Loader className="org.apache.catalina.loader.VirtualWebappLoader"
|
||||
searchVirtualFirst="true"
|
||||
virtualClasspath="${project.parent.basedir}/runner/target/tomcat/webapps/alfresco-solr4/WEB-INF/classes" />
|
||||
|
||||
<!-- Load from all directories, not just when the META-INF directory is found in exploded JAR -->
|
||||
<JarScanner scanAllDirectories="true" />
|
||||
</Context>
|
@@ -0,0 +1,115 @@
|
||||
<?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 WAR Aggregator</name>
|
||||
<packaging>war</packaging>
|
||||
<description>Alfresco Share aggregator, installs your Share AMPs in the Share WAR for aggregation and easy deployment purposes</description>
|
||||
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<!-- Used in share-config-custom.xml when testing.
|
||||
By default points to standard location (local) of Alfresco Repository -->
|
||||
<alfresco.repo.url>http://localhost:8080/alfresco</alfresco.repo.url>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>${alfresco.share.artifactId}</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<!-- Demonstrating the dependency / installation of the share AMP developed in the 'share-amp' module -->
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}-share-amp</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>amp</type>
|
||||
</dependency>
|
||||
<!-- Uncomment if you are using RM (Records Management) module -->
|
||||
<!-- Make sure to set the correct version for 5.1 with alfresco.rm.version property in parent POM
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-rm-share</artifactId>
|
||||
<version>${alfresco.rm.version}</version>
|
||||
<type>amp</type>
|
||||
</dependency>
|
||||
-->
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<!-- Bring in the Maven Dependency plugin so we can unpack and store the MANIFEST.MF file.
|
||||
It will be used in the custom Share WAR that is produced by the WAR plugin,
|
||||
it otherwise gets overwritten by the overlay process. -->
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>unpack-dependencies</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<includeTypes>war</includeTypes>
|
||||
<includeGroupIds>org.alfresco</includeGroupIds>
|
||||
<includeArtifactIds>share</includeArtifactIds>
|
||||
<includes>META-INF/MANIFEST.MF</includes>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<!-- Bring in the MANIFEST.MF file from the original share.war, it contains version information
|
||||
that is needed for it to operate properly -->
|
||||
<archive>
|
||||
<addMavenDescriptor>false</addMavenDescriptor>
|
||||
<manifestFile>${project.build.directory}/dependency/META-INF/MANIFEST.MF</manifestFile>
|
||||
</archive>
|
||||
<!-- 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 Share WAR -->
|
||||
<overlay>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>${alfresco.share.artifactId}</artifactId>
|
||||
<type>war</type>
|
||||
<!-- To allow inclusion of META-INF -->
|
||||
<excludes/>
|
||||
</overlay>
|
||||
<!-- Add / sort your AMPs here -->
|
||||
<overlay>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}-share-amp</artifactId>
|
||||
<type>amp</type>
|
||||
</overlay>
|
||||
<!-- Uncomment if you are using RM module -->
|
||||
<!--
|
||||
<overlay>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-rm-share</artifactId>
|
||||
<type>amp</type>
|
||||
</overlay>
|
||||
-->
|
||||
</overlays>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@@ -0,0 +1,119 @@
|
||||
<!-- Alfresco 5.0.d custom-slingshot-application-context.xml sample
|
||||
|
||||
Note. Any configuration related to a specific Share extension
|
||||
(such as evaluator bean and message resource bean) should be
|
||||
placed in the specific extension config file, such as for example
|
||||
alfresco-allinone/share-amp/src/main/amp/config/alfresco/web-extension/custom-slingshot-application-context.xml
|
||||
-->
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:hz="http://www.hazelcast.com/schema/spring"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
||||
http://www.hazelcast.com/schema/spring
|
||||
http://www.hazelcast.com/schema/spring/hazelcast-spring-2.4.xsd">
|
||||
|
||||
<!--
|
||||
Hazelcast distributed messaging configuration - Share web-tier cluster config (3.4.8 and 4.0.1)
|
||||
- see http://www.hazelcast.com/docs.jsp
|
||||
- and specifically http://www.hazelcast.com/docs/1.9.4/manual/single_html/#SpringIntegration
|
||||
-->
|
||||
<!-- Configure cluster to use either Multicast or direct TCP-IP messaging - multicast is default -->
|
||||
<!-- Optionally specify network interfaces - server machines likely to have more than one interface -->
|
||||
<!-- The messaging topic - the "name" is also used by the persister config below -->
|
||||
<!--
|
||||
<hz:topic id="topic" instance-ref="webframework.cluster.slingshot" name="slingshot-topic"/>
|
||||
<hz:hazelcast id="webframework.cluster.slingshot">
|
||||
<hz:config>
|
||||
<hz:group name="slingshot" password="alfresco"/>
|
||||
<hz:network port="5801" port-auto-increment="true">
|
||||
<hz:join>
|
||||
<hz:multicast enabled="true"
|
||||
multicast-group="224.2.2.5"
|
||||
multicast-port="54327"/>
|
||||
<hz:tcp-ip enabled="false">
|
||||
<hz:members></hz:members>
|
||||
</hz:tcp-ip>
|
||||
</hz:join>
|
||||
<hz:interfaces enabled="false">
|
||||
<hz:interface>192.168.1.*</hz:interface>
|
||||
</hz:interfaces>
|
||||
</hz:network>
|
||||
</hz:config>
|
||||
</hz:hazelcast>
|
||||
|
||||
<bean id="webframework.slingshot.persister.remote" class="org.alfresco.web.site.ClusterAwarePathStoreObjectPersister" parent="webframework.sitedata.persister.abstract">
|
||||
<property name="store" ref="webframework.webapp.store.remote" />
|
||||
<property name="pathPrefix"><value>alfresco/site-data/${objectTypeIds}</value></property>
|
||||
<property name="hazelcastInstance" ref="webframework.cluster.slingshot" />
|
||||
<property name="hazelcastTopicName"><value>slingshot-topic</value></property>
|
||||
</bean>
|
||||
|
||||
<bean id="webframework.factory.requestcontext.servlet" class="org.alfresco.web.site.ClusterAwareRequestContextFactory" parent="webframework.factory.base">
|
||||
<property name="linkBuilderFactory" ref="webframework.factory.linkbuilder.servlet" />
|
||||
<property name="extensibilityModuleHandler" ref="webscripts.extensibility.handler" />
|
||||
<property name="dependencyHandler" ref="dependency.handler" />
|
||||
<property name="clusterObjectPersister" ref="webframework.slingshot.persister.remote" />
|
||||
</bean>
|
||||
-->
|
||||
|
||||
|
||||
<!-- Legacy Share web-tier cluster config (3.4.7 and 4.0.0) -->
|
||||
<!--
|
||||
<bean id="webframework.slingshot.persister.remote" class="org.springframework.extensions.surf.persister.PathStoreObjectPersister" parent="webframework.sitedata.persister.abstract">
|
||||
<property name="store" ref="webframework.webapp.store.remote" />
|
||||
<property name="pathPrefix"><value>alfresco/site-data/${objectTypeIds}</value></property>
|
||||
<property name="noncachableObjectTypes">
|
||||
<set>
|
||||
<value>page</value>
|
||||
<value>component</value>
|
||||
<value>configuration</value>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
-->
|
||||
|
||||
|
||||
<!-- Override WebScripts searchpath - to include remote store -->
|
||||
<!-- This enables remote component load via a central Alfresco server -->
|
||||
<!--
|
||||
<bean id="webframework.webscripts.store.alfresco.remote" parent="webframework.store.remote.abstract">
|
||||
<property name="path"><value>alfresco/site-webscripts</value></property>
|
||||
</bean>
|
||||
<bean id="webframework.webscripts.searchpath" class="org.springframework.extensions.webscripts.SearchPath">
|
||||
<property name="searchPath">
|
||||
<list>
|
||||
<ref bean="webframework.webscripts.store.alfresco.remote" />
|
||||
<ref bean="webframework.webscripts.store.alfresco.custom" />
|
||||
<ref bean="webframework.webscripts.store.alfresco.classpath" />
|
||||
<ref bean="webframework.webscripts.store.classpath" />
|
||||
<ref bean="webscripts.store.alfresco" />
|
||||
<ref bean="webscripts.store" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
-->
|
||||
|
||||
<!-- Override Templates and Scripts searchpath - to include remote store -->
|
||||
<!-- This enables remote component load via a central Alfresco server -->
|
||||
<!--
|
||||
<bean id="webframework.templates.store.alfresco.remote" parent="webframework.store.remote.abstract">
|
||||
<property name="path"><value>alfresco/templates</value></property>
|
||||
</bean>
|
||||
<bean id="webframework.templates.searchpath" class="org.springframework.extensions.webscripts.SearchPath">
|
||||
<property name="searchPath">
|
||||
<list>
|
||||
<ref bean="webframework.templates.store.alfresco.remote" />
|
||||
<ref bean="webframework.templates.store.alfresco.custom" />
|
||||
<ref bean="webframework.webscripts.store.alfresco.custom" />
|
||||
<ref bean="webframework.templates.store.alfresco.classpath" />
|
||||
<ref bean="webframework.webscripts.store.alfresco.classpath" />
|
||||
<ref bean="webframework.templates.store.classpath" />
|
||||
<ref bean="webframework.webscripts.store.classpath" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
-->
|
||||
|
||||
</beans>
|
@@ -1,17 +1,12 @@
|
||||
<alfresco-config>
|
||||
<!-- Alfresco 5.0.d share-config-custom.xml sample.
|
||||
|
||||
<config evaluator="string-compare" condition="Server">
|
||||
<server>
|
||||
<!--
|
||||
Enable and adjust the following settings to allow for external
|
||||
access URLs to the WebScript Framework - to return an externally
|
||||
accessable address for absolute url generation.
|
||||
-->
|
||||
<scheme>${share.server.scheme}</scheme>
|
||||
<hostname>${share.server.name}</hostname>
|
||||
<port>${share.server.port}</port>
|
||||
</server>
|
||||
</config>
|
||||
Note:
|
||||
Any configuration related to a specific Share AMP extension
|
||||
(such as doclib action config and form config)
|
||||
should be added to that extension's custom config
|
||||
(i.e. into the share-amp/src/main/resources/META-INF/share-config-custom.xml)
|
||||
-->
|
||||
<alfresco-config>
|
||||
|
||||
<!-- Global config section -->
|
||||
<config replace="true">
|
||||
@@ -38,11 +33,73 @@
|
||||
-->
|
||||
<autowire>
|
||||
<!-- Pick the mode: "production" or "development" -->
|
||||
<mode>${surf.development.mode}</mode>
|
||||
<mode>production</mode>
|
||||
</autowire>
|
||||
|
||||
<!-- Allows extension modules with <auto-deploy> set to true to be automatically deployed -->
|
||||
<module-deployment>
|
||||
<mode>manual</mode>
|
||||
<enable-auto-deploy-modules>true</enable-auto-deploy-modules>
|
||||
</module-deployment>
|
||||
</web-framework>
|
||||
</config>
|
||||
|
||||
<!-- Disable the CSRF Token Filter -->
|
||||
<!--
|
||||
<config evaluator="string-compare" condition="CSRFPolicy" replace="true">
|
||||
<filter/>
|
||||
</config>
|
||||
-->
|
||||
|
||||
<!--
|
||||
To run the CSRF Token Filter behind 1 or more proxies that do not rewrite the Origin or Referere headers:
|
||||
|
||||
1. Copy the "CSRFPolicy" default config in share-security-config.xml and paste it into this file.
|
||||
2. Replace the old config by setting the <config> element's "replace" attribute to "true" like below:
|
||||
<config evaluator="string-compare" condition="CSRFPolicy" replace="true">
|
||||
3. To every <action name="assertReferer"> element add the following child element
|
||||
<param name="referer">http://www.proxy1.com/.*|http://www.proxy2.com/.*</param>
|
||||
4. To every <action name="assertOrigin"> element add the following child element
|
||||
<param name="origin">http://www.proxy1.com|http://www.proxy2.com</param>
|
||||
-->
|
||||
|
||||
<!--
|
||||
Remove the default wildcard setting and use instead a strict whitelist of the only domains that shall be allowed
|
||||
to be used inside iframes (i.e. in the WebView dashlet on the dashboards)
|
||||
-->
|
||||
<!--
|
||||
<config evaluator="string-compare" condition="IFramePolicy" replace="true">
|
||||
<cross-domain>
|
||||
<url>http://www.trusted-domain-1.com/</url>
|
||||
<url>http://www.trusted-domain-2.com/</url>
|
||||
</cross-domain>
|
||||
</config>
|
||||
-->
|
||||
|
||||
<!-- Turn off header that stops Share from being displayed in iframes on pages from other domains -->
|
||||
<!--
|
||||
<config evaluator="string-compare" condition="SecurityHeadersPolicy">
|
||||
<headers>
|
||||
<header>
|
||||
<name>X-Frame-Options</name>
|
||||
<enabled>false</enabled>
|
||||
</header>
|
||||
</headers>
|
||||
</config>
|
||||
-->
|
||||
|
||||
<!-- Prevent browser communication over HTTP (for HTTPS servers) -->
|
||||
<!--
|
||||
<config evaluator="string-compare" condition="SecurityHeadersPolicy">
|
||||
<headers>
|
||||
<header>
|
||||
<name>Strict-Transport-Security</name>
|
||||
<value>max-age=31536000</value>
|
||||
</header>
|
||||
</headers>
|
||||
</config>
|
||||
-->
|
||||
|
||||
<config evaluator="string-compare" condition="Replication">
|
||||
<share-urls>
|
||||
<!--
|
||||
@@ -69,7 +126,12 @@
|
||||
<!--
|
||||
Optionally limit the number of folders shown in treeview throughout Share.
|
||||
-->
|
||||
<maximum-folder-count>-1</maximum-folder-count>
|
||||
<maximum-folder-count>1000</maximum-folder-count>
|
||||
|
||||
<!--
|
||||
Default timeout in milliseconds for folder Tree component to recieve response from Repository
|
||||
-->
|
||||
<timeout>7000</timeout>
|
||||
</tree>
|
||||
|
||||
<!--
|
||||
@@ -92,9 +154,11 @@
|
||||
<aspect name="emailserver:aliasable" />
|
||||
<aspect name="cm:taggable" />
|
||||
<aspect name="app:inlineeditable" />
|
||||
<aspect name="gd:googleEditable" />
|
||||
<aspect name="cm:geographic" />
|
||||
<aspect name="exif:exif" />
|
||||
<aspect name="audio:audio" />
|
||||
<aspect name="cm:indexControl" />
|
||||
<aspect name="dp:restrictable" />
|
||||
</visible>
|
||||
|
||||
<!-- Aspects that a user can add. Same as "visible" if left empty -->
|
||||
@@ -123,13 +187,17 @@
|
||||
|
||||
<type name="cm:folder">
|
||||
</type>
|
||||
|
||||
<type name="trx:transferTarget">
|
||||
<subtype name="trx:fileTransferTarget" />
|
||||
</type>
|
||||
</types>
|
||||
|
||||
<!--
|
||||
If set, will present a WebDAV link for the current item on the Document and Folder details pages.
|
||||
Also used to generate the "View in Alfresco Explorer" action for folders.
|
||||
-->
|
||||
<repository-url>${alfresco.server.scheme}://${alfresco.server.name}:${alfresco.server.port}/alfresco</repository-url>
|
||||
<repository-url>http://localhost:8080/alfresco</repository-url>
|
||||
|
||||
<!--
|
||||
Google Docs™ integration
|
||||
@@ -145,8 +213,8 @@
|
||||
The I18N label is created from the "type" attribute, e.g. google-docs.doc=Google Docs™ Document
|
||||
-->
|
||||
<creatable-types>
|
||||
<creatable type="doc">application/msword</creatable>
|
||||
<creatable type="xls">application/vnd.ms-excel</creatable>
|
||||
<creatable type="doc">application/vnd.openxmlformats-officedocument.wordprocessingml.document</creatable>
|
||||
<creatable type="xls">application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</creatable>
|
||||
<creatable type="ppt">application/vnd.ms-powerpoint</creatable>
|
||||
</creatable-types>
|
||||
</google-docs>
|
||||
@@ -215,14 +283,19 @@
|
||||
This is a relatively expensive operation, so should be set to "false" for Repositories with broad folder structures.
|
||||
-->
|
||||
<evaluate-child-folders>false</evaluate-child-folders>
|
||||
|
||||
|
||||
<!--
|
||||
Optionally limit the number of folders shown in treeview throughout Share.
|
||||
-->
|
||||
<maximum-folder-count>500</maximum-folder-count>
|
||||
</tree>
|
||||
|
||||
<!--
|
||||
Whether the link to the Repository Library appears in the header component or not.
|
||||
-->
|
||||
<visible>true</visible>
|
||||
</config>
|
||||
|
||||
|
||||
<!-- Kerberos settings -->
|
||||
<!-- To enable kerberos rename this condition to "Kerberos" -->
|
||||
<config evaluator="string-compare" condition="KerberosDisabled" replace="true">
|
||||
@@ -230,7 +303,7 @@
|
||||
<!--
|
||||
Password for HTTP service account.
|
||||
The account name *must* be built from the HTTP server name, in the format :
|
||||
HTTP/<server_name>[at]<realm>
|
||||
HTTP/<server_name>@<realm>
|
||||
(NB this is because the web browser requests an ST for the
|
||||
HTTP/<server_name> principal in the current realm, so if we're to decode
|
||||
that ST, it has to match.)
|
||||
@@ -249,11 +322,21 @@
|
||||
JAAS login configuration entry name.
|
||||
-->
|
||||
<config-entry>ShareHTTP</config-entry>
|
||||
<!--
|
||||
A Boolean which when true strips the @domain sufix from Kerberos authenticated usernames.
|
||||
Use together with stripUsernameSuffix property in alfresco-global.properties file.
|
||||
-->
|
||||
<stripUserNameSuffix>true</stripUserNameSuffix>
|
||||
</kerberos>
|
||||
</config>
|
||||
|
||||
<!-- example port config used to access remote Alfresco server (default is 8080) -->
|
||||
|
||||
<!-- Uncomment and modify the URL to Activiti Admin Console if required. -->
|
||||
<!--
|
||||
<config evaluator="string-compare" condition="ActivitiAdmin" replace="true">
|
||||
<activiti-admin-url>http://localhost:8080/alfresco/activiti-admin</activiti-admin-url>
|
||||
</config>
|
||||
-->
|
||||
|
||||
<config evaluator="string-compare" condition="Remote">
|
||||
<remote>
|
||||
<endpoint>
|
||||
@@ -261,7 +344,7 @@
|
||||
<name>Alfresco - unauthenticated access</name>
|
||||
<description>Access to Alfresco Repository WebScripts that do not require authentication</description>
|
||||
<connector-id>alfresco</connector-id>
|
||||
<endpoint-url>${alfresco.server.scheme}://${alfresco.server.name}:${alfresco.server.port}/alfresco/s</endpoint-url>
|
||||
<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
|
||||
<identity>none</identity>
|
||||
</endpoint>
|
||||
|
||||
@@ -270,7 +353,7 @@
|
||||
<name>Alfresco - user access</name>
|
||||
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
|
||||
<connector-id>alfresco</connector-id>
|
||||
<endpoint-url>${alfresco.server.scheme}://${alfresco.server.name}:${alfresco.server.port}/alfresco/s</endpoint-url>
|
||||
<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
|
||||
@@ -279,15 +362,25 @@
|
||||
<name>Alfresco Feed</name>
|
||||
<description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
|
||||
<connector-id>http</connector-id>
|
||||
<endpoint-url>${alfresco.server.scheme}://${alfresco.server.name}:${alfresco.server.port}/alfresco/s</endpoint-url>
|
||||
<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
|
||||
<basic-auth>true</basic-auth>
|
||||
<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://localhost:8080/alfresco/api</endpoint-url>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
</remote>
|
||||
</config>
|
||||
|
||||
|
||||
<!--
|
||||
<!--
|
||||
Overriding endpoints to reference an Alfresco server with external SSO enabled
|
||||
NOTE: If utilising a load balancer between web-tier and repository cluster, the "sticky
|
||||
sessions" feature of your load balancer must be used.
|
||||
@@ -296,10 +389,25 @@
|
||||
*Optional* keystore contains SSL client certificate + trusted CAs.
|
||||
Used to authenticate share to an external SSO system such as CAS
|
||||
Remove the keystore section if not required i.e. for NTLM.
|
||||
|
||||
|
||||
NOTE: For Kerberos SSO rename the "KerberosDisabled" condition above to "Kerberos"
|
||||
|
||||
|
||||
|
||||
NOTE: For external SSO, switch the endpoint connector to "alfrescoHeader" and set
|
||||
the userHeader value to the name of the HTTP header that the external SSO
|
||||
uses to provide the authenticated user name.
|
||||
NOTE: For external SSO, Share now supports the "userIdPattern" mechanism as is available
|
||||
on the repository config for External Authentication sub-system. Add the following
|
||||
element to your "alfrescoHeader" connector config:
|
||||
<userIdPattern>^ignore-(\w+)-ignore</userIdPattern>
|
||||
This is an example, ensure the Id pattern matches your repository config.
|
||||
NOTE: For external SSO, Share now supports stateless (no Http Session or sticky session)
|
||||
connection to the repository when using the alfrescoHeader remote user connector.
|
||||
e.g. You can change endpoint config to use the faster /service URL instead of the
|
||||
/wcs URL if you are using External Authentication and then remove sticky session config
|
||||
from your proxy between Share and Alfresco. Note that this is also faster because Share
|
||||
will no longer call the /touch REST API before every remote call to the repository.
|
||||
-->
|
||||
<!--
|
||||
<config evaluator="string-compare" condition="Remote">
|
||||
<remote>
|
||||
<keystore>
|
||||
@@ -307,25 +415,75 @@
|
||||
<type>pkcs12</type>
|
||||
<password>alfresco-system</password>
|
||||
</keystore>
|
||||
|
||||
|
||||
<connector>
|
||||
<id>alfrescoCookie</id>
|
||||
<name>Alfresco Connector</name>
|
||||
<description>Connects to an Alfresco instance using cookie-based authentication</description>
|
||||
<class>org.springframework.extensions.webscripts.connector.AlfrescoConnector</class>
|
||||
<class>org.alfresco.web.site.servlet.SlingshotAlfrescoConnector</class>
|
||||
</connector>
|
||||
|
||||
|
||||
<connector>
|
||||
<id>alfrescoHeader</id>
|
||||
<name>Alfresco Connector</name>
|
||||
<description>Connects to an Alfresco instance using header and cookie-based authentication</description>
|
||||
<class>org.alfresco.web.site.servlet.SlingshotAlfrescoConnector</class>
|
||||
<userHeader>SsoUserHeader</userHeader>
|
||||
</connector>
|
||||
|
||||
<endpoint>
|
||||
<id>alfresco</id>
|
||||
<name>Alfresco - user access</name>
|
||||
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
|
||||
<connector-id>alfrescoCookie</connector-id>
|
||||
<endpoint-url>${alfresco.server.scheme}://${alfresco.server.name}:${alfresco.server.port}/alfresco/wcs</endpoint-url>
|
||||
<endpoint-url>http://localhost:8080/alfresco/wcs</endpoint-url>
|
||||
<identity>user</identity>
|
||||
<external-auth>true</external-auth>
|
||||
</endpoint>
|
||||
|
||||
<endpoint>
|
||||
<id>alfresco-feed</id>
|
||||
<parent-id>alfresco</parent-id>
|
||||
<name>Alfresco Feed</name>
|
||||
<description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
|
||||
<connector-id>alfrescoHeader</connector-id>
|
||||
<endpoint-url>http://localhost:8080/alfresco/wcs</endpoint-url>
|
||||
<identity>user</identity>
|
||||
<external-auth>true</external-auth>
|
||||
</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>alfrescoHeader</connector-id>
|
||||
<endpoint-url>http://localhost:8080/alfresco/api</endpoint-url>
|
||||
<identity>user</identity>
|
||||
<external-auth>true</external-auth>
|
||||
</endpoint>
|
||||
</remote>
|
||||
</config>
|
||||
-->
|
||||
|
||||
|
||||
<!-- Cookie settings -->
|
||||
<!-- To disable alfUsername2 cookie set enableCookie value to "false" -->
|
||||
<!--
|
||||
<plug-ins>
|
||||
<element-readers>
|
||||
<element-reader element-name="cookie" class="org.alfresco.web.config.cookie.CookieElementReader"/>
|
||||
</element-readers>
|
||||
</plug-ins>
|
||||
|
||||
<config evaluator="string-compare" condition="Cookie" replace="true">
|
||||
<cookie>
|
||||
<enableCookie>false</enableCookie>
|
||||
<cookies-to-remove>
|
||||
<cookie-to-remove>alfUsername3</cookie-to-remove>
|
||||
<cookie-to-remove>alfLogin</cookie-to-remove>
|
||||
</cookies-to-remove>
|
||||
</cookie>
|
||||
</config>
|
||||
-->
|
||||
</alfresco-config>
|
@@ -0,0 +1,47 @@
|
||||
# Set root logger level to error
|
||||
log4j.rootLogger=error, 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}share.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{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
|
||||
|
||||
# Spring
|
||||
log4j.logger.org.springframework=warn
|
||||
# Turn off Spring remoting warnings that should really be info or debug.
|
||||
log4j.logger.org.springframework.remoting.support=error
|
||||
log4j.logger.org.springframework.util=error
|
||||
|
||||
# MyFaces
|
||||
log4j.logger.org.apache.myfaces.util.DebugUtils=info
|
||||
log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error
|
||||
log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error
|
||||
log4j.logger.org.apache.myfaces.taglib=error
|
||||
|
||||
# Alfresco
|
||||
log4j.logger.org.alfresco=error
|
||||
log4j.logger.org.alfresco.config=warn
|
||||
log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
|
||||
log4j.logger.org.alfresco.web=info
|
||||
|
||||
# Web Framework
|
||||
log4j.logger.org.springframework.extensions.webscripts=info
|
||||
log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=warn
|
||||
log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off
|
||||
|
||||
# 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=
|
@@ -0,0 +1,93 @@
|
||||
<alfresco-config>
|
||||
|
||||
<config evaluator="string-compare" condition="WebFramework">
|
||||
<web-framework>
|
||||
<autowire>
|
||||
<!-- Changing this to 'development' currently breaks the Admin Console.
|
||||
Instead we make a POST to clear Share dependency caches, see 'clear-caches-refresh-ws' profile. -->
|
||||
<mode>production</mode> <!-- not really need in the long run, used for YUI - deprecate -->
|
||||
</autowire>
|
||||
|
||||
<!--
|
||||
We don't need to do this when we have the new refresh mojos in the Alfresco plug-in.
|
||||
|
||||
If resource caching has been disabled then all the dependency caches will be cleared
|
||||
before processing the Aikau jsonModel request...
|
||||
(i.e. this.dojoDependencyHandler.clearCaches() )
|
||||
|
||||
For more information see the Aikau source code: https://github.com/Alfresco/Aikau
|
||||
-->
|
||||
<disable-resource-caching>false</disable-resource-caching>
|
||||
</web-framework>
|
||||
</config>
|
||||
|
||||
|
||||
<!-- Global config section -->
|
||||
<config replace="true">
|
||||
<flags>
|
||||
<!--
|
||||
Developer debugging setting to turn on DEBUG mode for client scripts in the browser
|
||||
-->
|
||||
<client-debug>true</client-debug>
|
||||
<!--
|
||||
LOGGING can always be toggled at runtime when in DEBUG mode (Ctrl, Ctrl, Shift, Shift).
|
||||
This flag automatically activates logging on page load.
|
||||
-->
|
||||
<client-debug-autologging>false</client-debug-autologging>
|
||||
</flags>
|
||||
</config>
|
||||
|
||||
<!--
|
||||
Disable CSRF completely for now
|
||||
It seems Share has issues on 4.2.x with the embedded tomcat and CSRFPolicy
|
||||
-->
|
||||
<config evaluator="string-compare" condition="CSRFPolicy" replace="true">
|
||||
<filter/>
|
||||
</config>
|
||||
|
||||
<!--
|
||||
Change so it is picked up from property where the Alfresco Repo Webapp is running
|
||||
(e.g. http://localhost:8080/alfresco)
|
||||
-->
|
||||
<config evaluator="string-compare" condition="Remote">
|
||||
<remote>
|
||||
<endpoint>
|
||||
<id>alfresco-noauth</id>
|
||||
<name>Alfresco - unauthenticated access</name>
|
||||
<description>Access to Alfresco Repository WebScripts that do not require authentication</description>
|
||||
<connector-id>alfresco</connector-id>
|
||||
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
|
||||
<identity>none</identity>
|
||||
</endpoint>
|
||||
|
||||
<endpoint>
|
||||
<id>alfresco</id>
|
||||
<name>Alfresco - user access</name>
|
||||
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
|
||||
<connector-id>alfresco</connector-id>
|
||||
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
|
||||
<endpoint>
|
||||
<id>alfresco-feed</id>
|
||||
<name>Alfresco Feed</name>
|
||||
<description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
|
||||
<connector-id>http</connector-id>
|
||||
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
|
||||
<basic-auth>true</basic-auth>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
|
||||
<endpoint>
|
||||
<id>activiti-admin</id>
|
||||
<name>Activiti Admin UI - user access</name>
|
||||
<description>Access to Activiti Admin UI, that requires user authentication</description>
|
||||
<connector-id>activiti-admin-connector</connector-id>
|
||||
<endpoint-url>${alfresco.repo.url}/activiti-admin</endpoint-url>
|
||||
<identity>user</identity>
|
||||
</endpoint>
|
||||
</remote>
|
||||
</config>
|
||||
</alfresco-config>
|
||||
|
@@ -0,0 +1,52 @@
|
||||
# This file is copied from Alfresco Share 5.0.d
|
||||
# Overrides tomcat/webapps/share/WEB-INF/classes/log4j,properties
|
||||
# and sets new file location from property and log level from property.
|
||||
#
|
||||
|
||||
# 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{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
|
||||
|
||||
# Spring
|
||||
log4j.logger.org.springframework=warn
|
||||
# Turn off Spring remoting warnings that should really be info or debug.
|
||||
log4j.logger.org.springframework.remoting.support=error
|
||||
log4j.logger.org.springframework.util=error
|
||||
|
||||
# MyFaces
|
||||
log4j.logger.org.apache.myfaces.util.DebugUtils=info
|
||||
log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error
|
||||
log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error
|
||||
log4j.logger.org.apache.myfaces.taglib=error
|
||||
|
||||
# Alfresco
|
||||
log4j.logger.org.alfresco=error
|
||||
log4j.logger.org.alfresco.config=warn
|
||||
log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
|
||||
log4j.logger.org.alfresco.web=info
|
||||
|
||||
# Web Framework
|
||||
log4j.logger.org.springframework.extensions.webscripts=info
|
||||
log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=warn
|
||||
log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off
|
||||
|
||||
# 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=
|
@@ -0,0 +1,129 @@
|
||||
<?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>solr-config</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>Alfresco Solr 4 Configuration</name>
|
||||
<description>Apache Solr 4 Configuration Customization</description>
|
||||
|
||||
<!-- Setup the parent extension project, which contain all the Alfresco Maven SDK stuff -->
|
||||
<parent>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${rootArtifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</parent>
|
||||
|
||||
<!-- Build Solr Configuration only when we run an embedded Tomcat (i.e. profile run is enabled).
|
||||
We assume that there is no need to customize Apache Solr 4 itself. -->
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>run</id>
|
||||
|
||||
<properties>
|
||||
<alfresco.solr.dir>${alfresco.data.location}/solr4</alfresco.solr.dir>
|
||||
<alfresco.solr.home.dir>${alfresco.solr.dir}/config</alfresco.solr.home.dir>
|
||||
<alfresco.solr.data.dir>${alfresco.solr.dir}/data</alfresco.solr.data.dir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- Download the default Solr4-config.zip Configuration files,
|
||||
they will be updated so we can run locally over HTTP -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-solr4</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>config</classifier>
|
||||
<type>zip</type>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- Run goal unpack and unzip the content of the downloaded default solr-config.zip file into the
|
||||
alfresco-maven-sdk2-test/alf_data_dev/solr4/config directory
|
||||
(The solr-config.zip is brought in via the dependency section) -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-alfresco-config</id>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<phase>generate-resources</phase>
|
||||
<configuration>
|
||||
<outputDirectory>${alfresco.solr.home.dir}</outputDirectory>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-solr4</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>config</classifier>
|
||||
<type>zip</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- For windows paths, convert single \ to / for the ${alfresco.solr.data.dir} path,
|
||||
by default it will be c:\bla\, we need forward slash or double backslash. -->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>regexp-property</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>regex-property</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<name>solrDataDir</name>
|
||||
<value>${alfresco.solr.data.dir}</value>
|
||||
<regex>\\</regex>
|
||||
<replacement>/</replacement>
|
||||
<failIfNoMatch>false</failIfNoMatch>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
<!-- Run the goal replace and update configuration files for the
|
||||
Solr cores to reflect our build structure -->
|
||||
<plugin>
|
||||
<groupId>com.google.code.maven-replacer-plugin</groupId>
|
||||
<artifactId>replacer</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>setup-solr-config</id>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>replace</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<regex>false</regex>
|
||||
<includes>
|
||||
<include>${alfresco.solr.home.dir}/archive-SpacesStore/conf/solrcore.properties</include>
|
||||
<include>${alfresco.solr.home.dir}/workspace-SpacesStore/conf/solrcore.properties</include>
|
||||
</includes>
|
||||
<replacements>
|
||||
<replacement>
|
||||
<token>@@ALFRESCO_SOLR4_DATA_DIR@@</token>
|
||||
<value>${solrDataDir}/index</value>
|
||||
</replacement>
|
||||
</replacements>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
@@ -0,0 +1,39 @@
|
||||
------
|
||||
Alfresco All-in-One Archetype Advanced Usage
|
||||
------
|
||||
Gabriele Columbro
|
||||
------
|
||||
Aug 2014
|
||||
------
|
||||
|
||||
|
||||
All-in-One Archetype properties
|
||||
|
||||
In each of the modules of the archetype (as in the whole Alfresco SDK\x99) properties are configurable at many levels:
|
||||
|
||||
* as POM properties
|
||||
|
||||
* direclty in *.properties, particularly
|
||||
|
||||
* For the <<<repo>>> project
|
||||
|
||||
* <<<src/main/properties/<env>/alfresco-global.properties>>> (environment dependent <<<alfresco-global.properties>>> packaged in the WAR when running directly within the AMP project)
|
||||
|
||||
* For Alfresco/Share AMP projects
|
||||
|
||||
* <<<src/test/properties/<env>/alfresco-global.properties>>> (environment dependent <<<alfresco-global.properties>>> for test WAR run)
|
||||
|
||||
Build Environment (e.g. local, test, staging, prod) can be easily switched by setting the <<<<env>>>> property in your POM or
|
||||
adding <<<-Denv=yourEnv>>> on the command line.
|
||||
|
||||
* Common properties
|
||||
|
||||
Archetype behavior can mostly be controlled directly in the POM, via common properties provided by the parent POM.
|
||||
See {{{../../poms/alfresco-sdk-parent/sdk-properties.html} SDK properties reference}} for details.
|
||||
|
||||
Parent POM and behavior customization
|
||||
|
||||
To customize the behavior of your project, check out full set of the properties and plugin configurations defined in the
|
||||
{{{./poms/alfresco-sdk-parent/index.html}single entry point parent POM}}.
|
||||
|
||||
One quick way to do that is to use the <<<maven-help-plugin:effective-pom>>> to analyze your POM at runtime.
|
@@ -0,0 +1,67 @@
|
||||
------
|
||||
Building AMPs (Alfresco Module Packages) with Maven
|
||||
------
|
||||
Gabriele Columbro
|
||||
------
|
||||
Nov 2012
|
||||
------
|
||||
|
||||
Introduction
|
||||
|
||||
The Alfresco All-in-One Archetype is a multi-module project,
|
||||
leveraging Alfresco SDK\x99 powerful capabilities to customize and run the full Alfresco platform embedded and all it's components.
|
||||
The archetype does not require additional download and provides a perfect starting point for full-blown Alfresco projects.
|
||||
|
||||
* Features
|
||||
|
||||
Amongst other features, this archetype provides support for:
|
||||
|
||||
* <<<amp>>> packaging support for your projects
|
||||
|
||||
* AMP Dependency management and overlay in an Alfresco Repository or Share WAR
|
||||
|
||||
* Embedded run in Tomcat and embedded H2 database of the full Alfresco suite, including Repository, Share, Solr
|
||||
|
||||
* Support for unit and integration testing and rapid development (using spring-loaded, see run.sh)
|
||||
|
||||
* Seamless IDE integration with Eclipse and Idea
|
||||
|
||||
How to create a project:
|
||||
|
||||
As of version 2.0-beta-3, you can create a project with the latest released archetype with the following command directly from Maven Central:
|
||||
|
||||
+---+
|
||||
mvn archetype:generate -Dfilter=org.alfresco.maven.archetype:alfresco-allinone-archetype
|
||||
+---+
|
||||
|
||||
For previous versions, you need to use the Alfresco Artifacts repository:
|
||||
|
||||
+---+
|
||||
mvn archetype:generate -Dfilter=org.alfresco.maven.archetype:alfresco-allinone-archetype -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml
|
||||
+---+
|
||||
|
||||
You should then:
|
||||
|
||||
[[1]] Select the <<<alfresco-allinone-archetype>>> version
|
||||
|
||||
[[2]] Specify the <<<groupId>>> and <<<artifactId>>> for the project you want to create
|
||||
|
||||
[[3]] (<Optionally>) Select Alfresco Version / Edition (current default is: Alfresco Community 5.0.c)
|
||||
|
||||
You can find new Alfresco All-in-One project ready to go in the <<<artifactId>>> folder.
|
||||
|
||||
Quickstart
|
||||
|
||||
Once your project is created:
|
||||
|
||||
* Enter the project folder and run <<<./run.sh>>> (you might need to <<<chmod u+x run.sh>>> to make it executable). This will setup the SDK and start Alfresco, Share and Solr in embedded mode.
|
||||
|
||||
* Wait for the startup of the webapps and then go <<<http://localhost:8080>>>.
|
||||
|
||||
* Import the projects in your favorite IDE (with Maven integration) and start developing right away.
|
||||
|
||||
Usage
|
||||
|
||||
|
||||
Full instructions on how to use the Alfresco All in One archetype can be found on the {{{./usage.html}usage page}}, while
|
||||
for more advanced use cases refer to the {{{./advanced-usage.html}advanced usage page}}
|
@@ -0,0 +1,85 @@
|
||||
------
|
||||
Maven Alfresco All-in-One Archetype Usage
|
||||
------
|
||||
Gabriele Columbro
|
||||
------
|
||||
Sep 2013
|
||||
------
|
||||
|
||||
Prerequisites
|
||||
|
||||
See {{{../../prerequisites.html} SDK Pre-Requisites}} to successfully run this archetype.
|
||||
|
||||
Project layout
|
||||
|
||||
The archetype generated multi-module project should look like:
|
||||
|
||||
+---+
|
||||
pom.xml
|
||||
|-> rootArtifactid-repo-amp
|
||||
|-> rootArtifactid-share-amp
|
||||
|-> repo
|
||||
|-> share
|
||||
|-> solr
|
||||
|-> runner (a Tomcat embedded runner / integration test runner)
|
||||
+---+
|
||||
|
||||
* Modules
|
||||
|
||||
The All-in-One Alfresco project is composed by the following modules:
|
||||
|
||||
* <<<rootArtifactid-repo-amp>>>: An Repository Tier AMP project, demonstrating sample project structure and demo component loading
|
||||
|
||||
* <<<repo>>>: An <<<alfresco.war>>> Repository Extension, overlaying the Alfresco WAR with custom resources / classes
|
||||
and depending on the <<<amp>>> project
|
||||
|
||||
* <<<rootArtifactid-share-amp>>>: A Share Tier AMP project, demonstrating sample project structure and demo component loading
|
||||
|
||||
* <<<share>>>: A <<<share.war>>> extension, overlaying the Share WAR with the custom developed <<<rootArtifactid-share-amp>>>
|
||||
|
||||
* <<<solr>>>: An Alfresco <<<alfresco-*-*-solr.zip>>> overlay / customization to configure {{{http://solr.apache.org}Apache Solr}} cores properties
|
||||
|
||||
* <<<runner>>>: A Tomcat + H2 runner, capable of running all the aforementioned projects in embedded mode for demo / integration-testing purposes
|
||||
|
||||
Usage
|
||||
|
||||
The project provides support for typical development lifecycle use cases like
|
||||
|
||||
* Rapid development, in full IDE integration, and with hot classes reloading (using spring-loaded, check {{{../../prerequisites.html}prerequisites}}).
|
||||
|
||||
* AMP/WAR packaging
|
||||
|
||||
* AMP Unit testing and rapid development
|
||||
|
||||
* run embedded in Tomcat + H2 database.
|
||||
(<<NOTE>>: this is not a {{{http://www.alfresco.com/services/subscription/supported-platforms/} supported stack}} so use <<only for development purposes>>)
|
||||
|
||||
* Integration testing
|
||||
|
||||
* AMP to WAR installation and overlay (embedding {{{http://wiki.alfresco.com/wiki/Module_Management_Tool}Alfresco Module Managment Tool}})
|
||||
|
||||
* release and distribution
|
||||
|
||||
for all the components of the Alfresco landscape. For more information, check the See the {{{./advanced-usage.html}advanced usage page}} page.
|
||||
|
||||
<<NOTE>>: AMPs produced with this project are fully compatible with Alfresco MMT,in fact the Maven Alfresco plugin - used to manage AMPs in this SDK - embeds the official Alfresco MMT to install depended AMPs.
|
||||
|
||||
Commands
|
||||
|
||||
<<<run.sh>>> will automatically set up the SDK and run the webapps embedded to enable rapid development
|
||||
|
||||
Additional common Maven lifecycle commands you want to run from the aggregator are:
|
||||
|
||||
* <<<mvn package>>>: Runs unit tests and packages all customized modules in their respective <<<$\{project.build.directory\}/$\{project.build.finalName\}.amp>>>
|
||||
|
||||
* <<<mvn install>>>: Like <<<mvn package>>> but also installs all modules in local Maven repository to be depended upon
|
||||
|
||||
* <<<mvn install -Dmaven.test.skip=true>>>: Like <<<mvn install>>> but skips unit tests
|
||||
|
||||
* <<<mvn install -Prun>>>: Like <<<mvn install>>> but also trigger the <<<runner>>> project to run Alfresco, Share, Solr and Web Quick Start in Jetty (with H2 embedded database)
|
||||
|
||||
* <<<mvn clean -Ppurge>>>: Removes DB, alf_data and log files
|
||||
|
||||
* Commands from from the <<<runner>>> project
|
||||
|
||||
* <<<mvn install -Prun'>>> or <<<'mvn integration-test -Prun'>>> to quickly run already packaged webapps
|
49
archetypes/alfresco-allinone-archetype/src/site/site.xml
Normal file
49
archetypes/alfresco-allinone-archetype/src/site/site.xml
Normal file
@@ -0,0 +1,49 @@
|
||||
<project>
|
||||
<body>
|
||||
<!-- <menu ref="parent" inherit="bottom"/> -->
|
||||
<head>
|
||||
<script type="text/javascript">
|
||||
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', '${gaTrackingId}']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<menu name="Alfresco All-in-One Archetype">
|
||||
<item name="Introduction" href="index.html"/>
|
||||
<item name="Usage" href="usage.html"/>
|
||||
<item name="Advanced Usage" href="advanced-usage.html"/>
|
||||
</menu>
|
||||
|
||||
<menu name="SDK components">
|
||||
<item name="Maven Alfresco SDK" href="../../index.html" />
|
||||
<item name="Alfresco AMP Archetype" href="../alfresco-amp-archetype/index.html" />
|
||||
<item name="Share AMP Archetype" href="../share-amp-archetype/index.html" />
|
||||
<item name="Alfresco All-in-One Archetype" href="./index.html" />
|
||||
<item name="Maven Alfresco SDK Parent POM" href="../../poms/alfresco-sdk-parent/index.html" />
|
||||
<item name="Alfresco Platform Distribution POM" href="https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-platform-distribution/latest/index.html" />
|
||||
<item name="Maven Alfresco Plugin" href="../../plugins/alfresco-maven-plugin/index.html" />
|
||||
</menu>
|
||||
|
||||
<menu name="Alfresco Documentation">
|
||||
<item name="Official Maven Alfresco SDK docs" href="http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html" />
|
||||
<item name="Maven Alfresco Wiki Documentation" href="http://wiki.alfresco.com/wiki/Maven_Alfresco_SDK" />
|
||||
<item name="Alfresco with Maven for Dummies" href="https://wiki.alfresco.com/wiki/Maven_For_Dummies" />
|
||||
<item name="Developer Access (Google Code)" href="http://code.google.com/p/maven-alfresco-archetypes/" />
|
||||
<item name="Gabriele Columbro's blog" href="http://www.mindthegab.com/" />
|
||||
<item name="Maurizio Pillitu's blog" href="http://www.session.it/" />
|
||||
<item name="Carlo Sciolla's blog" href="http://skuro.tk/" />
|
||||
<item name="Enterprise adoption" href="http://www.slideshare.net/guest67a9ba/maven-application-lifecycle-management-for-alfresco" />
|
||||
</menu>
|
||||
|
||||
<!--<menu ref="reports"/>-->
|
||||
|
||||
</body>
|
||||
</project>
|
@@ -0,0 +1,4 @@
|
||||
version=0.1-SNAPSHOT
|
||||
groupId=archetype.it
|
||||
artifactId=allInOneTest
|
||||
package=it.pkg
|
@@ -0,0 +1 @@
|
||||
verify
|
@@ -0,0 +1,5 @@
|
||||
version=0.1-SNAPSHOT
|
||||
groupId=archetype.it
|
||||
artifactId=allInOneTestRunEnterprise
|
||||
package=it.pkg
|
||||
|
@@ -0,0 +1 @@
|
||||
verify -Prun -Penterprise -Dmaven.tomcat.fork=true
|
@@ -0,0 +1,4 @@
|
||||
version=0.1-SNAPSHOT
|
||||
groupId=archetype.it
|
||||
artifactId=allInOneTestRun
|
||||
package=it.pkg
|
@@ -0,0 +1 @@
|
||||
verify -Prun -Dmaven.tomcat.fork=true
|
56
archetypes/alfresco-amp-archetype/pom.xml
Normal file
56
archetypes/alfresco-amp-archetype/pom.xml
Normal file
@@ -0,0 +1,56 @@
|
||||
<?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/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.alfresco.maven.archetype</groupId>
|
||||
<artifactId>alfresco-amp-archetype</artifactId>
|
||||
|
||||
<packaging>maven-archetype</packaging>
|
||||
<name>Maven Alfresco SDK - Repository AMP Archetype</name>
|
||||
<description>Sample project with full support for lifecycle and rapid development of Repository AMPs (Alfresco Module Packages)</description>
|
||||
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-aggregator</artifactId>
|
||||
<version>2.2.0</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<includes>
|
||||
<include>archetype-resources/pom.xml</include>
|
||||
<include>archetype-resources/run.sh</include>
|
||||
<include>archetype-resources/run.bat</include>
|
||||
<include>META-INF/maven/archetype-metadata.xml</include>
|
||||
</includes>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<excludes>
|
||||
<exclude>archetype-resources/pom.xml</exclude>
|
||||
<exclude>archetype-resources/run.sh</exclude>
|
||||
<exclude>archetype-resources/run.bat</exclude>
|
||||
<exclude>META-INF/maven/archetype-metadata.xml</exclude>
|
||||
</excludes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.7</version>
|
||||
<configuration>
|
||||
<useDefaultDelimiters>false</useDefaultDelimiters>
|
||||
<delimiters>
|
||||
<delimiter>@@</delimiter>
|
||||
</delimiters>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archetype-descriptor
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
|
||||
name="AMP Archetype for Alfresco. Provides rapid development, IDE integration, and running embedded an Alfresco Repo AMP"
|
||||
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<requiredProperties>
|
||||
<requiredProperty key="version">
|
||||
<defaultValue>1.0-SNAPSHOT</defaultValue>
|
||||
</requiredProperty>
|
||||
</requiredProperties>
|
||||
<fileSets>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.java</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="true" packaged="true" encoding="UTF-8">
|
||||
<directory>src/test/java</directory>
|
||||
<includes>
|
||||
<include>**/*.java</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="false">
|
||||
<directory>src/main/amp</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/*-context.xml</exclude>
|
||||
<exclude>**/log4j.properties</exclude>
|
||||
</excludes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="true">
|
||||
<directory>src/main/amp/config/alfresco/module/__artifactId__</directory>
|
||||
<includes>
|
||||
<include>log4j.properties</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8" filtered="true" packaged="false">
|
||||
<directory>src/main/amp</directory>
|
||||
<includes>
|
||||
<include>**/*-context.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="false" encoding="UTF-8">
|
||||
<directory>src/test/resources</directory>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="false" encoding="UTF-8">
|
||||
<directory>src/test/properties</directory>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet filtered="false" encoding="UTF-8">
|
||||
<directory>tomcat</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
<fileSet encoding="UTF-8">
|
||||
<directory></directory>
|
||||
<includes>
|
||||
<include>run.sh</include>
|
||||
<include>run.bat</include>
|
||||
</includes>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</archetype-descriptor>
|
@@ -0,0 +1,101 @@
|
||||
<?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>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
<name>${artifactId} Repository AMP project</name>
|
||||
<packaging>amp</packaging>
|
||||
<description>Manages the lifecycle of the ${artifactId} Repository AMP (Alfresco Module Package)</description>
|
||||
|
||||
<parent>
|
||||
<groupId>org.alfresco.maven</groupId>
|
||||
<artifactId>alfresco-sdk-parent</artifactId>
|
||||
<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>
|
||||
<!-- The following are default values for data location and Alfresco Community version.
|
||||
Uncomment if you need to change (Note. current default version for Enterprise edition is @@alfresco.enterprise.default.version@@)
|
||||
<alfresco.version>@@alfresco.community.default.version@@</alfresco.version>
|
||||
<alfresco.data.location>/absolute/path/to/alf_data_dev</alfresco.data.location> -->
|
||||
|
||||
<!-- This control the root logging level for all apps uncomment and change, defaults to WARN
|
||||
<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
|
||||
for embedded run, defaults to the 'local' environment. See SDK Parent POM for more info.
|
||||
<env>local</env>
|
||||
-->
|
||||
</properties>
|
||||
|
||||
<!-- Here we realize the connection with the Alfresco selected platform
|
||||
(e.g.version and edition) -->
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<!-- Setup what versions of the different Alfresco artifacts that will be used (depends on alfresco.version),
|
||||
so we don't have to specify version in any of the dependency definitions in our POM.
|
||||
For more info see:
|
||||
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies
|
||||
-->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-platform-distribution</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
<!-- 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 -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- If we are running tests then make the H2 Scripts available
|
||||
Note. tests are skipped when you are running -Pamp-to-war -->
|
||||
<dependency>
|
||||
<groupId>${alfresco.groupId}</groupId>
|
||||
<artifactId>alfresco-repository</artifactId>
|
||||
<version>${alfresco.version}</version>
|
||||
<classifier>h2scripts</classifier>
|
||||
<scope>test</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>*</groupId>
|
||||
<artifactId>*</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</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>
|
||||
</profiles>
|
||||
</project>
|
@@ -0,0 +1,8 @@
|
||||
@ECHO OFF
|
||||
|
||||
IF "%MAVEN_OPTS%" == "" (
|
||||
ECHO The environment variable 'MAVEN_OPTS' is not set, setting it for you
|
||||
SET MAVEN_OPTS=-Xms256m -Xmx2G -XX:PermSize=300m
|
||||
)
|
||||
ECHO MAVEN_OPTS is set to '%MAVEN_OPTS%'
|
||||
mvn clean install -Pamp-to-war
|
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
if [[ -z ${MAVEN_OPTS} ]]; then
|
||||
echo "The environment variable 'MAVEN_OPTS' is not set, setting it for you";
|
||||
MAVEN_OPTS="-Xms256m -Xmx1524m -XX:PermSize=300m"
|
||||
fi
|
||||
echo "MAVEN_OPTS is set to '$MAVEN_OPTS'";
|
||||
mvn clean install -Pamp-to-war
|
@@ -0,0 +1,7 @@
|
||||
<webscript>
|
||||
<shortname>Hello World Sample Webscript</shortname>
|
||||
<description>Hands back a greeting</description>
|
||||
<url>/sample/helloworld</url>
|
||||
<authentication>user</authentication>
|
||||
<format default="html"></format>
|
||||
</webscript>
|
@@ -0,0 +1 @@
|
||||
Message: ${fromJS} ${fromJava}
|
@@ -0,0 +1 @@
|
||||
model["fromJS"] = "Hello World from JS!";
|
@@ -0,0 +1,5 @@
|
||||
## This Alfresco Repo Configuration file should be used for custom properties that are introduced by this module.
|
||||
## Define default values for all properties here.
|
||||
## System Administrators can override these values in environment specific configurations in
|
||||
## alfresco/tomcat/shared/classes/alfresco-global.properties.
|
||||
##
|
@@ -0,0 +1,26 @@
|
||||
#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="${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>
|
||||
</bean>
|
||||
|
||||
|
||||
|
||||
</beans>
|
@@ -0,0 +1,41 @@
|
||||
#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="${artifactId}.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 -Pamp-to-war twice will only execute this component the first time.
|
||||
You need to remove /alf_data_dev for it to be executed again. -->
|
||||
<bean id="${artifactId}.exampleComponent" class="${package}.demoamp.DemoComponent" parent="module.baseComponent" >
|
||||
<property name="moduleId" value="${project.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>
|
@@ -0,0 +1,27 @@
|
||||
#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>
|
||||
<bean id="webscript.helloworld.get"
|
||||
class="${package}.demoamp.HelloWorldWebScript"
|
||||
parent="webscript">
|
||||
</bean>
|
||||
</beans>
|
@@ -0,0 +1,43 @@
|
||||
#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.
|
||||
#-----------------------------------------------------------------------
|
||||
# ${artifactId} module log4j.properties
|
||||
#
|
||||
# NOTE
|
||||
# ----
|
||||
# Log4j uses the following logging levels:
|
||||
# debug,info,warn,error,fatal
|
||||
#
|
||||
# To set the logging level of {fullClassName} to {loglevel},
|
||||
# add a line to this file of the following form:
|
||||
#
|
||||
# log4j.logger.{fullClassName}={loglevel}
|
||||
#
|
||||
# For example, to make 'com.example.MyExample' produce 'debug'
|
||||
# logs, add a line like this:
|
||||
#
|
||||
# log4j.logger.com.example.MyExample=debug
|
||||
#
|
||||
#
|
||||
# WARNING
|
||||
# -------
|
||||
# Log properties in this log4j.properties file override/augment
|
||||
# those in the webapp's main log4j.properties.
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
log4j.logger.${package}.demoamp.DemoComponent=debug
|
@@ -0,0 +1,27 @@
|
||||
<?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>
|
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<model name="myw:workflowModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
|
||||
<!-- Optional meta-data about the model -->
|
||||
<description>Workflow 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 Workflow Model Definitions -->
|
||||
<import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"/>
|
||||
</imports>
|
||||
|
||||
<!-- Custom namespace for your domain -->
|
||||
<namespaces>
|
||||
<namespace uri="http://www.mycompany.com/model/workflow/1.0" prefix="myw"/>
|
||||
</namespaces>
|
||||
|
||||
<!-- ===============================================================================================================
|
||||
Constraints, Types, and Aspects go here...
|
||||
-->
|
||||
</model>
|
||||
|
@@ -0,0 +1,29 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements.
|
||||
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.
|
||||
|
||||
-->
|
||||
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
|
||||
|
||||
<beans>
|
||||
<!-- 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/webscript-context.xml" />
|
||||
|
||||
</beans>
|
@@ -0,0 +1,48 @@
|
||||
# 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.
|
||||
|
||||
|
||||
|
||||
# SDK Sample module
|
||||
|
||||
# ==== Beginning of Alfresco required/optional properties ====== #
|
||||
# NB: These properties are filtered at build time by Maven, single
|
||||
# sourcing from POM properties
|
||||
module.id=${project.artifactId}
|
||||
#module.aliases=myModule-123, my-module
|
||||
module.title=${project.name}
|
||||
module.description=${project.description}
|
||||
module.version=${project.version}
|
||||
|
||||
# The following optional properties can be used to prevent the module from being added
|
||||
# to inappropriate versions of the WAR file.
|
||||
# module.repo.version.min=2.0
|
||||
# module.repo.version.max=2.1
|
||||
|
||||
# FIXME: This dependencies should come out of mvn dependencies on amp
|
||||
|
||||
# The following describe dependencies on other modules
|
||||
# Depends on net.sf.myproject.module.SupportModuleA version ${version} or later
|
||||
# module.depends.net.sf.myproject.module.SupportModuleA=${version}-*
|
||||
# Depends on net.sf.myproject.module.SupportModuleA version ${version} to 2.0
|
||||
# module.depends.net.sf.myproject.module.SupportModuleB=${version}-2.0
|
||||
# Depends on net.sf.myproject.module.SupportModuleC - any version
|
||||
# module.depends.net.sf.myproject.module.SupportModuleB=*
|
||||
|
||||
|
||||
# ==== End of Alfresco required/optional properties ======= #
|
||||
|
||||
|
||||
# ==== Beginning of module required properties/optional ====== #
|
@@ -1,4 +1,4 @@
|
||||
<!--
|
||||
/*
|
||||
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.
|
||||
@@ -13,4 +13,4 @@
|
||||
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.
|
||||
-->
|
||||
*/
|
@@ -0,0 +1,17 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
This is a demo JSP. When running with -Pamp-to-war, just change this text and it will be automatically reloaded!
|
@@ -0,0 +1,2 @@
|
||||
This folder (root in the AMP) gets mapped automagically in WEB-INF/licenses
|
||||
by the MMT or the alfresco-maven-plugin
|
@@ -1,41 +1,16 @@
|
||||
/*
|
||||
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 org.alfresco.demoamp;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.alfresco.repo.module.AbstractModuleComponent;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* A basic component that will be started for this module.
|
||||
*
|
||||
* @author Derek Hulley
|
||||
*/
|
||||
public class DemoComponent extends AbstractModuleComponent
|
||||
{
|
||||
Log log = LogFactory.getLog(DemoComponent.class);
|
||||
|
||||
@Override
|
||||
protected void executeInternal() throws Throwable
|
||||
{
|
||||
System.out.println("DemoComponent has been executed");
|
||||
log.debug("Test debug logging is working");
|
||||
log.info("This should not be outputted by default");
|
||||
}
|
||||
}
|
||||
/*
|
||||
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.
|
||||
*/
|
@@ -0,0 +1,18 @@
|
||||
#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");
|
||||
}
|
||||
}
|
@@ -0,0 +1,83 @@
|
||||
#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.alfresco.repo.module.AbstractModuleComponent;
|
||||
import org.alfresco.repo.nodelocator.NodeLocatorService;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
/**
|
||||
* A basic component that will be started for this module.
|
||||
* Uses the NodeLocatorService to easily find nodes and the
|
||||
* NodeService to display them
|
||||
*
|
||||
* @author Gabriele Columbro
|
||||
* @author Maurizio Pillitu
|
||||
*/
|
||||
public class DemoComponent extends AbstractModuleComponent {
|
||||
Log log = LogFactory.getLog(DemoComponent.class);
|
||||
|
||||
private NodeService nodeService;
|
||||
|
||||
private NodeLocatorService nodeLocatorService;
|
||||
|
||||
public void setNodeService(NodeService nodeService) {
|
||||
this.nodeService = nodeService;
|
||||
}
|
||||
|
||||
public void setNodeLocatorService(NodeLocatorService nodeLocatorService) {
|
||||
this.nodeLocatorService = nodeLocatorService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bogus component execution
|
||||
*/
|
||||
@Override
|
||||
protected void executeInternal() throws Throwable {
|
||||
System.out.println("DemoComponent has been executed");
|
||||
log.debug("Test debug logging. Congratulation your AMP is working");
|
||||
log.info("This is only for information purposed. Better remove me from the log in Production");
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a demo service interaction with Alfresco Foundation API.
|
||||
* This sample method returns the number of child nodes of a certain type
|
||||
* under a certain node.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int childNodesCount(NodeRef nodeRef) {
|
||||
return nodeService.countChildAssocs(nodeRef, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the NodeRef of "Company Home"
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public NodeRef getCompanyHome()
|
||||
|
||||
{
|
||||
return nodeLocatorService.getNode("companyhome", null, null);
|
||||
}
|
||||
}
|
@@ -0,0 +1,43 @@
|
||||
#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;
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user