Compare commits

..

79 Commits

Author SHA1 Message Date
alfresco-build
862c998542 [maven-release-plugin] prepare release alfresco-sdk-aggregator-4.0.0-beta-1 2019-01-11 12:06:33 +00:00
Jose Luis Osorno
29fdb576ab Fix javadoc errors
- Fix the javadoc error raised by the javadoc-maven-plugin.
- Configure the javadoc-maven-plugin to accept custom javadoc annotations
from maven mojo development.
2019-01-11 12:37:33 +01:00
Jose Luis Osorno
271ba3977f Fix javadoc errors
Fix the javadoc error raised by the javadoc-maven-plugin.
2019-01-11 12:10:12 +01:00
alfresco-build
a1cbc0687d [maven-release-plugin] prepare for next development iteration 2019-01-11 10:49:52 +00:00
alfresco-build
408fda1fd3 [maven-release-plugin] prepare release alfresco-sdk-aggregator-4.0.0-beta-1 2019-01-11 10:49:45 +00:00
Ole Hejlskov
4b98ff5846 Merge pull request #517 from Alfresco/sdk-4/it-logs
Archetypes - Add IT logs
2019-01-11 10:48:47 +01:00
Jose Luis Osorno
49b489f181 Archetypes - Change log message to trace
Change the log message showing the environment variables of the
ProcessBuilder to trace.
2019-01-10 07:36:16 +01:00
Jose Luis Osorno
424e6a5a26 Archetypes - Fix batch scripts 2019-01-10 07:35:55 +01:00
Jose Luis Osorno
a2b5e64848 Archetypes - Fix bash scripts 2019-01-09 20:39:52 +01:00
Jose Luis Osorno
6ae42f8fc0 Archetypes - Improve mvn executable localisation
Change the run script to use M2_HOME environment variable if it is
set to locate the mvn executable. If it is not set, then the script
uses a plain mvn command. So if the M2_HOME env variable is not set,
then the mvn executable must be in the path.
2019-01-09 19:27:41 +01:00
Ole Hejlskov
c2ab1cf80a Merge branch 'sdk-4/it-logs' of https://github.com/Alfresco/alfresco-sdk into sdk-4/it-logs 2019-01-09 18:58:03 +01:00
Ole Hejlskov
c7c4c49446 Try to force a Maven path from M2_HOME 2019-01-09 18:57:38 +01:00
Jose Luis Osorno
efbfc8fbba Archetypes - Modify AbstractArchetypeIT to print error output
Modify AbstractArchetypeIT to print the rror output as well as the standard
output in the execution of the integration tests.
2019-01-09 18:37:27 +01:00
Jose Luis Osorno
6e5bf3a757 Archetypes - Add extra information in sh script 2019-01-09 18:27:40 +01:00
Jose Luis Osorno
4722c14121 Archetypes - Add logs to archetype ITs
Add more logs with the result of the execution of the projects
generation and building in the archetype ITs.
2019-01-09 17:44:18 +01:00
Jose Luis Osorno
d2c4dcc015 Archetypes - Add logs to build_test task in scripts
Modify the run scripts to add docker-compose tail to the build_test
task in order to have more context of the execution of the tests in
docker.
2019-01-09 17:43:09 +01:00
Ole Hejlskov
f0e604bd8c Merge pull request #516 from Alfresco/sdk-4/it-verifier-archetypes
Archetypes - New ITs approach
2019-01-04 11:30:58 +01:00
Jose Luis Osorno
50c5c82f36 Archetypes - Add post archetype generate scripts
Add post archetype generate groovy scripts to add exec permission to the bash
runner script in the repo jar and share jar archetypes.
2018-12-27 07:34:57 +01:00
Jose Luis Osorno
fff6bc4a41 Archetypes - Remove unnecessary dependency
Remove maven verifier dependency from the AIO archetype. It is only required
in the integration tests module.
2018-12-27 07:25:30 +01:00
Jose Luis Osorno
c9a991698d Archetypes - Add purge in AIO IT
Add a purge step before executing the build_test goal in the AIO project
to avoid old data fails the tests.
2018-12-26 13:03:34 +01:00
Jose Luis Osorno
97f0ea6119 Archetypes - Integration tests verifier approach
New approach for the execution of the ITs for the archetypes. It uses the
maven verifier component to generate the project from the archetype and
afterwards execute the required goal/s and check the results.

This approach works properly in windows in contrast to the default archetypes
ITs mechanism, which failed executing the runner script.
2018-12-26 11:19:11 +01:00
Jose Luis Osorno
7bf16b467b Archetypes - Add test profiles
Add a couple of profiles for archetypes integration tests.
+ docker-toolbox -> Sets the java system property with the ACS endpoint.
+ enterprise-60-tests -> Sets the properties to use the 6.0 enterprise jars
and docker images in the integration tests.
2018-12-26 11:15:22 +01:00
Jose Luis Osorno
29c6a08066 Archetypes - Refactor AIO integration tests
Refactor the AIO project integration tests to take into account the system
property added to set the ACS endpoint in case it is required (docker toolbox).
2018-12-26 11:13:49 +01:00
Jose Luis Osorno
00839a8170 Archetypes - Remove unnecessary test files
Remove archetype test files not required with the new integration tests
approach we're following for the archetype tests.
2018-12-26 11:11:47 +01:00
Jose Luis Osorno
646899610d Test with maven verifier - WIP 2018-12-21 12:38:23 +01:00
Jose Luis Osorno
126d31646e Merge pull request #514 from Alfresco/sdk-4/documentation
Archetypes - Update README files
2018-12-20 16:13:52 +01:00
Jose Luis Osorno
4c2ac6db7d Archetypes - Update README files
Update the README files of the archetypes with the new approach of the
Alfresco SDK.
2018-12-20 15:39:54 +01:00
Jose Luis Osorno
6cd3e0c0c2 Merge pull request #513 from Alfresco/sdk-4/archetypes-docker
Archetypes - Fixes after testing
2018-12-20 14:57:21 +01:00
Jose Luis Osorno
c6fbb76a39 Share archetype - Fix test task in script
Fix the test task in the scripts to remove the unrequired pl parameter.
2018-12-20 11:54:44 +01:00
Jose Luis Osorno
706a6c2ccd Share archetype - Fix module sub-directory name
Fix the name of the module sub-directory in the resources of the project.
2018-12-20 11:53:30 +01:00
Jose Luis Osorno
c2f94e35bd Merge pull request #512 from Alfresco/sdk-4/archetypes-docker
Archetypes - Several improvements
2018-12-20 08:59:58 +01:00
Jose Luis Osorno
8dd1ba923a Archetypes - Change docker volume names
Modify the docker volume names to be dependant of the name of
the project. This way, we can avoid issues with docker volume
name clashes with other projects that were generated with the
SDK.
2018-12-20 08:55:15 +01:00
Jose Luis Osorno
0d158017e4 Archetypes - Fix integration tests
Fix the integration tests for the archetypes and update the version
to ACS 6. The integration tests must be enhanced to enable more checks
and not only the packaging of the created project without any test
execution.
2018-12-20 08:20:51 +01:00
Jose Luis Osorno
2c9fc00ea4 Archetypes - Properly align community versions
Change the share version to be properly aligned with the platform version.
2018-12-19 17:54:34 +01:00
Jose Luis Osorno
32a27e4f53 Archetypes - disable CSRF filter ACS
Disable the CSRF filter in ACS containers.
2018-12-19 17:38:59 +01:00
Jose Luis Osorno
0577fcc168 Merge pull request #511 from Alfresco/sdk-4/archetypes-docker
Archetypes - Switch to docker environment
2018-12-19 16:27:53 +01:00
Jose Luis Osorno
c4dd6b01e6 Archetypes - Add properties to configure versions
Add properties to configure the versions of ACS and Share to be used
in the archetypes.
2018-12-19 16:06:27 +01:00
Jose Luis Osorno
eae6c13de5 Share archetype - Switch to docker environment
Change the platform project to add the required configuration to execute it
as an orchestrated docker environment that includes ACS (optional), Share,
PostgreSQL and ASS. This will replace the use of the Alfresco Maven Plugin.

New bash scripts has been added to manage the docker environment.
A new docker-compose file configure the docker environment.
All the unnecessary files and configuration have been removed from the archetype.
2018-12-19 15:35:04 +01:00
Jose Luis Osorno
0ca57b20a1 Platform archetype - Make share container optional
Comment out the share container in the docker-compose file because
it is optional in this archetype.
2018-12-19 14:20:21 +01:00
Jose Luis Osorno
82cb58f472 Platform archetype - Switch to docker environment
Change the platform project to add the required configuration to execute it
as an orchestrated docker environment that includes ACS, Share (optional),
PostgreSQL and ASS. This will replace the use of the Alfresco Maven Plugin.

New bash scripts has been added to manage the docker environment.
A new docker-compose file configure the docker environment.
All the unnecessary files and configuration have been removed from the archetype.
2018-12-19 14:13:48 +01:00
Jose Luis Osorno
779d53a051 AIO archetype - Switch to docker environment
Change the AIO project to add the required configuration to execute it
as an orchestrated docker environment that includes ACS, Share, PostgreSQL
and ASS. This will replace the use of the Alfresco Maven Plugin.

