public void start() {
		server = new Server();
		server.setPort(port);
		server.setNoSystemExit(true);
		server.setDatabasePath(0, path);
		server.setDatabaseName(0, name);
		server.setErrWriter(new PrintWriter(System.out));
		server.setLogWriter(new PrintWriter(System.out));
		server.setSilent(true);
		server.setTrace(false);
		server.start();
		int maxWait = 5000 * 2;
		int currentWait = 0;
		while (server.getState() != ServerConstants.SERVER_STATE_ONLINE) {
			LOG.log(Level.INFO, "Starting hsqldb-server. State: " + server.getStateDescriptor());
			LOG.log(Level.INFO, name);
			LOG.log(Level.INFO, path);
			LOG.log(Level.INFO, "Waiting 5 seconds ...");
			try {
				Thread.sleep(5000);
				currentWait += 5000;
			} catch (InterruptedException interrupt) {
				LOG.log(Level.WARNING, "Start interrupted.", interrupt);
				break;
			}
			if(currentWait >= maxWait) {
				LOG.info("Giving up... ;-)");
				break;
			}
		}
		if(server.getState() == ServerConstants.SERVER_STATE_ONLINE) {
			LOG.log(Level.INFO, "Started!");
		}
	}