Repository: nifi Updated Branches: refs/heads/NIFI-108 b12aba782 -> ab30bf046
NIFI-108: - Adding compilation error for IOException from getFlowFile(). - Code clean up. - Javadocs. Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/ab30bf04 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/ab30bf04 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/ab30bf04 Branch: refs/heads/NIFI-108 Commit: ab30bf04694e44854f697bd157b73b685807074d Parents: b12aba7 Author: Matt Gilman <[email protected]> Authored: Thu Dec 17 16:58:10 2015 -0500 Committer: Matt Gilman <[email protected]> Committed: Thu Dec 17 16:58:10 2015 -0500 ---------------------------------------------------------------------- .../apache/nifi/web/api/ConnectionResource.java | 42 +++++++++++++++----- .../org/apache/nifi/web/api/dto/DtoFactory.java | 18 +++++++++ .../web/dao/impl/StandardConnectionDAO.java | 19 +++++---- 3 files changed, 62 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/ab30bf04/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java index 6c9de0e..76dde1a 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java @@ -132,13 +132,33 @@ public class ConnectionResource extends ApplicationResource { } /** + * Populate the uri's for the specified flowfile listing. + * + * @param connectionId connection + * @param flowFileListing flowfile listing + * @return dto + */ + public ListingRequestDTO populateRemainingFlowFileListingContent(final String connectionId, final ListingRequestDTO flowFileListing) { + // uri of the listing + flowFileListing.setUri(generateResourceUri("controller", "process-groups", groupId, "connections", connectionId, "listing-requests", flowFileListing.getId())); + + // uri of each flowfile + if (flowFileListing.getFlowFileSummaries() != null) { + for (FlowFileSummaryDTO flowFile : flowFileListing.getFlowFileSummaries()) { + populateRemainingFlowFileContent(connectionId, flowFile); + } + } + return flowFileListing; + } + + /** * Populate the uri's for the specified flowfile. * * @param connectionId the connection id * @param flowFile the flowfile * @return the dto */ - private FlowFileSummaryDTO populateRemainingFlowFileContent(final String connectionId, FlowFileSummaryDTO flowFile) { + private FlowFileSummaryDTO populateRemainingFlowFileContent(final String connectionId, final FlowFileSummaryDTO flowFile) { flowFile.setUri(generateResourceUri("controller", "process-groups", groupId, "connections", connectionId, "flowfiles", flowFile.getUuid())); return flowFile; } @@ -1263,8 +1283,8 @@ public class ConnectionResource extends ApplicationResource { } // submit the listing request - final ListingRequestDTO listRequest = serviceFacade.createFlowFileListingRequest(groupId, id, listingRequestId); - listRequest.setUri(generateResourceUri("controller", "process-groups", groupId, "connections", id, "listing-requests", listRequest.getId())); + final ListingRequestDTO listingRequest = serviceFacade.createFlowFileListingRequest(groupId, id, listingRequestId); + populateRemainingFlowFileListingContent(id, listingRequest); // create the revision final RevisionDTO revision = new RevisionDTO(); @@ -1273,10 +1293,10 @@ public class ConnectionResource extends ApplicationResource { // create the response entity final ListingRequestEntity entity = new ListingRequestEntity(); entity.setRevision(revision); - entity.setListingRequest(listRequest); + entity.setListingRequest(listingRequest); // generate the URI where the response will be - final URI location = URI.create(listRequest.getUri()); + final URI location = URI.create(listingRequest.getUri()); return Response.status(Status.ACCEPTED).location(location).entity(entity).build(); } @@ -1333,7 +1353,7 @@ public class ConnectionResource extends ApplicationResource { // get the listing request final ListingRequestDTO listingRequest = serviceFacade.getFlowFileListingRequest(groupId, connectionId, listingRequestId); - listingRequest.setUri(generateResourceUri("controller", "process-groups", groupId, "connections", connectionId, "listing-requests", listingRequestId)); + populateRemainingFlowFileListingContent(connectionId, listingRequest); // create the revision final RevisionDTO revision = new RevisionDTO(); @@ -1406,11 +1426,13 @@ public class ConnectionResource extends ApplicationResource { } // delete the listing request - final ListingRequestDTO dropRequest = serviceFacade.deleteFlowFileListingRequest(groupId, connectionId, listingRequestId); - dropRequest.setUri(generateResourceUri("controller", "process-groups", groupId, "connections", connectionId, "listing-requests", listingRequestId)); + final ListingRequestDTO listingRequest = serviceFacade.deleteFlowFileListingRequest(groupId, connectionId, listingRequestId); // prune the results as they were already received when the listing completed - dropRequest.setFlowFileSummaries(null); + listingRequest.setFlowFileSummaries(null); + + // populate remaining content + populateRemainingFlowFileListingContent(connectionId, listingRequest); // create the revision final RevisionDTO revision = new RevisionDTO(); @@ -1419,7 +1441,7 @@ public class ConnectionResource extends ApplicationResource { // create the response entity final ListingRequestEntity entity = new ListingRequestEntity(); entity.setRevision(revision); - entity.setListingRequest(dropRequest); + entity.setListingRequest(listingRequest); return generateOkResponse(entity).build(); } http://git-wip-us.apache.org/repos/asf/nifi/blob/ab30bf04/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java index aa3bbe8..5c3e864 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java @@ -354,6 +354,12 @@ public final class DtoFactory { return ListFlowFileState.COMPLETE.equals(state) || ListFlowFileState.CANCELED.equals(state) || ListFlowFileState.FAILURE.equals(state); } + /** + * Creates a ListingRequestDTO from the specified ListFlowFileStatus. + * + * @param listingRequest listingRequest + * @return dto + */ public ListingRequestDTO createListingRequestDTO(final ListFlowFileStatus listingRequest) { final ListingRequestDTO dto = new ListingRequestDTO(); dto.setId(listingRequest.getRequestIdentifier()); @@ -383,6 +389,12 @@ public final class DtoFactory { return dto; } + /** + * Creates a FlowFileSummaryDTO from the specified FlowFileSummary. + * + * @param summary summary + * @return dto + */ public FlowFileSummaryDTO createFlowFileSummaryDTO(final FlowFileSummary summary) { final FlowFileSummaryDTO dto = new FlowFileSummaryDTO(); dto.setUuid(summary.getUuid()); @@ -395,6 +407,12 @@ public final class DtoFactory { return dto; } + /** + * Creates a FlowFileDTO from the specified FlowFileRecord. + * + * @param record record + * @return dto + */ public FlowFileDTO createFlowFileDTO(final FlowFileRecord record) { final FlowFileDTO dto = new FlowFileDTO(); dto.setUuid(record.getAttribute(CoreAttributes.UUID.key())); http://git-wip-us.apache.org/repos/asf/nifi/blob/ab30bf04/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java index 2b51a80..4d5d8e2 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardConnectionDAO.java @@ -118,15 +118,20 @@ public class StandardConnectionDAO extends ComponentDAO implements ConnectionDAO @Override public FlowFileRecord getFlowFile(String groupId, String id, String flowFileUuid) { - final Connection connection = locateConnection(groupId, id); - final FlowFileQueue queue = connection.getFlowFileQueue(); - final FlowFileRecord flowFile = queue.getFlowFile(flowFileUuid); + try { + final Connection connection = locateConnection(groupId, id); + final FlowFileQueue queue = connection.getFlowFileQueue(); + final FlowFileRecord flowFile = queue.getFlowFile(flowFileUuid); - if (flowFile == null) { - throw new ResourceNotFoundException(String.format("Unable to find FlowFile '%s' in Connection '%s'.", flowFileUuid, id)); - } + if (flowFile == null) { + throw new ResourceNotFoundException(String.format("Unable to find FlowFile '%s' in Connection '%s'.", flowFileUuid, id)); + } - return flowFile; + return flowFile; + } catch (final IOException ioe) { + logger.error(String.format("Unable to get the flowfile (%s) at this time.", flowFileUuid), ioe); + throw new IllegalStateException("Unable to get the FlowFile at this time."); + } } @Override
