|
|
|
@ -18,10 +18,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
import java.io.File; |
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.io.InputStream; |
|
|
|
|
import java.util.Enumeration; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Map; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.concurrent.ExecutionException; |
|
|
|
|
import java.util.concurrent.Future; |
|
|
|
|
import java.util.function.Predicate; |
|
|
|
@ -107,12 +104,18 @@ public class UpdaterImpl implements UpdateHelper { |
|
|
|
|
|
|
|
|
|
private void processArchive(File file, Predicate filter) throws CommonException { |
|
|
|
|
|
|
|
|
|
//AddrObj - first
|
|
|
|
|
//House - next
|
|
|
|
|
//Other - last
|
|
|
|
|
|
|
|
|
|
try(final ZipFile zipFile = new ZipFile(file)){ |
|
|
|
|
|
|
|
|
|
log.debug("Process Zip file"); |
|
|
|
|
|
|
|
|
|
final Enumeration<ZipArchiveEntry> entries = zipFile.getEntries(); |
|
|
|
|
|
|
|
|
|
SortedMap<UnmarshallerParameters, ZipArchiveEntry> map = new TreeMap<>((l,r) -> r.getPriority() - l.getPriority()); |
|
|
|
|
|
|
|
|
|
while (entries.hasMoreElements()){ |
|
|
|
|
|
|
|
|
|
final ZipArchiveEntry entry = entries.nextElement(); |
|
|
|
@ -123,15 +126,22 @@ public class UpdaterImpl implements UpdateHelper { |
|
|
|
|
final UnmarshallerParameters config = catalog.getByPrefix(name); |
|
|
|
|
|
|
|
|
|
if(config!=null) { |
|
|
|
|
try (InputStream is = zipFile.getInputStream(entry)) { |
|
|
|
|
log.debug("Process '{}' in zip", name); |
|
|
|
|
unmarshaller.process(is, config, filter); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
log.debug("Queue {} for processing", name); |
|
|
|
|
map.put(config, entry); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
log.debug("Skip '{}'", name); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
map.forEach((config, entry) -> { |
|
|
|
|
try (InputStream is = zipFile.getInputStream(entry)) { |
|
|
|
|
log.debug("Process '{}' in zip", entry.getName()); |
|
|
|
|
unmarshaller.process(is, config, filter); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
log.debug("Completed Zip file"); |
|
|
|
|
|
|
|
|
|
} catch (IOException e) { |
|
|
|
|