@Activate
  protected final void activate(final Map<String, String> properties) throws Exception {
    this.transformName = PropertiesUtil.toString(properties.get(PROP_NAME), DEFAULT_TRANSFORM_NAME);

    log.info("Registering Named Image Transfomer: {}", this.transformName);

    final Map<String, String> map =
        OsgiPropertyUtil.toMap(
            PropertiesUtil.toStringArray(properties.get(PROP_TRANSFORMS), new String[] {}),
            ":",
            true,
            null);

    for (final Map.Entry<String, String> entry : map.entrySet()) {
      final String[] params = StringUtils.split(entry.getValue(), "&");
      final Map<String, String> values = OsgiPropertyUtil.toMap(params, "=", true, null);

      log.debug("ImageTransform params for [ {} ] ~> {}", entry.getKey(), values);

      // Order matters so use a LinkedHashMap
      this.transforms.put(entry.getKey(), TypeUtil.toValueMap(values));
    }

    log.info("Named Images Transforms: {}", this.transforms.size());
    for (final Map.Entry<String, ValueMap> entry : this.transforms.entrySet()) {
      log.info("{} ~> {}", entry.getKey(), entry.getValue());
    }
  }
 @Activate
 public void activate(Map<String, Object> properties) {
   defaultHandler = new DefaultSparseHandler();
   topics =
       PropertiesUtil.toStringArray(properties.get(PROP_TOPICS), StoreListener.DEFAULT_TOPICS);
   for (String topic : topics) {
     contentIndexer.addImmediateHandler(topic, this);
     contentIndexer.addHandler(topic, this);
   }
 }
 private Map<String, Object> getLegacyProperties() {
   Map<String, Object> map = new HashMap<String, Object>();
   map.put(LaunchLiveActionBase.PROP_RANK, props.get(LaunchLiveActionBase.PROP_RANK));
   map.put(
       LaunchLiveActionBase.PROP_PROPS,
       PropertiesUtil.toStringArray(props.get(LaunchLiveActionBase.PROP_PROPS)));
   map.put(LaunchLiveActionBase.PROP_PARAMETER, props.get(LaunchLiveActionBase.PROP_PARAMETER));
   map.put(LaunchLiveActionBase.PROP_TITLE, props.get(LaunchLiveActionBase.PROP_TITLE));
   map.put(LaunchLiveActionBase.ACTION_TYPE, props.get(LaunchLiveActionBase.ACTION_TYPE));
   return map;
 }
  @Activate
  @Modified
  protected void activate(ComponentContext context) {

    props = context.getProperties();

    // build configuration of the excluded items

    final String[] pageProperties =
        PropertiesUtil.toStringArray(
            context.getProperties().get(PARAMETER_EXCLUDED_PROPERTIES), EMPTY_CONFIG);

    final String[] paragraphItems =
        PropertiesUtil.toStringArray(
            context.getProperties().get(PARAMETER_EXCLUDED_PARAGRAPH_ITEMS), EMPTY_CONFIG);

    final String[] nodeTypes =
        PropertiesUtil.toStringArray(
            context.getProperties().get(PARAMETER_EXCLUDED_NODE_TYPES), EMPTY_CONFIG);

    final List<String> reservedProperties =
        Arrays.asList(
            PropertiesUtil.toStringArray(
                context.getProperties().get(PARAMETER_RESERVED_PROPERTIES), EMPTY_CONFIG));

    final Set<String> excludedPageProperties = new HashSet<String>(Arrays.asList(pageProperties));
    excludedPageProperties.addAll(reservedProperties);

    final Set<String> excludedParagraphItems = new HashSet<String>(Arrays.asList(paragraphItems));
    excludedParagraphItems.addAll(reservedProperties);

    final Set<String> excludedNodeTypes = new HashSet<String>(Arrays.asList(nodeTypes));

    exclusionConfig =
        new LaunchExclusionConfig(
            excludedPageProperties, excludedParagraphItems, excludedNodeTypes);
  }