こんにちは、大和株式会社の浅尾です。
みなさん、ACS AEM Commonsはご存知でしょうか?
ACS AEM Commonsとは、Adobe Consulting Serviceが提供するオープンソースの便利ツール群のことで、
AEMインスタンスにパッケージをインストールすれば、
- 自分が今どのAEMインスタンスを見ているかひとめでわかるようにするAEM Environment Indicator
- ページとそこで使われているアセットをまとめてパッケージにしてくれるPackagers / Asset Packager
- Sling Modelに便利なアノテーションを追加してくれるSling Models Injectors
などなど、細かく分けると100個以上の便利ツールが使えるようになります。
ACS AEM Commonsで使える全機能は公式サイトで確認できるのですが、名前だけではどんな機能なんだかわからないものがたくさんあります。
一応それぞれの機能についてドキュメントが用意されているので、一つひとつ読んでいけば機能を確認していくこともできなくはないんですが、……やっぱり大変ですよね。
ということで今回は、ACS AEM Commonsの全機能に日本語でひとこと説明をつけてみました!
100個以上の機能があって一覧を見るだけでも大変かと思うので、今回はそれを以下の7つのカテゴリー
- オーサリング関連
- コンテンツ・ユーザー管理関連
- AEM管理関連
- コンポーネント開発関連
- バックエンド開発関連
- 全般便利ツール
- インテグレーション関連
に分けて紹介しています。
さらに、私が「便利!」と勝手に思った機能には☆マークをつけてありますので、そこだけでも眺めてみてください!
インストール方法
機能紹介の前にインストール方法を簡単に。
お手軽なインストール方法
- インストールするAEMのバージョンと互換性があるバージョンのうち、最新のものをここで調べる
- リリースからそのバージョンのアセット(acs-aem-commons-content-[ver].zipもしくは、acs-aem-commons-ui.apps-[ver].zip とacs-aem-commons-ui.content-[ver].zip)をダウンロードする
- AEMのPackage Managerでインストールする
Mavenプロジェクトに含めてインストールする方法
上の手順とは別に、Mavenでビルドしたプロジェクトパッケージのサブパッケージとして含めるという方法があります。
詳しくは、Using with Mavenで詳しく説明されているので、こちらを参考にしてください。
機能紹介
ここで紹介している機能は2020年3月16日現在のものです。(随時更新予定)
AEMのバージョンによっては利用できないものも含まれていますので、実際に利用する際はリンク先のドキュメントの確認・事前の動作確認をお願いします。
オーサリング関連
☆ | 機能名 | 概要 |
---|---|---|
QR Code Page Editor Plug-in | ページの外部URLをQRコードで表示するボタンが編集画面に追加される | |
Page Compare | 2つのページのプロパティを比較する | |
☆ | Shared Component Properties | 異なるコンポーネント間でプロパティ値を共有できる |
☆ | JCR Compare | 2つのAEMインスタンス間でJCRノードを比較する |
Version Comparison Tool | 複数バージョン間のページのプロパティを比較する | |
Layer Switcher | Edit / Preview / Annotate / Developer / Targeting / Toggle Side Panelのキーボードショートカットを提供する | |
Page and Design Reference Providers | アクティベートを実行するときに、そのページが参照しているリソースもアクティベートするかどうかのダイアログを表示する |
コンテンツ・ユーザー管理関連
☆ | 機能名 | 概要 |
---|---|---|
File Fetcher | URLで指定したファイルを定期的にDAM Assetに配置し直すジョブ | |
☆ | Remote Assets | 2つのAEMインスタンス間でDAM Assetを同期させるジョブ |
☆ | Ensure Authorizable (FKA Ensure Service User) | 指定の権限(ACE: Access Control Entry)をもつサービスユーザーをOSGi設定で管理し、自動で作成する |
Review Task Asset Mover | レビュータスクで承認・却下されたアセットを指定のフォルダに自動で移動させる | |
Property Merge POST Processor | 複数のプロパティをひとつのプロパティにマージする | |
☆ | Manage Controlled Processes (MCP) | 複雑なタスクを実行するためツールが詰まったダッシュボード(ツールの追加開発が可能) |
MCP Tools / Renovator | 大量のコンテンツを移動・リネームするための補助ツール | |
MCP Tools / Refresh Asset Folder Thumbnails | 大量のアセットフォルダーのサムネイルを更新するための補助ツール | |
MCP Tools / Data Importer | (Excelの表形式で表現された)コンテンツデータをインポートする | |
MCP Tools / URL Asset Import | URLで指定されたアセットをインポートする | |
MCP Tools / S3 Asset Ingestor | Amazon S3上にあるアセットをインポートする | |
MCP Tools / Asset Ingestor | ローカルにあるアセットをインポートする | |
MCP Tools / Asset Folder Creator | (Excelの表形式で表現された)フォルダ構造をインポートする | |
MCP Tools / Asset Reporting | 指定したフォルダ以下のアセット情報のレポートを出力する | |
MCP Tools / Tag Creator | (Excelの表形式で表現された)タグ構造をインポートする | |
MCP Tools / Deep Prune | 再帰的にコンテンツを削除する | |
Exporters / Tags Exporter | タグの一覧をCSV形式で出力する | |
☆ | Exporters / User Exporter | ユーザーの一覧をCSV形式で出力する |
Workflow Remover | 大量のワークフローインスタンスを削除する | |
☆ | Packagers / Asset Packager | 指定したパス以下のページに含まれるアセットのパッケージを作成する |
☆ | Packagers / Authorizable Packager | ユーザー名・グループ名を指定して、ユーザー・グループのパッケージを作成する |
☆ | Packagers / Query Package | クエリ結果からパッケージを作成する |
☆ | Packagers / ACL Packager | 指定パス以下のACLのみを含んだパッケージを作成する |
☆ | Package Replication Status Updater | パッケージでレプリケートされたリソースのReplication Statusを更新する |
☆ | Dispatcher Flush UI | 手動でDispatcher FlushができるUIを提供する |
☆ | Bulk Workflow Manager v2 | クエリで取得したページ・アセットすべてに対してワークフローを一挙に実行する |
AEM管理関連
☆ | 機能名 | 概要 |
---|---|---|
☆ | Report Builder | コンテンツのステータスをリスト化したレポートを生成する |
Extending Report Builder | Report Builderをさらにカスタマイズする | |
Configuring Report Builder | Report Builderで表示するレポートを詳細設定する | |
☆ | Health Checks / Health Check Status E-mailer | ヘルスチェックを定期的に実行し、結果をメールで送信する |
Health Checks / SMTP Health Check | AEMからのメール送信ができるかチェックする | |
☆ | Audit Log Search | 監査ログを検索する |
☆ | System Notifications | AEMユーザーに通知(メンテナンスによる利用制限時間の通知など)をする |
コンポーネント開発関連
☆ | 機能名 | 概要 |
---|---|---|
Parsys Limiter | Parsysコンポーネントに配置できるコンポーネントの数を制限する | |
On-Deploy Scripts | デプロイ時に実行したいスクリプト(sling:resourceTypeを一斉に書き換えるなど)を設定する | |
Assets Components / Copy Publish URL | アセットのプロパティにPublish URLを表示する | |
Assets Components / Assets Geolocation Map | アセットのプロパティに地理位置情報を書き換える | |
Assets Components / Asset Edit History | アセットのプロパティに編集履歴を表示する | |
Assets Components / Asset Fonts | アセットのプロパティに、そのアセットで利用されているフォントを表示する | |
Assets Components / Assets Color Swatches | アセットのプロパティに、そのアセットに利用されている色情報のリストを表示する | |
UI Widgets / Contextual Pathfield Browser | ルートパスを動的に取得できるようにした拡張版pathbrowser | |
☆ | UI Widgets / Show/Hide Widgets | 選択された値によって他のWidgetを表示/非表示を制御するTouch UI Widget |
UI Widgets / Query Autocomplete Datasource | クエリで取得したリストをドロップダウンに表示し、さらに補完機能もついた拡張版select | |
UI Widgets / Path Render Condition | Touch UI Widgetの表示/非表示を指定のパスに含まれるかどうかで制御できる機能 | |
UI Widgets / Draggable Lists | ドラッグで順番変更が可能なリスト型のTouch UI Widget | |
UI Widgets / Icon Picker | アイコンが選択できるリスト型のTouch UI Widget | |
WCM Components / Long-form Text Component | テキストの段落の間にParsysコンポーネントを自動で挟むコンポーネント | |
☆ | Component Error Handler | コンポーネントで実行時エラーが発生したときの出力を制御する |
☆ | Versioned ClientLibs | クライアントライブラリーをバージョンごとに異なるファイル名で出力する |
☆ | Error Page Handler | 40X、50Xのエラーページを設定する |
Generic Lists | 異なるコンポーネント間で共有できる、ダイアログのドロップダウンリストを生成する |
バックエンド開発関連
☆ | 機能名 | 概要 |
---|---|---|
Workflow Processes / Sync Smart Tags to XMP Metadata Node | アセットのSmart TagをJCRノードに変換して保存するワークフロープロセス | |
Workflow Processes / Brand Portal Sync | AEM AssetsとAEM Assets Brand Portalを同期するワークフロープロセス | |
Workflow Processes / Set Replication Status | レプリケーションステータスを変更するワークフロープロセス | |
Workflow Processes / Workflow Delegation | ペイロードのパスを判定して、ワークフローの途中で別のワークフローを開始するワークフロープロセス | |
Workflow Processes / Send Template'd E-mail | テンプレート化されたメールを送信するワークフロープロセス | |
Workflow Processes / Replicated By Workflow Initiator | cq:lastReplicatedByをワークフロー開始者に変更するワークフロープロセス | |
Workflow Processes / Content Traversing - Synthetic Workflow Wrapper | 対象のペイロード配下のコンテンツすべてに対して新規にワークフローを開始するワークフロープロセス | |
Workflow Processes / Content Traversing - Replicate with Options | 対象のペイロード(と、設定すれば配下のコンテンツすべてに対して)レプリケーションエージェントを指定してレプリケートするワークフロープロセス | |
Workflow Processes / Rendition Watermarker | アセットに透かしを入れたレンディションを追加するワークフロープロセス | |
Workflow Processes / DAM Metadata Property Reset | アセットのプロパティの上書きを防ぐために、プロパティ値を別のプロパティに退避させるワークフロープロセス | |
Workflow Processes / Abstract Rendition Modifying Process | レンディションを操作するために使えるJavaのAbstract Class | |
Adobe I/O APIs | Adobe I/OのAPIをバンドルから呼びやすくする | |
Redirect Map Manager | Apache httpd Redirect Mapの作成・管理の補助ツール | |
Utils & APIs / Data APIs | Excelファイルを扱うためのSpreadsheet API、シンプルな値を色々な型に変換するためのVariantクラスを提供する | |
Utils & APIs / Permission Sensitive Cache Servlet | リクエストユーザーの権限ごとにレスポンスのDispatcherキャッシュをコントロールする | |
Utils & APIs / Children as Property Resource Wrapper API | 高いパフォーマンスでJCR上で大量のツリー上データを扱えるようにするAPI | |
Utils & APIs / Resource Resolver Mapping Rewriter | URLのResource Resolver Mappingをaタグhref属性以外にも適用させる | |
Utils & APIs / Static Reference Rewriter | 画像・JS・CSSなどの静的コンテンツをクッキーレスドメインから取得するようにhtml内のURLをリライトする | |
☆ | Utils & APIs / ACS AEM Commons Utils APIs | AEM開発に便利なJava Utilityパッケージ(com.adobe.acs.commons.util)を提供する |
Utils & APIs / Delegating Servlet | sling:resourceTypeの参照先を別のsling:resourceTypeに偽装させるサーブレットを提供する | |
Utils & APIs / NodeExists QueryBuilder Predicate | QueryBuilderで、Nodeの存在チェックができるPredicateが使えるようになる | |
Vanity Path Rewrite Mapper | DispatcherからのVanity Pathのリクエストを賢く解決する | |
Named Transform Image Servlet | AEM上の画像に対して、特定の変換(リサイズ・回転・グレースケール化など)を行なった画像を返すサーブレットを提供する | |
Automatic Package Replication | 指定のパッケージをレプリケートをスケジュールによる実行、イベントトリガーによる実行、もしくはワークフロープロセスにより実行する | |
Fast Action Manager | 大量の処理(ワークフローの実行、レプリケーション、…など)をOSに負荷をかけないように賢く管理・処理する | |
WCM Components / Audio Component | 音声ファイルをHTML5でサポートされているフォーマットに変換するプロセス | |
HTTP Cache | OOTBのin-memory HTTP CacheやDispatcherではカバーできないような細かい条件でin-memoryキャッシュを設定する | |
Dispatcher TTL | Dispatcherと組み合わせてキャッシュの有効期限を細かく制御する | |
☆ | Ensure Oak Index | /apps内に置いたOakインデックスの設定をデプロイ時に/oak:indexに配置する |
Synthetic Workflow | ワークフローをJavaコード内で実行する | |
OSGi Component & Bundle Disablers | AEM(再)起動時に、指定したOSGiコンポーネント・バンドルを起動しないように設定する | |
JSON Event Logger | OSGiイベントをjson形式でログ出力する | |
Sling Models Injectors / Child Resource From Request Injector | @ChildResourceが使えないケースでも使えるアノテーション@ChildResourceFromRequestを提供する | |
Sling Models Injectors / Hierarchical Page Property Sling Models Injector | 親にさかのぼってページプロパティを取得できるアノテーション@HierarchicalPagePropertyを提供する | |
Sling Models Injectors / I18n Sling Models Injector | i18nを簡単に適用できるアノテーション@I18Nを提供する | |
Sling Models Injectors / Shared Component Properties Injector | 「Shared Component Properties」を利用するときに便利なアノテーション@SharedValueMapValueを提供する | |
Sling Models Injectors / JsonValueMapValue Sling Models Injector | プロパティにJSON形式で保存されている値を扱いやすくするアノテーション@JsonValueMapValueを提供する | |
Sling Models Injectors / AEM Objects Sling Models Injector | <cq:defineObjects/>で呼び出していたようなオブジェクトをInjectできるアノテーション@AemObjectを提供する | |
ETag Support | Entity Tagによるコンテンツの同一性チェックをする | |
E-mail / Stylesheet Inliner | ページで読み込まれているCSSをインライン化する | |
E-mail / Email API | メールを送ることができるJava APIを提供する | |
Sitemap Generator | サイトマップを生成する | |
☆ | Dispatcher Flush Rules | statレベルによる判定ではできないようなDispatcher Flush Ruleを設定する |
全般便利ツール
☆ | 機能名 | 概要 |
---|---|---|
Quickly | AEM内のページ移動を簡単にするUIを提供する | |
☆ | AEM Environment Indicator | いま見ているAEM環境がどの環境(開発、本番、…、etc)であるかがわかるタブを表示する |
インテグレーション関連
☆ | 機能名 | 概要 |
---|---|---|
Marketo Form | Marketoと連携する | |
Watson Speech to Text Integration | IBM Watsonとの連携 | |
Syslog Integration | Syslogサーバーとの連携 | |
AEM Cloud Services / Typekit Cloud Service | Typekit Cloud Serviceとの連携 | |
AEM Cloud Services / ShareThis Cloud Services | Share This Cloud Serviceとの連携 | |
Social Integrations / Twitter Adapter Factory | Twitterとの連携 | |
Social Integrations / LinkedIn Scribe Integration | LinkedInとの連携 |