Add skipping folder

This commit is contained in:
Victor Shcherb 2012-01-03 09:56:44 +01:00
parent 7cb98bf761
commit 6ee39a8887
3 changed files with 24 additions and 9 deletions

View file

@ -69,7 +69,7 @@ public class IndexBatchCreator {
// process atributtes
boolean skipGeneratedIndexes = false;
File skipExistingIndexes;
MapZooms mapZooms = null;
Integer zoomWaySmoothness = null;
MapRenderingTypes types = MapRenderingTypes.getDefault();
@ -115,6 +115,14 @@ public class IndexBatchCreator {
}
}
boolean skipExisting = false;
for (int i = 0; i < args.length; i++) {
if ("--skip-existing".equals(args[i])) {
skipExisting = true;
break;
}
}
try {
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(stream);
@ -123,7 +131,7 @@ public class IndexBatchCreator {
name = args[1];
regions = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(regionsStream);
}
creator.runBatch(doc, regions);
creator.runBatch(doc, regions, skipExisting);
} catch (Exception e) {
System.out.println("XML configuration file could not be read from " + name);
e.printStackTrace();
@ -133,14 +141,17 @@ public class IndexBatchCreator {
}
}
public void runBatch(Document doc, Document regions) throws SAXException, IOException, ParserConfigurationException{
public void runBatch(Document doc, Document regions, boolean skipExisting) throws SAXException, IOException, ParserConfigurationException{
NodeList list = doc.getElementsByTagName("process");
if(list.getLength() != 1){
throw new IllegalArgumentException("You should specify exactly 1 process element!");
}
Element process = (Element) list.item(0);
IndexCreator.REMOVE_POI_DB = true;
skipGeneratedIndexes = Boolean.parseBoolean(process.getAttribute("skipGeneratedIndexes"));
String file = process.getAttribute("skipExistingIndexesAt");
if(file != null && new File(file).exists() && skipExisting){
skipExistingIndexes = new File(file);
}
wget = process.getAttribute("wget");
indexPOI = Boolean.parseBoolean(process.getAttribute("indexPOI"));
@ -277,10 +288,14 @@ public class IndexBatchCreator {
String regionName = prefix + name;
String fileName = Algoritms.capitalizeFirstLetterAndLowercase(prefix + name + suffix);
File bmif = new File(indexDirFiles, fileName + "_" + IndexConstants.BINARY_MAP_VERSION + IndexConstants.BINARY_MAP_INDEX_EXT);
if(skipGeneratedIndexes && bmif.exists()){
if (skipExistingIndexes != null) {
File bmif = new File(skipExistingIndexes, fileName + "_" + IndexConstants.BINARY_MAP_VERSION
+ IndexConstants.BINARY_MAP_INDEX_EXT);
File bmifz = new File(skipExistingIndexes, bmif.getName() + ".zip");
if (bmif.exists() || bmifz.exists()) {
continue;
}
}
File toSave = downloadFile(url, fileName, alreadyGeneratedFiles);
if (toSave != null) {
generateIndex(toSave, regionName, regionSpecificData, alreadyGeneratedFiles);

View file

@ -13,7 +13,7 @@
-->
<!-- zoomWaySmoothness - 1-4, typical mapZooms - 8-10;11-12;13-14;15 -->
<process directory_for_osm_files="/home/..." directory_for_index_files="/home/..." directory_for_generation="/home/..."
skipGeneratedIndexes="true" indexPOI="true" indexMap="true" indexTransport="true" indexAddress="true">
skipExistingIndexesAt="/home/..." indexPOI="true" indexMap="true" indexTransport="true" indexAddress="true">
<!-- Add wget="C:/Program Files/GNUWin32/bin/wget.exe" to process, to use wget for download.
On linux systems if wget is in your path it can be wget="wget" or you can make own script with wget command:
wget="/path/to/script/wget.sh"

View file

@ -13,7 +13,7 @@
-->
<!-- zoomWaySmoothness - 1-4, typical mapZooms - 8-10;11-12;13-14;15 -->
<process directory_for_osm_files=".work/osm" directory_for_index_files="/var/lib/jenkins/indexes" directory_for_generation=".work"
skipGeneratedIndexes="true" indexPOI="true" indexMap="true" indexTransport="true" indexAddress="true">
skipExistingIndexesAt="/var/lib/jenkins/indexes/uploaded" indexPOI="true" indexMap="true" indexTransport="true" indexAddress="true">
<!-- Add wget="C:/Program Files/GNUWin32/bin/wget.exe" to process, to use wget for download.
On linux systems if wget is in your path it can be wget="wget" or you can make own script with wget command:
wget="/path/to/script/wget.sh"