This is an automated email from the ASF dual-hosted git repository.
bbende pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 25299f8106 NIFI-13592 Removed unused nifi-runtime classes and methods
(#9120)
25299f8106 is described below
commit 25299f8106caf58cf263c8fc5298cc1115fdfd6b
Author: David Handermann <[email protected]>
AuthorDate: Mon Jul 29 13:05:40 2024 -0500
NIFI-13592 Removed unused nifi-runtime classes and methods (#9120)
- Removed unused key processing methods from NiFi runtime class
- Removed unused stateless and embedded NiFi classes along with tests
---
.../apache/nifi/bootstrap/RunStatelessNiFi.java | 56 -------
.../nifi-framework/nifi-runtime/pom.xml | 21 ---
.../main/java/org/apache/nifi/EmbeddedNiFi.java | 64 -------
.../src/main/java/org/apache/nifi/NiFi.java | 175 +-------------------
.../main/java/org/apache/nifi/StatelessNiFi.java | 115 -------------
.../nifi/headless/FlowEnrichmentException.java | 39 -----
.../test/java/org/apache/nifi/ListAppender.java | 41 -----
.../src/test/java/org/apache/nifi/NiFiTest.java | 116 -------------
.../resources/NiFiProperties/conf/bootstrap.conf | 16 --
.../NiFiProperties/conf/encrypted.nifi.properties | 183 ---------------------
.../resources/NiFiProperties/conf/nifi.properties | 173 -------------------
.../src/test/resources/logback-test.xml | 28 ----
12 files changed, 7 insertions(+), 1020 deletions(-)
diff --git
a/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunStatelessNiFi.java
b/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunStatelessNiFi.java
deleted file mode 100644
index 36e9fd4b93..0000000000
---
a/nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunStatelessNiFi.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.bootstrap;
-
-import java.io.File;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-
-public class RunStatelessNiFi {
-
- public static void main(final String[] args) throws Exception {
-
- String nifi_home = System.getenv("NIFI_HOME");
- if (nifi_home == null || nifi_home.equals("")) {
- nifi_home = ".";
- }
-
- final List<URL> cpURLs = new ArrayList<>();
- final File libDir = new File(nifi_home + "/lib");
- if (libDir.exists()) {
- for (final File file :
Objects.requireNonNull(libDir.listFiles((dir, filename) ->
filename.toLowerCase().endsWith(".jar")))) {
- cpURLs.add(file.toURI().toURL());
- }
- }
-
- if (cpURLs.isEmpty()) {
- throw new RuntimeException("Could not find lib directory at " +
libDir.getAbsolutePath());
- }
-
- final URLClassLoader rootClassLoader = new
URLClassLoader(cpURLs.toArray(new URL[0]));
- Thread.currentThread().setContextClassLoader(rootClassLoader);
-
- final Class<?> programClass =
Class.forName("org.apache.nifi.StatelessNiFi", true, rootClassLoader);
- final Method launchMethod = programClass.getMethod("main",
String[].class);
- launchMethod.setAccessible(true);
- launchMethod.invoke(null, (Object) args);
- }
-}
diff --git a/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml
b/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml
index 14724d10c5..76eeaec572 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml
+++ b/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml
@@ -34,26 +34,5 @@
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-utils</artifactId>
</dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-properties-loader</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/EmbeddedNiFi.java
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/EmbeddedNiFi.java
deleted file mode 100644
index 6f1634e6b4..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/EmbeddedNiFi.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * <p>
- * Starts an instance of NiFi within the <b>same JVM</b>, which can later
properly be shut down.
- * Intended to be used for testing purposes.</p>
- *
- */
-public class EmbeddedNiFi extends NiFi {
-
- public EmbeddedNiFi(String[] args, ClassLoader rootClassLoader)
- throws ClassNotFoundException, IOException, NoSuchMethodException,
- InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException {
-
- super(convertArgumentsToValidatedNiFiProperties(args),
rootClassLoader);
- }
-
- public EmbeddedNiFi(String[] args, ClassLoader rootClassLoader,
ClassLoader bootstrapClassLoader)
- throws ClassNotFoundException, IOException, NoSuchMethodException,
- InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException {
-
- super(convertArgumentsToValidatedNiFiProperties(args,
bootstrapClassLoader), rootClassLoader);
- }
-
- @Override
- protected void initLogging() {
- // do nothing when running in embedded mode
- }
-
- @Override
- protected void setDefaultUncaughtExceptionHandler() {
- // do nothing when running in embedded mode
- }
-
- @Override
- protected void addShutdownHook() {
- // do nothing when running in embedded mode
- }
-
- @Override
- public void shutdown() {
- super.shutdown();
- }
-}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java
index dbd330faab..deb7529967 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/NiFi.java
@@ -34,7 +34,6 @@ import org.slf4j.bridge.SLF4JBridgeHandler;
import java.io.File;
import java.io.FileOutputStream;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
@@ -42,26 +41,15 @@ import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
-import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
-import java.util.Random;
import java.util.Set;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Stream;
public class NiFi implements NiFiEntryPoint {
@@ -70,7 +58,6 @@ public class NiFi implements NiFiEntryPoint {
public static final DateTimeFormatter DATE_TIME_FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss");
private static final Logger LOGGER = LoggerFactory.getLogger(NiFi.class);
- private static final String KEY_FILE_FLAG = "-K";
private final NiFiServer nifiServer;
private final BootstrapListener bootstrapListener;
@@ -130,8 +117,6 @@ public class NiFi implements NiFiEntryPoint {
FileUtils.deleteFilesInDirectory(webWorkingDir, null, LOGGER, true,
true);
FileUtils.deleteFile(webWorkingDir, LOGGER, 3);
- detectTimingIssues();
-
// redirect JUL log events
initLogging();
@@ -187,9 +172,7 @@ public class NiFi implements NiFiEntryPoint {
}
protected void setDefaultUncaughtExceptionHandler() {
- Thread.setDefaultUncaughtExceptionHandler((thread, exception) -> {
- LOGGER.error("An Unknown Error Occurred in Thread {}", thread,
exception);
- });
+ Thread.setDefaultUncaughtExceptionHandler((thread, exception) ->
LOGGER.error("An Unknown Error Occurred in Thread {}", thread, exception));
}
protected void addShutdownHook() {
@@ -269,57 +252,6 @@ public class NiFi implements NiFiEntryPoint {
LOGGER.info("Application Server shutdown completed");
}
- /**
- * Determine if the machine we're running on has timing issues.
- */
- private void detectTimingIssues() {
- final int minRequiredOccurrences = 25;
- final int maxOccurrencesOutOfRange = 15;
- final AtomicLong lastTriggerMillis = new
AtomicLong(System.currentTimeMillis());
-
- final ScheduledExecutorService service =
Executors.newScheduledThreadPool(1, new ThreadFactory() {
- private final ThreadFactory defaultFactory =
Executors.defaultThreadFactory();
-
- @Override
- public Thread newThread(final Runnable runnable) {
- final Thread t = defaultFactory.newThread(runnable);
- t.setDaemon(true);
- t.setName("Detect Timing Issues");
- return t;
- }
- });
-
- final AtomicInteger occurrencesOutOfRange = new AtomicInteger(0);
- final AtomicInteger occurrences = new AtomicInteger(0);
- final Runnable command = () -> {
- final long curMillis = System.currentTimeMillis();
- final long difference = curMillis - lastTriggerMillis.get();
- final long millisOff = Math.abs(difference - 2000L);
- occurrences.incrementAndGet();
- if (millisOff > 500L) {
- occurrencesOutOfRange.incrementAndGet();
- }
- lastTriggerMillis.set(curMillis);
- };
-
- final ScheduledFuture<?> future =
service.scheduleWithFixedDelay(command, 2000L, 2000L, TimeUnit.MILLISECONDS);
-
- final TimerTask timerTask = new TimerTask() {
- @Override
- public void run() {
- future.cancel(true);
- service.shutdownNow();
-
- if (occurrences.get() < minRequiredOccurrences ||
occurrencesOutOfRange.get() > maxOccurrencesOutOfRange) {
- LOGGER.warn("NiFi has detected that this box is not
responding within the expected timing interval, which may cause "
- + "Processors to be scheduled erratically. Please
see the NiFi documentation for more information.");
- }
- }
- };
- final Timer timer = new Timer(true);
- timer.schedule(timerTask, 60000L);
- }
-
/**
* Main entry point of the application.
*
@@ -328,24 +260,24 @@ public class NiFi implements NiFiEntryPoint {
public static void main(String[] args) {
LOGGER.info("Launching NiFi...");
try {
- NiFiProperties properties =
convertArgumentsToValidatedNiFiProperties(args);
+ NiFiProperties properties = loadProperties();
new NiFi(properties);
} catch (final Throwable t) {
LOGGER.error("Failure to launch NiFi", t);
}
}
- protected static NiFiProperties
convertArgumentsToValidatedNiFiProperties(String[] args) {
- return convertArgumentsToValidatedNiFiProperties(args,
createBootstrapClassLoader());
+ protected static NiFiProperties loadProperties() {
+ return loadProperties(createBootstrapClassLoader());
}
- protected static NiFiProperties
convertArgumentsToValidatedNiFiProperties(String[] args, final ClassLoader
bootstrapClassLoader) {
- NiFiProperties properties = initializeProperties(args,
bootstrapClassLoader);
+ protected static NiFiProperties loadProperties(final ClassLoader
bootstrapClassLoader) {
+ NiFiProperties properties = initializeProperties(bootstrapClassLoader);
properties.validate();
return properties;
}
- private static NiFiProperties initializeProperties(final String[] args,
final ClassLoader boostrapLoader) {
+ private static NiFiProperties initializeProperties(final ClassLoader
boostrapLoader) {
final ClassLoader contextClassLoader =
Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(boostrapLoader);
@@ -369,97 +301,4 @@ public class NiFi implements NiFiEntryPoint {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
-
- private static String loadFormattedKey(String[] args) {
- String key = null;
- List<String> parsedArgs = parseArgs(args);
- // Check if args contain protection key
- if (parsedArgs.contains(KEY_FILE_FLAG)) {
- key = getKeyFromKeyFileAndPrune(parsedArgs);
- // Format the key (check hex validity and remove spaces)
- key = formatHexKey(key);
-
- }
-
- if (null == key) {
- return "";
- } else if (!isHexKeyValid(key)) {
- throw new IllegalArgumentException("The key was not provided in
valid hex format and of the correct length");
- } else {
- return key;
- }
- }
-
- private static String getKeyFromKeyFileAndPrune(List<String> parsedArgs) {
- String key = null;
- LOGGER.debug("The bootstrap process provided the {} flag",
KEY_FILE_FLAG);
- int i = parsedArgs.indexOf(KEY_FILE_FLAG);
- if (parsedArgs.size() <= i + 1) {
- LOGGER.error("The bootstrap process passed the {} flag without a
filename", KEY_FILE_FLAG);
- throw new IllegalArgumentException("The bootstrap process provided
the " + KEY_FILE_FLAG + " flag but no key");
- }
- try {
- String passwordfilePath = parsedArgs.get(i + 1);
- // Slurp in the contents of the file:
- byte[] encoded = Files.readAllBytes(Paths.get(passwordfilePath));
- key = new String(encoded, StandardCharsets.UTF_8);
- if (0 == key.length())
- throw new IllegalArgumentException("Key in keyfile " +
passwordfilePath + " yielded an empty key");
-
- LOGGER.debug("Overwriting temporary bootstrap key file [{}]",
passwordfilePath);
-
- // Overwrite the contents of the file (to avoid littering file
system
- // unlinked with key material):
- File passwordFile = new File(passwordfilePath);
- FileWriter overwriter = new FileWriter(passwordFile, false);
-
- // Construe a random pad:
- Random random = new Random();
- StringBuffer sb = new StringBuffer();
- // Note on correctness: this pad is longer, but equally sufficient.
- while (sb.length() < encoded.length) {
- sb.append(Integer.toHexString(random.nextInt()));
- }
- String pad = sb.toString();
- overwriter.write(pad);
- overwriter.close();
-
- LOGGER.debug("Removing temporary bootstrap key file [{}]",
passwordfilePath);
- passwordFile.delete();
-
- } catch (IOException e) {
- LOGGER.error("Caught IOException while retrieving the {} -passed
keyfile; aborting", KEY_FILE_FLAG, e);
- System.exit(1);
- }
-
- return key;
- }
-
- private static List<String> parseArgs(String[] args) {
- List<String> parsedArgs = new ArrayList<>(Arrays.asList(args));
- for (int i = 0; i < parsedArgs.size(); i++) {
- if (parsedArgs.get(i).startsWith(KEY_FILE_FLAG + " ")) {
- String[] split = parsedArgs.get(i).split(" ", 2);
- parsedArgs.set(i, split[0]);
- parsedArgs.add(i + 1, split[1]);
- break;
- }
- }
- return parsedArgs;
- }
-
- private static String formatHexKey(String input) {
- if (input == null || input.trim().isEmpty()) {
- return "";
- }
- return input.replaceAll("[^0-9a-fA-F]", "").toLowerCase();
- }
-
- private static boolean isHexKeyValid(String key) {
- if (key == null || key.trim().isEmpty()) {
- return false;
- }
- // Key length is in "nibbles" (i.e. one hex char = 4 bits)
- return Arrays.asList(128, 196, 256).contains(key.length() * 4) &&
key.matches("^[0-9a-fA-F]*$");
- }
}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/StatelessNiFi.java
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/StatelessNiFi.java
deleted file mode 100644
index c56e3f37be..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/StatelessNiFi.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * 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;
-
-import org.apache.nifi.nar.NarUnpacker;
-import org.apache.nifi.nar.NarUnpackMode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.concurrent.TimeUnit;
-
-public class StatelessNiFi {
- private static final Logger logger =
LoggerFactory.getLogger(StatelessNiFi.class);
-
- public static final String PROGRAM_CLASS_NAME =
"org.apache.nifi.stateless.runtimes.Program";
-
- public static final String EXTRACT_NARS = "ExtractNars";
-
- public static void main(final String[] args) throws IOException,
ClassNotFoundException, NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
-
- String nifi_home = System.getenv("NIFI_HOME");
- if (nifi_home == null || nifi_home.equals("")) {
- nifi_home = ".";
- }
-
- final File libDir = new File(nifi_home + "/lib");
- final File narWorkingDirectory = new File(nifi_home +
"/work/stateless-nars");
-
- if (args.length >= 1 && args[0].equals(EXTRACT_NARS)) {
- if (!libDir.exists()) {
- System.out.println("Specified lib directory <" + libDir + ">
does not exist");
- return;
- }
-
- final File[] narFiles = libDir.listFiles(file ->
file.getName().endsWith(".nar"));
- if (narFiles == null) {
- System.out.println("Could not obtain listing of lib directory
<" + libDir + ">");
- return;
- }
-
- if (!narWorkingDirectory.exists() &&
!narWorkingDirectory.mkdirs()) {
- throw new IOException("Could not create NAR working directory
<" + narWorkingDirectory + ">");
- }
-
- logger.info("Unpacking {} NARs", narFiles.length);
- final long startUnpack = System.nanoTime();
- for (final File narFile : narFiles) {
- NarUnpacker.unpackNar(narFile, narWorkingDirectory, false,
NarUnpackMode.UNPACK_TO_UBER_JAR);
- }
-
- final long millis =
TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startUnpack);
- logger.info("Finished unpacking {} NARs in {} millis",
narFiles.length, millis);
-
- System.exit(0);
- }
-
- File frameworkWorkingDirectory;
- try {
- frameworkWorkingDirectory =
Objects.requireNonNull(narWorkingDirectory.listFiles(file ->
file.getName().startsWith("nifi-framework")))[0];
- } catch (Exception ex) {
- throw new FileNotFoundException("Could not find core stateless
dependencies in the working directory <" + narWorkingDirectory + ">");
- }
-
- final File bundledDependenciesDir = new
File(frameworkWorkingDirectory, NarUnpacker.BUNDLED_DEPENDENCIES_DIRECTORY);
- final File[] jarFiles = bundledDependenciesDir.listFiles();
- if (jarFiles == null) {
- throw new IOException("Could not obtain listing of NiFi-Framework
NAR's bundled dependencies in working directory <" + bundledDependenciesDir +
">");
- }
- final URL[] jarUrls = toURLs(jarFiles);
-
-
- final ClassLoader rootClassLoader =
Thread.currentThread().getContextClassLoader();
- final URLClassLoader frameworkClassLoader = new
URLClassLoader(jarUrls, rootClassLoader);
- Thread.currentThread().setContextClassLoader(frameworkClassLoader);
-
- final Class<?> programClass = Class.forName(PROGRAM_CLASS_NAME, true,
frameworkClassLoader);
- final Method launchMethod = programClass.getMethod("launch",
String[].class, ClassLoader.class, File.class);
- launchMethod.setAccessible(true);
- launchMethod.invoke(null, args, rootClassLoader, narWorkingDirectory);
- }
-
- private static URL[] toURLs(final File[] files) throws
MalformedURLException {
- final List<URL> urls = new ArrayList<>();
- for (final File file : files) {
- urls.add(file.toURI().toURL());
- }
-
- return urls.toArray(new URL[0]);
- }
-}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/headless/FlowEnrichmentException.java
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/headless/FlowEnrichmentException.java
deleted file mode 100644
index acbe91b913..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/headless/FlowEnrichmentException.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.headless;
-
-public class FlowEnrichmentException extends Exception {
- public FlowEnrichmentException() {
- super();
- }
-
- public FlowEnrichmentException(String message) {
- super(message);
- }
-
- public FlowEnrichmentException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public FlowEnrichmentException(Throwable cause) {
- super(cause);
- }
-
- protected FlowEnrichmentException(String message, Throwable cause, boolean
enableSuppression, boolean writableStackTrace) {
- super(message, cause, enableSuppression, writableStackTrace);
- }
-}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/java/org/apache/nifi/ListAppender.java
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/java/org/apache/nifi/ListAppender.java
deleted file mode 100644
index f27f935af4..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/java/org/apache/nifi/ListAppender.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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;
-
-import ch.qos.logback.classic.spi.LoggingEvent;
-import ch.qos.logback.core.AppenderBase;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class ListAppender extends AppenderBase<LoggingEvent> {
- private static final List<LoggingEvent> LOGGING_EVENTS =
Collections.synchronizedList(new ArrayList<>());
-
- public static List<LoggingEvent> getLoggingEvents() {
- return LOGGING_EVENTS;
- }
-
- public static void clear() {
- LOGGING_EVENTS.clear();
- }
-
- @Override
- protected void append(final LoggingEvent loggingEvent) {
- LOGGING_EVENTS.add(loggingEvent);
- }
-}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/java/org/apache/nifi/NiFiTest.java
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/java/org/apache/nifi/NiFiTest.java
deleted file mode 100644
index 647f6e1406..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/java/org/apache/nifi/NiFiTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * 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;
-
-import ch.qos.logback.classic.spi.LoggingEvent;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.nifi.util.NiFiProperties;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Optional;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class NiFiTest {
- private static final String[] ARGUMENTS = new String[]{};
-
- private static final String KEY_ARGUMENT = "-K";
-
- private static final String[] FILE_NOT_SPECIFIED_ARGUMENTS = new
String[]{KEY_ARGUMENT};
-
- private static final String FAILURE_TO_LAUNCH = "Failure to launch NiFi";
-
- private static final String PROPERTIES_LOADED = "Application Properties
loaded";
-
- private static final String PROPERTIES_PATH =
"/NiFiProperties/conf/nifi.properties";
-
- private static final String ENCRYPTED_PROPERTIES_PATH =
"/NiFiProperties/conf/encrypted.nifi.properties";
-
- private static final String ROOT_KEY = StringUtils.repeat("0", 64);
-
- @BeforeEach
- public void setAppender() {
- ListAppender.clear();
- }
-
- @AfterEach
- public void clearPropertiesFilePath() {
- System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH,
StringUtils.EMPTY);
- }
-
- @Test
- public void testMainBootstrapKeyFileNotSpecified() {
- setPropertiesFilePath(PROPERTIES_PATH);
-
- NiFi.main(FILE_NOT_SPECIFIED_ARGUMENTS);
-
- assertFailureToLaunch();
- }
-
- @Test
- public void testMainBootstrapKeyNotSpecified() {
- setPropertiesFilePath(PROPERTIES_PATH);
-
- NiFi.main(ARGUMENTS);
-
- assertFailureToLaunch();
- }
-
- @Test
- public void testMainEncryptedNiFiProperties() throws IOException {
- final File rootKeyFile =
File.createTempFile(getClass().getSimpleName(), ".root.key");
- rootKeyFile.deleteOnExit();
- try (final PrintWriter writer = new PrintWriter(new
FileWriter(rootKeyFile))) {
- writer.println(ROOT_KEY);
- }
-
- setPropertiesFilePath(ENCRYPTED_PROPERTIES_PATH);
-
- NiFi.main(new String[]{KEY_ARGUMENT, rootKeyFile.getAbsolutePath()});
-
- assertApplicationPropertiesLoaded();
- assertFailureToLaunch();
- }
-
- private void assertApplicationPropertiesLoaded() {
- final Optional<LoggingEvent> event =
ListAppender.getLoggingEvents().stream().filter(
- loggingEvent ->
loggingEvent.getMessage().startsWith(PROPERTIES_LOADED)
- ).findFirst();
- assertTrue(event.isPresent(), "Properties loaded log not found");
- }
-
- private void assertFailureToLaunch() {
- final Optional<LoggingEvent> event =
ListAppender.getLoggingEvents().stream().filter(
- loggingEvent ->
loggingEvent.getMessage().startsWith(FAILURE_TO_LAUNCH)
- ).findFirst();
- assertTrue(event.isPresent(), "Failure log not found");
- }
-
- private void setPropertiesFilePath(final String relativePath) {
- System.setProperty(NiFiProperties.PROPERTIES_FILE_PATH,
getResourcesPath(relativePath));
- }
-
- private String getResourcesPath(final String relativePath) {
- return getClass().getResource(relativePath).getPath();
- }
-}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/bootstrap.conf
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/bootstrap.conf
deleted file mode 100644
index 7a3a892903..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/bootstrap.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-# 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.
-
-
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/encrypted.nifi.properties
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/encrypted.nifi.properties
deleted file mode 100644
index e18d92462b..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/encrypted.nifi.properties
+++ /dev/null
@@ -1,183 +0,0 @@
-# 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.
-
-# Core Properties #
-nifi.flow.configuration.file=./target/conf/flow.json.gz
-nifi.flow.configuration.archive.enabled=true
-nifi.flow.configuration.archive.dir=./target/conf/archive/
-nifi.flow.configuration.archive.max.time=30 days
-nifi.flow.configuration.archive.max.storage=500 MB
-nifi.flowcontroller.autoResumeState=true
-nifi.flowcontroller.graceful.shutdown.period=10 sec
-nifi.flowservice.writedelay.interval=500 ms
-nifi.administrative.yield.duration=30 sec
-# If a component has no work to do (is "bored"), how long should we wait
before checking again for work?
-nifi.bored.yield.duration=10 millis
-
-nifi.authorizer.configuration.file=./target/conf/authorizers.xml
-nifi.login.identity.provider.configuration.file=./target/conf/login-identity-providers.xml
-nifi.ui.banner.text=dXwnu9mLyPETJrq1||n9e5dk5+HSTBCGOA/Sy6VYzwPw3baeRNvglalA1Pr1PcToyc4/qT6md24YOP4xVz14jd
-nifi.ui.banner.text.protected=aes/gcm/256
-nifi.nar.library.directory=./target/lib
-nifi.nar.working.directory=./target/work/nar/
-nifi.documentation.working.directory=./target/work/docs/components
-
-####################
-# State Management #
-####################
-nifi.state.management.configuration.file=./target/conf/state-management.xml
-# The ID of the local state provider
-nifi.state.management.provider.local=local-provider
-# The ID of the cluster-wide state provider. This will be ignored if NiFi is
not clustered but must be populated if running in a cluster.
-nifi.state.management.provider.cluster=zk-provider
-# Specifies whether or not this instance of NiFi should run an embedded
ZooKeeper server
-nifi.state.management.embedded.zookeeper.start=false
-# Properties file that provides the ZooKeeper properties to use if
<nifi.state.management.embedded.zookeeper.start> is set to true
-nifi.state.management.embedded.zookeeper.properties=./target/conf/zookeeper.properties
-
-
-# Database Settings
-nifi.database.directory=./target/database_repository
-
-# FlowFile Repository
-nifi.flowfile.repository.implementation=org.apache.nifi.controller.repository.WriteAheadFlowFileRepository
-nifi.flowfile.repository.directory=./target/flowfile_repository
-nifi.flowfile.repository.partitions=256
-nifi.flowfile.repository.checkpoint.interval=2 mins
-nifi.flowfile.repository.always.sync=false
-
-nifi.swap.manager.implementation=org.apache.nifi.controller.FileSystemSwapManager
-nifi.queue.swap.threshold=20000
-nifi.swap.in.period=5 sec
-nifi.swap.in.threads=1
-nifi.swap.out.period=5 sec
-nifi.swap.out.threads=4
-
-# Content Repository
-nifi.content.repository.implementation=org.apache.nifi.controller.repository.FileSystemRepository
-nifi.content.claim.max.appendable.size=10 MB
-nifi.content.claim.max.flow.files=100
-nifi.content.repository.directory.default=./target/content_repository
-nifi.content.repository.archive.max.retention.period=12 hours
-nifi.content.repository.archive.max.usage.percentage=50%
-nifi.content.repository.archive.enabled=true
-nifi.content.repository.always.sync=false
-nifi.content.viewer.url=/nifi-content-viewer/
-
-# Provenance Repository Properties
-nifi.provenance.repository.implementation=org.apache.nifi.provenance.WriteAheadProvenanceRepository
-
-# Persistent Provenance Repository Properties
-nifi.provenance.repository.directory.default=./target/provenance_repository
-nifi.provenance.repository.max.storage.time=24 hours
-nifi.provenance.repository.max.storage.size=1 GB
-nifi.provenance.repository.rollover.time=30 secs
-nifi.provenance.repository.rollover.size=100 MB
-nifi.provenance.repository.query.threads=2
-nifi.provenance.repository.index.threads=1
-nifi.provenance.repository.compress.on.rollover=true
-nifi.provenance.repository.always.sync=false
-nifi.provenance.repository.journal.count=16
-# Comma-separated list of fields. Fields that are not indexed will not be
searchable. Valid fields are:
-# EventType, FlowFileUUID, Filename, TransitURI, ProcessorID,
AlternateIdentifierURI, Relationship, Details
-nifi.provenance.repository.indexed.fields=EventType, FlowFileUUID, Filename,
ProcessorID, Relationship
-# FlowFile Attributes that should be indexed and made searchable. Some
examples to consider are filename, uuid, mime.type
-nifi.provenance.repository.indexed.attributes=
-# Large values for the shard size will result in more Java heap usage when
searching the Provenance Repository
-# but should provide better performance
-nifi.provenance.repository.index.shard.size=500 MB
-# Indicates the maximum length that a FlowFile attribute can be when
retrieving a Provenance Event from
-# the repository. If the length of any attribute exceeds this value, it will
be truncated when the event is retrieved.
-nifi.provenance.repository.max.attribute.length=65536
-
-# Volatile Provenance Respository Properties
-nifi.provenance.repository.buffer.size=100000
-
-# Component Status Repository
-nifi.components.status.repository.implementation=org.apache.nifi.controller.status.history.VolatileComponentStatusRepository
-nifi.components.status.repository.buffer.size=1440
-nifi.components.status.snapshot.frequency=1 min
-
-# Site to Site properties
-nifi.remote.input.host=
-nifi.remote.input.secure=false
-nifi.remote.input.socket.port=
-nifi.remote.input.http.enabled=true
-nifi.remote.input.http.transaction.ttl=30 sec
-
-# web properties #
-nifi.web.war.directory=./target/lib
-nifi.web.http.host=
-nifi.web.http.port=8080
-nifi.web.https.host=
-nifi.web.https.port=
-nifi.web.jetty.working.directory=./target/work/jetty
-nifi.web.jetty.threads=200
-
-# security properties #
-nifi.sensitive.props.key=dQU402Mz4J+t+e18||6+ictR0Nssq3/rR/d8fq5CFAKmpakr9jCyPIJYxG7n6D86gxsu2TRp4M48ugUw==
-nifi.sensitive.props.key.protected=aes/gcm/256
-nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
-nifi.sensitive.props.additional.keys=nifi.ui.banner.text
-
-nifi.security.keystore=/path/to/keystore.jks
-nifi.security.keystoreType=JKS
-nifi.security.keystorePasswd=Q8T3wv+Xl2ie98GV||qsuY9wa/Rt27cqFXs8ebX25E1iSbFAEFcD0cjCwrl3Tw6HghQjBIaCzQ
-nifi.security.keystorePasswd.protected=aes/gcm/256
-nifi.security.keyPasswd=1S0XmoiAr379B8rg||PPZzjdw9BAJSon9g4xm9uscFhCCyk734FTjXtRnBXUy819zsoQ==
-nifi.security.keyPasswd.protected=aes/gcm/256
-nifi.security.truststore=
-nifi.security.truststoreType=
-nifi.security.truststorePasswd=
-nifi.security.user.authorizer=file-provider
-nifi.security.user.login.identity.provider=
-nifi.security.ocsp.responder.url=
-nifi.security.ocsp.responder.certificate=
-
-# Identity Mapping Properties #
-# These properties allow normalizing user identities such that identities
coming from different identity providers
-# (certificates, LDAP, Kerberos) can be treated the same internally in NiFi.
The following example demonstrates normalizing
-# DNs from certificates and principals from Kerberos into a common identity
string:
-#
-# nifi.security.identity.mapping.pattern.dn=^CN=(.*?), OU=(.*?), O=(.*?),
L=(.*?), ST=(.*?), C=(.*?)$
-# nifi.security.identity.mapping.value.dn=$1@$2
-# nifi.security.identity.mapping.pattern.kerb=^(.*?)/instance@(.*?)$
-# nifi.security.identity.mapping.value.kerb=$1@$2
-
-# cluster common properties (all nodes must have same values) #
-nifi.cluster.protocol.heartbeat.interval=5 sec
-nifi.cluster.protocol.is.secure=false
-
-# cluster node properties (only configure for cluster nodes) #
-nifi.cluster.is.node=false
-nifi.cluster.node.address=
-nifi.cluster.node.protocol.port=
-nifi.cluster.node.protocol.threads=10
-nifi.cluster.node.event.history.size=25
-nifi.cluster.node.connection.timeout=5 sec
-nifi.cluster.node.read.timeout=5 sec
-nifi.cluster.firewall.file=
-
-# zookeeper properties, used for cluster management #
-nifi.zookeeper.connect.string=
-nifi.zookeeper.connect.timeout=3 secs
-nifi.zookeeper.session.timeout=3 secs
-nifi.zookeeper.root.node=/nifi
-
-# kerberos #
-nifi.kerberos.krb5.file=
-nifi.kerberos.service.principal=
-nifi.kerberos.keytab.location=
-nifi.kerberos.authentication.expiration=12 hours
\ No newline at end of file
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/nifi.properties
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/nifi.properties
deleted file mode 100644
index d4aa9008a4..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/nifi.properties
+++ /dev/null
@@ -1,173 +0,0 @@
-# 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.
-
-# Core Properties #
-nifi.flow.configuration.file=./target/conf/flow.json.gz
-nifi.flow.configuration.archive.enabled=true
-nifi.flow.configuration.archive.dir=./target/conf/archive/
-nifi.flow.configuration.archive.max.time=30 days
-nifi.flow.configuration.archive.max.storage=500 MB
-nifi.flowcontroller.autoResumeState=true
-nifi.flowcontroller.graceful.shutdown.period=10 sec
-nifi.flowservice.writedelay.interval=500 ms
-nifi.administrative.yield.duration=30 sec
-# If a component has no work to do (is "bored"), how long should we wait
before checking again for work?
-nifi.bored.yield.duration=10 millis
-
-nifi.authorizer.configuration.file=./target/conf/authorizers.xml
-nifi.login.identity.provider.configuration.file=./target/conf/login-identity-providers.xml
-nifi.nar.library.directory=./target/lib
-nifi.nar.working.directory=./target/work/nar/
-nifi.documentation.working.directory=./target/work/docs/components
-
-####################
-# State Management #
-####################
-nifi.state.management.configuration.file=./target/conf/state-management.xml
-# The ID of the local state provider
-nifi.state.management.provider.local=local-provider
-# The ID of the cluster-wide state provider. This will be ignored if NiFi is
not clustered but must be populated if running in a cluster.
-nifi.state.management.provider.cluster=zk-provider
-# Specifies whether or not this instance of NiFi should run an embedded
ZooKeeper server
-nifi.state.management.embedded.zookeeper.start=false
-# Properties file that provides the ZooKeeper properties to use if
<nifi.state.management.embedded.zookeeper.start> is set to true
-nifi.state.management.embedded.zookeeper.properties=./target/conf/zookeeper.properties
-
-
-# Database Settings
-nifi.database.directory=./target/database_repository
-
-# FlowFile Repository
-nifi.flowfile.repository.implementation=org.apache.nifi.controller.repository.WriteAheadFlowFileRepository
-nifi.flowfile.repository.directory=./target/flowfile_repository
-nifi.flowfile.repository.partitions=256
-nifi.flowfile.repository.checkpoint.interval=2 mins
-nifi.flowfile.repository.always.sync=false
-
-nifi.swap.manager.implementation=org.apache.nifi.controller.FileSystemSwapManager
-nifi.queue.swap.threshold=20000
-nifi.swap.in.period=5 sec
-nifi.swap.in.threads=1
-nifi.swap.out.period=5 sec
-nifi.swap.out.threads=4
-
-# Content Repository
-nifi.content.repository.implementation=org.apache.nifi.controller.repository.FileSystemRepository
-nifi.content.claim.max.appendable.size=10 MB
-nifi.content.claim.max.flow.files=100
-nifi.content.repository.directory.default=./target/content_repository
-nifi.content.repository.archive.max.retention.period=12 hours
-nifi.content.repository.archive.max.usage.percentage=50%
-nifi.content.repository.archive.enabled=true
-nifi.content.repository.always.sync=false
-nifi.content.viewer.url=/nifi-content-viewer/
-
-# Provenance Repository Properties
-nifi.provenance.repository.implementation=org.apache.nifi.provenance.WriteAheadProvenanceRepository
-
-# Persistent Provenance Repository Properties
-nifi.provenance.repository.directory.default=./target/provenance_repository
-nifi.provenance.repository.max.storage.time=24 hours
-nifi.provenance.repository.max.storage.size=1 GB
-nifi.provenance.repository.rollover.time=30 secs
-nifi.provenance.repository.rollover.size=100 MB
-nifi.provenance.repository.query.threads=2
-nifi.provenance.repository.index.threads=1
-nifi.provenance.repository.compress.on.rollover=true
-nifi.provenance.repository.always.sync=false
-nifi.provenance.repository.journal.count=16
-# Comma-separated list of fields. Fields that are not indexed will not be
searchable. Valid fields are:
-# EventType, FlowFileUUID, Filename, TransitURI, ProcessorID,
AlternateIdentifierURI, Relationship, Details
-nifi.provenance.repository.indexed.fields=EventType, FlowFileUUID, Filename,
ProcessorID, Relationship
-# FlowFile Attributes that should be indexed and made searchable. Some
examples to consider are filename, uuid, mime.type
-nifi.provenance.repository.indexed.attributes=
-# Large values for the shard size will result in more Java heap usage when
searching the Provenance Repository
-# but should provide better performance
-nifi.provenance.repository.index.shard.size=500 MB
-# Indicates the maximum length that a FlowFile attribute can be when
retrieving a Provenance Event from
-# the repository. If the length of any attribute exceeds this value, it will
be truncated when the event is retrieved.
-nifi.provenance.repository.max.attribute.length=65536
-
-# Volatile Provenance Respository Properties
-nifi.provenance.repository.buffer.size=100000
-
-# Component Status Repository
-nifi.components.status.repository.implementation=org.apache.nifi.controller.status.history.VolatileComponentStatusRepository
-nifi.components.status.repository.buffer.size=1440
-nifi.components.status.snapshot.frequency=1 min
-
-# Site to Site properties
-nifi.remote.input.host=
-nifi.remote.input.secure=false
-nifi.remote.input.socket.port=
-nifi.remote.input.http.enabled=true
-nifi.remote.input.http.transaction.ttl=30 sec
-
-# web properties #
-nifi.web.war.directory=./target/lib
-nifi.web.http.host=
-nifi.web.http.port=8080
-nifi.web.https.host=
-nifi.web.https.port=
-nifi.web.jetty.working.directory=./target/work/jetty
-nifi.web.jetty.threads=200
-
-nifi.security.keystore=
-nifi.security.keystoreType=
-nifi.security.keystorePasswd=
-nifi.security.keyPasswd=
-nifi.security.truststore=
-nifi.security.truststoreType=
-nifi.security.truststorePasswd=
-nifi.security.user.authorizer=file-provider
-nifi.security.user.login.identity.provider=
-nifi.security.ocsp.responder.url=
-nifi.security.ocsp.responder.certificate=
-
-# Identity Mapping Properties #
-# These properties allow normalizing user identities such that identities
coming from different identity providers
-# (certificates, LDAP, Kerberos) can be treated the same internally in NiFi.
The following example demonstrates normalizing
-# DNs from certificates and principals from Kerberos into a common identity
string:
-#
-# nifi.security.identity.mapping.pattern.dn=^CN=(.*?), OU=(.*?), O=(.*?),
L=(.*?), ST=(.*?), C=(.*?)$
-# nifi.security.identity.mapping.value.dn=$1@$2
-# nifi.security.identity.mapping.pattern.kerb=^(.*?)/instance@(.*?)$
-# nifi.security.identity.mapping.value.kerb=$1@$2
-
-# cluster common properties (all nodes must have same values) #
-nifi.cluster.protocol.heartbeat.interval=5 sec
-nifi.cluster.protocol.is.secure=false
-
-# cluster node properties (only configure for cluster nodes) #
-nifi.cluster.is.node=false
-nifi.cluster.node.address=
-nifi.cluster.node.protocol.port=
-nifi.cluster.node.protocol.threads=10
-nifi.cluster.node.event.history.size=25
-nifi.cluster.node.connection.timeout=5 sec
-nifi.cluster.node.read.timeout=5 sec
-nifi.cluster.firewall.file=
-
-# zookeeper properties, used for cluster management #
-nifi.zookeeper.connect.string=
-nifi.zookeeper.connect.timeout=3 secs
-nifi.zookeeper.session.timeout=3 secs
-nifi.zookeeper.root.node=/nifi
-
-# kerberos #
-nifi.kerberos.krb5.file=
-nifi.kerberos.service.principal=
-nifi.kerberos.keytab.location=
-nifi.kerberos.authentication.expiration=12 hours
\ No newline at end of file
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/logback-test.xml
b/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/logback-test.xml
deleted file mode 100644
index 7a7385ccd6..0000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<configuration>
- <appender name="TEST" class="org.apache.nifi.ListAppender">
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <pattern>%-4r [%t] %-5p %c - %m%n</pattern>
- </encoder>
- </appender>
-
- <logger name="org.apache.nifi.processor" level="DEBUG"/>
- <root level="DEBUG">
- <appender-ref ref="TEST"/>
- </root>
-</configuration>