From b753a82d7e9f2585a973e2fe9d0749747a2e6505 Mon Sep 17 00:00:00 2001 From: Mark Payne Date: Fri, 10 Jun 2016 17:08:30 -0400 Subject: [PATCH] NIFI-2000: Ensure that if we override setters in ApplicationResource that we call the super class's setter as well NIFI-2000: Updated to avoid multiple instance variables and instead just provide a getter in ApplicationResource This closes #522 --- .../apache/nifi/web/api/AccessResource.java | 46 +++++++++---------- .../nifi/web/api/ApplicationResource.java | 4 ++ .../nifi/web/api/ControllerResource.java | 36 ++++++--------- .../nifi/web/api/FlowFileQueueResource.java | 17 +++---- 4 files changed, 46 insertions(+), 57 deletions(-) diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java index 06489c11f2..b425562708 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/AccessResource.java @@ -16,11 +16,21 @@ */ package org.apache.nifi.web.api; -import com.wordnik.swagger.annotations.Api; -import com.wordnik.swagger.annotations.ApiOperation; -import com.wordnik.swagger.annotations.ApiResponse; -import com.wordnik.swagger.annotations.ApiResponses; -import io.jsonwebtoken.JwtException; +import java.net.URI; +import java.security.cert.X509Certificate; +import java.util.concurrent.TimeUnit; + +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.Consumes; +import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + import org.apache.commons.lang3.StringUtils; import org.apache.nifi.admin.service.AdministrationException; import org.apache.nifi.authentication.AuthenticationResponse; @@ -39,7 +49,6 @@ import org.apache.nifi.authorization.user.NiFiUser; import org.apache.nifi.authorization.user.NiFiUserDetails; import org.apache.nifi.authorization.user.NiFiUserUtils; import org.apache.nifi.util.FormatUtils; -import org.apache.nifi.util.NiFiProperties; import org.apache.nifi.web.api.dto.AccessConfigurationDTO; import org.apache.nifi.web.api.dto.AccessStatusDTO; import org.apache.nifi.web.api.entity.AccessConfigurationEntity; @@ -66,19 +75,12 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.authentication.preauth.x509.X509PrincipalExtractor; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.net.URI; -import java.security.cert.X509Certificate; -import java.util.concurrent.TimeUnit; +import com.wordnik.swagger.annotations.Api; +import com.wordnik.swagger.annotations.ApiOperation; +import com.wordnik.swagger.annotations.ApiResponse; +import com.wordnik.swagger.annotations.ApiResponses; + +import io.jsonwebtoken.JwtException; /** * RESTful endpoint for managing access. @@ -92,8 +94,6 @@ public class AccessResource extends ApplicationResource { private static final Logger logger = LoggerFactory.getLogger(AccessResource.class); - private NiFiProperties properties; - private X509CertificateExtractor certificateExtractor; private X509AuthenticationProvider x509AuthenticationProvider; private X509PrincipalExtractor principalExtractor; @@ -500,10 +500,6 @@ public class AccessResource extends ApplicationResource { } // setters - public void setProperties(NiFiProperties properties) { - this.properties = properties; - } - public void setAuthorizer(Authorizer authorizer) { this.authorizer = authorizer; } diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java index 4dee472344..1dd6e1ee82 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ApplicationResource.java @@ -670,6 +670,10 @@ public abstract class ApplicationResource { public void setClusterCoordinator(ClusterCoordinator clusterCoordinator) { this.clusterCoordinator = clusterCoordinator; } + + protected ClusterCoordinator getClusterCoordinator() { + return clusterCoordinator; + } protected NiFiProperties getProperties() { return properties; diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java index 76887ef0b3..0c1db801a9 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ControllerResource.java @@ -84,7 +84,6 @@ public class ControllerResource extends ApplicationResource { private ReportingTaskResource reportingTaskResource; private ControllerServiceResource controllerServiceResource; - private ClusterCoordinator clusterCoordinator; @Context private ResourceContext resourceContext; @@ -143,7 +142,7 @@ public class ControllerResource extends ApplicationResource { @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.") } ) - public Response createArchive(@Context HttpServletRequest httpServletRequest) { + public Response createArchive(@Context final HttpServletRequest httpServletRequest) { if (isReplicateRequest()) { return replicate(HttpMethod.POST); @@ -159,7 +158,7 @@ public class ControllerResource extends ApplicationResource { final ProcessGroupEntity entity = serviceFacade.createArchive(); // generate the response - URI uri = URI.create(generateResourceUri("controller", "archive")); + final URI uri = URI.create(generateResourceUri("controller", "archive")); return clusterContext(generateCreatedResponse(uri, entity)).build(); } @@ -196,12 +195,12 @@ public class ControllerResource extends ApplicationResource { value = "Whether or not to include the breakdown per node. Optional, defaults to false", required = false ) - @QueryParam("nodewise") @DefaultValue(NODEWISE) Boolean nodewise, + @QueryParam("nodewise") @DefaultValue(NODEWISE) final Boolean nodewise, @ApiParam( value = "The id of the node where to get the status.", required = false ) - @QueryParam("clusterNodeId") String clusterNodeId) throws InterruptedException { + @QueryParam("clusterNodeId") final String clusterNodeId) throws InterruptedException { // ensure a valid request if (Boolean.TRUE.equals(nodewise) && clusterNodeId != null) { @@ -223,7 +222,7 @@ public class ControllerResource extends ApplicationResource { return nodeResponse.getResponse(); } else { // get the target node and ensure it exists - final NodeIdentifier targetNode = clusterCoordinator.getNodeIdentifier(clusterNodeId); + final NodeIdentifier targetNode = getClusterCoordinator().getNodeIdentifier(clusterNodeId); if (targetNode == null) { throw new UnknownNodeException("The specified cluster node does not exist."); } @@ -274,8 +273,8 @@ public class ControllerResource extends ApplicationResource { } ) public Response updateCounter( - @Context HttpServletRequest httpServletRequest, - @PathParam("id") String id) { + @Context final HttpServletRequest httpServletRequest, + @PathParam("id") final String id) { if (isReplicateRequest()) { return replicate(HttpMethod.PUT); @@ -366,11 +365,11 @@ public class ControllerResource extends ApplicationResource { } ) public Response updateControllerConfig( - @Context HttpServletRequest httpServletRequest, + @Context final HttpServletRequest httpServletRequest, @ApiParam( value = "The controller configuration.", required = true - ) ControllerConfigurationEntity configEntity) { + ) final ControllerConfigurationEntity configEntity) { if (configEntity == null || configEntity.getConfig() == null) { throw new IllegalArgumentException("Controller configuration must be specified"); @@ -431,11 +430,11 @@ public class ControllerResource extends ApplicationResource { } ) public Response createReportingTask( - @Context HttpServletRequest httpServletRequest, + @Context final HttpServletRequest httpServletRequest, @ApiParam( value = "The reporting task configuration details.", required = true - ) ReportingTaskEntity reportingTaskEntity) { + ) final ReportingTaskEntity reportingTaskEntity) { if (reportingTaskEntity == null || reportingTaskEntity.getComponent() == null) { throw new IllegalArgumentException("Reporting task details must be specified."); @@ -548,24 +547,19 @@ public class ControllerResource extends ApplicationResource { } // setters - public void setServiceFacade(NiFiServiceFacade serviceFacade) { + public void setServiceFacade(final NiFiServiceFacade serviceFacade) { this.serviceFacade = serviceFacade; } - @Override - public void setClusterCoordinator(ClusterCoordinator clusterCoordinator) { - this.clusterCoordinator = clusterCoordinator; - } - - public void setReportingTaskResource(ReportingTaskResource reportingTaskResource) { + public void setReportingTaskResource(final ReportingTaskResource reportingTaskResource) { this.reportingTaskResource = reportingTaskResource; } - public void setControllerServiceResource(ControllerServiceResource controllerServiceResource) { + public void setControllerServiceResource(final ControllerServiceResource controllerServiceResource) { this.controllerServiceResource = controllerServiceResource; } - public void setAuthorizer(Authorizer authorizer) { + public void setAuthorizer(final Authorizer authorizer) { this.authorizer = authorizer; } } diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FlowFileQueueResource.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FlowFileQueueResource.java index 2bef43ed6e..75d8fe2040 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FlowFileQueueResource.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/FlowFileQueueResource.java @@ -80,7 +80,6 @@ public class FlowFileQueueResource extends ApplicationResource { private NiFiServiceFacade serviceFacade; private Authorizer authorizer; - private ClusterCoordinator clusterCoordinator; /** * Populate the URIs for the specified flowfile listing. @@ -95,7 +94,7 @@ public class FlowFileQueueResource extends ApplicationResource { // uri of each flowfile if (flowFileListing.getFlowFileSummaries() != null) { - for (FlowFileSummaryDTO flowFile : flowFileListing.getFlowFileSummaries()) { + for (final FlowFileSummaryDTO flowFile : flowFileListing.getFlowFileSummaries()) { populateRemainingFlowFileContent(connectionId, flowFile); } } @@ -167,7 +166,7 @@ public class FlowFileQueueResource extends ApplicationResource { throw new IllegalArgumentException("The id of the node in the cluster is required."); } else { // get the target node and ensure it exists - final NodeIdentifier targetNode = clusterCoordinator.getNodeIdentifier(clusterNodeId); + final NodeIdentifier targetNode = getClusterCoordinator().getNodeIdentifier(clusterNodeId); if (targetNode == null) { throw new UnknownNodeException("The specified cluster node does not exist."); } @@ -255,7 +254,7 @@ public class FlowFileQueueResource extends ApplicationResource { throw new IllegalArgumentException("The id of the node in the cluster is required."); } else { // get the target node and ensure it exists - final NodeIdentifier targetNode = clusterCoordinator.getNodeIdentifier(clusterNodeId); + final NodeIdentifier targetNode = getClusterCoordinator().getNodeIdentifier(clusterNodeId); if (targetNode == null) { throw new UnknownNodeException("The specified cluster node does not exist."); } @@ -282,7 +281,7 @@ public class FlowFileQueueResource extends ApplicationResource { // generate a streaming response final StreamingOutput response = new StreamingOutput() { @Override - public void write(OutputStream output) throws IOException, WebApplicationException { + public void write(final OutputStream output) throws IOException, WebApplicationException { try (InputStream is = content.getContent()) { // stream the content to the response StreamUtils.copy(is, output); @@ -707,15 +706,11 @@ public class FlowFileQueueResource extends ApplicationResource { } // setters - public void setServiceFacade(NiFiServiceFacade serviceFacade) { + public void setServiceFacade(final NiFiServiceFacade serviceFacade) { this.serviceFacade = serviceFacade; } - public void setClusterCoordinator(ClusterCoordinator clusterCoordinator) { - this.clusterCoordinator = clusterCoordinator; - } - - public void setAuthorizer(Authorizer authorizer) { + public void setAuthorizer(final Authorizer authorizer) { this.authorizer = authorizer; } }