A set of standardized components for AEM 6.4+ that can be used to speed up development of websites.
You will require a latest version of aemdesign-aem-compose that has the base dialogs configuration content.
After completing your commits and before PUSHING please run following command to push your updates to sonar. Please cleanup your updates do not add items to Reliability, Security and Maintainability measures, please dont be a ๐ฉ and cleanup your code ๐๐
On Master branch run this
mvn sonar:sonar "-Dsonar.branch.name=master" "-Dsonar.host.url=https://sonarcloud.io" "-Dsonar.login=e565f767e9723a7e1b27e1c339cc24dc8ee87aaf" "-Dsonar.organization=aemdesign-github"
On other branches run this, change sonar.branch.name
to your branch name
mvn sonar:sonar "-Dsonar.branch.name=develop" "-Dsonar.branch.target=master" "-Dsonar.host.url=https://sonarcloud.io" "-Dsonar.login=e565f767e9723a7e1b27e1c339cc24dc8ee87aaf" "-Dsonar.organization=aemdesign-github"
If you're curious about how the next generation of components looks like, a tech preview is made available in the
development
branch.
Contributions are welcome! Read the Contributing Guide for more information.
Detailed table of component can be found here Component List
Component Category | Link |
---|---|
Cloud Services / Rest | Rest |
Cloud Services / Salesforce API | Salesforce API |
Common / Redirection Notification | Redirection Notification |
Common / Static Content Include | Static Content Include |
Common / Timing Component | Timing Component |
Content / File Download Link | File Download Link |
Content / Embed Source | Embed Source |
Content / External | External |
Content / Link | Link |
Content / Content Reference | Content Reference |
Content / Content Fragment | Content Fragment |
Content / Content Template | Content Template |
Content / Table | Table |
Content / Rich Text | Rich Text |
Content / Tool Tip | Tool Tip |
Content / Page Author | Page Author |
Content / Page Date | Page Date |
Content / Page Description | Page Description |
Content / Page Tags | Page Tags |
Content / Page Title | Page Title |
Details / Generic Details | Generic Details |
Details / Contact Details | Contact Details |
Details / Event Details | Event Details |
Details / Location Details | Location Details |
Details / News Details | News Details |
Details / Page Details | Page Details |
Layout / Article | Article |
Layout / Aside | Aside |
Layout / Breadcrumb | Breadcrumb |
Layout / Columns | Columns |
Layout / Content Block | Content Block |
Layout / Content Block Lock | Content Block Lock |
Layout / Content Block Menu | Content Block Menu |
Layout / Content Tabs | Content Tabs |
Layout / Footer | Footer |
Layout / Header | Header |
Layout / Nav Bar | Nav Bar |
Layout / Container | Container |
Lists / Asset List | Asset List |
Lists / Contact List | Contact List |
Lists / Event List | Event List |
Lists / Lang Nav | Lang Nav |
Lists / List | List |
Lists / List Nav | List Nav |
Lists / Location List | Location List |
Lists / News List | News List |
Lists / Page List | Page List |
Lists / Search Results List | Search Results List |
Lists / Tag List | Tag List |
Lists / Nav List | Nav List |
Media / Audio | Audio |
Media / Image | Image |
Media / Video | Video |
Analytics / Analytics Data Layer | Analytics Data Layer |
Template / AEM.Design Base Page | AEM.Design Base Page |
Template / Cloud Config / AddThis | AddThis |
Template / Cloud Config / Google Analytics | Google Analytics |
Template / Cloud Config / Google Map | Google Map |
Template / Column / AEM.Design One Column Page | AEM.Design One Column Page |
Template / Column / AEM.Design Three Column Page | AEM.Design Three Column Page |
Template / Column / AEM.Design Two Column Page | AEM.Design Two Column Page |
Template / Common / Design Importer | Design Importer |
Template / Experience Fragment / AEM.Design Experience Fragment | AEM.Design Experience Fragment |
Widgets / AddThis / Addthis Button | Addthis Button |
Widgets / Online Media | Online Media |
Widgets / Search Box | Search Box |
Workflow / Process Payload | Process Payload |
Workflow / Project Task Manager | Project Task Manager |
Workflow / Project Update | Project Update |
Workflow / Rest | Rest |
Workflow / Salesforce API | Salesforce API |
Workflow / Send Email | Send Email |
Coral / Common/Form / Tag Field | Tag Field |
Coral / Datasources / Forms | Forms |
Coral / Datasources / Tags | Tags |
Coral / Foundation / Accordion | Accordion |
Coral / Widgets/Form / Asset Options | Asset Options |
The components' versioning scheme is documented on the AEM Core WCM Components' versioning policies wiki page.
Following is a description of each repo and their purpose.
For more information see Project Artifacts
Repo | Notes |
---|---|
aemdesign-aem-author/ | has all of the components and configurations that modify/update AEM |
aemdesign-aem-common/ | has all of the components code |
aemdesign-aem-core-deploy/ | monolith package for all projects |
aemdesign-aem-services/ | has all of the code that compiled and installed by common project |
The latest version of the Core Components, require the below system requirements:
AEM Version | 2.0.0 |
---|---|
6.4 | yes |
6.5 | yes |
To install everything, excluding examples, the released aggregate package aemdesign-aem-core-deploy
can be installed via the AEM Package Manager.
For more information about the Package Manager please have a look at How to Work With Packages documentation page.
Following packages are dependencies and should be installed on your AEM instance before installing AEM.Design:
- ACS Twitter 1.0.0
- ACS Commons 4.4.0
- Core Components 2.8.0
- Core Components Extension 1.0.12
- Netcentric Access Control Tool 2.3.2
- Adobe Vanity URL 1.0.2
The project has the following requirements:
- Java SE Development Kit 8 or Java SE Development Kit 11
- Apache Maven 3.3.1 or newer
For ease of build and installation the following profiles are provided:
installdeploymentpackage
- installs the deploy package/bundle to an existing AEM author instance
You can use helper script for ease of local deployment
deploy-local
- deploy aemdesign-aem-core-deploy package to your local AEM instance running on port 4502deploy-local-publish
- deploy aemdesign-aem-core-deploy package to your local AEM instance running on port 4503
This project relies on the AEM 6.4 cq-quickstart. This is publicly available on https://repo.adobe.com
For more details about the UberJar please head over to the How to Build AEM Projects using Apache Maven documentation page.
To add core components to your project, you will need to add it to your maven build. The released version of the framework are available on the public maven repository at https://repo1.maven.org/maven2/design/aem/aemdesign-aem-core-deploy/
To include the deploy package into your own project's maven build using maven you can add the dependency to your pom.xml like this
<dependency>
<groupId>design.aem</groupId>
<artifactId>aemdesign-aem-core-deploy</artifactId>
<type>zip</type>
<version>2.0.100</version>
</dependency>
and then add this subpackage to your sub package section
<subPackage>
<groupId>design.aem</groupId>
<artifactId>aemdesign-aem-core-deploy</artifactId>
<filter>true</filter>
</subPackage>
inside the configuration of the content-package-maven-plugin
.
Following section describes some of the development topics
Release versions are automated and based on Tags and Commit count from Tag using the git describe
command
To see what the new version will be run:
mvn help:evaluate -q -DforceStdout -Dexpression=project.version
Version numbers for Git Tags should follow semver format:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version is automatically generated based on git commit count from last Tag
Please use MAJOR and MINOR version in Tags, PATCH version will be automatically added as a commit count since the last tag using the git describe.
aemdesign-aem-core-deploy
module creates an aem package for deployment which contains:
aemdesign-aem-author
amedesign-aem-common
aemdesign-aem-common
module embeds bundles:
aemdesign-aem-services
To ensure the project builds correctly locally run:
mvn -Dvault.useProxy=false -DskipTests -e -U clean package
To build and deploy the project to your local aem instance (default localhost:4502), in the project root run:
./deploy-local
Releases are managed via the maven plugins versions-maven-plugin
and maven-scm-plugin
Version numbers should follow the SemVer convention.
In preparation for a release, create a new git release branch from the current master snapshot branch:
- Create a new release branch.
mvn scm:branch -Dbranch=release/<version> -Dmessage="creating release branch <version>"
- Ensure you are on the new release branch.
git checkout release/<version>
- Update the maven
version
parameter.mvn versions:set -DnewVersion=<version>
- Check the version number was correctly applied and confirm.
mvn versions:commit
- Commit the updated version numbers to the release branch.
mvn scm:checkin -Dmessage="updating version numbers"
Once the testing cycle has been completed and all code fixes have been applied to the remote release branch, we create a git tag of our version and deploy the maven aemdesign-aem-core
artifact to the remote maven repository and merge our release to master branch.
- Ensure we are on the release branch for aemdesign-aem-core.
- Raise a Merge Request from the relase branch to master branch, adding the necessary reviewers.
- Create the git tag.
mvn scm:tag -Dtag="<version>"
- Deploy the maven release artifacts to the remote maven repository
<ToDo>
- Accept the aemdesign-aem-core Merge Request and delete the release branch.
- Update the
Release history
section in this readme with details of the new release.
Please review Versions for all version history
Please ensure you have GPG setup and you sign all of your commits.