adobe / adobe/aio-lib-java

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

Ouverte
#90 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.