public static void main (String[] arg){
		PropertyConfigurator.configure("log4j.properties");
		VersionReader vr = new VersionReader();
		CRFVersion v1,v2;
		long start = System.currentTimeMillis();
		OutputStreamWriter fw = null; 
		boolean isLogging = false;
		try {
			Properties p = new Properties();
			p.load(new FileInputStream("config.properties"));
			String[] files = p.getProperty("versions").split(";");
			isLogging =Boolean.parseBoolean(p.getProperty("isLogging"));
			if (isLogging){
			Date d = new Date();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd-hh_mm");
			FileOutputStream st =new FileOutputStream("test.log");
			fw = new OutputStreamWriter(st,"UTF-8");
			
			}
		v1 = vr.readVersion(files[0]);
		for (int i = 1; i<files.length;i++){
			v2 = vr.readVersion(files[i]);
			DiffCalculator dc = new DiffCalculator ();
			dc.calculateDiff(v1, v2);
			float changeRatio = 1-(float)dc.getEqualItems().size()/(float)v2.getItems().size();
			System.out.println("compare: "+ files[i-1]+" and "+files[i]);
			System.out.println("items of v1: "+v1.getItems().size());
			System.out.println("items of v2: "+v2.getItems().size());
			System.out.println("equal Items: "+dc.getEqualItems().size());
			System.out.println("deleted items "+ dc.getDeletedItems().size() );
			System.out.println("added Items "+dc.getAddedItems().size());
			System.out.println("modified items:"+dc.getModifiedItems().size());
			System.out.println ("modified items:" );
			System.out.println("elapsed time: "+ (System.currentTimeMillis()-start));
			
			
			if (isLogging){
				
				fw.append(System.getProperty("line.separator")+"compare: "+ files[i-1]+" and "+files[i]+System.getProperty("line.separator"));
				fw.append("items of v1: "+v1.getItems().size()+System.getProperty("line.separator"));
				fw.append("items of v2: "+v2.getItems().size()+System.getProperty("line.separator"));
				fw.append("equal Items: "+dc.getEqualItems().size()+System.getProperty("line.separator"));
				fw.append("deleted items "+ dc.getDeletedItems().size()+System.getProperty("line.separator"));
				fw.append("added Items "+dc.getAddedItems().size()+System.getProperty("line.separator"));
				fw.append("modified items:"+dc.getModifiedItems().size()+System.getProperty("line.separator"));
				fw.append("------------------added Items--------------------"+System.getProperty("line.separator"));
				fw.append(dc.getAddedItems().toString()+System.getProperty("line.separator"));
				fw.append("----------------deleted Items--------------------"+System.getProperty("line.separator"));
				fw.append(dc.getDeletedItems().toString()+System.getProperty("line.separator"));
				fw.append("---------------modified Items--------------------"+System.getProperty("line.separator"));
			}
			
			for (Entry<String,HashMap<String,PropertyMapping>>e :dc.getModifiedItems().entrySet()){
				if (isLogging){
					fw.append(e.getKey()+"-"+dc.getOldNewItemMap().get(v1.getItems().get(e.getKey())).getItemLabel()
					+System.getProperty("line.separator")+"properties:"+
			System.getProperty("line.separator")+e.getValue().toString()+System.getProperty("line.separator"));
				}
			}
			v1 =v2;	
			}
		if (isLogging){
			fw.close();
		}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return;
		}
		
	}