All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bazaarvoice.emodb.plugin.PluginConfiguration Maven / Gradle / Ivy

The newest version!
package com.bazaarvoice.emodb.plugin;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableMap;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.Map;

/**
 * Configuration object for an EmoDB plugin as intended to be used in the server's yaml configuration.  The
 * configuration has two components:
 *
 * 
    *
  1. The fully-qualified plugin implementation class.
  2. *
  3. If necessary, a yaml view of the implementation class' constructor configuration object.
  4. *
* * For example, the following plugin com.x.y.SamplePlugin, and its configuration object, com.x.y.SamplePluginConfig: * * * public class SamplePlugin implements ServerStartedListener { * public void init(Environment environment, PluginServerMetadata metadata, SamplePluginConfig config) { * ... * } * * ... * } * * public class SamplePluginConfig() { * @JsonProperty private String name; * @JsonProperty private double rate; * } * * * The following yaml could be used to provide and instantiate this plugin: * * * serverStartedListeners: * - class: com.x.y.SamplePlugin * config: * name: SampleName * rate: 0.5 * */ public class PluginConfiguration { @Valid @NotNull @JsonProperty ("class") private String _className; @JsonProperty ("config") private Map _config = ImmutableMap.of(); public String getClassName() { return _className; } public void setClassName(String className) { _className = className; } public Map getConfig() { return _config; } public void setConfig(Map config) { _config = config; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy