diff --git a/CHANGELOG.md b/CHANGELOG.md
index 66d0c0fe69..9c45494dfb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,7 +17,18 @@ Current
### Removed:
-#### Changed:
+### Changed:
+
+- [Reorganizes asynchronous package structure](https://github.com/yahoo/fili/pull/19)
+ * The `jobs` package is renamed to `async` and split into the following subpackages:
+ - `broadcastchannels` - Everything dealing with broadcast channels
+ - `jobs` - Everything related to `jobs`, broken into subpackages
+ * `jobrows` - Everything related to the content of the job metadata
+ * `payloads` - Everything related to building the version of the job metadata to send to the user
+ * `stores` - Everything related to the databases for job data
+ - `preresponses` - Everything related to `PreResponses`, broken into subpackages
+ * `stores` - Everything related to the the databases for PreResponse data
+ - `workflows` - Everything related to the asynchronous workflow
- [Fix Dimension Serialization Problem with Nested Queries](https://github.com/yahoo/fili/pull/15)
* Modified `DimensionToDefaultDimensionSpec` serializer to serialize dimension to apiName if it is not the inner most query
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/application/AbstractBinderFactory.java b/fili-core/src/main/java/com/yahoo/bard/webservice/application/AbstractBinderFactory.java
index 582d1e7574..abd59397b9 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/application/AbstractBinderFactory.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/application/AbstractBinderFactory.java
@@ -15,8 +15,8 @@
import com.yahoo.bard.webservice.application.healthchecks.DruidDimensionsLoaderHealthCheck;
import com.yahoo.bard.webservice.application.healthchecks.SegmentMetadataLoaderHealthCheck;
import com.yahoo.bard.webservice.application.healthchecks.VersionHealthCheck;
-import com.yahoo.bard.webservice.jobs.AsynchronousWorkflowsBuilder;
-import com.yahoo.bard.webservice.jobs.DefaultAsynchronousWorkflowsBuilder;
+import com.yahoo.bard.webservice.async.workflows.AsynchronousWorkflowsBuilder;
+import com.yahoo.bard.webservice.async.workflows.DefaultAsynchronousWorkflowsBuilder;
import com.yahoo.bard.webservice.config.BardFeatureFlag;
import com.yahoo.bard.webservice.config.FeatureFlag;
import com.yahoo.bard.webservice.config.FeatureFlagRegistry;
@@ -55,17 +55,17 @@
import com.yahoo.bard.webservice.druid.util.FieldConverterSupplier;
import com.yahoo.bard.webservice.druid.util.FieldConverters;
import com.yahoo.bard.webservice.druid.util.SketchFieldConverter;
-import com.yahoo.bard.webservice.jobs.ApiJobStore;
-import com.yahoo.bard.webservice.jobs.BroadcastChannel;
-import com.yahoo.bard.webservice.jobs.DefaultJobField;
-import com.yahoo.bard.webservice.jobs.DefaultJobPayloadBuilder;
-import com.yahoo.bard.webservice.jobs.DefaultJobRowBuilder;
-import com.yahoo.bard.webservice.jobs.JobPayloadBuilder;
-import com.yahoo.bard.webservice.jobs.JobRowBuilder;
-import com.yahoo.bard.webservice.jobs.NoOpApiJobStore;
-import com.yahoo.bard.webservice.jobs.NoOpPreResponseStore;
-import com.yahoo.bard.webservice.jobs.PreResponseStore;
-import com.yahoo.bard.webservice.jobs.SimpleBroadcastChannel;
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore;
+import com.yahoo.bard.webservice.async.broadcastchannels.BroadcastChannel;
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField;
+import com.yahoo.bard.webservice.async.jobs.payloads.DefaultJobPayloadBuilder;
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobRowBuilder;
+import com.yahoo.bard.webservice.async.jobs.payloads.JobPayloadBuilder;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRowBuilder;
+import com.yahoo.bard.webservice.async.jobs.stores.NoOpApiJobStore;
+import com.yahoo.bard.webservice.async.preresponses.stores.NoOpPreResponseStore;
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore;
+import com.yahoo.bard.webservice.async.broadcastchannels.SimpleBroadcastChannel;
import com.yahoo.bard.webservice.metadata.DataSourceMetadataLoader;
import com.yahoo.bard.webservice.metadata.DataSourceMetadataService;
import com.yahoo.bard.webservice.metadata.QuerySigningService;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsyncUtils.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/AsyncUtils.java
similarity index 98%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsyncUtils.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/AsyncUtils.java
index 5309013f0b..98036996d4 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsyncUtils.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/AsyncUtils.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async;
import com.yahoo.bard.webservice.data.ResultSet;
import com.yahoo.bard.webservice.druid.model.query.AllGranularity;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ErrorUtils.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/ErrorUtils.java
similarity index 97%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ErrorUtils.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/ErrorUtils.java
index 3708486cb2..65fbc1adc5 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ErrorUtils.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/ErrorUtils.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async;
import javax.validation.constraints.NotNull;
import javax.ws.rs.ProcessingException;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/MetadataHttpResponseChannel.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/MetadataHttpResponseChannel.java
similarity index 98%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/MetadataHttpResponseChannel.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/MetadataHttpResponseChannel.java
index 93c9e93014..e94498b386 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/MetadataHttpResponseChannel.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/MetadataHttpResponseChannel.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async;
import static com.yahoo.bard.webservice.web.handlers.workflow.DruidWorkflow.RESPONSE_WORKFLOW_TIMER;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ResponseException.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/ResponseException.java
similarity index 98%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ResponseException.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/ResponseException.java
index f5e0c2543f..298b9a3600 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ResponseException.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/ResponseException.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async;
import com.yahoo.bard.webservice.druid.model.query.DruidAggregationQuery;
import com.yahoo.bard.webservice.druid.model.query.DruidQuery;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/BroadcastChannel.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/BroadcastChannel.java
similarity index 96%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/BroadcastChannel.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/BroadcastChannel.java
index b337ed00ec..6f8e9a865d 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/BroadcastChannel.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/BroadcastChannel.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.broadcastchannels;
import rx.Observable;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/RedisBroadcastChannel.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/RedisBroadcastChannel.java
similarity index 98%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/RedisBroadcastChannel.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/RedisBroadcastChannel.java
index f783761d09..43fe9c87b0 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/RedisBroadcastChannel.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/RedisBroadcastChannel.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.broadcastchannels;
import com.yahoo.bard.webservice.config.SystemConfig;
import com.yahoo.bard.webservice.config.SystemConfigProvider;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/SimpleBroadcastChannel.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/SimpleBroadcastChannel.java
similarity index 97%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/SimpleBroadcastChannel.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/SimpleBroadcastChannel.java
index 175b9d0aa7..454029b9b6 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/SimpleBroadcastChannel.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/broadcastchannels/SimpleBroadcastChannel.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.broadcastchannels;
import rx.Observable;
import rx.subjects.Subject;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobField.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobField.java
similarity index 95%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobField.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobField.java
index 512bf5c5e5..a3e87709c4 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobField.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobField.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.jobrows;
import com.yahoo.bard.webservice.util.EnumUtils;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobRowBuilder.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobRowBuilder.java
similarity index 98%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobRowBuilder.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobRowBuilder.java
index 5b6f0a9e07..449ae8837e 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobRowBuilder.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobRowBuilder.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.jobrows;
import org.joda.time.DateTime;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobStatus.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobStatus.java
similarity index 94%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobStatus.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobStatus.java
index 809328e700..bd0ab3a5b4 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobStatus.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobStatus.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.jobrows;
import java.util.Locale;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobField.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobField.java
similarity index 91%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobField.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobField.java
index b54ace2a4e..7150a24f42 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobField.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobField.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.jobrows;
/**
* Represents a column in the table of job metadata.
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobRow.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobRow.java
similarity index 98%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobRow.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobRow.java
index cc8ea12790..3c00b608fd 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobRow.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobRow.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.jobrows;
import com.yahoo.bard.webservice.util.StreamUtils;
import com.yahoo.bard.webservice.web.ErrorMessageFormat;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobRowBuilder.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobRowBuilder.java
similarity index 93%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobRowBuilder.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobRowBuilder.java
index 6d7715007f..56f2ceca39 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobRowBuilder.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobRowBuilder.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.jobrows;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.core.UriInfo;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobStatus.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobStatus.java
similarity index 91%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobStatus.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobStatus.java
index 84e15be1c6..0390196389 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobStatus.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/jobrows/JobStatus.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.jobrows;
/**
* A job status describes the current state of a job (i.e. 'pending', 'success', 'failure').
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobPayloadBuilder.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/payloads/DefaultJobPayloadBuilder.java
similarity index 92%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobPayloadBuilder.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/payloads/DefaultJobPayloadBuilder.java
index 5e38f68ca8..2e473711fc 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultJobPayloadBuilder.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/payloads/DefaultJobPayloadBuilder.java
@@ -1,7 +1,9 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.payloads;
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
import com.yahoo.bard.webservice.web.ErrorMessageFormat;
import com.yahoo.bard.webservice.web.JobRequestFailedException;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobPayloadBuilder.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/payloads/JobPayloadBuilder.java
similarity index 89%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobPayloadBuilder.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/payloads/JobPayloadBuilder.java
index 2fa6d04a6f..bac17b5990 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/JobPayloadBuilder.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/payloads/JobPayloadBuilder.java
@@ -1,7 +1,8 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.payloads;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
import com.yahoo.bard.webservice.web.endpoints.JobsServlet;
import java.util.Map;
@@ -44,7 +45,7 @@ static String getResultsUrl(String ticket, UriInfo uriInfo) {
/**
* Get the url for obtaining the job results synchronously.
*
- * "http://localhost:9998/jobs/ticket1/results?async=never"
+ * "http://localhost:9998/jobs/ticket1/results?asyncAfter=never"
*
*
* @param ticket The ticket that can uniquely identify a Job
@@ -60,11 +61,11 @@ static String getSyncResultsUrl(String ticket, UriInfo uriInfo) {
}
/**
- * Get the UriBuilder for the /job/ticket/results endpoint.
+ * Get the UriBuilder for the /jobs/ticket/results endpoint.
*
* @param uriInfo UriInfo of the request
*
- * @return the UriBuilder for the /job/ticket/results endpoint
+ * @return the UriBuilder for the /jobs/ticket/results endpoint
*/
static UriBuilder getResultsBaseUrl(UriInfo uriInfo) {
return uriInfo.getBaseUriBuilder()
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ApiJobStore.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStore.java
similarity index 95%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ApiJobStore.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStore.java
index 0fde43b578..9c054cbeb0 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ApiJobStore.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStore.java
@@ -1,6 +1,8 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.stores;
+
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
import rx.Observable;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ApiJobStoreException.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStoreException.java
similarity index 90%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ApiJobStoreException.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStoreException.java
index 8c48b42bec..3885a7cc8b 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/ApiJobStoreException.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStoreException.java
@@ -1,6 +1,8 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.stores;
+
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
/**
* Class for exception thrown while saving a record in ApiJobStore.
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/HashJobStore.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/HashJobStore.java
similarity index 93%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/HashJobStore.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/HashJobStore.java
index 4a800e9ee7..89fbacc06e 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/HashJobStore.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/HashJobStore.java
@@ -1,6 +1,8 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.stores;
+
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
import rx.Observable;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/NoOpApiJobStore.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/NoOpApiJobStore.java
similarity index 88%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/NoOpApiJobStore.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/NoOpApiJobStore.java
index 8e28345b62..5738c9e50d 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/NoOpApiJobStore.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/jobs/stores/NoOpApiJobStore.java
@@ -1,6 +1,8 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.jobs.stores;
+
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
import rx.Observable;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/HashPreResponseStore.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/HashPreResponseStore.java
similarity index 95%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/HashPreResponseStore.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/HashPreResponseStore.java
index 6b44ffdb93..d01dabf5dd 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/HashPreResponseStore.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/HashPreResponseStore.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.preresponses.stores;
import com.yahoo.bard.webservice.web.PreResponse;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/NoOpPreResponseStore.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/NoOpPreResponseStore.java
similarity index 93%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/NoOpPreResponseStore.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/NoOpPreResponseStore.java
index 6bec4c308b..d9b1a051f9 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/NoOpPreResponseStore.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/NoOpPreResponseStore.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.preresponses.stores;
import com.yahoo.bard.webservice.web.PreResponse;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/PreResponseStore.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseStore.java
similarity index 96%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/PreResponseStore.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseStore.java
index a8995fe64d..410a299f95 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/PreResponseStore.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseStore.java
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.preresponses.stores;
import com.yahoo.bard.webservice.web.PreResponse;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsynchronousWorkflows.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/AsynchronousWorkflows.java
similarity index 95%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsynchronousWorkflows.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/AsynchronousWorkflows.java
index d7a94bf9bc..feb6d44b77 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsynchronousWorkflows.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/AsynchronousWorkflows.java
@@ -1,7 +1,9 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.workflows;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore;
import com.yahoo.bard.webservice.web.PreResponse;
import rx.Observable;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsynchronousWorkflowsBuilder.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/AsynchronousWorkflowsBuilder.java
similarity index 95%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsynchronousWorkflowsBuilder.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/AsynchronousWorkflowsBuilder.java
index 850fa0c0f1..bb5ff00628 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/AsynchronousWorkflowsBuilder.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/AsynchronousWorkflowsBuilder.java
@@ -1,7 +1,8 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
+package com.yahoo.bard.webservice.async.workflows;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
import com.yahoo.bard.webservice.util.Either;
import com.yahoo.bard.webservice.web.PreResponse;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultAsynchronousWorkflowsBuilder.java b/fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/DefaultAsynchronousWorkflowsBuilder.java
similarity index 93%
rename from fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultAsynchronousWorkflowsBuilder.java
rename to fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/DefaultAsynchronousWorkflowsBuilder.java
index ea31a6644e..9033f6d0ce 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/DefaultAsynchronousWorkflowsBuilder.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/async/workflows/DefaultAsynchronousWorkflowsBuilder.java
@@ -1,12 +1,17 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
-
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.DATE_UPDATED;
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.STATUS;
-import static com.yahoo.bard.webservice.jobs.DefaultJobStatus.FAILURE;
-import static com.yahoo.bard.webservice.jobs.DefaultJobStatus.SUCCESS;
-
+package com.yahoo.bard.webservice.async.workflows;
+
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.DATE_UPDATED;
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.STATUS;
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobStatus.FAILURE;
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobStatus.SUCCESS;
+
+import com.yahoo.bard.webservice.async.AsyncUtils;
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobField;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore;
import com.yahoo.bard.webservice.util.Either;
import com.yahoo.bard.webservice.web.ErrorMessageFormat;
import com.yahoo.bard.webservice.web.PreResponse;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/data/HttpResponseChannel.java b/fili-core/src/main/java/com/yahoo/bard/webservice/data/HttpResponseChannel.java
index db59c8030d..f1f7e85695 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/data/HttpResponseChannel.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/data/HttpResponseChannel.java
@@ -4,7 +4,7 @@
import static com.yahoo.bard.webservice.web.handlers.workflow.DruidWorkflow.RESPONSE_WORKFLOW_TIMER;
-import com.yahoo.bard.webservice.jobs.ResponseException;
+import com.yahoo.bard.webservice.async.ResponseException;
import com.yahoo.bard.webservice.logging.RequestLog;
import com.yahoo.bard.webservice.web.DataApiRequest;
import com.yahoo.bard.webservice.web.PreResponse;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/InvalidYcaCertException.java b/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/InvalidYcaCertException.java
deleted file mode 100644
index c1354cc957..0000000000
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/jobs/InvalidYcaCertException.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2016 Yahoo Inc.
-// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs;
-
-/**
- * Exception for invalid YCA certificate.
- */
-public class InvalidYcaCertException extends RuntimeException {
- /**
- * Constructor.
- *
- * @param message String error message
- * @param cause Throwable error object
- */
- public InvalidYcaCertException(String message, Exception cause) {
- super(message, cause);
- }
-
- /**
- * Constructor.
- *
- * @param message String error message
- */
- public InvalidYcaCertException(String message) {
- super(message);
- }
-}
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/web/JobsApiRequest.java b/fili-core/src/main/java/com/yahoo/bard/webservice/web/JobsApiRequest.java
index 5a64f3450a..b4795c807a 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/web/JobsApiRequest.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/web/JobsApiRequest.java
@@ -2,11 +2,11 @@
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
package com.yahoo.bard.webservice.web;
-import com.yahoo.bard.webservice.jobs.ApiJobStore;
-import com.yahoo.bard.webservice.jobs.BroadcastChannel;
-import com.yahoo.bard.webservice.jobs.JobPayloadBuilder;
-import com.yahoo.bard.webservice.jobs.JobRow;
-import com.yahoo.bard.webservice.jobs.PreResponseStore;
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore;
+import com.yahoo.bard.webservice.async.broadcastchannels.BroadcastChannel;
+import com.yahoo.bard.webservice.async.jobs.payloads.JobPayloadBuilder;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -68,7 +68,7 @@ public JobsApiRequest(
}
/**
- * Return an Observable over the Map representing the job to be returned to the user.
+ * Returns an Observable over the Map representing the job to be returned to the user.
*
* @param ticket The ticket that uniquely identifies the job
*
@@ -112,9 +112,9 @@ public Observable handleBroadcastChannelNotification(@NotNull Strin
}
/**
- * Return an Observable containing a stream of job payloads for all the jobs in the ApiJobStore. If, for any JobRow,
- * the mapping from JobRow to job view fails, an Observable over JobRequestFailedException is returned.
- * If the ApiJobStore is empty, we return an empty Observable.
+ * Returns an Observable containing a stream of job payloads for all the jobs in the ApiJobStore. If, for any
+ * JobRow, the mapping from JobRow to job view fails, an Observable over JobRequestFailedException is returned. If
+ * the ApiJobStore is empty, we return an empty Observable.
*
* @return An Observable containing a stream of Maps representing the job to be returned to the user
*/
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/web/endpoints/DataServlet.java b/fili-core/src/main/java/com/yahoo/bard/webservice/web/endpoints/DataServlet.java
index 826de12786..eb7105a502 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/web/endpoints/DataServlet.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/web/endpoints/DataServlet.java
@@ -22,14 +22,14 @@
import com.yahoo.bard.webservice.data.time.GranularityParser;
import com.yahoo.bard.webservice.druid.model.query.DruidAggregationQuery;
import com.yahoo.bard.webservice.druid.model.query.DruidQuery;
-import com.yahoo.bard.webservice.jobs.AsynchronousWorkflowsBuilder;
-import com.yahoo.bard.webservice.jobs.AsynchronousWorkflows;
-import com.yahoo.bard.webservice.jobs.BroadcastChannel;
-import com.yahoo.bard.webservice.jobs.JobPayloadBuilder;
-import com.yahoo.bard.webservice.jobs.JobRow;
-import com.yahoo.bard.webservice.jobs.JobRowBuilder;
-import com.yahoo.bard.webservice.jobs.MetadataHttpResponseChannel;
-import com.yahoo.bard.webservice.jobs.PreResponseStore;
+import com.yahoo.bard.webservice.async.workflows.AsynchronousWorkflowsBuilder;
+import com.yahoo.bard.webservice.async.workflows.AsynchronousWorkflows;
+import com.yahoo.bard.webservice.async.broadcastchannels.BroadcastChannel;
+import com.yahoo.bard.webservice.async.jobs.payloads.JobPayloadBuilder;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRowBuilder;
+import com.yahoo.bard.webservice.async.MetadataHttpResponseChannel;
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore;
import com.yahoo.bard.webservice.logging.RequestLog;
import com.yahoo.bard.webservice.logging.blocks.BardQueryInfo;
import com.yahoo.bard.webservice.logging.blocks.DataRequest;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/web/endpoints/JobsServlet.java b/fili-core/src/main/java/com/yahoo/bard/webservice/web/endpoints/JobsServlet.java
index 2d8f2e2b7c..27068d49a4 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/web/endpoints/JobsServlet.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/web/endpoints/JobsServlet.java
@@ -13,11 +13,11 @@
import com.yahoo.bard.webservice.data.HttpResponseChannel;
import com.yahoo.bard.webservice.data.HttpResponseMaker;
import com.yahoo.bard.webservice.data.dimension.DimensionDictionary;
-import com.yahoo.bard.webservice.jobs.ApiJobStore;
-import com.yahoo.bard.webservice.jobs.BroadcastChannel;
-import com.yahoo.bard.webservice.jobs.JobPayloadBuilder;
-import com.yahoo.bard.webservice.jobs.PreResponseStore;
-import com.yahoo.bard.webservice.jobs.ResponseException;
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore;
+import com.yahoo.bard.webservice.async.broadcastchannels.BroadcastChannel;
+import com.yahoo.bard.webservice.async.jobs.payloads.JobPayloadBuilder;
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore;
+import com.yahoo.bard.webservice.async.ResponseException;
import com.yahoo.bard.webservice.logging.RequestLog;
import com.yahoo.bard.webservice.logging.blocks.JobRequest;
import com.yahoo.bard.webservice.util.AllPagesPagination;
@@ -238,7 +238,7 @@ public void getJobByTicket(
}
/**
- * Endpoint to get a particular jobs result.
+ * Endpoint to get a particular job's result.
*
* @param ticket The ticket that can uniquely identify a Job
* @param format Requested format of the response
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/web/responseprocessors/MappingResponseProcessor.java b/fili-core/src/main/java/com/yahoo/bard/webservice/web/responseprocessors/MappingResponseProcessor.java
index 38870b02bd..8e17cb1d31 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/web/responseprocessors/MappingResponseProcessor.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/web/responseprocessors/MappingResponseProcessor.java
@@ -9,7 +9,7 @@
import com.yahoo.bard.webservice.druid.client.FailureCallback;
import com.yahoo.bard.webservice.druid.client.HttpErrorCallback;
import com.yahoo.bard.webservice.druid.model.query.DruidAggregationQuery;
-import com.yahoo.bard.webservice.jobs.ResponseException;
+import com.yahoo.bard.webservice.async.ResponseException;
import com.yahoo.bard.webservice.web.DataApiRequest;
import rx.subjects.Subject;
diff --git a/fili-core/src/main/java/com/yahoo/bard/webservice/web/responseprocessors/ResultSetResponseProcessor.java b/fili-core/src/main/java/com/yahoo/bard/webservice/web/responseprocessors/ResultSetResponseProcessor.java
index 669a108393..cc8f79387e 100644
--- a/fili-core/src/main/java/com/yahoo/bard/webservice/web/responseprocessors/ResultSetResponseProcessor.java
+++ b/fili-core/src/main/java/com/yahoo/bard/webservice/web/responseprocessors/ResultSetResponseProcessor.java
@@ -21,7 +21,7 @@
import com.yahoo.bard.webservice.druid.model.postaggregation.PostAggregation;
import com.yahoo.bard.webservice.druid.model.query.DruidAggregationQuery;
import com.yahoo.bard.webservice.druid.model.query.Granularity;
-import com.yahoo.bard.webservice.jobs.ResponseException;
+import com.yahoo.bard.webservice.async.ResponseException;
import com.yahoo.bard.webservice.logging.RequestLog;
import com.yahoo.bard.webservice.table.PhysicalTable;
import com.yahoo.bard.webservice.table.ZonedSchema;
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/ResponseContextUtils.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/ResponseContextUtils.groovy
similarity index 96%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/ResponseContextUtils.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/ResponseContextUtils.groovy
index df6472dc80..c6036511e3 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/ResponseContextUtils.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/ResponseContextUtils.groovy
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async
import com.yahoo.bard.webservice.data.dimension.Dimension
import com.yahoo.bard.webservice.data.dimension.DimensionField
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/BroadcastChannelSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/BroadcastChannelSpec.groovy
similarity index 98%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/BroadcastChannelSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/BroadcastChannelSpec.groovy
index 1ec296b3f1..edecd4a72f 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/BroadcastChannelSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/BroadcastChannelSpec.groovy
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.broadcastchannels
import rx.observers.TestSubscriber
import spock.lang.Specification
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/RedisBroadCastChannelSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/RedisBroadcastChannelSpec.groovy
similarity index 95%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/RedisBroadCastChannelSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/RedisBroadcastChannelSpec.groovy
index 50db7ed229..5f047230b1 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/RedisBroadCastChannelSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/RedisBroadcastChannelSpec.groovy
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.broadcastchannels
import com.yahoo.bard.webservice.config.SystemConfig
import com.yahoo.bard.webservice.config.SystemConfigProvider
@@ -11,7 +11,7 @@ import org.redisson.RedissonClient
import org.redisson.core.MessageListener
import org.redisson.core.RTopic
-class RedisBroadCastChannelSpec extends BroadcastChannelSpec {
+class RedisBroadcastChannelSpec extends BroadcastChannelSpec {
private static final SystemConfig SYSTEM_CONFIG = SystemConfigProvider.instance
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/SimpleBroadcastChannelSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/SimpleBroadcastChannelSpec.groovy
similarity index 88%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/SimpleBroadcastChannelSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/SimpleBroadcastChannelSpec.groovy
index 5a6e6dceb8..0310c836e4 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/SimpleBroadcastChannelSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/broadcastchannels/SimpleBroadcastChannelSpec.groovy
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.broadcastchannels
import rx.subjects.PublishSubject
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobTestUtils.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/JobTestUtils.groovy
similarity index 76%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobTestUtils.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/JobTestUtils.groovy
index 80766892fe..c94a843cfb 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobTestUtils.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/JobTestUtils.groovy
@@ -1,13 +1,17 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.jobs
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.JOB_TICKET
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.QUERY
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.STATUS
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.DATE_CREATED
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.DATE_UPDATED
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.USER_ID
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.JOB_TICKET
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.QUERY
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.STATUS
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.DATE_CREATED
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.DATE_UPDATED
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.USER_ID
+
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobStatus
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobField
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow
import org.joda.time.DateTime
import org.joda.time.DateTimeZone
@@ -26,7 +30,7 @@ class JobTestUtils {
/**
* Builds a job row with the specified metadata, and provides a default value for any fields in
- * {@link DefaultJobField} that are not keys in the metadata.
+ * {@link com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField} that are not keys in the metadata.
*
* @param jobData A mapping from JobField to Strings describing overrides to the default metadata for the job
*
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultJobRowBuilderSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobRowBuilderSpec.groovy
similarity index 78%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultJobRowBuilderSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobRowBuilderSpec.groovy
index b9614a6c33..d5db8d91f5 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultJobRowBuilderSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/jobrows/DefaultJobRowBuilderSpec.groovy
@@ -1,13 +1,13 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.jobs.jobrows
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.DATE_CREATED
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.DATE_UPDATED
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.JOB_TICKET
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.QUERY
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.STATUS
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.USER_ID
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.DATE_CREATED
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.DATE_UPDATED
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.JOB_TICKET
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.QUERY
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.STATUS
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.USER_ID
import org.joda.time.DateTime
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobRowSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/jobrows/JobRowSpec.groovy
similarity index 78%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobRowSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/jobrows/JobRowSpec.groovy
index 71aa33626d..5324114e98 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobRowSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/jobrows/JobRowSpec.groovy
@@ -1,16 +1,18 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
-
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.JOB_TICKET
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.QUERY
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.STATUS
-import static com.yahoo.bard.webservice.jobs.JobTestUtils.DATE_CREATED_DATA
-import static com.yahoo.bard.webservice.jobs.JobTestUtils.DATE_UPDATED_DATA
-import static com.yahoo.bard.webservice.jobs.JobTestUtils.JOB_TICKET_DATA
-import static com.yahoo.bard.webservice.jobs.JobTestUtils.QUERY_DATA
-import static com.yahoo.bard.webservice.jobs.JobTestUtils.STATUS_DATA
-import static com.yahoo.bard.webservice.jobs.JobTestUtils.USER_ID_DATA
+package com.yahoo.bard.webservice.async.jobs.jobrows
+
+import static com.yahoo.bard.webservice.async.jobs.JobTestUtils.DATE_CREATED_DATA
+import static com.yahoo.bard.webservice.async.jobs.JobTestUtils.DATE_UPDATED_DATA
+import static com.yahoo.bard.webservice.async.jobs.JobTestUtils.JOB_TICKET_DATA
+import static com.yahoo.bard.webservice.async.jobs.JobTestUtils.QUERY_DATA
+import static com.yahoo.bard.webservice.async.jobs.JobTestUtils.STATUS_DATA
+import static com.yahoo.bard.webservice.async.jobs.JobTestUtils.USER_ID_DATA
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.JOB_TICKET
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.QUERY
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.STATUS
+
+import com.yahoo.bard.webservice.async.jobs.JobTestUtils
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.ObjectMapper
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultJobPayloadBuilderSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/payloads/DefaultJobPayloadBuilderSpec.groovy
similarity index 91%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultJobPayloadBuilderSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/payloads/DefaultJobPayloadBuilderSpec.groovy
index a2ab9dcbcc..5af2f70ea4 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultJobPayloadBuilderSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/payloads/DefaultJobPayloadBuilderSpec.groovy
@@ -1,7 +1,10 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.jobs.payloads
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobField
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow
import com.yahoo.bard.webservice.web.JobRequestFailedException
import spock.lang.Specification
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobPayLoadBuilderSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/payloads/JobPayLoadBuilderSpec.groovy
similarity index 95%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobPayLoadBuilderSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/payloads/JobPayLoadBuilderSpec.groovy
index 2554d64442..aed75163b3 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/JobPayLoadBuilderSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/payloads/JobPayLoadBuilderSpec.groovy
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.jobs.payloads
import spock.lang.Specification
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/ApiJobStoreSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStoreSpec.groovy
similarity index 94%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/ApiJobStoreSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStoreSpec.groovy
index 76bab9eab6..ec3a588a9b 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/ApiJobStoreSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/stores/ApiJobStoreSpec.groovy
@@ -1,10 +1,12 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.jobs.stores
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.JOB_TICKET
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.QUERY
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.JOB_TICKET
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.QUERY
+import com.yahoo.bard.webservice.async.jobs.JobTestUtils
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow
import com.yahoo.bard.webservice.util.ReactiveTestUtils
import rx.observers.TestSubscriber
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/HashJobStoreSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/stores/HashJobStoreSpec.groovy
similarity index 89%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/HashJobStoreSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/stores/HashJobStoreSpec.groovy
index b3a8e4b615..50bf91cf3c 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/HashJobStoreSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/jobs/stores/HashJobStoreSpec.groovy
@@ -1,7 +1,9 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.jobs.stores
+import com.yahoo.bard.webservice.async.jobs.JobTestUtils
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow
import com.yahoo.bard.webservice.util.ReactiveTestUtils
/**
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/HashPreResponseStoreSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/HashPreResponseStoreSpec.groovy
similarity index 88%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/HashPreResponseStoreSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/HashPreResponseStoreSpec.groovy
index ddc7829e3c..4212394372 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/HashPreResponseStoreSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/HashPreResponseStoreSpec.groovy
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.preresponses.stores
/**
* Verifies that the HashPreResponseStore satisfies the PreResponseStore interface. The tests may be found in
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/PreResponseStoreSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseStoreSpec.groovy
similarity index 98%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/PreResponseStoreSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseStoreSpec.groovy
index 9f54e78ff3..a07ca1b22b 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/PreResponseStoreSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseStoreSpec.groovy
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.preresponses.stores
import com.yahoo.bard.webservice.util.ReactiveTestUtils
import com.yahoo.bard.webservice.web.PreResponse
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/PreResponseTestingUtils.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseTestingUtils.groovy
similarity index 97%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/PreResponseTestingUtils.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseTestingUtils.groovy
index 216a2c0291..9f3364cbb4 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/PreResponseTestingUtils.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/preresponses/stores/PreResponseTestingUtils.groovy
@@ -1,6 +1,6 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.preresponses.stores
import static com.yahoo.bard.webservice.data.time.DefaultTimeGrain.DAY
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultAsynchronousWorkflowsBuilderSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/workflows/DefaultAsynchronousWorkflowsBuilderSpec.groovy
similarity index 93%
rename from fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultAsynchronousWorkflowsBuilderSpec.groovy
rename to fili-core/src/test/groovy/com/yahoo/bard/webservice/async/workflows/DefaultAsynchronousWorkflowsBuilderSpec.groovy
index 73bd9d5fdd..39aab898df 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/jobs/DefaultAsynchronousWorkflowsBuilderSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/async/workflows/DefaultAsynchronousWorkflowsBuilderSpec.groovy
@@ -1,11 +1,16 @@
// Copyright 2016 Yahoo Inc.
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
-package com.yahoo.bard.webservice.jobs
+package com.yahoo.bard.webservice.async.workflows
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.DATE_UPDATED
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.JOB_TICKET
-import static com.yahoo.bard.webservice.jobs.DefaultJobField.STATUS
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.DATE_UPDATED
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.JOB_TICKET
+import static com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField.STATUS
+import com.yahoo.bard.webservice.async.ResponseException
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobStatus
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore
import com.yahoo.bard.webservice.data.ResultSet
import com.yahoo.bard.webservice.druid.model.query.AllGranularity
import com.yahoo.bard.webservice.druid.model.query.DruidAggregationQuery
@@ -18,7 +23,6 @@ import com.yahoo.bard.webservice.web.responseprocessors.ResponseContextKeys
import org.joda.time.DateTime
import rx.Observable
-import rx.functions.Func1
import rx.observers.TestSubscriber
import rx.subjects.PublishSubject
import spock.lang.Shared
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/util/ClassScannerSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/util/ClassScannerSpec.groovy
index da0e03143b..e077ac5870 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/util/ClassScannerSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/util/ClassScannerSpec.groovy
@@ -2,7 +2,7 @@
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
package com.yahoo.bard.webservice.util
-import com.yahoo.bard.webservice.jobs.JobRow
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow
import org.joda.time.DateTimeZone
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/JobsApiRequestSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/JobsApiRequestSpec.groovy
index 8e052ee9dd..36562b520e 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/JobsApiRequestSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/JobsApiRequestSpec.groovy
@@ -2,18 +2,18 @@
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
package com.yahoo.bard.webservice.web
-import com.yahoo.bard.webservice.jobs.ApiJobStore
-import com.yahoo.bard.webservice.jobs.BroadcastChannel
-import com.yahoo.bard.webservice.jobs.DefaultJobField
-import com.yahoo.bard.webservice.jobs.DefaultJobPayloadBuilder
-import com.yahoo.bard.webservice.jobs.HashJobStore
-import com.yahoo.bard.webservice.jobs.HashPreResponseStore
-import com.yahoo.bard.webservice.jobs.JobField
-import com.yahoo.bard.webservice.jobs.JobRow
-import com.yahoo.bard.webservice.jobs.JobPayloadBuilder
-import com.yahoo.bard.webservice.jobs.PreResponseStore
-import com.yahoo.bard.webservice.jobs.PreResponseTestingUtils
-import com.yahoo.bard.webservice.jobs.SimpleBroadcastChannel
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore
+import com.yahoo.bard.webservice.async.broadcastchannels.BroadcastChannel
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField
+import com.yahoo.bard.webservice.async.jobs.payloads.DefaultJobPayloadBuilder
+import com.yahoo.bard.webservice.async.jobs.stores.HashJobStore
+import com.yahoo.bard.webservice.async.preresponses.stores.HashPreResponseStore
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobField
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow
+import com.yahoo.bard.webservice.async.jobs.payloads.JobPayloadBuilder
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseTestingUtils
+import com.yahoo.bard.webservice.async.broadcastchannels.SimpleBroadcastChannel
import rx.Observable
import rx.observers.TestSubscriber
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/endpoints/JobsServletReactiveChainforResultsEndpointSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/endpoints/JobsServletReactiveChainforResultsEndpointSpec.groovy
index 6f9e825686..43942d8811 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/endpoints/JobsServletReactiveChainforResultsEndpointSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/endpoints/JobsServletReactiveChainforResultsEndpointSpec.groovy
@@ -4,14 +4,13 @@ package com.yahoo.bard.webservice.web.endpoints
import com.yahoo.bard.webservice.application.ObjectMappersSuite
import com.yahoo.bard.webservice.data.dimension.DimensionDictionary
-import com.yahoo.bard.webservice.jobs.ApiJobStore
-import com.yahoo.bard.webservice.jobs.BroadcastChannel
-import com.yahoo.bard.webservice.jobs.HashPreResponseStore
-import com.yahoo.bard.webservice.jobs.JobPayloadBuilder
-import com.yahoo.bard.webservice.jobs.PreResponseStore
-import com.yahoo.bard.webservice.jobs.PreResponseTestingUtils
-import com.yahoo.bard.webservice.jobs.SimpleBroadcastChannel
-import com.yahoo.bard.webservice.web.ApiRequest
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore
+import com.yahoo.bard.webservice.async.broadcastchannels.BroadcastChannel
+import com.yahoo.bard.webservice.async.preresponses.stores.HashPreResponseStore
+import com.yahoo.bard.webservice.async.jobs.payloads.JobPayloadBuilder
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseTestingUtils
+import com.yahoo.bard.webservice.async.broadcastchannels.SimpleBroadcastChannel
import com.yahoo.bard.webservice.web.JobsApiRequest
import com.yahoo.bard.webservice.web.PreResponse
import com.yahoo.bard.webservice.web.RequestMapper
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/responseprocessors/CacheV2ResponseProcessorSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/responseprocessors/CacheV2ResponseProcessorSpec.groovy
index 39c01355b2..5246f1509c 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/responseprocessors/CacheV2ResponseProcessorSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/responseprocessors/CacheV2ResponseProcessorSpec.groovy
@@ -2,7 +2,7 @@
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
package com.yahoo.bard.webservice.web.responseprocessors
-import static com.yahoo.bard.webservice.jobs.ResponseContextUtils.createResponseContext
+import static com.yahoo.bard.webservice.async.ResponseContextUtils.createResponseContext
import static com.yahoo.bard.webservice.util.SimplifiedIntervalList.NO_INTERVALS
import static com.yahoo.bard.webservice.web.responseprocessors.ResponseContextKeys.MISSING_INTERVALS_CONTEXT_KEY
import static com.yahoo.bard.webservice.web.responseprocessors.ResponseContextKeys.VOLATILE_INTERVALS_CONTEXT_KEY
diff --git a/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/responseprocessors/CachingResponseProcessorSpec.groovy b/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/responseprocessors/CachingResponseProcessorSpec.groovy
index 8c306c9174..5b3bcdfe01 100644
--- a/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/responseprocessors/CachingResponseProcessorSpec.groovy
+++ b/fili-core/src/test/groovy/com/yahoo/bard/webservice/web/responseprocessors/CachingResponseProcessorSpec.groovy
@@ -2,7 +2,7 @@
// Licensed under the terms of the Apache license. Please see LICENSE file distributed with this work for terms.
package com.yahoo.bard.webservice.web.responseprocessors
-import static com.yahoo.bard.webservice.jobs.ResponseContextUtils.createResponseContext
+import static com.yahoo.bard.webservice.async.ResponseContextUtils.createResponseContext
import static com.yahoo.bard.webservice.util.SimplifiedIntervalList.NO_INTERVALS
import static com.yahoo.bard.webservice.web.responseprocessors.ResponseContextKeys.MISSING_INTERVALS_CONTEXT_KEY
import static com.yahoo.bard.webservice.web.responseprocessors.ResponseContextKeys.VOLATILE_INTERVALS_CONTEXT_KEY
diff --git a/fili-core/src/test/java/com/yahoo/bard/webservice/application/TestBinderFactory.java b/fili-core/src/test/java/com/yahoo/bard/webservice/application/TestBinderFactory.java
index e6832c377a..72a04320c5 100644
--- a/fili-core/src/test/java/com/yahoo/bard/webservice/application/TestBinderFactory.java
+++ b/fili-core/src/test/java/com/yahoo/bard/webservice/application/TestBinderFactory.java
@@ -27,11 +27,11 @@
import com.yahoo.bard.webservice.data.volatility.VolatileIntervalsFunction;
import com.yahoo.bard.webservice.data.volatility.VolatileIntervalsService;
import com.yahoo.bard.webservice.druid.client.DruidWebService;
-import com.yahoo.bard.webservice.jobs.ApiJobStore;
-import com.yahoo.bard.webservice.jobs.DefaultJobField;
-import com.yahoo.bard.webservice.jobs.PreResponseStore;
-import com.yahoo.bard.webservice.jobs.DefaultJobRowBuilder;
-import com.yahoo.bard.webservice.jobs.JobRowBuilder;
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore;
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField;
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore;
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobRowBuilder;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRowBuilder;
import com.yahoo.bard.webservice.metadata.DataSourceMetadataService;
import com.yahoo.bard.webservice.metadata.QuerySigningService;
import com.yahoo.bard.webservice.metadata.SegmentIntervalsHashIdGenerator;
diff --git a/fili-core/src/test/java/com/yahoo/bard/webservice/web/endpoints/JobsEndpointResources.java b/fili-core/src/test/java/com/yahoo/bard/webservice/web/endpoints/JobsEndpointResources.java
index faa96c854e..1584eb41d3 100644
--- a/fili-core/src/test/java/com/yahoo/bard/webservice/web/endpoints/JobsEndpointResources.java
+++ b/fili-core/src/test/java/com/yahoo/bard/webservice/web/endpoints/JobsEndpointResources.java
@@ -7,13 +7,13 @@
import com.yahoo.bard.webservice.data.metric.MetricColumn;
import com.yahoo.bard.webservice.druid.model.query.AllGranularity;
import com.yahoo.bard.webservice.druid.model.query.Granularity;
-import com.yahoo.bard.webservice.jobs.ApiJobStore;
-import com.yahoo.bard.webservice.jobs.DefaultJobField;
-import com.yahoo.bard.webservice.jobs.HashJobStore;
-import com.yahoo.bard.webservice.jobs.HashPreResponseStore;
-import com.yahoo.bard.webservice.jobs.JobField;
-import com.yahoo.bard.webservice.jobs.JobRow;
-import com.yahoo.bard.webservice.jobs.PreResponseStore;
+import com.yahoo.bard.webservice.async.jobs.stores.ApiJobStore;
+import com.yahoo.bard.webservice.async.jobs.jobrows.DefaultJobField;
+import com.yahoo.bard.webservice.async.jobs.stores.HashJobStore;
+import com.yahoo.bard.webservice.async.preresponses.stores.HashPreResponseStore;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobField;
+import com.yahoo.bard.webservice.async.jobs.jobrows.JobRow;
+import com.yahoo.bard.webservice.async.preresponses.stores.PreResponseStore;
import com.yahoo.bard.webservice.table.Schema;
import com.yahoo.bard.webservice.table.ZonedSchema;
import com.yahoo.bard.webservice.web.PreResponse;