code: public static ApplicationTemplateDescriptor load( Properties properties ) {
  
  		ApplicationTemplateDescriptor result = new ApplicationTemplateDescriptor();
  
  		// Properties with legacy
  		result.name = getLegacyProperty( properties, APPLICATION_NAME, null );
  		result.description = getLegacyProperty( properties, APPLICATION_DESCRIPTION, null );
  		result.version = getLegacyProperty( properties, APPLICATION_VERSION, null );
  		result.dslId = getLegacyProperty( properties, APPLICATION_DSL_ID, null );
  
  		// Unchanged properties
  		result.graphEntryPoint = properties.getProperty( APPLICATION_GRAPH_EP, null );
  		result.instanceEntryPoint = properties.getProperty( APPLICATION_INSTANCES_EP, null );
  		result.externalExportsPrefix = properties.getProperty( APPLICATION_EXTERNAL_EXPORTS_PREFIX, null );
  
  		// Exports
  		final Pattern pattern = Pattern.compile(
  				"([^=\\s]+)\\s+" + APPLICATION_EXTERNAL_EXPORTS_AS + "\\s+([^=\\s]+)",
  				Pattern.CASE_INSENSITIVE );
  
  		String rawExports = properties.getProperty( APPLICATION_EXTERNAL_EXPORTS, "" );
  		for( String rawExport : Utils.splitNicely( rawExports, "," )) {
  			Matcher m = pattern.matcher( rawExport );
  			if( m.matches())
  				result.externalExports.put( m.group( 1 ), m.group( 2 ));
  			else
  				result.invalidExternalExports.add( rawExport );
  		}
  
  		// Tags
  		String rawTags = properties.getProperty( APPLICATION_TAGS, "" );
  		result.tags.addAll( Utils.splitNicely( rawTags, "," ));
  
  		return result;
  	}
docs: Loads an application descriptor.
  @param properties a properties object
  @return an application descriptor (not null)