Skip to content
An implementation of AEM.Design component concepts
JavaScript Java HTML CSS Shell
Branch: master
Clone or download
Latest commit 825fffa Oct 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github add funding config Jul 20, 2019
aemdesign-aem-author update nodetypes.cnd to allow packages to be install during aem initi… Oct 1, 2019
aemdesign-aem-common update nodetypes.cnd to allow packages to be install during aem initi… Oct 1, 2019
aemdesign-aem-core-deploy update nodetypes.cnd to allow packages to be install during aem initi… Oct 1, 2019
aemdesign-aem-services update poms Sep 20, 2019
scripts update helper to uninstall bundle as well as delete it Sep 3, 2019
.gitattributes adding git files Sep 10, 2018
.gitignore update vlt ignore Mar 9, 2019
.gitlab-ci.yml replace gitlab referencesed with github Jul 28, 2019
.travis.yml update submodule Oct 4, 2019
CODE_OF_CONDUCT.md
CONTRIBUTING.md update readmes Jul 15, 2019
GUIDELINES.md add guidelines Jul 15, 2019
LICENSE migrate changes from origin repos Sep 18, 2018
README.md merge with master Sep 20, 2019
VERSIONS.md update versions Jul 15, 2019
default.xml remove activeByDefault from adobe profile Jul 24, 2019
deploy add delay before restart to allow cancel Sep 13, 2019
deploy-local remove profile deploymentpackage to ensure its used all the time Jul 31, 2019
deploy-local-publish remove profile deploymentpackage to ensure its used all the time Jul 31, 2019
deploy-publish
package remove skip tests Aug 22, 2019
pom.xml update poms Sep 20, 2019
privateregistry.xml replace ip with localhost Sep 6, 2019

README.md

aemdesign-aem-core

Quality Gate Status build_status codecov Maven Central github license github issues github last commit github repo size github repo size github release CodeFactor

A set of standardized components for AEM 6.4+ that can be used to speed up development of websites.

Documentation

You will require a latest version of aemdesign-aem-compose that has the base dialogs configuration content.

Sonar Quality Gate

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"

Development

If you're curious about how the next generation of components looks like, a tech preview is made available in the development branch.

Contributing

Contributions are welcome! Read the Contributing Guide for more information.

Available Components

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 / 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 / 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

Component Versioning

The components' versioning scheme is documented on the AEM Core WCM Components' versioning policies wiki page.

Module Purpose

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

System Requirements

The latest version of the Core Components, require the below system requirements:

AEM Version 2.0.0
6.4 yes
6.5 yes

Installation

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.

Package Dependencies

Following packages are dependencies and should be installed on your AEM instance before installing AEM.Design:

Build

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 4502
  • deploy-local-publish - deploy aemdesign-aem-core-deploy package to your local AEM instance running on port 4503

UberJar

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.

Include core components into your own project maven build

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.

Development Notes

Following section describes some of the development topics

Release Versions

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 Convention

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.

Minimal core artifacts required for providing overridable AEM components.

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 build

To ensure the project builds correctly locally run:

mvn -Dvault.useProxy=false -DskipTests -e -U clean package

To deploy

To build and deploy the project to your local aem instance (default localhost:4502), in the project root run:

./deploy-local

To create a release

Releases are managed via the maven plugins versions-maven-plugin and maven-scm-plugin

Version numbers should follow the SemVer convention.

The release process

Prepare release branch

In preparation for a release, create a new git release branch from the current master snapshot branch:

  1. Create a new release branch.
    • mvn scm:branch -Dbranch=release/<version> -Dmessage="creating release branch <version>"
  2. Ensure you are on the new release branch.
    • git checkout release/<version>
  3. Update the maven version parameter.
    • mvn versions:set -DnewVersion=<version>
  4. Check the version number was correctly applied and confirm.
    • mvn versions:commit
  5. Commit the updated version numbers to the release branch.
    • mvn scm:checkin -Dmessage="updating version numbers"

Release new version

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.

  1. Ensure we are on the release branch for aemdesign-aem-core.
  2. Raise a Merge Request from the relase branch to master branch, adding the necessary reviewers.
  3. Create the git tag.
    • mvn scm:tag -Dtag="<version>"
  4. Deploy the maven release artifacts to the remote maven repository
    • <ToDo>
  5. Accept the aemdesign-aem-core Merge Request and delete the release branch.
  6. Update the Release history section in this readme with details of the new release.

Release history

Please review Versions for all version history

Commit Signatures

Please ensure you have GPG setup and you sign all of your commits.

You can’t perform that action at this time.