Index: richtext/frontend/src/test/java/org/hippoecm/frontend/plugins/richtext/htmlcleaner/HtmlCleanerPluginTest.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- richtext/frontend/src/test/java/org/hippoecm/frontend/plugins/richtext/htmlcleaner/HtmlCleanerPluginTest.java (revision 55353) +++ richtext/frontend/src/test/java/org/hippoecm/frontend/plugins/richtext/htmlcleaner/HtmlCleanerPluginTest.java (revision ) @@ -127,4 +127,15 @@ verify(context); } + + @Test + public void testTransformReservedXMLEntitiesToNumericCharacterRepresentations() throws Exception { + Node cleanerConfig = root.getNode("cleaner.config"); + cleanerConfig.setProperty("reservedCharsToNCR", true); + final HtmlCleanerPlugin htmlCleanerPlugin = new HtmlCleanerPlugin(null, getPluginConfig()); + + String html = htmlCleanerPlugin.clean("foo bar & \" ' < > @"); + log.debug(html); + assertEquals("foo bar & " ' < > @", html); + } } Index: richtext/frontend/src/main/java/org/hippoecm/frontend/plugins/richtext/htmlcleaner/HtmlCleanerPlugin.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- richtext/frontend/src/main/java/org/hippoecm/frontend/plugins/richtext/htmlcleaner/HtmlCleanerPlugin.java (revision 55353) +++ richtext/frontend/src/main/java/org/hippoecm/frontend/plugins/richtext/htmlcleaner/HtmlCleanerPlugin.java (revision ) @@ -53,6 +53,7 @@ private static final String COMPACT = "compact"; private static final String PRETTY = "pretty"; private static final String OMIT_COMMENTS = "omitComments"; + private static final String RESERVED_CHARS_TO_NCR = "reservedCharsToNCR"; private static final String JAVASCRIPT_PROTOCOL = "javascript:"; private static final TextEscaper escaper = new TextEscaper(); @@ -60,13 +61,14 @@ private final String charset; private final String serializer; private final boolean omitComments; + private final boolean transResCharsToNCR; - public HtmlCleanerPlugin(final IPluginContext context, final IPluginConfig config) { super(context, config); charset = config.getString(CHARSET, DEFAULT_CHARSET); serializer = config.getString(SERIALIZER, SIMPLE); omitComments = config.getBoolean(OMIT_COMMENTS); + transResCharsToNCR = config.getBoolean(RESERVED_CHARS_TO_NCR); final IPluginConfig whitelistConfig = config.getPluginConfig(WHITELIST); if (whitelistConfig != null) { for (IPluginConfig elementConfig : whitelistConfig.getPluginConfigSet()) { @@ -145,6 +147,7 @@ properties.setTranslateSpecialEntities(false); properties.setOmitXmlDeclaration(true); properties.setOmitComments(omitComments); + properties.setTransResCharsToNCR(transResCharsToNCR); return cleaner; }