code: private int getCommonPart(List<AggregationGroup> groups) {
  		if(groups.size() < 2) return 0;
  		
  		for(int i = 0; i < groups.size(); i++) {
  			if(groups.get(i).filter != null) return 0;
  		}
  		
  		int itemsCount = groups.get(0).items.size() - 1;
  		for(int i = 1; i < groups.size(); i++) {
  			itemsCount = Math.min(itemsCount, groups.get(i).items.size() - 1);
  		}
  		if(itemsCount <= 0) return 0;
  		
  		int itemIndex = 0;
  		for(; itemIndex < itemsCount; itemIndex++) {
  			boolean eq = true;
  			AggregationGroupItem item = groups.get(0).items.get(itemIndex);
  			if(item.xlinkContext != null) break;
  			for(int i = 1; i < groups.size(); i++) {
  				AggregationGroupItem item2 = groups.get(i).items.get(itemIndex);
  				if(!item.equals(item2) || item.xlinkContext != null) {
  					eq = false;
  					break;
  				}
  			}
  			if(!eq) break;
  		}
  		if(itemIndex > 0) {
  			LOG.info("Found common path for groups: " + itemIndex);
  		}
  		return itemIndex;
  	}
docs: Support for common paths in groups