New bash scripts has been added to manage the docker environment.
A new docker-compose file configure the docker environment.
New docker aggregator modules has been created for platform and share.
All the unnecessary files and configuration have been removed from the archetype.
2018-12-19 12:05:30 +01:00
Ole Hejlskov
5a35c948ca Merge pull request #510 from Alfresco/sdk-4/acs-endpoint-property
Look for custom java system property for alfresco location
2018-12-18 12:47:07 +01:00
Jose Luis Osorno
42a4805d93 Look for custom java system property for alfresco location
Modify the Alfresco RAD module to check for the java system property acs.endpoint.path
as an alternative for the default location of alfresco which is http://localhost:8080/alfresco.

This is useful to avoid connection refuse when starting ACS 6 as a container in a windows
machine with Docker Toolbox, which exposes the containers through a custom IP instead of
localhost.
2018-12-18 12:11:00 +01:00
Ole Hejlskov
3873d2907e Added bom property 2018-11-15 11:30:28 +01:00
Ole Hejlskov
86049b91bf Merge pull request #508 from it-novum/sdk-4.0_version_Bump
Bumping version number to 4.0 for documentation + descriptions
2018-11-12 11:56:22 +01:00
Fabian Fritz
1fb478e77a Bumping version number to 4.0 for documenation + descriptions 2018-11-12 11:48:15 +01:00
Ole Hejlskov
f023ca2878 Merge pull request #507 from it-novum/sdk-4.0_version_Bump
Bump version to 4.0.0
2018-11-09 22:16:05 +01:00
Fabian Fritz
c84d0d4c87 Bump version to 4.0.0 2018-11-09 15:49:00 +01:00
Ole Hejlskov
d268c20c3a More clean up, fix AIO 2018-10-05 16:20:56 +02:00
Ole Hejlskov
5291dc6e97 More clean up regarding Solr and H2/other databases 2018-10-05 15:46:15 +02:00
Ole Hejlskov
697ab7c3ec Clean up poms and make compatible with ACS6 2018-10-05 15:23:50 +02:00
Ole Hejlskov
52a6938a66 Remove Solr and custom databases (including H2) from the plugin. This now requires these services to be available externally 2018-10-05 15:21:13 +02:00
Ole Hejlskov
7edac56eed Remove DB specific properties 2018-10-05 12:13:49 +02:00
Ole Hejlskov
fa828dede5 Remove Activiti experiments 2018-10-05 10:40:22 +02:00
Ole Hejlskov
f5e3552283 Merge pull request #500 from fcorti/patch-1
Typo in description.
2018-09-18 13:11:05 +02:00
Ole Hejlskov
ab9f384830 Merge pull request #505 from melahn/master
Updated the readme to bring it up-to-date.  See Issue #396
2018-09-18 13:10:42 +02:00
Gregory Melahn
dced89eda6 Updated the readme to bring it up-to-date. See Issue #396 2018-09-13 16:16:19 -04:00
Francesco Corti
3bced985d6 Typo in description.
Suggested from the Community.
(thank you Digicat and Yreg)
2018-06-04 10:07:50 +02:00
Ole Hejlskov
865ae6fd38 Merge pull request #484 from marsv024/runtest_saxparseexception
Fix null check to work with assertEqual-failures and exception messages containing reserved xml characters
2017-11-09 16:49:41 +01:00
Marcus Svartmark
017dfcbff8 Fix null check to work with assertEqual-failures and exception messages containing reserved xml characters 2017-11-09 16:32:35 +01:00
Ole Hejlskov
c25417e702 Deprecate Activiti features. See #481 for more info 2017-09-22 16:40:51 +02:00
Ole Hejlskov
448b5c2929 Merge pull request #475 from tom-vandepoele/master
Feature request: adding support for custom solr config #474
2017-09-22 09:31:43 +01:00
Ole Hejlskov
ab29cc53fa Merge pull request #477 from nklomp/master
Nullpointer in code crashes Freemarker evaluation within Integration Testing
2017-09-22 09:24:50 +01:00
nklomp
228a98c566 Message of Failure delegates to getMessage() of the throwable which can be null in some cases (Nullpointer for instance) causing the Freemarker template evaluation to fail which in turn hides the real problem in the integration test 2017-07-09 19:05:05 +02:00
Tom.Vandepoele
82b7886a51 Feature request: adding support for custom solr config #474 2017-06-29 15:15:54 +02:00
Ole Hejlskov
012dc70f43 Update with 3.0.1 release info 2017-06-23 11:29:07 +02:00
alfresco-build
b8377041a5 [maven-release-plugin] prepare for next development iteration 2017-06-23 10:17:52 +01:00
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
172 changed files with 2819 additions and 4277 deletions

1
.gitignore vendored
View File

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

View File

