diff --git a/java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java b/java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java index 00c9f9c9a420..392b31f08c70 100644 --- a/java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java +++ b/java/idea-ui/src/com/intellij/platform/templates/RemoteTemplatesFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,7 @@ import com.intellij.openapi.util.JDOMUtil; import com.intellij.platform.ProjectTemplate; import com.intellij.platform.ProjectTemplatesFactory; import com.intellij.util.ArrayUtil; +import com.intellij.util.JdomKt; import com.intellij.util.NullableFunction; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; @@ -60,16 +61,13 @@ public class RemoteTemplatesFactory extends ProjectTemplatesFactory { protected MultiMap compute() { try { return HttpRequests.request(URL + ApplicationInfo.getInstance().getBuild().getProductCode() + "_templates.xml") - .connect(new HttpRequests.RequestProcessor>() { - @Override - public MultiMap process(@NotNull HttpRequests.Request request) throws IOException { - try { - return create(JDOMUtil.load(request.getReader())); - } - catch (JDOMException e) { - LOG.error(e); - return MultiMap.emptyInstance(); - } + .connect(request -> { + try { + return create(JdomKt.loadElement(request.getReader())); + } + catch (JDOMException e) { + LOG.error(e); + return MultiMap.emptyInstance(); } }); } @@ -113,21 +111,18 @@ public class RemoteTemplatesFactory extends ProjectTemplatesFactory { } private static List createGroupTemplates(Element groupElement) { - return ContainerUtil.mapNotNull(groupElement.getChildren(TEMPLATE), new NullableFunction() { - @Override - public ArchivedProjectTemplate fun(final Element element) { - if (!checkRequiredPlugins(element)) { - return null; - } - - final ModuleType moduleType = ModuleTypeManager.getInstance().findByID(element.getChildText("moduleType")); - final String path = element.getChildText("path"); - final String description = element.getChildTextTrim("description"); - String name = element.getChildTextTrim("name"); - RemoteProjectTemplate template = new RemoteProjectTemplate(name, element, moduleType, path, description); - template.populateFromElement(element); - return template; + return ContainerUtil.mapNotNull(groupElement.getChildren(TEMPLATE), (NullableFunction)element -> { + if (!checkRequiredPlugins(element)) { + return null; } + + final ModuleType moduleType = ModuleTypeManager.getInstance().findByID(element.getChildText("moduleType")); + final String path = element.getChildText("path"); + final String description = element.getChildTextTrim("description"); + String name = element.getChildTextTrim("name"); + RemoteProjectTemplate template = new RemoteProjectTemplate(name, element, moduleType, path, description); + template.populateFromElement(element); + return template; }); } @@ -162,12 +157,7 @@ public class RemoteTemplatesFactory extends ProjectTemplatesFactory { @Override public T processStream(@NotNull final StreamProcessor consumer) throws IOException { - return HttpRequests.request(URL + myPath).connect(new HttpRequests.RequestProcessor() { - @Override - public T process(@NotNull HttpRequests.Request request) throws IOException { - return consumeZipStream(consumer, new ZipInputStream(request.getInputStream())); - } - }); + return HttpRequests.request(URL + myPath).connect(request -> consumeZipStream(consumer, new ZipInputStream(request.getInputStream()))); } @Nullable diff --git a/platform/configuration-store-impl/src/SchemeManagerImpl.kt b/platform/configuration-store-impl/src/SchemeManagerImpl.kt index 62f579f34a7e..b70e5b2a1470 100644 --- a/platform/configuration-store-impl/src/SchemeManagerImpl.kt +++ b/platform/configuration-store-impl/src/SchemeManagerImpl.kt @@ -209,7 +209,7 @@ class SchemeManagerImpl(val fileSpec: Stri return } - val element = JDOMUtil.load(URLUtil.openStream(url)) + val element = loadElement(URLUtil.openStream(url)) val scheme = convertor.convert(element) if (scheme is ExternalizableScheme) { val fileName = PathUtilRt.getFileName(url.path) @@ -340,7 +340,7 @@ class SchemeManagerImpl(val fileSpec: Stri private fun loadScheme(fileName: CharSequence, input: InputStream, duringLoad: Boolean): E? { try { - val element = JDOMUtil.load(input) + val element = loadElement(input) @Suppress("DEPRECATED_SYMBOL_WITH_MESSAGE", "UNCHECKED_CAST") val scheme = processor.readScheme(element, duringLoad) ?: return null diff --git a/platform/configuration-store-impl/src/StateMap.kt b/platform/configuration-store-impl/src/StateMap.kt index 0d7a892df6e3..254085ea9bdd 100644 --- a/platform/configuration-store-impl/src/StateMap.kt +++ b/platform/configuration-store-impl/src/StateMap.kt @@ -23,6 +23,7 @@ import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.vfs.CharsetToolkit import com.intellij.util.ArrayUtil import com.intellij.util.SystemProperties +import com.intellij.util.loadElement import gnu.trove.THashMap import org.iq80.snappy.SnappyInputStream import org.iq80.snappy.SnappyOutputStream @@ -66,7 +67,7 @@ fun archiveStateXml(state: Element): BufferExposingByteArrayOutputStream { return byteOut } -private fun unarchiveState(state: ByteArray) = JDOMUtil.load(SnappyInputStream(ByteArrayInputStream(state))) +private fun unarchiveState(state: ByteArray) = loadElement(SnappyInputStream(ByteArrayInputStream(state)).reader()) fun getNewByteIfDiffers(key: String, newState: Any, oldState: ByteArray): ByteArray? { val newBytes: ByteArray diff --git a/platform/configuration-store-impl/src/XmlElementStorage.kt b/platform/configuration-store-impl/src/XmlElementStorage.kt index 9b536c3408e6..aab3a85ca02a 100644 --- a/platform/configuration-store-impl/src/XmlElementStorage.kt +++ b/platform/configuration-store-impl/src/XmlElementStorage.kt @@ -23,6 +23,7 @@ import com.intellij.openapi.diagnostic.debug import com.intellij.openapi.util.JDOMUtil import com.intellij.util.containers.ContainerUtil import com.intellij.util.containers.SmartHashSet +import com.intellij.util.loadElement import gnu.trove.THashMap import org.jdom.Attribute import org.jdom.Element @@ -67,7 +68,7 @@ abstract class XmlElementStorage protected constructor(protected val fileSpec: S protected open fun dataLoadedFromProvider(element: Element?) { } - private fun loadDataFromProvider() = JDOMUtil.load(provider!!.read(fileSpec, roamingType)) + private fun loadDataFromProvider() = provider!!.read(fileSpec, roamingType)?.let { loadElement(it) } private fun loadState(element: Element): StateMap { beforeElementLoaded(element) @@ -75,7 +76,7 @@ abstract class XmlElementStorage protected constructor(protected val fileSpec: S } fun setDefaultState(element: Element) { - element.setName(rootElementName) + element.name = rootElementName storageDataRef.set(loadState(element)) } @@ -213,7 +214,7 @@ fun save(states: StateMap, rootElementName: String, newLiveStates: Map
""".reader())) + defaultTestComponent.loadState(loadElement("""
""")) val stateStore = defaultProject.stateStore as ComponentStoreImpl stateStore.initComponent(defaultTestComponent, true) try { diff --git a/platform/configuration-store-impl/testSrc/DirectoryBasedStorageTest.kt b/platform/configuration-store-impl/testSrc/DirectoryBasedStorageTest.kt index 213d9ea14fa0..2efe41e21ebe 100644 --- a/platform/configuration-store-impl/testSrc/DirectoryBasedStorageTest.kt +++ b/platform/configuration-store-impl/testSrc/DirectoryBasedStorageTest.kt @@ -19,11 +19,11 @@ import com.intellij.idea.Bombed import com.intellij.openapi.components.MainConfigurationStateSplitter import com.intellij.openapi.components.StateStorage import com.intellij.openapi.components.impl.stores.StateStorageBase -import com.intellij.openapi.util.JDOMUtil import com.intellij.testFramework.ProjectRule import com.intellij.testFramework.RuleChain import com.intellij.testFramework.TemporaryDirectory import com.intellij.testFramework.runInEdtAndWait +import com.intellij.util.loadElement import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.hasChildren import org.jdom.Element @@ -40,7 +40,7 @@ private fun StateStorage.ExternalizationSession.save() { private fun StateStorageBase<*>.setStateAndSave(componentName: String, state: String?) { var externalizationSession = startExternalization()!! - externalizationSession.setState(null, componentName, if (state == null) Element("state") else JDOMUtil.load(state.reader())) + externalizationSession.setState(null, componentName, if (state == null) Element("state") else loadElement(state)) externalizationSession.save() } diff --git a/platform/lang-api/src/com/intellij/facet/frameworks/SettingsConnectionService.java b/platform/lang-api/src/com/intellij/facet/frameworks/SettingsConnectionService.java index 03eb24efb92f..b2a79a00d6ea 100644 --- a/platform/lang-api/src/com/intellij/facet/frameworks/SettingsConnectionService.java +++ b/platform/lang-api/src/com/intellij/facet/frameworks/SettingsConnectionService.java @@ -25,7 +25,6 @@ import org.jdom.JDOMException; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.io.IOException; import java.util.Collections; import java.util.Map; @@ -65,25 +64,22 @@ public abstract class SettingsConnectionService { private Map readSettings(final String... attributes) { return HttpRequests.request(mySettingsUrl) .productNameAsUserAgent() - .connect(new HttpRequests.RequestProcessor>() { - @Override - public Map process(@NotNull HttpRequests.Request request) throws IOException { - Map settings = ContainerUtilRt.newLinkedHashMap(); - try { - Element root = JDOMUtil.load(request.getReader()); - for (String s : attributes) { - String attributeValue = root.getAttributeValue(s); - if (StringUtil.isNotEmpty(attributeValue)) { - settings.put(s, attributeValue); - } + .connect(request -> { + Map settings = ContainerUtilRt.newLinkedHashMap(); + try { + Element root = JDOMUtil.load(request.getReader()); + for (String s : attributes) { + String attributeValue = root.getAttributeValue(s); + if (StringUtil.isNotEmpty(attributeValue)) { + settings.put(s, attributeValue); } } - catch (JDOMException e) { - LOG.error(e); - } - return settings; } - }, Collections.emptyMap(), LOG); + catch (JDOMException e) { + LOG.error(e); + } + return settings; + }, Collections.emptyMap(), LOG); } @Nullable diff --git a/platform/lang-impl/src/com/intellij/codeEditor/printing/PageSizes.java b/platform/lang-impl/src/com/intellij/codeEditor/printing/PageSizes.java index 79ee79312105..20fcb126dc12 100644 --- a/platform/lang-impl/src/com/intellij/codeEditor/printing/PageSizes.java +++ b/platform/lang-impl/src/com/intellij/codeEditor/printing/PageSizes.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ package com.intellij.codeEditor.printing; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.util.JDOMUtil; +import com.intellij.util.JdomKt; import com.intellij.util.containers.HashMap; import org.jdom.Element; import org.jetbrains.annotations.NonNls; @@ -98,7 +98,7 @@ class PageSizes { try { //noinspection ConstantConditions - for (Element element : JDOMUtil.load(PageSizes.class.getResourceAsStream(PAGE_SIZES_RESOURCE)).getChildren(ELEMENT_SIZE)) { + for (Element element : JdomKt.loadElement(PageSizes.class.getResourceAsStream(PAGE_SIZES_RESOURCE)).getChildren(ELEMENT_SIZE)) { String name = element.getAttributeValue(ATTRIBUTE_NAME); final String widthStr = element.getAttributeValue(ATTRIBUTE_WIDTH); final String heightStr = element.getAttributeValue(ATTRIBUTE_HEIGHT); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateTree.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateTree.java index 5cb34d3a904e..d4c3809f1b1a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateTree.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/LiveTemplateTree.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,21 +27,16 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.CheckboxTree; import com.intellij.ui.CheckedTreeNode; import com.intellij.ui.TreeSpeedSearch; -import com.intellij.util.Function; +import com.intellij.util.JdomKt; import com.intellij.util.SystemProperties; -import com.intellij.util.containers.Convertor; import org.jdom.Element; -import org.jdom.JDOMException; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.TreePath; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; -import java.io.IOException; -import java.io.StringReader; import java.util.Set; /** @@ -65,22 +60,19 @@ class LiveTemplateTree extends CheckboxTree implements DataProvider, CopyProvide @Override protected void installSpeedSearch() { - new TreeSpeedSearch(this, new Convertor() { - @Override - public String convert(TreePath o) { - Object object = ((DefaultMutableTreeNode)o.getLastPathComponent()).getUserObject(); - if (object instanceof TemplateGroup) { - return ((TemplateGroup)object).getName(); - } - if (object instanceof TemplateImpl) { - TemplateImpl template = (TemplateImpl)object; - return StringUtil.notNullize(template.getGroupName()) + " " + - StringUtil.notNullize(template.getKey()) + " " + - StringUtil.notNullize(template.getDescription()) + " " + - template.getTemplateText(); - } - return ""; + new TreeSpeedSearch(this, o -> { + Object object = ((DefaultMutableTreeNode)o.getLastPathComponent()).getUserObject(); + if (object instanceof TemplateGroup) { + return ((TemplateGroup)object).getName(); } + if (object instanceof TemplateImpl) { + TemplateImpl template = (TemplateImpl)object; + return StringUtil.notNullize(template.getGroupName()) + " " + + StringUtil.notNullize(template.getKey()) + " " + + StringUtil.notNullize(template.getDescription()) + " " + + template.getTemplateText(); + } + return ""; }, true); } @@ -98,15 +90,12 @@ class LiveTemplateTree extends CheckboxTree implements DataProvider, CopyProvide final Set templates = myConfigurable.getSelectedTemplates().keySet(); - CopyPasteManager.getInstance().setContents(new StringSelection(StringUtil.join(templates, new Function() { - @Override - public String fun(TemplateImpl template) { - TemplateContext zeroContext = new TemplateContext(); - for (TemplateContextType type : TemplateContextType.EP_NAME.getExtensions()) { - zeroContext.setEnabled(type, false); - } - return JDOMUtil.writeElement(TemplateSettings.serializeTemplate(template, zeroContext)); + CopyPasteManager.getInstance().setContents(new StringSelection(StringUtil.join(templates, template -> { + TemplateContext zeroContext = new TemplateContext(); + for (TemplateContextType type : TemplateContextType.EP_NAME.getExtensions()) { + zeroContext.setEnabled(type, false); } + return JDOMUtil.writeElement(TemplateSettings.serializeTemplate(template, zeroContext)); }, SystemProperties.getLineSeparator()))); } @@ -143,7 +132,7 @@ class LiveTemplateTree extends CheckboxTree implements DataProvider, CopyProvide assert buffer != null; try { - for (Element templateElement : JDOMUtil.load(new StringReader("" + buffer + "")).getChildren(TemplateSettings.TEMPLATE)) { + for (Element templateElement : JdomKt.loadElement("" + buffer + "").getChildren(TemplateSettings.TEMPLATE)) { TemplateImpl template = TemplateSettings.readTemplateFromElement(group.getName(), templateElement, getClass().getClassLoader()); while (group.containsTemplate(template.getKey(), template.getId())) { template.setKey(template.getKey() + "1"); @@ -154,9 +143,7 @@ class LiveTemplateTree extends CheckboxTree implements DataProvider, CopyProvide myConfigurable.addTemplate(template); } } - catch (JDOMException ignore) { - } - catch (IOException ignore) { + catch (Exception ignore) { } } } diff --git a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java index 78686b2791cc..d06a69acf450 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/template/impl/TemplateSettings.java @@ -30,6 +30,7 @@ import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.WriteExternalException; +import com.intellij.util.JdomKt; import com.intellij.util.SmartList; import com.intellij.util.containers.MultiMap; import com.intellij.util.xmlb.Converter; @@ -453,7 +454,7 @@ public class TemplateSettings implements PersistentStateComponent + .connect { try { - UpdatesInfo(JDOMUtil.load(request.reader)) + UpdatesInfo(loadElement(it.reader)) } catch (e: JDOMException) { // corrupted content, don't bother telling user diff --git a/platform/platform-impl/src/com/intellij/util/jdom.kt b/platform/platform-impl/src/com/intellij/util/jdom.kt index 3d392c27f589..0e12dae36b80 100644 --- a/platform/platform-impl/src/com/intellij/util/jdom.kt +++ b/platform/platform-impl/src/com/intellij/util/jdom.kt @@ -15,9 +15,6 @@ */ package com.intellij.util -import com.intellij.openapi.application.ApplicationManager -import com.intellij.openapi.util.JDOMUtil -import com.intellij.openapi.util.registry.Registry import com.intellij.reference.SoftReference import com.intellij.util.text.CharSequenceReader import org.jdom.Document @@ -25,6 +22,7 @@ import org.jdom.input.SAXBuilder import org.xml.sax.EntityResolver import org.xml.sax.InputSource import java.io.CharArrayReader +import java.io.InputStream import java.io.Reader import java.nio.file.Files import java.nio.file.Path @@ -44,20 +42,19 @@ private fun getSaxBuilder(): SAXBuilder { return saxBuilder } -fun loadElement(chars: CharSequence) = loadDocument(CharSequenceReader(chars)).detachRootElement() +fun loadElement(chars: CharSequence) = loadElement(CharSequenceReader(chars)) + +fun loadElement(reader: Reader) = loadDocument(reader).detachRootElement() + +fun loadElement(stream: InputStream) = loadDocument(stream.reader()).detachRootElement() fun loadElement(path: Path) = loadDocument(Files.newInputStream(path).bufferedReader()).detachRootElement() private fun loadDocument(reader: Reader): Document { - if (Registry.`is`("jdom.ignoring.whitespace", false) || (ApplicationManager.getApplication()?.isUnitTestMode ?: false)) { - try { - return getSaxBuilder().build(reader) - } - finally { - reader.close() - } + try { + return getSaxBuilder().build(reader) } - else { - return JDOMUtil.loadDocument(reader) + finally { + reader.close() } } \ No newline at end of file diff --git a/platform/platform-tests/testSrc/com/intellij/ide/updates/InfoReader.java b/platform/platform-tests/testSrc/com/intellij/ide/updates/InfoReader.java index d81170c17716..97b59be98774 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/updates/InfoReader.java +++ b/platform/platform-tests/testSrc/com/intellij/ide/updates/InfoReader.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,7 @@ package com.intellij.ide.updates; import com.intellij.openapi.updateSettings.impl.UpdatesInfo; -import com.intellij.openapi.util.JDOMUtil; +import com.intellij.util.JdomKt; import org.jetbrains.annotations.NotNull; import java.io.InputStream; @@ -31,7 +31,7 @@ public class InfoReader { @NotNull public static UpdatesInfo read(@NotNull URL url) { try (InputStream stream = url.openStream()) { - return new UpdatesInfo(JDOMUtil.load(stream)); + return new UpdatesInfo(JdomKt.loadElement(stream)); } catch (Exception e) { throw new RuntimeException(e); diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index e21a035e0b92..15535b334514 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -688,7 +688,6 @@ use.read.action.to.init.service=false use.loaded.state.as.existing=true saving.state.in.new.format.is.allowed=false configuration.saving.v3=false -jdom.ignoring.whitespace=false ide.mac.new.color.picker=false diff --git a/platform/util/src/com/intellij/openapi/util/JDOMUtil.java b/platform/util/src/com/intellij/openapi/util/JDOMUtil.java index 722bb062cbe5..109de0f62532 100644 --- a/platform/util/src/com/intellij/openapi/util/JDOMUtil.java +++ b/platform/util/src/com/intellij/openapi/util/JDOMUtil.java @@ -335,6 +335,9 @@ public class JDOMUtil { } @Contract("null -> null; !null -> !null") + /** + * @deprecated Use com.intellij.util.loadElement + */ public static Element load(Reader reader) throws JDOMException, IOException { return reader == null ? null : loadDocument(reader).detachRootElement(); } diff --git a/platform/util/testSrc/com/intellij/util/xmlb/XmlSerializerTest.kt b/platform/util/testSrc/com/intellij/util/xmlb/XmlSerializerTest.kt index eed6dbe4c6e8..e5bcbed13b2f 100644 --- a/platform/util/testSrc/com/intellij/util/xmlb/XmlSerializerTest.kt +++ b/platform/util/testSrc/com/intellij/util/xmlb/XmlSerializerTest.kt @@ -21,6 +21,7 @@ import com.intellij.openapi.util.Ref import com.intellij.openapi.util.io.BufferExposingByteArrayOutputStream import com.intellij.openapi.util.text.StringUtil import com.intellij.util.SmartList +import com.intellij.util.loadElement import com.intellij.util.xmlb.annotations.* import com.intellij.util.xmlb.annotations.AbstractCollection import junit.framework.AssertionFailedError @@ -290,9 +291,7 @@ internal class XmlSerializerTest { @Test fun FilterSerializer() { val bean = BeanWithPublicFields() - assertSerializer(bean, "\n" + " ", object : SerializationFilter { - override fun accepts(accessor: Accessor, bean: Any) = accessor.name.startsWith("I") - }) + assertSerializer(bean, "\n" + " ", SerializationFilter { accessor, bean -> accessor.name.startsWith("I") }) } data class BeanWithArray(var ARRAY_V: Array = arrayOf("a", "b")) @@ -834,7 +833,7 @@ internal class XmlSerializerTest { @Tag("bean") data class Bean(@Tag var description: String? = null) - var bean = XmlSerializer.deserialize(JDOMUtil.load(""" + var bean = XmlSerializer.deserialize(loadElement(""" Node.js integration @@ -843,7 +842,7 @@ internal class XmlSerializerTest { """.reader()), Bean::class.java)!! assertThat(bean.description).isEqualToIgnoringWhitespace("

Node.js integration

") - bean = XmlSerializer.deserialize(JDOMUtil.load("""Node.js integration]]>""".reader()), Bean::class.java)!! + bean = XmlSerializer.deserialize(loadElement("""Node.js integration]]>""".reader()), Bean::class.java)!! assertThat(bean.description).isEqualTo("

Node.js integration

") } diff --git a/platform/util/testSrc/util-tests.iml b/platform/util/testSrc/util-tests.iml index 6fa85856d18e..16707f9648e1 100644 --- a/platform/util/testSrc/util-tests.iml +++ b/platform/util/testSrc/util-tests.iml @@ -15,5 +15,6 @@ + \ No newline at end of file