`aem.events_osgi_mapping` enrich xdm Asset to add DamAsset metadata
- Langage dominant
- Java
- Étoiles
- 7
- Forks
- 22
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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 +
'}';
}
}
```
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par localiser l’implémentation de aem.events_osgi_mapping et le point d’entrée existant du mapping de XDM Asset. Examinez comment les métadonnées des assets AEM sont obtenues, puis définissez la whitelist de métadonnées et le mapping DamAsset décrits dans l’issue. Le travail est terminé lorsque le XDM asset inclut les métadonnées DamAsset autorisées sans inclure de valeurs trop volumineuses ou exclues.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- api
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100