code: public void setProperties(Dictionary<?, ?> properties) throws ConfigurationException {
          List<String> newArgumentList = new ArrayList<String>();
  
          if (properties != null) {
              for (Enumeration<?> keysEnum = properties.keys(); keysEnum.hasMoreElements();) {
                  String key = (String) keysEnum.nextElement();
                  Object val = properties.get(key);
                  if (val instanceof String) {
                  	String value = (String) val;
                      if(PropertyValueEncryptionUtils.isEncryptedValue(value)) {
                          StandardPBEStringEncryptor enc = new StandardPBEStringEncryptor();
                          EnvironmentStringPBEConfig env = new EnvironmentStringPBEConfig();
                          env.setProvider(new BouncyCastleProvider());
                          env.setProviderName(PROVIDER_NAME);
                          env.setAlgorithm(ALGORITHM);
                          env.setPasswordEnvName(PASSWORD_ENV_NAME);
                          enc.setConfig(env);
                          val = PropertyValueEncryptionUtils.decrypt(value, enc);
                      }
                      String strval = convertArgument(key, (String)val);
                      if (strval != null) {
                          newArgumentList.add(strval);
                      }
                  } else {
                      throw new ConfigurationException(key, "Value is not of type String.");
                  }
              }
          }
          argumentList = newArgumentList;
          configAvailable.countDown();
      }
docs: Back this <code>Configuration</code>  by the given properties from ConfigurationAdmin.
  
  @param properties the properties from ConfigurationAdmin, may be <code>null</code>.
  @throws ConfigurationException thrown if the property values are not of type String