public TestDriver(String[] args) {
		processProgramParameters(args);
		System.out.print("Reading Test Driver data...");
		System.out.flush();
		if (doSQL)
			parameterPool = new SQLParameterPool(new File(resourceDir), seed);
		else {
			if (updateFile == null)
				parameterPool = new LocalSPARQLParameterPool(new File(
						resourceDir), seed);
			else
				parameterPool = new LocalSPARQLParameterPool(new File(
						resourceDir), seed, new File(updateFile));
		}
		System.out.println("done");
		
		if (sparqlEndpoint != null && !multithreading) {
		    if (doSQL)
		        server = new SQLConnection(sparqlEndpoint, timeout,
		                                   driverClassName);
		    else {
		        if ( sparqlEndpoint.startsWith("jena:") )
		            server = new LocalConnectionJena(sparqlEndpoint, sparqlUpdateEndpoint, defaultGraph, timeout);
		        else if ( sparqlEndpoint.startsWith("sesame:") )
		            //server = new LocalConnectionSesame(sparqlEndpoint, defaultGraph, timeout);
		            throw new UnsupportedOperationException("sesame: URLs not supported") ;
		        else
		            server = new SPARQLConnection(sparqlEndpoint,
		                                          sparqlUpdateEndpoint, defaultGraph, timeout);
		    }
		} else if (multithreading) {
			// do nothing
		} else {
			printUsageInfos();
			System.exit(-1);
		}

		TestDriverShutdown tds = new TestDriverShutdown(this);
		Runtime.getRuntime().addShutdownHook(tds);
	}