Index: servers/xmlrpc_server/xmlrpc_server.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/servers/xmlrpc_server/Attic/xmlrpc_server.module,v
retrieving revision 1.6.2.16
diff -u -r1.6.2.16 xmlrpc_server.module
--- servers/xmlrpc_server/xmlrpc_server.module	10 Jun 2009 17:12:18 -0000	1.6.2.16
+++ servers/xmlrpc_server/xmlrpc_server.module	28 Oct 2009 01:17:22 -0000
@@ -26,19 +26,19 @@
   $callbacks = array();
   foreach (services_get_all() as $method) {
     $args = array();
-    foreach ($method['#args'] as $arg) {
+    foreach ($method['args'] as $arg) {
       if (!is_array($arg)) {
         $args[] = $arg;
       }
       else {
-        $args[] = $arg['#type'];
+        $args[] = $arg['type'];
       }
     }
     $callbacks[] = array(
-      $method['#method'],
+      $method['method'],
       'xmlrpc_server_call_wrapper',
-      array_merge(array($method['#return']), $args),
-      $method['#help']);
+      array_merge(array($method['return']), $args),
+      $method['help']);
   }
   return $callbacks;
 }
Index: services.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/Attic/services.module,v
retrieving revision 1.8.2.92
diff -u -r1.8.2.92 services.module
--- services.module	28 Jun 2009 22:33:46 -0000	1.8.2.92
+++ services.module	28 Oct 2009 01:17:22 -0000
@@ -168,7 +168,9 @@
   // Find which module the server is part of
   foreach (module_implements('server_info') as $module) {
     $info = module_invoke($module, 'server_info');
-    if ($info['#path'] == $server_path) {
+    services_strip_hashes($info);
+
+    if ($info['path'] == $server_path) {
 
       // call the server
       services_set_server_info($module);
@@ -260,15 +262,15 @@
 
   // Check for missing args and identify if arg is required in the hash.
   $hash_parameters = array();
-  foreach ($method['#args'] as $key => $arg) {
-    if (!$arg['#optional']) {
+  foreach ($method['args'] as $key => $arg) {
+    if (!$arg['optional']) {
       if (!is_numeric($args[$key]) and empty($args[$key])) {
         return services_error(t('Missing required arguments.'));
       }
     }
 
     // Key is part of the hash
-    if ($arg['#signed'] == TRUE && variable_get('services_use_key', TRUE)) {
+    if ($arg['signed'] == TRUE && variable_get('services_use_key', TRUE)) {
       if (is_numeric($args[$key]) || !empty($args[$key])) {
         if (is_array($args[$key]) || is_object($args[$key])){
           $hash_parameters[] = serialize($args[$key]);
@@ -283,7 +285,7 @@
     }
   }
 
-  if ($method['#key'] and variable_get('services_use_key', TRUE)) {
+  if ($method['key'] and variable_get('services_use_key', TRUE)) {
     $hash = array_shift($args);
     $domain = array_shift($args);
     $timestamp = array_shift($args);
@@ -315,7 +317,7 @@
 
   // Add additonal processing for methods requiring authentication
   $session_backup = NULL;
-  if ($method['#auth'] and variable_get('services_use_sessid', TRUE)) {
+  if ($method['auth'] and variable_get('services_use_sessid', TRUE)) {
     $sessid = array_shift($args);
     if (empty($sessid)) {
       return services_error(t('Invalid sessid.'));
@@ -324,14 +326,14 @@
   }
 
   // Load the proper file
-  if ($file = $method['#file']) {
+  if ($file = $method['file']) {
     module_load_include($file['file'], $file['module']);
   }
 
   // Check access
-  $access_arguments = isset($method['#access arguments']) ? $method['#access arguments'] : $args;
+  $access_arguments = isset($method['access arguments']) ? $method['access arguments'] : $args;
   // Call default or custom access callback
-  if (call_user_func_array($method['#access callback'], $access_arguments) != TRUE) {
+  if (call_user_func_array($method['access callback'], $access_arguments) != TRUE) {
     return services_error(t('Access denied.'));
   }
 
@@ -342,7 +344,7 @@
   if ($server_info) {
     chdir($server_info->drupal_path);
   }
-  $result = call_user_func_array($method['#callback'], $args);
+  $result = call_user_func_array($method['callback'], $args);
   if ($server_info) {
     chdir($server_root);
   }
@@ -363,89 +365,91 @@
   if (!isset($methods_cache)) {
     $methods = module_invoke_all('service');
 
+    // Clean up hash symbols during API transition.
+    services_strip_hashes($methods);
+
     // api_key arg
     $arg_api_key = array(
-      '#name' => 'hash',
-      '#type' => 'string',
-      '#description' => t('A valid API key.'),
+      'name' => 'hash',
+      'type' => 'string',
+      'description' => t('A valid API key.'),
     );
 
     // sessid arg
     $arg_sessid = array(
-      '#name' => 'sessid',
-      '#type' => 'string',
-      '#description' => t('A valid sessid.'),
+      'name' => 'sessid',
+      'type' => 'string',
+      'description' => t('A valid sessid.'),
     );
 
     // domain arg
     $arg_domain_name = array(
-      '#name' => 'domain_name',
-      '#type' => 'string',
-      '#description' => t('A valid domain for the API key.'),
+      'name' => 'domain_name',
+      'type' => 'string',
+      'description' => t('A valid domain for the API key.'),
     );
 
     $arg_domain_time_stamp = array(
-      '#name' => 'domain_time_stamp',
-      '#type' => 'string',
-      '#description' => t('Time stamp used to hash key.'),
+      'name' => 'domain_time_stamp',
+      'type' => 'string',
+      'description' => t('Time stamp used to hash key.'),
     );
 
     $arg_nonce = array(
-      '#name' => 'nonce',
-      '#type' => 'string',
-      '#description' => t('One time use nonce also used hash key.'),
+      'name' => 'nonce',
+      'type' => 'string',
+      'description' => t('One time use nonce also used hash key.'),
     );
 
     foreach ($methods as $key => $method) {
-
       // set method defaults
-      if (!isset($methods[$key]['#auth'])) {
-        $methods[$key]['#auth'] = TRUE;
+      if (!isset($methods[$key]['auth'])) {
+        $methods[$key]['auth'] = TRUE;
       }
 
-      if (!isset($methods[$key]['#key'])) {
-        $methods[$key]['#key'] = TRUE;
+      if (!isset($methods[$key]['key'])) {
+        $methods[$key]['key'] = TRUE;
       }
 
-      if (!isset($methods[$key]['#access callback'])) {
-        $methods[$key]['#access callback'] = 'user_access';
-        if (!isset($methods[$key]['#access arguments'])) {
-          $methods[$key]['#access arguments'] = array('access services');
+      if (!isset($methods[$key]['access callback'])) {
+        $methods[$key]['access callback'] = 'user_access';
+        if (!isset($methods[$key]['access arguments'])) {
+          $methods[$key]['access arguments'] = array('access services');
         }
       }
 
-      if (!isset($methods[$key]['#args'])) {
-        $methods[$key]['#args'] = array();
+      if (!isset($methods[$key]['args'])) {
+        $methods[$key]['args'] = array();
       }
 
-      if ($methods[$key]['#auth'] and variable_get('services_use_sessid', TRUE)) {
-        $methods[$key]['#args'] = array_merge(array($arg_sessid), $methods[$key]['#args']);
+      if ($methods[$key]['auth'] and variable_get('services_use_sessid', TRUE)) {
+        $methods[$key]['args'] = array_merge(array($arg_sessid), $methods[$key]['args']);
       }
 
-      if ($methods[$key]['#key'] and variable_get('services_use_key', TRUE)) {
-        $methods[$key]['#args'] = array_merge(array($arg_nonce), $methods[$key]['#args']);
-        $methods[$key]['#args'] = array_merge(array($arg_domain_time_stamp), $methods[$key]['#args']);
-        $methods[$key]['#args'] = array_merge(array($arg_domain_name), $methods[$key]['#args']);
-        $methods[$key]['#args'] = array_merge(array($arg_api_key), $methods[$key]['#args']);
+      if ($methods[$key]['key'] and variable_get('services_use_key', TRUE)) {
+        $methods[$key]['args'] = array_merge(array($arg_nonce), $methods[$key]['args']);
+        $methods[$key]['args'] = array_merge(array($arg_domain_time_stamp), $methods[$key]['args']);
+        $methods[$key]['args'] = array_merge(array($arg_domain_name), $methods[$key]['args']);
+        $methods[$key]['args'] = array_merge(array($arg_api_key), $methods[$key]['args']);
       }
 
       // set defaults for args
-      foreach ($methods[$key]['#args'] as $arg_key => $arg) {
+      foreach ($methods[$key]['args'] as $arg_key => $arg) {
         if (is_array($arg)) {
-          if (!isset($arg['#optional'])) {
-            $methods[$key]['#args'][$arg_key]['#optional'] = FALSE;
+          if (!isset($arg['optional'])) {
+            $methods[$key]['args'][$arg_key]['optional'] = FALSE;
           }
         }
         else {
           $arr_arg = array();
-          $arr_arg['#name'] = t('unnamed');
-          $arr_arg['#type'] = $arg;
-          $arr_arg['#description'] = t('No description given.');
-          $arr_arg['#optional'] = FALSE;
-          $methods[$key]['#args'][$arg_key] = $arr_arg;
+          $arr_arg['name'] = t('unnamed');
+          $arr_arg['type'] = $arg;
+          $arr_arg['description'] = t('No description given.');
+          $arr_arg['optional'] = FALSE;
+          $methods[$key]['args'][$arg_key] = $arr_arg;
         }
       }
-      reset($methods[$key]['#args']);
+      reset($methods[$key]['args']);
     }
     $methods_cache = $methods;
   }
@@ -453,6 +457,21 @@
 }
 
 /**
+ * Cleanup function to remove unnecessary hashes from service definitions.
+ */
+function services_strip_hashes(&$array) {
+  foreach ($array as $key => $value) {
+    if (is_array($value)) {
+      services_strip_hashes($array[$key]);
+    }
+    if (strpos($key, '#') === 0) {
+      $array[substr($key, 1)] = $array[$key];
+      unset($array[$key]);
+    }
+  }
+}
+
+/**
  * Menu wildcard loader for browsing Service methods.
  */
 function services_method_load($method) {
@@ -464,7 +483,7 @@
   static $method_cache;
   if (!isset($method_cache[$method_name])) {
     foreach (services_get_all() as $method) {
-      if ($method_name == $method['#method']) {
+      if ($method_name == $method['method']) {
         $method_cache[$method_name] = $method;
         break;
       }
Index: services_admin_browse.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/services/Attic/services_admin_browse.inc,v
retrieving revision 1.5.2.47
diff -u -r1.5.2.47 services_admin_browse.inc
--- services_admin_browse.inc	10 Jun 2009 17:13:16 -0000	1.5.2.47
+++ services_admin_browse.inc	28 Oct 2009 01:17:22 -0000
@@ -36,7 +36,7 @@
   // group namespaces
   $services = array();
   foreach ($methods as $method) {
-    $namespace = drupal_substr($method['#method'], 0, strrpos($method['#method'], '.'));
+    $namespace = drupal_substr($method['method'], 0, strrpos($method['method'], '.'));
     $services[$namespace][] = $method;
   }
 
@@ -45,7 +45,7 @@
       $output .= '<h3>'. $namespace .'</h3>';
       $output .= '<ul>';
       foreach ($methods as $method) {
-        $output .= '<li class="leaf">'. l($method['#method'], 'admin/build/services/browse/'. $method['#method']) .'</li>';
+        $output .= '<li class="leaf">'. l($method['method'], 'admin/build/services/browse/'. $method['method']) .'</li>';
       }
       $output .= '</ul>';
     }
@@ -62,18 +62,18 @@
 
   $output = '';
 
-  $output .= '<h3>'. $method['#method'] .'</h3>';
-  $output .= '<p>'. $method['#help'] .'</p>';
+  $output .= '<h3>'. $method['method'] .'</h3>';
+  $output .= '<p>'. $method['help'] .'</p>';
 
   // List arguments.
-  $output .= '<h3>'. t('Arguments') .' ('. count($method['#args']) .')</h3>';
+  $output .= '<h3>'. t('Arguments') .' ('. count($method['args']) .')</h3>';
   $output .= '<dl id="service-browser-arguments">';
   $count = 0;
-  foreach ($method['#args'] as $arg) {
+  foreach ($method['args'] as $arg) {
     $count++;
-    $output .= '<dt><em class="type">'. $arg['#type'] .'</em><strong class="name">'.
-      $arg['#name'] .'</strong> ('. (($arg['#optional']) ? t('optional') : t('required')) .')</dt>';
-    $output .= '<dd>'. $arg['#description'] .'</dd>';
+    $output .= '<dt><em class="type">'. $arg['type'] .'</em><strong class="name">'.
+      $arg['name'] .'</strong> ('. (($arg['optional']) ? t('optional') : t('required')) .')</dt>';
+    $output .= '<dd>'. $arg['description'] .'</dd>';
   }
 
   $output .= '</dl>';
@@ -101,15 +101,15 @@
   $timestamp = time();
   $nonce = user_password();
   
-  foreach ($method['#args'] as $key => $arg) {      
+  foreach ($method['args'] as $key => $arg) {      
     $form['name'][$key]         = array(
-      '#value' => $arg['#name']
+      '#value' => $arg['name']
     );
     $form['optional'][$key]     = array(
-      '#value' => ($arg['#optional']) ? t('optional') : t('required')
+      '#value' => ($arg['optional']) ? t('optional') : t('required')
     );
 
-    switch ($arg['#name']) {
+    switch ($arg['name']) {
       case 'hash':
         $form['arg'][$key] = array(
           '#title'          => 'Hash',
@@ -151,7 +151,7 @@
         break;
 
       default:
-        if ($arg['#size'] == 'big') {
+        if ($arg['size'] == 'big') {
           $form['arg'][$key] = array(
             '#type'           => 'textarea'
           );
@@ -185,7 +185,7 @@
   global $_services_admin_browse_test_submit_result;
   $method = services_method_get(arg(4));
   $args = services_admin_browse_test_unserialize_args($form_state['values']['arg']);
-  $result = services_method_call($method['#method'], $args);
+  $result = services_method_call($method['method'], $args);
   $_services_admin_browse_test_submit_result = '<pre>'. htmlspecialchars(print_r($result, TRUE)) .'</pre>';
 }
 
@@ -193,8 +193,8 @@
   $method = services_method_get(arg(4));
   $noskip = FALSE;
   // Convert args
-  for ($c = count($method['#args']) - 1; $c >= 0; $c--) {
-    $arg = $method['#args'][$c];
+  for ($c = count($method['args']) - 1; $c >= 0; $c--) {
+    $arg = $method['args'][$c];
     $value = $values[$c];
 
     // Remove empty values from end of array
@@ -204,7 +204,7 @@
     }
     $noskip = TRUE;
 
-    switch ($arg['#type']) {
+    switch ($arg['type']) {
       case 'array' :
         if (empty($value)) {
           $return[$c] = NULL;
