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>

Reply via email to