This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/main by this push:
new 3871c4cd59 Remove `jvmrunargs` lookup (#3892)
3871c4cd59 is described below
commit 3871c4cd59ac48f9abca1725bd45087a13ae782c
Author: Ramanathan <[email protected]>
AuthorDate: Fri Aug 22 01:59:01 2025 +0530
Remove `jvmrunargs` lookup (#3892)
Ports #3874 to `main`.
# Conflicts:
#
log4j-core-test/src/test/java/org/apache/logging/log4j/core/lookup/MainInputArgumentsJmxLookupTest.java
#
log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup.java
#
log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/package-info.java
# src/changelog/.3.x.x/3874_remove_jvmrunargs_lookup.xml
---
.../lookup/MainInputArgumentsJmxLookupTest.java | 52 ---------------
.../logging/log4j/core/lookup/Interpolator.java | 7 ---
.../lookup/JmxRuntimeInputArgumentsLookup.java | 73 ----------------------
.../.3.x.x/3874_remove_jvmrunargs_lookup.xml | 13 ++++
4 files changed, 13 insertions(+), 132 deletions(-)
diff --git
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/lookup/MainInputArgumentsJmxLookupTest.java
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/lookup/MainInputArgumentsJmxLookupTest.java
deleted file mode 100644
index 13f504b705..0000000000
---
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/lookup/MainInputArgumentsJmxLookupTest.java
+++ /dev/null
@@ -1,52 +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.logging.log4j.core.lookup;
-
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import java.util.Map;
-
-/**
- * Tests {@link JmxRuntimeInputArgumentsLookup} from the command line, not a
JUnit test.
- *
- * From an IDE or CLI: --file foo.txt
- *
- * @since 2.1
- */
-public class MainInputArgumentsJmxLookupTest {
-
- public static void main(final String[] args) {
- new MainInputArgumentsJmxLookupTest().callFromMain();
- }
-
- public void callFromMain() {
- final JmxRuntimeInputArgumentsLookup lookup =
JmxRuntimeInputArgumentsLookup.getInstance();
- String result1 = null;
- assertNull(result1);
- String result = null;
- final Map<String, String> map = lookup.getMap();
- result = map == null ? null : map.get("X");
- assertNull(result);
- // Eclipse adds -Dfile.encoding=Cp1252
- // assertEquals("--file", lookup.lookup("0"));
- // assertEquals("foo.txt", lookup.lookup("1"));
- //
- // JMX does not include the main arguments.
- // assertEquals("foo.txt", lookup.lookup("--file"));
- // assertEquals(null, lookup.lookup("foo.txt"));
- }
-}
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
index 2e2c7393dc..ccfb8f20bc 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java
@@ -47,8 +47,6 @@ public class Interpolator extends
AbstractConfigurationAwareLookup implements Lo
private static final String LOOKUP_KEY_JNDI = "jndi";
- private static final String LOOKUP_KEY_JVMRUNARGS = "jvmrunargs";
-
private static final Logger LOGGER = StatusLogger.getLogger();
private final Map<String, Supplier<? extends StrLookup>> strLookups = new
ConcurrentHashMap<>();
@@ -79,11 +77,6 @@ public class Interpolator extends
AbstractConfigurationAwareLookup implements Lo
+ " JNDI string lookups will not be available,
continuing configuration. Ignoring "
+ t);
break;
- case LOOKUP_KEY_JVMRUNARGS:
- // java.lang.VerifyError:
org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup
- LOGGER.warn("JMX runtime input lookup class is not available
because this JRE does not support JMX. "
- + "JMX lookups will not be available, continuing
configuration. Ignoring " + t);
- break;
case LOOKUP_KEY_WEB:
LOGGER.info(
"Log4j appears to be running in a Servlet environment,
but there's no `log4j-jakarta-web` module "
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup.java
deleted file mode 100644
index d14499f1dd..0000000000
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup.java
+++ /dev/null
@@ -1,73 +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.logging.log4j.core.lookup;
-
-import java.lang.management.ManagementFactory;
-import java.util.Map;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.LogEvent;
-import org.apache.logging.log4j.core.util.internal.SystemUtils;
-import org.apache.logging.log4j.plugins.Plugin;
-import org.apache.logging.log4j.plugins.PluginFactory;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Lazy;
-
-/**
- * Maps JVM input arguments (but not main arguments) using JMX to acquire JVM
arguments.
- *
- * @see java.lang.management.RuntimeMXBean#getInputArguments()
- * @since 2.1
- */
-@Lookup
-@Plugin("jvmrunargs")
-public class JmxRuntimeInputArgumentsLookup extends MapLookup {
-
- private static final Logger LOGGER = StatusLogger.getLogger();
-
- private static final Lazy<JmxRuntimeInputArgumentsLookup> INSTANCE =
Lazy.lazy(() -> {
- return new JmxRuntimeInputArgumentsLookup(getMapFromJmx());
- });
-
- @PluginFactory
- public static JmxRuntimeInputArgumentsLookup getInstance() {
- return INSTANCE.get();
- }
-
- public JmxRuntimeInputArgumentsLookup(final Map<String, String> map) {
- super(map);
- }
-
- @Override
- public String lookup(final LogEvent ignored, final String key) {
- if (key == null) {
- return null;
- }
- final Map<String, String> map = getMap();
- return map == null ? null : map.get(key);
- }
-
- private static Map<String, String> getMapFromJmx() {
- if (!SystemUtils.isOsAndroid()) {
- try {
- return
MapLookup.toMap(ManagementFactory.getRuntimeMXBean().getInputArguments());
- } catch (LinkageError e) {
- LOGGER.warn("Failed to get JMX arguments from JVM.", e);
- }
- }
- return Map.of();
- }
-}
diff --git a/src/changelog/.3.x.x/3874_remove_jvmrunargs_lookup.xml
b/src/changelog/.3.x.x/3874_remove_jvmrunargs_lookup.xml
new file mode 100644
index 0000000000..ef0c2850be
--- /dev/null
+++ b/src/changelog/.3.x.x/3874_remove_jvmrunargs_lookup.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-changelog-0.xsd"
+ type="removed">
+ <issue id="3874"
link="https://github.com/apache/logging-log4j2/pull/3874"/>
+
+ <description format="asciidoc">
+ Remove the `jvmrunargs` lookup.
+ </description>
+</entry>