Why was org.apache.common.lang3 StringEscapeUtils deprecated?

JavaApache CommonsApache Commons-LangApache Commons-Lang3

Java Problem Overview


I couldn't find any explanation why StringEscapeUtils was deprecated from Apache Lang3 v3.7.

https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringEscapeUtils.html

What are we supposed to use now for HTML escaping/unescaping

Java Solutions


Solution 1 - Java

The class was moved from package

> org.apache.commons.lang3

to

> org.apache.commons.text

You can replace the deprecated library easily:

In your build.gradle:

implementation 'org.apache.commons:commons-text:1.9'

And in your class using StringEscapeUtils make sure you import the correct class:

import org.apache.commons.text.StringEscapeUtils;

1.9 is currently the newest version (last checked February 24th 2021) but you can check the versions at maven: https://mvnrepository.com/artifact/org.apache.commons/commons-text

Solution 2 - Java

Per the deprecation listing, it was moved to a new project -- commons-text

Solution 3 - Java

From Commons-lang 3.6 release notes:

> The Apache Commons Community has recently set up the Commons Text component > as a home for algorithms working on strings. For this reason most of the string > focused functionality in Commons Lang has been deprecated and moved to > Commons Text. This includes: > > o All classes in the org.apache.commons.lang3.text and the > org.apache.commons.lang3.text.translate packages > o org.apache.commons.lang3.StringEscapeUtils > o org.apache.commons.lang3.RandomStringUtils > o The methods org.apache.commons.lang3.StringUtils.getJaroWinklerDistance and > org.apache.commons.lang3.StringUtils.getLevenshteinDistance > > For more information see the Commons Text website: > > http://commons.apache.org/text

Solution 4 - Java

Do below steps

  • Add below dependency to your pom.xml (if using maven)
    <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-text</artifactId>
       <version>1.4</version>
    <dependency>

  • Import correct package as below
    import org.apache.commons.text.StringEscapeUtils;

  • There is no such method unescapeHtml() in this class anymore, instead its two variations are available unescapeHtml3() and unescapeHtml4()

  • Use unescapeHtml3() to unescape Html 3.0 characters

  • Use unescapeHtml4() to unescape Html 4.0 characters

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiongene b.View Question on Stackoverflow
Solution 1 - JavaBjörn KechelView Answer on Stackoverflow
Solution 2 - JavaJamie BisottiView Answer on Stackoverflow
Solution 3 - Javafn.View Answer on Stackoverflow
Solution 4 - Javasapan prajapatiView Answer on Stackoverflow