You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2016/04/14 16:39:04 UTC
nifi git commit: NIFI-1762: Changed Java dependency to 1.8 instead of
1.7 and refactored StandardNiFiServiceFacade to make use of Lambda
expressions to simplify code base. Also had to address a unit test because
changing to Java 8 results in calls to ass
Repository: nifi
Updated Branches:
refs/heads/master 378ccf53c -> b59d3ece7
NIFI-1762: Changed Java dependency to 1.8 instead of 1.7 and refactored StandardNiFiServiceFacade to make use of Lambda expressions to simplify code base. Also had to address a unit test because changing to Java 8 results in calls to assertEquals to become ambiguous. This closes #352
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/b59d3ece
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/b59d3ece
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/b59d3ece
Branch: refs/heads/master
Commit: b59d3ece75c3ea8eb0df1ff4827308412b967044
Parents: 378ccf5
Author: Mark Payne <ma...@hotmail.com>
Authored: Thu Apr 14 09:28:25 2016 -0400
Committer: Matt Gilman <ma...@gmail.com>
Committed: Thu Apr 14 10:38:03 2016 -0400
----------------------------------------------------------------------
.../nifi/web/StandardNiFiServiceFacade.java | 973 ++++---------------
.../nifi/web/StandardConfigurationResult.java | 38 +
.../cf/JMSConnectionFactoryProviderTest.java | 4 +-
pom.xml | 10 +-
4 files changed, 214 insertions(+), 811 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/b59d3ece/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
index 4fdda06..d6de553 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
@@ -16,6 +16,27 @@
*/
package org.apache.nifi.web;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.TimeZone;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
+import java.util.function.Supplier;
+
+import javax.ws.rs.WebApplicationException;
+
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.nifi.action.Action;
@@ -59,7 +80,6 @@ import org.apache.nifi.groups.RemoteProcessGroup;
import org.apache.nifi.history.History;
import org.apache.nifi.history.HistoryQuery;
import org.apache.nifi.history.PreviousValue;
-import org.apache.nifi.remote.RemoteGroupPort;
import org.apache.nifi.remote.RootGroupPort;
import org.apache.nifi.reporting.Bulletin;
import org.apache.nifi.reporting.BulletinQuery;
@@ -91,6 +111,7 @@ import org.apache.nifi.web.api.dto.FlowSnippetDTO;
import org.apache.nifi.web.api.dto.FunnelDTO;
import org.apache.nifi.web.api.dto.LabelDTO;
import org.apache.nifi.web.api.dto.ListingRequestDTO;
+import org.apache.nifi.web.api.dto.NiFiComponentDTO;
import org.apache.nifi.web.api.dto.NodeDTO;
import org.apache.nifi.web.api.dto.PortDTO;
import org.apache.nifi.web.api.dto.PreviousValueDTO;
@@ -142,24 +163,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.access.AccessDeniedException;
-import javax.ws.rs.WebApplicationException;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.TimeZone;
-import java.util.UUID;
-import java.util.concurrent.TimeUnit;
-
/**
* Implementation of NiFiServiceFacade that performs revision checking.
*/
@@ -368,26 +371,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return createConnection(revision, groupId, connectionDTO);
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<ConnectionDTO>() {
- @Override
- public ConfigurationResult<ConnectionDTO> execute() {
- final Connection connection = connectionDAO.updateConnection(groupId, connectionDTO);
-
- controllerFacade.save();
-
- return new ConfigurationResult<ConnectionDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public ConnectionDTO getConfiguration() {
- return dtoFactory.createConnectionDto(connection);
- }
- };
- }
- });
+ return updateComponent(revision, () -> connectionDAO.updateConnection(groupId, connectionDTO), connection -> dtoFactory.createConnectionDto(connection));
}
@Override
@@ -397,28 +381,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return createProcessor(revision, groupId, processorDTO);
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<ProcessorDTO>() {
- @Override
- public ConfigurationResult<ProcessorDTO> execute() {
- // update the processor
- final ProcessorNode processor = processorDAO.updateProcessor(groupId, processorDTO);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<ProcessorDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public ProcessorDTO getConfiguration() {
- return dtoFactory.createProcessorDto(processor);
- }
- };
- }
- });
+ return updateComponent(revision, () -> processorDAO.updateProcessor(groupId, processorDTO), proc -> dtoFactory.createProcessorDto(proc));
}
@Override
@@ -428,28 +391,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return createLabel(revision, groupId, labelDTO);
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<LabelDTO>() {
- @Override
- public ConfigurationResult<LabelDTO> execute() {
- // update the existing label
- final Label label = labelDAO.updateLabel(groupId, labelDTO);
-
- // save updated controller
- controllerFacade.save();
-
- return new ConfigurationResult<LabelDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public LabelDTO getConfiguration() {
- return dtoFactory.createLabelDto(label);
- }
- };
- }
- });
+ return updateComponent(revision, () -> labelDAO.updateLabel(groupId, labelDTO), label -> dtoFactory.createLabelDto(label));
}
@Override
@@ -459,30 +401,48 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return createFunnel(revision, groupId, funnelDTO);
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<FunnelDTO>() {
+ return updateComponent(revision, () -> funnelDAO.updateFunnel(groupId, funnelDTO), funnel -> dtoFactory.createFunnelDto(funnel));
+ }
+
+
+ /**
+ * Updates a component with the given revision, using the provided supplier to call
+ * into the appropriate DAO and the provided function to convert the component into a DTO.
+ *
+ * @param revision the current revision
+ * @param daoUpdate a Supplier that will update the component via the appropriate DAO
+ * @param dtoCreation a Function to convert a component into a dao
+ *
+ * @param <D> the DTO Type of the updated component
+ * @param <C> the Component Type of the updated component
+ *
+ * @return A ConfigurationSnapshot that represents the new configuration
+ */
+ private <D, C> ConfigurationSnapshot<D> updateComponent(final Revision revision, final Supplier<C> daoUpdate, final Function<C, D> dtoCreation) {
+ return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<D>() {
@Override
- public ConfigurationResult<FunnelDTO> execute() {
- // update the existing label
- final Funnel funnel = funnelDAO.updateFunnel(groupId, funnelDTO);
+ public ConfigurationResult<D> execute() {
+ final C component = daoUpdate.get();
// save updated controller
controllerFacade.save();
- return new ConfigurationResult<FunnelDTO>() {
+ return new ConfigurationResult<D>() {
@Override
public boolean isNew() {
return false;
}
@Override
- public FunnelDTO getConfiguration() {
- return dtoFactory.createFunnelDto(funnel);
+ public D getConfiguration() {
+ return dtoCreation.apply(component);
}
};
}
});
}
+
@Override
public void verifyUpdateSnippet(SnippetDTO snippetDto) {
// if snippet does not exist, then the update request is likely creating it
@@ -499,34 +459,13 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return createSnippet(revision, snippetDto);
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<SnippetDTO>() {
- @Override
- public ConfigurationResult<SnippetDTO> execute() {
- // update the snippet
- final Snippet snippet = snippetDAO.updateSnippet(snippetDto);
-
- // build the snippet dto
+ return updateComponent(revision,
+ () -> snippetDAO.updateSnippet(snippetDto),
+ snippet -> {
final SnippetDTO responseSnippetDto = dtoFactory.createSnippetDto(snippet);
responseSnippetDto.setContents(snippetUtils.populateFlowSnippet(snippet, false, false));
-
- // save updated controller if applicable
- if (snippetDto.getParentGroupId() != null && snippet.isLinked()) {
- controllerFacade.save();
- }
-
- return new ConfigurationResult<SnippetDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public SnippetDTO getConfiguration() {
- return responseSnippetDto;
- }
- };
- }
- });
+ return responseSnippetDto;
+ });
}
@Override
@@ -536,27 +475,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return createInputPort(revision, groupId, inputPortDTO);
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<PortDTO>() {
- @Override
- public ConfigurationResult<PortDTO> execute() {
- final Port inputPort = inputPortDAO.updatePort(groupId, inputPortDTO);
-
- // save updated controller
- controllerFacade.save();
-
- return new ConfigurationResult<PortDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public PortDTO getConfiguration() {
- return dtoFactory.createPortDto(inputPort);
- }
- };
- }
- });
+ return updateComponent(revision, () -> inputPortDAO.updatePort(groupId, inputPortDTO), port -> dtoFactory.createPortDto(port));
}
@Override
@@ -566,27 +485,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return createOutputPort(revision, groupId, outputPortDTO);
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<PortDTO>() {
- @Override
- public ConfigurationResult<PortDTO> execute() {
- final Port outputPort = outputPortDAO.updatePort(groupId, outputPortDTO);
-
- // save updated controller
- controllerFacade.save();
-
- return new ConfigurationResult<PortDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public PortDTO getConfiguration() {
- return dtoFactory.createPortDto(outputPort);
- }
- };
- }
- });
+ return updateComponent(revision, () -> outputPortDAO.updatePort(groupId, outputPortDTO), port -> dtoFactory.createPortDto(port));
}
@Override
@@ -596,81 +495,27 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return createRemoteProcessGroup(revision, groupId, remoteProcessGroupDTO);
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<RemoteProcessGroupDTO>() {
- @Override
- public ConfigurationResult<RemoteProcessGroupDTO> execute() {
- final RemoteProcessGroup remoteProcessGroup = remoteProcessGroupDAO.updateRemoteProcessGroup(groupId, remoteProcessGroupDTO);
-
- // save updated controller
- controllerFacade.save();
-
- return new ConfigurationResult<RemoteProcessGroupDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public RemoteProcessGroupDTO getConfiguration() {
- return dtoFactory.createRemoteProcessGroupDto(remoteProcessGroup);
- }
- };
- }
- });
+ return updateComponent(revision,
+ () -> remoteProcessGroupDAO.updateRemoteProcessGroup(groupId, remoteProcessGroupDTO),
+ remoteProcessGroup -> dtoFactory.createRemoteProcessGroupDto(remoteProcessGroup));
}
@Override
public ConfigurationSnapshot<RemoteProcessGroupPortDTO> updateRemoteProcessGroupInputPort(
final Revision revision, final String groupId, final String remoteProcessGroupId, final RemoteProcessGroupPortDTO remoteProcessGroupPortDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<RemoteProcessGroupPortDTO>() {
- @Override
- public ConfigurationResult<RemoteProcessGroupPortDTO> execute() {
- // update the remote port
- final RemoteGroupPort remoteGroupPort = remoteProcessGroupDAO.updateRemoteProcessGroupInputPort(groupId, remoteProcessGroupId, remoteProcessGroupPortDTO);
-
- // save updated controller
- controllerFacade.save();
-
- return new ConfigurationResult<RemoteProcessGroupPortDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
- @Override
- public RemoteProcessGroupPortDTO getConfiguration() {
- return dtoFactory.createRemoteProcessGroupPortDto(remoteGroupPort);
- }
- };
- }
- });
+ return updateComponent(revision,
+ () -> remoteProcessGroupDAO.updateRemoteProcessGroupInputPort(groupId, remoteProcessGroupId, remoteProcessGroupPortDTO),
+ remoteGroupPort -> dtoFactory.createRemoteProcessGroupPortDto(remoteGroupPort));
}
@Override
public ConfigurationSnapshot<RemoteProcessGroupPortDTO> updateRemoteProcessGroupOutputPort(
final Revision revision, final String groupId, final String remoteProcessGroupId, final RemoteProcessGroupPortDTO remoteProcessGroupPortDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<RemoteProcessGroupPortDTO>() {
- @Override
- public ConfigurationResult<RemoteProcessGroupPortDTO> execute() {
- // update the remote port
- final RemoteGroupPort remoteGroupPort = remoteProcessGroupDAO.updateRemoteProcessGroupOutputPort(groupId, remoteProcessGroupId, remoteProcessGroupPortDTO);
- // save updated controller
- controllerFacade.save();
-
- return new ConfigurationResult<RemoteProcessGroupPortDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public RemoteProcessGroupPortDTO getConfiguration() {
- return dtoFactory.createRemoteProcessGroupPortDto(remoteGroupPort);
- }
- };
- }
- });
+ return updateComponent(revision,
+ () -> remoteProcessGroupDAO.updateRemoteProcessGroupOutputPort(groupId, remoteProcessGroupId, remoteProcessGroupPortDTO),
+ remoteGroupPort -> dtoFactory.createRemoteProcessGroupPortDto(remoteGroupPort));
}
@Override
@@ -684,35 +529,13 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
}
}
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<ProcessGroupDTO>() {
- @Override
- public ConfigurationResult<ProcessGroupDTO> execute() {
- // update the process group
- final ProcessGroup processGroup = processGroupDAO.updateProcessGroup(processGroupDTO);
-
- // save updated controller
- controllerFacade.save();
-
- return new ConfigurationResult<ProcessGroupDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public ProcessGroupDTO getConfiguration() {
- return dtoFactory.createProcessGroupDto(processGroup);
- }
- };
- }
- });
+ return updateComponent(revision, () -> processGroupDAO.updateProcessGroup(processGroupDTO), processGroup -> dtoFactory.createProcessGroupDto(processGroup));
}
@Override
public ConfigurationSnapshot<ControllerConfigurationDTO> updateControllerConfiguration(final Revision revision, final ControllerConfigurationDTO controllerConfigurationDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<ControllerConfigurationDTO>() {
- @Override
- public ConfigurationResult<ControllerConfigurationDTO> execute() {
+ return updateComponent(revision,
+ () -> {
// update the controller configuration through the proxy
if (controllerConfigurationDTO.getName() != null) {
controllerFacade.setName(controllerConfigurationDTO.getName());
@@ -727,25 +550,9 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
controllerFacade.setMaxEventDrivenThreadCount(controllerConfigurationDTO.getMaxEventDrivenThreadCount());
}
- // create the controller configuration dto
- final ControllerConfigurationDTO controllerConfig = getControllerConfiguration();
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<ControllerConfigurationDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public ControllerConfigurationDTO getConfiguration() {
- return controllerConfig;
- }
- };
- }
- });
+ return controllerConfigurationDTO;
+ },
+ controller -> getControllerConfiguration());
}
@Override
@@ -778,23 +585,17 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
@Override
public ConfigurationSnapshot<Void> clearProcessorState(final Revision revision, final String groupId, final String processorId) {
+ return clearComponentState(revision, () -> processorDAO.clearState(groupId, processorId));
+ }
+
+ private ConfigurationSnapshot<Void> clearComponentState(final Revision revision, final Runnable clearState) {
return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
@Override
public ConfigurationResult<Void> execute() {
// clear the state for the specified component
- processorDAO.clearState(groupId, processorId);
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
+ clearState.run();
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
+ return new StandardConfigurationResult<Void>(false, null);
}
});
}
@@ -806,25 +607,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
@Override
public ConfigurationSnapshot<Void> clearControllerServiceState(final Revision revision, final String controllerServiceId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- // clear the state for the specified component
- controllerServiceDAO.clearState(controllerServiceId);
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
+ return clearComponentState(revision, () -> controllerServiceDAO.clearState(controllerServiceId));
}
@Override
@@ -834,50 +617,12 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
@Override
public ConfigurationSnapshot<Void> clearReportingTaskState(final Revision revision, final String reportingTaskId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- // clear the state for the specified component
- reportingTaskDAO.clearState(reportingTaskId);
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
+ return clearComponentState(revision, () -> reportingTaskDAO.clearState(reportingTaskId));
}
@Override
public ConfigurationSnapshot<Void> deleteConnection(final Revision revision, final String groupId, final String connectionId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- connectionDAO.deleteConnection(groupId, connectionId);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
+ return deleteComponent(revision, () -> connectionDAO.deleteConnection(groupId, connectionId));
}
@Override
@@ -903,179 +648,34 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
@Override
public ConfigurationSnapshot<Void> deleteProcessor(final Revision revision, final String groupId, final String processorId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- // delete the processor and synchronize the connection state
- processorDAO.deleteProcessor(groupId, processorId);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
+ return deleteComponent(revision, () -> processorDAO.deleteProcessor(groupId, processorId));
}
@Override
public ConfigurationSnapshot<Void> deleteLabel(final Revision revision, final String groupId, final String labelId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- // delete the label
- labelDAO.deleteLabel(groupId, labelId);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
+ return deleteComponent(revision, () -> labelDAO.deleteLabel(groupId, labelId));
}
@Override
public ConfigurationSnapshot<Void> deleteFunnel(final Revision revision, final String groupId, final String funnelId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- // delete the label
- funnelDAO.deleteFunnel(groupId, funnelId);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
- }
-
- @Override
- public void verifyDeleteSnippet(String id) {
- snippetDAO.verifyDelete(id);
- }
-
- @Override
- public ConfigurationSnapshot<Void> deleteSnippet(final Revision revision, final String snippetId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- // determine if this snippet was linked to the data flow
- Snippet snippet = snippetDAO.getSnippet(snippetId);
- boolean linked = snippet.isLinked();
-
- // delete the snippet
- snippetDAO.deleteSnippet(snippetId);
-
- // save the flow if necessary
- if (linked) {
- controllerFacade.save();
- }
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
+ return deleteComponent(revision, () -> funnelDAO.deleteFunnel(groupId, funnelId));
}
- @Override
- public ConfigurationSnapshot<Void> deleteInputPort(final Revision revision, final String groupId, final String inputPortId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- inputPortDAO.deletePort(groupId, inputPortId);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
- }
-
- @Override
- public ConfigurationSnapshot<Void> deleteOutputPort(final Revision revision, final String groupId, final String outputPortId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- outputPortDAO.deletePort(groupId, outputPortId);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
- }
-
- @Override
- public ConfigurationSnapshot<Void> deleteProcessGroup(final Revision revision, final String groupId) {
+ /**
+ * Deletes a component using the Optimistic Locking Manager
+ *
+ * @param revision the current revision
+ * @param action the action that deletes the component via the appropriate DAO object
+ * @return a ConfigurationSnapshot that represents the new configuration
+ */
+ private ConfigurationSnapshot<Void> deleteComponent(final Revision revision, final Runnable action) {
return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
@Override
public ConfigurationResult<Void> execute() {
- processGroupDAO.deleteProcessGroup(groupId);
+ action.run();
// save the flow
controllerFacade.save();
-
return new ConfigurationResult<Void>() {
@Override
public boolean isNew() {
@@ -1092,28 +692,33 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
}
@Override
- public ConfigurationSnapshot<Void> deleteRemoteProcessGroup(final Revision revision, final String groupId, final String remoteProcessGroupId) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<Void>() {
- @Override
- public ConfigurationResult<Void> execute() {
- remoteProcessGroupDAO.deleteRemoteProcessGroup(groupId, remoteProcessGroupId);
+ public void verifyDeleteSnippet(String id) {
+ snippetDAO.verifyDelete(id);
+ }
- // save the flow
- controllerFacade.save();
+ @Override
+ public ConfigurationSnapshot<Void> deleteSnippet(final Revision revision, final String snippetId) {
+ return deleteComponent(revision, () -> snippetDAO.deleteSnippet(snippetId));
+ }
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
+ @Override
+ public ConfigurationSnapshot<Void> deleteInputPort(final Revision revision, final String groupId, final String inputPortId) {
+ return deleteComponent(revision, () -> inputPortDAO.deletePort(groupId, inputPortId));
+ }
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
- }
- });
+ @Override
+ public ConfigurationSnapshot<Void> deleteOutputPort(final Revision revision, final String groupId, final String outputPortId) {
+ return deleteComponent(revision, () -> outputPortDAO.deletePort(groupId, outputPortId));
+ }
+
+ @Override
+ public ConfigurationSnapshot<Void> deleteProcessGroup(final Revision revision, final String groupId) {
+ return deleteComponent(revision, () -> processGroupDAO.deleteProcessGroup(groupId));
+ }
+
+ @Override
+ public ConfigurationSnapshot<Void> deleteRemoteProcessGroup(final Revision revision, final String groupId, final String remoteProcessGroupId) {
+ return deleteComponent(revision, () -> remoteProcessGroupDAO.deleteRemoteProcessGroup(groupId, remoteProcessGroupId));
}
@Override
@@ -1124,32 +729,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
@Override
public ConfigurationSnapshot<ConnectionDTO> createConnection(final Revision revision, final String groupId, final ConnectionDTO connectionDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<ConnectionDTO>() {
- @Override
- public ConfigurationResult<ConnectionDTO> execute() {
- // ensure id is set
- if (StringUtils.isBlank(connectionDTO.getId())) {
- connectionDTO.setId(UUID.randomUUID().toString());
- }
-
- final Connection connection = connectionDAO.createConnection(groupId, connectionDTO);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<ConnectionDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
-
- @Override
- public ConnectionDTO getConfiguration() {
- return dtoFactory.createConnectionDto(connection);
- }
- };
- }
- });
+ return createComponent(revision, connectionDTO, () -> connectionDAO.createConnection(groupId, connectionDTO), connection -> dtoFactory.createConnectionDto(connection));
}
@Override
@@ -1175,95 +755,64 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
@Override
public ConfigurationSnapshot<ProcessorDTO> createProcessor(final Revision revision, final String groupId, final ProcessorDTO processorDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<ProcessorDTO>() {
- @Override
- public ConfigurationResult<ProcessorDTO> execute() {
- // ensure id is set
- if (StringUtils.isBlank(processorDTO.getId())) {
- processorDTO.setId(UUID.randomUUID().toString());
- }
-
- // create the processor
- final ProcessorNode processor = processorDAO.createProcessor(groupId, processorDTO);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<ProcessorDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
-
- @Override
- public ProcessorDTO getConfiguration() {
- return dtoFactory.createProcessorDto(processor);
- }
- };
- }
- });
+ return createComponent(revision, processorDTO, () -> processorDAO.createProcessor(groupId, processorDTO), processor -> dtoFactory.createProcessorDto(processor));
}
@Override
public ConfigurationSnapshot<LabelDTO> createLabel(final Revision revision, final String groupId, final LabelDTO labelDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<LabelDTO>() {
+ return createComponent(revision, labelDTO, () -> labelDAO.createLabel(groupId, labelDTO), label -> dtoFactory.createLabelDto(label));
+ }
+
+ /**
+ * Creates a component using the optimistic locking manager.
+ *
+ * @param revision the current revision
+ * @param componentDto the DTO that will be used to create the component
+ * @param daoCreation A Supplier that will create the NiFi Component to use
+ * @param dtoCreation a Function that will convert the NiFi Component into a corresponding DTO
+ *
+ * @param <D> the DTO Type
+ * @param <C> the NiFi Component Type
+ *
+ * @return a ConfigurationSnapshot that represents the updated configuration
+ */
+ private <D, C> ConfigurationSnapshot<D> createComponent(final Revision revision, final NiFiComponentDTO componentDto,
+ final Supplier<C> daoCreation, final Function<C, D> dtoCreation) {
+
+ return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<D>() {
@Override
- public ConfigurationResult<LabelDTO> execute() {
+ public ConfigurationResult<D> execute() {
// ensure id is set
- if (StringUtils.isBlank(labelDTO.getId())) {
- labelDTO.setId(UUID.randomUUID().toString());
+ if (StringUtils.isBlank(componentDto.getId())) {
+ componentDto.setId(UUID.randomUUID().toString());
}
- // add the label
- final Label label = labelDAO.createLabel(groupId, labelDTO);
+ // add the component
+ final C component = daoCreation.get();
// save the flow
controllerFacade.save();
- return new ConfigurationResult<LabelDTO>() {
+ return new ConfigurationResult<D>() {
@Override
public boolean isNew() {
return true;
}
@Override
- public LabelDTO getConfiguration() {
- return dtoFactory.createLabelDto(label);
+ public D getConfiguration() {
+ return dtoCreation.apply(component);
}
};
}
});
}
- @Override
- public ConfigurationSnapshot<FunnelDTO> createFunnel(final Revision revision, final String groupId, final FunnelDTO funnelDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<FunnelDTO>() {
- @Override
- public ConfigurationResult<FunnelDTO> execute() {
- // ensure id is set
- if (StringUtils.isBlank(funnelDTO.getId())) {
- funnelDTO.setId(UUID.randomUUID().toString());
- }
-
- // add the label
- final Funnel funnel = funnelDAO.createFunnel(groupId, funnelDTO);
-
- // save the flow
- controllerFacade.save();
- return new ConfigurationResult<FunnelDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
- @Override
- public FunnelDTO getConfiguration() {
- return dtoFactory.createFunnelDto(funnel);
- }
- };
- }
- });
+ @Override
+ public ConfigurationSnapshot<FunnelDTO> createFunnel(final Revision revision, final String groupId, final FunnelDTO funnelDTO) {
+ return createComponent(revision, funnelDTO, () -> funnelDAO.createFunnel(groupId, funnelDTO), funnel -> dtoFactory.createFunnelDto(funnel));
}
private void validateSnippetContents(final FlowSnippetDTO flowSnippet, final String groupId) {
@@ -1389,122 +938,26 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
@Override
public ConfigurationSnapshot<PortDTO> createInputPort(final Revision revision, final String groupId, final PortDTO inputPortDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<PortDTO>() {
- @Override
- public ConfigurationResult<PortDTO> execute() {
- // ensure id is set
- if (StringUtils.isBlank(inputPortDTO.getId())) {
- inputPortDTO.setId(UUID.randomUUID().toString());
- }
-
- final Port inputPort = inputPortDAO.createPort(groupId, inputPortDTO);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<PortDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
-
- @Override
- public PortDTO getConfiguration() {
- return dtoFactory.createPortDto(inputPort);
- }
- };
- }
- });
+ return createComponent(revision, inputPortDTO, () -> inputPortDAO.createPort(groupId, inputPortDTO), port -> dtoFactory.createPortDto(port));
}
@Override
public ConfigurationSnapshot<PortDTO> createOutputPort(final Revision revision, final String groupId, final PortDTO outputPortDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<PortDTO>() {
- @Override
- public ConfigurationResult<PortDTO> execute() {
- // ensure id is set
- if (StringUtils.isBlank(outputPortDTO.getId())) {
- outputPortDTO.setId(UUID.randomUUID().toString());
- }
-
- final Port outputPort = outputPortDAO.createPort(groupId, outputPortDTO);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<PortDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
-
- @Override
- public PortDTO getConfiguration() {
- return dtoFactory.createPortDto(outputPort);
- }
- };
- }
- });
+ return createComponent(revision, outputPortDTO, () -> outputPortDAO.createPort(groupId, outputPortDTO), port -> dtoFactory.createPortDto(port));
}
@Override
public ConfigurationSnapshot<ProcessGroupDTO> createProcessGroup(final String parentGroupId, final Revision revision, final ProcessGroupDTO processGroupDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<ProcessGroupDTO>() {
- @Override
- public ConfigurationResult<ProcessGroupDTO> execute() {
- // ensure id is set
- if (StringUtils.isBlank(processGroupDTO.getId())) {
- processGroupDTO.setId(UUID.randomUUID().toString());
- }
-
- final ProcessGroup processGroup = processGroupDAO.createProcessGroup(parentGroupId, processGroupDTO);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<ProcessGroupDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
-
- @Override
- public ProcessGroupDTO getConfiguration() {
- return dtoFactory.createProcessGroupDto(processGroup);
- }
- };
- }
- });
+ return createComponent(revision, processGroupDTO,
+ () -> processGroupDAO.createProcessGroup(parentGroupId, processGroupDTO),
+ processGroup -> dtoFactory.createProcessGroupDto(processGroup));
}
@Override
public ConfigurationSnapshot<RemoteProcessGroupDTO> createRemoteProcessGroup(final Revision revision, final String groupId, final RemoteProcessGroupDTO remoteProcessGroupDTO) {
- return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<RemoteProcessGroupDTO>() {
- @Override
- public ConfigurationResult<RemoteProcessGroupDTO> execute() {
- // ensure id is set
- if (StringUtils.isBlank(remoteProcessGroupDTO.getId())) {
- remoteProcessGroupDTO.setId(UUID.randomUUID().toString());
- }
-
- final RemoteProcessGroup remoteProcessGroup = remoteProcessGroupDAO.createRemoteProcessGroup(groupId, remoteProcessGroupDTO);
-
- // save the flow
- controllerFacade.save();
-
- return new ConfigurationResult<RemoteProcessGroupDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
-
- @Override
- public RemoteProcessGroupDTO getConfiguration() {
- return dtoFactory.createRemoteProcessGroupDto(remoteProcessGroup);
- }
- };
- }
- });
+ return createComponent(revision, remoteProcessGroupDTO,
+ () -> remoteProcessGroupDAO.createRemoteProcessGroup(groupId, remoteProcessGroupDTO),
+ remoteProcessGroup -> dtoFactory.createRemoteProcessGroupDto(remoteProcessGroup));
}
@Override
@@ -1587,17 +1040,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
// create the archive
controllerFacade.createArchive();
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
+ return new StandardConfigurationResult<Void>(false, null);
}
});
}
@@ -1630,17 +1073,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
// save the flow
controllerFacade.save();
- return new ConfigurationResult<ProcessorDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public ProcessorDTO getConfiguration() {
- return dtoFactory.createProcessorDto(processor);
- }
- };
+ return new StandardConfigurationResult<>(false, dtoFactory.createProcessorDto(processor));
}
});
}
@@ -1665,17 +1098,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
controllerFacade.save();
}
- return new ConfigurationResult<ControllerServiceDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
-
- @Override
- public ControllerServiceDTO getConfiguration() {
- return dtoFactory.createControllerServiceDto(controllerService);
- }
- };
+ return new StandardConfigurationResult<ControllerServiceDTO>(true, dtoFactory.createControllerServiceDto(controllerService));
}
});
}
@@ -1699,17 +1122,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
controllerFacade.save();
}
- return new ConfigurationResult<ControllerServiceDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public ControllerServiceDTO getConfiguration() {
- return dtoFactory.createControllerServiceDto(controllerService);
- }
- };
+ return new StandardConfigurationResult<ControllerServiceDTO>(false, dtoFactory.createControllerServiceDto(controllerService));
}
});
}
@@ -1726,17 +1139,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
public ConfigurationResult<Set<ControllerServiceReferencingComponentDTO>> execute() {
final ControllerServiceReference reference = controllerServiceDAO.updateControllerServiceReferencingComponents(controllerServiceId, scheduledState, controllerServiceState);
- return new ConfigurationResult<Set<ControllerServiceReferencingComponentDTO>>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Set<ControllerServiceReferencingComponentDTO> getConfiguration() {
- return dtoFactory.createControllerServiceReferencingComponentsDto(reference);
- }
- };
+ return new StandardConfigurationResult<Set<ControllerServiceReferencingComponentDTO>>(false, dtoFactory.createControllerServiceReferencingComponentsDto(reference));
}
});
}
@@ -1756,21 +1159,12 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
controllerFacade.save();
}
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
+ return new StandardConfigurationResult<Void>(false, null);
}
});
}
+
@Override
public ConfigurationSnapshot<ReportingTaskDTO> createReportingTask(final Revision revision, final ReportingTaskDTO reportingTaskDTO) {
return optimisticLockingManager.configureFlow(revision, new ConfigurationRequest<ReportingTaskDTO>() {
@@ -1791,17 +1185,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
controllerFacade.save();
}
- return new ConfigurationResult<ReportingTaskDTO>() {
- @Override
- public boolean isNew() {
- return true;
- }
-
- @Override
- public ReportingTaskDTO getConfiguration() {
- return dtoFactory.createReportingTaskDto(reportingTask);
- }
- };
+ return new StandardConfigurationResult<ReportingTaskDTO>(true, dtoFactory.createReportingTaskDto(reportingTask));
}
});
}
@@ -1825,17 +1209,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
controllerFacade.save();
}
- return new ConfigurationResult<ReportingTaskDTO>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public ReportingTaskDTO getConfiguration() {
- return dtoFactory.createReportingTaskDto(reportingTask);
- }
- };
+ return new StandardConfigurationResult<ReportingTaskDTO>(false, dtoFactory.createReportingTaskDto(reportingTask));
}
});
}
@@ -1855,17 +1229,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
controllerFacade.save();
}
- return new ConfigurationResult<Void>() {
- @Override
- public boolean isNew() {
- return false;
- }
-
- @Override
- public Void getConfiguration() {
- return null;
- }
- };
+ return new StandardConfigurationResult<Void>(false, null);
}
});
}
@@ -2768,6 +2132,7 @@ public class StandardNiFiServiceFacade implements NiFiServiceFacade {
return userDTOs;
}
+
@Override
public boolean isClustered() {
return controllerFacade.isClustered();
http://git-wip-us.apache.org/repos/asf/nifi/blob/b59d3ece/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardConfigurationResult.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardConfigurationResult.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardConfigurationResult.java
new file mode 100644
index 0000000..1d5e685
--- /dev/null
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/src/main/java/org/apache/nifi/web/StandardConfigurationResult.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.nifi.web;
+
+public class StandardConfigurationResult<T> implements ConfigurationResult<T> {
+ private final boolean isNew;
+ private final T configuration;
+
+ public StandardConfigurationResult(final boolean isNew, final T configuration) {
+ this.isNew = isNew;
+ this.configuration = configuration;
+ }
+
+ @Override
+ public boolean isNew() {
+ return isNew;
+ }
+
+ @Override
+ public T getConfiguration() {
+ return configuration;
+ }
+}
http://git-wip-us.apache.org/repos/asf/nifi/blob/b59d3ece/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/test/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderTest.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/test/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderTest.java b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/test/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderTest.java
index 2280273..95bdbe5 100644
--- a/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/test/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderTest.java
+++ b/nifi-nar-bundles/nifi-jms-bundle/nifi-jms-cf-service/src/test/java/org/apache/nifi/jms/cf/JMSConnectionFactoryProviderTest.java
@@ -69,9 +69,9 @@ public class JMSConnectionFactoryProviderTest {
assertNotNull(cf);
assertEquals("org.apache.nifi.jms.testcflib.TestConnectionFactory", cf.getClass().getName());
assertEquals("myhost", this.get("getHost", cf));
- assertEquals(1234, this.get("getPort", cf));
+ assertEquals(1234, ((Integer) this.get("getPort", cf)).intValue());
assertEquals("foo", this.get("getFoo", cf));
- assertEquals(3, this.get("getBar", cf));
+ assertEquals(3, ((Integer) this.get("getBar", cf)).intValue());
}
@Test(expected = AssertionError.class)
http://git-wip-us.apache.org/repos/asf/nifi/blob/b59d3ece/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 442acdd..e702785 100644
--- a/pom.xml
+++ b/pom.xml
@@ -81,8 +81,8 @@ language governing permissions and limitations under the License. -->
<url>https://issues.apache.org/jira/browse/NIFI</url>
</issueManagement>
<properties>
- <maven.compiler.source>1.7</maven.compiler.source>
- <maven.compiler.target>1.7</maven.compiler.target>
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
<maven.min-version>3.1.0</maven.min-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@@ -1313,7 +1313,7 @@ language governing permissions and limitations under the License. -->
<show>private</show>
<encoding>UTF-8</encoding>
<quiet>true</quiet>
- <javadocVersion>1.7</javadocVersion>
+ <javadocVersion>1.8</javadocVersion>
<additionalJOption>-J-Xmx512m</additionalJOption>
</configuration>
</plugin>
@@ -1383,8 +1383,8 @@ language governing permissions and limitations under the License. -->
</execution>
</executions>
<configuration>
- <source>1.7</source>
- <target>1.7</target>
+ <source>1.8</source>
+ <target>1.8</target>
</configuration>
<dependencies>
<dependency>