diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml
index efef1e30e3df6..f836adaf35887 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml
@@ -1072,15 +1072,6 @@
/yarn/conf
-
- The setting that controls whether yarn system metrics is
- published to the Timeline server (version one) or not, by RM.
- This configuration is now deprecated in favor of
- yarn.system-metrics-publisher.enabled.
- yarn.resourcemanager.system-metrics-publisher.enabled
- false
-
-
The setting that controls whether yarn system metrics is
published on the Timeline service or not by RM And NM.
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/conf/TestYarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/conf/TestYarnConfiguration.java
index 3b76d41af795e..c69ed03f6ddf7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/conf/TestYarnConfiguration.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/conf/TestYarnConfiguration.java
@@ -19,13 +19,22 @@
package org.apache.hadoop.yarn.conf;
import java.net.InetSocketAddress;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.TimeUnit;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.commons.lang3.math.NumberUtils;
import org.junit.jupiter.api.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+
import org.apache.hadoop.yarn.webapp.util.WebAppUtils;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotSame;
@@ -266,4 +275,31 @@ void checkRmAmExpiryIntervalSetting() throws Exception {
assertTrue(NumberUtils.isDigits(rmAmExpiryIntervalMS1));
assertEquals(600000, Long.parseLong(rmAmExpiryIntervalMS1));
}
+
+ @Test
+ public void testNoDeprecationsByDefault() throws Exception {
+ // Force initialization to make sure deprecations are recorded for later calls to isDeprecated.
+ new YarnConfiguration();
+
+ // This test directly parses the default XML configuration file to check for deprecated
+ // properties, bypassing normalization logic in the Configuration class that might hide them.
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ List deprecatedProps = new ArrayList<>();
+
+ try (InputStream is = getClass().getResourceAsStream("/yarn-default.xml")) {
+ Document doc = db.parse(is);
+ NodeList props = doc.getElementsByTagName("name");
+ for (int i = 0; i < props.getLength(); ++i) {
+ String prop = props.item(i).getTextContent();
+ if (YarnConfiguration.isDeprecated(prop)) {
+ deprecatedProps.add(prop);
+ }
+ }
+ }
+
+ assertThat(deprecatedProps)
+ .as("By default, deprecated properties should be empty: %s", deprecatedProps)
+ .isEmpty();
+ }
}