From 25299f8106caf58cf263c8fc5298cc1115fdfd6b Mon Sep 17 00:00:00 2001 From: David Handermann Date: Mon, 29 Jul 2024 13:05:40 -0500 Subject: [PATCH] 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 --- .../nifi/bootstrap/RunStatelessNiFi.java | 56 ------ .../nifi-framework/nifi-runtime/pom.xml | 21 -- .../java/org/apache/nifi/EmbeddedNiFi.java | 64 ------ .../src/main/java/org/apache/nifi/NiFi.java | 175 +---------------- .../java/org/apache/nifi/StatelessNiFi.java | 115 ----------- .../headless/FlowEnrichmentException.java | 39 ---- .../java/org/apache/nifi/ListAppender.java | 41 ---- .../test/java/org/apache/nifi/NiFiTest.java | 116 ----------- .../NiFiProperties/conf/bootstrap.conf | 16 -- .../conf/encrypted.nifi.properties | 183 ------------------ .../NiFiProperties/conf/nifi.properties | 173 ----------------- .../src/test/resources/logback-test.xml | 28 --- 12 files changed, 7 insertions(+), 1020 deletions(-) delete mode 100644 nifi-bootstrap/src/main/java/org/apache/nifi/bootstrap/RunStatelessNiFi.java delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/EmbeddedNiFi.java delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/StatelessNiFi.java delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/main/java/org/apache/nifi/headless/FlowEnrichmentException.java delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/java/org/apache/nifi/ListAppender.java delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/java/org/apache/nifi/NiFiTest.java delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/bootstrap.conf delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/encrypted.nifi.properties delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/NiFiProperties/conf/nifi.properties delete mode 100644 nifi-framework-bundle/nifi-framework/nifi-runtime/src/test/resources/logback-test.xml 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 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 @@ org.apache.nifi nifi-nar-utils - - ch.qos.logback - logback-classic - test - - - ch.qos.logback - logback-core - test - - - org.apache.nifi - nifi-properties-loader - 2.0.0-SNAPSHOT - test - - - org.apache.commons - commons-lang3 - test - 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; - -/** - *

- * Starts an instance of NiFi within the same JVM, which can later properly be shut down. - * Intended to be used for testing purposes.

- * - */ -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 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 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 parseArgs(String[] args) { - List 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 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 - *

- * 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.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 { - private static final List LOGGING_EVENTS = Collections.synchronizedList(new ArrayList<>()); - - public static List 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 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 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 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 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 @@ - - - - - - - %-4r [%t] %-5p %c - %m%n - - - - - - - -