adobe / adobe/aio-lib-java

`aem.events_osgi_mapping` enrich xdm Asset to add DamAsset metadata

オープン
#90 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
7
フォーク
22
PR マージ指標
30日以内にマージされた PR はありません

説明

The challenge would be in white-listing the metadata, as it can be too large.

it could be like this:

```
package package com.adobe.aio.aem.event.xdm.aem;

import com.adobe.xdm.assets.Asset;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import org.apache.sling.api.resource.ValueMap;

@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class DamAsset extends Asset {

Map metadatas;

@JsonIgnore
public void setMetadata(ValueMap valueMap) {
if (valueMap != null) {
metadatas = new HashMap<>();
for (String entry : valueMap.keySet()) {
Object value = valueMap.get(entry);
if (value != null && !entry.startsWith("jcr:") && !(value instanceof GregorianCalendar)
&& !(value.getClass().isArray())) {
metadatas.put(entry, value.toString());
//TODO better filtering with metadata whitelist configuration
}
}
}
}

@JsonProperty("xdmAsset:metadatas")
public Map getMetadata() {
return metadatas;
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
if (!super.equals(o)) {
return false;
}
DamAsset damAsset = (DamAsset) o;
return Objects.equals(metadatas, damAsset.metadatas);
}

@Override
public int hashCode() {
return Objects.hash(super.hashCode(), metadatas);
}

@Override
public String toString() {
return "DamAsset{id='" + this.id + '\'' + ", type='" + this.type + '\'' + ", assetId='"
+ this.getAssetId() + '\'' + ", assetName='" + this.getAssetName() + '\''
+ ", etag='" + this.getEtag()
+ '\'' + ", path='" + this.getPath() + '\'' + ", format='" + this.getFormat() + '\''
+ "metadatas=" + metadatas +
'}';
}
}

```

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、aem.events_osgi_mapping の実装と、既存の XDM Asset マッピングのエントリーポイントを見つけます。AEM アセットのメタデータがどのように取得されるかを確認し、その後、issue で説明されているメタデータのホワイトリストと DamAsset マッピングを定義します。XDM asset に許可された DamAsset メタデータが含まれ、サイズの大きすぎる値や除外された値が含まれていなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
api
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。