private void clearUnknownProperties(
     final DeploymentReflectionIndex reflectionIndex,
     final Class<?> dataSourceClass,
     final Map<String, String> props) {
   final Iterator<Map.Entry<String, String>> it = props.entrySet().iterator();
   while (it.hasNext()) {
     final Map.Entry<String, String> entry = it.next();
     String value = entry.getKey();
     if (value == null || "".equals(value)) {
       it.remove();
     } else {
       StringBuilder builder = new StringBuilder("set").append(entry.getKey());
       builder.setCharAt(3, Character.toUpperCase(entry.getKey().charAt(0)));
       final String methodName = builder.toString();
       final Class<?> paramType = value.getClass();
       final MethodIdentifier methodIdentifier =
           MethodIdentifier.getIdentifier(void.class, methodName, paramType);
       final Method setterMethod =
           ClassReflectionIndexUtil.findMethod(reflectionIndex, dataSourceClass, methodIdentifier);
       if (setterMethod == null) {
         it.remove();
         ConnectorLogger.DS_DEPLOYER_LOGGER.methodNotFoundOnDataSource(
             methodName, dataSourceClass);
       }
     }
   }
 }
 private void setProperty(
     final DeploymentReflectionIndex deploymentReflectionIndex,
     final Class<?> dataSourceClass,
     final Map<String, String> properties,
     final String name,
     final Object value) {
   // Ignore defaulted values
   if (value == null) return;
   if (value instanceof String && "".equals(value)) return;
   if (value instanceof Integer && ((Integer) value).intValue() == -1) return;
   StringBuilder builder = new StringBuilder("set").append(name);
   builder.setCharAt(3, Character.toUpperCase(name.charAt(0)));
   final String methodName = builder.toString();
   final Class<?> paramType = value.getClass();
   MethodIdentifier methodIdentifier =
       MethodIdentifier.getIdentifier(void.class, methodName, paramType);
   Method setterMethod =
       ClassReflectionIndexUtil.findMethod(
           deploymentReflectionIndex, dataSourceClass, methodIdentifier);
   if (setterMethod != null) {
     properties.put(name, value.toString());
   } else if (paramType == Integer.class) {
     // if this is an Integer also look for int setters (WFLY-1364)
     methodIdentifier = MethodIdentifier.getIdentifier(void.class, methodName, int.class);
     setterMethod =
         ClassReflectionIndexUtil.findMethod(
             deploymentReflectionIndex, dataSourceClass, methodIdentifier);
     if (setterMethod != null) {
       properties.put(name, value.toString());
     }
   } else if (paramType == Boolean.class) {
     methodIdentifier = MethodIdentifier.getIdentifier(void.class, methodName, boolean.class);
     setterMethod =
         ClassReflectionIndexUtil.findMethod(
             deploymentReflectionIndex, dataSourceClass, methodIdentifier);
     if (setterMethod != null) {
       properties.put(name, value.toString());
     }
   }
 }