From fa9ec493f28e85a29323fb3bb64b9456b3d1bbb6 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Thu, 11 Oct 2018 16:12:49 -0400 Subject: [PATCH 01/23] initial work on merge feeds for MTC --- .../common/status/MonitorableJob.java | 3 +- .../api/FeedVersionController.java | 13 + .../datatools/manager/jobs/MergeFeedsJob.java | 253 ++++++++++++++++++ .../manager/jobs/MergeProjectFeedsJob.java | 211 +-------------- 4 files changed, 278 insertions(+), 202 deletions(-) create mode 100644 src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java diff --git a/src/main/java/com/conveyal/datatools/common/status/MonitorableJob.java b/src/main/java/com/conveyal/datatools/common/status/MonitorableJob.java index 72cbc13f4..9ad9e438e 100644 --- a/src/main/java/com/conveyal/datatools/common/status/MonitorableJob.java +++ b/src/main/java/com/conveyal/datatools/common/status/MonitorableJob.java @@ -54,7 +54,8 @@ public enum JobType { EXPORT_SNAPSHOT_TO_GTFS, CONVERT_EDITOR_MAPDB_TO_SQL, VALIDATE_ALL_FEEDS, - MERGE_PROJECT_FEEDS + MERGE_PROJECT_FEEDS, + MERGE_FEED_VERSIONS } public MonitorableJob(String owner, String name, JobType type) { diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java index 9ed48ca7a..454e2bdaf 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java @@ -5,6 +5,7 @@ import com.conveyal.datatools.manager.auth.Auth0UserProfile; import com.conveyal.datatools.manager.jobs.BuildTransportNetworkJob; import com.conveyal.datatools.manager.jobs.CreateFeedVersionFromSnapshotJob; +import com.conveyal.datatools.manager.jobs.MergeFeedsJob; import com.conveyal.datatools.manager.jobs.ProcessSingleFeedJob; import com.conveyal.datatools.manager.models.FeedDownloadToken; import com.conveyal.datatools.manager.models.FeedSource; @@ -41,8 +42,10 @@ import java.util.Date; import java.util.EnumSet; import java.util.List; +import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; +import java.util.stream.Stream; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.io.ByteStreams; @@ -421,6 +424,15 @@ private static FeedVersion publishToExternalResource (Request req, Response res) } } + private static String mergeFeedVersions(Request req, Response res) { + String[] versionIds = req.queryParams("feedVersionIds").split(","); + Auth0UserProfile userProfile = req.attribute("user"); + Set versions = Stream.of(versionIds).map(id -> Persistence.feedVersions.getById(id)).collect(Collectors.toSet()); + MergeFeedsJob mergeFeedsJob = new MergeFeedsJob(userProfile.getEmail(), versions, "merged"); + DataManager.heavyExecutor.execute(mergeFeedsJob); + return SparkUtils.formatJobMessage(mergeFeedsJob.jobId, "Merging feed versions..."); + } + /** * Download locally stored feed version with token supplied by this application. This method is only used when * useS3 is set to false. Otherwise, a direct download from s3 should be used. @@ -460,6 +472,7 @@ public static void register (String apiPrefix) { post(apiPrefix + "secure/feedversion", FeedVersionController::createFeedVersionViaUpload, json::write); post(apiPrefix + "secure/feedversion/fromsnapshot", FeedVersionController::createFeedVersionFromSnapshot, json::write); put(apiPrefix + "secure/feedversion/:id/rename", FeedVersionController::renameFeedVersion, json::write); + put(apiPrefix + "secure/feedversion/merge", FeedVersionController::mergeFeedVersions, json::write); post(apiPrefix + "secure/feedversion/:id/publish", FeedVersionController::publishToExternalResource, json::write); delete(apiPrefix + "secure/feedversion/:id", FeedVersionController::deleteFeedVersion, json::write); diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java new file mode 100644 index 000000000..ab9eb50cb --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -0,0 +1,253 @@ +package com.conveyal.datatools.manager.jobs; + +import com.conveyal.datatools.common.status.MonitorableJob; +import com.conveyal.datatools.common.utils.Consts; +import com.conveyal.datatools.common.utils.SparkUtils; +import com.conveyal.datatools.manager.DataManager; +import com.conveyal.datatools.manager.models.FeedSource; +import com.conveyal.datatools.manager.models.FeedVersion; +import com.conveyal.datatools.manager.persistence.FeedStore; +import com.conveyal.datatools.manager.persistence.Persistence; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ArrayNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.zip.ZipOutputStream; + +import static spark.Spark.halt; + +public class MergeFeedsJob extends MonitorableJob { + + private static final Logger LOG = LoggerFactory.getLogger(MergeFeedsJob.class); + private final Set feedVersions; + private final String filename; + + public MergeFeedsJob(String owner, Set feedVersions, String filename) { + super(owner, "Merging feed versions", JobType.MERGE_FEED_VERSIONS); + this.feedVersions = feedVersions; + this.filename = filename; + } + + @Override + public void jobLogic() { + // create temp merged zip file to add feed content to + File mergedFile = null; + try { + mergedFile = File.createTempFile(filename, ".zip"); + mergedFile.deleteOnExit(); + + } catch (IOException e) { + LOG.error("Could not create temp file"); + e.printStackTrace(); + halt(400, SparkUtils.formatJSON("Unknown error while merging feeds.", 400)); + } + + // create the zipfile + ZipOutputStream out; + try { + out = new ZipOutputStream(new FileOutputStream(mergedFile)); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + + LOG.info("Created project merge file: " + mergedFile.getAbsolutePath()); + + // map of feed versions to table entries contained within version's GTFS + Map feedSourceMap = new HashMap<>(); + + // collect zipFiles for each feedSource before merging tables + for (FeedVersion version : feedVersions) { + FeedSource fs = Persistence.feedSources.getById(version.feedSourceId); + // modify feed version to use prepended feed id + LOG.info("Adding {} feed to merged zip", fs.name); + try { + File file = version.retrieveGtfsFile(); + if (file == null) { + LOG.error("No file exists for {}", version.id); + continue; + } + ZipFile zipFile = new ZipFile(file); + feedSourceMap.put(fs, zipFile); + } catch(Exception e) { + e.printStackTrace(); + LOG.error("Zipfile for version {} not found", version.id); + } + } + + // loop through GTFS tables + // FIXME: add iteration over GTFS+ tables + int numberOfTables = DataManager.gtfsConfig.size(); + for(int i = 0; i < numberOfTables; i++) { + JsonNode tableNode = DataManager.gtfsConfig.get(i); + byte[] tableOut = mergeTables(tableNode, feedSourceMap); + + // if at least one feed has the table, include it + if (tableOut != null) { + + String tableName = tableNode.get("name").asText(); + synchronized (status) { + status.message = "Merging " + tableName; + status.percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; + } + // create entry for zip file + ZipEntry tableEntry = new ZipEntry(tableName); + try { + out.putNextEntry(tableEntry); + LOG.info("Writing {} to merged feed", tableName); + out.write(tableOut); + out.closeEntry(); + } catch (IOException e) { + LOG.error("Error writing to table {}", tableName); + e.printStackTrace(); + } + } + } + try { + out.close(); + } catch (IOException e) { + LOG.error("Error closing zip file"); + e.printStackTrace(); + } + synchronized (status) { + status.message = "Saving merged feed."; + status.percentComplete = 95.0; + } + // Store the project merged zip locally or on s3 +// if (DataManager.useS3) { +// String s3Key = "project/" + project.id + ".zip"; +// FeedStore.s3Client.putObject(DataManager.feedBucket, s3Key, mergedFile); +// LOG.info("Storing merged project feed at s3://{}/{}", DataManager.feedBucket, s3Key); +// } else { +// try { +// FeedVersion.feedStore.newFeed(project.id + ".zip", new FileInputStream(mergedFile), null); +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// LOG.error("Could not store feed for project {}", project.id); +// } +// } + // delete temp file + mergedFile.delete(); + + status.update(false, "Merged feed created successfully.", 100, true); + } + + /** + * Merge the specified table for multiple GTFS feeds. + * @param tableNode tableNode to merge + * @param feedSourceMap map of feedSources to zipFiles from which to extract the .txt tables + * @return single merged table for feeds + */ + private static byte[] mergeTables(JsonNode tableNode, Map feedSourceMap) { + + String tableName = tableNode.get("name").asText(); + ByteArrayOutputStream tableOut = new ByteArrayOutputStream(); + + ArrayNode fieldsNode = (ArrayNode) tableNode.get("fields"); + List headers = new ArrayList<>(); + for (int i = 0; i < fieldsNode.size(); i++) { + JsonNode fieldNode = fieldsNode.get(i); + String fieldName = fieldNode.get("name").asText(); + // Clean up spec file to exclude datatools/editor specific fields for the merge job. + boolean notInSpec = fieldNode.has("datatools") && fieldNode.get("datatools").asBoolean(); + if (notInSpec) { + fieldsNode.remove(i); + } + headers.add(fieldName); + } + + try { + // write headers to table + tableOut.write(String.join(",", headers).getBytes()); + tableOut.write("\n".getBytes()); + + // iterate over feed source to zipfile map + for ( Map.Entry mapEntry : feedSourceMap.entrySet()) { + FeedSource fs = mapEntry.getKey(); + ZipFile zipFile = mapEntry.getValue(); + final Enumeration entries = zipFile.entries(); + while (entries.hasMoreElements()) { + final ZipEntry entry = entries.nextElement(); + if(tableName.equals(entry.getName())) { + LOG.info("Adding {} table for {}", entry.getName(), fs.name); + + InputStream inputStream = zipFile.getInputStream(entry); + + BufferedReader in = new BufferedReader(new InputStreamReader(inputStream)); + String line = in.readLine(); + String[] fields = line.split(","); + + List fieldList = Arrays.asList(fields); + + + // iterate over rows in table + while((line = in.readLine()) != null) { + String[] newValues = new String[fieldsNode.size()]; + String[] values = line.split(Consts.COLUMN_SPLIT, -1); + if (values.length == 1) { + LOG.warn("Found blank line. Skipping..."); + continue; + } + for(int v = 0; v < fieldsNode.size(); v++) { + JsonNode fieldNode = fieldsNode.get(v); + String fieldName = fieldNode.get("name").asText(); + + // get index of field from GTFS spec as it appears in feed + int index = fieldList.indexOf(fieldName); + String val = ""; + try { + index = fieldList.indexOf(fieldName); + if(index != -1) { + val = values[index]; + } + } catch (ArrayIndexOutOfBoundsException e) { + LOG.warn("Index {} out of bounds for file {} and feed {}", index, entry.getName(), fs.name); + continue; + } + + String fieldType = fieldNode.get("inputType").asText(); + + // if field is a gtfs identifier, prepend with feed id/name + if (fieldType.contains("GTFS") && !val.isEmpty()) { + newValues[v] = fs.name + ":" + val; + } + else { + newValues[v] = val; + } + } + String newLine = String.join(",", newValues); + + // write line to table (plus new line char) + tableOut.write(newLine.getBytes()); + tableOut.write("\n".getBytes()); + } + } + } + } + } catch (IOException e) { + e.printStackTrace(); + LOG.error("Error merging feed sources: {}", feedSourceMap.keySet().stream().map(fs -> fs.name).collect(Collectors.toList()).toString()); + halt(400, SparkUtils.formatJSON("Error merging feed sources", 400, e)); + } + return tableOut.toByteArray(); + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java index 9f855df89..bdb61ecf0 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java @@ -27,8 +27,10 @@ import java.util.Collection; import java.util.Enumeration; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -52,214 +54,21 @@ public MergeProjectFeedsJob(Project project, String owner) { @Override public void jobLogic () { - // get feed sources in project - Collection feeds = project.retrieveProjectFeedSources(); - - // create temp merged zip file to add feed content to - File mergedFile = null; - try { - mergedFile = File.createTempFile(project.id + "-merged", ".zip"); - mergedFile.deleteOnExit(); - - } catch (IOException e) { - LOG.error("Could not create temp file"); - e.printStackTrace(); - halt(400, SparkUtils.formatJSON("Unknown error while merging feeds.", 400)); - } - - // create the zipfile - ZipOutputStream out; - try { - out = new ZipOutputStream(new FileOutputStream(mergedFile)); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - - LOG.info("Created project merge file: " + mergedFile.getAbsolutePath()); - - // map of feed versions to table entries contained within version's GTFS - Map feedSourceMap = new HashMap<>(); - - // collect zipFiles for each feedSource before merging tables - for (FeedSource fs : feeds) { - // check if feed source has version (use latest) + Set feedVersions = new HashSet<>(); + // Get latest version for each feed source in project + Collection feedSources = project.retrieveProjectFeedSources(); + for (FeedSource fs : feedSources) { + // check if feed version exists FeedVersion version = fs.retrieveLatest(); if (version == null) { - LOG.info("Skipping {} because it has no feed versions", fs.name); + LOG.warn("Skipping {} because it has no feed versions", fs.name); continue; } // modify feed version to use prepended feed id LOG.info("Adding {} feed to merged zip", fs.name); - try { - File file = version.retrieveGtfsFile(); - if (file == null) { - LOG.error("No file exists for {}", version.id); - continue; - } - ZipFile zipFile = new ZipFile(file); - feedSourceMap.put(fs, zipFile); - } catch(Exception e) { - e.printStackTrace(); - LOG.error("Zipfile for version {} not found", version.id); - } - } - - // loop through GTFS tables - int numberOfTables = DataManager.gtfsConfig.size(); - for(int i = 0; i < numberOfTables; i++) { - JsonNode tableNode = DataManager.gtfsConfig.get(i); - byte[] tableOut = mergeTables(tableNode, feedSourceMap); - - // if at least one feed has the table, include it - if (tableOut != null) { - - String tableName = tableNode.get("name").asText(); - synchronized (status) { - status.message = "Merging " + tableName; - status.percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; - } - // create entry for zip file - ZipEntry tableEntry = new ZipEntry(tableName); - try { - out.putNextEntry(tableEntry); - LOG.info("Writing {} to merged feed", tableName); - out.write(tableOut); - out.closeEntry(); - } catch (IOException e) { - LOG.error("Error writing to table {}", tableName); - e.printStackTrace(); - } - } - } - try { - out.close(); - } catch (IOException e) { - LOG.error("Error closing zip file"); - e.printStackTrace(); - } - synchronized (status) { - status.message = "Saving merged feed."; - status.percentComplete = 95.0; - } - // Store the project merged zip locally or on s3 - if (DataManager.useS3) { - String s3Key = "project/" + project.id + ".zip"; - FeedStore.s3Client.putObject(DataManager.feedBucket, s3Key, mergedFile); - LOG.info("Storing merged project feed at s3://{}/{}", DataManager.feedBucket, s3Key); - } else { - try { - FeedVersion.feedStore.newFeed(project.id + ".zip", new FileInputStream(mergedFile), null); - } catch (FileNotFoundException e) { - e.printStackTrace(); - LOG.error("Could not store feed for project {}", project.id); - } - } - // delete temp file - mergedFile.delete(); - - synchronized (status) { - status.message = "Merged feed created successfully."; - status.completed = true; - status.percentComplete = 100.0; - } - } - - /** - * Merge the specified table for multiple GTFS feeds. - * @param tableNode tableNode to merge - * @param feedSourceMap map of feedSources to zipFiles from which to extract the .txt tables - * @return single merged table for feeds - */ - private static byte[] mergeTables(JsonNode tableNode, Map feedSourceMap) { - - String tableName = tableNode.get("name").asText(); - ByteArrayOutputStream tableOut = new ByteArrayOutputStream(); - - ArrayNode fieldsNode = (ArrayNode) tableNode.get("fields"); - List headers = new ArrayList<>(); - for (int i = 0; i < fieldsNode.size(); i++) { - JsonNode fieldNode = fieldsNode.get(i); - String fieldName = fieldNode.get("name").asText(); - Boolean notInSpec = fieldNode.has("datatools") && fieldNode.get("datatools").asBoolean(); - if (notInSpec) { - fieldsNode.remove(i); - } - headers.add(fieldName); + feedVersions.add(version); } + addNextJob(new MergeFeedsJob(owner, feedVersions, project.id + "-merged")); - try { - // write headers to table - tableOut.write(String.join(",", headers).getBytes()); - tableOut.write("\n".getBytes()); - - // iterate over feed source to zipfile map - for ( Map.Entry mapEntry : feedSourceMap.entrySet()) { - FeedSource fs = mapEntry.getKey(); - ZipFile zipFile = mapEntry.getValue(); - final Enumeration entries = zipFile.entries(); - while (entries.hasMoreElements()) { - final ZipEntry entry = entries.nextElement(); - if(tableName.equals(entry.getName())) { - LOG.info("Adding {} table for {}", entry.getName(), fs.name); - - InputStream inputStream = zipFile.getInputStream(entry); - - BufferedReader in = new BufferedReader(new InputStreamReader(inputStream)); - String line = in.readLine(); - String[] fields = line.split(","); - - List fieldList = Arrays.asList(fields); - - - // iterate over rows in table - while((line = in.readLine()) != null) { - String[] newValues = new String[fieldsNode.size()]; - String[] values = line.split(Consts.COLUMN_SPLIT, -1); - if (values.length == 1) { - LOG.warn("Found blank line. Skipping..."); - continue; - } - for(int v = 0; v < fieldsNode.size(); v++) { - JsonNode fieldNode = fieldsNode.get(v); - String fieldName = fieldNode.get("name").asText(); - - // get index of field from GTFS spec as it appears in feed - int index = fieldList.indexOf(fieldName); - String val = ""; - try { - index = fieldList.indexOf(fieldName); - if(index != -1) { - val = values[index]; - } - } catch (ArrayIndexOutOfBoundsException e) { - LOG.warn("Index {} out of bounds for file {} and feed {}", index, entry.getName(), fs.name); - continue; - } - - String fieldType = fieldNode.get("inputType").asText(); - - // if field is a gtfs identifier, prepend with feed id/name - if (fieldType.contains("GTFS") && !val.isEmpty()) { - newValues[v] = fs.name + ":" + val; - } - else { - newValues[v] = val; - } - } - String newLine = String.join(",", newValues); - - // write line to table (plus new line char) - tableOut.write(newLine.getBytes()); - tableOut.write("\n".getBytes()); - } - } - } - } - } catch (IOException e) { - e.printStackTrace(); - LOG.error("Error merging feed sources: {}", feedSourceMap.keySet().stream().map(fs -> fs.name).collect(Collectors.toList()).toString()); - halt(400, SparkUtils.formatJSON("Error merging feed sources", 400, e)); - } - return tableOut.toByteArray(); } } From 9e76476de1deab8800285d28a233b9e06066ed56 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Fri, 1 Feb 2019 17:12:25 -0500 Subject: [PATCH 02/23] refactor(feed-merge): handle merging projects + two versions for feed source --- .../api/FeedVersionController.java | 21 +- .../datatools/manager/jobs/MergeFeedsJob.java | 278 ++++++++++-------- .../manager/jobs/MergeFeedsResult.java | 15 + .../manager/jobs/MergeProjectFeedsJob.java | 2 +- .../manager/jobs/ProcessSingleFeedJob.java | 2 +- src/main/resources/gtfs/gtfs.yml | 21 ++ 6 files changed, 205 insertions(+), 134 deletions(-) create mode 100644 src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java index eef219390..28e3147f4 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.util.Collection; import java.util.Date; +import java.util.HashSet; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -292,8 +293,24 @@ private static FeedVersion publishToExternalResource (Request req, Response res) private static String mergeFeedVersions(Request req, Response res) { String[] versionIds = req.queryParams("feedVersionIds").split(","); Auth0UserProfile userProfile = req.attribute("user"); - Set versions = Stream.of(versionIds).map(id -> Persistence.feedVersions.getById(id)).collect(Collectors.toSet()); - MergeFeedsJob mergeFeedsJob = new MergeFeedsJob(userProfile.getEmail(), versions, "merged"); + Set versions = new HashSet<>(); + String feedSourceId = null; + for (String id : versionIds) { + FeedVersion v = Persistence.feedVersions.getById(id); + if (v == null) { + logMessageAndHalt(req, 400, "Must provide valid version ID"); + } + // Store feed source id and check other versions for matching. + if (feedSourceId == null) feedSourceId = v.feedSourceId; + else if (!v.feedSourceId.equals(feedSourceId)) { + logMessageAndHalt(req, 400, "Cannot merge versions with different parent feed sources."); + } + versions.add(v); + } + if (versionIds.length != 2) { + logMessageAndHalt(req, 400, "Merging more than two versions is not currently supported."); + } + MergeFeedsJob mergeFeedsJob = new MergeFeedsJob(userProfile.getUser_id(), versions, "merged", MergeFeedsJob.MergeType.FEED_VERSIONS); DataManager.heavyExecutor.execute(mergeFeedsJob); return SparkUtils.formatJobMessage(mergeFeedsJob.jobId, "Merging feed versions..."); } diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index ab9eb50cb..e106c322e 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -2,13 +2,12 @@ import com.conveyal.datatools.common.status.MonitorableJob; import com.conveyal.datatools.common.utils.Consts; -import com.conveyal.datatools.common.utils.SparkUtils; import com.conveyal.datatools.manager.DataManager; import com.conveyal.datatools.manager.models.FeedSource; import com.conveyal.datatools.manager.models.FeedVersion; import com.conveyal.datatools.manager.persistence.FeedStore; -import com.conveyal.datatools.manager.persistence.Persistence; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,7 +16,6 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -34,145 +32,164 @@ import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; -import static spark.Spark.halt; +import static com.conveyal.datatools.manager.utils.StringUtils.getCleanName; public class MergeFeedsJob extends MonitorableJob { private static final Logger LOG = LoggerFactory.getLogger(MergeFeedsJob.class); + public static final ObjectMapper mapper = new ObjectMapper(); private final Set feedVersions; + public MergeFeedsResult mergeFeedsResult; private final String filename; + private final MergeType mergeType; - public MergeFeedsJob(String owner, Set feedVersions, String filename) { - super(owner, "Merging feed versions", JobType.MERGE_FEED_VERSIONS); + public MergeFeedsJob(String owner, Set feedVersions, String filename, MergeType mergeType) { + super(owner, mergeType.equals(MergeType.REGIONAL) ? "Merging project feeds" : "Merging feed versions", JobType.MERGE_FEED_VERSIONS); this.feedVersions = feedVersions; this.filename = filename; + this.mergeType = mergeType; + this.mergeFeedsResult = new MergeFeedsResult(); + } + + public enum MergeType { + REGIONAL, + FEED_VERSIONS } @Override - public void jobLogic() { - // create temp merged zip file to add feed content to - File mergedFile = null; + public void jobLogic() throws IOException { + // Create temp zip file to add merged feed content to. + File mergedTempFile = null; try { - mergedFile = File.createTempFile(filename, ".zip"); - mergedFile.deleteOnExit(); - - } catch (IOException e) { - LOG.error("Could not create temp file"); - e.printStackTrace(); - halt(400, SparkUtils.formatJSON("Unknown error while merging feeds.", 400)); - } + try { + mergedTempFile = File.createTempFile(filename, ".zip"); + mergedTempFile.deleteOnExit(); + } catch (IOException e) { + LOG.error("Could not create temp file"); + throw e; + } - // create the zipfile - ZipOutputStream out; - try { - out = new ZipOutputStream(new FileOutputStream(mergedFile)); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } + // create the zipfile + ZipOutputStream out = new ZipOutputStream(new FileOutputStream(mergedTempFile)); - LOG.info("Created project merge file: " + mergedFile.getAbsolutePath()); + LOG.info("Created project merge file: " + mergedTempFile.getAbsolutePath()); - // map of feed versions to table entries contained within version's GTFS - Map feedSourceMap = new HashMap<>(); + // Map of feed versions to table entries contained within version's GTFS. + Map zipFilesForVersions = new HashMap<>(); - // collect zipFiles for each feedSource before merging tables - for (FeedVersion version : feedVersions) { - FeedSource fs = Persistence.feedSources.getById(version.feedSourceId); - // modify feed version to use prepended feed id - LOG.info("Adding {} feed to merged zip", fs.name); - try { - File file = version.retrieveGtfsFile(); - if (file == null) { - LOG.error("No file exists for {}", version.id); - continue; + // Collect zipFiles for each feedSource before merging tables. + // FIXME : This needs to handle more than one version for the same feed source. + for (FeedVersion version : feedVersions) { + // modify feed version to use prepended feed id + LOG.info("Adding {} feed to merged zip", version.parentFeedSource().name); + try { + File file = version.retrieveGtfsFile(); + if (file == null) { + LOG.error("No file exists for {}", version.id); + continue; + } + ZipFile zipFile = new ZipFile(file); + zipFilesForVersions.put(version, zipFile); + } catch(Exception e) { + LOG.error("Zipfile for version {} not found", version.id); + throw e; } - ZipFile zipFile = new ZipFile(file); - feedSourceMap.put(fs, zipFile); - } catch(Exception e) { - e.printStackTrace(); - LOG.error("Zipfile for version {} not found", version.id); } - } - // loop through GTFS tables - // FIXME: add iteration over GTFS+ tables - int numberOfTables = DataManager.gtfsConfig.size(); - for(int i = 0; i < numberOfTables; i++) { - JsonNode tableNode = DataManager.gtfsConfig.get(i); - byte[] tableOut = mergeTables(tableNode, feedSourceMap); + // Determine which tables to merge (only merge GTFS+ tables for MTC extension). + final ArrayNode tablesToMerge = DataManager.isExtensionEnabled("mtc") + ? ((ArrayNode) DataManager.gtfsConfig).addAll((ArrayNode) DataManager.gtfsPlusConfig) + : (ArrayNode) DataManager.gtfsConfig; + int numberOfTables = tablesToMerge.size(); + // Loop over GTFS tables and merge each feed one table at a time. + for (int i = 0; i < numberOfTables; i++) { + JsonNode tableNode = tablesToMerge.get(i); + byte[] tableOut = constructMergedTable(tableNode, zipFilesForVersions); - // if at least one feed has the table, include it - if (tableOut != null) { - - String tableName = tableNode.get("name").asText(); - synchronized (status) { - status.message = "Merging " + tableName; - status.percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; + // If at least one feed has the table (i.e., tableOut is not null), include it in the merged feed. + if (tableOut != null) { + String tableName = tableNode.get("name").asText(); + double percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; + status.update( "Merging " + tableName, percentComplete); + // Create entry for zip file. + ZipEntry tableEntry = new ZipEntry(tableName); + LOG.info("Writing {} to merged feed", tableName); + try { + out.putNextEntry(tableEntry); + out.write(tableOut); + out.closeEntry(); + } catch (IOException e) { + String message = String.format("Error writing to table %s", tableName); + LOG.error(message, e); + status.fail(message, e); + } + } + } + // Close output stream for zip file. + out.close(); + // Handle writing file to storage (local or s3). + if (mergeType.equals(MergeType.REGIONAL)) { + status.update(false, "Saving merged feed.", 95); + // Store the project merged zip locally or on s3 + if (DataManager.useS3) { + String s3Key = "project/" + filename; + FeedStore.s3Client.putObject(DataManager.feedBucket, s3Key, mergedTempFile); + LOG.info("Storing merged project feed at s3://{}/{}", DataManager.feedBucket, s3Key); + } else { + try { + FeedVersion.feedStore.newFeed(filename, new FileInputStream(mergedTempFile), null); + } catch (IOException e) { + e.printStackTrace(); + LOG.error("Could not store feed for project {}", filename); + throw e; + } } - // create entry for zip file - ZipEntry tableEntry = new ZipEntry(tableName); + } else { + // Create a new feed version from the file. + // Feed source should be the same for each version if using the FEED_VERSIONS merge type. + FeedSource source = feedVersions.iterator().next().parentFeedSource(); + FeedVersion mergedVersion = new FeedVersion(source); try { - out.putNextEntry(tableEntry); - LOG.info("Writing {} to merged feed", tableName); - out.write(tableOut); - out.closeEntry(); + FeedVersion.feedStore.newFeed(mergedVersion.id, new FileInputStream(mergedTempFile), null); } catch (IOException e) { - LOG.error("Error writing to table {}", tableName); - e.printStackTrace(); + LOG.error("Could not store merged feed for new version"); + throw e; } + // Handle the processing of the new merged version (note: s3 upload is handled within this job. + ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(mergedVersion, owner, true); + addNextJob(processSingleFeedJob); } + status.update(false, "Merged feed created successfully.", 100, true); + } catch (Exception e) { + LOG.error("Failed to merge feeds"); + // Bubble up exception to MonitorableJob + throw e; + } finally { + // Delete temp file in finally clause to ensure it is deleted even if the job fails. + mergedTempFile.delete(); } - try { - out.close(); - } catch (IOException e) { - LOG.error("Error closing zip file"); - e.printStackTrace(); - } - synchronized (status) { - status.message = "Saving merged feed."; - status.percentComplete = 95.0; - } - // Store the project merged zip locally or on s3 -// if (DataManager.useS3) { -// String s3Key = "project/" + project.id + ".zip"; -// FeedStore.s3Client.putObject(DataManager.feedBucket, s3Key, mergedFile); -// LOG.info("Storing merged project feed at s3://{}/{}", DataManager.feedBucket, s3Key); -// } else { -// try { -// FeedVersion.feedStore.newFeed(project.id + ".zip", new FileInputStream(mergedFile), null); -// } catch (FileNotFoundException e) { -// e.printStackTrace(); -// LOG.error("Could not store feed for project {}", project.id); -// } -// } - // delete temp file - mergedFile.delete(); - - status.update(false, "Merged feed created successfully.", 100, true); } /** * Merge the specified table for multiple GTFS feeds. * @param tableNode tableNode to merge - * @param feedSourceMap map of feedSources to zipFiles from which to extract the .txt tables - * @return single merged table for feeds + * @param zipFilesForVersions map of feedSources to zipFiles from which to extract the .txt tables + * @return single merged table for feeds or null if the table did not exist for any feed */ - private static byte[] mergeTables(JsonNode tableNode, Map feedSourceMap) { + private static byte[] constructMergedTable(JsonNode tableNode, Map zipFilesForVersions) throws IOException { String tableName = tableNode.get("name").asText(); ByteArrayOutputStream tableOut = new ByteArrayOutputStream(); - - ArrayNode fieldsNode = (ArrayNode) tableNode.get("fields"); + ArrayNode fieldsNode = mapper.createArrayNode(); List headers = new ArrayList<>(); - for (int i = 0; i < fieldsNode.size(); i++) { - JsonNode fieldNode = fieldsNode.get(i); + for (JsonNode fieldNode : tableNode.get("fields")) { String fieldName = fieldNode.get("name").asText(); // Clean up spec file to exclude datatools/editor specific fields for the merge job. - boolean notInSpec = fieldNode.has("datatools") && fieldNode.get("datatools").asBoolean(); - if (notInSpec) { - fieldsNode.remove(i); + boolean isSpecField = !(fieldNode.has("datatools") && fieldNode.get("datatools").asBoolean()); + if (isSpecField) { + fieldsNode.add(fieldNode); + headers.add(fieldName); } - headers.add(fieldName); } try { @@ -180,42 +197,46 @@ private static byte[] mergeTables(JsonNode tableNode, Map f tableOut.write(String.join(",", headers).getBytes()); tableOut.write("\n".getBytes()); - // iterate over feed source to zipfile map - for ( Map.Entry mapEntry : feedSourceMap.entrySet()) { - FeedSource fs = mapEntry.getKey(); + // Iterate over each zip file. + for ( Map.Entry mapEntry : zipFilesForVersions.entrySet()) { + FeedVersion version = mapEntry.getKey(); + FeedSource fs = version.parentFeedSource(); + // Generate ID prefix to scope GTFS identifiers to avoid conflicts. + String idScope = getCleanName(fs.name) + version.version; ZipFile zipFile = mapEntry.getValue(); + // Get a list of the files contained within the zip file to find the table we're currently working on. final Enumeration entries = zipFile.entries(); while (entries.hasMoreElements()) { final ZipEntry entry = entries.nextElement(); - if(tableName.equals(entry.getName())) { - LOG.info("Adding {} table for {}", entry.getName(), fs.name); + if (tableName.equals(entry.getName())) { + LOG.info("Adding {} table for {}{}", entry.getName(), fs.name, version.version); InputStream inputStream = zipFile.getInputStream(entry); BufferedReader in = new BufferedReader(new InputStreamReader(inputStream)); + // Read in first line (row headers) String line = in.readLine(); - String[] fields = line.split(","); - - List fieldList = Arrays.asList(fields); + List fieldsFoundInZip = Arrays.asList(line.split(",")); - - // iterate over rows in table - while((line = in.readLine()) != null) { + // Iterate over rows in table, writing them to the out file. + while ((line = in.readLine()) != null) { String[] newValues = new String[fieldsNode.size()]; String[] values = line.split(Consts.COLUMN_SPLIT, -1); if (values.length == 1) { LOG.warn("Found blank line. Skipping..."); continue; } + // Piece together the row to write, which should look practically identical to the original + // row except for the identifiers receiving a prefix to avoid ID conflicts. for(int v = 0; v < fieldsNode.size(); v++) { JsonNode fieldNode = fieldsNode.get(v); String fieldName = fieldNode.get("name").asText(); - // get index of field from GTFS spec as it appears in feed - int index = fieldList.indexOf(fieldName); + // Get index of field from GTFS spec as it appears in feed + int index = fieldsFoundInZip.indexOf(fieldName); String val = ""; try { - index = fieldList.indexOf(fieldName); + index = fieldsFoundInZip.indexOf(fieldName); if(index != -1) { val = values[index]; } @@ -223,20 +244,15 @@ private static byte[] mergeTables(JsonNode tableNode, Map f LOG.warn("Index {} out of bounds for file {} and feed {}", index, entry.getName(), fs.name); continue; } - + // Determine if field is GTFS identifier. String fieldType = fieldNode.get("inputType").asText(); - - // if field is a gtfs identifier, prepend with feed id/name - if (fieldType.contains("GTFS") && !val.isEmpty()) { - newValues[v] = fs.name + ":" + val; - } - else { - newValues[v] = val; - } + // If field is a GTFS identifier (e.g., route_id, stop_id, etc.), add scoped prefix. + newValues[v] = fieldType.contains("GTFS") && !val.isEmpty() + ? String.join(":", idScope, val) + : val; } + // Write line to table (plus new line char). String newLine = String.join(",", newValues); - - // write line to table (plus new line char) tableOut.write(newLine.getBytes()); tableOut.write("\n".getBytes()); } @@ -244,9 +260,11 @@ private static byte[] mergeTables(JsonNode tableNode, Map f } } } catch (IOException e) { - e.printStackTrace(); - LOG.error("Error merging feed sources: {}", feedSourceMap.keySet().stream().map(fs -> fs.name).collect(Collectors.toList()).toString()); - halt(400, SparkUtils.formatJSON("Error merging feed sources", 400, e)); + LOG.error( + "Error merging feed sources: {}", + zipFilesForVersions.keySet().stream().map(fs -> fs.name).collect(Collectors.toList()).toString() + ); + throw e; } return tableOut.toByteArray(); } diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java new file mode 100644 index 000000000..263bac4bf --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java @@ -0,0 +1,15 @@ +package com.conveyal.datatools.manager.jobs; + +import java.util.Date; + +public class MergeFeedsResult { + + public int feedCount; + public int errors; + public Date startTime; + public boolean failed; + + public MergeFeedsResult () { + startTime = new Date(); + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java index 80bb45270..745dbca79 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java @@ -64,7 +64,7 @@ public void jobLogic () { LOG.info("Adding {} feed to merged zip", fs.name); feedVersions.add(version); } - addNextJob(new MergeFeedsJob(owner, feedVersions, project.id + "-merged")); + addNextJob(new MergeFeedsJob(owner, feedVersions, String.format("%s.zip", project.id), MergeFeedsJob.MergeType.REGIONAL)); } } diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/ProcessSingleFeedJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/ProcessSingleFeedJob.java index 4c1a11182..a5ed1a062 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/ProcessSingleFeedJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/ProcessSingleFeedJob.java @@ -50,7 +50,7 @@ public String getFeedSourceId () { public void jobLogic () { LOG.info("Processing feed for {}", feedVersion.id); - // First, load the feed into database. + // First, load the feed into database. During this stage, the GTFS file will be uploaded to S3 (and deleted locally). addNextJob(new LoadFeedJob(feedVersion, owner, isNewVersion)); // Next, validate the feed. diff --git a/src/main/resources/gtfs/gtfs.yml b/src/main/resources/gtfs/gtfs.yml index 5d86bca60..acc45edf0 100644 --- a/src/main/resources/gtfs/gtfs.yml +++ b/src/main/resources/gtfs/gtfs.yml @@ -318,6 +318,27 @@ columnWidth: 12 helpContent: +- id: shape + name: shapes.txt + helpContent: Shapes describe the physical path that a vehicle takes, and are defined in the file shapes.txt. Shapes belong to Trips, and consist of a sequence of points. Tracing the points in order provides the path of the vehicle. The points do not need to match stop locations. + fields: + - name: shape_id + required: true + inputType: GTFS_ID + helpContent: The shape_id field contains an ID that uniquely identifies a shape. + - name: shape_pt_lat + required: true + inputType: LATITUDE + - name: shape_pt_lon + required: true + inputType: LONGITUDE + - name: shape_pt_sequence + required: true + inputType: POSITIVE_INT + - name: shape_dist_traveled + inputType: POSITIVE_NUM + required: false + - id: trip name: trips.txt helpContent: Trips for each route. A trip is a sequence of two or more stops that occurs at specific time. From b6d1058dd14edc70703aea4eb5e10918ff11487f Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Fri, 15 Feb 2019 14:03:10 -0500 Subject: [PATCH 03/23] feat(merge-feeds): add MTC merge feeds strategy resolves #185 --- .../api/FeedVersionController.java | 5 +- .../controllers/api/ProjectController.java | 26 +- .../manager/gtfsplus/CalendarAttribute.java | 20 + .../datatools/manager/gtfsplus/Direction.java | 22 + .../manager/gtfsplus/FareRiderCategory.java | 24 + .../manager/gtfsplus/FareZoneAttribute.java | 20 + .../manager/gtfsplus/GtfsPlusTable.java | 87 +++ .../manager/gtfsplus/RealtimeRoute.java | 21 + .../manager/gtfsplus/RealtimeStop.java | 21 + .../manager/gtfsplus/RealtimeTrip.java | 20 + .../manager/gtfsplus/RiderCategory.java | 20 + .../manager/gtfsplus/StopAttribute.java | 23 + .../datatools/manager/gtfsplus/TimePoint.java | 20 + .../datatools/manager/jobs/MergeFeedsJob.java | 649 +++++++++++++----- .../manager/jobs/MergeFeedsResult.java | 25 +- .../manager/jobs/MergeFeedsType.java | 6 + .../manager/jobs/MergeProjectFeedsJob.java | 70 -- 17 files changed, 814 insertions(+), 265 deletions(-) create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/CalendarAttribute.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/Direction.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/FareRiderCategory.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/FareZoneAttribute.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/GtfsPlusTable.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeRoute.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeStop.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeTrip.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/RiderCategory.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/StopAttribute.java create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/TimePoint.java create mode 100644 src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsType.java delete mode 100644 src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java index 42de6737c..3f9b3e379 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java @@ -28,8 +28,6 @@ import java.util.Date; import java.util.HashSet; import java.util.Set; -import java.util.stream.Collectors; -import java.util.stream.Stream; import static com.conveyal.datatools.common.utils.S3Utils.downloadFromS3; import static com.conveyal.datatools.common.utils.SparkUtils.copyRequestStreamIntoFile; @@ -37,6 +35,7 @@ import static com.conveyal.datatools.common.utils.SparkUtils.formatJobMessage; import static com.conveyal.datatools.common.utils.SparkUtils.logMessageAndHalt; import static com.conveyal.datatools.manager.controllers.api.FeedSourceController.checkFeedSourcePermissions; +import static com.conveyal.datatools.manager.jobs.MergeFeedsType.MTC; import static spark.Spark.delete; import static spark.Spark.get; import static spark.Spark.post; @@ -289,7 +288,7 @@ else if (!v.feedSourceId.equals(feedSourceId)) { if (versionIds.length != 2) { logMessageAndHalt(req, 400, "Merging more than two versions is not currently supported."); } - MergeFeedsJob mergeFeedsJob = new MergeFeedsJob(userProfile.getUser_id(), versions, "merged", MergeFeedsJob.MergeType.FEED_VERSIONS); + MergeFeedsJob mergeFeedsJob = new MergeFeedsJob(userProfile.getUser_id(), versions, "merged", MTC); DataManager.heavyExecutor.execute(mergeFeedsJob); return SparkUtils.formatJobMessage(mergeFeedsJob.jobId, "Merging feed versions..."); } diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java index c5caba46f..6df416e19 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java @@ -5,8 +5,9 @@ import com.conveyal.datatools.manager.auth.Auth0UserProfile; import com.conveyal.datatools.manager.jobs.FetchProjectFeedsJob; import com.conveyal.datatools.manager.jobs.MakePublicJob; -import com.conveyal.datatools.manager.jobs.MergeProjectFeedsJob; +import com.conveyal.datatools.manager.jobs.MergeFeedsJob; import com.conveyal.datatools.manager.models.FeedDownloadToken; +import com.conveyal.datatools.manager.models.FeedSource; import com.conveyal.datatools.manager.models.FeedVersion; import com.conveyal.datatools.manager.models.JsonViews; import com.conveyal.datatools.manager.models.Project; @@ -20,6 +21,8 @@ import spark.Response; import java.util.Collection; +import java.util.HashSet; +import java.util.Set; import java.util.stream.Collectors; import static com.conveyal.datatools.common.utils.S3Utils.downloadFromS3; @@ -27,6 +30,7 @@ import static com.conveyal.datatools.common.utils.SparkUtils.formatJobMessage; import static com.conveyal.datatools.common.utils.SparkUtils.logMessageAndHalt; import static com.conveyal.datatools.manager.DataManager.publicPath; +import static com.conveyal.datatools.manager.jobs.MergeFeedsType.REGIONAL; import static spark.Spark.delete; import static spark.Spark.get; import static spark.Spark.post; @@ -220,10 +224,24 @@ private static String downloadMergedFeed(Request req, Response res) { Project project = requestProjectById(req, "view"); Auth0UserProfile userProfile = req.attribute("user"); // TODO: make this an authenticated call? - MergeProjectFeedsJob mergeProjectFeedsJob = new MergeProjectFeedsJob(project, userProfile.getUser_id()); - DataManager.heavyExecutor.execute(mergeProjectFeedsJob); + Set feedVersions = new HashSet<>(); + // Get latest version for each feed source in project + Collection feedSources = project.retrieveProjectFeedSources(); + for (FeedSource fs : feedSources) { + // check if feed version exists + FeedVersion version = fs.retrieveLatest(); + if (version == null) { + LOG.warn("Skipping {} because it has no feed versions", fs.name); + continue; + } + // modify feed version to use prepended feed id + LOG.info("Adding {} feed to merged zip", fs.name); + feedVersions.add(version); + } + MergeFeedsJob mergeFeedsJob = new MergeFeedsJob(userProfile.getUser_id(), feedVersions, project.id, REGIONAL); + DataManager.heavyExecutor.execute(mergeFeedsJob); // Return job ID to requester for monitoring job status. - return formatJobMessage(mergeProjectFeedsJob.jobId, "Merge operation is processing."); + return formatJobMessage(mergeFeedsJob.jobId, "Merge operation is processing."); } /** diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/CalendarAttribute.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/CalendarAttribute.java new file mode 100644 index 000000000..ad16d471e --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/CalendarAttribute.java @@ -0,0 +1,20 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class CalendarAttribute extends Entity { + + private static final long serialVersionUID = 1L; + + public String service_id; + public String service_description; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/Direction.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/Direction.java new file mode 100644 index 000000000..9e5666d0a --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/Direction.java @@ -0,0 +1,22 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class Direction extends Entity { + + private static final long serialVersionUID = 1L; + + public String route_id; + public int direction_id; + public String direction; + + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareRiderCategory.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareRiderCategory.java new file mode 100644 index 000000000..000632b56 --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareRiderCategory.java @@ -0,0 +1,24 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.time.LocalDate; + +public class FareRiderCategory extends Entity { + + private static final long serialVersionUID = 1L; + + public String fare_id; + public int rider_category_id; + public double price; + public LocalDate expiration_date; + public LocalDate commencement_date; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareZoneAttribute.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareZoneAttribute.java new file mode 100644 index 000000000..780ec62be --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareZoneAttribute.java @@ -0,0 +1,20 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class FareZoneAttribute extends Entity { + + private static final long serialVersionUID = 1L; + + public String zone_id; + public String zone_name; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/GtfsPlusTable.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/GtfsPlusTable.java new file mode 100644 index 000000000..062aa5664 --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/GtfsPlusTable.java @@ -0,0 +1,87 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.loader.DateField; +import com.conveyal.gtfs.loader.DoubleField; +import com.conveyal.gtfs.loader.IntegerField; +import com.conveyal.gtfs.loader.ShortField; +import com.conveyal.gtfs.loader.StringField; +import com.conveyal.gtfs.loader.Table; + +import static com.conveyal.gtfs.loader.Requirement.OPTIONAL; +import static com.conveyal.gtfs.loader.Requirement.PROPRIETARY; +import static com.conveyal.gtfs.loader.Requirement.REQUIRED; + +public class GtfsPlusTable { + public static final Table REALTIME_ROUTES = new Table("realtime_routes", RealtimeRoute.class, PROPRIETARY, + new StringField("route_id", REQUIRED).isReferenceTo(Table.ROUTES), + new ShortField("realtime_enabled", REQUIRED, 1), + new StringField("realtime_routename", REQUIRED), + new StringField("realtime_routecode", REQUIRED) + ); + + public static final Table REALTIME_STOPS = new Table("realtime_stops", RealtimeStop.class, PROPRIETARY, + new StringField("trip_id", REQUIRED).isReferenceTo(Table.TRIPS), + new StringField("stop_id", REQUIRED).isReferenceTo(Table.STOPS), + new StringField("realtime_stop_id", REQUIRED) + ).keyFieldIsNotUnique(); + + public static final Table DIRECTIONS = new Table("directions", Direction.class, PROPRIETARY, + new StringField("route_id", REQUIRED).isReferenceTo(Table.ROUTES), + new ShortField("direction_id", REQUIRED, 1), + new StringField("direction", REQUIRED) + ).keyFieldIsNotUnique(); + + public static final Table REALTIME_TRIPS = new Table("realtime_trips", RealtimeTrip.class, PROPRIETARY, + new StringField("trip_id", REQUIRED).isReferenceTo(Table.TRIPS), + new StringField("realtime_trip_id", REQUIRED) + ); + + public static final Table STOP_ATTRIBUTES = new Table("stop_attributes", StopAttribute.class, PROPRIETARY, + new StringField("stop_id", REQUIRED).isReferenceTo(Table.STOPS), + new ShortField("accessibility_id", REQUIRED, 8), + new StringField("cardinal_direction", OPTIONAL), + new StringField("relative_position", OPTIONAL), + new StringField("stop_city", REQUIRED) + ); + + public static final Table TIMEPOINTS = new Table("timepoints", TimePoint.class, PROPRIETARY, + new StringField("trip_id", REQUIRED).isReferenceTo(Table.TRIPS), + new StringField("stop_id", REQUIRED).isReferenceTo(Table.STOPS) + ).keyFieldIsNotUnique(); + + public static final Table RIDER_CATEGORIES = new Table("rider_categories", RiderCategory.class, PROPRIETARY, + new IntegerField("rider_category_id", REQUIRED, 1, 25), + new StringField("rider_category_description", REQUIRED) + ); + + public static final Table FARE_RIDER_CATEGORIES = new Table("fare_rider_categories", FareRiderCategory.class, PROPRIETARY, + new StringField("fare_id", REQUIRED), + new IntegerField("rider_category_id", REQUIRED, 2, 25).isReferenceTo(RIDER_CATEGORIES), + new DoubleField("price", REQUIRED, 0, Double.MAX_VALUE, 2), + new DateField("expiration_date", OPTIONAL), + new DateField("commencement_date", OPTIONAL) + ).keyFieldIsNotUnique(); + + public static final Table CALENDAR_ATTRIBUTES = new Table("calendar_attributes", CalendarAttribute.class, PROPRIETARY, + new StringField("service_id", REQUIRED).isReferenceTo(Table.CALENDAR), + new StringField("service_description", REQUIRED) + ); + + public static final Table FAREZONE_ATTRIBUTES = new Table("farezone_attributes", FareZoneAttribute.class, PROPRIETARY, + new StringField("zone_id", REQUIRED), + new StringField("zone_name", REQUIRED) + ); + + public static final Table[] tables = new Table[] { + REALTIME_ROUTES, + REALTIME_STOPS, + REALTIME_TRIPS, + DIRECTIONS, + STOP_ATTRIBUTES, + TIMEPOINTS, + RIDER_CATEGORIES, + FARE_RIDER_CATEGORIES, + CALENDAR_ATTRIBUTES, + FAREZONE_ATTRIBUTES + }; +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeRoute.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeRoute.java new file mode 100644 index 000000000..93d33d9c3 --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeRoute.java @@ -0,0 +1,21 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class RealtimeRoute extends Entity { + private static final long serialVersionUID = 1L; + + public String route_id; + public int realtime_enabled; + public String realtime_routename; + public String realtime_routecode; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeStop.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeStop.java new file mode 100644 index 000000000..94033fa76 --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeStop.java @@ -0,0 +1,21 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class RealtimeStop extends Entity { + + private static final long serialVersionUID = 1L; + + public String trip_id; + public String stop_id; + public String realtime_stop_id; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeTrip.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeTrip.java new file mode 100644 index 000000000..d2acbf42f --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeTrip.java @@ -0,0 +1,20 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class RealtimeTrip extends Entity { + + private static final long serialVersionUID = 1L; + + public String trip_id; + public String realtime_trip_id; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RiderCategory.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RiderCategory.java new file mode 100644 index 000000000..3b44b487c --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RiderCategory.java @@ -0,0 +1,20 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class RiderCategory extends Entity { + + private static final long serialVersionUID = 1L; + + public int rider_category_id; + public String rider_category_description; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/StopAttribute.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/StopAttribute.java new file mode 100644 index 000000000..84b19e834 --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/StopAttribute.java @@ -0,0 +1,23 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class StopAttribute extends Entity { + + private static final long serialVersionUID = 1L; + + public String stop_id; + public int accessibility_id; + public String cardinal_direction; + public String relative_position; + public String stop_city; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/TimePoint.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/TimePoint.java new file mode 100644 index 000000000..8e2c83af1 --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/TimePoint.java @@ -0,0 +1,20 @@ +package com.conveyal.datatools.manager.gtfsplus; + +import com.conveyal.gtfs.model.Entity; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +public class TimePoint extends Entity { + + private static final long serialVersionUID = 1L; + + public String trip_id; + public String stop_id; + + // TODO + @Override + public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { + + } +} diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index e106c322e..30b3a40f0 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -1,271 +1,550 @@ package com.conveyal.datatools.manager.jobs; import com.conveyal.datatools.common.status.MonitorableJob; -import com.conveyal.datatools.common.utils.Consts; import com.conveyal.datatools.manager.DataManager; +import com.conveyal.datatools.manager.gtfsplus.GtfsPlusTable; import com.conveyal.datatools.manager.models.FeedSource; import com.conveyal.datatools.manager.models.FeedVersion; import com.conveyal.datatools.manager.persistence.FeedStore; -import com.fasterxml.jackson.databind.JsonNode; +import com.conveyal.gtfs.error.NewGTFSError; +import com.conveyal.gtfs.error.NewGTFSErrorType; +import com.conveyal.gtfs.loader.Field; +import com.conveyal.gtfs.loader.JdbcGtfsLoader; +import com.conveyal.gtfs.loader.ReferenceTracker; +import com.conveyal.gtfs.loader.Table; +import com.csvreader.CsvReader; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ArrayNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.ArrayList; +import java.time.LocalDate; +import java.time.temporal.ChronoUnit; import java.util.Arrays; -import java.util.Enumeration; +import java.util.Comparator; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import java.util.zip.ZipOutputStream; +import static com.conveyal.datatools.manager.jobs.MergeFeedsType.MTC; +import static com.conveyal.datatools.manager.jobs.MergeFeedsType.REGIONAL; import static com.conveyal.datatools.manager.utils.StringUtils.getCleanName; +import static com.conveyal.gtfs.loader.DateField.GTFS_DATE_FORMATTER; +import static com.conveyal.gtfs.loader.JdbcGtfsLoader.getFieldIndex; +import static com.conveyal.gtfs.loader.JdbcGtfsLoader.getKeyFieldIndex; +/** + * This job handles merging two or more feed versions according to logic specific to the specified merge type. + * The current merge types handled here are: + * - {@link MergeFeedsType#REGIONAL}: this is essentially a "dumb" merge. For each feed version, each primary key is + * scoped so that there is no possibility that it will conflict with other IDs + * found in any other feed version. Note: There is absoluately no attempt to merge + * entities based on either expected shared IDs or entity location (e.g., stop + * coordinates). + * - {@link MergeFeedsType#MTC}: this strategy is defined in detail at https://github.com/conveyal/datatools-server/issues/185, + * but in essence, this strategy attempts to merge a current and future feed into + * a combined file. For certain entities (specifically stops and routes) it uses + * alternate fields as primary keys (stop_code and route_short_name) if they are + * available. There is some complexity related to this in {@link #constructMergedTable(Table, List)}. + * Another defining characteristic is to prefer entities defined in the "future" + * file if there are matching entities in the current file. + * Future merge strategies could be added here. For example, some potential customers have mentioned a desire to + * prefer entities from the "current" version, so that entities edited in Data Tools would override the values found + * in the "future" file, which may have limited data attributes due to being exported from scheduling software with + * limited GTFS support. + */ public class MergeFeedsJob extends MonitorableJob { private static final Logger LOG = LoggerFactory.getLogger(MergeFeedsJob.class); public static final ObjectMapper mapper = new ObjectMapper(); private final Set feedVersions; + private final ReferenceTracker referenceTracker = new ReferenceTracker(); public MergeFeedsResult mergeFeedsResult; private final String filename; - private final MergeType mergeType; + public final String projectId; + public final MergeFeedsType mergeType; + private File mergedTempFile = null; - public MergeFeedsJob(String owner, Set feedVersions, String filename, MergeType mergeType) { - super(owner, mergeType.equals(MergeType.REGIONAL) ? "Merging project feeds" : "Merging feed versions", JobType.MERGE_FEED_VERSIONS); + public MergeFeedsJob(String owner, Set feedVersions, String file, MergeFeedsType mergeType) { + super(owner, mergeType.equals(REGIONAL) ? "Merging project feeds" : "Merging feed versions", JobType.MERGE_FEED_VERSIONS); this.feedVersions = feedVersions; - this.filename = filename; + // Construct full filename with extension + this.filename = String.format("%s.zip", file); + // If the merge type is regional, the file string should be equivalent to projectId, which is used by the client + // to download the merged feed upon job completion. + this.projectId = mergeType.equals(REGIONAL) ? file : null; this.mergeType = mergeType; - this.mergeFeedsResult = new MergeFeedsResult(); + this.mergeFeedsResult = new MergeFeedsResult(mergeType); } - public enum MergeType { - REGIONAL, - FEED_VERSIONS + public void jobFinished() { + // Delete temp file to ensure it does not cause storage bloat. + if (!mergedTempFile.delete()) { + // FIXME: send to bugsnag? + LOG.error("Merged feed file {} not deleted. This may contribute to storage space shortages.", mergedTempFile.getAbsolutePath()); + } } @Override public void jobLogic() throws IOException { // Create temp zip file to add merged feed content to. - File mergedTempFile = null; - try { - try { - mergedTempFile = File.createTempFile(filename, ".zip"); - mergedTempFile.deleteOnExit(); - } catch (IOException e) { - LOG.error("Could not create temp file"); - throw e; - } - - // create the zipfile - ZipOutputStream out = new ZipOutputStream(new FileOutputStream(mergedTempFile)); - - LOG.info("Created project merge file: " + mergedTempFile.getAbsolutePath()); + mergedTempFile = File.createTempFile(filename, null); + mergedTempFile.deleteOnExit(); + // Create the zipfile. + ZipOutputStream out = new ZipOutputStream(new FileOutputStream(mergedTempFile)); + LOG.info("Created project merge file: " + mergedTempFile.getAbsolutePath()); + List feedsToMerge = collectAndSortFeeds(feedVersions); - // Map of feed versions to table entries contained within version's GTFS. - Map zipFilesForVersions = new HashMap<>(); - - // Collect zipFiles for each feedSource before merging tables. - // FIXME : This needs to handle more than one version for the same feed source. - for (FeedVersion version : feedVersions) { - // modify feed version to use prepended feed id - LOG.info("Adding {} feed to merged zip", version.parentFeedSource().name); + // Determine which tables to merge (only merge GTFS+ tables for MTC extension). + final List tablesToMerge = Arrays.stream(Table.tablesInOrder) + .filter(Table::isSpecTable) + .collect(Collectors.toList()); + if (DataManager.isExtensionEnabled("mtc")) { + // Merge GTFS+ tables only if MTC extension is enabled. We should do this for both regional and MTC merge + // strategies. + tablesToMerge.addAll(Arrays.asList(GtfsPlusTable.tables)); + } + int numberOfTables = tablesToMerge.size(); + // Loop over GTFS tables and merge each feed one table at a time. + for (int i = 0; i < numberOfTables; i++) { + Table table = tablesToMerge.get(i); + double percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; + status.update( "Merging " + table.name, percentComplete); + // Perform the merge. + byte[] tableOut = constructMergedTable(table, feedsToMerge); + // If at least one feed has the table (i.e., tableOut is not null), include it in the merged feed. + if (tableOut != null) { + // Create entry for zip file. + ZipEntry tableEntry = new ZipEntry(table.name + ".txt"); + LOG.info("Writing {} to merged feed", table.name); try { - File file = version.retrieveGtfsFile(); - if (file == null) { - LOG.error("No file exists for {}", version.id); - continue; - } - ZipFile zipFile = new ZipFile(file); - zipFilesForVersions.put(version, zipFile); - } catch(Exception e) { - LOG.error("Zipfile for version {} not found", version.id); - throw e; + out.putNextEntry(tableEntry); + out.write(tableOut); + out.closeEntry(); + } catch (IOException e) { + String message = String.format("Error writing to table %s", table.name); + LOG.error(message, e); + status.fail(message, e); } + } else { + LOG.info("Skipping {} table. No entries found in zip files.", table.name); } + } + // Close output stream for zip file. + out.close(); + // Handle writing file to storage (local or s3). + storeMergedFeed(); + status.update(false, "Merged feed created successfully.", 100, true); + } - // Determine which tables to merge (only merge GTFS+ tables for MTC extension). - final ArrayNode tablesToMerge = DataManager.isExtensionEnabled("mtc") - ? ((ArrayNode) DataManager.gtfsConfig).addAll((ArrayNode) DataManager.gtfsPlusConfig) - : (ArrayNode) DataManager.gtfsConfig; - int numberOfTables = tablesToMerge.size(); - // Loop over GTFS tables and merge each feed one table at a time. - for (int i = 0; i < numberOfTables; i++) { - JsonNode tableNode = tablesToMerge.get(i); - byte[] tableOut = constructMergedTable(tableNode, zipFilesForVersions); - - // If at least one feed has the table (i.e., tableOut is not null), include it in the merged feed. - if (tableOut != null) { - String tableName = tableNode.get("name").asText(); - double percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; - status.update( "Merging " + tableName, percentComplete); - // Create entry for zip file. - ZipEntry tableEntry = new ZipEntry(tableName); - LOG.info("Writing {} to merged feed", tableName); - try { - out.putNextEntry(tableEntry); - out.write(tableOut); - out.closeEntry(); - } catch (IOException e) { - String message = String.format("Error writing to table %s", tableName); - LOG.error(message, e); - status.fail(message, e); - } - } - } - // Close output stream for zip file. - out.close(); - // Handle writing file to storage (local or s3). - if (mergeType.equals(MergeType.REGIONAL)) { - status.update(false, "Saving merged feed.", 95); - // Store the project merged zip locally or on s3 - if (DataManager.useS3) { - String s3Key = "project/" + filename; - FeedStore.s3Client.putObject(DataManager.feedBucket, s3Key, mergedTempFile); - LOG.info("Storing merged project feed at s3://{}/{}", DataManager.feedBucket, s3Key); - } else { - try { - FeedVersion.feedStore.newFeed(filename, new FileInputStream(mergedTempFile), null); - } catch (IOException e) { - e.printStackTrace(); - LOG.error("Could not store feed for project {}", filename); - throw e; - } + /** + * Collect zipFiles for each feed version before merging tables. + * Note: feed versions are sorted by first calendar date so that future dataset is iterated over first. This is + * required for the MTC merge strategy which prefers entities from the future dataset over past entities. + */ + private List collectAndSortFeeds(Set feedVersions) { + return feedVersions + .stream() + .map(version -> { + try { + return new FeedToMerge(version); + } catch (Exception e) { + LOG.error("Could not create zip file for version {}:", version.parentFeedSource(), version.version); + return null; } + }) + .filter(Objects::nonNull) + // MTC-specific sort mentioned in above comment. + // TODO: If another merge strategy requires a different sort order, a merge type check should be added. + .sorted(Comparator.comparing(entry -> entry.version.validationResult.firstCalendarDate, Comparator.reverseOrder())) + .collect(Collectors.toList()); + } + + private void storeMergedFeed() throws IOException { + if (mergeType.equals(REGIONAL)) { + status.update(false, "Saving merged feed.", 95); + // Store the project merged zip locally or on s3 + if (DataManager.useS3) { + String s3Key = String.join("/", "project", filename); + FeedStore.s3Client.putObject(DataManager.feedBucket, s3Key, mergedTempFile); + LOG.info("Storing merged project feed at s3://{}/{}", DataManager.feedBucket, s3Key); } else { - // Create a new feed version from the file. - // Feed source should be the same for each version if using the FEED_VERSIONS merge type. - FeedSource source = feedVersions.iterator().next().parentFeedSource(); - FeedVersion mergedVersion = new FeedVersion(source); try { - FeedVersion.feedStore.newFeed(mergedVersion.id, new FileInputStream(mergedTempFile), null); + FeedVersion.feedStore.newFeed(filename, new FileInputStream(mergedTempFile), null); } catch (IOException e) { - LOG.error("Could not store merged feed for new version"); + e.printStackTrace(); + LOG.error("Could not store feed for project {}", filename); throw e; } - // Handle the processing of the new merged version (note: s3 upload is handled within this job. - ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(mergedVersion, owner, true); - addNextJob(processSingleFeedJob); } - status.update(false, "Merged feed created successfully.", 100, true); - } catch (Exception e) { - LOG.error("Failed to merge feeds"); - // Bubble up exception to MonitorableJob - throw e; - } finally { - // Delete temp file in finally clause to ensure it is deleted even if the job fails. - mergedTempFile.delete(); + } else { + // Create a new feed version from the file. + // Feed source should be the same for each version if using the MTC merge type. + FeedSource source = feedVersions.iterator().next().parentFeedSource(); + FeedVersion mergedVersion = new FeedVersion(source); + try { + FeedVersion.feedStore.newFeed(mergedVersion.id, new FileInputStream(mergedTempFile), null); + } catch (IOException e) { + LOG.error("Could not store merged feed for new version"); + throw e; + } + // Handle the processing of the new merged version (note: s3 upload is handled within this job. + ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(mergedVersion, owner, true); + addNextJob(processSingleFeedJob); } } /** * Merge the specified table for multiple GTFS feeds. - * @param tableNode tableNode to merge - * @param zipFilesForVersions map of feedSources to zipFiles from which to extract the .txt tables + * @param table table to merge + * @param feedsToMerge map of feedSources to zipFiles from which to extract the .txt tables * @return single merged table for feeds or null if the table did not exist for any feed */ - private static byte[] constructMergedTable(JsonNode tableNode, Map zipFilesForVersions) throws IOException { - - String tableName = tableNode.get("name").asText(); - ByteArrayOutputStream tableOut = new ByteArrayOutputStream(); - ArrayNode fieldsNode = mapper.createArrayNode(); - List headers = new ArrayList<>(); - for (JsonNode fieldNode : tableNode.get("fields")) { - String fieldName = fieldNode.get("name").asText(); - // Clean up spec file to exclude datatools/editor specific fields for the merge job. - boolean isSpecField = !(fieldNode.has("datatools") && fieldNode.get("datatools").asBoolean()); - if (isSpecField) { - fieldsNode.add(fieldNode); - headers.add(fieldName); + private byte[] constructMergedTable(Table table, List feedsToMerge) throws IOException { + String keyField = table.getKeyFieldName(); + String orderField = table.getOrderFieldName(); + if (mergeType.equals(MTC)) { + // MTC requires that the stop and route records be merged based on different key fields. + switch (table.name) { + case "stops": + keyField = "stop_code"; + break; + case "routes": + keyField = "route_short_name"; + break; + default: + // Otherwise, use the standard key field (see keyField declaration. + break; } } - + // Set up objects for outputting the data and tracking the rows encountered + ByteArrayOutputStream tableOut = new ByteArrayOutputStream(); + Map rowValuesForKeys = new HashMap<>(); + Set rowStrings = new HashSet<>(); + int mergedLineNumber = 0; + // Get the spec fields to export + List specFields = table.specFields(); + boolean stopCodeMissingFromFirstTable = false; try { - // write headers to table - tableOut.write(String.join(",", headers).getBytes()); - tableOut.write("\n".getBytes()); - // Iterate over each zip file. - for ( Map.Entry mapEntry : zipFilesForVersions.entrySet()) { - FeedVersion version = mapEntry.getKey(); - FeedSource fs = version.parentFeedSource(); + for (int f = 0; f < feedsToMerge.size(); f++) { + mergeFeedsResult.feedCount++; + // FIXME add check for merge type. + if (f > 0 && (table.name.equals("agency") || table.name.equals("feed_info")) && mergeType.equals(MTC)) { + // Always prefer future file for agency and feed_info tables, which means that we can skip + // iterations following the first one. + // FIXME: This could cause issues with routes or fares that reference an agency_id that no longer + // exists. + LOG.warn("Skipping {} file for feed {}/{} (future file preferred)", table.name, f, feedsToMerge.size()); + continue; + } + FeedToMerge feed = feedsToMerge.get(f); + FeedVersion version = feed.version; + FeedSource feedSource = version.parentFeedSource(); // Generate ID prefix to scope GTFS identifiers to avoid conflicts. - String idScope = getCleanName(fs.name) + version.version; - ZipFile zipFile = mapEntry.getValue(); - // Get a list of the files contained within the zip file to find the table we're currently working on. - final Enumeration entries = zipFile.entries(); - while (entries.hasMoreElements()) { - final ZipEntry entry = entries.nextElement(); - if (tableName.equals(entry.getName())) { - LOG.info("Adding {} table for {}{}", entry.getName(), fs.name, version.version); - - InputStream inputStream = zipFile.getInputStream(entry); + String idScope = getCleanName(feedSource.name) + version.version; + CsvReader csvReader = JdbcGtfsLoader.getCsvReader(feed.zipFile, table, null); + // If csv reader is null, the table was not found in the zip file. There is no need to handle merging + // this table for the current zip file. + if (csvReader == null) continue; + LOG.info("Adding {} table for {}{}", table.name, feedSource.name, version.version); - BufferedReader in = new BufferedReader(new InputStreamReader(inputStream)); - // Read in first line (row headers) - String line = in.readLine(); - List fieldsFoundInZip = Arrays.asList(line.split(",")); - - // Iterate over rows in table, writing them to the out file. - while ((line = in.readLine()) != null) { - String[] newValues = new String[fieldsNode.size()]; - String[] values = line.split(Consts.COLUMN_SPLIT, -1); - if (values.length == 1) { - LOG.warn("Found blank line. Skipping..."); - continue; + Field[] fieldsFoundInZip = JdbcGtfsLoader.getFieldsFromFieldHeaders(csvReader.getHeaders(), table, null); + List fieldsFoundList = Arrays.asList(fieldsFoundInZip); + // Determine the index of the key field for this version's table. + int keyFieldIndex = getFieldIndex(fieldsFoundInZip, keyField); + int lineNumber = 0; + // Iterate over rows in table, writing them to the out file. + while (csvReader.readRecord()) { + String keyValue = csvReader.get(keyFieldIndex); + // FIXME add check for merge type? + if (mergeType.equals(MTC) && lineNumber == 0 && table.name.equals("stops")) { + // For the first line of the stops table, check that the alt. key + // field (stop_code) is present. If it is not, revert to the original key field. + if (f == 0) { + // Check that the first file contains stop_code values. + if ("".equals(keyValue)) { + LOG.warn("stop_code is not present in file {}/{}. Reverting to stop_id", f, feedsToMerge.size()); + // If the key value for stop_code is not present, revert to stop_id. + keyField = table.getKeyFieldName(); + keyFieldIndex = JdbcGtfsLoader.getKeyFieldIndex(table, fieldsFoundInZip); + keyValue = csvReader.get(keyFieldIndex); + stopCodeMissingFromFirstTable = true; } - // Piece together the row to write, which should look practically identical to the original - // row except for the identifiers receiving a prefix to avoid ID conflicts. - for(int v = 0; v < fieldsNode.size(); v++) { - JsonNode fieldNode = fieldsNode.get(v); - String fieldName = fieldNode.get("name").asText(); - - // Get index of field from GTFS spec as it appears in feed - int index = fieldsFoundInZip.indexOf(fieldName); - String val = ""; - try { - index = fieldsFoundInZip.indexOf(fieldName); - if(index != -1) { - val = values[index]; + } else { + // Check whether stop_code exists for the subsequent files. + String firstStopCodeValue = csvReader.get(getFieldIndex(fieldsFoundInZip, "stop_code")); + if (stopCodeMissingFromFirstTable && !"".equals(firstStopCodeValue)) { + // If stop_code was missing from the first file and exists for the second, we consider + // that a failing error. + mergeFeedsResult.failed = true; + mergeFeedsResult.errorCount++; + mergeFeedsResult.failureReasons.add( + "If one stops.txt file contains stop_codes, both feed versions must stop_codes." + ); + } + } + } + boolean skipRecord = false; + String[] rowValues = new String[specFields.size()]; + String[] values = csvReader.getValues(); + if (values.length == 1) { + LOG.warn("Found blank line. Skipping..."); + continue; + } + // Piece together the row to write, which should look practically identical to the original + // row except for the identifiers receiving a prefix to avoid ID conflicts. + for (int v = 0; v < specFields.size(); v++) { + Field field = specFields.get(v); + // Get index of field from GTFS spec as it appears in feed + int index = fieldsFoundList.indexOf(field); + String val = csvReader.get(index); + // Determine if field is a GTFS identifier. + boolean isKeyField = field.isForeignReference() || keyField.equals(field.name); + Set idErrors = table.checkReferencesAndUniqueness(keyValue, lineNumber, field, val, referenceTracker, keyField, orderField); + // Store values for key fields that have been encountered. + switch (table.name) { + // case "calendar_dates": + case "calendar": + // If any service_id in the active feed matches with the future feed, it should be + // modified and all associated trip records must also be changed with the modified + // service_id. + // TODO How can we check that calendar_dates entries are duplicates? I think we would + // need to consider the service_id:exception_type:date as the unique key and include any + // all entries as long as they are unique on this key. + for (NewGTFSError error : idErrors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { + String key = String.join(":", table.name, idScope, val); + // Modify service_id and ensure that referencing trips have service_id updated. + val = String.join(":", idScope, val); + mergeFeedsResult.remappedIds.put(key, val); + } + } + // If a service_id from the active calendar has both the start_date and end_date in the + // future, the service will be excluded from the merged file. Records in trips, + // calendar_dates, and calendar_attributes referencing this service_id shall also be + // removed/ignored. Stop_time records for the ignored trips shall also be removed. + if (f > 0) { + int startDateIndex = getFieldIndex(fieldsFoundInZip, "start_date"); + LocalDate startDate = LocalDate.parse(csvReader.get(startDateIndex), GTFS_DATE_FORMATTER); + if (startDate.isAfter(LocalDate.now())) { + LOG.warn("Skipping calendar entry {} because it operates in the future.", keyValue); + String key = String.join(":", table.name, idScope, keyValue); + mergeFeedsResult.skippedIds.add(key); + skipRecord = true; + continue; + } + // If a service_id from the active calendar has only the end_date in the future, the + // end_date shall be set to one day prior to the earliest start_date in future + // dataset before appending the calendar record to the merged file. + int endDateIndex = getFieldIndex(fieldsFoundInZip, "end_date"); + if (index == endDateIndex) { + LocalDate endDate = LocalDate.parse(csvReader.get(endDateIndex), GTFS_DATE_FORMATTER); + if (endDate.isAfter(LocalDate.now())) { + val = feedsToMerge.get(0).version.validationResult.firstCalendarDate + .minus(1, ChronoUnit.DAYS) + .format(GTFS_DATE_FORMATTER); + } + } + } + break; + case "trips": + // trip_ids between active and future datasets must not match. If any trip_id is found + // to be matching, the merge should fail with appropriate notification to user with the + // cause of the failure. Merge result should include all conflicting trip_ids. + for (NewGTFSError error : idErrors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { + mergeFeedsResult.failureReasons.add("Trip ID conflict caused merge failure."); + mergeFeedsResult.addIdConflict(error.badValue); + skipRecord = true; + } + } + break; + case "stops": + // When stop_code is included, stop merging will be based on that. If stop_code is not + // included, it will be based on stop_id. All stops in future data will be carried + // forward and any stops found in active data that are not in the future data shall be + // appended. If one of the feed is missing stop_code, merge fails with a notification to + // the user with suggestion that the feed with missing stop_code must be fixed with + // stop_code. + case "routes": + String primaryKeyValue = csvReader.get(getKeyFieldIndex(table, fieldsFoundInZip)); + Set primaryKeyErrors = table.checkReferencesAndUniqueness(primaryKeyValue, lineNumber, field, val, referenceTracker); + // Merging will be based on route_short_name in the current and future datasets. All + // matching route_short_names between the datasets shall be considered same route. Any + // route_short_name in active data not present in the future will be appended to the + // future routes file. + if (keyField.equals("stop_code") || keyField.equals("route_short_name")) { + for (NewGTFSError error : idErrors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { + // If we encounter a route that shares its short name with a previous route, + // we need to remap its route_id field so that references point to the previous + // route_id. + String currentId = index == 0 ? val : rowValues[0]; + String key = String.join(":", table.name, idScope, currentId); + // Extract the route_id value used for the route with matching short name. + String[] strings = rowValuesForKeys.get(val); + String id = strings[0]; + if (!id.equals(currentId)) { + // Remap this row's route_id to ensure that referencing trips have their + // route_id updated. + mergeFeedsResult.remappedIds.put(key, id); + } + skipRecord = true; + } + } + // Next check for regular ID conflicts (e.g., on route_id or stop_id) because any + // conflicts here will actually break the feed. This essentially handles the case + // where two routes have different short_names, but share the same route_id. We want + // both of these routes two end up in the merged feed in this case because we're + // matching on short name, so we must modify the route_id. + if (!skipRecord && !referenceTracker.transitIds.contains(String.join(":", keyField, keyValue))) { + for (NewGTFSError error : primaryKeyErrors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { + String key = String.join(":", table.name, idScope, val); + // Modify route_id and ensure that referencing trips have route_id updated. + val = String.join(":", idScope, val); + mergeFeedsResult.remappedIds.put(key, val); + } + } + } + } else { + // Key field has defaulted to the standard primary key field (stop_id or route_id), + // which makes the check much simpler (just skip the duplicate record). + for (NewGTFSError error : idErrors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { + skipRecord = true; + } } - } catch (ArrayIndexOutOfBoundsException e) { - LOG.warn("Index {} out of bounds for file {} and feed {}", index, entry.getName(), fs.name); - continue; } - // Determine if field is GTFS identifier. - String fieldType = fieldNode.get("inputType").asText(); - // If field is a GTFS identifier (e.g., route_id, stop_id, etc.), add scoped prefix. - newValues[v] = fieldType.contains("GTFS") && !val.isEmpty() - ? String.join(":", idScope, val) - : val; + break; + case "transfers": + // For any other table, skip any duplicate record. + for (NewGTFSError error : idErrors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { + skipRecord = true; + } + } + break; + default: + // For any other table, skip any duplicate record. + for (NewGTFSError error : idErrors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { + skipRecord = true; + } + } + break; + } + String valueToWrite = val; + if (field.isForeignReference()) { + // If the field is a foreign reference, check to see whether the reference has been + // remapped due to a conflicting ID from another feed (e.g., calendar#service_id). + String key = String.join(":", field.referenceTable.name, idScope, val); + if (mergeFeedsResult.remappedIds.containsKey(key)) { + mergeFeedsResult.remappedReferences++; + // If the value has been remapped update the value to write. + valueToWrite = mergeFeedsResult.remappedIds.get(key); + } + // If the current foreign ref points to another record that has been skipped, skip this + // record and add its primary key to the list of skipped IDs (so that other references can + // be properly omitted). + if (mergeFeedsResult.skippedIds.contains(key)) { + String skippedKey = String.join(":", table.name, idScope, keyValue); + if (orderField != null) { + skippedKey = String.join(":", + skippedKey, + csvReader.get(getFieldIndex(fieldsFoundInZip, orderField)) + ); + } + mergeFeedsResult.skippedIds.add(skippedKey); + skipRecord = true; + continue; } - // Write line to table (plus new line char). - String newLine = String.join(",", newValues); - tableOut.write(newLine.getBytes()); - tableOut.write("\n".getBytes()); } + if (this.mergeType.equals(REGIONAL) && isKeyField && !val.isEmpty()) { + // For regional merge, if field is a GTFS identifier (e.g., route_id, stop_id, etc.), + // add scoped prefix. + valueToWrite = String.join(":", idScope, val); + } + + rowValues[v] = valueToWrite; + } + if (table.name.equals("routes") && rowValues[0].contains("BART")) { + LOG.info("Route record: {}", rowValues[0]); + } + // Do not write rows that are designated to be skipped. + if (skipRecord && this.mergeType.equals(MTC)) { + mergeFeedsResult.recordsSkipCount++; + continue; } + String newLine = String.join(",", rowValues); + if (!rowStrings.add(newLine)) { + // The line already exists in the output file, do not append it again. This prevents duplicate + // entries for certain files that do not contain primary keys (e.g., fare_rules and transfers) and + // do not otherwise have convenient ways to track uniqueness (like an order field). + // FIXME: add ordinal field/compound keys for transfers (from/to_stop_id) and fare_rules (?). + // Perhaps it makes sense to include all unique fare rules rows, but transfers that share the + // same from/to stop IDs but different transfer times or other values should not both be + // included in the merged feed (yet this strategy would fail to filter those out). + mergeFeedsResult.recordsSkipCount++; + continue; + } + // FIXME: This should be revised for tables with order fields, but it should work fine for its + // primary purposes: to detect exact copy rows and to temporarily hold the data in case a reference + // needs to be looked up in order to remap an entity to that key. + rowValuesForKeys.put(rowValues[keyFieldIndex], rowValues); + if (mergedLineNumber == 0) { + // Write headers to table. + String headers = specFields.stream().map(field -> field.name).collect(Collectors.joining(",")); + tableOut.write(headers.getBytes()); + tableOut.write("\n".getBytes()); + } + // Write line to table (plus new line char). + tableOut.write(newLine.getBytes()); + tableOut.write("\n".getBytes()); + lineNumber++; + mergedLineNumber++; } } - } catch (IOException e) { + } catch (Exception e) { LOG.error( "Error merging feed sources: {}", - zipFilesForVersions.keySet().stream().map(fs -> fs.name).collect(Collectors.toList()).toString() + feedVersions.stream() + .map(version -> version.parentFeedSource().name) + .collect(Collectors.toList()) + .toString() ); throw e; } + // If no rows were ever written, return null (there is no need to generate the empty file). + if (tableOut.size() == 0) return null; + // Track the number of lines in the merged table. + mergeFeedsResult.linesPerTable.put(table.name, mergedLineNumber); + // Otherwise, return the output stream as a byte array. return tableOut.toByteArray(); } + + /** + * Helper class that collects the feed version and its zip file. Note: this class helps with sorting versions to + * merge in a list collection. + */ + private class FeedToMerge { + public FeedVersion version; + public ZipFile zipFile; + FeedToMerge (FeedVersion version) throws IOException { + this.version = version; + this.zipFile = new ZipFile(version.retrieveGtfsFile()); + } + } } diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java index 263bac4bf..dee10059d 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java @@ -1,15 +1,34 @@ package com.conveyal.datatools.manager.jobs; import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; public class MergeFeedsResult { public int feedCount; - public int errors; + public int errorCount; + public MergeFeedsType type; + public Set idConflicts = new HashSet<>(); + public Set skippedIds = new HashSet<>(); + public Map remappedIds = new HashMap<>(); + public Map linesPerTable = new HashMap<>(); + public int remappedReferences; + public int recordsSkipCount; public Date startTime; public boolean failed; + public Set failureReasons = new HashSet<>(); - public MergeFeedsResult () { - startTime = new Date(); + public MergeFeedsResult (MergeFeedsType type) { + this.type = type; + this.startTime = new Date(); + } + + public void addIdConflict (String id) { + idConflicts.add(id); + errorCount++; + failed = true; } } diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsType.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsType.java new file mode 100644 index 000000000..f827c7f96 --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsType.java @@ -0,0 +1,6 @@ +package com.conveyal.datatools.manager.jobs; + +public enum MergeFeedsType { + REGIONAL, + MTC +} diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java deleted file mode 100644 index 745dbca79..000000000 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeProjectFeedsJob.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.conveyal.datatools.manager.jobs; - -import com.conveyal.datatools.common.status.MonitorableJob; -import com.conveyal.datatools.common.utils.Consts; -import com.conveyal.datatools.manager.DataManager; -import com.conveyal.datatools.manager.models.FeedSource; -import com.conveyal.datatools.manager.models.FeedVersion; -import com.conveyal.datatools.manager.models.Project; -import com.conveyal.datatools.manager.persistence.FeedStore; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.BufferedReader; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; -import java.util.zip.ZipOutputStream; - -/** - * Created by landon on 9/19/17. - */ -public class MergeProjectFeedsJob extends MonitorableJob { - - private static final Logger LOG = LoggerFactory.getLogger(MergeProjectFeedsJob.class); - public final Project project; - - public MergeProjectFeedsJob(Project project, String owner) { - super(owner, "Merging project feeds for " + project.name, JobType.MERGE_PROJECT_FEEDS); - this.project = project; - status.message = "Merging feeds..."; - } - - @Override - public void jobLogic () { - Set feedVersions = new HashSet<>(); - // Get latest version for each feed source in project - Collection feedSources = project.retrieveProjectFeedSources(); - for (FeedSource fs : feedSources) { - // check if feed version exists - FeedVersion version = fs.retrieveLatest(); - if (version == null) { - LOG.warn("Skipping {} because it has no feed versions", fs.name); - continue; - } - // modify feed version to use prepended feed id - LOG.info("Adding {} feed to merged zip", fs.name); - feedVersions.add(version); - } - addNextJob(new MergeFeedsJob(owner, feedVersions, String.format("%s.zip", project.id), MergeFeedsJob.MergeType.REGIONAL)); - - } -} From 2fc62d1a0507828967184d0139ef42147ac1d0e2 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Fri, 15 Feb 2019 15:04:26 -0500 Subject: [PATCH 04/23] refactor(job): remove unused job type --- .../com/conveyal/datatools/common/status/MonitorableJob.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/conveyal/datatools/common/status/MonitorableJob.java b/src/main/java/com/conveyal/datatools/common/status/MonitorableJob.java index e4c226943..0d401b2f2 100644 --- a/src/main/java/com/conveyal/datatools/common/status/MonitorableJob.java +++ b/src/main/java/com/conveyal/datatools/common/status/MonitorableJob.java @@ -57,7 +57,6 @@ public enum JobType { EXPORT_SNAPSHOT_TO_GTFS, CONVERT_EDITOR_MAPDB_TO_SQL, VALIDATE_ALL_FEEDS, - MERGE_PROJECT_FEEDS, MERGE_FEED_VERSIONS } From 1e7014b9abdf203ea4c20b80fa51a5cf0e5a24a8 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Fri, 15 Feb 2019 16:13:35 -0500 Subject: [PATCH 05/23] refactor(merge-feeds): improve comments, add job#validationResult --- .../api/FeedVersionController.java | 22 +++++++++- .../controllers/api/ProjectController.java | 2 +- .../datatools/manager/jobs/MergeFeedsJob.java | 43 ++++++++++++++----- .../manager/jobs/ValidateFeedJob.java | 11 +++++ 4 files changed, 64 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java index 3f9b3e379..b53dcd888 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java @@ -5,6 +5,7 @@ import com.conveyal.datatools.manager.auth.Auth0UserProfile; import com.conveyal.datatools.manager.jobs.CreateFeedVersionFromSnapshotJob; import com.conveyal.datatools.manager.jobs.MergeFeedsJob; +import com.conveyal.datatools.manager.jobs.MergeFeedsType; import com.conveyal.datatools.manager.jobs.ProcessSingleFeedJob; import com.conveyal.datatools.manager.models.FeedDownloadToken; import com.conveyal.datatools.manager.models.FeedSource; @@ -36,6 +37,7 @@ import static com.conveyal.datatools.common.utils.SparkUtils.logMessageAndHalt; import static com.conveyal.datatools.manager.controllers.api.FeedSourceController.checkFeedSourcePermissions; import static com.conveyal.datatools.manager.jobs.MergeFeedsType.MTC; +import static com.conveyal.datatools.manager.jobs.MergeFeedsType.REGIONAL; import static spark.Spark.delete; import static spark.Spark.get; import static spark.Spark.post; @@ -268,9 +270,23 @@ private static FeedVersion publishToExternalResource (Request req, Response res) } } + /** + * HTTP controller that handles merging multiple feed versions for a given feed source, with version IDs specified + * in a comma-separated string in the feedVersionIds query parameter and merge type specified in mergeType query + * parameter. NOTE: REGIONAL merge type should only be handled through {@link ProjectController#downloadMergedFeed(Request, Response)}. + */ private static String mergeFeedVersions(Request req, Response res) { String[] versionIds = req.queryParams("feedVersionIds").split(","); - Auth0UserProfile userProfile = req.attribute("user"); + // Try to parse merge type (null or bad value throws IllegalArgumentException). + MergeFeedsType mergeType; + try { + mergeType = MergeFeedsType.valueOf(req.queryParams("mergeType")); + if (mergeType.equals(REGIONAL)) throw new IllegalArgumentException(); + } catch (IllegalArgumentException e) { + logMessageAndHalt(req, 400, "Must provide valid merge type.", e); + return null; + } + // Collect versions to merge (must belong to same feed source). Set versions = new HashSet<>(); String feedSourceId = null; for (String id : versionIds) { @@ -288,7 +304,9 @@ else if (!v.feedSourceId.equals(feedSourceId)) { if (versionIds.length != 2) { logMessageAndHalt(req, 400, "Merging more than two versions is not currently supported."); } - MergeFeedsJob mergeFeedsJob = new MergeFeedsJob(userProfile.getUser_id(), versions, "merged", MTC); + // Kick off merge feeds job. + Auth0UserProfile userProfile = req.attribute("user"); + MergeFeedsJob mergeFeedsJob = new MergeFeedsJob(userProfile.getUser_id(), versions, "merged", mergeType); DataManager.heavyExecutor.execute(mergeFeedsJob); return SparkUtils.formatJobMessage(mergeFeedsJob.jobId, "Merging feed versions..."); } diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java index 6df416e19..dcafea22d 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java @@ -220,7 +220,7 @@ private static Project checkProjectPermissions(Request req, Project project, Str * to getFeedDownloadCredentials with the project ID to obtain either temporary S3 credentials or a download token * (depending on application configuration "application.data.use_s3_storage") to download the zip file. */ - private static String downloadMergedFeed(Request req, Response res) { + static String downloadMergedFeed(Request req, Response res) { Project project = requestProjectById(req, "view"); Auth0UserProfile userProfile = req.attribute("user"); // TODO: make this an authenticated call? diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index 30b3a40f0..700a5f797 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -69,33 +69,53 @@ public class MergeFeedsJob extends MonitorableJob { private static final Logger LOG = LoggerFactory.getLogger(MergeFeedsJob.class); public static final ObjectMapper mapper = new ObjectMapper(); private final Set feedVersions; + private final FeedSource feedSource; private final ReferenceTracker referenceTracker = new ReferenceTracker(); public MergeFeedsResult mergeFeedsResult; private final String filename; public final String projectId; public final MergeFeedsType mergeType; private File mergedTempFile = null; + private final FeedVersion mergedVersion; public MergeFeedsJob(String owner, Set feedVersions, String file, MergeFeedsType mergeType) { super(owner, mergeType.equals(REGIONAL) ? "Merging project feeds" : "Merging feed versions", JobType.MERGE_FEED_VERSIONS); this.feedVersions = feedVersions; + // Grab parent feed source if performing non-regional merge (each version should share the same feed source). + this.feedSource = mergeType.equals(REGIONAL) ? null : feedVersions.iterator().next().parentFeedSource(); // Construct full filename with extension this.filename = String.format("%s.zip", file); // If the merge type is regional, the file string should be equivalent to projectId, which is used by the client // to download the merged feed upon job completion. this.projectId = mergeType.equals(REGIONAL) ? file : null; this.mergeType = mergeType; + // Assuming job is successful, mergedVersion will contain the resulting feed version. + this.mergedVersion = mergeType.equals(REGIONAL) ? null : new FeedVersion(this.feedSource); this.mergeFeedsResult = new MergeFeedsResult(mergeType); } + /** + * The final stage handles clean up (deleting temp file) and adding the next job to process the new merged version + * (assuming the merge did not fail). + */ public void jobFinished() { - // Delete temp file to ensure it does not cause storage bloat. + // Delete temp file to ensure it does not cause storage bloat. Note: merged file has already been stored + // permanently. if (!mergedTempFile.delete()) { // FIXME: send to bugsnag? LOG.error("Merged feed file {} not deleted. This may contribute to storage space shortages.", mergedTempFile.getAbsolutePath()); } + if (!mergeType.equals(REGIONAL) && !status.error && !mergeFeedsResult.failed) { + // Handle the processing of the new version for non-regional merges (note: s3 upload is handled within this job). + ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(mergedVersion, owner, true); + addNextJob(processSingleFeedJob); + } } + /** + * Primary job logic handles collecting and sorting versions, creating a merged table for all versions, and writing + * the resulting zip file to storage. + */ @Override public void jobLogic() throws IOException { // Create temp zip file to add merged feed content to. @@ -144,8 +164,11 @@ public void jobLogic() throws IOException { // Close output stream for zip file. out.close(); // Handle writing file to storage (local or s3). - storeMergedFeed(); - status.update(false, "Merged feed created successfully.", 100, true); + if (mergeFeedsResult.failed) status.fail("Merging feed versions failed."); + else { + storeMergedFeed(); + status.update(false, "Merged feed created successfully.", 100, true); + } } /** @@ -171,6 +194,10 @@ private List collectAndSortFeeds(Set feedVersions) { .collect(Collectors.toList()); } + /** + * Handles writing the GTFS zip file to disk. For REGIONAL merges, this will end up in a project subdirectory on s3. + * Otherwise, it will write to a new version. + */ private void storeMergedFeed() throws IOException { if (mergeType.equals(REGIONAL)) { status.update(false, "Saving merged feed.", 95); @@ -189,19 +216,13 @@ private void storeMergedFeed() throws IOException { } } } else { - // Create a new feed version from the file. - // Feed source should be the same for each version if using the MTC merge type. - FeedSource source = feedVersions.iterator().next().parentFeedSource(); - FeedVersion mergedVersion = new FeedVersion(source); + // Store the zip file for the merged feed version. try { - FeedVersion.feedStore.newFeed(mergedVersion.id, new FileInputStream(mergedTempFile), null); + FeedVersion.feedStore.newFeed(mergedVersion.id, new FileInputStream(mergedTempFile), feedSource); } catch (IOException e) { LOG.error("Could not store merged feed for new version"); throw e; } - // Handle the processing of the new merged version (note: s3 upload is handled within this job. - ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(mergedVersion, owner, true); - addNextJob(processSingleFeedJob); } } diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/ValidateFeedJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/ValidateFeedJob.java index 25d5091fd..a48876acd 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/ValidateFeedJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/ValidateFeedJob.java @@ -4,6 +4,7 @@ import com.conveyal.datatools.common.utils.Scheduler; import com.conveyal.datatools.manager.models.FeedVersion; import com.conveyal.datatools.manager.persistence.Persistence; +import com.conveyal.gtfs.validator.ValidationResult; import com.fasterxml.jackson.annotation.JsonProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -73,4 +74,14 @@ public String getFeedSourceId () { return feedVersion.parentFeedSource().id; } + /** + * Getter that returns the validationResult so that once the job finishes, the client can optionally provide + * directions to users based on the success of the validation or other validation data (e.g., "The feed you have + * loaded is only valid for future dates."). + */ + @JsonProperty + public ValidationResult getValidationResult () { + return feedVersion.validationResult; + } + } From c4109c48a2c5deac9d2eda9a974ee3add0075683 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Mon, 18 Feb 2019 17:13:46 -0500 Subject: [PATCH 06/23] refactor: address PR comments --- .../api/FeedVersionController.java | 8 ++-- .../controllers/api/ProjectController.java | 4 +- .../datatools/manager/jobs/MergeFeedsJob.java | 37 ++++++++++--------- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java index b53dcd888..e6edde333 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java @@ -36,7 +36,6 @@ import static com.conveyal.datatools.common.utils.SparkUtils.formatJobMessage; import static com.conveyal.datatools.common.utils.SparkUtils.logMessageAndHalt; import static com.conveyal.datatools.manager.controllers.api.FeedSourceController.checkFeedSourcePermissions; -import static com.conveyal.datatools.manager.jobs.MergeFeedsType.MTC; import static com.conveyal.datatools.manager.jobs.MergeFeedsType.REGIONAL; import static spark.Spark.delete; import static spark.Spark.get; @@ -273,7 +272,7 @@ private static FeedVersion publishToExternalResource (Request req, Response res) /** * HTTP controller that handles merging multiple feed versions for a given feed source, with version IDs specified * in a comma-separated string in the feedVersionIds query parameter and merge type specified in mergeType query - * parameter. NOTE: REGIONAL merge type should only be handled through {@link ProjectController#downloadMergedFeed(Request, Response)}. + * parameter. NOTE: REGIONAL merge type should only be handled through {@link ProjectController#mergeProjectFeeds(Request, Response)}. */ private static String mergeFeedVersions(Request req, Response res) { String[] versionIds = req.queryParams("feedVersionIds").split(","); @@ -292,7 +291,10 @@ private static String mergeFeedVersions(Request req, Response res) { for (String id : versionIds) { FeedVersion v = Persistence.feedVersions.getById(id); if (v == null) { - logMessageAndHalt(req, 400, "Must provide valid version ID"); + logMessageAndHalt(req, + 400, + String.format("Must provide valid version ID. (No version exists for id=%s.)", id) + ); } // Store feed source id and check other versions for matching. if (feedSourceId == null) feedSourceId = v.feedSourceId; diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java index dcafea22d..cc4db1c1c 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/ProjectController.java @@ -220,7 +220,7 @@ private static Project checkProjectPermissions(Request req, Project project, Str * to getFeedDownloadCredentials with the project ID to obtain either temporary S3 credentials or a download token * (depending on application configuration "application.data.use_s3_storage") to download the zip file. */ - static String downloadMergedFeed(Request req, Response res) { + static String mergeProjectFeeds(Request req, Response res) { Project project = requestProjectById(req, "view"); Auth0UserProfile userProfile = req.attribute("user"); // TODO: make this an authenticated call? @@ -328,7 +328,7 @@ public static void register (String apiPrefix) { post(apiPrefix + "secure/project/:id/fetch", ProjectController::fetch, json::write); post(apiPrefix + "secure/project/:id/deployPublic", ProjectController::publishPublicFeeds, json::write); - get(apiPrefix + "secure/project/:id/download", ProjectController::downloadMergedFeed); + get(apiPrefix + "secure/project/:id/download", ProjectController::mergeProjectFeeds); get(apiPrefix + "secure/project/:id/downloadtoken", ProjectController::getFeedDownloadCredentials, json::write); get(apiPrefix + "public/project/:id", ProjectController::getProject, json::write); diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index 700a5f797..ffbbadb3d 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -9,7 +9,6 @@ import com.conveyal.gtfs.error.NewGTFSError; import com.conveyal.gtfs.error.NewGTFSErrorType; import com.conveyal.gtfs.loader.Field; -import com.conveyal.gtfs.loader.JdbcGtfsLoader; import com.conveyal.gtfs.loader.ReferenceTracker; import com.conveyal.gtfs.loader.Table; import com.csvreader.CsvReader; @@ -41,8 +40,7 @@ import static com.conveyal.datatools.manager.jobs.MergeFeedsType.REGIONAL; import static com.conveyal.datatools.manager.utils.StringUtils.getCleanName; import static com.conveyal.gtfs.loader.DateField.GTFS_DATE_FORMATTER; -import static com.conveyal.gtfs.loader.JdbcGtfsLoader.getFieldIndex; -import static com.conveyal.gtfs.loader.JdbcGtfsLoader.getKeyFieldIndex; +import static com.conveyal.gtfs.loader.Field.getFieldIndex; /** * This job handles merging two or more feed versions according to logic specific to the specified merge type. @@ -259,29 +257,32 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) boolean stopCodeMissingFromFirstTable = false; try { // Iterate over each zip file. - for (int f = 0; f < feedsToMerge.size(); f++) { + for (int feedIndex = 0; feedIndex < feedsToMerge.size(); feedIndex++) { mergeFeedsResult.feedCount++; // FIXME add check for merge type. - if (f > 0 && (table.name.equals("agency") || table.name.equals("feed_info")) && mergeType.equals(MTC)) { + if (feedIndex > 0 && (table.name.equals("agency") || table.name.equals("feed_info")) && mergeType.equals(MTC)) { // Always prefer future file for agency and feed_info tables, which means that we can skip // iterations following the first one. // FIXME: This could cause issues with routes or fares that reference an agency_id that no longer // exists. - LOG.warn("Skipping {} file for feed {}/{} (future file preferred)", table.name, f, feedsToMerge.size()); + LOG.warn("Skipping {} file for feed {}/{} (future file preferred)", table.name, feedIndex, feedsToMerge.size()); continue; } - FeedToMerge feed = feedsToMerge.get(f); + FeedToMerge feed = feedsToMerge.get(feedIndex); FeedVersion version = feed.version; FeedSource feedSource = version.parentFeedSource(); // Generate ID prefix to scope GTFS identifiers to avoid conflicts. String idScope = getCleanName(feedSource.name) + version.version; - CsvReader csvReader = JdbcGtfsLoader.getCsvReader(feed.zipFile, table, null); + CsvReader csvReader = table.getCsvReader(feed.zipFile, null); // If csv reader is null, the table was not found in the zip file. There is no need to handle merging // this table for the current zip file. - if (csvReader == null) continue; + if (csvReader == null) { + LOG.warn("Table {} not found in the zip file for {}{}", table.name, feedSource.name, version.version); + continue; + } LOG.info("Adding {} table for {}{}", table.name, feedSource.name, version.version); - Field[] fieldsFoundInZip = JdbcGtfsLoader.getFieldsFromFieldHeaders(csvReader.getHeaders(), table, null); + Field[] fieldsFoundInZip = table.getFieldsFromFieldHeaders(csvReader.getHeaders(), null); List fieldsFoundList = Arrays.asList(fieldsFoundInZip); // Determine the index of the key field for this version's table. int keyFieldIndex = getFieldIndex(fieldsFoundInZip, keyField); @@ -293,13 +294,13 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) if (mergeType.equals(MTC) && lineNumber == 0 && table.name.equals("stops")) { // For the first line of the stops table, check that the alt. key // field (stop_code) is present. If it is not, revert to the original key field. - if (f == 0) { + if (feedIndex == 0) { // Check that the first file contains stop_code values. if ("".equals(keyValue)) { - LOG.warn("stop_code is not present in file {}/{}. Reverting to stop_id", f, feedsToMerge.size()); + LOG.warn("stop_code is not present in file {}/{}. Reverting to stop_id", feedIndex, feedsToMerge.size()); // If the key value for stop_code is not present, revert to stop_id. keyField = table.getKeyFieldName(); - keyFieldIndex = JdbcGtfsLoader.getKeyFieldIndex(table, fieldsFoundInZip); + keyFieldIndex = table.getKeyFieldIndex(fieldsFoundInZip); keyValue = csvReader.get(keyFieldIndex); stopCodeMissingFromFirstTable = true; } @@ -326,8 +327,8 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) } // Piece together the row to write, which should look practically identical to the original // row except for the identifiers receiving a prefix to avoid ID conflicts. - for (int v = 0; v < specFields.size(); v++) { - Field field = specFields.get(v); + for (int specFieldIndex = 0; specFieldIndex < specFields.size(); specFieldIndex++) { + Field field = specFields.get(specFieldIndex); // Get index of field from GTFS spec as it appears in feed int index = fieldsFoundList.indexOf(field); String val = csvReader.get(index); @@ -356,7 +357,7 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) // future, the service will be excluded from the merged file. Records in trips, // calendar_dates, and calendar_attributes referencing this service_id shall also be // removed/ignored. Stop_time records for the ignored trips shall also be removed. - if (f > 0) { + if (feedIndex > 0) { int startDateIndex = getFieldIndex(fieldsFoundInZip, "start_date"); LocalDate startDate = LocalDate.parse(csvReader.get(startDateIndex), GTFS_DATE_FORMATTER); if (startDate.isAfter(LocalDate.now())) { @@ -400,7 +401,7 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) // the user with suggestion that the feed with missing stop_code must be fixed with // stop_code. case "routes": - String primaryKeyValue = csvReader.get(getKeyFieldIndex(table, fieldsFoundInZip)); + String primaryKeyValue = csvReader.get(table.getKeyFieldIndex(fieldsFoundInZip)); Set primaryKeyErrors = table.checkReferencesAndUniqueness(primaryKeyValue, lineNumber, field, val, referenceTracker); // Merging will be based on route_short_name in the current and future datasets. All // matching route_short_names between the datasets shall be considered same route. Any @@ -499,7 +500,7 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) valueToWrite = String.join(":", idScope, val); } - rowValues[v] = valueToWrite; + rowValues[specFieldIndex] = valueToWrite; } if (table.name.equals("routes") && rowValues[0].contains("BART")) { LOG.info("Route record: {}", rowValues[0]); From f84dd4c98467d64672fe948092d63aa666ed940a Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Tue, 19 Feb 2019 14:28:56 -0500 Subject: [PATCH 07/23] build(pom): update gtfs-lib to snapshot version for testing --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index edcf5377b..c67e40760 100644 --- a/pom.xml +++ b/pom.xml @@ -259,7 +259,7 @@ com.conveyal gtfs-lib - 4.2.4 + 4.2.6-SNAPSHOT From bc0b45047d641d20806c40ed69ca9c495fe1a659 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Thu, 28 Mar 2019 18:35:26 -0400 Subject: [PATCH 08/23] test(merge-feeds): add tests for MTC and REGIONAL merge types --- .../datatools/manager/jobs/MergeFeedsJob.java | 26 ++- .../manager/jobs/MergeFeedsResult.java | 6 - .../datatools/manager/models/Model.java | 9 +- .../manager/jobs/MergeFeedsJobTest.java | 169 ++++++++++++++++++ .../com/conveyal/datatools/bart_new.zip | Bin 0 -> 427758 bytes .../com/conveyal/datatools/bart_old.zip | Bin 0 -> 382464 bytes 6 files changed, 196 insertions(+), 14 deletions(-) create mode 100644 src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java create mode 100644 src/test/resources/com/conveyal/datatools/bart_new.zip create mode 100644 src/test/resources/com/conveyal/datatools/bart_old.zip diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index ffbbadb3d..15b9d9d3b 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -74,8 +74,15 @@ public class MergeFeedsJob extends MonitorableJob { public final String projectId; public final MergeFeedsType mergeType; private File mergedTempFile = null; - private final FeedVersion mergedVersion; + final FeedVersion mergedVersion; + public boolean failOnDuplicateTripId = true; + /** + * @param owner user ID that initiated job + * @param feedVersions set of feed versions to merge + * @param file resulting merge filename (without .zip) + * @param mergeType the type of merge to perform (@link MergeFeedsType) + */ public MergeFeedsJob(String owner, Set feedVersions, String file, MergeFeedsType mergeType) { super(owner, mergeType.equals(REGIONAL) ? "Merging project feeds" : "Merging feed versions", JobType.MERGE_FEED_VERSIONS); this.feedVersions = feedVersions; @@ -103,11 +110,6 @@ public void jobFinished() { // FIXME: send to bugsnag? LOG.error("Merged feed file {} not deleted. This may contribute to storage space shortages.", mergedTempFile.getAbsolutePath()); } - if (!mergeType.equals(REGIONAL) && !status.error && !mergeFeedsResult.failed) { - // Handle the processing of the new version for non-regional merges (note: s3 upload is handled within this job). - ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(mergedVersion, owner, true); - addNextJob(processSingleFeedJob); - } } /** @@ -167,6 +169,14 @@ public void jobLogic() throws IOException { storeMergedFeed(); status.update(false, "Merged feed created successfully.", 100, true); } + LOG.info("Feed merge is complete."); + if (!mergeType.equals(REGIONAL) && !status.error && !mergeFeedsResult.failed) { + // Handle the processing of the new version for non-regional merges (note: s3 upload is handled within this job). + // We must add this job in jobLogic (rather than jobFinished) because jobFinished is called after this job's + // subJobs are run. + ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(mergedVersion, owner, true); + addNextJob(processSingleFeedJob); + } } /** @@ -388,7 +398,9 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) for (NewGTFSError error : idErrors) { if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { mergeFeedsResult.failureReasons.add("Trip ID conflict caused merge failure."); - mergeFeedsResult.addIdConflict(error.badValue); + mergeFeedsResult.idConflicts.add(error.badValue); + mergeFeedsResult.errorCount++; + if (failOnDuplicateTripId) mergeFeedsResult.failed = true; skipRecord = true; } } diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java index dee10059d..c01fd6b89 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java @@ -25,10 +25,4 @@ public MergeFeedsResult (MergeFeedsType type) { this.type = type; this.startTime = new Date(); } - - public void addIdConflict (String id) { - idConflicts.add(id); - errorCount++; - failed = true; - } } diff --git a/src/main/java/com/conveyal/datatools/manager/models/Model.java b/src/main/java/com/conveyal/datatools/manager/models/Model.java index d9e073c60..509ed9ad9 100644 --- a/src/main/java/com/conveyal/datatools/manager/models/Model.java +++ b/src/main/java/com/conveyal/datatools/manager/models/Model.java @@ -96,7 +96,14 @@ public void storeUser(Auth0UserProfile profile) { public void storeUser(String id) { userId = id; if (!Auth0Connection.authDisabled()) { - Auth0UserProfile profile = Auth0Users.getUserById(userId); + Auth0UserProfile profile = null; + // Try to fetch Auth0 user to store email address. This is surrounded by a try/catch because in the event of + // a failure we do not want to cause issues from this low-level operation. + try { + profile = Auth0Users.getUserById(userId); + } catch (Exception e) { + e.printStackTrace(); + } userEmail = profile != null ? profile.getEmail() : null; } else { userEmail = "no_auth@conveyal.com"; diff --git a/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java b/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java new file mode 100644 index 000000000..cf20493e4 --- /dev/null +++ b/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java @@ -0,0 +1,169 @@ +package com.conveyal.datatools.manager.jobs; + +import com.conveyal.datatools.DatatoolsTest; +import com.conveyal.datatools.LoadFeedTest; +import com.conveyal.datatools.manager.models.FeedSource; +import com.conveyal.datatools.manager.models.FeedVersion; +import com.conveyal.datatools.manager.models.Project; +import com.conveyal.datatools.manager.persistence.Persistence; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * Tests for the various {@link MergeFeedsJob} merge types. + */ +public class MergeFeedsJobTest { + private static FeedVersion bartVersion1; + private static FeedVersion bartVersion2; + private static FeedVersion calTrainVersion; + private static Project project; + /** + * Prepare and start a testing-specific web server + */ + @BeforeAll + public static void setUp() { + // start server if it isn't already running + DatatoolsTest.setUp(); + // Create a project, feed sources, and feed versions to merge. + project = new Project(); + project.name = String.format("Test %s", new Date().toString()); + Persistence.projects.create(project); + FeedSource bart = new FeedSource("BART"); + bart.projectId = project.id; + Persistence.feedSources.create(bart); + bartVersion1 = createFeedVersion(bart, "bart_old.zip"); + bartVersion2 = createFeedVersion(bart, "bart_new.zip"); + FeedSource caltrain = new FeedSource("Caltrain"); + caltrain.projectId = project.id; + Persistence.feedSources.create(caltrain); + calTrainVersion = createFeedVersion(caltrain, "caltrain_gtfs.zip"); + } + + /** + * Ensures that a regional feed merge will produce a feed that includes all entities from each feed. + */ + @Test + public void canMergeRegional() { + Set versions = new HashSet<>(); + versions.add(bartVersion1); + versions.add(calTrainVersion); + MergeFeedsJob mergeFeedsJob = new MergeFeedsJob("test", versions, project.id, MergeFeedsType.REGIONAL); + // Run the job in this thread (we're not concerned about concurrency here). + mergeFeedsJob.run(); + // Create a new feed source/version for the merged feed, so we can easily analyze its contents. + FeedSource source = new FeedSource("Merged feed"); + source.projectId = project.id; + Persistence.feedSources.create(source); + File feed = FeedVersion.feedStore.getFeed(project.id + ".zip"); + FeedVersion mergedVersion = createFeedVersion(source, feed); + // Ensure the feed has the row counts we expect. + assertEquals( + mergedVersion.feedLoadResult.trips.rowCount, + bartVersion1.feedLoadResult.trips.rowCount + calTrainVersion.feedLoadResult.trips.rowCount, + "trips count for merged feed should equal sum of trips for versions merged." + ); + assertEquals( + mergedVersion.feedLoadResult.routes.rowCount, + bartVersion1.feedLoadResult.routes.rowCount + calTrainVersion.feedLoadResult.routes.rowCount, + "routes count for merged feed should equal sum of routes for versions merged." + ); + assertEquals( + mergedVersion.feedLoadResult.stops.rowCount, + bartVersion1.feedLoadResult.stops.rowCount + calTrainVersion.feedLoadResult.stops.rowCount, + "stops count for merged feed should equal sum of stops for versions merged." + ); + assertEquals( + mergedVersion.feedLoadResult.agency.rowCount, + bartVersion1.feedLoadResult.agency.rowCount + calTrainVersion.feedLoadResult.agency.rowCount, + "agency count for merged feed should equal sum of agency for versions merged." + ); + assertEquals( + mergedVersion.feedLoadResult.stopTimes.rowCount, + bartVersion1.feedLoadResult.stopTimes.rowCount + calTrainVersion.feedLoadResult.stopTimes.rowCount, + "stopTimes count for merged feed should equal sum of stopTimes for versions merged." + ); + assertEquals( + mergedVersion.feedLoadResult.calendar.rowCount, + bartVersion1.feedLoadResult.calendar.rowCount + calTrainVersion.feedLoadResult.calendar.rowCount, + "calendar count for merged feed should equal sum of calendar for versions merged." + ); + assertEquals( + mergedVersion.feedLoadResult.calendarDates.rowCount, + bartVersion1.feedLoadResult.calendarDates.rowCount + calTrainVersion.feedLoadResult.calendarDates.rowCount, + "calendarDates count for merged feed should equal sum of calendarDates for versions merged." + ); + } + + /** + * Ensures that an MTC merge of feeds with duplicate trip IDs will fail. + */ + @Test + public void mergeMTCShouldFailOnDuplicateTrip() { + Set versions = new HashSet<>(); + versions.add(bartVersion1); + versions.add(bartVersion2); + MergeFeedsJob mergeFeedsJob = new MergeFeedsJob("test", versions, "merged_output", MergeFeedsType.MTC); + // Run the job in this thread (we're not concerned about concurrency here). + mergeFeedsJob.run(); + // Result should fail. + assertEquals(mergeFeedsJob.mergeFeedsResult.failed, true, "Merge feeds job should fail due to duplicate trip IDs."); + } + + /** + * Tests that the MTC merge strategy will successfully merge BART feeds. Note: this test turns off + * {@link MergeFeedsJob#failOnDuplicateTripId} in order to force the merge to succeed even though there are duplicate + * trips contained within. + */ + @Test + public void canMergeBARTFeeds() { + Set versions = new HashSet<>(); + versions.add(bartVersion1); + versions.add(bartVersion2); + MergeFeedsJob mergeFeedsJob = new MergeFeedsJob("test", versions, "merged_output", MergeFeedsType.MTC); + // This time, turn off the failOnDuplicateTripId flag. + mergeFeedsJob.failOnDuplicateTripId = false; + mergeFeedsJob.run(); + // Result should succeed this time. + assertEquals(mergeFeedsJob.mergedVersion.feedLoadResult.trips.rowCount, 4552, "Merged feed trip count should equal expected value."); + assertEquals(mergeFeedsJob.mergedVersion.feedLoadResult.routes.rowCount, 9, "Merged feed route count should equal expected value."); + } + + /** + * Utility function to create a feed version during tests. Note: this is intended to run the job in the same thread, + * so that tasks can run synchronously. + */ + public static FeedVersion createFeedVersion(FeedSource source, String gtfsFileName) { + File gtfsFile = new File(LoadFeedTest.class.getResource(gtfsFileName).getFile()); + return createFeedVersion(source, gtfsFile); + } + + /** + * Utility function to create a feed version during tests. Note: this is intended to run the job in the same thread, + * so that tasks can run synchronously. + */ + public static FeedVersion createFeedVersion(FeedSource source, File gtfsFile) { + FeedVersion version = new FeedVersion(source); + InputStream is; + try { + is = new FileInputStream(gtfsFile); + version.newGtfsFile(is); + } catch (IOException e) { + e.printStackTrace(); + } + ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(version, "test", true); + // Run in same thread. + processSingleFeedJob.run(); + return version; + } + +} diff --git a/src/test/resources/com/conveyal/datatools/bart_new.zip b/src/test/resources/com/conveyal/datatools/bart_new.zip new file mode 100644 index 0000000000000000000000000000000000000000..917d60d913781be4511b5df4892c70ffdad5dce7 GIT binary patch literal 427758 zcmcG$c|4Tg`#(N2#uyC7K4h60WM@WWNwyg?b{hK<2za1yvn1risKy#4)xeJ-elM~3SU;(3#B2vDbFy5T%n;aWJ#{FTovj}7OE*59mfmd<$nfCs1C<`n9dn2DY{m83oU;_6l5oA*tx)+)UBE5{Dl?I_ZKv# zJ<-}IYYFb?TevH+1r8T7)#)~c4(1i4YXPP|czIFNoYmM#$9J zCqIsEHXP#5d1l>$K5YKnTRkY~+9a{j_Li_wxF%Ku)Ub6+>w35Yn~lBLwn!meyy7xIlaIs9T&U*Hs~G5B!H8v{Bt*F zOLhDJg(C|=9597>eWD52C20Q||5DTmZ&3gZr3i-Eg5^ZB^D=o?-K~tQDPFv;R1`+E ztnzQm8HxN%lL7Y6s1`U$4QLE0eAXAz_N*_JKg69fLN%BV?-rq{;5#@mpdL` zvm6eTl|B52L)AYVfT)9msaox&NPWj#< zPAP@p1Iw`1DMEojo;Nfw5j!035O`2dJNwX_O#0t89svKIE5_nBI^;y`ZCpjLaJ^V- zPjFH3&3|4!j;2%@yW6l+N;&iQpr2TK(CH79GVE=buSJslS5I!ILqBg-8d)(F!|o6> z%+dzhSFhoIiU_WZ9kc4Vo2f&wS@XaM_Scgh4_R}o1>TN$c}7WA@CPNVp&-NI zbiTv2dAnY04XnmOQ*_~3)b;`CVPVqgdC$@Wh?S7}k+jKuz%)vzO*-FQH#H>Jr20 zB2}1|pfB#t*INGQLe5X@AHMebm3nF1|2@(jMz9Z-q(LCN_Nnj48bzP~%H zUEKKe=PPH=_B~gF4>3MZF2{Zz5^aC~Si@j@`&)m!^No)61`WfKi(YijMd1F7FMiWirl@M`{7Dowcdw|yF-EQ zxZ=65xi9)6H4HB97H-|Pt%+Ox`S^xSrCr?C`q8JQSDct%_fIgZbw6C#-Q~MwdnI;b zb8EUC^|cyXf91n?uf?HfZ82$6q^_rQ^=&a(Tx7`EHr- zQ?FzY7ri8YZOgNLeW5b;=Z?Rp;gY(+{`Yayz3=_g9kMOX+Lw3re50GR@7bTx43m!i z6&p2WIyZh^>Sy$sxL;#QjZT-3f4-csoHhL?EN8skK5Fah1*y}H^WR1~Vznb|P&6Cg zXUP1WGyGTF$ibHb=>yF+#$*^jwm_HcD>jbI_e;lMO%ePUb^aD>V=|#{5X66sKVOa? zt3gNRlj#E%$@IJuIun_H3laxe-jpo*0+vxH*=o8%zQ915%YbHev%%%S^&>M|^i0*FS~Z4?O=70A6m+GaiUMqRdM0KYR5_AxPg;zKttgKFK1+rV|A+iU%cGeQj5liucJVvZ| zq3rZ$1hb3xHF!+gyTmO#3op0pM_-uM1yAK_M%Vc zzzfBy4`-jDBR&gZqikGjdJd;pMccF#xQr-j11!Ejgs8p(tD5NC#u>d(6jF5C9DeSp z|LE=6XP5Yw4=+5kT|Dg9-Wy_5!T(ukDZr)JGAng~B-zOTtB7|pSPkxG?cObUfn8yF z&W&MIo&kK^C*MnPdN?;~ePg?7mLeE`+tm{_yHY#>p0xNe=8?8GiMEH6mk`?1_ zrWZ4rKT{E`>tw>EODH#H(5M4xo9?V=*irZwa z5r@d`XRln_hN%jPJ(g)5Xf71+okaTv7^T8|1I%FN zX0Xr43Paz}j8ZF=#T?vxRXDC#!Y*lvaq|~+@n7+!e$g|$nzbNRIam!Jbn&s$Cv_n=j1>|7rLVhodio-VN3m%!X42- zP2*~!QY)x9I4Lw6EX1oqjr`8Z&QBuVBz3XQD8Sh86<)rdYZQcJOpI;$d3wW`$c$5n z3OcXQl2OI=E6@Ve`kcc|EnA8%wVIpjr_Ptek0yLv8N2$e73Ie4y(Tfnp_#!7#Q_za zs~SmCFs@S|u3Tf|(2C*2kL9o{EsnR!B)6`78H=4B_k+qNLebr}m*97Tu;*aIr?{0;;78A-&zPAphpJr28@?N6WD1b~ z9f74~hyDWpBr~I}lYedO*2FJLyB{UDZ2<+q#hF~TK{XUu(~vV1$mca9KP1aar$=7N zkxnm?SLw5`v9+8@_cl9 zWKBI?!Gl~BjGf3mdiX=MEbY3#06q@NnVh7A+;Blxlh8P5q758ciAL6EUmmYbXqLc> z(=(9tXhebw4NeY^r*gm};;Ev@K5aDqhquw+>{93$57gr%db=aRNE^A)oPe^AmQmWd zAj74~_ZT(X#Wm9fx-dy2@KvGt<|p;2e(OfkS2=j?){S;P&YHaVfs~Y*=bf}d&)SEh^9HHfOovg>7%;k8GW%X5HnX}@RAv!sW zjM>=CVDZhxTM1k@F>c~Yf2uAf;;V7eFd-fQTLsaB@cuiiqKlWnb1Hn?Xy;bK4{J6z z@x@S91D-}n0*@h$#Tl8YNf=~mfHz$vbun?)2FAnY!G&1rEDuJZ7@g(3f3x5Hu=CS6 zYFv-epM8@kIkGkk zS-X!^6dKL6v zh3P44%Wxi9A9LL*z12zDaqg1jTr& zyx-{ndg?0s(ixF^03rZNZ(>y0#&YB&9Z6c?gKxCxsSBE=%BjFy>`lH zw(@51tNF%$^TSmDLmzPws|wfh^b-mAU=am%Zk9LkTkqL$7it=NgbOu#O# zud+WA<>rmYF#}L)Wm?_w7z82_*A~36Ac0IhmX%t8je$L8Dxfy?TfHXLSv+i-B8Yc% zHPrVlU|e=M>6QKxhkZ=Jw0Z#sfERJn`41~028BdT@UTe+phkImG+VvBIw465Y)R8> zN&QBsYFiYF?S@sMk70ae_N|1<$)mRdA4qrN7p;3lzV)Oob~IT)Du|Ne6BWcM0`8MF z+s;ly0&nD*ONfO8rK@R|;E^HJ`2?qn2ZwQ1Qm9`SCOzsJnE_HtBq>0OJ@jCy@2uIb zm8)s`t&x-WSiL=uob-MPeABqKc>FH0uQw^G?4cexjiZU%+Z>pX$s7@DA-9uyd-_1a zd`CFbIEKt17!+H#+N;{s5HzPHN&0_7uSK8z+clEE-ju>*42I=!sA4 zhSX*~ z3b3#^wE`n7`_e%Lk)ph7W~?+|uXM+*hHmSyOu!1Gta~qYnD_40T?o0F5s}Vva7cDo z#z)<8sl3X?B_!NW4^{&78SN=WRCu@PBdbVVY11;?wlV*xZH1KlROaP?r_$ZFPaVjB zB|P9*6B1j-)%GW5w1On5G@QZ zy<{VxyhVgrF7EYs@l2Uk=R{8hmiscRw>LCXO)W>RwOL1vHO#(nH8VOqw6TyH`WNbu zN6iT3BJ1K^PE}FXENM!)i$nNRPkczlcS|mTB}*>xWNyAhcdvoo;1?>VgXbQUg%ZZx zRS;)a3Yw8DFWfyIn66hfdy)(vN<6*-j1uSR^9mBr>hdC>lEx{x0b|@9yUUy2Z8jTg za4nQ`7HqC>)f!h~be#8wm;2*DxCx~>eNnvU^91WV#v(mFfB$@M2p>x|HJVDS_N6b*!(poQT@Q4qjfj^{Cc59== zM`!c%ax_!JYbR!<7@7d9#o}l>DqsuAKP!bbd9;P3aPT!nW=X`Yj)M5IyN!GF$yE!$ z6X05=0l<*@*l1UCKn^9fMnA{RU)P#KUlYuI9nm3y+nV(7AxH_cBHv#|-8PKULUT$4Rk!{4bcpj=_E}nT1>+e&R{lVY#8v9_^R=aoNN{Xy*UUf>< zN6!O%tpN zdvxltZ;RX|0rBauk^nlVsfQIRw{PA;Dtqvf-usiLH?z&JU8D)99(=fD$xDxHTN=Rp zxZ@*E8{ zF-h%7ZCyDk=Q-KX-eK4qxqVUs^20lY&sh@xJHjy)xU?-z;@XxvSMSIGcR({M9u)7{ z{pLF>?Mo#vmw@;b6Yq*yN7L+U|J1D}{8N{$=WY(_V&Er(S z(dg`N2ibZCWl{@G9cPbJ;mY*xn29;26`CUC`F@l{mSu-(mFY3A{qtj&ZFOe*P#N8* zqX?!S{#AXoVy#uL)jzjutwcJvzvqolZ^$Nn_Gs-%<{P%2H!`UYOc!RC6K0qBD-~G4 z6YxQCFNSSNfKD_sWD{-gpSzU#z!ZTC)hp9Sk)>Z`w$sY^3oA<;l-wW{!lJWPPf_ z&d+zQTHE2@S7&1swor-p`;bCP!bR;FMMSB123SEPkV@z)oV{9wiz#$KNS{N_W=~}R z4Nx8CN~vcGlzOzydqJXK<3(lK+AWuQEqS8m!j299z67>XSn6bamzVl-d7Sg7xy8+S zZbKSD(HV=Tu-OsNluGlK0$7z!q_u_IhpP9eHf(R#`e}fxwUSA`T?9<1X?<|7?(o

JWtxKqsr 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%0A&;%pB7dXE1)JLkDM3>W^EYYRXls(MsH-%Tv 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 z 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%0Dj0VK*O^^cUYN)ire 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 YzE(e=j~$0Pkr4cCKMHP(c>)dpA20bQ=l}o! literal 0 HcmV?d00001 diff --git a/src/test/resources/com/conveyal/datatools/bart_old.zip b/src/test/resources/com/conveyal/datatools/bart_old.zip new file mode 100644 index 0000000000000000000000000000000000000000..6f4af8fcdaf5e0ceeffe360f1049faf336eacedd GIT binary patch literal 382464 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

N4zEv0Zeq7#sLs=m|K}mli@pGpZzil-R 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%0Dc%~CIV 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 literal 0 HcmV?d00001 From fb3a2d83365914721a705a880eb380ff22011c95 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Mon, 1 Apr 2019 17:00:03 -0400 Subject: [PATCH 09/23] refactor(junit): refactor tests to use junit4 --- pom.xml | 14 ++--- .../manager/jobs/MergeFeedsJobTest.java | 56 +++++++++++-------- .../manager/persistence/PersistenceTest.java | 4 +- 3 files changed, 41 insertions(+), 33 deletions(-) diff --git a/pom.xml b/pom.xml index 7ba9e9977..8862b186d 100644 --- a/pom.xml +++ b/pom.xml @@ -243,7 +243,11 @@ 2.1.0 - + com.conveyal gtfs-lib @@ -313,14 +317,6 @@ 19.2 - - - junit - junit - 4.12 - test - - com.bugsnag diff --git a/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java b/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java index cf20493e4..c404690b9 100644 --- a/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java +++ b/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java @@ -6,8 +6,8 @@ import com.conveyal.datatools.manager.models.FeedVersion; import com.conveyal.datatools.manager.models.Project; import com.conveyal.datatools.manager.persistence.Persistence; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.BeforeClass; +import org.junit.Test; import java.io.File; import java.io.FileInputStream; @@ -17,7 +17,7 @@ import java.util.HashSet; import java.util.Set; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.Assert.assertEquals; /** * Tests for the various {@link MergeFeedsJob} merge types. @@ -30,7 +30,7 @@ public class MergeFeedsJobTest { /** * Prepare and start a testing-specific web server */ - @BeforeAll + @BeforeClass public static void setUp() { // start server if it isn't already running DatatoolsTest.setUp(); @@ -68,39 +68,39 @@ public void canMergeRegional() { FeedVersion mergedVersion = createFeedVersion(source, feed); // Ensure the feed has the row counts we expect. assertEquals( - mergedVersion.feedLoadResult.trips.rowCount, + "trips count for merged feed should equal sum of trips for versions merged.", bartVersion1.feedLoadResult.trips.rowCount + calTrainVersion.feedLoadResult.trips.rowCount, - "trips count for merged feed should equal sum of trips for versions merged." + mergedVersion.feedLoadResult.trips.rowCount ); assertEquals( - mergedVersion.feedLoadResult.routes.rowCount, + "routes count for merged feed should equal sum of routes for versions merged.", bartVersion1.feedLoadResult.routes.rowCount + calTrainVersion.feedLoadResult.routes.rowCount, - "routes count for merged feed should equal sum of routes for versions merged." - ); + mergedVersion.feedLoadResult.routes.rowCount + ); assertEquals( + "stops count for merged feed should equal sum of stops for versions merged.", mergedVersion.feedLoadResult.stops.rowCount, - bartVersion1.feedLoadResult.stops.rowCount + calTrainVersion.feedLoadResult.stops.rowCount, - "stops count for merged feed should equal sum of stops for versions merged." + bartVersion1.feedLoadResult.stops.rowCount + calTrainVersion.feedLoadResult.stops.rowCount ); assertEquals( + "agency count for merged feed should equal sum of agency for versions merged.", mergedVersion.feedLoadResult.agency.rowCount, - bartVersion1.feedLoadResult.agency.rowCount + calTrainVersion.feedLoadResult.agency.rowCount, - "agency count for merged feed should equal sum of agency for versions merged." + bartVersion1.feedLoadResult.agency.rowCount + calTrainVersion.feedLoadResult.agency.rowCount ); assertEquals( + "stopTimes count for merged feed should equal sum of stopTimes for versions merged.", mergedVersion.feedLoadResult.stopTimes.rowCount, - bartVersion1.feedLoadResult.stopTimes.rowCount + calTrainVersion.feedLoadResult.stopTimes.rowCount, - "stopTimes count for merged feed should equal sum of stopTimes for versions merged." + bartVersion1.feedLoadResult.stopTimes.rowCount + calTrainVersion.feedLoadResult.stopTimes.rowCount ); assertEquals( + "calendar count for merged feed should equal sum of calendar for versions merged.", mergedVersion.feedLoadResult.calendar.rowCount, - bartVersion1.feedLoadResult.calendar.rowCount + calTrainVersion.feedLoadResult.calendar.rowCount, - "calendar count for merged feed should equal sum of calendar for versions merged." + bartVersion1.feedLoadResult.calendar.rowCount + calTrainVersion.feedLoadResult.calendar.rowCount ); assertEquals( + "calendarDates count for merged feed should equal sum of calendarDates for versions merged.", mergedVersion.feedLoadResult.calendarDates.rowCount, - bartVersion1.feedLoadResult.calendarDates.rowCount + calTrainVersion.feedLoadResult.calendarDates.rowCount, - "calendarDates count for merged feed should equal sum of calendarDates for versions merged." + bartVersion1.feedLoadResult.calendarDates.rowCount + calTrainVersion.feedLoadResult.calendarDates.rowCount ); } @@ -116,7 +116,11 @@ public void mergeMTCShouldFailOnDuplicateTrip() { // Run the job in this thread (we're not concerned about concurrency here). mergeFeedsJob.run(); // Result should fail. - assertEquals(mergeFeedsJob.mergeFeedsResult.failed, true, "Merge feeds job should fail due to duplicate trip IDs."); + assertEquals( + "Merge feeds job should fail due to duplicate trip IDs.", + true, + mergeFeedsJob.mergeFeedsResult.failed + ); } /** @@ -134,8 +138,16 @@ public void canMergeBARTFeeds() { mergeFeedsJob.failOnDuplicateTripId = false; mergeFeedsJob.run(); // Result should succeed this time. - assertEquals(mergeFeedsJob.mergedVersion.feedLoadResult.trips.rowCount, 4552, "Merged feed trip count should equal expected value."); - assertEquals(mergeFeedsJob.mergedVersion.feedLoadResult.routes.rowCount, 9, "Merged feed route count should equal expected value."); + assertEquals( + "Merged feed trip count should equal expected value.", + 4552, + mergeFeedsJob.mergedVersion.feedLoadResult.trips.rowCount + ); + assertEquals( + "Merged feed route count should equal expected value.", + 9, + mergeFeedsJob.mergedVersion.feedLoadResult.routes.rowCount + ); } /** diff --git a/src/test/java/com/conveyal/datatools/manager/persistence/PersistenceTest.java b/src/test/java/com/conveyal/datatools/manager/persistence/PersistenceTest.java index 846fe77bb..143aa261d 100644 --- a/src/test/java/com/conveyal/datatools/manager/persistence/PersistenceTest.java +++ b/src/test/java/com/conveyal/datatools/manager/persistence/PersistenceTest.java @@ -30,7 +30,7 @@ public void createFeedSource() { String id = feedSource.id; Persistence.feedSources.create(feedSource); String retrievedId = Persistence.feedSources.getById(id).id; - assertEquals("Found FeedSource ID should equal inserted ID.", retrievedId, id); + assertEquals("Found FeedSource ID should equal inserted ID.", id, retrievedId); } // @Test @@ -59,7 +59,7 @@ public void createProject() { String id = project.id; Persistence.projects.create(project); String retrievedId = Persistence.projects.getById(id).id; - assertEquals("Found Project ID should equal inserted ID.", retrievedId, id); + assertEquals("Found Project ID should equal inserted ID.", id, retrievedId); } // // @Test From 72c57f6fb9958d64d6b785a26d27e01d9b5f1734 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Mon, 1 Apr 2019 17:10:31 -0400 Subject: [PATCH 10/23] build(pom): add junit 4 --- pom.xml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8862b186d..4734d4954 100644 --- a/pom.xml +++ b/pom.xml @@ -243,9 +243,16 @@ 2.1.0 + + + junit + junit + 4.12 + test + + From 6b06107bbdd14577cd8def339107d070df98a261 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Mon, 1 Apr 2019 17:33:54 -0400 Subject: [PATCH 11/23] test: create database if not exists --- .../com/conveyal/datatools/DatatoolsTest.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/test/java/com/conveyal/datatools/DatatoolsTest.java b/src/test/java/com/conveyal/datatools/DatatoolsTest.java index 19e306dc5..1f5bf0954 100644 --- a/src/test/java/com/conveyal/datatools/DatatoolsTest.java +++ b/src/test/java/com/conveyal/datatools/DatatoolsTest.java @@ -6,6 +6,8 @@ import org.slf4j.LoggerFactory; import java.io.IOException; +import java.sql.Connection; +import java.sql.SQLException; /** * Created by landon on 2/24/17. @@ -23,6 +25,19 @@ public static void setUp() { String[] args = {"configurations/default/env.yml.tmp", "configurations/default/server.yml.tmp"}; try { DataManager.main(args); + // Attempt to create database for testing. + String databaseUrl = DataManager.getConfigPropertyAsText("GTFS_DATABASE_URL"); + String databaseName = databaseUrl.split("/")[3]; + try { + Connection connection = DataManager.GTFS_DATA_SOURCE.getConnection(); + // Auto-commit must be enabled for a create database command. + connection.setAutoCommit(true); + connection.prepareStatement(String.format("CREATE DATABASE %s", databaseName)) + .execute(); + } catch (SQLException e) { + // Catch already exists error. + e.printStackTrace(); + } setUpIsDone = true; } catch (IOException e) { e.printStackTrace(); From c3b9c9e7b208f18181c540b5a167b40c85ffc682 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Mon, 1 Apr 2019 17:42:55 -0400 Subject: [PATCH 12/23] test: add log --- src/test/java/com/conveyal/datatools/DatatoolsTest.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/conveyal/datatools/DatatoolsTest.java b/src/test/java/com/conveyal/datatools/DatatoolsTest.java index 1f5bf0954..95601b458 100644 --- a/src/test/java/com/conveyal/datatools/DatatoolsTest.java +++ b/src/test/java/com/conveyal/datatools/DatatoolsTest.java @@ -32,7 +32,10 @@ public static void setUp() { Connection connection = DataManager.GTFS_DATA_SOURCE.getConnection(); // Auto-commit must be enabled for a create database command. connection.setAutoCommit(true); - connection.prepareStatement(String.format("CREATE DATABASE %s", databaseName)) + String createDBSql = String.format("CREATE DATABASE %s", databaseName); + LOG.info(createDBSql); + connection + .prepareStatement(createDBSql) .execute(); } catch (SQLException e) { // Catch already exists error. From b0f02608dbe6045ce18c25593ff073f43ac0f3e2 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Mon, 1 Apr 2019 18:05:29 -0400 Subject: [PATCH 13/23] test(ci): create database using travis --- .travis.yml | 15 +++++++++++---- .../com/conveyal/datatools/DatatoolsTest.java | 16 ---------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6eaec67d4..0903f7043 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,19 @@ language: java +language: java jdk: -- oraclejdk8 + - oraclejdk8 install: true sudo: false # Install mongoDB to perform persistence tests -services: mongodb +services: + - mongodb + - postgresql +addons: + postgresql: 9.6 cache: directories: - - "$HOME/.m2" - - "$HOME/.cache/yarn" + - $HOME/.m2 + - $HOME/.cache/yarn # Install semantic-release before_script: - yarn global add @conveyal/maven-semantic-release semantic-release@15 @@ -17,6 +22,8 @@ before_install: # set region in AWS config for S3 setup - mkdir ~/.aws && printf '%s\n' '[default]' 'aws_access_key_id=foo' 'aws_secret_access_key=bar' 'region=us-east-1' > ~/.aws/config - cp configurations/default/server.yml.tmp configurations/default/server.yml +# create database for tests +- if [ "$SHOULD_RUN_E2E" = "true" ]; then psql -U postgres -c 'CREATE DATABASE catalogue;'; fi script: # package jar - mvn package diff --git a/src/test/java/com/conveyal/datatools/DatatoolsTest.java b/src/test/java/com/conveyal/datatools/DatatoolsTest.java index 95601b458..a62475e2c 100644 --- a/src/test/java/com/conveyal/datatools/DatatoolsTest.java +++ b/src/test/java/com/conveyal/datatools/DatatoolsTest.java @@ -25,22 +25,6 @@ public static void setUp() { String[] args = {"configurations/default/env.yml.tmp", "configurations/default/server.yml.tmp"}; try { DataManager.main(args); - // Attempt to create database for testing. - String databaseUrl = DataManager.getConfigPropertyAsText("GTFS_DATABASE_URL"); - String databaseName = databaseUrl.split("/")[3]; - try { - Connection connection = DataManager.GTFS_DATA_SOURCE.getConnection(); - // Auto-commit must be enabled for a create database command. - connection.setAutoCommit(true); - String createDBSql = String.format("CREATE DATABASE %s", databaseName); - LOG.info(createDBSql); - connection - .prepareStatement(createDBSql) - .execute(); - } catch (SQLException e) { - // Catch already exists error. - e.printStackTrace(); - } setUpIsDone = true; } catch (IOException e) { e.printStackTrace(); From 97e742fc1b941322b60b100e64a70d4d905489af Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Wed, 3 Apr 2019 14:01:02 -0400 Subject: [PATCH 14/23] build(travis): always create postgres db for tests --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0903f7043..b4d0bc5e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ before_install: - mkdir ~/.aws && printf '%s\n' '[default]' 'aws_access_key_id=foo' 'aws_secret_access_key=bar' 'region=us-east-1' > ~/.aws/config - cp configurations/default/server.yml.tmp configurations/default/server.yml # create database for tests -- if [ "$SHOULD_RUN_E2E" = "true" ]; then psql -U postgres -c 'CREATE DATABASE catalogue;'; fi +- psql -U postgres -c 'CREATE DATABASE catalogue;' script: # package jar - mvn package From d94f40e9948e08e302eec86c311d96495872a637 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Tue, 23 Apr 2019 18:39:04 -0400 Subject: [PATCH 15/23] refactor(merge-feeds): address PR comments --- .../manager/gtfsplus/CalendarAttribute.java | 8 +- .../datatools/manager/gtfsplus/Direction.java | 4 +- .../manager/gtfsplus/FareRiderCategory.java | 4 +- .../manager/gtfsplus/FareZoneAttribute.java | 4 +- .../manager/gtfsplus/GtfsPlusTable.java | 10 + .../manager/gtfsplus/RealtimeRoute.java | 4 +- .../manager/gtfsplus/RealtimeStop.java | 4 +- .../manager/gtfsplus/RealtimeTrip.java | 4 +- .../manager/gtfsplus/RiderCategory.java | 4 +- .../manager/gtfsplus/StopAttribute.java | 4 +- .../datatools/manager/gtfsplus/TimePoint.java | 4 +- .../manager/gtfsplus/package-info.java | 16 + .../datatools/manager/jobs/MergeFeedsJob.java | 705 +++++++++++------- .../manager/jobs/MergeFeedsResult.java | 14 +- .../datatools/manager/models/Model.java | 6 + .../manager/jobs/MergeFeedsJobTest.java | 30 +- .../conveyal/datatools/napa-no-agency-id.zip | Bin 0 -> 314463 bytes 17 files changed, 524 insertions(+), 301 deletions(-) create mode 100644 src/main/java/com/conveyal/datatools/manager/gtfsplus/package-info.java create mode 100644 src/test/resources/com/conveyal/datatools/napa-no-agency-id.zip diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/CalendarAttribute.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/CalendarAttribute.java index ad16d471e..10cea50c0 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/CalendarAttribute.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/CalendarAttribute.java @@ -2,6 +2,7 @@ import com.conveyal.gtfs.model.Entity; +import javax.naming.OperationNotSupportedException; import java.sql.PreparedStatement; import java.sql.SQLException; @@ -12,9 +13,8 @@ public class CalendarAttribute extends Entity { public String service_id; public String service_description; - // TODO - @Override - public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) { + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/Direction.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/Direction.java index 9e5666d0a..4d618a12a 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/Direction.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/Direction.java @@ -14,9 +14,9 @@ public class Direction extends Entity { public String direction; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareRiderCategory.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareRiderCategory.java index 000632b56..6d759c062 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareRiderCategory.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareRiderCategory.java @@ -16,9 +16,9 @@ public class FareRiderCategory extends Entity { public LocalDate expiration_date; public LocalDate commencement_date; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareZoneAttribute.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareZoneAttribute.java index 780ec62be..099f81b33 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareZoneAttribute.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/FareZoneAttribute.java @@ -12,9 +12,9 @@ public class FareZoneAttribute extends Entity { public String zone_id; public String zone_name; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/GtfsPlusTable.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/GtfsPlusTable.java index 062aa5664..2255e36d6 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/GtfsPlusTable.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/GtfsPlusTable.java @@ -11,6 +11,12 @@ import static com.conveyal.gtfs.loader.Requirement.PROPRIETARY; import static com.conveyal.gtfs.loader.Requirement.REQUIRED; +/** + * This class contains GTFS+ table definitions that are based on gtfs-lib's {@link Table} constants. + * Currently, these are only used when operating on tables being merged within + * {@link com.conveyal.datatools.manager.jobs.MergeFeedsJob}. The definition of these tables can be + * found at https://www.transitwiki.org/TransitWiki/images/e/e7/GTFS%2B_Additional_Files_Format_Ver_1.7.pdf. + */ public class GtfsPlusTable { public static final Table REALTIME_ROUTES = new Table("realtime_routes", RealtimeRoute.class, PROPRIETARY, new StringField("route_id", REQUIRED).isReferenceTo(Table.ROUTES), @@ -72,6 +78,10 @@ public class GtfsPlusTable { new StringField("zone_name", REQUIRED) ); + /** + * List of tables in the order such that internal references can be appropriately checked as + * tables are loaded/encountered. + */ public static final Table[] tables = new Table[] { REALTIME_ROUTES, REALTIME_STOPS, diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeRoute.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeRoute.java index 93d33d9c3..e6c996aa5 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeRoute.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeRoute.java @@ -13,9 +13,9 @@ public class RealtimeRoute extends Entity { public String realtime_routename; public String realtime_routecode; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeStop.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeStop.java index 94033fa76..51a9f3551 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeStop.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeStop.java @@ -13,9 +13,9 @@ public class RealtimeStop extends Entity { public String stop_id; public String realtime_stop_id; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeTrip.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeTrip.java index d2acbf42f..133990209 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeTrip.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RealtimeTrip.java @@ -12,9 +12,9 @@ public class RealtimeTrip extends Entity { public String trip_id; public String realtime_trip_id; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RiderCategory.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RiderCategory.java index 3b44b487c..82442b13b 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/RiderCategory.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/RiderCategory.java @@ -12,9 +12,9 @@ public class RiderCategory extends Entity { public int rider_category_id; public String rider_category_description; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/StopAttribute.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/StopAttribute.java index 84b19e834..e2c0ba8f8 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/StopAttribute.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/StopAttribute.java @@ -15,9 +15,9 @@ public class StopAttribute extends Entity { public String relative_position; public String stop_city; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/TimePoint.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/TimePoint.java index 8e2c83af1..458ba86e3 100644 --- a/src/main/java/com/conveyal/datatools/manager/gtfsplus/TimePoint.java +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/TimePoint.java @@ -12,9 +12,9 @@ public class TimePoint extends Entity { public String trip_id; public String stop_id; - // TODO @Override public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException { - + throw new UnsupportedOperationException( + "Cannot call setStatementParameters because loading a GTFS+ table into RDBMS is unsupported."); } } diff --git a/src/main/java/com/conveyal/datatools/manager/gtfsplus/package-info.java b/src/main/java/com/conveyal/datatools/manager/gtfsplus/package-info.java new file mode 100644 index 000000000..03845bbea --- /dev/null +++ b/src/main/java/com/conveyal/datatools/manager/gtfsplus/package-info.java @@ -0,0 +1,16 @@ +/** + * This package contains classes that correspond to those found for GTFS entity types in + * {@link com.conveyal.gtfs.model}, but for GTFS+ entity types. It also contains + * {@link com.conveyal.datatools.manager.gtfsplus.GtfsPlusTable}, which extends the + * {@link com.conveyal.gtfs.loader.Table} in order to define a table specification for this set of + * extension tables. + * + * Note: these classes are primarily used for the MTC merge type in + * {@link com.conveyal.datatools.manager.jobs.MergeFeedsJob}. There may be an opportunity to also use + * these classes in the GTFS+ validation code path found in + * {@link com.conveyal.datatools.manager.controllers.api.GtfsPlusController}; however, + * TODO a way to define an enum set for string field values would need to first be added to support + * fields such as {@link com.conveyal.datatools.manager.gtfsplus.StopAttribute#cardinal_direction}. + */ +package com.conveyal.datatools.manager.gtfsplus; + diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index 15b9d9d3b..753c51edf 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -16,13 +16,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.time.LocalDate; import java.time.temporal.ChronoUnit; +import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; @@ -31,6 +31,7 @@ import java.util.Map; import java.util.Objects; import java.util.Set; +import java.util.UUID; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -46,21 +47,70 @@ * This job handles merging two or more feed versions according to logic specific to the specified merge type. * The current merge types handled here are: * - {@link MergeFeedsType#REGIONAL}: this is essentially a "dumb" merge. For each feed version, each primary key is - * scoped so that there is no possibility that it will conflict with other IDs - * found in any other feed version. Note: There is absoluately no attempt to merge - * entities based on either expected shared IDs or entity location (e.g., stop - * coordinates). + * scoped so that there is no possibility that it will conflict with other IDs + * found in any other feed version. Note: There is absolutely no attempt to merge + * entities based on either expected shared IDs or entity location (e.g., stop + * coordinates). * - {@link MergeFeedsType#MTC}: this strategy is defined in detail at https://github.com/conveyal/datatools-server/issues/185, - * but in essence, this strategy attempts to merge a current and future feed into - * a combined file. For certain entities (specifically stops and routes) it uses - * alternate fields as primary keys (stop_code and route_short_name) if they are - * available. There is some complexity related to this in {@link #constructMergedTable(Table, List)}. - * Another defining characteristic is to prefer entities defined in the "future" - * file if there are matching entities in the current file. + * but in essence, this strategy attempts to merge a current and future feed into + * a combined file. For certain entities (specifically stops and routes) it uses + * alternate fields as primary keys (stop_code and route_short_name) if they are + * available. There is some complexity related to this in {@link #constructMergedTable(Table, List, ZipOutputStream)}. + * Another defining characteristic is to prefer entities defined in the "future" + * file if there are matching entities in the current file. * Future merge strategies could be added here. For example, some potential customers have mentioned a desire to * prefer entities from the "current" version, so that entities edited in Data Tools would override the values found * in the "future" file, which may have limited data attributes due to being exported from scheduling software with * limited GTFS support. + * + * Reproduced from https://github.com/conveyal/datatools-server/issues/185 on 2019/04/23: + * + * 1. When a new GTFS+ feed is loaded in TDM, check as part of the loading and validation process if + * the dataset is for a future date. (If all services start in the future, consider the dataset + * to be for the future). + * 2. If it is a future dataset, automatically notify the user that the feed needs to be merged with + * most recent active version or a selected one in order to further process the feed. + * 3. Use the chosen version to merge the future feed. The merging process needs to be efficient so + * that the user doesn’t need to wait more than a tolerable time. + * 4. The merge process shall compare the current and future datasets, validate the following rules + * and generate the Merge Validation Report: + * i. Merging will be based on route_short_name in the current and future datasets. All matching + * route_short_names between the datasets shall be considered same route. Any route_short_name + * in active data not present in the future will be appended to the future routes file. + * ii. Future feed_info.txt file should get priority over active feed file when difference is + * identified. + * iii. When difference is found in agency.txt file between active and future feeds, the future + * agency.txt file data should be used. Possible issue with missing agency_id referenced by routes + * iv. When stop_code is included, stop merging will be based on that. If stop_code is not + * included, it will be based on stop_id. All stops in future data will be carried forward and + * any stops found in active data that are not in the future data shall be appended. If one + * of the feed is missing stop_code, merge fails with a notification to the user with + * suggestion that the feed with missing stop_code must be fixed with stop_code. + * v. If any service_id in the active feed matches with the future feed, it should be modified + * and all associated trip records must also be changed with the modified service_id. + * If a service_id from the active calendar has both the start_date and end_date in the + * future, the service shall not be appended to the merged file. Records in trips, + * calendar_dates, and calendar_attributes referencing this service_id shall also be + * removed/ignored. Stop_time records for the ignored trips shall also be removed. + * If a service_id from the active calendar has only the end_date in the future, the end_date + * shall be set to one day prior to the earliest start_date in future dataset before appending + * the calendar record to the merged file. + * trip_ids between active and future datasets must not match. If any trip_id is found to be + * matching, the merge should fail with appropriate notification to user with the cause of the + * failure. Notification should include all matched trip_ids. + * vi. New shape_ids in the future datasets should be appended in the merged feed. + * vii. Merging fare_attributes will be based on fare_id in the current and future datasets. All + * matching fare_ids between the datasets shall be considered same fare. Any fare_id in active + * data not present in the future will be appended to the future fare_attributes file. + * viii. All fare rules from the future dataset will be included. Any identical fare rules from + * the current dataset will be discarded. Any fare rules unique to the current dataset will be + * appended to the future file. + * ix. All transfers.txt entries with unique stop pairs (from - to) from both the future and + * current datasets will be included in the merged file. Entries with duplicate stop pairs from + * the current dataset will be discarded. + * x. All GTFS+ files should be merged based on how the associated base GTFS file is merged. For + * example, directions for routes that are not in the future routes.txt file should be appended + * to the future directions.txt file in the merged feed. */ public class MergeFeedsJob extends MonitorableJob { @@ -78,16 +128,19 @@ public class MergeFeedsJob extends MonitorableJob { public boolean failOnDuplicateTripId = true; /** - * @param owner user ID that initiated job - * @param feedVersions set of feed versions to merge - * @param file resulting merge filename (without .zip) - * @param mergeType the type of merge to perform (@link MergeFeedsType) + * @param owner user ID that initiated job + * @param feedVersions set of feed versions to merge + * @param file resulting merge filename (without .zip) + * @param mergeType the type of merge to perform (@link MergeFeedsType) */ - public MergeFeedsJob(String owner, Set feedVersions, String file, MergeFeedsType mergeType) { - super(owner, mergeType.equals(REGIONAL) ? "Merging project feeds" : "Merging feed versions", JobType.MERGE_FEED_VERSIONS); + public MergeFeedsJob(String owner, Set feedVersions, String file, + MergeFeedsType mergeType) { + super(owner, mergeType.equals(REGIONAL) ? "Merging project feeds" : "Merging feed versions", + JobType.MERGE_FEED_VERSIONS); this.feedVersions = feedVersions; // Grab parent feed source if performing non-regional merge (each version should share the same feed source). - this.feedSource = mergeType.equals(REGIONAL) ? null : feedVersions.iterator().next().parentFeedSource(); + this.feedSource = + mergeType.equals(REGIONAL) ? null : feedVersions.iterator().next().parentFeedSource(); // Construct full filename with extension this.filename = String.format("%s.zip", file); // If the merge type is regional, the file string should be equivalent to projectId, which is used by the client @@ -108,7 +161,9 @@ public void jobFinished() { // permanently. if (!mergedTempFile.delete()) { // FIXME: send to bugsnag? - LOG.error("Merged feed file {} not deleted. This may contribute to storage space shortages.", mergedTempFile.getAbsolutePath()); + LOG.error( + "Merged feed file {} not deleted. This may contribute to storage space shortages.", + mergedTempFile.getAbsolutePath()); } } @@ -116,8 +171,7 @@ public void jobFinished() { * Primary job logic handles collecting and sorting versions, creating a merged table for all versions, and writing * the resulting zip file to storage. */ - @Override - public void jobLogic() throws IOException { + @Override public void jobLogic() throws IOException { // Create temp zip file to add merged feed content to. mergedTempFile = File.createTempFile(filename, null); mergedTempFile.deleteOnExit(); @@ -127,9 +181,9 @@ public void jobLogic() throws IOException { List feedsToMerge = collectAndSortFeeds(feedVersions); // Determine which tables to merge (only merge GTFS+ tables for MTC extension). - final List

tablesToMerge = Arrays.stream(Table.tablesInOrder) - .filter(Table::isSpecTable) - .collect(Collectors.toList()); + final List
tablesToMerge = + Arrays.stream(Table.tablesInOrder).filter(Table::isSpecTable) + .collect(Collectors.toList()); if (DataManager.isExtensionEnabled("mtc")) { // Merge GTFS+ tables only if MTC extension is enabled. We should do this for both regional and MTC merge // strategies. @@ -140,31 +194,21 @@ public void jobLogic() throws IOException { for (int i = 0; i < numberOfTables; i++) { Table table = tablesToMerge.get(i); double percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; - status.update( "Merging " + table.name, percentComplete); + status.update("Merging " + table.name, percentComplete); // Perform the merge. - byte[] tableOut = constructMergedTable(table, feedsToMerge); - // If at least one feed has the table (i.e., tableOut is not null), include it in the merged feed. - if (tableOut != null) { - // Create entry for zip file. - ZipEntry tableEntry = new ZipEntry(table.name + ".txt"); - LOG.info("Writing {} to merged feed", table.name); - try { - out.putNextEntry(tableEntry); - out.write(tableOut); - out.closeEntry(); - } catch (IOException e) { - String message = String.format("Error writing to table %s", table.name); - LOG.error(message, e); - status.fail(message, e); - } - } else { + LOG.info("Writing {} to merged feed", table.name); + int mergedLineNumber = constructMergedTable(table, feedsToMerge, out); + if (mergedLineNumber == 0) { LOG.info("Skipping {} table. No entries found in zip files.", table.name); + } else if (mergedLineNumber == -1) { + LOG.error("Merge {} table failed!", table.name); } } // Close output stream for zip file. out.close(); // Handle writing file to storage (local or s3). - if (mergeFeedsResult.failed) status.fail("Merging feed versions failed."); + if (mergeFeedsResult.failed) + status.fail("Merging feed versions failed."); else { storeMergedFeed(); status.update(false, "Merged feed created successfully.", 100, true); @@ -174,7 +218,8 @@ public void jobLogic() throws IOException { // Handle the processing of the new version for non-regional merges (note: s3 upload is handled within this job). // We must add this job in jobLogic (rather than jobFinished) because jobFinished is called after this job's // subJobs are run. - ProcessSingleFeedJob processSingleFeedJob = new ProcessSingleFeedJob(mergedVersion, owner, true); + ProcessSingleFeedJob processSingleFeedJob = + new ProcessSingleFeedJob(mergedVersion, owner, true); addNextJob(processSingleFeedJob); } } @@ -185,21 +230,20 @@ public void jobLogic() throws IOException { * required for the MTC merge strategy which prefers entities from the future dataset over past entities. */ private List collectAndSortFeeds(Set feedVersions) { - return feedVersions - .stream() - .map(version -> { - try { - return new FeedToMerge(version); - } catch (Exception e) { - LOG.error("Could not create zip file for version {}:", version.parentFeedSource(), version.version); - return null; - } - }) - .filter(Objects::nonNull) + return feedVersions.stream().map(version -> { + try { + return new FeedToMerge(version); + } catch (Exception e) { + LOG.error("Could not create zip file for version {}:", version.parentFeedSource(), + version.version); + return null; + } + }).filter(Objects::nonNull).filter(entry -> entry.version.validationResult != null + && entry.version.validationResult.firstCalendarDate != null) // MTC-specific sort mentioned in above comment. // TODO: If another merge strategy requires a different sort order, a merge type check should be added. - .sorted(Comparator.comparing(entry -> entry.version.validationResult.firstCalendarDate, Comparator.reverseOrder())) - .collect(Collectors.toList()); + .sorted(Comparator.comparing(entry -> entry.version.validationResult.firstCalendarDate, + Comparator.reverseOrder())).collect(Collectors.toList()); } /** @@ -213,10 +257,12 @@ private void storeMergedFeed() throws IOException { if (DataManager.useS3) { String s3Key = String.join("/", "project", filename); FeedStore.s3Client.putObject(DataManager.feedBucket, s3Key, mergedTempFile); - LOG.info("Storing merged project feed at s3://{}/{}", DataManager.feedBucket, s3Key); + LOG.info("Storing merged project feed at s3://{}/{}", DataManager.feedBucket, + s3Key); } else { try { - FeedVersion.feedStore.newFeed(filename, new FileInputStream(mergedTempFile), null); + FeedVersion.feedStore + .newFeed(filename, new FileInputStream(mergedTempFile), null); } catch (IOException e) { e.printStackTrace(); LOG.error("Could not store feed for project {}", filename); @@ -226,7 +272,8 @@ private void storeMergedFeed() throws IOException { } else { // Store the zip file for the merged feed version. try { - FeedVersion.feedStore.newFeed(mergedVersion.id, new FileInputStream(mergedTempFile), feedSource); + FeedVersion.feedStore + .newFeed(mergedVersion.id, new FileInputStream(mergedTempFile), feedSource); } catch (IOException e) { LOG.error("Could not store merged feed for new version"); throw e; @@ -236,11 +283,14 @@ private void storeMergedFeed() throws IOException { /** * Merge the specified table for multiple GTFS feeds. - * @param table table to merge + * + * @param table table to merge * @param feedsToMerge map of feedSources to zipFiles from which to extract the .txt tables - * @return single merged table for feeds or null if the table did not exist for any feed + * @param out output stream to write table into + * @return number of lines in merged table */ - private byte[] constructMergedTable(Table table, List feedsToMerge) throws IOException { + private int constructMergedTable(Table table, List feedsToMerge, + ZipOutputStream out) throws IOException { String keyField = table.getKeyFieldName(); String orderField = table.getOrderFieldName(); if (mergeType.equals(MTC)) { @@ -257,9 +307,8 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) break; } } - // Set up objects for outputting the data and tracking the rows encountered - ByteArrayOutputStream tableOut = new ByteArrayOutputStream(); - Map rowValuesForKeys = new HashMap<>(); + // Set up objects for tracking the rows encountered + Map rowValuesForStopOrRouteId = new HashMap<>(); Set rowStrings = new HashSet<>(); int mergedLineNumber = 0; // Get the spec fields to export @@ -268,14 +317,22 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) try { // Iterate over each zip file. for (int feedIndex = 0; feedIndex < feedsToMerge.size(); feedIndex++) { + boolean keyFieldMissing = false; + // Use for a new agency ID for use if the feed does not contain one. Initialize to + // null. If the value becomes non-null, the agency_id is missing and needs to be + // replaced with the generated value stored in this variable. + String newAgencyId = null; mergeFeedsResult.feedCount++; - // FIXME add check for merge type. - if (feedIndex > 0 && (table.name.equals("agency") || table.name.equals("feed_info")) && mergeType.equals(MTC)) { - // Always prefer future file for agency and feed_info tables, which means that we can skip - // iterations following the first one. - // FIXME: This could cause issues with routes or fares that reference an agency_id that no longer - // exists. - LOG.warn("Skipping {} file for feed {}/{} (future file preferred)", table.name, feedIndex, feedsToMerge.size()); + if (feedIndex > 0 && (table.name.equals("feed_info") || + (mergeType.equals(MTC) && table.name.equals("agency")))) { + // Always prefer the "future" file for the feed_info table, which means + // we can skip any iterations following the first one. If merging the agency + // table, we should only skip the following feeds if performing an MTC merge + // because that logic assumes the two feeds share the same agency (or agencies). + // FIXME: This could cause issues with routes or fares that reference an + // agency_id that no longer exists. + LOG.warn("Skipping {} file for feed {}/{} (future file preferred)", table.name, + feedIndex, feedsToMerge.size()); continue; } FeedToMerge feed = feedsToMerge.get(feedIndex); @@ -284,47 +341,78 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) // Generate ID prefix to scope GTFS identifiers to avoid conflicts. String idScope = getCleanName(feedSource.name) + version.version; CsvReader csvReader = table.getCsvReader(feed.zipFile, null); - // If csv reader is null, the table was not found in the zip file. There is no need to handle merging - // this table for the current zip file. + // If csv reader is null, the table was not found in the zip file. There is no need + // to handle merging this table for the current zip file. if (csvReader == null) { - LOG.warn("Table {} not found in the zip file for {}{}", table.name, feedSource.name, version.version); + LOG.warn("Table {} not found in the zip file for {}{}", table.name, + feedSource.name, version.version); continue; } LOG.info("Adding {} table for {}{}", table.name, feedSource.name, version.version); - Field[] fieldsFoundInZip = table.getFieldsFromFieldHeaders(csvReader.getHeaders(), null); + Field[] fieldsFoundInZip = + table.getFieldsFromFieldHeaders(csvReader.getHeaders(), null); List fieldsFoundList = Arrays.asList(fieldsFoundInZip); // Determine the index of the key field for this version's table. int keyFieldIndex = getFieldIndex(fieldsFoundInZip, keyField); + if (keyFieldIndex == -1) { + LOG.error("No {} field exists for {} table (feed={})", keyField, table.name, + feed.version.id); + keyFieldMissing = true; + // If there is no agency_id for agency table, create one and ensure that + // route#agency_id gets set. + } int lineNumber = 0; // Iterate over rows in table, writing them to the out file. while (csvReader.readRecord()) { String keyValue = csvReader.get(keyFieldIndex); - // FIXME add check for merge type? - if (mergeType.equals(MTC) && lineNumber == 0 && table.name.equals("stops")) { - // For the first line of the stops table, check that the alt. key - // field (stop_code) is present. If it is not, revert to the original key field. - if (feedIndex == 0) { - // Check that the first file contains stop_code values. - if ("".equals(keyValue)) { - LOG.warn("stop_code is not present in file {}/{}. Reverting to stop_id", feedIndex, feedsToMerge.size()); - // If the key value for stop_code is not present, revert to stop_id. - keyField = table.getKeyFieldName(); - keyFieldIndex = table.getKeyFieldIndex(fieldsFoundInZip); - keyValue = csvReader.get(keyFieldIndex); - stopCodeMissingFromFirstTable = true; + // Check certain initial conditions on the first line of the file. + if (lineNumber == 0) { + if (table.name.equals(Table.AGENCY.name) && (keyFieldMissing || keyValue + .equals(""))) { + // agency_id is optional if only one agency is present, but that will + // cause issues for the feed merge, so we need to insert an agency_id + // for the single entry. + newAgencyId = UUID.randomUUID().toString(); + if (keyFieldMissing) { + + // Only add agency_id field if it is missing in table. + List fieldsList = + new ArrayList<>(Arrays.asList(fieldsFoundInZip)); + fieldsList.add(Table.AGENCY.fields[0]); + fieldsFoundInZip = fieldsList.toArray(fieldsFoundInZip); } - } else { - // Check whether stop_code exists for the subsequent files. - String firstStopCodeValue = csvReader.get(getFieldIndex(fieldsFoundInZip, "stop_code")); - if (stopCodeMissingFromFirstTable && !"".equals(firstStopCodeValue)) { - // If stop_code was missing from the first file and exists for the second, we consider - // that a failing error. - mergeFeedsResult.failed = true; - mergeFeedsResult.errorCount++; - mergeFeedsResult.failureReasons.add( - "If one stops.txt file contains stop_codes, both feed versions must stop_codes." - ); + fieldsFoundList = Arrays.asList(fieldsFoundInZip); + } + if (mergeType.equals(MTC) && table.name.equals("stops")) { + // For the first line of the stops table, check that the alt. key + // field (stop_code) is present. If it is not, revert to the original + // key field. This is only pertinent for the MTC merge type. + if (feedIndex == 0) { + // Check that the first file contains stop_code values. + if ("".equals(keyValue)) { + LOG.warn( + "stop_code is not present in file {}/{}. Reverting to stop_id", + feedIndex, feedsToMerge.size()); + // If the key value for stop_code is not present, revert to stop_id. + keyField = table.getKeyFieldName(); + keyFieldIndex = table.getKeyFieldIndex(fieldsFoundInZip); + keyValue = csvReader.get(keyFieldIndex); + stopCodeMissingFromFirstTable = true; + } + } else { + // Check whether stop_code exists for the subsequent files. + String firstStopCodeValue = + csvReader.get(getFieldIndex(fieldsFoundInZip, "stop_code")); + if (stopCodeMissingFromFirstTable && !"" + .equals(firstStopCodeValue)) { + // If stop_code was missing from the first file and exists for + // the second, we consider that a failing error. + mergeFeedsResult.failed = true; + mergeFeedsResult.errorCount++; + mergeFeedsResult.failureReasons.add( + "If one stops.txt file contains stop_codes, both feed versions must stop_codes."); + } } } } @@ -337,154 +425,225 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) } // Piece together the row to write, which should look practically identical to the original // row except for the identifiers receiving a prefix to avoid ID conflicts. - for (int specFieldIndex = 0; specFieldIndex < specFields.size(); specFieldIndex++) { + for (int specFieldIndex = 0; + specFieldIndex < specFields.size(); specFieldIndex++) { Field field = specFields.get(specFieldIndex); // Get index of field from GTFS spec as it appears in feed int index = fieldsFoundList.indexOf(field); String val = csvReader.get(index); + // Default value to write is unchanged from value found in csv. + String valueToWrite = val; + // Handle filling in agency_id if missing when merging regional feeds. + if (newAgencyId != null && field.name.equals("agency_id") && mergeType + .equals(REGIONAL)) { + if (val.equals("") && table.name.equals("agency") && lineNumber > 0) { + // If there is no agency_id value for a second (or greater) agency + // record, fail the merge feed job. + String message = String.format( + "Feed %s has multiple agency records but no agency_id values.", + feed.version.id); + mergeFeedsResult.failed = true; + mergeFeedsResult.failureReasons.add(message); + LOG.error(message); + return -1; + } + LOG.info("Updating {}#agency_id to (auto-generated) {} for ID {}", + table.name, newAgencyId, keyValue); + val = newAgencyId; + } // Determine if field is a GTFS identifier. - boolean isKeyField = field.isForeignReference() || keyField.equals(field.name); - Set idErrors = table.checkReferencesAndUniqueness(keyValue, lineNumber, field, val, referenceTracker, keyField, orderField); - // Store values for key fields that have been encountered. - switch (table.name) { - // case "calendar_dates": - case "calendar": - // If any service_id in the active feed matches with the future feed, it should be - // modified and all associated trip records must also be changed with the modified - // service_id. - // TODO How can we check that calendar_dates entries are duplicates? I think we would - // need to consider the service_id:exception_type:date as the unique key and include any - // all entries as long as they are unique on this key. - for (NewGTFSError error : idErrors) { - if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { - String key = String.join(":", table.name, idScope, val); - // Modify service_id and ensure that referencing trips have service_id updated. - val = String.join(":", idScope, val); - mergeFeedsResult.remappedIds.put(key, val); - } - } - // If a service_id from the active calendar has both the start_date and end_date in the - // future, the service will be excluded from the merged file. Records in trips, - // calendar_dates, and calendar_attributes referencing this service_id shall also be - // removed/ignored. Stop_time records for the ignored trips shall also be removed. - if (feedIndex > 0) { - int startDateIndex = getFieldIndex(fieldsFoundInZip, "start_date"); - LocalDate startDate = LocalDate.parse(csvReader.get(startDateIndex), GTFS_DATE_FORMATTER); - if (startDate.isAfter(LocalDate.now())) { - LOG.warn("Skipping calendar entry {} because it operates in the future.", keyValue); - String key = String.join(":", table.name, idScope, keyValue); - mergeFeedsResult.skippedIds.add(key); - skipRecord = true; - continue; - } - // If a service_id from the active calendar has only the end_date in the future, the - // end_date shall be set to one day prior to the earliest start_date in future - // dataset before appending the calendar record to the merged file. - int endDateIndex = getFieldIndex(fieldsFoundInZip, "end_date"); - if (index == endDateIndex) { - LocalDate endDate = LocalDate.parse(csvReader.get(endDateIndex), GTFS_DATE_FORMATTER); - if (endDate.isAfter(LocalDate.now())) { - val = feedsToMerge.get(0).version.validationResult.firstCalendarDate - .minus(1, ChronoUnit.DAYS) - .format(GTFS_DATE_FORMATTER); + boolean isKeyField = + field.isForeignReference() || keyField.equals(field.name); + if (this.mergeType.equals(REGIONAL) && isKeyField && !val.isEmpty()) { + // For regional merge, if field is a GTFS identifier (e.g., route_id, + // stop_id, etc.), add scoped prefix. + valueToWrite = String.join(":", idScope, val); + } + // Only need to check for merge conflicts if using MTC merge type because + // the regional merge type scopes all identifiers by default. Also, the + // reference tracker will get far too large if we attempt to use it to + // track references for a large number of feeds (e.g., every feed in New + // York State). + if (mergeType.equals(MTC)) { + Set idErrors = table + .checkReferencesAndUniqueness(keyValue, lineNumber, field, val, + referenceTracker, keyField, orderField); + // Store values for key fields that have been encountered. + // TODO Consider using Strategy Pattern https://en.wikipedia.org/wiki/Strategy_pattern + // instead of a switch statement. + switch (table.name) { + case "calendar": + // If any service_id in the active feed matches with the future + // feed, it should be modified and all associated trip records + // must also be changed with the modified service_id. + // TODO How can we check that calendar_dates entries are + // duplicates? I think we would need to consider the + // service_id:exception_type:date as the unique key and include any + // all entries as long as they are unique on this key. + for (NewGTFSError error : idErrors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { + String key = getFieldScopedValue(table, idScope, val); + // Modify service_id and ensure that referencing trips + // have service_id updated. + val = String.join(":", idScope, val); + mergeFeedsResult.remappedIds.put(key, val); } } - } - break; - case "trips": - // trip_ids between active and future datasets must not match. If any trip_id is found - // to be matching, the merge should fail with appropriate notification to user with the - // cause of the failure. Merge result should include all conflicting trip_ids. - for (NewGTFSError error : idErrors) { - if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { - mergeFeedsResult.failureReasons.add("Trip ID conflict caused merge failure."); - mergeFeedsResult.idConflicts.add(error.badValue); - mergeFeedsResult.errorCount++; - if (failOnDuplicateTripId) mergeFeedsResult.failed = true; - skipRecord = true; + // If a service_id from the active calendar has both the + // start_date and end_date in the future, the service will be + // excluded from the merged file. Records in trips, + // calendar_dates, and calendar_attributes referencing this + // service_id shall also be removed/ignored. Stop_time records + // for the ignored trips shall also be removed. + if (feedIndex > 0) { + int startDateIndex = + getFieldIndex(fieldsFoundInZip, "start_date"); + LocalDate startDate = LocalDate + .parse(csvReader.get(startDateIndex), + GTFS_DATE_FORMATTER); + if (startDate.isAfter(LocalDate.now())) { + LOG.warn( + "Skipping calendar entry {} because it operates in the future.", + keyValue); + String key = + getFieldScopedValue(table, idScope, keyValue); + mergeFeedsResult.skippedIds.add(key); + skipRecord = true; + continue; + } + // If a service_id from the active calendar has only the + // end_date in the future, the end_date shall be set to one + // day prior to the earliest start_date in future dataset + // before appending the calendar record to the merged file. + int endDateIndex = + getFieldIndex(fieldsFoundInZip, "end_date"); + if (index == endDateIndex) { + LocalDate endDate = LocalDate + .parse(csvReader.get(endDateIndex), + GTFS_DATE_FORMATTER); + if (endDate.isAfter(LocalDate.now())) { + val = feedsToMerge.get( + 0).version.validationResult.firstCalendarDate + .minus(1, ChronoUnit.DAYS) + .format(GTFS_DATE_FORMATTER); + } + } } - } - break; - case "stops": - // When stop_code is included, stop merging will be based on that. If stop_code is not - // included, it will be based on stop_id. All stops in future data will be carried - // forward and any stops found in active data that are not in the future data shall be - // appended. If one of the feed is missing stop_code, merge fails with a notification to - // the user with suggestion that the feed with missing stop_code must be fixed with - // stop_code. - case "routes": - String primaryKeyValue = csvReader.get(table.getKeyFieldIndex(fieldsFoundInZip)); - Set primaryKeyErrors = table.checkReferencesAndUniqueness(primaryKeyValue, lineNumber, field, val, referenceTracker); - // Merging will be based on route_short_name in the current and future datasets. All - // matching route_short_names between the datasets shall be considered same route. Any - // route_short_name in active data not present in the future will be appended to the - // future routes file. - if (keyField.equals("stop_code") || keyField.equals("route_short_name")) { + break; + case "trips": + // trip_ids between active and future datasets must not match. If any trip_id is found + // to be matching, the merge should fail with appropriate notification to user with the + // cause of the failure. Merge result should include all conflicting trip_ids. for (NewGTFSError error : idErrors) { if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { - // If we encounter a route that shares its short name with a previous route, - // we need to remap its route_id field so that references point to the previous - // route_id. - String currentId = index == 0 ? val : rowValues[0]; - String key = String.join(":", table.name, idScope, currentId); - // Extract the route_id value used for the route with matching short name. - String[] strings = rowValuesForKeys.get(val); - String id = strings[0]; - if (!id.equals(currentId)) { - // Remap this row's route_id to ensure that referencing trips have their - // route_id updated. - mergeFeedsResult.remappedIds.put(key, id); - } + mergeFeedsResult.failureReasons + .add("Trip ID conflict caused merge failure."); + mergeFeedsResult.idConflicts.add(error.badValue); + mergeFeedsResult.errorCount++; + if (failOnDuplicateTripId) + mergeFeedsResult.failed = true; skipRecord = true; } } - // Next check for regular ID conflicts (e.g., on route_id or stop_id) because any - // conflicts here will actually break the feed. This essentially handles the case - // where two routes have different short_names, but share the same route_id. We want - // both of these routes two end up in the merged feed in this case because we're - // matching on short name, so we must modify the route_id. - if (!skipRecord && !referenceTracker.transitIds.contains(String.join(":", keyField, keyValue))) { - for (NewGTFSError error : primaryKeyErrors) { - if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { - String key = String.join(":", table.name, idScope, val); - // Modify route_id and ensure that referencing trips have route_id updated. - val = String.join(":", idScope, val); - mergeFeedsResult.remappedIds.put(key, val); + break; + case "stops": + // When stop_code is included, stop merging will be based on that. If stop_code is not + // included, it will be based on stop_id. All stops in future data will be carried + // forward and any stops found in active data that are not in the future data shall be + // appended. If one of the feed is missing stop_code, merge fails with a notification to + // the user with suggestion that the feed with missing stop_code must be fixed with + // stop_code. + // NOTE: route case is also used by the stops case, so the route + // case must follow this block. + case "routes": + // First, check uniqueness of primary key value (i.e., stop or route ID) + // in case the stop_code or route_short_name are being used. This + // must occur unconditionally because each record must be tracked + // by the reference tracker. + String primaryKeyValue = + csvReader.get(table.getKeyFieldIndex(fieldsFoundInZip)); + Set primaryKeyErrors = table + .checkReferencesAndUniqueness(primaryKeyValue, lineNumber, + field, val, referenceTracker); + // Merging will be based on route_short_name/stop_code in the current and future datasets. All + // matching route_short_names/stop_codes between the datasets shall be considered same route/stop. Any + // route_short_name/stop_code in active data not present in the future will be appended to the + // future routes/stops file. + if (keyField.equals("stop_code") || keyField + .equals("route_short_name")) { + for (NewGTFSError error : idErrors) { + if (error.errorType + .equals(NewGTFSErrorType.DUPLICATE_ID)) { + // If we encounter a route/stop that shares its alt. ID with a previous route/stop, + // we need to remap its route_id/stop_id field so that references point to the previous + // route_id/stop_id. + String currentId = index == 0 ? val : rowValues[0]; + String key = + getFieldScopedValue(table, idScope, currentId); + // Extract the route_id/stop_id value used for the route/stop with matching alt ID. + String[] strings = + rowValuesForStopOrRouteId.get(val); + String id = strings[0]; + if (!id.equals(currentId)) { + // Remap this row's route_id/stop_id to ensure + // that referencing entities (trips, stop_times) have their + // references updated. + mergeFeedsResult.remappedIds.put(key, id); + } + skipRecord = true; + } + } + // Next check for regular ID conflicts (e.g., on route_id or stop_id) because any + // conflicts here will actually break the feed. This essentially handles the case + // where two routes have different short_names, but share the same route_id. We want + // both of these routes to end up in the merged feed in this case because we're + // matching on short name, so we must modify the route_id. + if (!skipRecord && !referenceTracker.transitIds + .contains(String.join(":", keyField, keyValue))) { + for (NewGTFSError error : primaryKeyErrors) { + if (error.errorType + .equals(NewGTFSErrorType.DUPLICATE_ID)) { + String key = + getFieldScopedValue(table, idScope, val); + // Modify route_id and ensure that referencing trips have route_id updated. + val = String.join(":", idScope, val); + mergeFeedsResult.remappedIds.put(key, val); + } + } + } + } else { + // Key field has defaulted to the standard primary key field (stop_id or route_id), + // which makes the check much simpler (just skip the duplicate record). + for (NewGTFSError error : idErrors) { + if (error.errorType + .equals(NewGTFSErrorType.DUPLICATE_ID)) { + skipRecord = true; } } } - } else { - // Key field has defaulted to the standard primary key field (stop_id or route_id), - // which makes the check much simpler (just skip the duplicate record). + + if (newAgencyId != null && field.name.equals("agency_id")) { + LOG.info( + "Updating route#agency_id to (auto-generated) {} for route={}", + newAgencyId, keyValue); + val = newAgencyId; + } + break; + default: + // For any other table, skip any duplicate record. for (NewGTFSError error : idErrors) { if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { skipRecord = true; } } - } - break; - case "transfers": - // For any other table, skip any duplicate record. - for (NewGTFSError error : idErrors) { - if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { - skipRecord = true; - } - } - break; - default: - // For any other table, skip any duplicate record. - for (NewGTFSError error : idErrors) { - if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { - skipRecord = true; - } - } - break; + break; + } } - String valueToWrite = val; + if (field.isForeignReference()) { // If the field is a foreign reference, check to see whether the reference has been // remapped due to a conflicting ID from another feed (e.g., calendar#service_id). - String key = String.join(":", field.referenceTable.name, idScope, val); + String key = getFieldScopedValue(field.referenceTable, idScope, val); if (mergeFeedsResult.remappedIds.containsKey(key)) { mergeFeedsResult.remappedReferences++; // If the value has been remapped update the value to write. @@ -494,79 +653,86 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) // record and add its primary key to the list of skipped IDs (so that other references can // be properly omitted). if (mergeFeedsResult.skippedIds.contains(key)) { - String skippedKey = String.join(":", table.name, idScope, keyValue); + String skippedKey = getFieldScopedValue(table, idScope, keyValue); if (orderField != null) { - skippedKey = String.join(":", - skippedKey, - csvReader.get(getFieldIndex(fieldsFoundInZip, orderField)) - ); + skippedKey = String.join(":", skippedKey, + csvReader.get(getFieldIndex(fieldsFoundInZip, orderField))); } mergeFeedsResult.skippedIds.add(skippedKey); skipRecord = true; continue; } } - if (this.mergeType.equals(REGIONAL) && isKeyField && !val.isEmpty()) { - // For regional merge, if field is a GTFS identifier (e.g., route_id, stop_id, etc.), - // add scoped prefix. - valueToWrite = String.join(":", idScope, val); - } - rowValues[specFieldIndex] = valueToWrite; } - if (table.name.equals("routes") && rowValues[0].contains("BART")) { - LOG.info("Route record: {}", rowValues[0]); - } // Do not write rows that are designated to be skipped. if (skipRecord && this.mergeType.equals(MTC)) { mergeFeedsResult.recordsSkipCount++; continue; } String newLine = String.join(",", rowValues); - if (!rowStrings.add(newLine)) { - // The line already exists in the output file, do not append it again. This prevents duplicate - // entries for certain files that do not contain primary keys (e.g., fare_rules and transfers) and - // do not otherwise have convenient ways to track uniqueness (like an order field). - // FIXME: add ordinal field/compound keys for transfers (from/to_stop_id) and fare_rules (?). - // Perhaps it makes sense to include all unique fare rules rows, but transfers that share the - // same from/to stop IDs but different transfer times or other values should not both be - // included in the merged feed (yet this strategy would fail to filter those out). - mergeFeedsResult.recordsSkipCount++; - continue; + switch (table.name) { + // Store row values for route or stop ID in order to check for ID conflicts. NOTE: + // This is only intended to be used for routes and stops. Otherwise, this might + // consume too much memory. + case "stops": + case "routes": + // FIXME: This should be revised for tables with order fields, but it should work fine for its + // primary purposes: to detect exact copy rows and to temporarily hold the data in case a reference + // needs to be looked up in order to remap an entity to that key. + rowValuesForStopOrRouteId.put(rowValues[keyFieldIndex], rowValues); + break; + case "transfers": + case "fare_rules": + if (!rowStrings.add(newLine)) { + // The line already exists in the output file, do not append it again. This prevents duplicate + // entries for certain files that do not contain primary keys (e.g., fare_rules and transfers) and + // do not otherwise have convenient ways to track uniqueness (like an order field). + // FIXME: add ordinal field/compound keys for transfers (from/to_stop_id) and fare_rules (?). + // Perhaps it makes sense to include all unique fare rules rows, but transfers that share the + // same from/to stop IDs but different transfer times or other values should not both be + // included in the merged feed (yet this strategy would fail to filter those out). + mergeFeedsResult.recordsSkipCount++; + continue; + } + break; + default: + // Do nothing. + break; + } - // FIXME: This should be revised for tables with order fields, but it should work fine for its - // primary purposes: to detect exact copy rows and to temporarily hold the data in case a reference - // needs to be looked up in order to remap an entity to that key. - rowValuesForKeys.put(rowValues[keyFieldIndex], rowValues); + // Finally, handle writing lines to zip entry. if (mergedLineNumber == 0) { + // Create entry for zip file. + ZipEntry tableEntry = new ZipEntry(table.name + ".txt"); + out.putNextEntry(tableEntry); // Write headers to table. - String headers = specFields.stream().map(field -> field.name).collect(Collectors.joining(",")); - tableOut.write(headers.getBytes()); - tableOut.write("\n".getBytes()); + String headers = specFields.stream().map(field -> field.name) + .collect(Collectors.joining(",")); + out.write(headers.getBytes()); + out.write("\n".getBytes()); } // Write line to table (plus new line char). - tableOut.write(newLine.getBytes()); - tableOut.write("\n".getBytes()); + out.write(newLine.getBytes()); + out.write("\n".getBytes()); lineNumber++; mergedLineNumber++; } } + out.closeEntry(); } catch (Exception e) { - LOG.error( - "Error merging feed sources: {}", - feedVersions.stream() - .map(version -> version.parentFeedSource().name) - .collect(Collectors.toList()) - .toString() - ); + LOG.error("Error merging feed sources: {}", + feedVersions.stream().map(version -> version.parentFeedSource().name) + .collect(Collectors.toList()).toString()); throw e; } - // If no rows were ever written, return null (there is no need to generate the empty file). - if (tableOut.size() == 0) return null; - // Track the number of lines in the merged table. + // Track the number of lines in the merged table and return final number. mergeFeedsResult.linesPerTable.put(table.name, mergedLineNumber); - // Otherwise, return the output stream as a byte array. - return tableOut.toByteArray(); + return mergedLineNumber; + } + + private static String getFieldScopedValue(Table table, String prefix, String id) { + return String.join(":", table.name, prefix, id); } /** @@ -576,7 +742,8 @@ private byte[] constructMergedTable(Table table, List feedsToMerge) private class FeedToMerge { public FeedVersion version; public ZipFile zipFile; - FeedToMerge (FeedVersion version) throws IOException { + + FeedToMerge(FeedVersion version) throws IOException { this.version = version; this.zipFile = new ZipFile(version.retrieveGtfsFile()); } diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java index c01fd6b89..e971e4fd2 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsResult.java @@ -1,24 +1,36 @@ package com.conveyal.datatools.manager.jobs; +import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; -public class MergeFeedsResult { +/** + * Contains the result of {@link MergeFeedsJob}. + */ +public class MergeFeedsResult implements Serializable { + private static final long serialVersionUID = 1L; + /** Number of feeds merged */ public int feedCount; public int errorCount; + /** Type of merge operation performed */ public MergeFeedsType type; + /** Contains a set of strings for which there were error-causing duplicate values */ public Set idConflicts = new HashSet<>(); + /** Contains the set of IDs for records that were excluded in the merged feed */ public Set skippedIds = new HashSet<>(); + /** Contains the set of IDs that had their values remapped during the merge */ public Map remappedIds = new HashMap<>(); + /** Mapping of table name to line count in merged file */ public Map linesPerTable = new HashMap<>(); public int remappedReferences; public int recordsSkipCount; public Date startTime; public boolean failed; + /** Set of reasons explaining why merge operation failed */ public Set failureReasons = new HashSet<>(); public MergeFeedsResult (MergeFeedsType type) { diff --git a/src/main/java/com/conveyal/datatools/manager/models/Model.java b/src/main/java/com/conveyal/datatools/manager/models/Model.java index 509ed9ad9..14c5a1b7f 100644 --- a/src/main/java/com/conveyal/datatools/manager/models/Model.java +++ b/src/main/java/com/conveyal/datatools/manager/models/Model.java @@ -14,6 +14,8 @@ import java.util.UUID; import com.conveyal.datatools.manager.auth.Auth0UserProfile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.persistence.MappedSuperclass; @@ -25,6 +27,7 @@ @MappedSuperclass // applies mapping information to the subclassed entities FIXME remove? public abstract class Model implements Serializable { private static final long serialVersionUID = 1L; + private static final Logger LOG = LoggerFactory.getLogger(Model.class); public Model () { // This autogenerates an ID @@ -102,6 +105,9 @@ public void storeUser(String id) { try { profile = Auth0Users.getUserById(userId); } catch (Exception e) { + LOG.warn( + "Could not find user profile {} from Auth0. This may be due to testing conditions or simply a bad user ID.", + id); e.printStackTrace(); } userEmail = profile != null ? profile.getEmail() : null; diff --git a/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java b/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java index c404690b9..a78fa6f44 100644 --- a/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java +++ b/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java @@ -8,6 +8,8 @@ import com.conveyal.datatools.manager.persistence.Persistence; import org.junit.BeforeClass; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileInputStream; @@ -23,10 +25,13 @@ * Tests for the various {@link MergeFeedsJob} merge types. */ public class MergeFeedsJobTest { + private static final Logger LOG = LoggerFactory.getLogger(MergeFeedsJobTest.class); private static FeedVersion bartVersion1; private static FeedVersion bartVersion2; private static FeedVersion calTrainVersion; private static Project project; + private static FeedVersion napaVersion; + /** * Prepare and start a testing-specific web server */ @@ -47,6 +52,10 @@ public static void setUp() { caltrain.projectId = project.id; Persistence.feedSources.create(caltrain); calTrainVersion = createFeedVersion(caltrain, "caltrain_gtfs.zip"); + FeedSource napa = new FeedSource("Napa"); + napa.projectId = project.id; + Persistence.feedSources.create(napa); + napaVersion = createFeedVersion(napa, "napa-no-agency-id.zip"); } /** @@ -54,9 +63,11 @@ public static void setUp() { */ @Test public void canMergeRegional() { + // Set up list of feed versions to merge. Set versions = new HashSet<>(); versions.add(bartVersion1); versions.add(calTrainVersion); + versions.add(napaVersion); MergeFeedsJob mergeFeedsJob = new MergeFeedsJob("test", versions, project.id, MergeFeedsType.REGIONAL); // Run the job in this thread (we're not concerned about concurrency here). mergeFeedsJob.run(); @@ -65,42 +76,43 @@ public void canMergeRegional() { source.projectId = project.id; Persistence.feedSources.create(source); File feed = FeedVersion.feedStore.getFeed(project.id + ".zip"); + LOG.info("Regional merged file: {}", feed.getAbsolutePath()); FeedVersion mergedVersion = createFeedVersion(source, feed); // Ensure the feed has the row counts we expect. assertEquals( "trips count for merged feed should equal sum of trips for versions merged.", - bartVersion1.feedLoadResult.trips.rowCount + calTrainVersion.feedLoadResult.trips.rowCount, + bartVersion1.feedLoadResult.trips.rowCount + calTrainVersion.feedLoadResult.trips.rowCount + napaVersion.feedLoadResult.trips.rowCount, mergedVersion.feedLoadResult.trips.rowCount ); assertEquals( "routes count for merged feed should equal sum of routes for versions merged.", - bartVersion1.feedLoadResult.routes.rowCount + calTrainVersion.feedLoadResult.routes.rowCount, + bartVersion1.feedLoadResult.routes.rowCount + calTrainVersion.feedLoadResult.routes.rowCount + napaVersion.feedLoadResult.routes.rowCount, mergedVersion.feedLoadResult.routes.rowCount ); assertEquals( "stops count for merged feed should equal sum of stops for versions merged.", mergedVersion.feedLoadResult.stops.rowCount, - bartVersion1.feedLoadResult.stops.rowCount + calTrainVersion.feedLoadResult.stops.rowCount + bartVersion1.feedLoadResult.stops.rowCount + calTrainVersion.feedLoadResult.stops.rowCount + napaVersion.feedLoadResult.stops.rowCount ); assertEquals( "agency count for merged feed should equal sum of agency for versions merged.", mergedVersion.feedLoadResult.agency.rowCount, - bartVersion1.feedLoadResult.agency.rowCount + calTrainVersion.feedLoadResult.agency.rowCount + bartVersion1.feedLoadResult.agency.rowCount + calTrainVersion.feedLoadResult.agency.rowCount + napaVersion.feedLoadResult.agency.rowCount ); assertEquals( "stopTimes count for merged feed should equal sum of stopTimes for versions merged.", mergedVersion.feedLoadResult.stopTimes.rowCount, - bartVersion1.feedLoadResult.stopTimes.rowCount + calTrainVersion.feedLoadResult.stopTimes.rowCount + bartVersion1.feedLoadResult.stopTimes.rowCount + calTrainVersion.feedLoadResult.stopTimes.rowCount + napaVersion.feedLoadResult.stopTimes.rowCount ); assertEquals( "calendar count for merged feed should equal sum of calendar for versions merged.", mergedVersion.feedLoadResult.calendar.rowCount, - bartVersion1.feedLoadResult.calendar.rowCount + calTrainVersion.feedLoadResult.calendar.rowCount + bartVersion1.feedLoadResult.calendar.rowCount + calTrainVersion.feedLoadResult.calendar.rowCount + napaVersion.feedLoadResult.calendar.rowCount ); assertEquals( "calendarDates count for merged feed should equal sum of calendarDates for versions merged.", mergedVersion.feedLoadResult.calendarDates.rowCount, - bartVersion1.feedLoadResult.calendarDates.rowCount + calTrainVersion.feedLoadResult.calendarDates.rowCount + bartVersion1.feedLoadResult.calendarDates.rowCount + calTrainVersion.feedLoadResult.calendarDates.rowCount + napaVersion.feedLoadResult.calendarDates.rowCount ); } @@ -140,12 +152,12 @@ public void canMergeBARTFeeds() { // Result should succeed this time. assertEquals( "Merged feed trip count should equal expected value.", - 4552, + 4552, // Magic number represents the number of trips in the merged BART feed. mergeFeedsJob.mergedVersion.feedLoadResult.trips.rowCount ); assertEquals( "Merged feed route count should equal expected value.", - 9, + 9, // Magic number represents the number of routes in the merged BART feed. mergeFeedsJob.mergedVersion.feedLoadResult.routes.rowCount ); } diff --git a/src/test/resources/com/conveyal/datatools/napa-no-agency-id.zip b/src/test/resources/com/conveyal/datatools/napa-no-agency-id.zip new file mode 100644 index 0000000000000000000000000000000000000000..bfb38c7376652f626c2158fc5f4487fcb95f36a4 GIT binary patch literal 314463 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

geFHU8SXbC;AS~P1>$1KIuyruBX(T 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ȗ!2PTS_eGxY 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↱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�(bvs8HD(lrfzKOq9_Xy0Y$o6{ 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 Date: Wed, 24 Apr 2019 14:43:26 -0400 Subject: [PATCH 16/23] fix(merge-feeds): address remaining PR comments --- .../datatools/manager/jobs/MergeFeedsJob.java | 162 ++++++++++-------- 1 file changed, 93 insertions(+), 69 deletions(-) diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index 753c51edf..a0ea5a363 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -75,42 +75,42 @@ * 4. The merge process shall compare the current and future datasets, validate the following rules * and generate the Merge Validation Report: * i. Merging will be based on route_short_name in the current and future datasets. All matching - * route_short_names between the datasets shall be considered same route. Any route_short_name - * in active data not present in the future will be appended to the future routes file. + * route_short_names between the datasets shall be considered same route. Any route_short_name + * in active data not present in the future will be appended to the future routes file. * ii. Future feed_info.txt file should get priority over active feed file when difference is - * identified. + * identified. * iii. When difference is found in agency.txt file between active and future feeds, the future - * agency.txt file data should be used. Possible issue with missing agency_id referenced by routes + * agency.txt file data should be used. Possible issue with missing agency_id referenced by routes * iv. When stop_code is included, stop merging will be based on that. If stop_code is not - * included, it will be based on stop_id. All stops in future data will be carried forward and - * any stops found in active data that are not in the future data shall be appended. If one - * of the feed is missing stop_code, merge fails with a notification to the user with - * suggestion that the feed with missing stop_code must be fixed with stop_code. + * included, it will be based on stop_id. All stops in future data will be carried forward and + * any stops found in active data that are not in the future data shall be appended. If one + * of the feed is missing stop_code, merge fails with a notification to the user with + * suggestion that the feed with missing stop_code must be fixed with stop_code. * v. If any service_id in the active feed matches with the future feed, it should be modified - * and all associated trip records must also be changed with the modified service_id. - * If a service_id from the active calendar has both the start_date and end_date in the - * future, the service shall not be appended to the merged file. Records in trips, - * calendar_dates, and calendar_attributes referencing this service_id shall also be - * removed/ignored. Stop_time records for the ignored trips shall also be removed. - * If a service_id from the active calendar has only the end_date in the future, the end_date - * shall be set to one day prior to the earliest start_date in future dataset before appending - * the calendar record to the merged file. - * trip_ids between active and future datasets must not match. If any trip_id is found to be - * matching, the merge should fail with appropriate notification to user with the cause of the - * failure. Notification should include all matched trip_ids. + * and all associated trip records must also be changed with the modified service_id. + * If a service_id from the active calendar has both the start_date and end_date in the + * future, the service shall not be appended to the merged file. Records in trips, + * calendar_dates, and calendar_attributes referencing this service_id shall also be + * removed/ignored. Stop_time records for the ignored trips shall also be removed. + * If a service_id from the active calendar has only the end_date in the future, the end_date + * shall be set to one day prior to the earliest start_date in future dataset before appending + * the calendar record to the merged file. + * trip_ids between active and future datasets must not match. If any trip_id is found to be + * matching, the merge should fail with appropriate notification to user with the cause of the + * failure. Notification should include all matched trip_ids. * vi. New shape_ids in the future datasets should be appended in the merged feed. * vii. Merging fare_attributes will be based on fare_id in the current and future datasets. All - * matching fare_ids between the datasets shall be considered same fare. Any fare_id in active - * data not present in the future will be appended to the future fare_attributes file. + * matching fare_ids between the datasets shall be considered same fare. Any fare_id in active + * data not present in the future will be appended to the future fare_attributes file. * viii. All fare rules from the future dataset will be included. Any identical fare rules from - * the current dataset will be discarded. Any fare rules unique to the current dataset will be - * appended to the future file. + * the current dataset will be discarded. Any fare rules unique to the current dataset will be + * appended to the future file. * ix. All transfers.txt entries with unique stop pairs (from - to) from both the future and - * current datasets will be included in the merged file. Entries with duplicate stop pairs from - * the current dataset will be discarded. + * current datasets will be included in the merged file. Entries with duplicate stop pairs from + * the current dataset will be discarded. * x. All GTFS+ files should be merged based on how the associated base GTFS file is merged. For - * example, directions for routes that are not in the future routes.txt file should be appended - * to the future directions.txt file in the merged feed. + * example, directions for routes that are not in the future routes.txt file should be appended + * to the future directions.txt file in the merged feed. */ public class MergeFeedsJob extends MonitorableJob { @@ -138,13 +138,14 @@ public MergeFeedsJob(String owner, Set feedVersions, String file, super(owner, mergeType.equals(REGIONAL) ? "Merging project feeds" : "Merging feed versions", JobType.MERGE_FEED_VERSIONS); this.feedVersions = feedVersions; - // Grab parent feed source if performing non-regional merge (each version should share the same feed source). + // Grab parent feed source if performing non-regional merge (each version should share the + // same feed source). this.feedSource = mergeType.equals(REGIONAL) ? null : feedVersions.iterator().next().parentFeedSource(); // Construct full filename with extension this.filename = String.format("%s.zip", file); - // If the merge type is regional, the file string should be equivalent to projectId, which is used by the client - // to download the merged feed upon job completion. + // If the merge type is regional, the file string should be equivalent to projectId, which + // is used by the client to download the merged feed upon job completion. this.projectId = mergeType.equals(REGIONAL) ? file : null; this.mergeType = mergeType; // Assuming job is successful, mergedVersion will contain the resulting feed version. @@ -153,8 +154,8 @@ public MergeFeedsJob(String owner, Set feedVersions, String file, } /** - * The final stage handles clean up (deleting temp file) and adding the next job to process the new merged version - * (assuming the merge did not fail). + * The final stage handles clean up (deleting temp file) and adding the next job to process the + * new merged version (assuming the merge did not fail). */ public void jobFinished() { // Delete temp file to ensure it does not cause storage bloat. Note: merged file has already been stored @@ -182,17 +183,26 @@ public void jobFinished() { // Determine which tables to merge (only merge GTFS+ tables for MTC extension). final List

tablesToMerge = - Arrays.stream(Table.tablesInOrder).filter(Table::isSpecTable) + Arrays.stream(Table.tablesInOrder) + .filter(Table::isSpecTable) .collect(Collectors.toList()); if (DataManager.isExtensionEnabled("mtc")) { - // Merge GTFS+ tables only if MTC extension is enabled. We should do this for both regional and MTC merge - // strategies. + // Merge GTFS+ tables only if MTC extension is enabled. We should do this for both + // regional and MTC merge strategies. tablesToMerge.addAll(Arrays.asList(GtfsPlusTable.tables)); } int numberOfTables = tablesToMerge.size(); // Loop over GTFS tables and merge each feed one table at a time. for (int i = 0; i < numberOfTables; i++) { Table table = tablesToMerge.get(i); + if (mergeType.equals(REGIONAL) && table.name.equals(Table.FEED_INFO.name)) { + // It does not make sense to include the feed_info table when performing a + // regional feed merge because this file is intended to contain data specific to + // a single agency feed. + // TODO: Perhaps future work can generate a special feed_info file for the merged + // file. + LOG.info("Skipping feed_info table for regional merge."); + } double percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; status.update("Merging " + table.name, percentComplete); // Perform the merge. @@ -207,9 +217,9 @@ public void jobFinished() { // Close output stream for zip file. out.close(); // Handle writing file to storage (local or s3). - if (mergeFeedsResult.failed) + if (mergeFeedsResult.failed) { status.fail("Merging feed versions failed."); - else { + } else { storeMergedFeed(); status.update(false, "Merged feed created successfully.", 100, true); } @@ -323,18 +333,6 @@ private int constructMergedTable(Table table, List feedsToMerge, // replaced with the generated value stored in this variable. String newAgencyId = null; mergeFeedsResult.feedCount++; - if (feedIndex > 0 && (table.name.equals("feed_info") || - (mergeType.equals(MTC) && table.name.equals("agency")))) { - // Always prefer the "future" file for the feed_info table, which means - // we can skip any iterations following the first one. If merging the agency - // table, we should only skip the following feeds if performing an MTC merge - // because that logic assumes the two feeds share the same agency (or agencies). - // FIXME: This could cause issues with routes or fares that reference an - // agency_id that no longer exists. - LOG.warn("Skipping {} file for feed {}/{} (future file preferred)", table.name, - feedIndex, feedsToMerge.size()); - continue; - } FeedToMerge feed = feedsToMerge.get(feedIndex); FeedVersion version = feed.version; FeedSource feedSource = version.parentFeedSource(); @@ -366,19 +364,47 @@ private int constructMergedTable(Table table, List feedsToMerge, // Iterate over rows in table, writing them to the out file. while (csvReader.readRecord()) { String keyValue = csvReader.get(keyFieldIndex); + if (feedIndex > 0 && mergeType.equals(MTC)) { + // Always prefer the "future" file for the feed_info table, which means + // we can skip any iterations following the first one. If merging the agency + // table, we should only skip the following feeds if performing an MTC merge + // because that logic assumes the two feeds share the same agency (or + // agencies). NOTE: feed_info file is skipped by default (outside of this + // method) for a regional merge), which is why this block is exclusively + // for an MTC merge. Also, this statement may print multiple log + // statements, but it is deliberately nested in the csv while block in + // order to detect agency_id mismatches and fail the merge if found. + if (table.name.equals("feed_info")) { + LOG.warn("Skipping {} file for feed {}/{} (future file preferred)", + table.name, feedIndex, feedsToMerge.size()); + continue; + } else if (table.name.equals("agency")) { + // The second feed's agency table must contain the same agency_id + // value as the first feed. + String agencyId = String.join(":", keyField, keyValue); + if (!"".equals(keyValue) && !referenceTracker.transitIds.contains(agencyId)) { + String message = "MTC merge detected mismatching agency_id values " + + "between two feeds. Failing merge operation."; + LOG.error(message); + mergeFeedsResult.failed = true; + mergeFeedsResult.failureReasons.add(message); + return -1; + } + LOG.warn("Skipping {} file for feed {}/{} (future file preferred)", + table.name, feedIndex, feedsToMerge.size()); + continue; + } + } // Check certain initial conditions on the first line of the file. if (lineNumber == 0) { - if (table.name.equals(Table.AGENCY.name) && (keyFieldMissing || keyValue - .equals(""))) { + if (table.name.equals(Table.AGENCY.name) && (keyFieldMissing || keyValue.equals(""))) { // agency_id is optional if only one agency is present, but that will // cause issues for the feed merge, so we need to insert an agency_id // for the single entry. newAgencyId = UUID.randomUUID().toString(); if (keyFieldMissing) { - // Only add agency_id field if it is missing in table. - List fieldsList = - new ArrayList<>(Arrays.asList(fieldsFoundInZip)); + List fieldsList = new ArrayList<>(Arrays.asList(fieldsFoundInZip)); fieldsList.add(Table.AGENCY.fields[0]); fieldsFoundInZip = fieldsList.toArray(fieldsFoundInZip); } @@ -402,10 +428,8 @@ private int constructMergedTable(Table table, List feedsToMerge, } } else { // Check whether stop_code exists for the subsequent files. - String firstStopCodeValue = - csvReader.get(getFieldIndex(fieldsFoundInZip, "stop_code")); - if (stopCodeMissingFromFirstTable && !"" - .equals(firstStopCodeValue)) { + String firstStopCodeValue = csvReader.get(getFieldIndex(fieldsFoundInZip, "stop_code")); + if (stopCodeMissingFromFirstTable && !"".equals(firstStopCodeValue)) { // If stop_code was missing from the first file and exists for // the second, we consider that a failing error. mergeFeedsResult.failed = true; @@ -465,9 +489,9 @@ private int constructMergedTable(Table table, List feedsToMerge, // track references for a large number of feeds (e.g., every feed in New // York State). if (mergeType.equals(MTC)) { - Set idErrors = table + Set idErrors = referenceTracker .checkReferencesAndUniqueness(keyValue, lineNumber, field, val, - referenceTracker, keyField, orderField); + table, keyField, orderField); // Store values for key fields that have been encountered. // TODO Consider using Strategy Pattern https://en.wikipedia.org/wiki/Strategy_pattern // instead of a switch statement. @@ -562,9 +586,9 @@ private int constructMergedTable(Table table, List feedsToMerge, // by the reference tracker. String primaryKeyValue = csvReader.get(table.getKeyFieldIndex(fieldsFoundInZip)); - Set primaryKeyErrors = table + Set primaryKeyErrors = referenceTracker .checkReferencesAndUniqueness(primaryKeyValue, lineNumber, - field, val, referenceTracker); + field, val, table); // Merging will be based on route_short_name/stop_code in the current and future datasets. All // matching route_short_names/stop_codes between the datasets shall be considered same route/stop. Any // route_short_name/stop_code in active data not present in the future will be appended to the @@ -641,14 +665,7 @@ private int constructMergedTable(Table table, List feedsToMerge, } if (field.isForeignReference()) { - // If the field is a foreign reference, check to see whether the reference has been - // remapped due to a conflicting ID from another feed (e.g., calendar#service_id). String key = getFieldScopedValue(field.referenceTable, idScope, val); - if (mergeFeedsResult.remappedIds.containsKey(key)) { - mergeFeedsResult.remappedReferences++; - // If the value has been remapped update the value to write. - valueToWrite = mergeFeedsResult.remappedIds.get(key); - } // If the current foreign ref points to another record that has been skipped, skip this // record and add its primary key to the list of skipped IDs (so that other references can // be properly omitted). @@ -662,6 +679,13 @@ private int constructMergedTable(Table table, List feedsToMerge, skipRecord = true; continue; } + // If the field is a foreign reference, check to see whether the reference has been + // remapped due to a conflicting ID from another feed (e.g., calendar#service_id). + if (mergeFeedsResult.remappedIds.containsKey(key)) { + mergeFeedsResult.remappedReferences++; + // If the value has been remapped update the value to write. + valueToWrite = mergeFeedsResult.remappedIds.get(key); + } } rowValues[specFieldIndex] = valueToWrite; } From d2276a2890a946b1439e1ba66de566208a49fa98 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Wed, 24 Apr 2019 21:42:03 -0400 Subject: [PATCH 17/23] build(pom): bump gtfs-lib to 4.3.3 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a7dd924ed..703fd1ed3 100644 --- a/pom.xml +++ b/pom.xml @@ -258,7 +258,7 @@ com.conveyal gtfs-lib - 4.3.2 + 4.3.3 From 6d9db089349d2388868b9e53bb99d9adbe7a43be Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Thu, 2 May 2019 12:36:58 -0400 Subject: [PATCH 18/23] fix(merge-feeds): add test for errors; fix missing stop_code bug --- pom.xml | 10 + .../datatools/manager/jobs/MergeFeedsJob.java | 179 +++++++++++------- .../com/conveyal/datatools/TestUtils.java | 35 ++++ .../manager/jobs/MergeFeedsJobTest.java | 21 +- 4 files changed, 173 insertions(+), 72 deletions(-) diff --git a/pom.xml b/pom.xml index 703fd1ed3..cdcd40344 100644 --- a/pom.xml +++ b/pom.xml @@ -366,6 +366,16 @@ 2.14.0 test + + + net.sf.supercsv + super-csv + 2.4.0 + diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index a0ea5a363..499d3c0c6 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -15,11 +15,14 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.supercsv.io.CsvListWriter; +import org.supercsv.prefs.CsvPreference; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStreamWriter; import java.time.LocalDate; import java.time.temporal.ChronoUnit; import java.util.ArrayList; @@ -201,7 +204,12 @@ public void jobFinished() { // a single agency feed. // TODO: Perhaps future work can generate a special feed_info file for the merged // file. - LOG.info("Skipping feed_info table for regional merge."); + LOG.warn("Skipping feed_info table for regional merge."); + continue; + } + if (table.name.equals(Table.PATTERNS.name) || table.name.equals(Table.PATTERN_STOP.name)) { + LOG.warn("Skipping editor-only table {}.", table.name); + continue; } double percentComplete = Math.round((double) i / numberOfTables * 10000d) / 100d; status.update("Merging " + table.name, percentComplete); @@ -209,7 +217,7 @@ public void jobFinished() { LOG.info("Writing {} to merged feed", table.name); int mergedLineNumber = constructMergedTable(table, feedsToMerge, out); if (mergedLineNumber == 0) { - LOG.info("Skipping {} table. No entries found in zip files.", table.name); + LOG.warn("Skipping {} table. No entries found in zip files.", table.name); } else if (mergedLineNumber == -1) { LOG.error("Merge {} table failed!", table.name); } @@ -301,6 +309,8 @@ private void storeMergedFeed() throws IOException { */ private int constructMergedTable(Table table, List feedsToMerge, ZipOutputStream out) throws IOException { + // CSV writer used to write to zip file. + CsvListWriter writer = new CsvListWriter(new OutputStreamWriter(out), CsvPreference.STANDARD_PREFERENCE); String keyField = table.getKeyFieldName(); String orderField = table.getOrderFieldName(); if (mergeType.equals(MTC)) { @@ -414,6 +424,8 @@ private int constructMergedTable(Table table, List feedsToMerge, // For the first line of the stops table, check that the alt. key // field (stop_code) is present. If it is not, revert to the original // key field. This is only pertinent for the MTC merge type. + // TODO: Use more sophisticated check for missing stop_codes than + // simply the first line containing the value. if (feedIndex == 0) { // Check that the first file contains stop_code values. if ("".equals(keyValue)) { @@ -504,14 +516,12 @@ private int constructMergedTable(Table table, List feedsToMerge, // duplicates? I think we would need to consider the // service_id:exception_type:date as the unique key and include any // all entries as long as they are unique on this key. - for (NewGTFSError error : idErrors) { - if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { - String key = getFieldScopedValue(table, idScope, val); - // Modify service_id and ensure that referencing trips - // have service_id updated. - val = String.join(":", idScope, val); - mergeFeedsResult.remappedIds.put(key, val); - } + if (hasDuplicateError(idErrors)) { + String key = getTableScopedValue(table, idScope, val); + // Modify service_id and ensure that referencing trips + // have service_id updated. + valueToWrite = String.join(":", idScope, val); + mergeFeedsResult.remappedIds.put(key, valueToWrite); } // If a service_id from the active calendar has both the // start_date and end_date in the future, the service will be @@ -530,7 +540,7 @@ private int constructMergedTable(Table table, List feedsToMerge, "Skipping calendar entry {} because it operates in the future.", keyValue); String key = - getFieldScopedValue(table, idScope, keyValue); + getTableScopedValue(table, idScope, keyValue); mergeFeedsResult.skippedIds.add(key); skipRecord = true; continue; @@ -580,6 +590,8 @@ private int constructMergedTable(Table table, List feedsToMerge, // NOTE: route case is also used by the stops case, so the route // case must follow this block. case "routes": + boolean useAltKey = + keyField.equals("stop_code") || keyField.equals("route_short_name"); // First, check uniqueness of primary key value (i.e., stop or route ID) // in case the stop_code or route_short_name are being used. This // must occur unconditionally because each record must be tracked @@ -593,29 +605,47 @@ private int constructMergedTable(Table table, List feedsToMerge, // matching route_short_names/stop_codes between the datasets shall be considered same route/stop. Any // route_short_name/stop_code in active data not present in the future will be appended to the // future routes/stops file. - if (keyField.equals("stop_code") || keyField - .equals("route_short_name")) { - for (NewGTFSError error : idErrors) { - if (error.errorType - .equals(NewGTFSErrorType.DUPLICATE_ID)) { - // If we encounter a route/stop that shares its alt. ID with a previous route/stop, - // we need to remap its route_id/stop_id field so that references point to the previous - // route_id/stop_id. - String currentId = index == 0 ? val : rowValues[0]; - String key = - getFieldScopedValue(table, idScope, currentId); - // Extract the route_id/stop_id value used for the route/stop with matching alt ID. - String[] strings = - rowValuesForStopOrRouteId.get(val); - String id = strings[0]; - if (!id.equals(currentId)) { - // Remap this row's route_id/stop_id to ensure - // that referencing entities (trips, stop_times) have their - // references updated. - mergeFeedsResult.remappedIds.put(key, id); - } + if (useAltKey) { + if ("".equals(val)) { + // If alt key is empty (which is permitted), skip + // checking of alt key dupe errors/re-mapping values and + // simply use the primary key (route_id/stop_id). + if (hasDuplicateError(primaryKeyErrors)) { skipRecord = true; } + } else if (hasDuplicateError(idErrors)) { + // If we encounter a route/stop that shares its alt. + // ID with a previous route/stop, we need to + // remap its route_id/stop_id field so that + // references point to the previous + // route_id/stop_id. For example, + // route_short_name in both feeds is "ABC" but + // each route has a different route_id (123 and + // 456). This block will map references to 456 to + // 123 so that ABC/123 is the route of record. + //////////////////////////////////////////////////////// + // Get current route/stop ID. (Note: primary + // ID index is always zero because we're + // iterating over the spec fields). + String currentPrimaryKey = rowValues[0]; + // Get unique key to check for remapped ID when + // writing values to file. + String key = + getTableScopedValue(table, idScope, currentPrimaryKey); + // Extract the route/stop ID value used for the + // route/stop with already encountered matching + // short name/stop code. + String[] strings = + rowValuesForStopOrRouteId.get(String.join( + ":", keyField, val)); + String keyForMatchingAltId = strings[0]; + if (!keyForMatchingAltId.equals(currentPrimaryKey)) { + // Remap this row's route_id/stop_id to ensure + // that referencing entities (trips, stop_times) + // have their references updated. + mergeFeedsResult.remappedIds.put(key, keyForMatchingAltId); + } + skipRecord = true; } // Next check for regular ID conflicts (e.g., on route_id or stop_id) because any // conflicts here will actually break the feed. This essentially handles the case @@ -624,26 +654,19 @@ private int constructMergedTable(Table table, List feedsToMerge, // matching on short name, so we must modify the route_id. if (!skipRecord && !referenceTracker.transitIds .contains(String.join(":", keyField, keyValue))) { - for (NewGTFSError error : primaryKeyErrors) { - if (error.errorType - .equals(NewGTFSErrorType.DUPLICATE_ID)) { - String key = - getFieldScopedValue(table, idScope, val); - // Modify route_id and ensure that referencing trips have route_id updated. - val = String.join(":", idScope, val); - mergeFeedsResult.remappedIds.put(key, val); - } + if (hasDuplicateError(primaryKeyErrors)) { + String key = getTableScopedValue(table, idScope, val); + // Modify route_id and ensure that referencing trips + // have route_id updated. + valueToWrite = String.join(":", idScope, val); + mergeFeedsResult.remappedIds.put(key, valueToWrite); } } } else { - // Key field has defaulted to the standard primary key field (stop_id or route_id), - // which makes the check much simpler (just skip the duplicate record). - for (NewGTFSError error : idErrors) { - if (error.errorType - .equals(NewGTFSErrorType.DUPLICATE_ID)) { - skipRecord = true; - } - } + // Key field has defaulted to the standard primary key field + // (stop_id or route_id), which makes the check much + // simpler (just skip the duplicate record). + if (hasDuplicateError(idErrors)) skipRecord = true; } if (newAgencyId != null && field.name.equals("agency_id")) { @@ -655,22 +678,18 @@ private int constructMergedTable(Table table, List feedsToMerge, break; default: // For any other table, skip any duplicate record. - for (NewGTFSError error : idErrors) { - if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) { - skipRecord = true; - } - } + if (hasDuplicateError(idErrors)) skipRecord = true; break; } } if (field.isForeignReference()) { - String key = getFieldScopedValue(field.referenceTable, idScope, val); + String key = getTableScopedValue(field.referenceTable, idScope, val); // If the current foreign ref points to another record that has been skipped, skip this // record and add its primary key to the list of skipped IDs (so that other references can // be properly omitted). if (mergeFeedsResult.skippedIds.contains(key)) { - String skippedKey = getFieldScopedValue(table, idScope, keyValue); + String skippedKey = getTableScopedValue(table, idScope, keyValue); if (orderField != null) { skippedKey = String.join(":", skippedKey, csvReader.get(getFieldIndex(fieldsFoundInZip, orderField))); @@ -688,7 +707,7 @@ private int constructMergedTable(Table table, List feedsToMerge, } } rowValues[specFieldIndex] = valueToWrite; - } + } // End of iteration over each field for a row. // Do not write rows that are designated to be skipped. if (skipRecord && this.mergeType.equals(MTC)) { mergeFeedsResult.recordsSkipCount++; @@ -696,15 +715,22 @@ private int constructMergedTable(Table table, List feedsToMerge, } String newLine = String.join(",", rowValues); switch (table.name) { - // Store row values for route or stop ID in order to check for ID conflicts. NOTE: - // This is only intended to be used for routes and stops. Otherwise, this might - // consume too much memory. + // Store row values for route or stop ID (or alternative ID field) in order + // to check for ID conflicts. NOTE: This is only intended to be used for + // routes and stops. Otherwise, this might (will) consume too much memory. case "stops": case "routes": // FIXME: This should be revised for tables with order fields, but it should work fine for its // primary purposes: to detect exact copy rows and to temporarily hold the data in case a reference // needs to be looked up in order to remap an entity to that key. - rowValuesForStopOrRouteId.put(rowValues[keyFieldIndex], rowValues); + // Here we need to get the key field index according to the spec + // table definition. Otherwise, if we use the keyFieldIndex variable + // defined above, we will be using the found fields index, which will + // cause major issues when trying to put and get values into the + // below map. + String key = String.join( + ":", keyField, rowValues[table.getFieldIndex(keyField)]); + rowValuesForStopOrRouteId.put(key, rowValues); break; case "transfers": case "fare_rules": @@ -731,23 +757,24 @@ private int constructMergedTable(Table table, List feedsToMerge, ZipEntry tableEntry = new ZipEntry(table.name + ".txt"); out.putNextEntry(tableEntry); // Write headers to table. - String headers = specFields.stream().map(field -> field.name) - .collect(Collectors.joining(",")); - out.write(headers.getBytes()); - out.write("\n".getBytes()); + String[] headers = specFields.stream() + .map(field -> field.name) + .toArray(String[]::new); + writer.write(headers); } // Write line to table (plus new line char). - out.write(newLine.getBytes()); - out.write("\n".getBytes()); + writer.write(rowValues); lineNumber++; mergedLineNumber++; - } + } // End of iteration over each row. } + writer.flush(); out.closeEntry(); } catch (Exception e) { LOG.error("Error merging feed sources: {}", feedVersions.stream().map(version -> version.parentFeedSource().name) .collect(Collectors.toList()).toString()); + e.printStackTrace(); throw e; } // Track the number of lines in the merged table and return final number. @@ -755,8 +782,20 @@ private int constructMergedTable(Table table, List feedsToMerge, return mergedLineNumber; } - private static String getFieldScopedValue(Table table, String prefix, String id) { - return String.join(":", table.name, prefix, id); + /** Checks that any of a set of errors is of the type {@link NewGTFSErrorType#DUPLICATE_ID}. */ + private boolean hasDuplicateError(Set errors) { + for (NewGTFSError error : errors) { + if (error.errorType.equals(NewGTFSErrorType.DUPLICATE_ID)) return true; + } + return false; + } + + /** Get table-scoped value used for key when remapping references for a particular feed. */ + private static String getTableScopedValue(Table table, String prefix, String id) { + return String.join(":", + table.name, + prefix, + id); } /** diff --git a/src/test/java/com/conveyal/datatools/TestUtils.java b/src/test/java/com/conveyal/datatools/TestUtils.java index 3ae664478..b340dcf94 100644 --- a/src/test/java/com/conveyal/datatools/TestUtils.java +++ b/src/test/java/com/conveyal/datatools/TestUtils.java @@ -2,10 +2,23 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.stream.Collectors; + +import static com.conveyal.datatools.manager.DataManager.GTFS_DATA_SOURCE; +import static org.hamcrest.Matchers.equalTo; +import static org.junit.Assert.assertThat; public class TestUtils { + + private static final Logger LOG = LoggerFactory.getLogger(TestUtils.class); + /** * Parse a json string into an unmapped JsonNode object */ @@ -13,4 +26,26 @@ public static JsonNode parseJson(String jsonString) throws IOException { ObjectMapper mapper = new ObjectMapper(); return mapper.readTree(jsonString); } + + public static void assertThatSqlQueryYieldsRowCount(String sql, int expectedRowCount) throws + SQLException { + LOG.info(sql); + int recordCount = 0; + ResultSet rs = GTFS_DATA_SOURCE.getConnection().prepareStatement(sql).executeQuery(); + while (rs.next()) recordCount++; + assertThat("Records matching query should equal expected count.", recordCount, equalTo(expectedRowCount)); + } + + public static void assertThatFeedHasNoErrorsOfType (String namespace, String... errorTypes) throws SQLException { + assertThatSqlQueryYieldsRowCount( + String.format( + "select * from %s.errors where error_type in (%s)", + namespace, + Arrays.stream(errorTypes) + .map(error -> String.format("'%s'", error)) + .collect(Collectors.joining(",")) + ), + 0 + ); + } } diff --git a/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java b/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java index a78fa6f44..722d1ebb2 100644 --- a/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java +++ b/src/test/java/com/conveyal/datatools/manager/jobs/MergeFeedsJobTest.java @@ -2,10 +2,12 @@ import com.conveyal.datatools.DatatoolsTest; import com.conveyal.datatools.LoadFeedTest; +import com.conveyal.datatools.TestUtils; import com.conveyal.datatools.manager.models.FeedSource; import com.conveyal.datatools.manager.models.FeedVersion; import com.conveyal.datatools.manager.models.Project; import com.conveyal.datatools.manager.persistence.Persistence; +import com.conveyal.gtfs.error.NewGTFSErrorType; import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; @@ -15,6 +17,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.sql.SQLException; import java.util.Date; import java.util.HashSet; import java.util.Set; @@ -62,7 +65,7 @@ public static void setUp() { * Ensures that a regional feed merge will produce a feed that includes all entities from each feed. */ @Test - public void canMergeRegional() { + public void canMergeRegional() throws SQLException { // Set up list of feed versions to merge. Set versions = new HashSet<>(); versions.add(bartVersion1); @@ -114,6 +117,14 @@ public void canMergeRegional() { mergedVersion.feedLoadResult.calendarDates.rowCount, bartVersion1.feedLoadResult.calendarDates.rowCount + calTrainVersion.feedLoadResult.calendarDates.rowCount + napaVersion.feedLoadResult.calendarDates.rowCount ); + // Ensure there are no referential integrity errors, duplicate ID, or wrong number of + // fields errors. + TestUtils.assertThatFeedHasNoErrorsOfType( + mergedVersion.namespace, + NewGTFSErrorType.REFERENTIAL_INTEGRITY.toString(), + NewGTFSErrorType.DUPLICATE_ID.toString(), + NewGTFSErrorType.WRONG_NUMBER_OF_FIELDS.toString() + ); } /** @@ -141,7 +152,7 @@ public void mergeMTCShouldFailOnDuplicateTrip() { * trips contained within. */ @Test - public void canMergeBARTFeeds() { + public void canMergeBARTFeeds() throws SQLException { Set versions = new HashSet<>(); versions.add(bartVersion1); versions.add(bartVersion2); @@ -160,6 +171,12 @@ public void canMergeBARTFeeds() { 9, // Magic number represents the number of routes in the merged BART feed. mergeFeedsJob.mergedVersion.feedLoadResult.routes.rowCount ); + // Ensure there are no referential integrity errors or duplicate ID errors. + TestUtils.assertThatFeedHasNoErrorsOfType( + mergeFeedsJob.mergedVersion.namespace, + NewGTFSErrorType.REFERENTIAL_INTEGRITY.toString(), + NewGTFSErrorType.DUPLICATE_ID.toString() + ); } /** From bcc5cbb15d4046bd5145673b4b1cf13e174aa460 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Thu, 2 May 2019 13:00:52 -0400 Subject: [PATCH 19/23] build(travis): remove oraclejdk8 to fix build --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b4d0bc5e7..0316ad080 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,5 @@ language: java language: java -jdk: - - oraclejdk8 install: true sudo: false # Install mongoDB to perform persistence tests From 04c9c47f15bb1e7c1c665443b770d4e1b7eb6b7e Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Thu, 2 May 2019 13:08:39 -0400 Subject: [PATCH 20/23] build(travis): use jdk 8 and linux trusty dist --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 0316ad080..6ed642f26 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,8 @@ +dist: trusty # jdk 8 not available on xenial language: java language: java +java: + - oraclejdk8 install: true sudo: false # Install mongoDB to perform persistence tests From 7f69f67ea321d34f9e63a9652ff47ab5c9989925 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Thu, 2 May 2019 14:21:33 -0400 Subject: [PATCH 21/23] refactor(merge-feeds): improve error message for agency_id mismatch --- .../datatools/manager/jobs/MergeFeedsJob.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java index 499d3c0c6..5b3d684cf 100644 --- a/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java +++ b/src/main/java/com/conveyal/datatools/manager/jobs/MergeFeedsJob.java @@ -393,8 +393,16 @@ private int constructMergedTable(Table table, List feedsToMerge, // value as the first feed. String agencyId = String.join(":", keyField, keyValue); if (!"".equals(keyValue) && !referenceTracker.transitIds.contains(agencyId)) { - String message = "MTC merge detected mismatching agency_id values " - + "between two feeds. Failing merge operation."; + String otherAgencyId = referenceTracker.transitIds.stream() + .filter(transitId -> transitId.startsWith("agency_id")) + .findAny() + .orElse(null); + String message = String.format( + "MTC merge detected mismatching agency_id values between two " + + "feeds (%s and %s). Failing merge operation.", + agencyId, + otherAgencyId + ); LOG.error(message); mergeFeedsResult.failed = true; mergeFeedsResult.failureReasons.add(message); From a590fc313f800dad3b0ccf5f5de856dd7de6f336 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Fri, 3 May 2019 11:45:12 -0400 Subject: [PATCH 22/23] build(pom): update gtfs-lib to 4.3.4 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cdcd40344..1587348a7 100644 --- a/pom.xml +++ b/pom.xml @@ -258,7 +258,7 @@ com.conveyal gtfs-lib - 4.3.3 + 4.3.4 From b9e95a0b04527cfd45078c3805e22ee84aff3656 Mon Sep 17 00:00:00 2001 From: Landon Reed Date: Mon, 6 May 2019 14:54:12 -0400 Subject: [PATCH 23/23] refactor(merge-feeds): add description for exception --- .../manager/controllers/api/FeedVersionController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java index e6edde333..a8be71617 100644 --- a/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java +++ b/src/main/java/com/conveyal/datatools/manager/controllers/api/FeedVersionController.java @@ -280,7 +280,9 @@ private static String mergeFeedVersions(Request req, Response res) { MergeFeedsType mergeType; try { mergeType = MergeFeedsType.valueOf(req.queryParams("mergeType")); - if (mergeType.equals(REGIONAL)) throw new IllegalArgumentException(); + if (mergeType.equals(REGIONAL)) { + throw new IllegalArgumentException("Regional merge type is not permitted for this endpoint."); + } } catch (IllegalArgumentException e) { logMessageAndHalt(req, 400, "Must provide valid merge type.", e); return null;