@@ -3,10 +3,13 @@
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).
## License
This project is released under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). If you are an Enterprise customer check the [Support](#alfresco-enterprise-customers-and-partners-support) section.
This project is released under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) license.
If you are an Enterprise customer check the [Support](#alfresco-enterprise-customers-and-partners-support) section.
## News
- 2017-06-23: Alfresco SDK 3.0.1 released, [containing a critical bugfix](https://github.com/Alfresco/alfresco-sdk/issues/461)
- 2017-04-01: Alfresco SDK 3.0.0 released
- 2017-03-27: After years of hard work, countless iterations and gathering feedback, SDK 3.0 has finally been merged into the master branch, ready for release in the coming days
- 2016-02-20: SDK 2.2.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html), [Release notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/latest/github-report.html)
- 2015-10-19: SDK 2.1.1 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
@@ -18,16 +21,16 @@ This project is released under the [Apache License, Version 2.0](http://www.apac
## 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)
To get started with **Alfresco SDK 4.0.x** (latest) visit the [Alfresco Documentation](https://docs.alfresco.com/6.0/concepts/dev-for-developers.html) (documentation pending).
#### Documentation about Previous Versions
| SDK Version | Alfresco Enterprise Version | Alfresco Community Version | Documentation |
| ------------- |:-------------:| :-----:|:-----|
| SDK 3.0 | Alfresco 5.2.x | Alfresco 5.2.x | http://docs.alfresco.com/5.2/concepts/sdk-intro.html |
| SDK 2.2 | Alfresco 5.1.x | Alfresco 5.1.x | https://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html |
| SDK 2.1 | Alfresco 5.0.1 | Alfresco 5.0.d | https://docs.alfresco.com/sdk2.1/concepts/alfresco-sdk-intro.html |
| SDK 2.0 | Alfresco 5.0.0 | Alfresco 5.0.c | https://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html |
| SDK 1.1.1 | Alfresco 4.2.x | Alfresco 4.2.x | https://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-intro.html |
@@ -35,19 +38,22 @@ To get started with Alfresco SDK 2.2.0 (latest) visit the offical Alfresco Docum
Report issues (and contribute!) [here](https://github.com/Alfresco/alfresco-sdk/issues?milestone=1&state=open) or join us on the [IRC Channel](http://chat.alfresco.com/).
## Alfresco Enterprise Customers and Partners Support
If you are an Alfresco Customer please check the [SDK Support status](http://www.alfresco.com/services/subscription/technical-support/product-support-status) for the version you are using and the [Compatibily Matrix](http://docs.alfresco.com/community/concepts/alfresco-sdk-compatibility.html) for the SDK / Alfresco compatibility. If your version is in Limited or Full Support, you can raise issues via the [Support Portal](http://support.alfresco.com).
If you are an Alfresco Customer
please check the [SDK Support status](http://www.alfresco.com/services/subscription/technical-support/product-support-status)
for the version you are using. If your version is in Limited or Full Support and you need help, visit the [Support Portal](http://support.alfresco.com).
## Maven repositories
- As of version 2.0-beta-1, The Alfresco SDK is released in [Maven Central](http://search.maven.org/#search|ga|1|alfresco-sdk). Previous versions are available in the [Alfresco Artifacts Repository](https://artifacts.alfresco.com/).
- Alfresco (Community and Enterprise) artifacts are hosted in the [Alfresco Artifacts Repository](https://artifacts.alfresco.com/).
- Alfresco Community artifacts (JARs, WARs, AMPs, poms) and SDK artifacts are publicly available.
*NOTE:* For Enterprise and Premiere licensed software access you need to get credential via the Alfresco Enterprise Support. See [Maven Alfresco Enterprise setup](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-using-enterprise-edition.html).
*NOTE:* By default the Alfresco SDK will use Community Edition releases but it can be configured to use Enterprise Edition releases. Enterprise and Premier customers can use the SDK with
Enterprise Edition releases by following the process described in [Working with Enterprise](https://docs.alfresco.com/5.2/concepts/sdk-using-enterprise.html)
### Alfresco Artifacts Repository
#### Alfresco Releases
You can use the following snippet in your pom.xml to access releases on Alfresco Artifact repository:
You can use the following snippet in your pom.xml to access releases from the Alfresco Artifact repository:
```xml
<repository>
@@ -68,4 +74,3 @@ To test new unreleased (unsupported) features, you can use the following snippet
## 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

@@ -1,61 +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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.alfresco.maven.archetype</groupId>
<artifactId>activiti-jar-archetype</artifactId>
<packaging>maven-archetype</packaging>
<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>3.0.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>archetype-resources/pom.xml</include>
<include>archetype-resources/run.sh</include>
<include>archetype-resources/run.bat</include>
<include>archetype-resources/debug.sh</include>
<include>archetype-resources/debug.bat</include>
<include>META-INF/maven/archetype-metadata.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>archetype-resources/pom.xml</exclude>
<exclude>archetype-resources/run.sh</exclude>
<exclude>archetype-resources/run.bat</exclude>
<exclude>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>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@@</delimiter>
</delimiters>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -1,68 +0,0 @@
<?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

@@ -1,21 +0,0 @@
# 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

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

View File

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

View File

@@ -1,295 +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>
<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

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

View File

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

View File

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

@@ -1,20 +0,0 @@
{
"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

@@ -1,141 +0,0 @@
#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

@@ -1,403 +0,0 @@
#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

@@ -1,53 +0,0 @@
{
"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

@@ -1,201 +0,0 @@
{
"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

@@ -1,9 +0,0 @@
# 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

@@ -1,35 +0,0 @@
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

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

View File

@@ -1,40 +0,0 @@
#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

@@ -1,6 +0,0 @@
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

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

View File

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

View File

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

View File

@@ -6,15 +6,15 @@
<artifactId>alfresco-allinone-archetype</artifactId>
<packaging>maven-archetype</packaging>
<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>
<description>Sample multi-module project for All-in-One development on the Alfresco platform. Includes modules for Platform/Repository JAR and Share JAR</description>
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-sdk-aggregator</artifactId>
<version>3.0.0</version>
<version>4.0.0-beta-1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<build>
<resources>
<resource>
@@ -23,8 +23,6 @@
<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>
@@ -35,8 +33,6 @@
<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>

View File

@@ -0,0 +1,2 @@
def file = new File( request.getOutputDirectory(), request.getArtifactId()+"/run.sh" );
file.setExecutable(true, false);

View File

@@ -111,26 +111,67 @@
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="true">
<directory>src/test/resources</directory>
<includes>
<include>**/dev-log4j.properties</include>
</includes>
</fileSet>
</fileSets>
</module>
<module id="${rootArtifactId}-platform-docker"
name="${rootArtifactId}-platform-docker"
dir="__rootArtifactId__-platform-docker">
<fileSets>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/resources</directory>
<directory>src/main/docker/license</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/dev-log4j.properties</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/test/properties</directory>
<directory>src/main/docker</directory>
<includes>
<include>license/**</include>
<include>Dockerfile</include>
<include>disable-webscript-caching-context.xml</include>
</includes>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="true">
<directory>src/main/docker</directory>
<includes>
<include>**/*.properties</include>
</includes>
<excludes>
<exclude>license/**</exclude>
<exclude>Dockerfile</exclude>
<exclude>disable-webscript-caching-context.xml</exclude>
</excludes>
</fileSet>
</fileSets>
</module>
<module id="${rootArtifactId}-share-docker"
name="${rootArtifactId}-share-docker"
dir="__rootArtifactId__-share-docker">
<fileSets>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/docker</directory>
<includes>
<include>Dockerfile</include>
<include>share-config-custom.xml</include>
</includes>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="true">
<directory>src/main/docker</directory>
<includes>
<include>**/*.properties</include>
</includes>
<excludes>
<exclude>Dockerfile</exclude>
<exclude>share-config-custom.xml</exclude>
</excludes>
</fileSet>
</fileSets>
</module>
@@ -138,44 +179,14 @@
<fileSets>
<fileSet encoding="UTF-8" filtered="true">
<directory>src/test/resources</directory>
<directory>docker</directory>
<includes>
<include>**/dev-log4j.properties</include>
<include>**</include>
</includes>
</fileSet>
<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/test/resources</directory>
<includes>
<include>**</include>
</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>

View File

@@ -1,34 +1,44 @@
# Alfresco AIO Project - SDK 3
# Alfresco AIO Project - SDK 4.0
This is an All-In-One (AIO) project for Alfresco SDK 3.0.
This is an All-In-One (AIO) project for Alfresco SDK 4.0.
Run with `mvn clean install -DskipTests=true alfresco:run` or `./run.sh` and verify that it
Run with `./run.sh build_start` or `./run.bat build_start` and verify that it
* Runs the embedded Tomcat + H2 DB
* Runs Alfresco Platform (Repository)
* Runs Alfresco Solr4
* Runs Alfresco Content Service (ACS)
* Runs Alfresco Share
* Packages both as JAR and AMP assembly for modules
* Runs Alfresco Search Service (ASS)
* Runs PostgreSQL database
* Deploys the JAR assembled modules
All the services of the project are now run as docker containers. The run script offers the next tasks:
* `build_start`. Build the whole project, recreate the ACS and Share docker images, start the dockerised environment composed by ACS, Share, ASS and
PostgreSQL and tail the logs of all the containers.
* `start`. Start the dockerised environment without building the project and tail the logs of all the containers.
* `stop`. Stop the dockerised environment.
* `purge`. Stop the dockerised container and delete all the persistent data (docker volumes).
* `tail`. Tail the logs of all the containers.
* `reload_share`. Build the Share module, recreate the Share docker image and restart the Share container.
* `reload_acs`. Build the ACS module, recreate the ACS docker image and restart the ACS container.
* `build_test`. Build the whole project, recreate the ACS and Share docker images, start the dockerised environment, execute the integration tests from the
`integration-tests` module and stop the environment.
* `test`. Execute the integration tests (the environment must be already started).
# Few things to notice
* No parent pom
* No WAR projects, all handled by the Alfresco Maven Plugin
* No runner project - it's all in the Alfresco Maven Plugin
* No WAR projects, the jars are included in the custom docker images
* No runner project - the Alfresco environment is now managed through [Docker](https://www.docker.com/)
* Standard JAR packaging and layout
* Works seamlessly with Eclipse and IntelliJ IDEA
* JRebel for hot reloading, JRebel maven plugin for generating rebel.xml, agent usage: `MAVEN_OPTS=-Xms256m -Xmx1G -agentpath:/home/martin/apps/jrebel/lib/libjrebel64.so`
* JRebel for hot reloading, JRebel maven plugin for generating rebel.xml [JRebel integration documentation]
* 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
* Persistent test data through restart thanks to the use of Docker volumes for ACS, ASS and database data
* Integration tests module to execute tests against the final environment (dockerised)
* Resources loaded from META-INF
* Web Fragment (this includes a sample servlet configured via web fragment)
# TODO
* Abstract assembly into a dependency so we don't have to ship the assembly in the archetype
* Purge
* Functional/remote unit tests

View File

@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>${artifactId}</artifactId>
<name>Alfresco Platform/Repository Docker Module</name>
<description>Platform/Repo Docker Module to generate the final Docker image</description>
<packaging>jar</packaging>
<parent>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}</artifactId>
<version>${version}</version>
</parent>
<properties>
</properties>
<dependencies>
<dependency>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}-platform-jar</artifactId>
<version>${version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
<executions>
<!-- Copy the repository extension and the dependencies required for execute integration tests -->
<execution>
<id>copy-repo-extension</id>
<phase>pre-integration-test</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}-platform-jar</artifactId>
<version>${version}</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<!-- Test dependencies -->
<!-- We need these dependencies installed in ACS in order to execute the test remotely making use of the Alfresco RAD module -->
<artifactItem>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-rad</artifactId>
<version>${alfresco.sdk.version}</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>${groupId}</groupId>
<artifactId>integration-tests</artifactId>
<version>${version}</version>
<classifier>tests</classifier>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy other dependencies (JARs or AMPs) declared in the platform module -->
<execution>
<id>copy-third-party-dependencies</id>
<phase>pre-integration-test</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<!-- Filter the Dockerfile and the other files added to the container to be able to replace maven properties -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-and-filter-docker-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/docker</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.jar</exclude>
<exclude>**/*.so</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-and-filter-docker-resources-non-filtered</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/docker</directory>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
<include>**/*.so</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,18 @@
FROM ${docker.acs.image}:${alfresco.platform.version}
ARG TOMCAT_DIR=/usr/local/tomcat
# Copy Dockerfile to avoid an error if no JARs exist
COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/
# Copy Dockerfile to avoid an error if no AMPs exist
COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/
RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
$TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force
COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties
COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension
COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension
# Copy Dockerfile to avoid an error if no license file exists
COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/

View File

@@ -1,3 +1,6 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -15,14 +18,12 @@
# 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
@@ -33,19 +34,11 @@ alfresco.protocol=http
# Alfresco Share Webapp (share.war) context, ports etc
share.context=share
share.host=localhost
share.port=8080
share.port=8180
share.protocol=http
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
@@ -60,13 +53,27 @@ 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
# This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module.
# Define default values for all properties here.
# System Administrators can override these values in environment specific configurations in
# alfresco/tomcat/shared/classes/alfresco-global.properties.
#
index.subsystem.name=solr6
solr.host=${rootArtifactId}-ass
solr.port=8983
solr.secureComms=none
db.username=alfresco
db.password=alfresco
db.pool.initial=10
db.pool.max=100
db.url=jdbc:postgresql://${rootArtifactId}-postgres:5432/alfresco
# File servers related properties
# For local runs we disable CIFS and FTP
cifs.enabled=false
ftp.enabled=false
ftp.enabled=false
csrf.filter.enabled=false

View File

@@ -4,7 +4,6 @@
# 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
@@ -14,7 +13,6 @@ 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=alfresco.log
log4j.appender.File.Append=true
@@ -22,13 +20,11 @@ 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
###### 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,8 +60,7 @@ 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
@@ -215,7 +210,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

View File

@@ -1,3 +1,6 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
# Enable hotswap so that changes in this module will be automatically reloaded
# Watch for changed class files on watchResources path and reload class definition in the running application.
autoHotswap=true
@@ -10,8 +13,8 @@ autoHotswap=true
# classes from built JAR file.
# i.e. monitor /target/classes
# should work with extraClasspath=${project.build.outputDirectory}
# If not try
extraClasspath=${project.build.outputDirectory};${project.build.testOutputDirectory}
# If not try
extraClasspath=/usr/local/tomcat/hotswap-agent
# Comma separated list of disabled plugins
# Use plugin name - e.g.
@@ -23,12 +26,12 @@ disabledPlugins=Hibernate,Spring
#
# Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing.
# Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp).
extraWebappContext=${project.build.outputDirectory}/META-INF/resources
extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-platform-jar/target/classes/META-INF/resources;
# Load static web resources from different directory.
#
# This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...)
webappDir=${project.build.outputDirectory}/META-INF/resources
webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-platform-jar/target/classes/META-INF/resources;
# Watch for changes in a directory (resources only).
#

View File

@@ -0,0 +1,6 @@
# Enterprise License location
Put the Alfresco Enterprise license file in this directory.
It will then be copied into the ACS container in the
$TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory.

View File

@@ -3,7 +3,7 @@
<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>Platform/Repo JAR Module (to be included in the alfresco.war) - part of AIO - SDK 4.0
</description>
<packaging>jar</packaging>
@@ -17,6 +17,7 @@
</properties>
<dependencies>
<!-- Add here any JAR or AMP dependency that needs to be deployed to ACS -->
</dependencies>
<build>

View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>${artifactId}</artifactId>
<name>Alfresco Share Docker Module</name>
<description>Share Docker Module to generate the final Docker image</description>
<packaging>jar</packaging>
<parent>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}</artifactId>
<version>${version}</version>
</parent>
<properties>
</properties>
<dependencies>
<dependency>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}-share-jar</artifactId>
<version>${version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
<executions>
<!-- Copy the share extension -->
<execution>
<id>copy-repo-extension</id>
<phase>pre-integration-test</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${groupId}</groupId>
<artifactId>${rootArtifactId}-share-jar</artifactId>
<version>${version}</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy other dependencies (JARs or AMPs) declared in the share module -->
<execution>
<id>copy-third-party-dependencies</id>
<phase>pre-integration-test</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<!-- Filter the Dockerfile and the other files added to the container to be able to replace maven properties -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-and-filter-docker-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/docker</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,16 @@
FROM ${docker.share.image}:${alfresco.share.version}
ARG TOMCAT_DIR=/usr/local/tomcat
# Copy Dockerfile to avoid an error if no JARs exist
COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/
# Copy Dockerfile to avoid an error if no AMPs exist
COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/
RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
$TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force
COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension
COPY log4j.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes
COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes

View File

@@ -1,3 +1,6 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
# Enable hotswap so that changes in this module will be automatically reloaded
# Watch for changed class files on watchResources path and reload class definition in the running application.
autoHotswap=true
@@ -11,10 +14,11 @@ autoHotswap=true
# i.e. monitor /target/classes
# should work with extraClasspath=${project.build.outputDirectory}
# If not try
extraClasspath=${project.basedir}/${artifactId}-platform-jar/target/classes;${project.basedir}/${artifactId}-platform-jar/target/test-classes;${project.basedir}/integration-tests/target/classes;${project.basedir}/integration-tests/target/test-classes
extraClasspath=/usr/local/tomcat/hotswap-agent
# Comma separated list of disabled plugins
# Use plugin name - e.g.
# Use plugin name - e.g.
# Hotswapper, AnonymousClassPatch, WatchResources, Hibernate, Spring, Jersey2, Jetty, Tomcat,
# ZK, Logback, JSF, Seam, ELResolver, OsgiEquinox, Proxy, WebObjects, Weld, JBossModules, Resteasy, Gae
disabledPlugins=Hibernate,Spring
@@ -23,12 +27,12 @@ disabledPlugins=Hibernate,Spring
#
# Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing.
# Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp).
extraWebappContext=${project.basedir}/${artifactId}-platform-jar/target/classes/META-INF/resources;
extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-share-jar/target/classes/META-INF/resources;
# Load static web resources from different directory.
#
# This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...)
webappDir=${project.basedir}/${artifactId}-platform-jar/target/classes/META-INF/resources;
webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-share-jar/target/classes/META-INF/resources;
# Watch for changes in a directory (resources only).
#

View File

@@ -1,7 +1,10 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
# Set root logger level to error
log4j.rootLogger=error, Console, File
###### Console appender definition #######
# Console appender definition #
# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
@@ -11,7 +14,7 @@ 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 #######
# File appender definition #
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
log4j.appender.File.File=share.log
log4j.appender.File.Append=true

View File

@@ -57,7 +57,7 @@
<name>Alfresco - unauthenticated access</name>
<description>Access to Alfresco Repository WebScripts that do not require authentication</description>
<connector-id>alfresco</connector-id>
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
<endpoint-url>http://${acs.host}:8080/alfresco/s</endpoint-url>
<identity>none</identity>
</endpoint>
@@ -66,7 +66,7 @@
<name>Alfresco - user access</name>
<description>Access to Alfresco Repository WebScripts that require user authentication</description>
<connector-id>alfresco</connector-id>
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
<endpoint-url>http://${acs.host}:8080/alfresco/s</endpoint-url>
<identity>user</identity>
</endpoint>
@@ -75,7 +75,7 @@
<name>Alfresco Feed</name>
<description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
<connector-id>http</connector-id>
<endpoint-url>${alfresco.repo.url}/s</endpoint-url>
<endpoint-url>http://${acs.host}:8080/alfresco/s</endpoint-url>
<basic-auth>true</basic-auth>
<identity>user</identity>
</endpoint>
@@ -85,7 +85,7 @@
<name>Activiti Admin UI - user access</name>
<description>Access to Activiti Admin UI, that requires user authentication</description>
<connector-id>activiti-admin-connector</connector-id>
<endpoint-url>${alfresco.repo.url}/activiti-admin</endpoint-url>
<endpoint-url>http://${acs.host}:8080/alfresco/activiti-admin</endpoint-url>
<identity>user</identity>
</endpoint>
@@ -96,7 +96,7 @@
<description>Access to Alfresco Repository Public API that require user authentication.
This makes use of the authentication that is provided by parent 'alfresco' endpoint.</description>
<connector-id>alfresco</connector-id>
<endpoint-url>${alfresco.repo.url}/alfresco/api</endpoint-url>
<endpoint-url>http://${acs.host}:8080/alfresco/api</endpoint-url>
<identity>user</identity>
</endpoint>
</remote>

View File

@@ -5,7 +5,7 @@
<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>
<description>Sample Share JAR Module (to be included in the share.war) - part of AIO - SDK 4.0</description>
<parent>
<groupId>${groupId}</groupId>
@@ -25,11 +25,7 @@
<artifactId>share</artifactId>
<classifier>classes</classifier>
</dependency>
<dependency>
<groupId>org.alfresco.surf</groupId>
<artifactId>spring-surf-api</artifactId>
</dependency>
<!-- Add here any JAR or AMP dependency that needs to be deployed to share -->
</dependencies>
<build>

View File

@@ -1,12 +0,0 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 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

@@ -1,7 +0,0 @@
#!/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,59 @@
#set( $symbol_dollar = '$' )
version: '3.4'
services:
${rootArtifactId}-share:
image: alfresco-share-${rootArtifactId}:development
build:
dockerfile: ./Dockerfile
context: ../../../${rootArtifactId}-share-docker/target
environment:
CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888"
REPO_HOST: ${rootArtifactId}-acs
REPO_PORT: 8080
ports:
- "${symbol_dollar}{share.port}:8080"
- "${symbol_dollar}{share.debug.port}:8888"
${rootArtifactId}-acs:
image: alfresco-content-services-${rootArtifactId}:development
build:
dockerfile: ./Dockerfile
context: ../../../${rootArtifactId}-platform-docker/target
environment:
CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888"
ports:
- "${symbol_dollar}{acs.port}:8080"
- "${symbol_dollar}{acs.debug.port}:8888"
volumes:
- ${rootArtifactId}-acs-volume:/usr/local/tomcat/alf_data
depends_on:
- ${rootArtifactId}-postgres
${rootArtifactId}-postgres:
image: postgres:9.6
environment:
POSTGRES_DB: alfresco
POSTGRES_USER: alfresco
POSTGRES_PASSWORD: alfresco
ports:
- "${symbol_dollar}{postgres.port}:5432"
volumes:
- ${rootArtifactId}-db-volume:/var/lib/postgresql/data
${rootArtifactId}-ass:
image: alfresco/alfresco-search-services:1.2.0
environment:
SOLR_ALFRESCO_HOST: ${rootArtifactId}-acs
SOLR_ALFRESCO_PORT: 8080
SOLR_SOLR_HOST: ${rootArtifactId}-ass
SOLR_SOLR_PORT: 8983
SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive
ports:
- "8983:8983"
volumes:
- ${rootArtifactId}-ass-volume:/opt/alfresco-search-services/contentstore
- ${rootArtifactId}-ass-volume:/opt/alfresco-search-services/data
volumes:
${rootArtifactId}-acs-volume:
external: true
${rootArtifactId}-db-volume:
external: true
${rootArtifactId}-ass-volume:
external: true

View File

@@ -4,7 +4,7 @@
<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>
<description>Integration Tests module for in-container integration testing - part of AIO - SDK 4.0</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) -->
@@ -68,6 +68,11 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<systemPropertyVariables>
<acs.endpoint.path>${test.acs.endpoint.path}</acs.endpoint.path>
</systemPropertyVariables>
</configuration>
<executions>
<execution>
<id>integration-test</id>
@@ -92,22 +97,6 @@
</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>
</project>

View File

@@ -43,11 +43,6 @@ import static org.junit.Assert.assertNotNull;
* @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

View File

@@ -20,6 +20,7 @@
*/
package ${package}.platformsample;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
@@ -44,9 +45,13 @@ import static org.junit.Assert.assertNotNull;
* @since 3.0
*/
public class HelloWorldWebScriptIT {
private static final String ACS_ENDPOINT_PROP = "acs.endpoint.path";
private static final String ACS_DEFAULT_ENDPOINT = "http://localhost:8080/alfresco";
@Test
public void testWebScriptCall() throws Exception {
String webscriptURL = "http://localhost:8080/alfresco/service/sample/helloworld";
String webscriptURL = getPlatformEndpoint() + "/service/sample/helloworld";
String expectedResponse = "Message: 'Hello from JS!' 'HelloFromJava'";
// Login credentials for Alfresco Repo
@@ -72,4 +77,9 @@ public class HelloWorldWebScriptIT {
httpclient.close();
}
}
private String getPlatformEndpoint() {
final String platformEndpoint = System.getProperty(ACS_ENDPOINT_PROP);
return StringUtils.isNotBlank(platformEndpoint) ? platformEndpoint : ACS_DEFAULT_ENDPOINT;
}
}

View File

@@ -1,72 +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
# -------------------
########################################################################################################################
# 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

@@ -1,76 +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
# -------------------
########################################################################################################################
# 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

@@ -1,72 +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
# -------------------
########################################################################################################################
# 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

@@ -1,263 +0,0 @@
# Set root logger level to error
log4j.rootLogger=error, Console, File
# All outputs currently set to be a ConsoleAppender.
log4j.appender.Console=org.apache.log4j.ConsoleAppender
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
log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
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{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
#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
# 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
# control of the level via a suitable JMX Console. Also, any other loggers can be added transiently via
# Log4j addLoggerMBean as long as the logger exists and has been loaded.
# Hibernate
log4j.logger.org.hibernate=error
log4j.logger.org.hibernate.util.JDBCExceptionReporter=fatal
log4j.logger.org.hibernate.event.def.AbstractFlushingEventListener=fatal
log4j.logger.org.hibernate.type=warn
log4j.logger.org.hibernate.cfg.SettingsFactory=warn
# 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
# Axis/WSS4J
log4j.logger.org.apache.axis=info
log4j.logger.org.apache.ws=info
# CXF
log4j.logger.org.apache.cxf=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
# OpenOfficeConnection
log4j.logger.net.sf.jooreports.openoffice.connection=fatal
# 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.config=warn
log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
log4j.logger.org.alfresco.config.JBossEnabledWebApplicationContext=warn
log4j.logger.org.alfresco.repo.management.subsystems=warn
log4j.logger.org.alfresco.repo.management.subsystems.ChildApplicationContextFactory=info
log4j.logger.org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ChildApplicationContext=warn
log4j.logger.org.alfresco.repo.security.sync=info
log4j.logger.org.alfresco.repo.security.person=info
log4j.logger.org.alfresco.sample=info
log4j.logger.org.alfresco.web=info
#log4j.logger.org.alfresco.web.app.AlfrescoNavigationHandler=debug
#log4j.logger.org.alfresco.web.ui.repo.component.UIActions=debug
#log4j.logger.org.alfresco.web.ui.repo.tag.PageTag=debug
#log4j.logger.org.alfresco.web.bean.clipboard=debug
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.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.module.ModuleServiceImpl=info
log4j.logger.org.alfresco.repo.domain.schema.SchemaBootstrap=info
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.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.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
# CIFS server debugging
log4j.logger.org.alfresco.smb.protocol=error
#log4j.logger.org.alfresco.smb.protocol.auth=debug
#log4j.logger.org.alfresco.acegi=debug
# FTP server debugging
log4j.logger.org.alfresco.ftp.protocol=error
#log4j.logger.org.alfresco.ftp.server=debug
# WebDAV debugging
#log4j.logger.org.alfresco.webdav.protocol=debug
log4j.logger.org.alfresco.webdav.protocol=info
# NTLM servlet filters
#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
#log4j.logger.org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter=debug
# Kerberos servlet filters
#log4j.logger.org.alfresco.web.app.servlet.KerberosAuthenticationFilter=debug
#log4j.logger.org.alfresco.repo.webdav.auth.KerberosAuthenticationFilter=debug
# File servers
log4j.logger.org.alfresco.fileserver=warn
# Repo filesystem debug logging
#log4j.logger.org.alfresco.filesys.repo.ContentDiskDriver=debug
# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated
log4j.logger.org.alfresco.repo.node.integrity=ERROR
# Indexer debugging
log4j.logger.org.alfresco.repo.search.Indexer=error
#log4j.logger.org.alfresco.repo.search.Indexer=debug
log4j.logger.org.alfresco.repo.search.impl.lucene.index=error
log4j.logger.org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl=warn
#log4j.logger.org.alfresco.repo.search.impl.lucene.index=DEBUG
# Audit debugging
# log4j.logger.org.alfresco.repo.audit=DEBUG
# log4j.logger.org.alfresco.repo.audit.model=DEBUG
# Property sheet and modelling debugging
# change to error to hide the warnings about missing properties and associations
log4j.logger.alfresco.missingProperties=warn
# Dictionary/Model debugging
log4j.logger.org.alfresco.repo.dictionary=warn
log4j.logger.org.alfresco.repo.dictionary.types.period=warn
# Virtualization Server Registry
log4j.logger.org.alfresco.mbeans.VirtServerRegistry=error
# Spring context runtime property setter
log4j.logger.org.alfresco.util.RuntimeSystemPropertiesSetter=info
# Debugging options for clustering
log4j.logger.org.alfresco.repo.content.ReplicatingContentStore=error
log4j.logger.org.alfresco.repo.content.replication=error
#log4j.logger.org.alfresco.repo.deploy.DeploymentServiceImpl=debug
# Activity service
log4j.logger.org.alfresco.repo.activities=warn
# User usage tracking
log4j.logger.org.alfresco.repo.usage=info
# Sharepoint
log4j.logger.org.alfresco.module.vti=info
# Forms Engine
log4j.logger.org.alfresco.web.config.forms=info
log4j.logger.org.alfresco.web.scripts.forms=info
# CMIS
log4j.logger.org.alfresco.opencmis=error
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
# JBPM
# Note: non-fatal errors (eg. logged during job execution) should be handled by Alfresco's retrying transaction handler
log4j.logger.org.jbpm.graph.def.GraphElement=fatal
#log4j.logger.org.alfresco.repo.googledocs=debug
# 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
# Repository
log4j.logger.org.alfresco.repo.web.scripts=warn
log4j.logger.org.alfresco.repo.web.scripts.BaseWebScriptTest=info
log4j.logger.org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger=off
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.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
log4j.logger.freemarker.runtime=
# Metadata extraction
log4j.logger.org.alfresco.repo.content.metadata.AbstractMappingMetadataExtracter=warn
# Reduces PDFont error level due to ALF-7105
log4j.logger.org.apache.pdfbox.pdmodel.font.PDSimpleFont=fatal
log4j.logger.org.apache.pdfbox.pdmodel.font.PDFont=fatal
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
# 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

@@ -1,54 +0,0 @@
# 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

@@ -1,7 +0,0 @@
<?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

@@ -5,8 +5,8 @@
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<name>AIO - SDK 3.0 Beta</name>
<description>All-In-One (AIO) project for SDK 3.0</description>
<name>AIO - SDK 4.0</name>
<description>All-In-One (AIO) project for SDK 4.0</description>
<packaging>pom</packaging>
<properties>
@@ -15,44 +15,33 @@
<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.bomDependencyArtifactId>@@alfresco.bomDependency.artifactId@@</alfresco.bomDependencyArtifactId>
<alfresco.platform.version>@@alfresco.platform.version@@</alfresco.platform.version>
<alfresco.share.version>@@alfresco.share.version@@</alfresco.share.version>
<!-- 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.e</alfresco.platform.version>
<alfresco.share.version>5.2.d</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>
<!-- Docker images -->
<docker.acs.image>@@alfresco.platform.docker.image@@</docker.acs.image>
<docker.share.image>@@alfresco.share.docker.image@@</docker.share.image>
<!-- 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 8, default is 5 -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- Environment configuration properties -->
<share.port>8180</share.port>
<share.debug.port>9898</share.debug.port>
<acs.host>${artifactId}-acs</acs.host>
<acs.port>8080</acs.port>
<acs.debug.port>8888</acs.debug.port>
<postgres.port>5555</postgres.port>
<!-- This parameter is only required for those cases in which ACS is not exposed in http://localhost:8080/alfresco (i.e. Windows Docker) -->
<test.acs.endpoint.path>@@test.acs.endpoint.path@@</test.acs.endpoint.path>
<!-- Compile with Java 7, default is 5 -->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!-- Libs used in Unit and Integration tests -->
@@ -81,15 +70,8 @@
<!-- 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>
<artifactId>alfresco-remote-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- Bring in Alfresco RAD so we get access to AlfrescoTestRunner classes -->
@@ -111,7 +93,7 @@
-->
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-platform-distribution</artifactId>
<artifactId>${alfresco.bomDependencyArtifactId}</artifactId>
<version>${alfresco.platform.version}</version>
<type>pom</type>
<scope>import</scope>
@@ -140,20 +122,6 @@
<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>
@@ -253,89 +221,24 @@
<!-- Run only for the AIO parent Project -->
<executions>
<execution>
<id>copy-and-filter-test-resources</id>
<id>copy-and-filter-docker-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
<outputDirectory>${project.build.outputDirectory}/docker</outputDirectory>
<resources>
<testResource>
<directory>src/test/resources</directory>
<resource>
<directory>docker</directory>
<filtering>true</filtering>
</testResource>
</resource>
</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>
@@ -396,6 +299,7 @@
<url>https://artifacts.alfresco.com/nexus/content/groups/private</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>alfresco-plugin-public</id>

View File

@@ -1,12 +1,118 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Dev environment startup script for Alfresco Community ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#set( $symbol_dollar = '$' )
@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%'
SET COMPOSE_FILE_PATH=%CD%\target\classes\docker\docker-compose.yml
mvn clean install alfresco:run
IF [%M2_HOME%]==[] (
SET MVN_EXEC=mvn
)
IF NOT [%M2_HOME%]==[] (
SET MVN_EXEC=%M2_HOME%\bin\mvn
)
IF [%1]==[] (
echo "Usage: %0 {build_start|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
GOTO END
)
IF %1==build_start (
CALL :down
CALL :build
CALL :start
CALL :tail
GOTO END
)
IF %1==start (
CALL :start
CALL :tail
GOTO END
)
IF %1==stop (
CALL :down
GOTO END
)
IF %1==purge (
CALL:down
CALL:purge
GOTO END
)
IF %1==tail (
CALL :tail
GOTO END
)
IF %1==reload_share (
CALL :build_share
CALL :start_share
CALL :tail
GOTO END
)
IF %1==reload_acs (
CALL :build_acs
CALL :start_acs
CALL :tail
GOTO END
)
IF %1==build_test (
CALL :down
CALL :build
CALL :start
CALL :test
CALL :tail_all
CALL :down
GOTO END
)
IF %1==test (
CALL :test
GOTO END
)
echo "Usage: %0 {build_start|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
:END
EXIT /B %ERRORLEVEL%
:start
docker volume create ${rootArtifactId}-acs-volume
docker volume create ${rootArtifactId}-db-volume
docker volume create ${rootArtifactId}-ass-volume
docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d
EXIT /B 0
:start_share
docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d ${rootArtifactId}-share
EXIT /B 0
:start_acs
docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d ${rootArtifactId}-acs
EXIT /B 0
:down
docker-compose -f "%COMPOSE_FILE_PATH%" down
EXIT /B 0
:build
docker rmi alfresco-content-services-${rootArtifactId}:development
docker rmi alfresco-share-${rootArtifactId}:development
call %MVN_EXEC% clean install -DskipTests
EXIT /B 0
:build_share
docker-compose -f "%COMPOSE_FILE_PATH%" kill ${rootArtifactId}-share
docker-compose -f "%COMPOSE_FILE_PATH%" rm -f ${rootArtifactId}-share
docker rmi alfresco-share-${rootArtifactId}:development
call %MVN_EXEC% clean install -DskipTests -pl ${rootArtifactId}-share-jar
EXIT /B 0
:build_acs
docker-compose -f "%COMPOSE_FILE_PATH%" kill ${rootArtifactId}-acs
docker-compose -f "%COMPOSE_FILE_PATH%" rm -f ${rootArtifactId}-acs
docker rmi alfresco-content-services-${rootArtifactId}:development
call %MVN_EXEC% clean install -DskipTests -pl ${rootArtifactId}-platform-jar
EXIT /B 0
:tail
docker-compose -f "%COMPOSE_FILE_PATH%" logs -f
EXIT /B 0
:tail_all
docker-compose -f "%COMPOSE_FILE_PATH%" logs --tail="all"
EXIT /B 0
:test
call %MVN_EXEC% verify -pl integration-tests
EXIT /B 0
:purge
docker volume rm ${rootArtifactId}-acs-volume
docker volume rm ${rootArtifactId}-db-volume
docker volume rm ${rootArtifactId}-ass-volume
EXIT /B 0

View File

@@ -1,7 +1,113 @@
#!/bin/bash
if [[ -z ${MAVEN_OPTS} ]]; then
echo "The environment variable 'MAVEN_OPTS' is not set, setting it for you";
MAVEN_OPTS="-Xms256m -Xmx2G"
#set( $symbol_dollar = '$' )
#!/bin/sh
export COMPOSE_FILE_PATH=${symbol_dollar}{PWD}/target/classes/docker/docker-compose.yml
if [ -z "${symbol_dollar}{M2_HOME}" ]; then
export MVN_EXEC="mvn"
else
export MVN_EXEC="${symbol_dollar}{M2_HOME}/bin/mvn"
fi
echo "MAVEN_OPTS is set to '$MAVEN_OPTS'";
mvn clean install alfresco:run
start() {
docker volume create ${rootArtifactId}-acs-volume
docker volume create ${rootArtifactId}-db-volume
docker volume create ${rootArtifactId}-ass-volume
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d
}
start_share() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d ${rootArtifactId}-share
}
start_acs() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d ${rootArtifactId}-acs
}
down() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH down
}
purge() {
docker volume rm ${rootArtifactId}-acs-volume
docker volume rm ${rootArtifactId}-db-volume
docker volume rm ${rootArtifactId}-ass-volume
}
build() {
docker rmi alfresco-content-services-${rootArtifactId}:development
docker rmi alfresco-share-${rootArtifactId}:development
${symbol_dollar}MVN_EXEC clean install -DskipTests=true
}
build_share() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH kill ${rootArtifactId}-share
yes | docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH rm -f ${rootArtifactId}-share
docker rmi alfresco-share-${rootArtifactId}:development
${symbol_dollar}MVN_EXEC clean install -DskipTests=true -pl ${rootArtifactId}-share-jar
}
build_acs() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH kill ${rootArtifactId}-acs
yes | docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH rm -f ${rootArtifactId}-acs
docker rmi alfresco-content-services-${rootArtifactId}:development
${symbol_dollar}MVN_EXEC clean install -DskipTests=true -pl ${rootArtifactId}-platform-jar
}
tail() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH logs -f
}
tail_all() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH logs --tail="all"
}
test() {
${symbol_dollar}MVN_EXEC verify -pl integration-tests
}
case "${symbol_dollar}1" in
build_start)
down
build
start
tail
;;
start)
start
tail
;;
stop)
down
;;
purge)
down
purge
;;
tail)
tail
;;
reload_share)
build_share
start_share
tail
;;
reload_acs)
build_acs
start_acs
tail
;;
build_test)
down
build
start
test
tail_all
down
;;
test)
test
;;
*)
echo "Usage: ${symbol_dollar}0 {build_start|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
esac

View File

@@ -1,10 +0,0 @@
# Enterprise License location
Put the Alfresco Enterprise license file in this directory.
It will then be copied into the Platform WAR in the
WEB-INF/classes/alfresco/extension/license directory.
And then not be part of any other classpaths.

View File

@@ -1,69 +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
# -------------------
########################################################################################################################
# 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
# 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

@@ -1,73 +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
# -------------------
########################################################################################################################
# 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
# 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

@@ -1,69 +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
# -------------------
########################################################################################################################
# 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
# 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

@@ -1,7 +0,0 @@
<?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,4 +0,0 @@
version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=allInOneTest
package=it.pkg

View File

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

View File

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

View File

@@ -1 +0,0 @@
install -Dalfresco.platform.version=@@alfresco.enterprise.default.version@@ -Dalfresco.share.version=@@alfresco.enterprise.default.version@@ -Dmaven.alfresco.edition=enterprise

View File

@@ -1,4 +0,0 @@
version=1.0
groupId=archetype.it
artifactId=allInOneTestRunEnterpriseFourTwo
package=it.pkg

View File

@@ -1 +0,0 @@
install -Dalfresco.platform.version=4.2.7 -Dalfresco.share.version=4.2.7 -Dmaven.alfresco.edition=enterprise

View File

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

View File

@@ -1 +0,0 @@
install -Dalfresco.platform.version=5.0 -Dalfresco.share.version=5.0 -Dmaven.alfresco.edition=enterprise

View File

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

View File

@@ -1 +0,0 @@
install -Dalfresco.platform.version=5.1 -Dalfresco.share.version=5.1 -Dmaven.alfresco.edition=enterprise

View File

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

View File

@@ -12,7 +12,7 @@
<parent>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-sdk-aggregator</artifactId>
<version>3.0.0</version>
<version>4.0.0-beta-1</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -24,8 +24,6 @@
<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>
@@ -36,8 +34,6 @@
<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>

View File

@@ -0,0 +1,2 @@
def file = new File( request.getOutputDirectory(), request.getArtifactId()+"/run.sh" );
file.setExecutable(true, false);

View File

@@ -11,12 +11,46 @@
</requiredProperties>
<fileSets>
<fileSet encoding="UTF-8" filtered="true">
<directory>docker</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet filtered="false" packaged="false" encoding="UTF-8">
<directory>src/main/assembly</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/docker/license</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8" filtered="false">
<directory>src/main/docker</directory>
<includes>
<include>license/**</include>
<include>Dockerfile</include>
<include>disable-webscript-caching-context.xml</include>
</includes>
<excludes>
<exclude>**/*.properties</exclude>
</excludes>
</fileSet>
<fileSet encoding="UTF-8" filtered="true">
<directory>src/main/docker</directory>
<includes>
<include>**/*.properties</include>
</includes>
<excludes>
<exclude>license/**</exclude>
<exclude>Dockerfile</exclude>
<exclude>disable-webscript-caching-context.xml</exclude>
</excludes>
</fileSet>
<fileSet filtered="true" packaged="true" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
@@ -45,37 +79,8 @@
</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>
<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>

View File

@@ -1,35 +1,42 @@
# Alfresco Platform JAR Module - SDK 3
# Alfresco ACS JAR Module - SDK 4.0
To run use `mvn clean install -DskipTests=true alfresco:run` or `./run.sh` and verify that it
This is an ACS project for Alfresco SDK 4.0.
* Runs the embedded Tomcat + H2 DB
* Runs Alfresco Platform (Repository)
* Runs Alfresco Solr4
* Packages both as JAR and AMP assembly
Try cloning it, change the port and play with `enableShare`, `enablePlatform` and `enableSolr`.
Protip: This module will work just fine as a Share module if the files are changed and
if the enablePlatform and enableSolr is disabled.
Run with `./run.sh build_start` or `./run.bat build_start` and verify that it
* Runs Alfresco Content Service (ACS)
* (Optional) Runs Alfresco Share
* Runs Alfresco Search Service (ASS)
* Runs PostgreSQL database
* Deploys the JAR assembled module
All the services of the project are now run as docker containers. The run script offers the next tasks:
* `build_start`. Build the whole project, recreate the ACS docker image, start the dockerised environment composed by ACS, Share (optional), ASS
and PostgreSQL and tail the logs of all the containers.
* `start`. Start the dockerised environment without building the project and tail the logs of all the containers.
* `stop`. Stop the dockerised environment.
* `purge`. Stop the dockerised container and delete all the persistent data (docker volumes).
* `tail`. Tail the logs of all the containers.
* `reload_acs`. Build the ACS module, recreate the ACS docker image and restart the ACS container.
* `build_test`. Build the whole project, recreate the ACS docker image, start the dockerised environment, execute the integration tests and stop
the environment.
* `test`. Execute the integration tests (the environment must be already started).
# Few things to notice
* No parent pom
* WAR assembly is handled by the Alfresco Maven Plugin configuration
* No WAR projects, the jars are included in the custom docker images
* No runner project - the Alfresco environment is now managed through [Docker](https://www.docker.com/)
* Standard JAR packaging and layout
* Works seamlessly with Eclipse and IntelliJ IDEA
* JRebel for hot reloading, JRebel maven plugin for generating rebel.xml, agent usage: `MAVEN_OPTS=-Xms256m -Xmx1G -agentpath:/home/martin/apps/jrebel/lib/libjrebel64.so`
* JRebel for hot reloading, JRebel maven plugin for generating rebel.xml [JRebel integration documentation]
* 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
* Persistent test data through restart thanks to the use of Docker volumes for ACS, ASS and database data
* 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

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

View File

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

View File

@@ -0,0 +1,55 @@
#set( $symbol_dollar = '$' )
version: '3.4'
services:
# Optional
# ${rootArtifactId}-share:
# image: ${symbol_dollar}{docker.share.image}:${symbol_dollar}{alfresco.share.version}
# environment:
# REPO_HOST: ${rootArtifactId}-acs
# REPO_PORT: 8080
# ports:
# - "${symbol_dollar}{share.port}:8080"
${rootArtifactId}-acs:
image: alfresco-content-services-${rootArtifactId}:development
build:
dockerfile: ./Dockerfile
context: ../../../target
environment:
CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888"
ports:
- "${symbol_dollar}{acs.port}:8080"
- "${symbol_dollar}{acs.debug.port}:8888"
volumes:
- ${rootArtifactId}-acs-volume:/usr/local/tomcat/alf_data
depends_on:
- ${rootArtifactId}-postgres
${rootArtifactId}-postgres:
image: postgres:9.6
environment:
POSTGRES_DB: alfresco
POSTGRES_USER: alfresco
POSTGRES_PASSWORD: alfresco
ports:
- "${symbol_dollar}{postgres.port}:5432"
volumes:
- ${rootArtifactId}-db-volume:/var/lib/postgresql/data
${rootArtifactId}-ass:
image: alfresco/alfresco-search-services:1.2.0
environment:
SOLR_ALFRESCO_HOST: ${rootArtifactId}-acs
SOLR_ALFRESCO_PORT: 8080
SOLR_SOLR_HOST: ${rootArtifactId}-ass
SOLR_SOLR_PORT: 8983
SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive
ports:
- "8983:8983"
volumes:
- ${rootArtifactId}-ass-volume:/opt/alfresco-search-services/contentstore
- ${rootArtifactId}-ass-volume:/opt/alfresco-search-services/data
volumes:
${rootArtifactId}-acs-volume:
external: true
${rootArtifactId}-db-volume:
external: true
${rootArtifactId}-ass-volume:
external: true

View File

@@ -5,8 +5,8 @@
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<name>${artifactId} Platform Jar Module - SDK 3</name>
<description>Platform JAR Module (to be included in the alfresco.war) - SDK 3</description>
<name>${artifactId} Platform/Repository JAR Module</name>
<description>Platform/Repo JAR Module (to be included in the alfresco.war)</description>
<packaging>jar</packaging>
<properties>
@@ -15,68 +15,62 @@
<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.bomDependencyArtifactId>@@alfresco.bomDependency.artifactId@@</alfresco.bomDependencyArtifactId>
<alfresco.platform.version>@@alfresco.platform.version@@</alfresco.platform.version>
<alfresco.share.version>@@alfresco.share.version@@</alfresco.share.version>
<!-- Alfresco Platform webapp version, this is the original Alfresco webapp 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.e</alfresco.platform.version>
<!-- Alfresco Share version, so we can bring in correct alfresco-share-services artifact -->
<alfresco.share.version>5.2.d</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>
<!-- Docker images -->
<docker.acs.image>@@alfresco.platform.docker.image@@</docker.acs.image>
<docker.share.image>@@alfresco.share.docker.image@@</docker.share.image>
<!-- 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 8, default is 5 -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- Environment configuration properties -->
<share.port>8180</share.port>
<acs.host>${artifactId}-acs</acs.host>
<acs.port>8080</acs.port>
<acs.debug.port>8888</acs.debug.port>
<postgres.port>5555</postgres.port>
<!-- This parameter is only required for those cases in which ACS is not exposed in http://localhost:8080/alfresco (i.e. Windows Docker) -->
<test.acs.endpoint.path></test.acs.endpoint.path>
<!-- Compile with Java 7, default is 5 -->
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!-- 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
-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-platform-distribution</artifactId>
<version>${alfresco.platform.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>
<!-- The main Alfresco Repo dependency for compiling Java code in src/main/java -->
<dependency>
<groupId>${alfresco.groupId}</groupId>
<artifactId>alfresco-repository</artifactId>
<artifactId>alfresco-remote-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- Bring in Alfresco RAD so we get access to AlfrescoTestRunner classes -->
@@ -86,91 +80,238 @@
<version>${alfresco.sdk.version}</version>
<scope>test</scope>
</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>
<!-- Integration tests need httpcomponents to execute tests -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</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.bomDependencyArtifactId}</artifactId>
<version>${alfresco.platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<!--
The Alfresco Maven Plugin contains all the logic to run the extension
in an embedded Tomcat with the H2 database.
-->
<!-- 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.alfresco.maven.plugin</groupId>
<artifactId>alfresco-maven-plugin</artifactId>
<version>${alfresco.sdk.version}</version>
<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>
<executions>
<execution>
<id>start-alfresco</id>
<id>copy-and-filter-docker-compose-resources</id>
<phase>validate</phase>
<goals>
<goal>it</goal>
<goal>copy-resources</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<outputDirectory>${project.build.outputDirectory}/docker</outputDirectory>
<resources>
<resource>
<directory>docker</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-and-filter-docker-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/docker</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.jar</exclude>
<exclude>**/*.so</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-and-filter-docker-resources-non-filtered</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/docker</directory>
<filtering>false</filtering>
<includes>
<include>**/*.jar</include>
<include>**/*.so</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
<executions>
<!-- Copy the repository extension and the dependencies required for execute integration tests -->
<execution>
<id>copy-repo-extension</id>
<phase>pre-integration-test</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<!-- Test dependencies -->
<!-- We need these dependencies installed in ACS in order to execute the test remotely making use of the Alfresco RAD module -->
<artifactItem>
<groupId>org.alfresco.maven</groupId>
<artifactId>alfresco-rad</artifactId>
<version>${alfresco.sdk.version}</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<!-- Copy other dependencies (JARs or AMPs) declared in the platform module -->
<execution>
<id>copy-third-party-dependencies</id>
<phase>pre-integration-test</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/extensions</outputDirectory>
<includeScope>runtime</includeScope>
</configuration>
</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>
<configuration>
<!-- We need the flat file H2 database to run the Repo -->
<enableH2>true</enableH2>
<!-- This is a platform extension JAR, so we need the platform webapp (alfresco.war) -->
<enablePlatform>true</enablePlatform>
<!-- Enable Solr so we can use search, our Repo extension probably need search -->
<enableSolr>true</enableSolr>
<!-- We don't need the share.war if we don't have any UI extensions -->
<enableShare>false</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>
<!-- This AMP is needed if we are going to access the platform webapp from a Share webapp -->
<!-- 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 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>
</platformModules>
<systemPropertyVariables>
<acs.endpoint.path>${test.acs.endpoint.path}</acs.endpoint.path>
</systemPropertyVariables>
</configuration>
<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>
<!--
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.
-->
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>
@@ -217,10 +358,8 @@
<fallback>all</fallback>
<resources>
<resource>
<!--
Empty resource element marks default configuration. By
default it is placed first in generated configuration.
-->
<directory>${project.build.outputDirectory}</directory>
<directory>${project.build.testOutputDirectory}</directory>
</resource>
</resources>
</classpath>
@@ -233,73 +372,6 @@
<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>
<!-- 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>
</plugins>
<resources>
@@ -316,10 +388,6 @@
<filtering>true</filtering>
</testResource>
</testResources>
</build>
<!--
@@ -344,6 +412,7 @@
<url>https://artifacts.alfresco.com/nexus/content/groups/private</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>alfresco-plugin-public</id>
@@ -358,5 +427,4 @@
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
</project>

View File

@@ -1,8 +1,87 @@
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Dev environment startup script for Alfresco Community ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
#set( $symbol_dollar = '$' )
@ECHO OFF
set MAVEN_OPTS=-Xms256m -Xmx2G
SET COMPOSE_FILE_PATH=%CD%\target\classes\docker\docker-compose.yml
mvn clean install alfresco:run
IF [%M2_HOME%]==[] (
SET MVN_EXEC=mvn
)
IF NOT [%M2_HOME%]==[] (
SET MVN_EXEC=%M2_HOME%\bin\mvn
)
IF [%1]==[] (
echo "Usage: %0 {build_start|start|stop|purge|tail|build_test|test}"
GOTO END
)
IF %1==build_start (
CALL :down
CALL :build
CALL :start
CALL :tail
GOTO END
)
IF %1==start (
CALL :start
CALL :tail
GOTO END
)
IF %1==stop (
CALL :down
GOTO END
)
IF %1==purge (
CALL:down
CALL:purge
GOTO END
)
IF %1==tail (
CALL :tail
GOTO END
)
IF %1==build_test (
CALL :down
CALL :build
CALL :start
CALL :test
CALL :tail_all
CALL :down
GOTO END
)
IF %1==test (
CALL :test
GOTO END
)
echo "Usage: %0 {build_start|start|stop|purge|tail|build_test|test}"
:END
EXIT /B %ERRORLEVEL%
:start
docker volume create ${rootArtifactId}-acs-volume
docker volume create ${rootArtifactId}-db-volume
docker volume create ${rootArtifactId}-ass-volume
docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d
EXIT /B 0
:down
docker-compose -f "%COMPOSE_FILE_PATH%" down
EXIT /B 0
:build
docker rmi alfresco-content-services-${rootArtifactId}:development
call %MVN_EXEC% clean install -DskipTests
EXIT /B 0
:tail
docker-compose -f "%COMPOSE_FILE_PATH%" logs -f
EXIT /B 0
:tail_all
docker-compose -f "%COMPOSE_FILE_PATH%" logs --tail="all"
EXIT /B 0
:test
call %MVN_EXEC% verify
EXIT /B 0
:purge
docker volume rm ${rootArtifactId}-acs-volume
docker volume rm ${rootArtifactId}-db-volume
docker volume rm ${rootArtifactId}-ass-volume
EXIT /B 0

View File

@@ -1,3 +1,80 @@
#!/bin/bash
#set( $symbol_dollar = '$' )
#!/bin/sh
MAVEN_OPTS="-Xms256m -Xmx2G" mvn clean install alfresco:run
export COMPOSE_FILE_PATH=${symbol_dollar}{PWD}/target/classes/docker/docker-compose.yml
if [ -z "${symbol_dollar}{M2_HOME}" ]; then
export MVN_EXEC="mvn"
else
export MVN_EXEC="${symbol_dollar}{M2_HOME}/bin/mvn"
fi
start() {
docker volume create ${rootArtifactId}-acs-volume
docker volume create ${rootArtifactId}-db-volume
docker volume create ${rootArtifactId}-ass-volume
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d
}
down() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH down
}
purge() {
docker volume rm ${rootArtifactId}-acs-volume
docker volume rm ${rootArtifactId}-db-volume
docker volume rm ${rootArtifactId}-ass-volume
}
build() {
docker rmi alfresco-content-services-${rootArtifactId}:development
${symbol_dollar}MVN_EXEC clean install -DskipTests=true
}
tail() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH logs -f
}
tail_all() {
docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH logs --tail="all"
}
test() {
${symbol_dollar}MVN_EXEC verify
}
case "${symbol_dollar}1" in
build_start)
down
build
start
tail
;;
start)
start
tail
;;
stop)
down
;;
purge)
down
purge
;;
tail)
tail
;;
build_test)
down
build
start
test
tail_all
down
;;
test)
test
;;
*)
echo "Usage: ${symbol_dollar}0 {build_start|start|stop|purge|tail|build_test|test}"
esac

View File

@@ -1,7 +1,7 @@
<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">
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

View File

@@ -0,0 +1,18 @@
FROM ${docker.acs.image}:${alfresco.platform.version}
ARG TOMCAT_DIR=/usr/local/tomcat
# Copy Dockerfile to avoid an error if no JARs exist
COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/
# Copy Dockerfile to avoid an error if no AMPs exist
COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/
RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
$TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force
COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties
COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension
COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension
# Copy Dockerfile to avoid an error if no license file exists
COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/

View File

@@ -1,3 +1,6 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
@@ -15,14 +18,12 @@
# 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
@@ -33,14 +34,9 @@ alfresco.protocol=http
# Alfresco Share Webapp (share.war) context, ports etc
share.context=share
share.host=localhost
share.port=8080
share.port=8180
share.protocol=http
index.subsystem.name=solr4
solr.host=localhost
solr.port=8080
solr.secureComms=none
# Don't try and recover any index
index.recovery.mode=NONE
@@ -57,13 +53,27 @@ 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
# This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module.
# Define default values for all properties here.
# System Administrators can override these values in environment specific configurations in
# alfresco/tomcat/shared/classes/alfresco-global.properties.
#
index.subsystem.name=solr6
solr.host=${rootArtifactId}-ass
solr.port=8983
solr.secureComms=none
db.username=alfresco
db.password=alfresco
db.pool.initial=10
db.pool.max=100
db.url=jdbc:postgresql://${rootArtifactId}-postgres:5432/alfresco
# File servers related properties
# For local runs we disable CIFS and FTP
cifs.enabled=false
ftp.enabled=false
ftp.enabled=false
csrf.filter.enabled=false

View File

@@ -4,7 +4,6 @@
# 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
@@ -14,7 +13,6 @@ 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=alfresco.log
log4j.appender.File.Append=true
@@ -22,13 +20,11 @@ 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
###### 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,8 +60,7 @@ 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
@@ -215,7 +210,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
@@ -271,3 +265,6 @@ log4j.logger.org.alfresco.enterprise.repo.authorization.AuthorizationsConsistenc
#-----------------------------------------------------------------------
log4j.logger.${package}.platformsample.DemoComponent=debug
log4j.logger.${package}.platformsample.HelloWorldWebScript=debug

View File

@@ -1,3 +1,6 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
# Enable hotswap so that changes in this module will be automatically reloaded
# Watch for changed class files on watchResources path and reload class definition in the running application.
autoHotswap=true
@@ -10,8 +13,8 @@ autoHotswap=true
# classes from built JAR file.
# i.e. monitor /target/classes
# should work with extraClasspath=${project.build.outputDirectory}
# If not try
extraClasspath=${project.build.outputDirectory};${project.build.testOutputDirectory}
# If not try
extraClasspath=/usr/local/tomcat/hotswap-agent
# Comma separated list of disabled plugins
# Use plugin name - e.g.
@@ -23,12 +26,12 @@ disabledPlugins=Hibernate,Spring
#
# Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing.
# Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp).
extraWebappContext=${project.build.outputDirectory}/META-INF/resources
extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}/target/classes/META-INF/resources;
# Load static web resources from different directory.
#
# This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...)
webappDir=${project.build.outputDirectory}/META-INF/resources
webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}/target/classes/META-INF/resources;
# Watch for changes in a directory (resources only).
#

View File

@@ -0,0 +1,6 @@
# Enterprise License location
Put the Alfresco Enterprise license file in this directory.
It will then be copied into the ACS container in the
$TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory.

View File

@@ -1,6 +1,23 @@
#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;
/**

View File

@@ -1,22 +1,23 @@
#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.
*/
/**
* 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;

View File

@@ -1,22 +1,23 @@
#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.
*/
/**
* 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;

View File

@@ -3,20 +3,20 @@
#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.
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"
@@ -40,5 +40,5 @@
<property name="nodeLocatorService" ref="nodeLocatorService" />
</bean>
</beans>

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