Propiedades de configuración de OSGi
Aprenda el enfoque de bajo nivel del uso de pares de clave/valor de configuración OSGi para definir y exponer los datos de configuración OSGi a los servicios OSGi.
Recursos
Código
ActivitiesImpl.java
/core/src/main/java/com/adobe/aem/wknd/examples/core/adventures/impl/ActivitiesImpl.java
package com.adobe.aem.wknd.examples.core.adventures.impl;
import java.util.Map;
import java.util.Random;
import com.adobe.aem.wknd.examples.core.adventures.Activities;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.util.converter.Converters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Component(
service = { Activities.class },
property = {
"activities=Hiking",
"activities=Jogging",
"activities=Walking",
"random.seed:Integer=10"
}
)
public class ActivitiesImpl implements Activities {
private static final Logger log = LoggerFactory.getLogger(ActivitiesImpl.class);
private String[] activities;
private Random random;
/**
* @return the name of a random WKND adventure activity
*/
public String getRandomActivity() {
int randomIndex = random.nextInt(activities.length);
return activities[randomIndex];
}
@Activate
protected void activate(Map<String, Object> properties) {
this.activities = Converters.standardConverter()
.convert(properties.get("activities"))
.defaultValue(new String[] {
"Default Activity 1",
"Default Activity 2"
})
.to(String[].class);
final Integer randomSeed = Converters.standardConverter()
.convert(properties.get("random.seed"))
.defaultValue(25)
.to(Integer.class);
this.random = new Random(randomSeed);
log.info("Activated ActivitiesImpl with activities [ {} ]", String.join(", ", this.activities));
}
@Deactivate
protected void deactivate() {
log.info("ActivitiesImpl has been deactivated!");
}
}
com.adobe.aem.wknd.examples.core.adventures.impl.ActivitiesImpl.cfg.json
/ui.config/src/main/content/jcr_root/apps/wknd-examples/osgiconfig/config/com.adobe.aem.wknd.examples.core.adventures.impl.ActivitiesImpl.cfg.json
{
"activities": [ "Skateboarding", "Surfing", "Skiing" ],
"random.seed:Integer": 32
}
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69