How alfresco/alfresco-sdk works
Alfresco SDK is a Maven-based toolkit for creating and developing Alfresco extensions. The principal workflow is for a developer to generate a project from an archetype, implement a platform or Share extension, then use SDK Maven goals to run or install it; refresh goals support rapid iteration, and integration-test support fits the documented TDD workflow. The sampled source confirms AMP installation, run configuration, AMP unpacking, and refresh requests. Other goal capabilities are represented from their filenames and README claims; their internal wiring was not sampled.
Main entry points: alfresco-allinone-archetype All-in-one archetype · alfresco-platform-jar-archetype Platform JAR archetype · alfresco-maven-plugin Alfresco Maven plugin · AbstractRunMojo.java Run configuration
Components 19
Project templates
- All-in-one archetype
archetypes/alfresco-allinone-archetype - Platform JAR archetype
archetypes/alfresco-platform-jar-archetype - Share JAR archetype
archetypes/alfresco-share-jar-archetype
Extension examples
- Platform samples
archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/java/platformsample - All-in-one platform samples
archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform/src/main/java/platformsample
Maven runtime
- Alfresco Maven plugin
plugins/alfresco-maven-plugin - Run goal
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RunMojo.java - Run configuration
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java - Module dependencies
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/config/ModuleDependency.java - AMP install goal
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/InstallMojo.java - AMP unpacker
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/archiver/AmpUnArchiver.java - AMP archiver
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/archiver/AmpArchiver.java
Development feedback
- Refresh goals
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRefreshWebappMojo.java - Repository refresh
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshMojo.java - Share refresh
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshShareWebappMojo.java - Integration tests
plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/IntegrationTestMojo.java
Other components
- Extension developer
- Generated extension
- Alfresco webapps
Connections 22
- Extension developer → All-in-one archetype: generates from
- Extension developer → Platform JAR archetype: generates from
- Extension developer → Share JAR archetype: generates from
- All-in-one archetype → Generated extension: creates project
- Platform JAR archetype → Generated extension: creates project
- Share JAR archetype → Generated extension: creates project
- Platform JAR archetype → Platform samples: templates with
- All-in-one archetype → All-in-one platform samples: templates with
- Extension developer → Alfresco Maven plugin: invokes goals
- Alfresco Maven plugin → Run goal: provides goal
- Run goal → Run configuration: uses configuration
- Run configuration → Module dependencies: configures modules
- Run configuration → AMP install goal: invokes install
- AMP install goal → Alfresco webapps: installs AMP into
- AMP unpacker → Alfresco webapps: installs AMP into
- Extension developer → AMP archiver: packages AMP
- Alfresco Maven plugin → Refresh goals: provides goal
- Refresh goals → Repository refresh: supports repository refresh
- Refresh goals → Share refresh: supports Share refresh
- Repository refresh → Alfresco webapps: posts refresh request
- Share refresh → Alfresco webapps: posts refresh request
- Extension developer → Integration tests: runs integration tests