docs: public Context importContext (File file) throws ConfigurationException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
  		ZapXmlConfiguration config = new ZapXmlConfiguration(file);
  		
  		String name = config.getString(Context.CONTEXT_CONFIG_NAME);
  		validateContextName(name);
  
  		Context c = createContext(name);
  
  		c.setDescription(config.getString(Context.CONTEXT_CONFIG_DESC));
  		c.setInScope(config.getBoolean(Context.CONTEXT_CONFIG_INSCOPE));
  		for (Object obj : config.getList(Context.CONTEXT_CONFIG_INC_REGEXES)) {
  			c.addIncludeInContextRegex(obj.toString());
  		}
  		for (Object obj : config.getList(Context.CONTEXT_CONFIG_EXC_REGEXES)) {
  			c.addExcludeFromContextRegex(obj.toString());
  		}
  
  		TechSet techSet = new TechSet();
  		for (Object obj : config.getList(Context.CONTEXT_CONFIG_TECH_INCLUDE)) {
  			techSet.include(new Tech(obj.toString()));
  		}
  		for (Object obj : config.getList(Context.CONTEXT_CONFIG_TECH_EXCLUDE)) {
  			techSet.exclude(new Tech(obj.toString()));
  		}
  		c.setTechSet(techSet );
  		
  		String urlParserClass = config.getString(Context.CONTEXT_CONFIG_URLPARSER_CLASS);
  		if (urlParserClass == null) {
  			// Can happen due to a bug in 2.4.0 where is was saved using the wrong name :(
  			urlParserClass = config.getString(Context.CONTEXT_CONFIG_URLPARSER);
  		}
  		Class<?> cl = ExtensionFactory.getAddOnLoader().loadClass(urlParserClass);
  		if (cl == null) {
  			throw new ConfigurationException("Failed to load URL parser for context " + urlParserClass);
  		} else {
  			ParameterParser parser = (ParameterParser) cl.getConstructor().newInstance();
      		parser.init(config.getString(Context.CONTEXT_CONFIG_URLPARSER_CONFIG));
      		parser.setContext(c);
  	    	c.setUrlParamParser(parser);
  		}
  
  		String postParserClass = config.getString(Context.CONTEXT_CONFIG_POSTPARSER_CLASS);
  		String postParserConfig = config.getString(Context.CONTEXT_CONFIG_POSTPARSER_CONFIG);
  		if (postParserClass == null) {
  			// Can happen due to a bug in 2.4.0 where is was saved using the wrong name :(
  			postParserClass = config.getString(urlParserClass);
  			postParserConfig = config.getString(Context.CONTEXT_CONFIG_URLPARSER_CONFIG);
  		}
  		cl = ExtensionFactory.getAddOnLoader().loadClass(postParserClass);
  		if (cl == null) {
  			throw new ConfigurationException("Failed to load POST parser for context " + postParserClass);
  		} else {
  			ParameterParser parser = (ParameterParser) cl.getConstructor().newInstance();
      		parser.init(postParserConfig);
      		parser.setContext(c);
  	    	c.setPostParamParser(parser);
  		}
  		for (Object obj : config.getList(Context.CONTEXT_CONFIG_DATA_DRIVEN_NODES)) {
  			c.addDataDrivenNodes(new StructuralNodeModifier(obj.toString()));
  		}
  
  		model.importContext(c, config);
  		
  		c.restructureSiteTree();
  		
  		addContext(c);
  		saveContext(c);
  		return c;
  	}