Skip to content

steeleforge/ironsites

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ironsites ironsites

AEM better

Motivation

ironsites is not some grand, turn-key solution for orgs running on CQ, but rather a set of features that provides direction to CQ developers re-solving the same problems. The goal of ironsites is to provide meta 'framework'y patterns that CQ software architects infrequently have time to build, but have to roughly describe to developer/leads in design guidance, or worse, in code reviews. The project objectives are general because the scope should grow to capture new patterns as the need arises. To summarize the hopes of ironsites:

  • Desire to see out-of-box APIs used appropriately
  • Reduce boilerplate when possible
  • Establishing patterns and conveniences
  • Avoid building these patterns/conveniences again-and-again

Getting Started

To get started, ensure you have a running instance of CQ5.6 and can run mvn goals. Locate the parent pom.xml file for ironsites and edit the profile properties for local-author and/or local-publish. The default profile is local-author running on localhost:4502 with admin/admin credentials. Adjust this to suit your local environments.

To view a maven generated site with javadocs run the following goal then open a browser to the host/port mentioned in the output. This will help you navigate the features much better than this readme will.

mvn site:run

To deploy to a local author instance can be performed by running the 'install' maven goal.

mvn clean install -P author

To deploy to a local publish instance, qualify the environment.

mvn clean install -P publish

Dependencies

  • Adobe Experience Management (CQ) 6
  • JDK 1.7+
  • maven3
  • Patience required for exploring alpha-level software

AEM Interoperability

The 1.2-SNAPSHOT only supports AEM 6.0 -- no 6.1 support yet

Features

Internationalization (i18n) Helpers [wiki]

  • Sane patterns for content-managed i18n copy in AEM components with reasonable Sling supported fallbacks as well as low-effort access to the CQ out-of-box i18n translation helper.
  • Conveniences for supporting MessageFormat interpolation in i18n-ready copy.
  • Optional selector servlet to provide JSON serialzation of sling messages associated to a component/resourceType (e.g. /content/path/to/sling/resource.i18n.json) for usage with Javascript libraries

XSS Helpers [wiki]

  • XSS Utility methods as part of the core utility methods

WCMMode Helpers [wiki]

  • Elimination of scriptlet boilerplate for driving component display behavior based on WCMMode.
  • Taglib to establish a developer selected WCM mode within the tag body content; designed to work with new WCMModes found in AEM6 and beyond.

Simple Cache [wiki]

  • Basic application-level caching somewhere between a heavy Enterprise library and a basic ConcurrentHashMap.

Misc. [wiki]

  • Composable, flexible, and configurable alternatives to PageFilter which is commonly used to create navigation and sitemap components.
  • The WCMUtil singleton has several utility methods for link building which cover the most common AEM use cases. Externalizer, linking to Sling resources decorated with selectors and suffixes, XSS href sanitization, JCR path mangling, and much more.

Other great projects that improve AEM implementation

Author

site | twitter | gittip

Licence

unlicense