Compare commits

...

278 Commits

Author SHA1 Message Date
alfresco-build
9071965850 [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.1 2017-06-23 10:17:47 +01:00
Ole Hejlskov
1e5db412f7 Tidy up fixes for #461 2017-06-22 12:13:28 +02:00
Ole Hejlskov
37c26cfaa8 Correctly configure the artifact id for alfresco-platform, reported in #461
This also raises questions around the use of <alfresco.platform.war.artifactId />
since this will never have any effect currently
2017-04-21 18:21:41 +02:00
Ole Hejlskov
1cd4b82037 Revert MMT dependency version 2017-04-21 17:36:06 +02:00
Ole Hejlskov
758ab83faf Merge pull request #459 from douglascrp/201702-GA_and_fixes
Solution for #458 and #454
2017-04-21 11:49:13 +02:00
Douglas C. R. Paes
8862d67acd Rolled back the api-explorer version as there is no 5.2.f version yet. 2017-04-20 16:41:49 -03:00
Douglas C. R. Paes
e4402a741f plataform and share dependencies upgraded to match the latest GA release, which is 201702-GA 2017-04-20 16:04:44 -03:00
Douglas C. R. Paes
b1facc65de gitignore 2017-04-20 16:03:12 -03:00
Ole Hejlskov
7668096829 Grab fix from #449 for 5.2.f support 2017-04-10 11:15:25 +02:00
Ole Hejlskov
ce7c374c1e Remove beta-reference in name tag in archetype poms. Fixes #446 2017-04-05 16:30:03 +02:00
Ole Hejlskov
68dda3b211 Fix endpoint url to avoid "Share services" error and fix CMM. Fixes #445 2017-04-05 16:26:41 +02:00
alfresco-build
47a329a762 [maven-release-plugin] prepare for next development iteration 2017-03-30 11:12:25 +01:00
alfresco-build
3ae8d043aa [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0 2017-03-30 11:12:20 +01:00
Ole Hejlskov
ba36d1ad5e Update readme 2017-03-30 10:25:59 +01:00
Ole Hejlskov
f54fb5e3d3 Update site, still work in progress 2017-03-27 13:28:44 +02:00
Ole Hejlskov
1a8d8b76b6 Properly separate enterprise tests, execute with correct share version 2017-03-27 11:27:09 +02:00
Ole Hejlskov
55ac6917b7 Merge branch 'master' into sdk-3.0 2017-03-27 09:58:49 +02:00
Ole Hejlskov
993d5dcefe Add archetype tests for 4.2, 5.0 and 5.1 2017-03-24 20:33:07 +01:00
Ole Hejlskov
0411bc5b1d Redo enterprise tests for the archetypes. When running "mvn clean install" only archetype tests for community edition.
Enabling the enterprise-tests profile will run all the tests
2017-03-24 16:49:13 +01:00
Ole Hejlskov
07bb743cfd Tidy up default pom 2017-03-24 15:09:59 +01:00
Ole Hejlskov
ccb9f3d86f Merge branch 'sdk-3.0' of https://github.com/Alfresco/alfresco-sdk into sdk-3.0 2017-03-24 14:51:19 +01:00
Ole Hejlskov
aebda9bf06 Move alfrescoEdition / maven.alfresco.edition up 2017-03-24 14:50:33 +01:00
Samuel Langlois
b7dbbe8995 Downgrade alfresco-mmt dependency to 5.1.g, for plugin to work with JDK7 2017-03-23 17:17:55 +00:00
Samuel Langlois
c9b33b4f59 #443 Upgrade Maven plugins and dependencies 2017-03-23 16:08:31 +00:00
Ole Hejlskov
93dde46f51 Deploy default webapp to / which enables an index.html (for AIO) to point to the services (#434) 2017-03-23 16:40:29 +01:00
Ole Hejlskov
addbc750c4 Merge pull request #438 from jgoldhammer/sdk-3.0
fixes(spring): use xml schema instead of dtd
2017-03-23 16:23:15 +01:00
Ole Hejlskov
e302055caf Merge branch 'sdk-3.0' into sdk-3.0 2017-03-23 16:23:05 +01:00
Ole Hejlskov
3b7e32df20 Initial fix for archetype tests 2017-03-23 16:08:35 +01:00
Ole Hejlskov
8178eac5b8 Remove debugging for cleaner test run 2017-03-23 11:54:33 +01:00
Ole Hejlskov
b5ec7b415d Add default hotswap agent to platform jar archetype. Enable integration testing on the archetype as well 2017-03-23 10:55:58 +01:00
Ole Hejlskov
278ba7f600 Comment out AMP assembly by default 2017-03-22 22:35:02 +01:00
Ole Hejlskov
fef948b982 Bring back resources plugin to archetype, otherwise test-resources get added too late 2017-03-22 21:27:17 +01:00
Ole Hejlskov
245a51402d Close the loop on 4.2 support and Solr 2017-03-22 21:07:17 +01:00
Ole Hejlskov
3630cced6d Remove references to buildonly 2017-03-20 16:29:02 +01:00
Ole Hejlskov
892920c114 Add hotswap-agent.properties for both platform and share jars 2017-03-20 15:23:52 +01:00
Ole Hejlskov
24500024ed Add integration-test module as a dependency for the platform war and include it to allow remote execution 2017-03-10 16:46:35 +01:00
Ole Hejlskov
85c7e11bb6 Make port configurable and dynamic 2017-03-09 16:44:22 +01:00
Martin Bergljung
aede276f9b Made sure alfresco:run can be executed without interference from alfresco:it,#401 2017-02-28 08:14:27 +00:00
Martin Bergljung
264d326bf2 Removed assembly/lib dir and associated descriptor config, picked up from dependency config 2017-02-23 11:57:35 +00:00
Martin Bergljung
d2868bdfae Added integration-tests subproject to AIO, #401 2017-02-23 09:53:13 +00:00
Martin Bergljung
673461b6e2 Fixed hard-coded bean ID in DemoComponentIT, #401 2017-02-17 16:07:25 +00:00
Martin Bergljung
6f1d01394d Initial check-in of Bindu's AlfrescoTestRunner frameowork plus sample tests, #401 2017-02-16 10:45:51 +00:00
Martin Bergljung
f5404b9d40 Updated to latest GA 5.2 libs, #439 2017-02-01 12:48:14 +00:00
Jens Goldhammer
e6394e25b7 fixes(spring): use xml schema instead of dtd
also increased xsd to spring version 3.0

fixes #429
2016-11-26 22:35:26 +01:00
Ole Hejlskov
0fd842192b Merge pull request #435 from Alfresco/github-issuetemplate
chore(github) : new github issue template
2016-11-23 20:38:41 +01:00
Jens Goldhammer
be8e10a556 chore(github) : new issue template
This commit provides an issue template which will be used when users will report a bug or suggest a new feature.
This should help to provide better and quicker support for the reported issues of alfresco SDK.
2016-11-23 20:28:55 +01:00
Martin Bergljung
3031b401a2 Fix logging for Share extensions, #418 2016-10-10 13:31:51 +01:00
Martin Bergljung
723b309670 Added validation of existence of alfresco-global-*.properties files, #416 2016-10-10 10:10:48 +01:00
Martin Bergljung
051e967240 Merge branch 'sdk-3.0' of https://github.com/Alfresco/alfresco-sdk into sdk-3.0 2016-10-10 09:06:35 +01:00
Martin Bergljung
1f46a9e2ff Added the possibility to use custom context path for Share, #417 2016-10-10 09:06:19 +01:00
alfresco-build
3cbdb5dc8e [maven-release-plugin] prepare for next development iteration 2016-10-05 09:51:22 +01:00
alfresco-build
07543c68d3 [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-5 2016-10-05 09:51:19 +01:00
Martin Bergljung
a07219e6e6 Support for custom webapps and sysprops, #412,#413 2016-10-03 12:05:39 +01:00
Martin Bergljung
4e26291761 Merge branch 'sdk-3.0' of https://github.com/Alfresco/alfresco-sdk into sdk-3.0 2016-09-30 12:10:54 +01:00
Martin Bergljung
c2ac314930 Initial check-in of Activiti JAR module, #410, #415 2016-09-30 12:10:35 +01:00
alfresco-build
08acf1f433 [maven-release-plugin] prepare for next development iteration 2016-09-23 10:02:48 +01:00
alfresco-build
b9331c365f [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-4 2016-09-23 10:02:44 +01:00
Ole Hejlskov
63bd9a63c0 Remove sources and javadoc plugin. This is already handled by the release plugin 2016-09-23 10:56:47 +02:00
alfresco-build
f1dbb608d9 [maven-release-plugin] prepare for next development iteration 2016-09-23 09:40:38 +01:00
alfresco-build
657d16b91c [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-4 2016-09-23 09:40:34 +01:00
alfresco-build
7739556c94 [maven-release-plugin] prepare for next development iteration 2016-09-23 09:14:01 +01:00
alfresco-build
d7b0805cef [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-4 2016-09-23 09:13:57 +01:00
Martin Bergljung
0b8db99cd8 Added debug.* scripts 2016-09-19 14:45:25 +01:00
Martin Bergljung
eba635c8f8 All logging controlled by src/test/resources/alfresco/extension/dev-log4j.properties, #392 2016-09-19 14:13:36 +01:00
Martin Bergljung
2782f30a42 Improved support for using different databases, #400 2016-09-16 17:53:08 +01:00
Samuel Langlois
a32a537206 internal-release profile allows publishing release in our Nexus repo 2016-09-15 17:01:08 +01:00
Martin Bergljung
49160034cf Upgraded to Community release 201609 EA and added API Explorer app to AIO and Platform module, #402 2016-09-15 14:08:03 +01:00
Martin Bergljung
50dac567c2 Added filtering of web resources added to AMP, #409 2016-09-15 12:58:08 +01:00
Martin Bergljung
9a7630acfb Added excludes for resource filtering, so we don't filter for example FTL, #407 2016-09-15 11:33:37 +01:00
Martin Bergljung
be11344137 Switched to props config for compiler plugin, #404 2016-09-14 10:14:19 +01:00
Martin Bergljung
db9d7d637c Add compiler plugin and set Java 7, #404 2016-09-14 09:12:34 +01:00
Martin Bergljung
04fe0678d7 Support for MySQL, PostgreSQL, and custom Tomcat dependencies, #400 2016-09-12 16:57:02 +01:00
Martin Bergljung
b46f173fb4 Added WAR artifact id property to platform jar project, #403 2016-09-12 14:09:05 +01:00
Martin Bergljung
d69f7e4937 Added private/enterprise repo to POMs, #394 2016-09-12 11:31:23 +01:00
Martin Bergljung
788347a5dd Support for overriding out-of-the-box web resources and including 3rd party libs, #389 2016-09-07 11:28:40 +01:00
Martin Bergljung
d6f11dd977 Added license directory placeholders 2016-09-06 09:50:39 +01:00
Martin Bergljung
f0955cff98 Changed where Enterprise license should be located, #395 2016-09-06 09:19:34 +01:00
Martin Bergljung
05b2cfbb1e Fix so JAR project files are not duplicated in WAR, #391 2016-09-05 15:23:53 +01:00
alfresco-build
558d4b422c [maven-release-plugin] prepare for next development iteration 2016-09-05 14:35:29 +01:00
alfresco-build
d040ceb60d [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-3 2016-09-05 14:35:25 +01:00
alfresco-build
a8db2ddde0 [maven-release-plugin] prepare for next development iteration 2016-09-05 14:25:15 +01:00
alfresco-build
c9d1878cb9 [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-3 2016-09-05 14:25:02 +01:00
Martin Bergljung
99c0a14220 Fix loading from META-INF in JAR, such as share-config-custom.xml, fix loading of resources such as /alfresco/test.html, #388 2016-08-26 09:12:17 +01:00
alfresco-build
6a1b09c102 [maven-release-plugin] prepare for next development iteration 2016-08-25 18:56:03 +01:00
alfresco-build
19d76702bd [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-2 2016-08-25 18:55:58 +01:00
Martin Bergljung
b88a0ae73b Removed the need for SDK version in RunMojo 2016-08-24 14:19:23 +01:00
alfresco-build
30d72ee6bd [maven-release-plugin] prepare for next development iteration 2016-08-22 11:35:10 +01:00
alfresco-build
75672bd2c4 [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-1 2016-08-22 11:35:00 +01:00
Ole Hejlskov
58843e516c Revert version after Bamboo failed 2016-08-22 12:28:48 +02:00
alfresco-build
db8c5e9cfd [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-1 2016-08-22 11:19:54 +01:00
alfresco-build
027ddb7df8 [maven-release-plugin] prepare for next development iteration 2016-08-22 11:09:33 +01:00
alfresco-build
9faf59972b [maven-release-plugin] prepare release alfresco-sdk-aggregator-3.0.0-beta-1 2016-08-22 11:09:29 +01:00
Ole Hejlskov
89566dc20b Don't hardcode a static copy of out dated h2 scripts 2016-08-22 11:57:27 +02:00
Ole Hejlskov
4bea907d8d Fix dynamic version for share-jar archetype as well 2016-08-22 11:53:59 +02:00
Martin Bergljung
89d4d7921a Fix dynamic setting of Alfresco Maven Plugin version 2016-08-22 10:52:04 +01:00
Martin Bergljung
c41d713643 For Solr data path on Windows machines 2016-08-22 10:08:27 +01:00
Martin Bergljung
a49c657441 Fixed content model to avoid confusion, remove property named property etc 2016-08-22 07:42:45 +01:00
Martin Bergljung
8968f8227b Fixed bug in share-jar project Alfresco Maven plugin config 2016-08-19 16:04:17 +01:00
Martin Bergljung
595a1c4cbc Fix mixup of module dependencies 2016-08-19 13:23:06 +01:00
Martin Bergljung
6bc23959b8 Added aikau.version prop and dependency so it can be brought in separately 2016-08-19 11:56:58 +01:00
Martin Bergljung
b84bcf798c Enterprise edition support, including license injection 2016-08-18 18:46:24 +01:00
Ole Hejlskov
38f69583d4 Bring back h2 support by copying them manually. Even though we have h2scripts from 5.1.e we don't have it for the older releases 2016-08-18 18:00:35 +02:00
Martin Bergljung
e997a33fc9 Fix h2 scripts for 5.0.[b|c], handle alfresco-platform or alfresco, clarify props docs 2016-08-18 13:49:41 +01:00
Martin Bergljung
07c06a2bbd Fixing hard-coded artifactId aio 2016-08-18 11:37:43 +01:00
Martin Bergljung
a724b3596e First take on supporting 4.2 in SDK 3, and fix WAR assembly 2016-08-18 09:41:42 +01:00
Martin Bergljung
d46fa394e7 Share JAR Maven Archetype for SKD 3.0 2016-08-16 15:56:37 +01:00
Martin Bergljung
101a04e309 Platform JAR Maven Archetype for SKD 3.0 2016-08-16 14:52:42 +01:00
Martin Bergljung
6eb8903562 AIO Maven Archetype for SKD 3.0 2016-08-16 11:06:24 +01:00
Martin Bergljung
4fca9989fd Added support for running version 5.0.x 2016-07-06 16:46:11 +01:00
Martin Bergljung
e8c1e19ecb Removed some params, changed module lists param names 2016-06-30 14:55:31 +01:00
Martin Bergljung
9ff222e8ed War assembly now handled by alfresco plugin, no need for war poms 2016-06-30 13:07:46 +01:00
Martin Bergljung
a05d69eac2 Removed context files for Share and Platform webapps, no longer needed, handled by jrebel 2016-06-27 15:47:16 +01:00
Martin Bergljung
e9fa82da5c Fixed refresh URL tomcat port default 2016-06-27 15:09:07 +01:00
Martin Bergljung
d2c6335869 Alfresco Maven plugin work for SDK 3 2016-06-23 12:38:59 +01:00
alfresco-build
3010c9773a [maven-release-plugin] prepare for next development iteration 2016-03-03 17:01:35 +00:00
alfresco-build
b7fff632e7 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.2.0 2016-03-03 17:01:29 +00:00
Ole Hejlskov
5b3b5d3914 Bump version down to 2.2.0-SNAPSHOT 2016-03-03 17:04:19 +01:00
Martin Bergljung
9b5db76577 Fix for share-amp/run.bat 2016-03-03 15:59:52 +00:00
Ole Hejlskov
43ad42aac8 Merge pull request #367 from jphuynh/master
Logo image source link was dead. Fixed that to use the logo published…
2016-03-03 16:33:35 +01:00
Jean-Pierre Huynh
9c5f1e9e0d Logo image source link was dead. Fixed that to use the logo published on wiki.alfresco.com. 2016-03-03 14:23:12 +00:00
alfresco-build
c46b0b86d2 [maven-release-plugin] prepare for next development iteration 2016-03-03 11:39:37 +00:00
alfresco-build
99031d5def [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.2.0 2016-03-03 11:39:32 +00:00
Ole Hejlskov
0bdacc4787 Realign ID's for authentication with Nexus 2016-03-03 11:53:40 +01:00
Ole Hejlskov
b6e170a0ce Remove 5.1 EA repositories 2016-03-03 11:40:19 +01:00
Ole Hejlskov
a37b121cb6 Add Alfresco REST API Explorer, see #366 for more details 2016-03-03 11:12:10 +01:00
Martin Bergljung
c7591ca848 #364 2016-02-29 16:35:43 +00:00
Martin Bergljung
54a067325a #356 - minor fix in run.bat 2016-02-29 15:32:31 +00:00
Martin Bergljung
ceed7af6fe #356 2016-02-29 15:14:15 +00:00
Martin Bergljung
377aaa5459 #355 2016-02-29 11:27:04 +00:00
Martin Bergljung
b226302572 Merge pull request #331 from Alfresco/slanglois-issue-298
#298 Define argLine as a property, not in surefire
2016-02-29 09:18:08 +00:00
Martin Bergljung
876f6286fc Bring branch up to date 2016-02-29 09:16:50 +00:00
Martin Bergljung
5d59d6cd27 Added back Spring Loaded when running Share AMP 2016-02-29 08:58:22 +00:00
Martin Bergljung
6d4b901129 Merge pull request #359 from loftuxab/utf8-url-fix
The current configuration doesn't encode url:s tomcat7-maven-plugin.
2016-02-29 08:23:47 +00:00
Peter Löfgren
0854929d99 The current configuration doesn't encode url:s properly and this breaks any pages/webscripts that uses parameters that contains non us-ascii characters. Adding the uriEncoding solves this. 2016-02-19 12:39:22 +01:00
alfresco-build
8415da72b0 [maven-release-plugin] prepare for next development iteration 2016-02-04 10:41:55 +00:00
alfresco-build
14cd4be39c [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.2.0-beta-1 2016-02-04 10:41:50 +00:00
Ole Hejlskov
f2f5698a3b Remove double activation tag from pull request #352 2016-02-04 11:00:46 +01:00
Ole Hejlskov
5b83b99549 Merge pull request #352 from michaeljmuller/master
change activation of enforce-sdk-rules so it's *really* on by default, as intended
2016-02-04 10:54:24 +01:00
Ole Hejlskov
181951ed99 Add MAVEN_OPTS that are compatible with JDK7 but comment out by default. See DEVPLAT-456 for more info 2016-02-04 10:50:21 +01:00
Ole Hejlskov
a4711142e6 Merge pull request #354 from michaeljmuller/chmod
make run.sh executable during the "validation" phase of the build
2016-02-04 10:39:06 +01:00
Michael Muller
78d1466220 make run.sh executable during the "validation" phase of the build 2016-02-03 12:00:13 -07:00
Michael Muller
d99539c9b0 change activation of enforce-sdk-rules so it's *really* on by default, as intended 2016-02-03 11:37:34 -07:00
Ole Hejlskov
30bfc14422 Fix escaping 2016-01-29 10:57:27 +01:00
Martin Bergljung
641aa6bb8e DEVPLAT-440 2016-01-25 14:37:57 +00:00
Ole Hejlskov
f031c76a41 Add JS to the nonFilteredFileExtension list. See #254 for more info 2016-01-22 16:12:30 +01:00
Ole Hejlskov
2ad03e3f5c Bump version to 2.2.0-SNAPSHOT 2016-01-22 16:05:37 +01:00
Martin Bergljung
7275ba32e8 DEVPLAT-452 2016-01-22 08:26:23 +00:00
Samuel Langlois
9bf50267dd Housekeeping: upgrading versions of dependencies and Maven plugins 2016-01-21 12:22:51 +00:00
Martin Bergljung
bbe3de2abb DEVPLAT-444 2016-01-21 11:26:15 +00:00
Samuel Langlois
5c01e8127c Change <id> of temporary Maven Repo hosting 5.1-EA, to fix CI 2016-01-21 11:20:35 +00:00
Martin Bergljung
9a1b97e64d DEVPLAT-442 2016-01-21 10:34:36 +00:00
Martin Bergljung
b3955a1b4f DEVPLAT-443 2016-01-20 10:41:06 +00:00
Martin Bergljung
2e546a1cae DEVPLAT-445 2016-01-20 10:18:04 +00:00
Martin Bergljung
9dd9f530bb DEVPLAT-333, DEVPLAT-435, DEVPLAT-436, DEVPLAT-437, DEVPLAT-438, DEVPLAT-439, DEVPLAT-447 2016-01-12 15:14:53 +00:00
Ole Hejlskov
7c0ac3afb6 Remove AMP Mojo, we only need the archiver for the AMP assembly 2015-11-08 21:22:45 +01:00
Ole Hejlskov
2cbfd36041 Bump version to 3.0.0-SNAPSHOT 2015-11-06 21:23:23 +01:00
Ole Hejlskov
9faf5114f3 Initial attempt at a JAR runner mojo 2015-11-06 21:22:58 +01:00
Ole Hejlskov
27bcaa3daf Revert "Revert "DEVPLAT-338, Incorrect naming of AIO AMPs, #311""
This reverts commit b2afebed09.
2015-11-06 21:16:57 +01:00
Ole Hejlskov
8f29244d99 Changed my info for future reference. I no longer work with Magenta 2015-10-19 17:55:01 +02:00
Ole Hejlskov
87af573673 Updated README with 2.1.1 information 2015-10-19 17:15:50 +02:00
alfresco-build
d53184196b [maven-release-plugin] prepare for next development iteration 2015-10-19 11:20:20 +01:00
alfresco-build
4431863500 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.1 2015-10-19 11:20:15 +01:00
alfresco-build
d2e9b89720 [maven-release-plugin] prepare for next development iteration 2015-10-09 15:34:00 +01:00
alfresco-build
cda786187c [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.1-beta-3 2015-10-09 15:33:54 +01:00
Ole Hejlskov
8cf04fc98d Revert "[maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.1-beta-1"
This reverts commit 3b579596db.
2015-10-09 15:55:24 +02:00
alfresco-build
3b579596db [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.1-beta-1 2015-10-09 14:19:39 +01:00
Ole Hejlskov
b2afebed09 Revert "DEVPLAT-338, Incorrect naming of AIO AMPs, #311"
This reverts commit 6c57d9ede0.

We can't put this commit in a SP release, so we have to revert the revert when we need it back
2015-10-09 13:48:22 +02:00
Martin Bergljung
3707dbc5d6 DEVPLAT-343, alfresco-sdk uses relative path for dir.root,#289 2015-10-07 19:50:34 +01:00
Martin Bergljung
f3d85a19ce DEVPLAT-342, Define argLine property rather than setting it in surefire, to ease integration with other plugins, #298 2015-10-07 13:01:54 +01:00
Martin Bergljung
6c57d9ede0 DEVPLAT-338, Incorrect naming of AIO AMPs, #311 2015-10-07 10:45:51 +01:00
Martin Bergljung
0958c63b44 DEVPLAT-337, AIO/share-amp share-config-custom.xml changes are not loaded, #299 2015-10-05 13:47:14 +01:00
Martin Bergljung
eeb5e7304f DEVPLAT-108, Repo-amp contains unwanted libs after running amp-to-war 2015-10-02 09:20:45 +01:00
alfresco-build
8d06e0e791 [maven-release-plugin] prepare for next development iteration 2015-09-28 13:12:09 +01:00
alfresco-build
a11a3a65b6 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.1-beta-2 2015-09-28 13:12:03 +01:00
Ole Hejlskov
5936c3fcda Merge pull request #326 from binovo/Issue/317
fix issue #317
2015-09-24 15:15:47 +02:00
Samuel Langlois
3e7a6d83a9 #298 Define argLine as a property, not in surefire
Allows other plugins (such as JaCoCo) to tune the argLine parameters of the JVM forked by surefire
2015-09-16 17:03:40 +01:00
alfresco-build
235a84105a [maven-release-plugin] prepare for next development iteration 2015-09-01 09:04:47 +01:00
alfresco-build
3465b3aaf5 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.1-beta-1 2015-09-01 09:04:41 +01:00
Ole Hejlskov
509e4072e8 Revert version back to 2.1.1-SNAPSHOT 2015-09-01 09:29:52 +02:00
alfresco-build
6e7e2d7740 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.0.0 2015-08-31 15:08:14 +01:00
Martin Bergljung
841c72e64a DEVPLAT-258,Ensure demoComponent is loaded properly,#220 2015-08-27 08:23:47 +01:00
Martin Bergljung
6b83be9d9f DEVPLAT-83 - Remove plexus-archiver from maven-war-plugin definition in parent SDK pom 2015-08-26 12:11:52 +01:00
Martin Bergljung
f4c9a36256 DEVPLAT-107 - Add scope test to <artifactId>selenium-java</artifactId> in aio/share-amp/pom.xml, #300 2015-08-26 11:43:59 +01:00
Martin Bergljung
7309916d83 DEVPLAT-151 - Files that are generated from the Share AMP archetype needs unique names 2015-08-26 10:22:45 +01:00
mindthegab
de723e44ff Fix DOCS-1155 2015-08-12 16:48:07 -04:00
Igor Blanco
60dac34448 fix issue #317 2015-08-03 15:50:41 +02:00
mindthegab
477067a992 udpated release profile to run enterprise-tests as per issue #314 2015-07-30 14:16:18 -04:00
mindthegab
016879ec87 added link to command reference in response to request on issue #309 2015-07-30 14:12:20 -04:00
mindthegab
97cbaefc6f fixed issue #314 - by default now mvn clean install works without enterprise access. to run enterprise-tests use -Penterprise-tests 2015-07-30 13:46:54 -04:00
Samuel Langlois
c854a0aad3 Issue #301: remove JDK8 specific flag for Javadoc 2015-07-23 10:24:52 +01:00
Samuel Langlois
d483c01a6c Set ALL settings to Java 7 for compiler plugin + remove test on JDK version 2015-07-23 10:15:45 +01:00
mindthegab
3116123800 reverted target version for the SDK to java7 for issue #301, added some logging for issue #297 2015-07-22 17:10:26 -04:00
mindthegab
a39a11ffe7 fixed issue #297, now webappDirectory is honored if present 2015-06-01 18:13:36 +01:00
mindthegab
41dd5ff1ea imprving unarchiver logging 2015-06-01 12:54:13 +01:00
mindthegab
2a3eb3919e improved logging 2015-05-29 17:00:19 -04:00
mindthegab
f9c4647f22 more fixes for issue #254 2015-05-29 10:31:17 -04:00
mindthegab
bc97442af7 Merge pull request #288 from jphuynh/master
DEVPLAT-75: Added Alfresco PGP public key and fingerprint information
2015-05-22 09:46:55 -04:00
Jean-Pierre Huynh
9c49d6c7f9 DEVPLAT-75: Added Alfresco PGP public key and fingerprint information 2015-05-21 07:29:06 +01:00
mindthegab
2453421d1b Update README.md 2015-05-20 18:28:36 -04:00
mindthegab
5e17baa651 Update README.md 2015-05-20 18:19:32 -04:00
mindthegab
c3b43c0c68 Update README.md 2015-05-20 18:18:28 -04:00
mindthegab
6f0589ce63 Update README.md 2015-05-20 18:17:08 -04:00
mindthegab
abee710157 Updated readme.MD 2015-05-20 18:12:53 -04:00
mindthegab
19b0d1d8a7 Updated README for SDK 2.1.0 release 2015-05-20 18:07:52 -04:00
mindthegab
6ebaa083d4 Merge pull request #281 from Alfresco/readme-update
Updated SDK README, needs further edits.
2015-05-20 17:23:33 -04:00
mindthegab
80f62c65ca Merge branch 'master' of https://github.com/Alfresco/alfresco-sdk 2015-05-20 12:01:22 -04:00
mindthegab
f946d711ea issue #267 - added logging to install amp goal 2015-05-20 12:01:07 -04:00
alfresco-build
4a25c4ceba [maven-release-plugin] prepare for next development iteration 2015-05-20 13:24:05 +01:00
alfresco-build
6140990608 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.0 2015-05-20 13:24:00 +01:00
Martin Bergljung
6a6fcacf78 DEVPLAT-72: Move site-webscripts and site-data in under web-extension for share-amp 2015-05-18 14:11:06 +01:00
Martin Bergljung
3a9f08620a DEVPLAT-71: Set <disable-resource-caching> to false for AIO and Share AMP 2015-05-18 11:33:26 +01:00
Martin Bergljung
8b48a63e0a DEVPLAT-70, the share/src/test directory in the AIO artefact is not generated 2015-05-18 09:22:01 +01:00
Martin Bergljung
d0fdd2fdfe Updated enforcer plugin config, DEVPLAT-67 2015-05-15 11:11:40 +01:00
mindthegab
603fe956c6 DEVPLAT-67 - partial update for JDK 8 2015-05-14 11:00:21 -04:00
mindthegab
ccb6728e4c Merge branch 'master' of https://github.com/Alfresco/alfresco-sdk 2015-05-14 10:49:37 -04:00
mindthegab
3ef4131ce8 Fixing javadoc strict build 2015-05-14 10:38:18 -04:00
Martin Bergljung
f1735544ab Fixed Solr Data Dir path on Windows, #284 2015-05-14 11:38:12 +01:00
Ole Hejlskov
ee6861e873 Bump to Java 8 by default 2015-05-12 17:24:48 +02:00
Ole Hejlskov
2a45c2eaa5 Merge pull request #277 from rpiccoli/master
Alfresco 5.0.1 supports Java 8, but Maven Compiler settings are hardcode...
2015-05-12 17:07:49 +02:00
Martin Bergljung
b33837280d Added Java controller to sample webscript 2015-05-12 10:47:34 +01:00
Ole Hejlskov
748231a932 Rename properties to a more consistent scheme. All refresh mojo related properties are now maven.alfresco.refresh.* (#283) 2015-05-11 15:39:42 +02:00
Ole Hejlskov
8707fbebbf Merge branch 'master' of https://github.com/Alfresco/alfresco-sdk 2015-05-11 15:23:56 +02:00
Ole Hejlskov
8d5d26a1a5 Add the alfresco-maven-plugin to AIO parent poms so the plugin shows up in IDEA (#283) 2015-05-11 15:23:14 +02:00
alfresco-build
0f6b82d7f1 [maven-release-plugin] prepare for next development iteration 2015-05-11 14:12:53 +01:00
alfresco-build
c7559ba8ea [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.0-beta-1 2015-05-11 14:12:48 +01:00
Ole Hejlskov
96efddd7af Refactor Refresh Mojo's to be more dynamic and aware of its sourroundings (#283) 2015-05-11 14:11:38 +02:00
alfresco-build
1a95fab1eb [maven-release-plugin] prepare for next development iteration 2015-05-11 12:48:58 +01:00
alfresco-build
85ea35c7b6 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.0-beta-1 2015-05-11 12:48:53 +01:00
alfresco-build
788b64ccc6 [maven-release-plugin] prepare for next development iteration 2015-05-11 10:58:09 +01:00
alfresco-build
ec8c8748e8 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.0-beta-1 2015-05-11 10:58:03 +01:00
Martin Bergljung
b3d1a5b3d1 Removed PermGen JVM setting from run scripts, not used in JDK8 2015-05-11 09:58:12 +01:00
Martin Bergljung
b265ffb00e DEVPLAT-31: JS Compression, regression fix, #269 2015-05-11 08:00:42 +01:00
alfresco-build
d5e9278d52 [maven-release-plugin] prepare for next development iteration 2015-05-08 16:23:07 +01:00
alfresco-build
db7e154a31 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.0-beta-1 2015-05-08 16:23:01 +01:00
Ole Hejlskov
b84ea0ffb3 Merge branch 'master' of https://github.com/Alfresco/alfresco-sdk 2015-05-08 16:28:11 +02:00
Ole Hejlskov
56f8336af3 Fix a few issues in refresh-share goal (defaults) and read port from maven.tomcat.port.
Fix XML issue in AIO PO testing suite to keep Eclipse happy
2015-05-08 16:27:20 +02:00
alfresco-build
790b8cdfdb [maven-release-plugin] prepare for next development iteration 2015-05-08 15:24:59 +01:00
alfresco-build
dbec475d0b [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.0.1-beta-1 2015-05-08 15:24:54 +01:00
alfresco-build
c541f66845 [maven-release-plugin] prepare for next development iteration 2015-05-07 15:19:15 +01:00
alfresco-build
fab637d1cb [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.0-beta-1 2015-05-07 15:19:10 +01:00
mindthegab
e8c7fdbc8b fixed version 2015-05-07 09:42:45 -04:00
mindthegab
b178eaffaa fixed broken version by CI 2015-05-07 09:26:56 -04:00
Martin Bergljung
8fa82cfad5 Fixed regression testing for Community Share #217 2015-05-07 10:00:40 +01:00
Martin Bergljung
f050c75615 Updated SDK README 2015-05-06 09:38:04 +01:00
alfresco-build
f3f70d6035 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.1.0-beta-1 2015-05-05 23:16:09 +01:00
Martin Bergljung
da6c97d857 DEVPLAT-58 - replace refresh profiles with alfresco-maven-plugin goals 2015-05-01 16:18:54 +01:00
Ricardo Piccoli
d4872f7e1a Alfresco 5.0.1 supports Java 8, but Maven Compiler settings are hardcoded to 1.7 2015-05-01 14:10:16 +01:00
Martin Bergljung
c79889e662 Added run.bat files to archetypes 2015-04-30 08:42:19 +01:00
Martin Bergljung
ed7e5e2ead DEVPLAT-49 - Split clear-caches-refresh-ws profile into one for repo and one for share and make port number configurable 2015-04-28 15:21:44 +01:00
Ricardo Piccoli
126747dbc9 Alfresco 5.0.1 supports Java 8, but Maven Compiler settings are hardcoded to 1.7 2015-04-28 10:41:06 +01:00
Martin Bergljung
4c0e340ab4 DEVPLAT-6: Fix regression and functional IT (still needs proper release of share-po) 2015-04-27 14:22:35 +01:00
Samuel Langlois
cf86202c28 Upgrade Enterprise default version to 5.0.1 2015-04-22 18:33:12 +01:00
Martin Bergljung
d8816d7fa7 DEVPLAT-50 2015-04-21 09:42:16 +01:00
Martin Bergljung
e2da89679c DEVPLAT-31: Add JS minification, #269 2015-04-08 14:45:23 +01:00
Martin Bergljung
c9865d2295 DEVPLAT-44: Image corrupted when overriding the favicon.ico file, #267 2015-04-08 14:41:21 +01:00
Ole Hejlskov
a7856633ec Set virtual class path up correctly. Running 'mvn compile' makes sure the changes
end up in target/${project.build.finalName}/config. This causes issues when
changing existing files after starting/restarting, since integration-test makes
the files appear in target/test-classes. The app would then only serve the file
in target/test-classes and ignore the rest.

By switching these we can strive for having 'mvn compile' do everything we need
to ensure hot reloading works.
2015-04-07 17:37:24 +02:00
Ole Hejlskov
c62178aadf Clear cache/web scripts profile now hooks in the right phase and works as expected 2015-04-07 16:47:02 +02:00
Martin Bergljung
12807d4af3 Fixed parent sdk pom conflicts 2015-04-07 09:50:48 +01:00
Martin Bergljung
10bd148795 DEVPLAT-43 2015-04-07 09:35:19 +01:00
mindthegab
4e625f0ce3 Merge branch 'master' of https://github.com/Alfresco/alfresco-sdk
Conflicts:
	poms/alfresco-sdk-parent/pom.xml
2015-04-02 13:25:46 -04:00
mindthegab
db3e891c05 fixed issue 254 - added css to the non filtered list 2015-04-02 13:22:51 -04:00
Martin Bergljung
60193a7029 DEVPLAT-13,14,31-37 2015-04-02 16:10:53 +01:00
Martin Bergljung
a04ef8ad72 Merge branch 'master' of https://github.com/Alfresco/alfresco-sdk 2015-03-24 14:24:26 +00:00
Martin Bergljung
221752ef0d Backed out of H2 version 1.4.186 (hangs on second start), DEVPLAT-21 2015-03-24 14:24:06 +00:00
mindthegab
593f4e9143 Update README.md 2015-03-23 15:58:56 -04:00
mindthegab
c7296f71c2 Update README.md 2015-03-23 15:56:55 -04:00
Martin Bergljung
d2aa943430 Merge branch 'master' of https://github.com/Alfresco/alfresco-sdk 2015-03-22 15:15:45 +00:00
Martin Bergljung
ca3fea4e1b DEVPLAT-3,DEVPLAT-4 2015-03-22 15:14:08 +00:00
mindthegab
6ff39d81ff Update README.md 2015-03-18 13:06:39 -04:00
mindthegab
9dae6e5279 Update README.md 2015-03-18 13:06:08 -04:00
mindthegab
28d475711e Update README.md 2015-03-18 12:50:13 -04:00
mindthegab
36ad3db030 -- fixes issue #262 2015-02-20 08:50:05 -05:00
mindthegab
10fb9dedac fixes issue 257 - moved to enforcer as <prerequisites> is not inherited 2015-02-18 13:31:38 -05:00
mindthegab
041f188760 [maven-release-plugin] prepare for next development iteration 2014-12-23 23:52:14 -05:00
mindthegab
ae7f3bd532 [maven-release-plugin] prepare release alfresco-sdk-aggregator-2.0.0 2014-12-23 23:52:11 -05:00
mindthegab
58cf54fe7d complete commit for issue #251 2014-12-23 23:33:14 -05:00
mindthegab
58ee1a3c79 - closes issue #251
- refactored h2 support to play nicely with IDEs and across the aio and
amp archetype use cases
- now moved the h2 support for the default alfresco version in the
alfresco-rad project, as part of the rapid application development
features
- tested all cmd line and eclipse based scenarios
- consolidated alfresco.community.default version and
alfresco.enterprise.default version and made them parametric in the
whole project
2014-12-23 23:32:10 -05:00
mindthegab
2237ab18d0 [maven-release-plugin] prepare for next development iteration 2014-12-23 15:30:15 -05:00
336 changed files with 11749 additions and 10332 deletions

1
.gitignore vendored
View File

@@ -12,3 +12,4 @@ pom.xml.next
release.properties
**.settings
**bin
*.DS_Store

67
ISSUE_TEMPLATE.md Normal file
View File

@@ -0,0 +1,67 @@
<!--
If you are reporting a new issue, make sure that we do not have any duplicates
already open. You can ensure this by searching the issue list for this
repository. If there is a duplicate, please close your issue and add a comment
to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to
include the BUG REPORT INFORMATION shown below. If you fail to provide this
information within 7 days, we cannot debug your issue and will close it. We
will, however, reopen it if you later provide the information.
---------------------------------------------------
GENERAL SUPPORT INFORMATION
---------------------------------------------------
The GitHub issue tracker is for bug reports and feature requests.
General support can be found at the following locations:
- Alfresco Community - https://community.alfresco.com/community/ecm
- Post a question on StackOverflow, using the Alfresco tag
-->
## I'm submitting a ... (check one with "x")
```
[ ] bug report => search github for a similar issue or PR before submitting
[ ] feature request
```
<!--- Provide a general summary of the issue in the Title above -->
## Expected Behavior
<!--- If you're describing a bug, tell us what should happen -->
<!--- If you're suggesting a change/improvement, tell us how it should work -->
## Current Behavior
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
<!--- If suggesting a change/improvement, explain the difference from current behavior -->
## Possible Solution
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
<!--- or ideas how to implement the addition or change -->
## Steps to Reproduce (for bugs)
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
5.
## Context
<!--- How has this issue affected you? What are you trying to accomplish? -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Your Environment
<!--- Include as many relevant details about the environment you experienced the bug in -->
* Alfresco SDK version used: <!-- 2.1 / 2.2 / 3.0betaX-->
* Alfresco version used: <!-- Enterprise 5.1, Community 5.0.f or ...-->
* Output of command 'mvn -version': <!-- Maven/JDK version-->
* Link to your project: <!-- optional for having a minimal example-->
## Additional information
<!-- include screenshots or any other hint you mave have for us -->

66
KEYS
View File

@@ -9,6 +9,10 @@ Developers:
(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
@@ -86,4 +90,66 @@ 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-----

127
README.md
View File

@@ -1,68 +1,71 @@
# [![Alfresco SDK logo](https://github.com/Alfresco/alfresco-sdk/raw/master/src/site/resources/img/alfresco-maven-logo.jpg)](#features) Alfresco SDK
SDK for Alfresco Development, Testing, packaging and custom project lifecycle management based on Apache Maven.
This is the home of the Alfresco SDK. The Alfresco SDK is used by developers to build extensions for the Alfresco Digital Business Platform. It is based on [Apache Maven](http://maven.apache.org/), compatible with major IDEs and enables Rapid Application Development (RAD) and Test Driven Development (TDD).
Includes support for rapid and standard development, testing, packaging, versioning and release of your Alfresco integration and extension projects.
## SDK 2.0.0 release candidate now in staging!
We are approaching the final 2.0.0 release of the SDK (compatible with Alfresco Community 5.0.c and Enterprise 5.0). If you want early access to the release candidate build and want to participate to the testing process check [this page](https://github.com/Alfresco/alfresco-sdk/wiki/SDK-Supported-Features-and-Test-plan) and report issues [here](https://github.com/Alfresco/alfresco-sdk/issues).
Once the vote is closed the SDK will be available in Maven Central.
# Check the SDK out!
For an overview of the SDK potential check out this video:
[![Alfresco SDK 2.x howto](http://img.youtube.com/vi/utYZaVe9Nd0/0.jpg)](https://www.youtube.com/watch?v=utYZaVe9Nd0)
The SDK is composed of:
- An [SDK Parent POM](https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-lifecycle-aggregator/latest/poms/alfresco-sdk-parent/index.html) which you can use in your projects to enable rapid Alfresco development features
- An [Alfresco Platform Distribution POM](https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-platform-distribution/latest/index.html) which pre-configures versions of Alfresco and common 3rd party dependency libraries, for stability purposes
- A [Maven Alfresco Plugin](https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-lifecycle-aggregator/latest/plugins/alfresco-maven-plugin/index.html) which provides AMP packaging and installation facilities (a la MMT) and other common goals for Alfresco development
- A number of *Maven Archetypes* (sample projects) including:
1. [Alfresco Repository AMP Archetype](https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-lifecycle-aggregator/latest/archetypes/alfresco-amp-archetype/index.html)
2. [Alfresco Share AMP Archetype](https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-lifecycle-aggregator/latest/archetypes/share-amp-archetype/index.html)
3. [Alfresco All-in-One Archetype](https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-lifecycle-aggregator/latest/archetypes/alfresco-allinone-archetype/index.html)
## Resources
### Developer Documentation
**SDK 2.x**: Full documentation is available at the [Alfresco SDK site](https://artifacts.alfresco.com/nexus/content/groups/public/alfresco-sdk-aggregator/latest/index.html).
### Alfresco Official Documentation
Additional documentation for Alfresco Community and Enterprise, tutorials and examples is available in the [Alfresco Documentation](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html).
### Samples
Advanced sample projects are maintained by @ohej in the [Alfresco SDK Samples project](https://github.com/Alfresco/alfresco-sdk-samples/).
### Contribute
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).
## Maven Repositories
The Alfresco SDK is released in Maven Central as of version 2.0-beta-1.
Alfresco (Community and Enterprise) artifacts are instead hosted in the [Alfresco Artifacts Repository](https://artifacts.alfresco.com/nexus/).
Alfresco Community artifacts (JARs, WARs, AMPs, poms) and SDK artifacts are publicly available.
for Enterprise and Premiere licensed software access you need to get credential via the Alfresco Enterprise Support. See [public docs](http://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-tutorials-alfresco-enterprise.html) or [this KB (login required)](https://myalfresco.force.com/support/articles/en_US/Technical_Article/Where-can-I-find-the-repository-for-Enterprise-Maven-artifacts) for more details.
## License and Support
This project is released under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). It's a community driven project which is supported for Alfresco Development (please refere to the official [Alfresco Documentation](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html) for supported features.
## 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
- 2014-12-20: SDK 2.0.0 in staging. If you want early access to the release candidate build and want to participate to the testing process check [this page](https://github.com/Alfresco/alfresco-sdk/wiki/SDK-Supported-Features-and-Test-plan) and report issues [here](https://github.com/Alfresco/alfresco-sdk/issues).
- 2014-09-10: SDK 2.0.0-beta-4 released to Maven Central and in the [Archetype Catalog](http://repo1.maven.org/maven2/archetype-catalog.xml)!
- 2014-09-09: SDK 2.0.0-beta-3 released to Maven Central
- 2014-08-30: SDK 2.0.0-beta-1 and 2.0.0-beta-2 available in [Maven Central](http://search.maven.org/#search|ga|1|org.alfresco.maven)
- 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), including tags, branches, issues. Allow a little time for a full cleanup of issue labels and to sort repository permissions. Please update obsolete references and bear with us as we update Alfresco Documentation to this change.
- 2017-03-27: After years of hard work, countless iterations and gathering feedback, SDK 3.0 has finally been merged into the master branch, ready for release in the coming days
- 2016-02-20: SDK 2.2.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html), [Release notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/latest/github-report.html)
- 2015-10-19: SDK 2.1.1 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
- 2015-05-20: SDK 2.1.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
- 2014-12-23: SDK 2.0.0 release to Maven Central. [Docs](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html), [Release Notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/archive/2.0.0/github-report.htm)
- 2014-08-22: First SNAPSHOT of SDK 2.0.0 in the [OSS Sonatype Repository](https://oss.sonatype.org/content/repositories/snapshots/org/alfresco/maven/alfresco-sdk-parent/2.0.0-SNAPSHOT/)!
- 2014-07: Project fully migrated from [Google Code](https://code.google.com/p/maven-alfresco-archetypes).
## User Getting Started
### Latest Documentation
To get started with Alfresco SDK 2.2.0 (latest) visit the offical Alfresco Documentation for:
- [Alfresco Community 5.1 and above](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html)
- [Alfresco Enterprise 5.1 and above](http://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html)
#### Previous versions Documentation
- Documentation for [Alfresco SDK 2.1](http://docs.alfresco.com/sdk2.1/concepts/alfresco-sdk-intro.html) (compatible with Alfresco 5.0.d Community and 5.0.1 Enterprise)
- Documentation for [Alfresco SDK 2.0](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html) (compatible with Alfresco 5.0.c 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)
## Reporting Issues and Community Support
Report issues (and contribute!) [here](https://github.com/Alfresco/alfresco-sdk/issues?milestone=1&state=open) or join us on the [IRC Channel](http://chat.alfresco.com/).
## Alfresco Enterprise Customers and Partners Support
If you are an Alfresco Customer please check the [SDK Support status](http://www.alfresco.com/services/subscription/technical-support/product-support-status) for the version you are using and the [Compatibily Matrix](http://docs.alfresco.com/community/concepts/alfresco-sdk-compatibility.html) for the SDK / Alfresco compatibility. If your version is in Limited or Full Support, you can raise issues via the [Support Portal](http://support.alfresco.com).
## 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).

1
archetypes/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.DS_Store

View File

@@ -0,0 +1 @@
*.DS_Store

View File

@@ -3,16 +3,16 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.alfresco.maven.archetype</groupId>
<artifactId>alfresco-amp-archetype</artifactId>
<artifactId>activiti-jar-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>
<name>Alfresco SDK - Activiti JAR Archetype</name>
<description>Sample project with full support for lifecycle and rapid development of Activiti JARs</description>
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-sdk-aggregator</artifactId>
<version>2.0.0</version>
<version>3.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -23,6 +23,10 @@
<includes>
<include>archetype-resources/pom.xml</include>
<include>archetype-resources/run.sh</include>
<include>archetype-resources/run.bat</include>
<include>archetype-resources/debug.sh</include>
<include>archetype-resources/debug.bat</include>
<include>META-INF/maven/archetype-metadata.xml</include>
</includes>
<filtering>true</filtering>
</resource>
@@ -31,14 +35,19 @@
<excludes>
<exclude>archetype-resources/pom.xml</exclude>
<exclude>archetype-resources/run.sh</exclude>
<exclude>archetype-resources/run.bat</exclude>
<exclude>archetype-resources/debug.sh</exclude>
<exclude>archetype-resources/debug.bat</exclude>
<exclude>META-INF/maven/archetype-metadata.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>

View File

@@ -0,0 +1,68 @@
<?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="Activiti JAR Archetype"
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<requiredProperties>
<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="true">
<directory>src/main/resources</directory>
<includes>
<include>**/bpmn-models/**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/resources</directory>
<excludes>
<exclude>**/bpmn-models/**</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="true">
<directory>src/test/resources</directory>
<includes>
<include>log4j-dev.properties</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/resources</directory>
<excludes>
<exclude>log4j-dev.properties</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/license</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory></directory>
<includes>
<include>debug.sh</include>
<include>debug.bat</include>
<include>run.sh</include>
<include>run.bat</include>
<include>README.md</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>
R

View File

@@ -0,0 +1,21 @@
# Alfresco Activiti JAR Module - SDK 3
To run use `mvn clean install alfresco:run` or `./run.sh` and verify that it
* Runs the embedded Tomcat + H2 DB
* Runs Activiti Explorer
* Optionally runs Activiti REST
* Packages both a JAR with customization
# Few things to notice
* No parent pom
* WAR assembly is handled by the Alfresco Maven Plugin configuration
* Standard JAR packaging and layout
* Works seamlessly with Eclipse and IntelliJ IDEA
* JRebel for hot reloading, JRebel maven plugin for generating rebel.xml, agent usage: `MAVEN_OPTS=-Xms256m -Xmx1G -agentpath:/home/martin/apps/jrebel/lib/libjrebel64.so`
* [Configurable Run mojo](https://github.com/Alfresco/alfresco-sdk/blob/sdk-3.0/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RunMojo.java) in the `alfresco-maven-plugin`
* No unit testing/functional tests just yet

View File

@@ -0,0 +1,9 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Dev environment startup script for Alfresco Community ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
set MAVEN_OPTS=-Xms1G -Xmx2G
mvnDebug clean install alfresco:run

View File

@@ -0,0 +1,3 @@
#!/bin/bash
MAVEN_OPTS="-Xms1G -Xmx2G" mvnDebug clean install alfresco:run

View File

@@ -0,0 +1,295 @@
<?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} Activiti Jar Module - SDK 3</name>
<description>Activiti JAR Module that produces a JAR file with Java extensions such as service task delegates. It also produces an application ZIP with workflow definition, forms etc that can be deployed via /activiti-app - SDK 3</description>
<packaging>jar</packaging>
<properties>
<!-- Alfresco Maven Plugin version to use -->
<alfresco.sdk.version>@@alfresco.sdk.parent.version@@</alfresco.sdk.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Base directory for all RDBMS data and Content data -->
<activiti.datadir>${project.basedir}/activiti_data_dev</activiti.datadir>
<!-- Properties used in dependency declarations, you don't usually need to change these -->
<activiti.groupId>com.activiti</activiti.groupId>
<activiti.app.war.artifactId>activiti-app</activiti.app.war.artifactId> <!--This contains the Alfresco Activiti webapp, including the workflow engine. This webapp is also the user interface for people involved in the task and processes running in the Activiti engine. You also use this webapp to create and manage process definitions, and to display and define analytics reports on users' tasks and processes. -->
<activiti.admin.war.artifactId>activiti-admin</activiti.admin.war.artifactId> <!-- This contains the Alfresco Activiti Administrator webapp. You use this to administer and monitor your Alfresco Activiti engines.-->
<!-- The version of the Alfresco Activiti Enterprise Workflow Engine that the customization will run in -->
<activiti.version>1.5.3</activiti.version>
<!-- JRebel Hot reloading of classpath stuff and web resource stuff -->
<jrebel.version>1.1.6</jrebel.version>
<!-- Compile with Java 7, default is 5 -->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<!-- The main Activiti Enterprise application dependency that brings in all
needed classes to compile your customizations -->
<dependency>
<groupId>${activiti.groupId}</groupId>
<artifactId>activiti-app-logic</artifactId>
<version>${activiti.version}</version>
<exclusions>
<!-- Exclude the SLF4J JAR so we don't get multiple binding warnings when running -->
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- Logging, maybe needed for testing....
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
-->
</dependencies>
<build>
<plugins>
<!-- Create the BAR with project process definitions, forms etc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>create-app-zip</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<zip destfile="${project.build.directory}/${project.artifactId}-app-${project.version}.zip">
<fileset dir="src/main/resources/apps/helloworld">
<include name="**"/>
</fileset>
</zip>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<!--
The Alfresco Maven Plugin contains all the logic to run the extension
in an embedded Tomcat with the H2 database.
-->
<plugin>
<groupId>org.alfresco.maven.plugin</groupId>
<artifactId>alfresco-maven-plugin</artifactId>
<version>${alfresco.sdk.version}</version>
<configuration>
<!-- We need the flat file H2 database to run Activiti -->
<enableH2>true</enableH2>
<!-- Bring in the Activiti Workflow Engine and Management webapp (i.e. activiti-app.war) -->
<enableActivitiApp>true</enableActivitiApp>
<!-- Optionally bring in the Activiti Admin App (i.e. activiti-admin.war) -->
<enableActivitiAdmin>false</enableActivitiAdmin>
<!-- Disable all Alfresco ECM apps by default -->
<alfrescoEdition>community</alfrescoEdition>
<enablePlatform>false</enablePlatform>
<enableSolr>false</enableSolr>
<enableShare>false</enableShare>
<!--
JARs that should be overlayed/applied to the Activiti App WAR
(i.e. activiti-app.war)
-->
<activitiModules>
<!-- Bring in this JAR project, need to be included here, otherwise resources from META-INF
will not be loaded, such as the test.html page
-->
<moduleDependency>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
</moduleDependency>
</activitiModules>
</configuration>
</plugin>
<!-- Hot reloading with JRebel -->
<plugin>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<version>${jrebel.version}</version>
<executions>
<execution>
<id>generate-rebel-xml</id>
<phase>process-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- For more information about how to configure JRebel plugin see:
http://manuals.zeroturnaround.com/jrebel/standalone/maven.html#maven-rebel-xml -->
<classpath>
<fallback>all</fallback>
<resources>
<resource>
<!--
Empty resource element marks default configuration. By
default it is placed first in generated configuration.
-->
</resource>
</resources>
</classpath>
<!--
alwaysGenerate - default is false
If 'false' - rebel.xml is generated if timestamps of pom.xml and the current rebel.xml file are not equal.
If 'true' - rebel.xml will always be generated
-->
<alwaysGenerate>true</alwaysGenerate>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions> <!-- jpg, jpeg, gif, bmp and png are added automatically -->
<nonFilteredFileExtension>ftl</nonFilteredFileExtension>
<nonFilteredFileExtension>acp</nonFilteredFileExtension>
<nonFilteredFileExtension>svg</nonFilteredFileExtension>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
<nonFilteredFileExtension>doc</nonFilteredFileExtension>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>ppt</nonFilteredFileExtension>
<nonFilteredFileExtension>pptx</nonFilteredFileExtension>
<nonFilteredFileExtension>bin</nonFilteredFileExtension>
<nonFilteredFileExtension>lic</nonFilteredFileExtension>
<nonFilteredFileExtension>swf</nonFilteredFileExtension>
<nonFilteredFileExtension>zip</nonFilteredFileExtension>
<nonFilteredFileExtension>msg</nonFilteredFileExtension>
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<nonFilteredFileExtension>eot</nonFilteredFileExtension>
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
<nonFilteredFileExtension>css</nonFilteredFileExtension>
<nonFilteredFileExtension>ico</nonFilteredFileExtension>
<nonFilteredFileExtension>psd</nonFilteredFileExtension>
<nonFilteredFileExtension>js</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
<resources>
<!-- Filter the resource files in this project and do property substitutions -->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<!-- The Project JAR Should not contain any process definition stuff,
it cannot be deployed via JAR in Activiti Enterprise -->
<excludes>
<exclude>apps/**</exclude>
</excludes>
</resource>
</resources>
<testResources>
<!-- Filter the test resource files in this project and do property substitutions -->
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
<!-- Copy over the Activiti license to the classpath -->
<testResource>
<directory>src/test/license</directory>
<filtering>false</filtering>
</testResource>
</testResources>
</build>
<!--
Alfresco Maven Repositories
-->
<repositories>
<!-- Alfresco ECM -->
<repository>
<id>alfresco-public</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
</repository>
<repository>
<id>alfresco-public-snapshots</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
<!-- Alfresco Enterprise Edition Artifacts, put username/pwd for server in settings.xml -->
<repository>
<id>alfresco-private-repository</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/private</url>
</repository>
<!-- Activiti BPM -->
<repository>
<id>activiti-public</id>
<url>https://artifacts.alfresco.com/nexus/content/repositories/activiti-releases/</url>
</repository>
<repository>
<id>activiti-public-snapshots</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
<!-- Activiti Enterprise Edition Artifacts, put username/pwd for server in settings.xml -->
<repository>
<id>activiti-private-repository</id>
<url>https://artifacts.alfresco.com/nexus/content/repositories/activiti-enterprise-releases</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>alfresco-plugin-public</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
</pluginRepository>
<pluginRepository>
<id>alfresco-plugin-public-snapshots</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>

View File

@@ -0,0 +1,8 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Dev environment startup script for Alfresco Community ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
set MAVEN_OPTS=-Xms1G -Xmx2G
mvn clean install alfresco:run

View File

@@ -0,0 +1,3 @@
#!/bin/bash
MAVEN_OPTS="-Xms1G -Xmx2G" mvn clean install alfresco:run

View File

@@ -0,0 +1,38 @@
#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}.tasks.service;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.JavaDelegate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A sample service task Java implementation
*
* @author martin.bergljung@alfresco.com
*/
public class HelloWorldServiceTask implements JavaDelegate {
private static Logger logger = LoggerFactory.getLogger(HelloWorldServiceTask.class);
public void execute(DelegateExecution execution) throws Exception {
logger.debug("Hello World from the Java Service Task!");
}
}

View File

@@ -0,0 +1,20 @@
{
"models": [
{
"id": 2005,
"name": "Hello World",
"version": 1,
"modelType": 0,
"description": "The Hello World business process that is part of the Alfresco SDK 3.0 Activiti JAR Module Maven archetype",
"stencilSetId": 0,
"createdByFullName": " Administrator",
"createdBy": 1,
"lastUpdatedByFullName": " Administrator",
"lastUpdatedBy": 1,
"lastUpdated": "2016-09-29T12:38:13.716+0000"
}
],
"theme": "theme-1",
"icon": "glyphicon-cog",
"publishIdentityInfo": []
}

View File

@@ -0,0 +1,141 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<?xml version='1.0' encoding='UTF-8'?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI"
typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath"
targetNamespace="http://www.activiti.org/processdef" xmlns:modeler="http://activiti.com/modeler"
modeler:version="1.0en" modeler:exportDateTime="20160930093425488" modeler:modelId="2005"
modeler:modelVersion="11" modeler:modelLastUpdated="1475224420676">
<process id="HelloWorld" name="Hello World" isExecutable="true">
<documentation>The Hello World business process that is part of the Alfresco SDK 3.0 Activiti JAR Module Maven
archetype
</documentation>
<startEvent id="startHelloWorld" activiti:formKey="2006">
<extensionElements>
<modeler:form-reference-id><![CDATA[2006]]></modeler:form-reference-id>
<modeler:form-reference-name><![CDATA[Hello World Start]]></modeler:form-reference-name>
<modeler:editor-resource-id><![CDATA[startEvent1]]></modeler:editor-resource-id>
</extensionElements>
</startEvent>
<sequenceFlow id="sid-4A014247-BF0C-436D-B3CE-EA297F2A18FA" sourceRef="startHelloWorld"
targetRef="decideGreeting">
<extensionElements>
<modeler:editor-resource-id>
<![CDATA[sid-4A014247-BF0C-436D-B3CE-EA297F2A18FA]]></modeler:editor-resource-id>
</extensionElements>
</sequenceFlow>
<serviceTask id="decideGreeting" name="Decide greeting"
activiti:delegateExpression="${activiti_executeDecisionDelegate}">
<extensionElements>
<activiti:field name="decisionTableReferenceKey">
<activiti:string><![CDATA[DecideWhatGreeting]]></activiti:string>
</activiti:field>
<modeler:decisiontable-reference modeler:decisiontablereferenceid="2007"
modeler:decisiontablereferencename="Decide What Greeting"/>
<modeler:editor-resource-id>
<![CDATA[sid-B4E2D526-60B7-47B9-856C-FC824DA15708]]></modeler:editor-resource-id>
</extensionElements>
</serviceTask>
<sequenceFlow id="sid-E8B736FE-874D-4EDF-85A6-8B602F1503FD" sourceRef="decideGreeting"
targetRef="printGreetingFromJava">
<extensionElements>
<modeler:editor-resource-id>
<![CDATA[sid-E8B736FE-874D-4EDF-85A6-8B602F1503FD]]></modeler:editor-resource-id>
</extensionElements>
</sequenceFlow>
<serviceTask id="printGreetingFromJava" name="Print Greeting From Java"
activiti:class="${package}.tasks.service.HelloWorldServiceTask">
<extensionElements>
<modeler:editor-resource-id>
<![CDATA[sid-61E86F19-FC5F-4814-B9AB-2394B03171D6]]></modeler:editor-resource-id>
</extensionElements>
</serviceTask>
<sequenceFlow id="sid-AD10A830-F8B1-4DBA-9C48-DFD5136E3810" sourceRef="printGreetingFromJava"
targetRef="sid-68AE120D-AB55-4ED2-AFD5-845139236AD3">
<extensionElements>
<modeler:editor-resource-id>
<![CDATA[sid-AD10A830-F8B1-4DBA-9C48-DFD5136E3810]]></modeler:editor-resource-id>
</extensionElements>
</sequenceFlow>
<scriptTask id="sid-68AE120D-AB55-4ED2-AFD5-845139236AD3" name="Print Greeting from JS"
scriptFormat="JavaScript" activiti:autoStoreVariables="false">
<extensionElements>
<modeler:editor-resource-id>
<![CDATA[sid-68AE120D-AB55-4ED2-AFD5-845139236AD3]]></modeler:editor-resource-id>
</extensionElements>
<script><![CDATA[print("Hello World from JavaScript task:");
var userId = initiator;
print(dayGreeting + " " + userInfoBean.getUser(userId).getFullName());
print("You entered '" + greeting + "' as a greeting text.");
]]></script>
</scriptTask>
<sequenceFlow id="sid-6105A21B-6A76-41EC-B88E-78B3BE4A826F" sourceRef="sid-68AE120D-AB55-4ED2-AFD5-845139236AD3"
targetRef="endHelloWorld">
<extensionElements>
<modeler:editor-resource-id>
<![CDATA[sid-6105A21B-6A76-41EC-B88E-78B3BE4A826F]]></modeler:editor-resource-id>
</extensionElements>
</sequenceFlow>
<endEvent id="endHelloWorld">
<extensionElements>
<modeler:editor-resource-id>
<![CDATA[sid-9F0B5A13-7D1F-4ADF-8A08-7B9F0D851DA6]]></modeler:editor-resource-id>
</extensionElements>
<terminateEventDefinition/>
</endEvent>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_HelloWorld">
<bpmndi:BPMNPlane bpmnElement="HelloWorld" id="BPMNPlane_HelloWorld">
<bpmndi:BPMNShape bpmnElement="startHelloWorld" id="BPMNShape_startHelloWorld">
<omgdc:Bounds height="30.0" width="30.0" x="90.0" y="190.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="decideGreeting" id="BPMNShape_decideGreeting">
<omgdc:Bounds height="80.0" width="100.0" x="210.0" y="165.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="sid-68AE120D-AB55-4ED2-AFD5-845139236AD3"
id="BPMNShape_sid-68AE120D-AB55-4ED2-AFD5-845139236AD3">
<omgdc:Bounds height="80.0" width="100.0" x="675.0" y="165.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endHelloWorld" id="BPMNShape_endHelloWorld">
<omgdc:Bounds height="28.0" width="28.0" x="915.0" y="191.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="printGreetingFromJava" id="BPMNShape_printGreetingFromJava">
<omgdc:Bounds height="80.0" width="100.0" x="443.0" y="165.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sid-AD10A830-F8B1-4DBA-9C48-DFD5136E3810"
id="BPMNEdge_sid-AD10A830-F8B1-4DBA-9C48-DFD5136E3810">
<omgdi:waypoint x="543.0" y="205.0"/>
<omgdi:waypoint x="675.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-4A014247-BF0C-436D-B3CE-EA297F2A18FA"
id="BPMNEdge_sid-4A014247-BF0C-436D-B3CE-EA297F2A18FA">
<omgdi:waypoint x="120.0" y="205.0"/>
<omgdi:waypoint x="210.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-E8B736FE-874D-4EDF-85A6-8B602F1503FD"
id="BPMNEdge_sid-E8B736FE-874D-4EDF-85A6-8B602F1503FD">
<omgdi:waypoint x="310.0" y="205.0"/>
<omgdi:waypoint x="443.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sid-6105A21B-6A76-41EC-B88E-78B3BE4A826F"
id="BPMNEdge_sid-6105A21B-6A76-41EC-B88E-78B3BE4A826F">
<omgdi:waypoint x="775.0" y="205.0"/>
<omgdi:waypoint x="915.0" y="205.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>

View File

@@ -0,0 +1,403 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
{
"resourceId": 2005,
"properties": {
"process_id": "HelloWorld",
"name": "Hello World",
"documentation": "The Hello World business process that is part of the Alfresco SDK 3.0 Activiti JAR Module Maven archetype",
"process_author": "",
"process_version": "",
"process_namespace": "http://www.activiti.org/processdef",
"executionlisteners": "",
"eventlisteners": "",
"signaldefinitions": "",
"messagedefinitions": "",
"executionvariables": "",
"metadata": ""
},
"stencil": {
"id": "BPMNDiagram"
},
"childShapes": [
{
"resourceId": "startEvent1",
"properties": {
"overrideid": "startHelloWorld",
"name": "",
"documentation": "",
"executionlisteners": "",
"initiator": "",
"formkeydefinition": "",
"formreference": {
"id": 2006,
"name": "Hello World Start",
"referenceId": 2005,
"variablesmapping": []
},
"fieldstovariables": "",
"formproperties": ""
},
"stencil": {
"id": "StartNoneEvent"
},
"childShapes": [],
"outgoing": [
{
"resourceId": "sid-4A014247-BF0C-436D-B3CE-EA297F2A18FA"
}
],
"bounds": {
"lowerRight": {
"x": 120,
"y": 220
},
"upperLeft": {
"x": 90,
"y": 190
}
},
"dockers": []
},
{
"resourceId": "sid-B4E2D526-60B7-47B9-856C-FC824DA15708",
"properties": {
"overrideid": "decideGreeting",
"name": "Decide greeting",
"documentation": "",
"asynchronousdefinition": "false",
"exclusivedefinition": "false",
"executionlisteners": "",
"multiinstance_type": "None",
"multiinstance_cardinality": "",
"multiinstance_collection": "",
"multiinstance_variable": "",
"multiinstance_condition": "",
"isforcompensation": "false",
"decisiontaskdecisiontablereference": {
"id": 2007,
"name": "Decide What Greeting",
"referenceId": 2005,
"variablesmapping": []
}
},
"stencil": {
"id": "DecisionTask"
},
"childShapes": [],
"outgoing": [
{
"resourceId": "sid-E8B736FE-874D-4EDF-85A6-8B602F1503FD"
}
],
"bounds": {
"lowerRight": {
"x": 310,
"y": 245
},
"upperLeft": {
"x": 210,
"y": 165
}
},
"dockers": []
},
{
"resourceId": "sid-4A014247-BF0C-436D-B3CE-EA297F2A18FA",
"properties": {
"overrideid": "",
"name": "",
"documentation": "",
"conditionsequenceflow": "",
"executionlisteners": "",
"defaultflow": "false"
},
"stencil": {
"id": "SequenceFlow"
},
"childShapes": [],
"outgoing": [
{
"resourceId": "sid-B4E2D526-60B7-47B9-856C-FC824DA15708"
}
],
"bounds": {
"lowerRight": {
"x": 209.3515625,
"y": 205
},
"upperLeft": {
"x": 120.53125,
"y": 205
}
},
"dockers": [
{
"x": 15,
"y": 15
},
{
"x": 50,
"y": 40
}
],
"target": {
"resourceId": "sid-B4E2D526-60B7-47B9-856C-FC824DA15708"
}
},
{
"resourceId": "sid-68AE120D-AB55-4ED2-AFD5-845139236AD3",
"properties": {
"scriptformat": "JavaScript",
"scripttext": "print(\"Hello World from JavaScript task:\");\nvar userId = initiator;\nprint(dayGreeting + \" \" + userInfoBean.getUser(userId).getFullName());\nprint(\"You entered '\" + greeting + \"' as a greeting text.\");\n",
"executionvariables": "",
"overrideid": "",
"name": "Print Greeting from JS",
"documentation": "",
"asynchronousdefinition": "false",
"exclusivedefinition": "false",
"executionlisteners": "",
"multiinstance_type": "None",
"multiinstance_cardinality": "",
"multiinstance_collection": "",
"multiinstance_variable": "",
"multiinstance_condition": "",
"isforcompensation": "false"
},
"stencil": {
"id": "ScriptTask"
},
"childShapes": [],
"outgoing": [
{
"resourceId": "sid-6105A21B-6A76-41EC-B88E-78B3BE4A826F"
}
],
"bounds": {
"lowerRight": {
"x": 775,
"y": 245
},
"upperLeft": {
"x": 675,
"y": 165
}
},
"dockers": []
},
{
"resourceId": "sid-9F0B5A13-7D1F-4ADF-8A08-7B9F0D851DA6",
"properties": {
"overrideid": "endHelloWorld",
"name": "",
"documentation": "",
"executionlisteners": ""
},
"stencil": {
"id": "EndTerminateEvent"
},
"childShapes": [],
"outgoing": [],
"bounds": {
"lowerRight": {
"x": 943,
"y": 219
},
"upperLeft": {
"x": 915,
"y": 191
}
},
"dockers": []
},
{
"resourceId": "sid-6105A21B-6A76-41EC-B88E-78B3BE4A826F",
"properties": {
"overrideid": "",
"name": "",
"documentation": "",
"conditionsequenceflow": "",
"executionlisteners": "",
"defaultflow": "false"
},
"stencil": {
"id": "SequenceFlow"
},
"childShapes": [],
"outgoing": [
{
"resourceId": "sid-9F0B5A13-7D1F-4ADF-8A08-7B9F0D851DA6"
}
],
"bounds": {
"lowerRight": {
"x": 914.453125,
"y": 205
},
"upperLeft": {
"x": 775.40625,
"y": 205
}
},
"dockers": [
{
"x": 50,
"y": 40
},
{
"x": 14,
"y": 14
}
],
"target": {
"resourceId": "sid-9F0B5A13-7D1F-4ADF-8A08-7B9F0D851DA6"
}
},
{
"resourceId": "sid-61E86F19-FC5F-4814-B9AB-2394B03171D6",
"properties": {
"overrideid": "printGreetingFromJava",
"name": "Print Greeting From Java",
"documentation": "",
"asynchronousdefinition": "false",
"exclusivedefinition": "false",
"executionlisteners": "",
"multiinstance_type": "None",
"multiinstance_cardinality": "",
"multiinstance_collection": "",
"multiinstance_variable": "",
"multiinstance_condition": "",
"isforcompensation": "false",
"servicetaskclass": "${package}.tasks.service.HelloWorldServiceTask",
"servicetaskexpression": "",
"servicetaskdelegateexpression": "",
"servicetaskfields": "",
"servicetaskresultvariable": "",
"executionvariables": ""
},
"stencil": {
"id": "ServiceTask"
},
"childShapes": [],
"outgoing": [
{
"resourceId": "sid-AD10A830-F8B1-4DBA-9C48-DFD5136E3810"
}
],
"bounds": {
"lowerRight": {
"x": 543,
"y": 245
},
"upperLeft": {
"x": 443,
"y": 165
}
},
"dockers": []
},
{
"resourceId": "sid-AD10A830-F8B1-4DBA-9C48-DFD5136E3810",
"properties": {
"overrideid": "",
"name": "",
"documentation": "",
"conditionsequenceflow": "",
"executionlisteners": "",
"defaultflow": "false"
},
"stencil": {
"id": "SequenceFlow"
},
"childShapes": [],
"outgoing": [
{
"resourceId": "sid-68AE120D-AB55-4ED2-AFD5-845139236AD3"
}
],
"bounds": {
"lowerRight": {
"x": 674.15625,
"y": 205
},
"upperLeft": {
"x": 543.84375,
"y": 205
}
},
"dockers": [
{
"x": 50,
"y": 40
},
{
"x": 50,
"y": 40
}
],
"target": {
"resourceId": "sid-68AE120D-AB55-4ED2-AFD5-845139236AD3"
}
},
{
"resourceId": "sid-E8B736FE-874D-4EDF-85A6-8B602F1503FD",
"properties": {
"overrideid": "",
"name": "",
"documentation": "",
"conditionsequenceflow": "",
"executionlisteners": "",
"defaultflow": "false",
"showdiamondmarker": false
},
"stencil": {
"id": "SequenceFlow"
},
"childShapes": [],
"outgoing": [
{
"resourceId": "sid-61E86F19-FC5F-4814-B9AB-2394B03171D6"
}
],
"bounds": {
"lowerRight": {
"x": 443,
"y": 205
},
"upperLeft": {
"x": 310.59375,
"y": 205
}
},
"dockers": [
{
"x": 50,
"y": 40
},
{
"x": 1,
"y": 40
}
],
"target": {
"resourceId": "sid-61E86F19-FC5F-4814-B9AB-2394B03171D6"
}
}
],
"bounds": {
"lowerRight": {
"x": 1200,
"y": 1050
},
"upperLeft": {
"x": 0,
"y": 0
}
},
"stencilset": {
"url": "stencilsets/bpmn2.0/bpmn2.0.json",
"namespace": "http://b3mn.org/stencilset/bpmn2.0#"
},
"ssextensions": []
}

View File

@@ -0,0 +1,53 @@
{
"referenceId": 2005,
"name": "Decide What Greeting",
"description": "Decide, depending on time of day, what greeting to display.",
"editorJson": {
"id": 2007,
"name": "Decide What Greeting",
"key": "DecideWhatGreeting",
"description": "Decide, depending on time of day, what greeting to display.",
"hitIndicator": "FIRST",
"inputExpressions": [
{
"id": "3",
"variableId": "timeofday",
"variableType": "formfield",
"type": "string",
"label": "Time of day",
"entries": null,
"newVariable": false
}
],
"outputExpressions": [
{
"id": "4",
"variableId": "dayGreeting",
"variableType": "variable",
"type": "string",
"label": "DayGreeting",
"entries": null,
"newVariable": true
}
],
"rules": [
{
"3": "== \"time_of_day_morning\"",
"4": "\"Good Morning!\""
},
{
"3": "== \"time_of_day_lunch\"",
"4": "\"Good Day!\""
},
{
"3": "== \"time_of_day_dinner\"",
"4": "\"Good Evening!\""
},
{
"3": "== \"time_of_day_night\"",
"4": "\"Good Night!\""
}
],
"executionVariables": []
}
}

View File

@@ -0,0 +1,201 @@
{
"referenceId": 2005,
"name": "Hello World Start",
"description": "The form for the Start task in the Hello World business process.",
"editorJson": {
"tabs": [],
"fields": [
{
"fieldType": "ContainerRepresentation",
"id": "1475149613209",
"name": "Label",
"type": "container",
"value": null,
"required": false,
"readOnly": false,
"overrideId": false,
"colspan": 1,
"placeholder": null,
"minLength": 0,
"maxLength": 0,
"minValue": null,
"maxValue": null,
"regexPattern": null,
"optionType": null,
"hasEmptyValue": null,
"options": null,
"restUrl": null,
"restResponsePath": null,
"restIdProperty": null,
"restLabelProperty": null,
"tab": null,
"className": null,
"dateDisplayFormat": null,
"layout": null,
"sizeX": 2,
"sizeY": 1,
"row": -1,
"col": -1,
"visibilityCondition": null,
"numberOfColumns": 2,
"fields": {
"1": [
{
"fieldType": "FormFieldRepresentation",
"id": "greeting",
"name": "Greeting",
"type": "text",
"value": null,
"required": true,
"readOnly": false,
"overrideId": false,
"colspan": 1,
"placeholder": null,
"minLength": 0,
"maxLength": 0,
"minValue": null,
"maxValue": null,
"regexPattern": null,
"optionType": null,
"hasEmptyValue": null,
"options": null,
"restUrl": null,
"restResponsePath": null,
"restIdProperty": null,
"restLabelProperty": null,
"tab": null,
"className": null,
"params": {
"existingColspan": 1,
"maxColspan": 2
},
"dateDisplayFormat": null,
"layout": {
"row": -1,
"column": -1,
"colspan": 1
},
"sizeX": 1,
"sizeY": 1,
"row": -1,
"col": -1,
"visibilityCondition": null
}
],
"2": []
}
},
{
"fieldType": "ContainerRepresentation",
"id": "1475149862241",
"name": "Label",
"type": "container",
"value": null,
"required": false,
"readOnly": false,
"overrideId": false,
"colspan": 1,
"placeholder": null,
"minLength": 0,
"maxLength": 0,
"minValue": null,
"maxValue": null,
"regexPattern": null,
"optionType": null,
"hasEmptyValue": null,
"options": null,
"restUrl": null,
"restResponsePath": null,
"restIdProperty": null,
"restLabelProperty": null,
"tab": null,
"className": null,
"dateDisplayFormat": null,
"layout": null,
"sizeX": 2,
"sizeY": 1,
"row": -1,
"col": -1,
"visibilityCondition": null,
"numberOfColumns": 2,
"fields": {
"1": [
{
"fieldType": "RestFieldRepresentation",
"id": "timeofday",
"name": "Time of Day",
"type": "dropdown",
"value": "Choose one...",
"required": false,
"readOnly": false,
"overrideId": false,
"colspan": 1,
"placeholder": null,
"minLength": 0,
"maxLength": 0,
"minValue": null,
"maxValue": null,
"regexPattern": null,
"optionType": null,
"hasEmptyValue": true,
"options": [
{
"id": "empty",
"name": "Choose one..."
},
{
"id": "time_of_day_morning",
"name": "Morning"
},
{
"id": "time_of_day_lunch",
"name": "Lunch"
},
{
"id": "time_of_day_dinner",
"name": "Dinner"
},
{
"id": "time_of_day_night",
"name": "Night"
}
],
"restUrl": null,
"restResponsePath": null,
"restIdProperty": null,
"restLabelProperty": null,
"tab": null,
"className": null,
"params": {
"existingColspan": 1,
"maxColspan": 2
},
"dateDisplayFormat": null,
"layout": {
"row": -1,
"column": -1,
"colspan": 1
},
"sizeX": 1,
"sizeY": 1,
"row": -1,
"col": -1,
"visibilityCondition": null,
"endpoint": null,
"requestHeaders": null
}
],
"2": []
}
}
],
"outcomes": [],
"javascriptEvents": [],
"className": "",
"style": "",
"customFieldTemplates": {},
"metadata": {},
"variables": [],
"gridsterForm": false
}
}

View File

@@ -0,0 +1,9 @@
# Enterprise License location
Put the Activiti Enterprise license file (activiti.lic) in this directory.
It will then be copied into the WAR..............
And then not be part of any other classpaths.

View File

@@ -0,0 +1,35 @@
server.onpremise=true
server.stencil.custom.allowed=true
server.contextroot=/activiti-app
# Database connection
datasource.driver=org.h2.Driver
datasource.url=jdbc:h2:${activiti.datadir}/h2/activiti;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=10000;MVCC=FALSE;LOCK_MODE=0
datasource.username=alfresco
datasource.password=alfresco
hibernate.dialect=org.hibernate.dialect.H2Dialect
# Elastic Search server config for historical process data
elastic-search.server.type=none
elastic-search.cluster.name=activiti-elastic-search-cluster-dev
elastic-search.enable.http=true
elastic-search.data.path=${activiti.datadir}/es
event.generation.enabled=true
event.processing.enabled=true
# Administrator login username = email
admin.email=admin@app.activiti.com
# koala
admin.passwordHash=4efe081594ce25ee4efd9f7067f7f678a347bccf2de201f3adf2a3eb544850b465b4e51cdc3fcdde
admin.lastname=Administrator
admin.group=Superusers
# Where to store any uploaded files
contentstorage.fs.rootFolder=${activiti.datadir}/contentstore
contentstorage.fs.createRoot=true
contentstorage.fs.depth=4
contentstorage.fs.blockSize=1024
# Disable Cross-Site-Request-Forgery (CSRF) protection, so we can access from other client app via REST
security.csrf.disabled=true

View File

@@ -0,0 +1,3 @@
ldap.authentication.enabled=false
ldap.synchronization.full.enabled=false
ldap.synchronization.differential.enabled=false

View File

@@ -0,0 +1,40 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
# This file is copied (with RunMojo) into target/activitiApp-war/WEB-INF/classes dir before webapp deployment
#
log4j.rootLogger=INFO, CA, File
# ConsoleAppender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
# File Appender
log4j.appender.File=org.apache.log4j.RollingFileAppender
log4j.appender.File.File=${project.build.directory}/activiti.log
log4j.appender.File.threshold=INFO
log4j.appender.File.layout=org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern=%d{ISO8601} %-5p [%c] %m%n
log4j.appender.File.MaxFileSize=100MB
log4j.appender.File.MaxBackupIndex=1
# Custom tweaks
log4j.logger.org.apache.ibatis.level=INFO
log4j.logger.javax.activation.level=INFO
log4j.logger.com.codahale.metrics=WARN
log4j.logger.com.ryantenney=WARN
log4j.logger.com.zaxxer=WARN
log4j.logger.org.apache=WARN
log4j.logger.org.hibernate=WARN
log4j.logger.org.hibernate.engine.internal=WARN
log4j.logger.org.hibernate.validator=WARN
log4j.logger.org.springframework=WARN
log4j.logger.org.springframework.web=WARN
log4j.logger.org.springframework.security=WARN
# Custom classes logging
log4j.logger.${package}.tasks.service=DEBUG

View File

@@ -0,0 +1,6 @@
log4j.rootLogger=WARN, CA
# ConsoleAppender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n

View File

@@ -0,0 +1,5 @@
version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=activitiJARTest
package=it.pkg

View File

@@ -0,0 +1 @@
verify -Dmaven.test.skip=true

View File

@@ -0,0 +1,4 @@
version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=activitiJARTestRun
package=it.pkg

View File

@@ -5,13 +5,13 @@
<groupId>org.alfresco.maven.archetype</groupId>
<artifactId>alfresco-allinone-archetype</artifactId>
<packaging>maven-archetype</packaging>
<name>Maven Alfresco SDK - All-in-One Archetype</name>
<description>Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for: Repository WAR overlay, Repository AMP, Share WAR overlay, Solr configuration, and embedded Tomcat runner</description>
<name>Alfresco SDK - All-in-One Archetype</name>
<description>Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for Platform/Repository JAR and Share JAR</description>
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-sdk-aggregator</artifactId>
<version>2.0.0</version>
<version>3.0.1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -22,7 +22,10 @@
<includes>
<include>archetype-resources/pom.xml</include>
<include>archetype-resources/run.sh</include>
<include>archetype-resources/runner/src/main/webapp/index.html</include>
<include>archetype-resources/run.bat</include>
<include>archetype-resources/debug.sh</include>
<include>archetype-resources/debug.bat</include>
<include>META-INF/maven/archetype-metadata.xml</include>
</includes>
<filtering>true</filtering>
</resource>
@@ -31,15 +34,19 @@
<excludes>
<exclude>archetype-resources/pom.xml</exclude>
<exclude>archetype-resources/run.sh</exclude>
<exclude>archetype-resources/runner/src/main/webapp/index.html</exclude>
<exclude>archetype-resources/run.bat</exclude>
<exclude>archetype-resources/debug.sh</exclude>
<exclude>archetype-resources/debug.bat</exclude>
<exclude>META-INF/maven/archetype-metadata.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>

View File

@@ -1,192 +1,185 @@
<?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>
<requiredProperty key="alfresco_target_groupId">
<defaultValue>org.alfresco</defaultValue>
</requiredProperty>
<requiredProperty key="alfresco_target_version">
<defaultValue>5.0.c</defaultValue>
</requiredProperty>
<requiredProperty key="package">
<defaultValue>(not used)</defaultValue>
</requiredProperty>
</requiredProperties>
<modules>
<module id="repo-amp" dir="repo-amp" name="repo-amp">
<fileSets>
<fileSet filtered="false" packaged="false" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
<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="Alfresco All In One (AIO) Archetype."
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<requiredProperties>
<requiredProperty key="version">
<defaultValue>1.0-SNAPSHOT</defaultValue>
</requiredProperty>
</requiredProperties>
<modules>
<module id="${rootArtifactId}-platform-jar"
name="${rootArtifactId}-platform-jar"
dir="__rootArtifactId__-platform-jar">
<fileSets>
<fileSet filtered="false" packaged="false" encoding="UTF-8">
<directory>src/main/assembly</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="true" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<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/resources</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*-context.xml</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="true" packaged="false">
<directory>src/main/resources</directory>
<includes>
<include>**/*-context.xml</include>
</includes>
</fileSet>
</fileSets>
</module>
<module id="${rootArtifactId}-share-jar"
name="${rootArtifactId}-share-jar"
dir="__rootArtifactId__-share-jar">
<fileSets>
<fileSet filtered="false" packaged="false" encoding="UTF-8">
<directory>src/main/assembly</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="true" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<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/resources/alfresco/web-extension</directory>
<includes>
<include>__artifactId__-slingshot-application-context.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" packaged="false" encoding="UTF-8">
<directory>src/main/resources/alfresco/web-extension/site-data/extensions</directory>
<includes>
<include>__artifactId__-example-widgets.xml</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/__artifactId__-slingshot-application-context.xml</exclude>
<exclude>**/__artifactId__-example-widgets.xml</exclude>
</excludes>
</fileSet>
</fileSets>
</module>
<module id="integration-tests" name="integration-tests" dir="integration-tests">
<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="true">
<directory>src/test/resources</directory>
<includes>
<include>**/dev-log4j.properties</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/resources</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/dev-log4j.properties</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/properties</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
</fileSets>
</module>
</modules>
<fileSets>
<fileSet encoding="UTF-8" filtered="true">
<directory>src/test/resources</directory>
<includes>
<include>**/dev-log4j.properties</include>
</includes>
</fileSet>
<fileSet filtered="false" packaged="false" encoding="UTF-8">
<directory>src/test/java</directory>
<includes>
<include>**/*.java</include>
</includes>
<fileSet encoding="UTF-8" filtered="true">
<directory>src/test/resources</directory>
<includes>
<include>*hotswap-agent.properties</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/amp</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/amp/config/alfresco/extension/templates/webscripts</directory>
</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>
<fileSet encoding="UTF-8" filtered="false">
<directory>tomcat</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
</fileSets>
</module>
<module id="share-amp" dir="share-amp" name="share-amp">
<fileSets>
<fileSet filtered="false" packaged="false" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/amp</directory>
<includes>
<include>**</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/main/resources</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/properties</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>tomcat</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="false">
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
</fileSets>
</module>
<module id="solr" dir="solr" name="solr" filtered="false">
<fileSets>
<fileSet encoding="UTF-8">
<directory>src/main/solr-properties</directory>
<includes>
<include>**</include>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/webapp</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/assembly</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="share" dir="share" name="share" filtered="false">
<fileSets>
<fileSet encoding="UTF-8">
<directory>src/main/properties</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
</fileSets>
</module>
<module id="runner" dir="runner" name="runner" filtered="false">
<fileSets>
<fileSet encoding="UTF-8" filtered="false">
<directory>tomcat</directory>
<includes>
<directory>src/test/resources</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>
</includes>
</fileSet>
</fileSets>
</includes>
<excludes>
<exclude>**/dev-log4j.properties</exclude>
<exclude>*hotswap-agent.properties</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/properties</directory>
<includes>
<include>**/*.properties</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/license</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory></directory>
<includes>
<include>debug.sh</include>
<include>debug.bat</include>
<include>run.sh</include>
<include>run.bat</include>
<include>README.md</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>

View File

@@ -0,0 +1,34 @@
# Alfresco AIO Project - SDK 3
This is an All-In-One (AIO) project for Alfresco SDK 3.0.
Run with `mvn clean install -DskipTests=true alfresco:run` or `./run.sh` and verify that it
* Runs the embedded Tomcat + H2 DB
* Runs Alfresco Platform (Repository)
* Runs Alfresco Solr4
* Runs Alfresco Share
* Packages both as JAR and AMP assembly for modules
# Few things to notice
* No parent pom
* No WAR projects, all handled by the Alfresco Maven Plugin
* No runner project - it's all in the Alfresco Maven Plugin
* Standard JAR packaging and layout
* Works seamlessly with Eclipse and IntelliJ IDEA
* JRebel for hot reloading, JRebel maven plugin for generating rebel.xml, agent usage: `MAVEN_OPTS=-Xms256m -Xmx1G -agentpath:/home/martin/apps/jrebel/lib/libjrebel64.so`
* AMP as an assembly
* [Configurable Run mojo](https://github.com/Alfresco/alfresco-sdk/blob/sdk-3.0/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RunMojo.java) in the `alfresco-maven-plugin`
* No unit testing/functional tests just yet
* Resources loaded from META-INF
* Web Fragment (this includes a sample servlet configured via web fragment)
# TODO
* Abstract assembly into a dependency so we don't have to ship the assembly in the archetype
* Purge
* Functional/remote unit tests

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>${artifactId}</artifactId>
<name>Alfresco Platform/Repository JAR Module</name>
<description>Platform/Repo JAR Module (to be included in the alfresco.war) - part of AIO - SDK 3
</description>
<packaging>jar</packaging>
<parent>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}</artifactId>
<version>${version}</version>
</parent>
<properties>
</properties>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,61 @@
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<!--
Note that the Module dependency specified in the configuration section for the Alfresco Maven Plugin
needs to be set to amp if any 3rd party libs should be applied by MMT:
`
<platformModules>
<moduleDependency>
<groupId>${project.groupId}</groupId>
<artifactId>some-platform-jar</artifactId>
<version>${project.version}</version>
<type>amp</type>
</moduleDependency>
-->
<id>build-amp-file</id>
<formats>
<format>amp</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<files>
<!-- Filter module.properties and put at top level in the AMP -->
<file>
<source>src/main/resources/alfresco/module/${project.artifactId}/module.properties</source>
<filtered>true</filtered>
</file>
<!-- Include AMP -> WAR mapping file (needed for custom mappings) -->
<file>
<source>src/main/assembly/file-mapping.properties</source>
<filtered>false</filtered>
</file>
</files>
<fileSets>
<!-- Anything in the assembly/web directory will end up in the /web directory in the AMP -->
<fileSet>
<directory>src/main/assembly/web</directory>
<outputDirectory>web</outputDirectory>
<filtered>true</filtered> <!-- Will filter files and substitute POM props such as for example ${project.name} -->
<excludes>
<exclude>README.md</exclude>
</excludes>
</fileSet>
</fileSets>
<!-- Include the project artifact (JAR) in the /lib directory in the AMP, and any 3rd party libraries (JARs)
used by the customization.
-->
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>

View File

@@ -1,14 +1,27 @@
# Custom AMP to WAR location mappings
#
# The following property can be used to include the standard set of mappings.
# The contents of this file will override any defaults. The default is
# 'true', i.e. the default mappings will be augmented or modified by values in
# this file.
#
include.default=true
#
# Custom mappings. If 'include.default' is false, then this is the complete set.
#
/web=/
# Custom AMP to WAR location mappings
#
# The following property can be used to include the standard set of mappings.
# The contents of this file will override any defaults. The default is
# 'true', i.e. the default mappings will be augmented or modified by values in
# this file.
#
# Default mappings are:
#
# /config=/WEB-INF/classes
# /lib=/WEB-INF/lib
# /licenses=/WEB-INF/licenses
# /web/jsp=/jsp
# /web/css=/css
# /web/images=/images
# /web/scripts=/scripts
# /web/php=/php
#
include.default=true
#
# Custom mappings. If 'include.default' is false, then this is the complete set.
# Map /web to / in AMP so we can override things like favicon.ico
#
/web=/

View File

@@ -0,0 +1,22 @@
# Web resources that should override out-of-the-box files
Put here any web resources that should override out-of-the-box
web resources, such as favicon.ico. They will then end up in the
*/web* directory in the AMP, and applied to the WAR, and override
any existing web resources in the Alfresco.WAR.
**Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT:
`
<moduleDependency>
<groupId>${project.groupId}</groupId>
<artifactId>some-platform-jar</artifactId>
<version>${project.version}</version>
<type>amp</type>
</moduleDependency>
`
**Important**. New web resources should not be located here, but instead
in the usual place in the *src/main/resources/META-INF/resources* directory.

View File

@@ -0,0 +1,35 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
/**
* Copyright (C) 2017 Alfresco Software Limited.
* <p/>
* This file is part of the Alfresco SDK project.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ${package}.platformsample;
/**
* This class does nothing except dump some output to <i>system.out</i>.
* This is a sample taken from Maven Alfresco SDK
*
* @author Derek Hulley
*/
public class Demo
{
public void init()
{
System.out.println("Platform JAR Module class has been loaded");
}
}

View File

@@ -0,0 +1,84 @@
#set($symbol_pound='#')
#set($symbol_dollar='$')
#set($symbol_escape='\' )
/**
* Copyright (C) 2017 Alfresco Software Limited.
* <p/>
* This file is part of the Alfresco SDK project.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ${package}.platformsample;
import org.alfresco.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 {
private static Log logger = 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");
logger.debug("Test debug logging. Congratulation your JAR Module is working");
logger.info("This is only for information purposes. Better remove me from the log in Production");
}
/**
* 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);
}
}

View File

@@ -0,0 +1,51 @@
#set($symbol_pound='#')
#set($symbol_dollar='$')
#set($symbol_escape='\' )
/**
* Copyright (C) 2017 Alfresco Software Limited.
* <p/>
* This file is part of the Alfresco SDK project.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ${package}.platformsample;
import org.springframework.extensions.webscripts.Cache;
import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.HashMap;
import java.util.Map;
/**
* A demonstration Java controller for the Hello World Web Script.
*
* @author martin.bergljung@alfresco.com
* @since 2.1.0
*/
public class HelloWorldWebScript extends DeclarativeWebScript {
private static Log logger = LogFactory.getLog(HelloWorldWebScript.class);
protected Map<String, Object> executeImpl(
WebScriptRequest req, Status status, Cache cache) {
Map<String, Object> model = new HashMap<String, Object>();
model.put("fromJava", "HelloFromJava");
logger.debug("Your 'Hello World' Web Script was called!");
return model;
}
}

View File

@@ -1,7 +1,8 @@
<webscript>
<shortname>Javascript Sample Webscript</shortname>
<shortname>Hello World Sample Webscript</shortname>
<description>Hands back a greeting</description>
<url>/sample/helloworld</url>
<authentication>user</authentication>
<format default="html"></format>
<lifecycle>sample</lifecycle>
</webscript>

View File

@@ -0,0 +1,5 @@
## This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module.
## Define default values for all properties here.
## System Administrators can override these values in environment specific configurations in
## alfresco/tomcat/shared/classes/alfresco-global.properties.
##

View File

@@ -0,0 +1,40 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- The bootstrap-context.xml file is used for patch definitions, importers,
workflow, and loading custom content models. -->
<!-- Registration of new models -->
<bean id="${artifactId}.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
<property name="models">
<list>
<value>alfresco/module/${project.artifactId}/model/content-model.xml</value>
<value>alfresco/module/${project.artifactId}/model/workflow-model.xml</value>
</list>
</property>
<property name="labels">
<list>
<!-- Bootstrap Resource Bundles for the content model types, aspects, properties etc -->
<value>alfresco/module/${project.artifactId}/messages/content-model</value>
</list>
</property>
</bean>
<bean id="${package}.sampleprocess.workflowBootstrap" parent="workflowDeployer">
<property name="workflowDefinitions">
<list>
<props>
<prop key="engineId">activiti</prop>
<prop key="location">alfresco/module/${project.artifactId}/workflow/sample-process.bpmn20.xml</prop>
<prop key="mimetype">text/xml</prop>
</props>
</list>
</property>
</bean>
</beans>

View File

@@ -0,0 +1,44 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<?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.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- A simple class that is initialized by Spring -->
<bean id="${package}.Demo" class="${package}.platformsample.Demo" init-method="init" />
<!-- A simple module component that will be executed once.
Note. this module component will only be executed once, and then there will be an entry for it in the Repo DB.
So doing for example $ mvn clean install alfresco:run twice will only execute this component the first time.
You need to remove /alf_data_dev for it to be executed again. -->
<bean id="${package}.DemoComponent" class="${package}.platformsample.DemoComponent" parent="module.baseComponent" >
<property name="moduleId" value="${artifactId}" /> <!-- See module.properties -->
<property name="name" value="DemoComponent" />
<property name="description" value="A demonstration component" />
<property name="sinceVersion" value="1.0" />
<property name="appliesFromVersion" value="0.99" /> <!-- 1.0 would not work here when using SNAPSHOT version in project -->
<property name="nodeService" ref="NodeService" />
<property name="nodeLocatorService" ref="nodeLocatorService" />
</bean>
</beans>

View File

@@ -1,25 +1,29 @@
<?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.
-->
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<?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
<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 xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="webscript.alfresco.tutorials.helloworld.get"
class="${package}.platformsample.HelloWorldWebScript"
parent="webscript">
</bean>
</beans>

View File

@@ -0,0 +1,6 @@
# This file should contain content model labels
acme_contentModel.type.acme_document.title=ACME Document
acme_contentModel.aspect.acme_securityClassified.title=ACME Security Classified
acme_contentModel.property.acme_documentId.title=Document Id
acme_contentModel.property.acme_securityClassification.title=Security Classification

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<model name="acme:contentModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<!-- Optional meta-data about the model -->
<description>Sample Document Model</description>
<author>My Name</author>
<version>1.0</version>
<imports>
<!-- Import Alfresco Dictionary Definitions -->
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<!-- Import Alfresco Content Domain Model Definitions -->
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
<!-- Import Alfresco System Model Definitions -->
<import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
</imports>
<!-- Custom namespace for the ACME company -->
<namespaces>
<namespace uri="http://www.acme.org/model/content/1.0" prefix="acme"/>
</namespaces>
<constraints>
<constraint name="acme:securityClassificationOptions" type="LIST">
<parameter name="allowedValues">
<list>
<value></value>
<!-- Empty for default search-->
<value>Public</value>
<value>Client Confidential</value>
<value>Company Confidential</value>
<value>Strictly Confidential</value>
</list>
</parameter>
</constraint>
</constraints>
<!-- ===============================================================================================================
Constraints, Types, and Aspects go here...
-->
<types>
<!--
ACME Enterprise-wide Document root type.
All other custom document types would extend this one.
-->
<type name="acme:document">
<title>Sample Document Type</title>
<parent>cm:content</parent>
<properties>
<property name="acme:documentId">
<title>Document Identification Number</title>
<type>d:text</type>
</property>
</properties>
<mandatory-aspects>
<aspect>acme:securityClassified</aspect>
</mandatory-aspects>
</type>
</types>
<aspects>
<!-- A document can have security classification applied and
faceted search is specifically enabled for best performance and we change
default index config to not tokenize the value. -->
<aspect name="acme:securityClassified">
<title>ACME Security Classified</title>
<description>Content has been security classified</description>
<properties>
<property name="acme:securityClassification">
<type>d:text</type>
<index enabled="true">
<atomic>true</atomic>
<stored>false</stored>
<tokenised>false</tokenised>
</index>
<constraints>
<constraint ref="acme:securityClassificationOptions"/>
</constraints>
</property>
</properties>
</aspect>
</aspects>
</model>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<model name="acmew:workflowModel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<!-- Optional meta-data about the model -->
<description>Sample Workflow Model</description>
<author>My Name</author>
<version>1.0</version>
<imports>
<!-- Import Alfresco Dictionary Definitions -->
<import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
<!-- Import Alfresco Content Domain Model Definitions -->
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
<!-- Import Alfresco 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.acme.org/model/workflow/1.0" prefix="acmew"/>
</namespaces>
<!-- ===============================================================================================================
Constraints, Types, and Aspects go here...
-->
</model>

View File

@@ -14,11 +14,19 @@
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. -->
<import resource="classpath:alfresco/module/${project.artifactId}/context/service-context.xml" />
</beans>
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- This is filtered by Maven at build time, so that module name is single sourced. -->
<!-- Note. The bootstrap-context.xml file has to be loaded first.
Otherwise your custom models are not yet loaded when your service beans are instantiated and you
cannot for example register policies on them. -->
<import resource="classpath:alfresco/module/${project.artifactId}/context/bootstrap-context.xml" />
<import resource="classpath:alfresco/module/${project.artifactId}/context/service-context.xml" />
<import resource="classpath:alfresco/module/${project.artifactId}/context/webscript-context.xml" />
</beans>

View File

@@ -24,7 +24,7 @@ module.id=${project.artifactId}
#module.aliases=myModule-123, my-module
module.title=${project.name}
module.description=${project.description}
module.version=${noSnapshotVersion}
module.version=${project.version}
# The following optional properties can be used to prevent the module from being added
# to inappropriate versions of the WAR file.

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema"
expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="my-process">
<startEvent id="start" />
<sequenceFlow id="flow1" sourceRef="start" targetRef="someTask" />
<userTask id="someTask" name="Activiti is awesome!" />
<sequenceFlow id="flow2" sourceRef="someTask" targetRef="end" />
<endEvent id="end" />
</process>
</definitions>

View File

@@ -0,0 +1,56 @@
#set($symbol_pound='#')
#set($symbol_dollar='$')
#set($symbol_escape='\' )
/**
* Copyright (C) 2017 Alfresco Software Limited.
* <p/>
* This file is part of the Alfresco SDK project.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ${package}.platformsample;
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.extensions.webscripts.*;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
* Unit testing the Web Script Java Controller
*
* @author martin.bergljung@alfresco.com
* @version 1.0
* @since 3.0
*/
public class HelloWorldWebScriptControllerTest {
@Test
public void testController() {
WebScriptRequest req = Mockito.mock(WebScriptRequest.class);
Status status = Mockito.mock(Status.class);
Cache cache = Mockito.mock(Cache.class);
String helloPropName = "fromJava";
String helloPropExpectedValue = "HelloFromJava";
HelloWorldWebScript ws = new HelloWorldWebScript();
Map<String, Object> model = ws.executeImpl(req, status, cache);
assertNotNull("Response from Web Script Java Controller is null", model);
assertEquals("Incorrect Web Script Java Controller Response",
helloPropExpectedValue, model.get(helloPropName));
}
}

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>${artifactId}</artifactId>
<name>Alfresco Share JAR Module</name>
<packaging>jar</packaging>
<description>Sample Share JAR Module (to be included in the share.war) - part of AIO - SDK 3</description>
<parent>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}</artifactId>
<version>${version}</version>
</parent>
<properties>
</properties>
<!-- Following dependencies are needed for compiling Java code in src/main/java;
<scope>provided</scope> is inherited for each of the following;
for more info, please refer to alfresco-platform-distribution POM -->
<dependencies>
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>share</artifactId>
<classifier>classes</classifier>
</dependency>
<dependency>
<groupId>org.alfresco.surf</groupId>
<artifactId>spring-surf-api</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,61 @@
<assembly
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<!--
Note that the Module dependency specified in the configuration section for the Alfresco Maven Plugin
needs to be set to amp if any 3rd party libs should be applied by MMT:
`
<shareModules>
<moduleDependency>
<groupId>${project.groupId}</groupId>
<artifactId>some-share-jar</artifactId>
<version>${project.version}</version>
<type>amp</type>
</moduleDependency>
-->
<id>build-amp-file</id>
<formats>
<format>amp</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<files>
<!-- Filter module.properties and put at top level in the AMP -->
<file>
<source>src/main/resources/alfresco/module/${project.artifactId}/module.properties</source>
<filtered>true</filtered>
</file>
<!-- Include AMP -> WAR mapping file (needed for custom mappings) -->
<file>
<source>src/main/assembly/file-mapping.properties</source>
<filtered>false</filtered>
</file>
</files>
<fileSets>
<!-- Anything in the assembly/web directory will end up in the /web directory in the AMP -->
<fileSet>
<directory>src/main/assembly/web</directory>
<outputDirectory>web</outputDirectory>
<filtered>true</filtered> <!-- Will filter files and substitute POM props such as for example ${project.name} -->
<excludes>
<exclude>README.md</exclude>
</excludes>
</fileSet>
</fileSets>
<!-- Include the project artifact (JAR) in the /lib directory in the AMP, and any 3rd party libraries (JARs)
used by the customization.
-->
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>

View File

@@ -1,14 +1,27 @@
# Custom AMP to WAR location mappings
#
# The following property can be used to include the standard set of mappings.
# The contents of this file will override any defaults. The default is
# 'true', i.e. the default mappings will be augmented or modified by values in
# this file.
#
include.default=true
#
# Custom mappings. If 'include.default' is false, then this is the complete set.
#
/web=/
# Custom AMP to WAR location mappings
#
# The following property can be used to include the standard set of mappings.
# The contents of this file will override any defaults. The default is
# 'true', i.e. the default mappings will be augmented or modified by values in
# this file.
#
# Default mappings are:
#
# /config=/WEB-INF/classes
# /lib=/WEB-INF/lib
# /licenses=/WEB-INF/licenses
# /web/jsp=/jsp
# /web/css=/css
# /web/images=/images
# /web/scripts=/scripts
# /web/php=/php
#
include.default=true
#
# Custom mappings. If 'include.default' is false, then this is the complete set.
# Map /web to / in AMP so we can override things like favicon.ico
#
/web=/

View File

@@ -0,0 +1,22 @@
# Web resources that should override out-of-the-box files
Put here any web resources that should override out-of-the-box
web resources, such as favicon.ico. They will then end up in the
*/web* directory in the AMP, and applied to the WAR, and override
any existing web resources in the Share.WAR.
**Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT:
`
<moduleDependency>
<groupId>${project.groupId}</groupId>
<artifactId>some-share-jar</artifactId>
<version>${project.version}</version>
<type>amp</type>
</moduleDependency>
`
**Important**. New web resources should not be located here, but instead
in the usual place in the *src/main/resources/META-INF/resources/<module-id>/* directory.

View File

@@ -0,0 +1,420 @@
<!-- Share configuration related to this particular Share module extension, such as:
- Doclib action config
- Form config
- Aspect and Type config
- Advanced Search
Note. Any configuration related to the whole Share.war webapp
(i.e. not specific to this share extension) should be
placed in the environment specific config file:
alfresco/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml
-->
<alfresco-config>
<!--================================================================================================================
Make custom types and aspects visible in "Change Type" and "Manage Aspects" actions.
This will also make them visible when creating rules.
(will be merged with out-of-the-box configured types and aspects)
=============================================================================================================-->
<config evaluator="string-compare" condition="DocumentLibrary">
<aspects>
<visible>
<aspect name="acme:securityClassified"/>
</visible>
<addable> <!-- defaults to visible config -->
</addable>
<removeable> <!-- defaults to visible config -->
</removeable>
</aspects>
<types>
<!-- Define the ACME base doc type as decedent from cm:content -->
<type name="cm:content">
<subtype name="acme:document"/>
</type>
</types>
</config>
<!--================================================================================================================
Advanced Search Forms for types
(search forms for aspects are not available)
=============================================================================================================-->
<config evaluator="string-compare" condition="AdvancedSearch" replace="true">
<advanced-search>
<forms>
<!-- Standard out-of-the-box types -->
<form labelId="search.form.label.cm_content" descriptionId="search.form.desc.cm_content">cm:content
</form>
<form labelId="search.form.label.cm_folder" descriptionId="search.form.desc.cm_folder">cm:folder</form>
<!-- Custom type -->
<form labelId="form.label.advancedsearch.acmeDocument"
descriptionId="form.description.advancedsearch.acmeDocument">acme:document
</form>
</forms>
</advanced-search>
</config>
<!--================================================================================================================
View, Edit, Create, and Search forms for custom types
The following form configurations for the custom types
have not been created from scratch. We have instead copied
out-of-the-box form configurations for cm:content and cm:folder
from the tomcat/webapps/share/WEB-INF/classes/alfresco/share-form-config.xml file
in a standard Alfresco installation (with the version matching)
and used them as a starting point.
=============================================================================================================-->
<!-- __________________________________ acme:document base type _________________________________________________-->
<!-- View and Edit forms for acme:document -->
<config evaluator="node-type" condition="acme:document">
<forms>
<!-- Default form configuration for the cm:content type -->
<form>
<field-visibility>
<show id="cm:name"/>
<show id="cm:title" force="true"/>
<show id="cm:description" force="true"/>
<show id="mimetype"/>
<show id="cm:author" force="true"/>
<show id="size" for-mode="view"/>
<show id="cm:creator" for-mode="view"/>
<show id="cm:created" for-mode="view"/>
<show id="cm:modifier" for-mode="view"/>
<show id="cm:modified" for-mode="view"/>
<!-- tags and categories -->
<show id="cm:taggable" for-mode="edit" force="true"/>
<show id="cm:categories"/>
<!-- cm:dublincore aspect -->
<show id="cm:publisher"/>
<show id="cm:contributor"/>
<show id="cm:type"/>
<show id="cm:identifier"/>
<show id="cm:dcsource"/>
<show id="cm:coverage"/>
<show id="cm:rights"/>
<show id="cm:subject"/>
<!-- cm:complianceable aspect -->
<show id="cm:removeAfter"/>
<!-- cm:effectivity aspect -->
<show id="cm:from"/>
<show id="cm:to"/>
<!-- cm:summarizable aspect -->
<show id="cm:summary"/>
<!-- cm:translatable aspect -->
<show id="cm:translations"/>
<!-- cm:localizable aspect -->
<show id="cm:locale"/>
<!-- cm:ownable aspect -->
<show id="cm:owner"/>
<!-- cm:attachable aspect -->
<show id="cm:attachments"/>
<!-- cm:emailed aspect -->
<show id="cm:originator"/>
<show id="cm:addressee"/>
<show id="cm:addressees"/>
<show id="cm:sentdate"/>
<show id="cm:subjectline"/>
<!-- exif:exif aspect -->
<show id="exif:dateTimeOriginal"/>
<show id="exif:pixelXDimension"/>
<show id="exif:pixelYDimension"/>
<show id="exif:exposureTime"/>
<show id="exif:fNumber"/>
<show id="exif:flash"/>
<show id="exif:focalLength"/>
<show id="exif:isoSpeedRatings"/>
<show id="exif:manufacturer"/>
<show id="exif:model"/>
<show id="exif:software"/>
<show id="exif:orientation"/>
<show id="exif:xResolution"/>
<show id="exif:yResolution"/>
<show id="exif:resolutionUnit"/>
<!-- audio:audio aspect -->
<show id="audio:album"/>
<show id="audio:artist"/>
<show id="audio:composer"/>
<show id="audio:engineer"/>
<show id="audio:genre"/>
<show id="audio:trackNumber"/>
<show id="audio:releaseDate"/>
<show id="audio:sampleRate"/>
<show id="audio:sampleType"/>
<show id="audio:channelType"/>
<show id="audio:compressor"/>
<!-- cm:indexControl aspect -->
<show id="cm:isIndexed"/>
<show id="cm:isContentIndexed"/>
<!-- cm:geographic aspect -->
<show id="cm:latitude"/>
<show id="cm:longitude"/>
<!-- surf:widget aspect -->
<show id="surf:widgetType"/>
<show id="surf:mid"/>
<show id="surf:label"/>
<!-- ACME custom props -->
<show id="acme:documentId" force="true"/>
<show id="acme:securityClassification"/>
</field-visibility>
<appearance>
<field id="cm:name">
<control>
<control-param name="maxLength">255</control-param>
</control>
</field>
<field id="cm:title">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="cm:description">
<control>
<control-param name="activateLinks">true</control-param>
</control>
</field>
<set id="cm:content2cols" template="/org/alfresco/components/form/2-column-set.ftl"/>
<field set="cm:content2cols" id="mimetype">
<control template="/org/alfresco/components/form/controls/mimetype.ftl"/>
</field>
<field set="cm:content2cols" id="size">
<control template="/org/alfresco/components/form/controls/size.ftl"/>
</field>
<field set="cm:content2cols" id="cm:creator"/>
<field set="cm:content2cols" id="cm:created"/>
<field set="cm:content2cols" id="cm:modifier"/>
<field set="cm:content2cols" id="cm:modified"/>
<field id="cm:taggable">
<control>
<control-param name="compactMode">true</control-param>
<control-param name="params">aspect=cm:taggable</control-param>
<control-param name="createNewItemUri">/api/tag/workspace/SpacesStore</control-param>
<control-param name="createNewItemIcon">tag</control-param>
</control>
</field>
<field id="cm:categories">
<control>
<control-param name="compactMode">true</control-param>
</control>
</field>
<field id="cm:originator" read-only="true"/>
<field id="cm:addressee" read-only="true"/>
<field id="cm:addressees" read-only="true"/>
<field id="cm:sentdate" read-only="true"/>
<field id="cm:subjectline" read-only="true"/>
<!-- ACME Props appearance -->
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
set="acmeDocSet"/>
</appearance>
</form>
<!-- Document Library pop-up Edit Metadata form -->
<form id="doclib-simple-metadata">
<field-visibility>
<show id="cm:name"/>
<show id="cm:title" force="true"/>
<show id="cm:description" force="true"/>
<!-- tags and categories -->
<show id="cm:taggable" for-mode="edit" force="true"/>
<show id="cm:categories"/>
<!-- ACME custom props -->
<show id="acme:documentId" force="true"/>
<show id="acme:securityClassification"/>
</field-visibility>
<edit-form template="../documentlibrary/forms/doclib-simple-metadata.ftl"/>
<appearance>
<field id="cm:name">
<control>
<control-param name="maxLength">255</control-param>
</control>
</field>
<field id="cm:title">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="cm:description">
<control>
<control-param name="activateLinks">true</control-param>
</control>
</field>
<field id="cm:taggable">
<control>
<control-param name="compactMode">true</control-param>
<control-param name="params">aspect=cm:taggable</control-param>
<control-param name="createNewItemUri">/api/tag/workspace/SpacesStore</control-param>
<control-param name="createNewItemIcon">tag</control-param>
</control>
</field>
<field id="cm:categories">
<control>
<control-param name="compactMode">true</control-param>
</control>
</field>
<!-- ACME Props appearance -->
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
set="acmeDocSet"/>
</appearance>
</form>
<!-- Document Library Inline Edit form -->
<form id="doclib-inline-edit">
<field-visibility>
<show id="cm:name"/>
<show id="cm:content" force="true"/>
<show id="cm:title" force="true"/>
<show id="cm:description" force="true"/>
<!-- ACME custom props -->
<show id="acme:documentId" force="true"/>
<show id="acme:securityClassification"/>
</field-visibility>
<appearance>
<field id="cm:name">
<control>
<control-param name="maxLength">255</control-param>
</control>
</field>
<field id="cm:title">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="cm:content" label-id="">
<control>
<control-param name="editorAppearance">explorer</control-param>
<control-param name="forceEditor">true</control-param>
</control>
</field>
<!-- ACME Props appearance -->
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
set="acmeDocSet"/>
</appearance>
</form>
</forms>
</config>
<!-- Create and search forms for acme:document -->
<config evaluator="model-type" condition="acme:document">
<forms>
<form>
<field-visibility>
<show id="cm:name"/>
<show id="cm:content" force="true"/>
<show id="cm:title" force="true"/>
<show id="cm:description" force="true"/>
<show id="mimetype"/>
<show id="app:editInline" force="true"/>
<!-- ACME custom props -->
<show id="acme:documentId" force="true"/>
<show id="acme:securityClassification"/>
</field-visibility>
<appearance>
<field id="cm:name">
<control>
<control-param name="maxLength">255</control-param>
</control>
</field>
<field id="cm:title">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="cm:content" label-id="">
<control>
<control-param name="editorAppearance">explorer</control-param>
</control>
</field>
<field id="mimetype">
<control template="/org/alfresco/components/form/controls/hidden.ftl">
<control-param name="contextProperty">mimeType</control-param>
</control>
</field>
<field id="app:editInline">
<control template="/org/alfresco/components/form/controls/hidden.ftl">
<control-param name="contextProperty">editInline</control-param>
</control>
</field>
<!-- ACME Props appearance -->
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
set="acmeDocSet"/>
</appearance>
</form>
<!-- Search form -->
<form id="search">
<field-visibility>
<show id="cm:name"/>
<show id="cm:title" force="true"/>
<show id="cm:description" force="true"/>
<show id="mimetype"/>
<show id="cm:modified"/>
<show id="cm:modifier"/>
<!-- ACME custom props -->
<show id="acme:documentId" force="true"/>
<show id="acme:securityClassification"/>
</field-visibility>
<appearance>
<field id="mimetype">
<control template="/org/alfresco/components/form/controls/mimetype.ftl"/>
</field>
<field id="cm:modifier">
<control>
<control-param name="forceEditable">true</control-param>
</control>
</field>
<field id="cm:modified">
<control template="/org/alfresco/components/form/controls/daterange.ftl"/>
</field>
<!-- ACME Props appearance -->
<set id="acmeDocSet" appearance="bordered-panel" label-id="form.set.label.acme.document"/>
<field id="acme:documentId" label-id="form.field.label.acme.documentId" set="acmeDocSet">
<control template="/org/alfresco/components/form/controls/textfield.ftl"/>
</field>
<field id="acme:securityClassification" label-id="form.field.label.acme.securityClassification"
set="acmeDocSet"/>
</appearance>
</form>
</forms>
</config>
</alfresco-config>

View File

@@ -24,7 +24,7 @@ module.id=${project.artifactId}
#module.aliases=myModule-123, my-module
module.title=${project.name}
module.description=${project.description}
module.version=${noSnapshotVersion}
module.version=${project.version}
# The following optional properties can be used to prevent the module from being added
# to inappropriate versions of the WAR file.

View File

@@ -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-3.0.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="${package}.${artifactId}.resources"
class="org.springframework.extensions.surf.util.ResourceBundleBootstrapComponent">
<property name="resourceBundles">
<list>
<value>alfresco.web-extension.messages.${artifactId}</value>
</list>
</property>
</bean>
</beans>

View File

@@ -0,0 +1,25 @@
# This file should contain messages and labels specific to this share extension
# Put here things like:
# Content Model Aspect and Type Labels
# Form field labels
# Doc lib Action labels and messages
# Doc Lib Action Forms labels
#
# Labels for custom types and aspects
# Used in "Manage Aspects" and "Change Type" dialogs
#
type.acme_document=ACME Document
aspect.acme_securityClassified=Security Classified
# View,Edit,Search,Create Form labels for types and aspects
#
form.set.label.acme.document= ACME Document Information
form.field.label.acme.documentId=ACME Document Id
form.field.label.acme.securityClassification=Security Classification
# Advanced Search Form labels (only for types)
#
form.label.advancedsearch.acmeDocument=ACME Documents
form.description.advancedsearch.acmeDocument=Search for any ACME Documents

View File

@@ -1,7 +1,10 @@
#set($symbol_pound='#')
#set($symbol_dollar='$')
#set($symbol_escape='\' )
<extension>
<modules>
<module>
<id>Example Aikau Widgets</id>
<id>${artifactId} - Example Aikau Widgets</id>
<version>1.0</version>
<auto-deploy>true</auto-deploy>
<configurations>
@@ -9,7 +12,7 @@
<web-framework>
<dojo-pages>
<packages>
<package name="example" location="js/example"/>
<package name="tutorials" location="resources/${artifactId}/js/tutorials"/>
</packages>
</dojo-pages>
</web-framework>

View File

@@ -0,0 +1,29 @@
model.jsonModel = {
widgets: [{
id: "SET_PAGE_TITLE",
name: "alfresco/header/SetTitle",
config: {
title: "This is a sample HELLO 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: "tutorials/widgets/TemplateWidget"
}
]
}
}]
};

View File

@@ -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}.
##

View File

@@ -0,0 +1,12 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Dev environment startup script for Alfresco Community ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@ECHO OFF
IF "%MAVEN_OPTS%" == "" (
ECHO The environment variable 'MAVEN_OPTS' is not set, setting it for you
SET MAVEN_OPTS=-Xms256m -Xmx2G
)
ECHO MAVEN_OPTS is set to '%MAVEN_OPTS%'
mvnDebug clean install alfresco:run

View File

@@ -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 -Xmx2G"
fi
echo "MAVEN_OPTS is set to '$MAVEN_OPTS'";
mvnDebug clean install alfresco:run

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>${artifactId}</artifactId>
<name>Integration Tests Module</name>
<description>Integration Tests module for in-container integration testing - part of AIO - SDK 3</description>
<packaging>jar</packaging> <!-- Note. this just runs Integration Tests, but it needs to be a JAR otherwise
nothing is compiled (i.e. you cannot set it to pom) -->
<parent>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}</artifactId>
<version>${version}</version>
</parent>
<properties>
</properties>
<dependencies>
<!-- Bring in any custom module that should be tested, by default we bring in the Platform JAR module
that is generated for the AIO project -->
<dependency>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}-platform-jar</artifactId>
<version>${version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<version>${jrebel.version}</version>
<configuration>
<rebelXmlDirectory>${project.build.testOutputDirectory}</rebelXmlDirectory>
</configuration>
</plugin>
<!-- Make sure we attach the tests so we can include them when running -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Runs the integration tests, any class that follows naming convention
"**/IT*.java", "**/*IT.java", and "**/*ITCase.java" will be considered an integration test -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify-test</id>
<phase>verify</phase>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.19.1</version>
</dependency>
</dependencies>
</plugin>
<!-- Run Alfresco Tomcat embedded -->
<plugin>
<groupId>org.alfresco.maven.plugin</groupId>
<artifactId>alfresco-maven-plugin</artifactId>
<version>${alfresco.sdk.version}</version>
<executions>
<execution>
<id>start-alfresco</id>
<goals>
<goal>it</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,191 @@
#set($symbol_pound='#')
#set($symbol_dollar='$')
#set($symbol_escape='\' )
/**
* Copyright (C) 2017 Alfresco Software Limited.
* <p/>
* This file is part of the Alfresco SDK project.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ${package}.platformsample;
import org.alfresco.model.ContentModel;
import org.alfresco.rad.test.AbstractAlfrescoIT;
import org.alfresco.rad.test.AlfrescoTestRunner;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.nodelocator.CompanyHomeNodeLocator;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* Integration Test sample for a custom content model.
* See {@link DemoComponentIT} for more info.
*
* @author martin.bergljung@alfresco.com
* @since 3.0
*/
@RunWith(value = AlfrescoTestRunner.class)
public class CustomContentModelIT extends AbstractAlfrescoIT {
private static final String ACME_MODEL_NS = "{http://www.acme.org/model/content/1.0}";
private static final String ACME_MODEL_LOCALNAME = "contentModel";
private static final String ACME_DOCUMENT_TYPE = "document";
private static final String ACME_SECURITY_CLASSIFIED_ASPECT = "securityClassified";
private static final String ACME_DOCUMENT_ID_PROPNAME = "documentId";
@Test
public void testCustomContentModelPresence() {
Collection<QName> allContentModels = getServiceRegistry().getDictionaryService().getAllModels();
QName customContentModelQName = createQName(ACME_MODEL_LOCALNAME);
assertTrue("Custom content model " + customContentModelQName.toString() +
" is not present", allContentModels.contains(customContentModelQName));
}
@Test
public void testCreateAcmeDocument() {
// Create the ACME Doc file
QName type = createQName(ACME_DOCUMENT_TYPE);
String textContent = "Hello World!";
String documentId = "DOC001";
Map<QName, Serializable> nodeProperties = new HashMap<>();
nodeProperties.put(createQName(ACME_DOCUMENT_ID_PROPNAME), documentId);
nodeProperties.put(createQName("securityClassification"), "Company Confidential");
NodeRef nodeRef = createNode("AcmeFile.txt", type, nodeProperties);
addFileContent(nodeRef, textContent);
// Add an Aspect to the file (could be a custom aspect...)
Map<QName, Serializable> aspectProperties = new HashMap<>();
aspectProperties.put(ContentModel.PROP_TITLE, "Some Doc Title");
aspectProperties.put(ContentModel.PROP_DESCRIPTION, "Some Doc Description");
getServiceRegistry().getNodeService().addAspect(nodeRef, ContentModel.ASPECT_TITLED, aspectProperties);
// Assert that the file is created correctly
assertEquals("Invalid type", type, getServiceRegistry().getNodeService().getType(nodeRef));
assertTrue("Missing security aspect",
getServiceRegistry().getNodeService().hasAspect(nodeRef, createQName(ACME_SECURITY_CLASSIFIED_ASPECT)));
assertTrue("Missing titled aspect",
getServiceRegistry().getNodeService().hasAspect(nodeRef, ContentModel.ASPECT_TITLED));
assertEquals("Invalid property value", documentId,
getServiceRegistry().getNodeService().getProperty(nodeRef, createQName(ACME_DOCUMENT_ID_PROPNAME)));
readTextContent(nodeRef).equals(textContent);
// Clean up node
if (nodeRef != null) {
getServiceRegistry().getNodeService().deleteNode(nodeRef);
}
}
/**
* ==================== Helper Methods ============================================================================
*/
/**
* Create a QName for the ACME content model
*
* @param localname the local content model name without namespace specified
* @return the full ACME QName including namespace
*/
private QName createQName(String localname) {
return QName.createQName(ACME_MODEL_NS + localname);
}
/**
* Create a new node, such as a file or a folder, with passed in type and properties
*
* @param name the name of the file or folder
* @param type the content model type
* @param properties the properties from the content model
* @return the Node Reference for the newly created node
*/
private NodeRef createNode(String name, QName type, Map<QName, Serializable> properties) {
NodeRef parentFolderNodeRef = getCompanyHomeNodeRef();
QName associationType = ContentModel.ASSOC_CONTAINS;
QName associationQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
QName.createValidLocalName(name));
properties.put(ContentModel.PROP_NAME, name);
ChildAssociationRef parentChildAssocRef = getServiceRegistry().getNodeService().createNode(
parentFolderNodeRef, associationType, associationQName, type, properties);
return parentChildAssocRef.getChildRef();
}
/**
* Add some text content to a file node
*
* @param nodeRef the node reference for the file that should have some text content added to it
* @param fileContent the text content
*/
private void addFileContent(NodeRef nodeRef, String fileContent) {
boolean updateContentPropertyAutomatically = true;
ContentWriter writer = getServiceRegistry().getContentService().getWriter(nodeRef, ContentModel.PROP_CONTENT,
updateContentPropertyAutomatically);
writer.setMimetype(MimetypeMap.MIMETYPE_TEXT_PLAIN);
writer.setEncoding("UTF-8");
writer.putContent(fileContent);
}
/**
* Read text content for passed in file Node Reference
*
* @param nodeRef the node reference for a file containing text
* @return the text content
*/
private String readTextContent(NodeRef nodeRef) {
ContentReader reader = getServiceRegistry().getContentService().getReader(nodeRef, ContentModel.PROP_CONTENT);
if (reader == null) {
return ""; // Maybe it was a folder after all
}
InputStream is = reader.getContentInputStream();
try {
return IOUtils.toString(is, "UTF-8");
} catch (IOException ioe) {
throw new RuntimeException(ioe);
} finally {
if (is != null) {
try {
is.close();
} catch (Throwable e) {
e.printStackTrace();
}
}
}
}
/**
* Get the node reference for the /Company Home top folder in Alfresco.
* Use the standard node locator service.
*
* @return the node reference for /Company Home
*/
private NodeRef getCompanyHomeNodeRef() {
return getServiceRegistry().getNodeLocatorService().getNode(CompanyHomeNodeLocator.NAME, null, null);
}
}

View File

@@ -0,0 +1,73 @@
#set($symbol_pound='#')
#set($symbol_dollar='$')
#set($symbol_escape='\' )
/**
* Copyright (C) 2017 Alfresco Software Limited.
* <p/>
* This file is part of the Alfresco SDK project.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ${package}.platformsample;
import org.alfresco.rad.test.AbstractAlfrescoIT;
import org.alfresco.rad.test.AlfrescoTestRunner;
import org.alfresco.rad.test.Remote;
import org.alfresco.model.ContentModel;
import org.alfresco.service.cmr.repository.NodeRef;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
* Integration Test of the DemoComponent using the Alfresco Test Runner.
* The Alfresco Test Runner (i.e. AlfrescoTestRunner.class) will check if it is running in an Alfresco instance,
* if so it will execute normally locally. On the other hand, if it detects no
* Alfresco Spring context, then it will make a call to a custom Web Script that
* will execute this test in the running container remotely. The remote location is
* determined by the @Remote config.
*
* @author martin.bergljung@alfresco.com
* @since 3.0
*/
@RunWith(value = AlfrescoTestRunner.class)
// Specifying the remote endpoint is not required, it
// will default to http://localhost:8080/alfresco if
// not provided. This shows the syntax but simply
// sets the value back to the default value.
@Remote(endpoint = "http://localhost:8080/alfresco")
public class DemoComponentIT extends AbstractAlfrescoIT {
@Test
public void testGetCompanyHome() {
DemoComponent demoComponent = (DemoComponent) getApplicationContext().getBean("${package}.DemoComponent");
NodeRef companyHome = demoComponent.getCompanyHome();
assertNotNull(companyHome);
String companyHomeName = (String) getServiceRegistry().getNodeService().getProperty(
companyHome, ContentModel.PROP_NAME);
assertNotNull(companyHomeName);
assertEquals("Company Home", companyHomeName);
}
@Test
public void testChildNodesCount() {
DemoComponent demoComponent = (DemoComponent) getApplicationContext().getBean("${package}.DemoComponent");
NodeRef companyHome = demoComponent.getCompanyHome();
int childNodeCount = demoComponent.childNodesCount(companyHome);
assertNotNull(childNodeCount);
// There are 7 folders by default under Company Home
assertEquals(7, childNodeCount);
}
}

View File

@@ -0,0 +1,75 @@
#set($symbol_pound='#')
#set($symbol_dollar='$')
#set($symbol_escape='\' )
/**
* Copyright (C) 2017 Alfresco Software Limited.
* <p/>
* This file is part of the Alfresco SDK project.
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ${package}.platformsample;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
* Integration Test (IT) for Hello World web script.
*
* @author martin.bergljung@alfresco.com
* @version 1.0
* @since 3.0
*/
public class HelloWorldWebScriptIT {
@Test
public void testWebScriptCall() throws Exception {
String webscriptURL = "http://localhost:8080/alfresco/service/sample/helloworld";
String expectedResponse = "Message: 'Hello from JS!' 'HelloFromJava'";
// Login credentials for Alfresco Repo
CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("admin", "admin");
provider.setCredentials(AuthScope.ANY, credentials);
// Create HTTP Client with credentials
CloseableHttpClient httpclient = HttpClientBuilder.create()
.setDefaultCredentialsProvider(provider)
.build();
// Execute Web Script call
try {
HttpGet httpget = new HttpGet(webscriptURL);
HttpResponse httpResponse = httpclient.execute(httpget);
assertEquals("Incorrect HTTP Response Status",
HttpStatus.SC_OK, httpResponse.getStatusLine().getStatusCode());
HttpEntity entity = httpResponse.getEntity();
assertNotNull("Response from Web Script is null", entity);
assertEquals("Incorrect Web Script Response", expectedResponse, EntityUtils.toString(entity));
} finally {
httpclient.close();
}
}
}

View File

@@ -0,0 +1,72 @@
# 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 with Enterprise Database, such as SQL Server, Oracle etc
#
# Configuration when running Tomcat embedded from Maven.
# 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
index.subsystem.name=solr4
solr.host=localhost
solr.port=8080
solr.secureComms=none
# Don't try and recover any index
index.recovery.mode=NONE
# As we run embedded, we set Lucene
# TODO: Find a better solution for indexing, as buildonly (embedded Lucene) is deprecated and going to be removed soon
#index.subsystem.name=buildonly
# These jobs seem to require Lucene (Unsupported Operation with Solr) so we disable them / set to future date
# See https://forums.alfresco.com/en/viewtopic.php?f=52&t=41597
# 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
# Alfresco Repository Enterprise Database Configuration, such as SQL Server, Oracle etc
# The Enterprise Driver is brought in via the tomcat7-maven-plugin as a dependency.
db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
db.url=jdbc:sqlserver://localhost:1433;databaseName=alfrescoaio
db.username=alfresco
db.password=alfresco
db.pool.initial=10
db.pool.max=100
# File servers related properties
# For local runs we disable CIFS and FTP
cifs.enabled=false
ftp.enabled=false

View File

@@ -0,0 +1,76 @@
# 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 with H2 Database
#
# Configuration when running Tomcat embedded from Maven.
# 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
index.subsystem.name=solr4
solr.host=localhost
solr.port=8080
solr.secureComms=none
# Don't try and recover any index
index.recovery.mode=NONE
# As we run embedded, we set Lucene
# TODO: Find a better solution for indexing, as buildonly (embedded Lucene) is deprecated and going to be removed soon
#index.subsystem.name=buildonly
# These jobs seem to require Lucene (Unsupported Operation with Solr) so we disable them / set to future date
# See https://forums.alfresco.com/en/viewtopic.php?f=52&t=41597
# 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
# Alfresco Repository H2 Database configuration.
# The H2 database implementation and Driver is brought in via the tomcat7-maven-plugin as a dependency.
# The data files for the H2 database will be created in a relative path, such as alf_data_dev/h2_data/alf_dev,
# see alfresco.db.url below.
# For more information about the db parameters see:http://www.h2database.com/html/features.html
db.driver=org.h2.jdbcx.JdbcDataSource
db.url=jdbc:h2:${alfresco.data.location}/h2_data/alf_dev;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=10000;MVCC=FALSE;LOCK_MODE=0
db.username=alfresco
db.password=alfresco
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

View File

@@ -0,0 +1,72 @@
# 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 with MySQL Database
#
# Configuration when running Tomcat embedded from Maven.
# 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
index.subsystem.name=solr4
solr.host=localhost
solr.port=8080
solr.secureComms=none
# Don't try and recover any index
index.recovery.mode=NONE
# As we run embedded, we set Lucene
# TODO: Find a better solution for indexing, as buildonly (embedded Lucene) is deprecated and going to be removed soon
#index.subsystem.name=buildonly
# These jobs seem to require Lucene (Unsupported Operation with Solr) so we disable them / set to future date
# See https://forums.alfresco.com/en/viewtopic.php?f=52&t=41597
# 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
# Alfresco Repository MySQL Database configuration.
# The MySQL Driver is brought in via the tomcat7-maven-plugin as a dependency.
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://localhost:3306/alfrescoaio?useUnicode=yes&characterEncoding=UTF-8
db.username=alfresco
db.password=alfresco
db.pool.initial=10
db.pool.max=100
# File servers related properties
# For local runs we disable CIFS and FTP
cifs.enabled=false
ftp.enabled=false

View File

@@ -0,0 +1,72 @@
# 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 with PostgreSQL Database
#
# Configuration when running Tomcat embedded from Maven.
# 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
index.subsystem.name=solr4
solr.host=localhost
solr.port=8080
solr.secureComms=none
# Don't try and recover any index
index.recovery.mode=NONE
# As we run embedded, we set Lucene
# TODO: Find a better solution for indexing, as buildonly (embedded Lucene) is deprecated and going to be removed soon
#index.subsystem.name=buildonly
# These jobs seem to require Lucene (Unsupported Operation with Solr) so we disable them / set to future date
# See https://forums.alfresco.com/en/viewtopic.php?f=52&t=41597
# 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
# Alfresco Repository PostgreSQL Database configuration.
# The PostgreSQL Driver is brought in via the tomcat7-maven-plugin as a dependency.
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/alfrescoaio
db.username=alfresco
db.password=alfresco
db.pool.initial=10
db.pool.max=100
# File servers related properties
# For local runs we disable CIFS and FTP
cifs.enabled=false
ftp.enabled=false

View File

@@ -1,10 +1,6 @@
# This is a full override of Alfresco 4.2.b log4j.properties
# This file overwrites the alfresco.war log4j.properties
# Set root logger level to error
log4j.rootLogger=${app.log.root.level}, Console, File
log4j.rootLogger=error, Console, File
###### Console appender definition #######
# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
@@ -14,21 +10,18 @@ log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
#log4j.appender.Console.layout.ConversionPattern=%d{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.File=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
log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
###### Hibernate specific appender definition #######
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
###### Log level overrides #######
# Commented-in loggers will be exposed as JMX MBeans (refer to org.alfresco.repo.admin.Log4JHierarchyInit)
# Hence, generally useful loggers should be listed with at least ERROR level to allow simple runtime
@@ -64,16 +57,15 @@ log4j.logger.org.apache.myfaces.taglib=error
# OpenOfficeConnection
log4j.logger.net.sf.jooreports.openoffice.connection=fatal
# log prepared statement cache activity ###
log4j.logger.org.hibernate.ps.PreparedStatementCache=info
# log prepared statement cache activity log4j.logger.org.hibernate.ps.PreparedStatementCache=info
# Alfresco
log4j.logger.org.alfresco=error
log4j.logger.org.alfresco.repo.admin=info
log4j.logger.org.alfresco.repo.transaction=warn
log4j.logger.org.alfresco.repo.cache.TransactionalCache=warn
log4j.logger.org.alfresco.repo.model.filefolder=warn
log4j.logger.org.alfresco.repo.tenant=info
log4j.logger.org.alfresco.repo.avm=info
log4j.logger.org.alfresco.config=warn
log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
log4j.logger.org.alfresco.config.JBossEnabledWebApplicationContext=warn
@@ -89,23 +81,18 @@ log4j.logger.org.alfresco.web=info
#log4j.logger.org.alfresco.web.ui.repo.component.UIActions=debug
#log4j.logger.org.alfresco.web.ui.repo.tag.PageTag=debug
#log4j.logger.org.alfresco.web.bean.clipboard=debug
log4j.logger.org.alfresco.repo.webservice=info
log4j.logger.org.alfresco.service.descriptor.DescriptorService=info
#log4j.logger.org.alfresco.web.page=debug
log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=error
#log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=info
log4j.logger.org.alfresco.web.ui.common.Utils=error
#log4j.logger.org.alfresco.web.ui.common.Utils=info
log4j.logger.org.alfresco.repo.admin.patch.PatchExecuter=info
log4j.logger.org.alfresco.repo.domain.patch.ibatis.PatchDAOImpl=info
# Specific patches
log4j.logger.org.alfresco.repo.admin.patch.impl.DeploymentMigrationPatch=info
log4j.logger.org.alfresco.repo.version.VersionMigrator=info
log4j.logger.org.alfresco.repo.admin.patch.impl.ResetWCMToGroupBasedPermissionsPatch=info
log4j.logger.org.alfresco.repo.module.ModuleServiceImpl=info
log4j.logger.org.alfresco.repo.domain.schema.SchemaBootstrap=info
@@ -113,17 +100,17 @@ log4j.logger.org.alfresco.repo.admin.ConfigurationChecker=info
log4j.logger.org.alfresco.repo.node.index.AbstractReindexComponent=warn
log4j.logger.org.alfresco.repo.node.index.IndexTransactionTracker=warn
log4j.logger.org.alfresco.repo.node.index.FullIndexRecoveryComponent=info
log4j.logger.org.alfresco.repo.node.index.AVMFullIndexRecoveryComponent=info
log4j.logger.org.alfresco.util.OpenOfficeConnectionTester=info
log4j.logger.org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl=warn
log4j.logger.org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor=warn
log4j.logger.org.alfresco.repo.transaction.RetryingTransactionHelper=warn
log4j.logger.org.alfresco.util.transaction.SpringAwareUserTransaction.trace=warn
log4j.logger.org.alfresco.util.AbstractTriggerBean=warn
log4j.logger.org.alfresco.enterprise.repo.cache.cluster.KeepAliveHeartbeatReceiver=info
log4j.logger.org.alfresco.enterprise.repo.cluster=info
log4j.logger.org.alfresco.repo.version.Version2ServiceImpl=warn
#log4j.logger.org.alfresco.web.app.DebugPhaseListener=debug
log4j.logger.org.alfresco.repo.node.db.NodeStringLengthWorker=info
log4j.logger.org.alfresco.repo.workflow=info
@@ -138,7 +125,7 @@ log4j.logger.org.alfresco.ftp.protocol=error
# WebDAV debugging
#log4j.logger.org.alfresco.webdav.protocol=debug
log4j.logger.org.alfresco.webdav.protocol=error
log4j.logger.org.alfresco.webdav.protocol=info
# NTLM servlet filters
#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
@@ -154,9 +141,6 @@ log4j.logger.org.alfresco.fileserver=warn
# Repo filesystem debug logging
#log4j.logger.org.alfresco.filesys.repo.ContentDiskDriver=debug
# AVM filesystem debug logging
#log4j.logger.org.alfresco.filesys.avm.AVMDiskDriver=debug
# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated
log4j.logger.org.alfresco.repo.node.integrity=ERROR
@@ -172,18 +156,9 @@ log4j.logger.org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl=
# log4j.logger.org.alfresco.repo.audit=DEBUG
# log4j.logger.org.alfresco.repo.audit.model=DEBUG
# Forms debugging
# log4j.logger.org.alfresco.web.forms=debug
# log4j.logger.org.chiba.xml.xforms=debug
log4j.logger.org.alfresco.web.forms.xforms.XFormsBean=error
log4j.logger.org.alfresco.web.forms.XSLTRenderingEngine=error
# Property sheet and modelling debugging
# change to error to hide the warnings about missing properties and associations
log4j.logger.alfresco.missingProperties=warn
log4j.logger.org.alfresco.web.ui.repo.component.property.UIChildAssociation=warn
log4j.logger.org.alfresco.web.ui.repo.component.property.UIAssociation=warn
#log4j.logger.org.alfresco.web.ui.repo.component.property=debug
# Dictionary/Model debugging
log4j.logger.org.alfresco.repo.dictionary=warn
@@ -211,7 +186,6 @@ log4j.logger.org.alfresco.repo.usage=info
log4j.logger.org.alfresco.module.vti=info
# Forms Engine
log4j.logger.org.alfresco.repo.forms=info
log4j.logger.org.alfresco.web.config.forms=info
log4j.logger.org.alfresco.web.scripts.forms=info
@@ -221,6 +195,8 @@ log4j.logger.org.alfresco.opencmis.AlfrescoCmisServiceInterceptor=error
log4j.logger.org.alfresco.cmis=error
log4j.logger.org.alfresco.cmis.dictionary=warn
log4j.logger.org.apache.chemistry.opencmis=info
log4j.logger.org.apache.chemistry.opencmis.server.impl.browser.CmisBrowserBindingServlet=OFF
log4j.logger.org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet=OFF
# IMAP
log4j.logger.org.alfresco.repo.imap=info
@@ -231,7 +207,6 @@ log4j.logger.org.jbpm.graph.def.GraphElement=fatal
#log4j.logger.org.alfresco.repo.googledocs=debug
###### Scripting #######
# Web Framework
log4j.logger.org.springframework.extensions.webscripts=info
@@ -246,7 +221,13 @@ log4j.logger.org.alfresco.repo.jscript=error
log4j.logger.org.alfresco.repo.jscript.ScriptLogger=warn
log4j.logger.org.alfresco.repo.cmis.rest.CMISTest=info
log4j.logger.org.alfresco.repo.avm.actions=info
log4j.logger.org.alfresco.repo.domain.schema.script.ScriptBundleExecutorImpl=off
log4j.logger.org.alfresco.repo.domain.schema.script.ScriptExecutorImpl=info
log4j.logger.org.alfresco.repo.search.impl.solr.facet.SolrFacetServiceImpl=info
# Bulk Filesystem Import Tool
log4j.logger.org.alfresco.repo.bulkimport=warn
# Freemarker
# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
@@ -263,4 +244,20 @@ log4j.logger.org.apache.pdfbox.pdmodel.font.PDCIDFont=fatal
# no index support
log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexIndexer=fatal
log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexSearchService=fatal
log4j.logger.org.alfresco.demoamp.test=DEBUG
# lucene index warnings
log4j.logger.org.alfresco.repo.search.impl.lucene.index.IndexInfo=warn
# Warn about RMI socket bind retries.
log4j.logger.org.alfresco.util.remote.server.socket.HostConfigurableSocketFactory=warn
log4j.logger.org.alfresco.repo.usage.RepoUsageMonitor=info
# Authorization
log4j.logger.org.alfresco.enterprise.repo.authorization.AuthorizationService=info
log4j.logger.org.alfresco.enterprise.repo.authorization.AuthorizationsConsistencyMonitor=warn

View File

@@ -17,7 +17,17 @@
limitations under the License.
-->
<beans>
<!-- This disables javascript compilation so that webscripts can be hot reloaded -->
<!--
To support hot reloading of server side Javascript files in Share, we have to turn on development mode.
This setting will tell the Rhinoscript Processor not to compile and cache the JS files.
Cool, we can now change server side JS files and have the changes picked up,
without having to restart or refresh web scripts.
But… Due to a known bug in the Surf framework (ALF-9970) this will break the admin consoles in Share.
Override this bean and disable javascript compilation so that webscripts can be hot reloaded.
We have changed the 'compile' property from true to false.
-->
<bean id="javaScriptProcessor" class="org.alfresco.repo.jscript.RhinoScriptProcessor" init-method="register">
<property name="name">
<value>javascript</value>
@@ -25,7 +35,7 @@
<property name="extension">
<value>js</value>
</property>
<!-- compile javascript and cache compiled scripts -->
<!-- Do not "compile javascript and cache compiled scripts" -->
<property name="compile">
<value>false</value>
</property>

View File

@@ -0,0 +1,54 @@
# 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=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=
#-----------------------------------------------------------------------
# Custom Share module logging goes here...
#-----------------------------------------------------------------------

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="${solr.home}" override="true"/>
<Environment name="solr/model/dir" type="java.lang.String" value="${solr.model.dir}" override="true"/>
<Environment name="solr/content/dir" type="java.lang.String" value="${solr.content.dir}" override="true"/>
</Context>

View File

@@ -1,81 +1,413 @@
<?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">
<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 runner.</name>
<description>This All-in-One project allows to manage all the components involved in Alfresco development (Repo, Share, Solr, AMPs) in one project</description>
<packaging>pom</packaging>
<name>AIO - SDK 3.0</name>
<description>All-In-One (AIO) project for SDK 3.0</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>
<!--
| Defines the groupId for the Alfresco Artifacts to work against. As of 4.2 the only allowed value is: org.alfresco
| NOTE: See http://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-tutorials-alfresco-enterprise.html for details
-->
<!-- <alfresco.groupId>${alfresco_target_groupId}</alfresco.groupId> -->
<!-- Defines the Alfresco version to work against.
Community versions are typically identified by major.minor.character (4.2.a) while Enterprise versions are identified by major.minor.digit (4.2.0)
-->
<!--<alfresco.version>${alfresco_target_version}</alfresco.version>-->
<!-- This control the root logging level for all apps -->
<app.log.root.level>WARN</app.log.root.level>
<!-- This controls the default data location for dir.root -->
<alfresco.data.location>alf_data_dev</alfresco.data.location>
<!-- This controls which properties will be picked in multi-enviromment build -->
<!-- Alfresco Maven Plugin version to use -->
<alfresco.sdk.version>@@alfresco.sdk.parent.version@@</alfresco.sdk.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Alfresco Data directory, which will contain:
Content Store (i.e. the files we upload)
Database (i.e. the metadata for the uploaded files)
Search index (i.e. the indexed content and metadata)
Configured in alfresco-global.properties with the 'dir.root' property.
-->
<alfresco.data.location>${session.executionRootDirectory}/alf_data_dev</alfresco.data.location>
<!-- Duplicated with alfresco.solrHome in the plugin, we need them out here to do filtering -->
<solr.home>${alfresco.data.location}/solr</solr.home>
<solr.model.dir>${solr.home}/alfrescoModels</solr.model.dir>
<solr.content.dir>${solr.home}/index</solr.content.dir>
<!-- Properties used in dependency declarations, you don't need to change these -->
<alfresco.groupId>org.alfresco</alfresco.groupId>
<!-- Alfresco Platform and Share webapp versions, these are the original Alfresco webapps that will be
customized and then deployed and run by the tomcat maven plugin when
executing for example $ mvn clean install alfresco:run -->
<alfresco.platform.version>5.2.f</alfresco.platform.version>
<alfresco.share.version>5.2.e</alfresco.share.version>
<!-- Default is to run with a Community edition, change to 'enterprise' if using Enterprise edition -->
<maven.alfresco.edition>community</maven.alfresco.edition>
<!-- Alfresco Surf version, if you change Share version you might need to change Surf version -->
<alfresco.surf.version>6.11</alfresco.surf.version>
<!-- JRebel Hot reloading of classpath stuff and web resource stuff -->
<jrebel.version>1.1.6</jrebel.version>
<!-- Environment to use, Alfresco Maven Plugin will
copy alfresco-global-*.properties files from this directory, such as src/test/properties/local -->
<env>local</env>
<!-- Compile with Java 7, default is 5 -->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!-- 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>
<!-- Libs used in Unit and Integration tests -->
<!-- IMPORTANT - Test dependencies need to be here in the top parent POM as
the Alfresco Maven IT Mojo runs as part of the parent project ... -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
<scope>test</scope>
</dependency>
<!-- 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.
-->
<profiles>
<profile>
<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>
<!-- RM profile, manually activated, automatically adds support for RM development (dependencies) and install the RM amps in the WARs -->
<profile>
<id>rm</id>
<properties>
<alfresco.rm.version>2.3.a.1</alfresco.rm.version>
<app.rm.amps.location>${project.build.directory}/rm-amps</app.rm.amps.location>
<app.rm.war.location>${project.build.directory}/${project.build.finalName}.war</app.rm.war.location>
<app.rm.artifact>org.alfresco:${alfresco.rm.artifactId}:${alfresco.rm.version}:amp</app.rm.artifact>
</properties>
</profile>
</profiles>
<!-- The main Alfresco Repo dependency for compiling Java code in src/main/java -->
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-repository</artifactId>
</dependency>
<!-- Bring in Spring Context so we can use ApplicationContext, ApplicationContextAware etc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.17.RELEASE</version>
<scope>test</scope>
</dependency>
<!-- Bring in Alfresco RAD so we get access to AlfrescoTestRunner classes -->
<dependency>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-rad</artifactId>
<version>${alfresco.sdk.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- This will import the dependencyManagement for all artifacts in the selected Alfresco platform.
NOTE: You still need to define dependencies in your POM, but you can omit version as
it's enforced by this dependencyManagement.
NOTE: It defaults to the latest version this SDK pom has been tested with,
but alfresco version can/should be overridden in your project's pom
-->
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-platform-distribution</artifactId>
<version>${alfresco.platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Redefine the following Share dependencies as they have different version numbers than platform.
They are defined in alfresco-platform-distribution... -->
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>share</artifactId>
<version>${alfresco.share.version}</version>
<type>war</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>share</artifactId>
<version>${alfresco.share.version}</version>
<classifier>classes</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-web-framework-commons</artifactId>
<version>${alfresco.share.version}</version>
<classifier>classes</classifier>
<scope>provided</scope>
</dependency>
<!-- Redefine the following surf dependencies as they have no resolvable version in the
alfresco-platform-distribution artifact -->
<dependency>
<groupId>org.alfresco.surf</groupId>
<artifactId>spring-surf</artifactId>
<version>${alfresco.surf.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.alfresco.surf</groupId>
<artifactId>spring-surf-api</artifactId>
<version>${alfresco.surf.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<!--
Build an AMP if 3rd party libs are needed by the extensions
JARs are the default artifact produced in your modules, if you want to build an amp for each module
you have to enable this plugin and inspect the src/main/assembly.xml file if you want to customize
the layout of your AMP. The end result is that Maven will produce both a JAR file and an AMP with your
module.
-->
<!--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>build-amp-file</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptor>src/main/assembly/amp.xml</descriptor>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.alfresco.maven.plugin</groupId>
<artifactId>alfresco-maven-plugin</artifactId>
<version>${alfresco.sdk.version}</version>
</dependency>
</dependencies>
</plugin>
-->
<!-- Filter resources in any sub-project with this config -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions> <!-- jpg, jpeg, gif, bmp and png are added automatically -->
<nonFilteredFileExtension>ftl</nonFilteredFileExtension>
<nonFilteredFileExtension>acp</nonFilteredFileExtension>
<nonFilteredFileExtension>svg</nonFilteredFileExtension>
<nonFilteredFileExtension>pdf</nonFilteredFileExtension>
<nonFilteredFileExtension>doc</nonFilteredFileExtension>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
<nonFilteredFileExtension>ppt</nonFilteredFileExtension>
<nonFilteredFileExtension>pptx</nonFilteredFileExtension>
<nonFilteredFileExtension>bin</nonFilteredFileExtension>
<nonFilteredFileExtension>lic</nonFilteredFileExtension>
<nonFilteredFileExtension>swf</nonFilteredFileExtension>
<nonFilteredFileExtension>zip</nonFilteredFileExtension>
<nonFilteredFileExtension>msg</nonFilteredFileExtension>
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<nonFilteredFileExtension>eot</nonFilteredFileExtension>
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
<nonFilteredFileExtension>css</nonFilteredFileExtension>
<nonFilteredFileExtension>ico</nonFilteredFileExtension>
<nonFilteredFileExtension>psd</nonFilteredFileExtension>
<nonFilteredFileExtension>js</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<!-- Make sure resources in sub-projects are filtered -->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<!-- Filter the test resource files in the AIO parent project, and do property substitutions.
We need this config so this is done before the Alfresco Maven Plugin 'run' is executed. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<inherited>false</inherited>
<!-- Run only for the AIO parent Project -->
<executions>
<execution>
<id>copy-and-filter-test-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
<resources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!--
The Alfresco Maven Plugin contains all the logic to run the extension
in an embedded Tomcat with the H2 database.
-->
<plugin>
<groupId>org.alfresco.maven.plugin</groupId>
<artifactId>alfresco-maven-plugin</artifactId>
<version>${alfresco.sdk.version}</version>
<configuration>
<!-- We need the flat file H2 database to run the Repo -->
<enableH2>true</enableH2>
<!-- We always need the Platform/Repo webapp - alfresco.war -->
<enablePlatform>true</enablePlatform>
<!-- Enable Solr webapp so we can use search -->
<enableSolr>true</enableSolr>
<!-- We need Share webapp, so we got a UI for working with the Repo -->
<enableShare>true</enableShare>
<!-- Enable the REST API Explorer -->
<enableApiExplorer>true</enableApiExplorer>
<!--
JARs and AMPs that should be overlayed/applied to the Platform/Repository WAR
(i.e. alfresco.war)
-->
<platformModules>
<!-- Share Services will be ignored if you are on Platform earlier than 5.1 -->
<moduleDependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-share-services</artifactId>
<version>${alfresco.share.version}</version>
<type>amp</type>
</moduleDependency>
<!-- Bring in custom Modules -->
<moduleDependency>
<groupId>${project.groupId}</groupId>
<artifactId>${artifactId}-platform-jar</artifactId>
<version>${project.version}</version>
</moduleDependency>
<!-- Bring in the integration tests -->
<moduleDependency>
<groupId>${project.groupId}</groupId>
<artifactId>integration-tests</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
</moduleDependency>
</platformModules>
<!--
JARs and AMPs that should be overlayed/applied to the Share WAR (i.e. share.war)
-->
<shareModules>
<!-- Bring in custom Modules -->
<moduleDependency>
<groupId>${project.groupId}</groupId>
<artifactId>${artifactId}-share-jar</artifactId>
<version>${project.version}</version>
</moduleDependency>
</shareModules>
</configuration>
</plugin>
<!-- Hot reloading with JRebel -->
<plugin>
<groupId>org.zeroturnaround</groupId>
<artifactId>jrebel-maven-plugin</artifactId>
<version>${jrebel.version}</version>
<executions>
<execution>
<id>generate-rebel-xml</id>
<phase>process-resources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- For more information about how to configure JRebel plugin see:
http://manuals.zeroturnaround.com/jrebel/standalone/maven.html#maven-rebel-xml -->
<classpath>
<fallback>all</fallback>
<resources>
<resource>
<directory>${project.build.outputDirectory}</directory>
<directory>${project.build.testOutputDirectory}</directory>
</resource>
</resources>
</classpath>
<!--
alwaysGenerate - default is false
If 'false' - rebel.xml is generated if timestamps of pom.xml and the current rebel.xml file are not equal.
If 'true' - rebel.xml will always be generated
-->
<alwaysGenerate>true</alwaysGenerate>
</configuration>
</plugin>
</plugins>
</build>
<!--
Alfresco Maven Repositories
-->
<repositories>
<repository>
<id>alfresco-public</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
</repository>
<repository>
<id>alfresco-public-snapshots</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
<!-- Alfresco Enterprise Edition Artifacts, put username/pwd for server in settings.xml -->
<repository>
<id>alfresco-private-repository</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/private</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>alfresco-plugin-public</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
</pluginRepository>
<pluginRepository>
<id>alfresco-plugin-public-snapshots</id>
<url>https://artifacts.alfresco.com/nexus/content/groups/public-snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>

View File

@@ -1,68 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>${artifactId}</artifactId>
<name>Alfresco Repository AMP Module</name>
<packaging>amp</packaging>
<description>This is a sample Alfresco repository AMP project, depended upon by the alfresco WAR aggregator</description>
<parent>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}</artifactId>
<version>${version}</version>
</parent>
<properties>
<!-- Defines the target WAR artifactId to run this amp, only used with the -Pamp-to-war switch
. | Allowed values: alfresco | share. Defaults to a repository AMP, but could point to your custom corporate Alfresco WAR -->
<alfresco.client.war>alfresco</alfresco.client.war>
</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-integration-parent
POM definition
@TODO - document
-->
<dependencies>
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-repository</artifactId>
</dependency>
</dependencies>
<profiles>
<!-- RM profile, manually activated, automatically adds support for RM development (dependencies) and install the RM amps in the WARs -->
<profile>
<id>rm</id>
<dependencies>
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-rm</artifactId>
<version>${alfresco.rm.version}</version>
<type>jar</type>
<classifier>classes</classifier>
</dependency>
</dependencies>
</profile>
<!-- Enterprise profile, manually activated, automatically adds support for Enterprise edition development (dependencies) -->
<profile>
<id>enterprise</id>
<dependencies>
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-enterprise-repository</artifactId>
<version>${alfresco.version}</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>run</id>
<properties>
<skipTests>true</skipTests>
</properties>
</profile>
</profiles>
</project>

View File

@@ -1,9 +0,0 @@
#!/bin/bash
# Downloads the spring-loaded lib if not existing and runs the repository AMP
springloadedfile=~/.m2/repository/org/springframework/springloaded/${springloaded.version}/springloaded-${springloaded.version}.jar
if [ ! -f $springloadedfile ]; then
mvn validate -Psetup
fi
MAVEN_OPTS="-javaagent:$springloadedfile -noverify -Xms256m -Xmx2G -XX:PermSize=300m" mvn integration-test -Prun

View File

@@ -1,36 +0,0 @@
<?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="changeMe.exampleBean" class="org.alfresco.demoamp.Demo" init-method="init" />
<!-- A simple module component that will be executed once -->
<bean id="changeMe.exampleComponent" class="org.alfresco.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="2.0" />
<property name="appliesFromVersion" value="2.0" />
<property name="nodeService" ref="NodeService" />
<property name="nodeLocatorService" ref="nodeLocatorService" />
</bean>
</beans>

View File

@@ -1,16 +0,0 @@
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

View File

@@ -1,17 +0,0 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
Test jsp. Change me!

View File

@@ -1,2 +0,0 @@
This folder (root in the AMP) gets mapped automagically in WEB-INF/licenses
in the war build

View File

@@ -1,83 +0,0 @@
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package org.alfresco.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);
}
}

View File

@@ -1,86 +0,0 @@
package org.alfresco.demoamp.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.alfresco.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);
}
}

View File

@@ -1,57 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# RUN TIME PROPERTIES
# -------------------
# Sample custom content and index data location
# This will create alf_data Relative to appserver run folder
# In this default file we take the property from the POM (for compatbility with local jetty and jboss deployments) but it can also be edited here.
dir.root=${alfresco.data.location}
# Allowed values are: NONE, AUTO, FULL
index.recovery.mode=NONE
# This is default. Allowed values are: solr, lucene, noindex
index.subsystem.name=solr
#dir.keystore=.
#keystore.password=storepassword
#metadata.password=metapassword
# 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
# File servers related properties
# For local builds we disable CIFS and FTP. Edit the following property to reenable them
smb.server.enabled=false
smb.server.name=CFS_SHARE_LOCAL
smb.server.domain=mycompany.com
smb.server.bindto=127.0.0.1
smb.tcpip.port=1445
netbios.session.port=1139
netbios.name.port=1137
netbios.datagram.port=1138
ftp.server.enables=false
ftp.port=1121
ftp.authenticator=alfresco

Some files were not shown because too many files have changed in this diff Show More