code: public static AgentProperties readIaasProperties( Properties props ) throws IOException {
  
  		// Deal with files transferred through user data.
  		// Store files in the system's temporary directory.
  		// In Karaf, this will point to the "data/tmp" directory.
  		File msgResourcesDirectory = new File( System.getProperty( "java.io.tmpdir" ), "roboconf-messaging" );
  		props = UserDataHelpers.processUserData( props, msgResourcesDirectory );
  
  		// Given #213, we have to replace some characters escaped by AWS (and probably Openstack too).
  		AgentProperties result = new AgentProperties();
  		result.setApplicationName( updatedField( props, UserDataHelpers.APPLICATION_NAME ));
  		result.setScopedInstancePath( updatedField( props, UserDataHelpers.SCOPED_INSTANCE_PATH ));
  		result.setDomain( updatedField( props, UserDataHelpers.DOMAIN ));
  
  		final Map<String, String> messagingConfiguration = new LinkedHashMap<> ();
  		List<String> toSkip = Arrays.asList( UserDataHelpers.APPLICATION_NAME, UserDataHelpers.DOMAIN, UserDataHelpers.SCOPED_INSTANCE_PATH );
  		for( String k : props.stringPropertyNames()) {
  			if( ! toSkip.contains( k )) {
  				// All other properties are considered messaging-specific.
  				messagingConfiguration.put(k, updatedField( props, k ));
  			}
  		}
  
  		result.setMessagingConfiguration( Collections.unmodifiableMap( messagingConfiguration ));
  		return result;
  	}
docs: Creates a new bean from properties.
  @param props non-null properties
  @return a non-null bean
  @throws IOException if there were files that failed to be written