mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
use loadElement (ignore whitespace)
This commit is contained in:
@@ -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<String, ArchivedProjectTemplate> compute() {
|
||||
try {
|
||||
return HttpRequests.request(URL + ApplicationInfo.getInstance().getBuild().getProductCode() + "_templates.xml")
|
||||
.connect(new HttpRequests.RequestProcessor<MultiMap<String, ArchivedProjectTemplate>>() {
|
||||
@Override
|
||||
public MultiMap<String, ArchivedProjectTemplate> 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<ArchivedProjectTemplate> createGroupTemplates(Element groupElement) {
|
||||
return ContainerUtil.mapNotNull(groupElement.getChildren(TEMPLATE), new NullableFunction<Element, ArchivedProjectTemplate>() {
|
||||
@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, ArchivedProjectTemplate>)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> T processStream(@NotNull final StreamProcessor<T> consumer) throws IOException {
|
||||
return HttpRequests.request(URL + myPath).connect(new HttpRequests.RequestProcessor<T>() {
|
||||
@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
|
||||
|
||||
@@ -209,7 +209,7 @@ class SchemeManagerImpl<T : Scheme, E : ExternalizableScheme>(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<T : Scheme, E : ExternalizableScheme>(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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<String, E
|
||||
elementAttributes.add(0, nameAttribute)
|
||||
}
|
||||
else {
|
||||
nameAttribute.setValue(componentName)
|
||||
nameAttribute.value = componentName
|
||||
if (elementAttributes.get(0) != nameAttribute) {
|
||||
elementAttributes.remove(nameAttribute)
|
||||
elementAttributes.add(0, nameAttribute)
|
||||
@@ -231,7 +232,7 @@ internal fun Element.normalizeRootName(): Element {
|
||||
LOG.warn("State element must not have parent ${JDOMUtil.writeElement(this)}")
|
||||
detach()
|
||||
}
|
||||
setName(FileStorageCoreUtil.COMPONENT)
|
||||
name = FileStorageCoreUtil.COMPONENT
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.intellij.openapi.util.JDOMUtil
|
||||
import com.intellij.openapi.vfs.LocalFileSystem
|
||||
import com.intellij.testFramework.*
|
||||
import com.intellij.util.deleteRecursively
|
||||
import com.intellij.util.loadElement
|
||||
import com.intellij.util.refreshVfs
|
||||
import com.intellij.util.systemIndependentPath
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
@@ -84,7 +85,7 @@ internal class DefaultProjectStoreTest {
|
||||
@Test fun `new project from default - directory-based storage`() {
|
||||
val defaultProject = ProjectManager.getInstance().defaultProject
|
||||
val defaultTestComponent = TestComponent()
|
||||
defaultTestComponent.loadState(JDOMUtil.load("""<component><main name="$TEST_COMPONENT_NAME"/><sub name="foo" /><sub name="bar" /></component>""".reader()))
|
||||
defaultTestComponent.loadState(loadElement("""<component><main name="$TEST_COMPONENT_NAME"/><sub name="foo" /><sub name="bar" /></component>"""))
|
||||
val stateStore = defaultProject.stateStore as ComponentStoreImpl
|
||||
stateStore.initComponent(defaultTestComponent, true)
|
||||
try {
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
+13
-17
@@ -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<String, String> readSettings(final String... attributes) {
|
||||
return HttpRequests.request(mySettingsUrl)
|
||||
.productNameAsUserAgent()
|
||||
.connect(new HttpRequests.RequestProcessor<Map<String, String>>() {
|
||||
@Override
|
||||
public Map<String, String> process(@NotNull HttpRequests.Request request) throws IOException {
|
||||
Map<String, String> 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<String, String> 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.<String, String>emptyMap(), LOG);
|
||||
catch (JDOMException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
return settings;
|
||||
}, Collections.emptyMap(), LOG);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -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);
|
||||
|
||||
+21
-34
@@ -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<TreePath, String>() {
|
||||
@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<TemplateImpl> templates = myConfigurable.getSelectedTemplates().keySet();
|
||||
|
||||
|
||||
CopyPasteManager.getInstance().setContents(new StringSelection(StringUtil.join(templates, new Function<TemplateImpl, String>() {
|
||||
@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("<root>" + buffer + "</root>")).getChildren(TemplateSettings.TEMPLATE)) {
|
||||
for (Element templateElement : JdomKt.loadElement("<root>" + buffer + "</root>").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) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<TemplateSettin
|
||||
private void readDefTemplate(DefaultLiveTemplatesProvider provider, String defTemplate, boolean registerTemplate) throws JDOMException, InvalidDataException, IOException {
|
||||
InputStream inputStream = DecodeDefaultsUtil.getDefaultsInputStream(provider, defTemplate);
|
||||
if (inputStream != null) {
|
||||
TemplateGroup group = readTemplateFile(JDOMUtil.load(inputStream), getDefaultTemplateName(defTemplate), true, registerTemplate, provider.getClass().getClassLoader());
|
||||
TemplateGroup group = readTemplateFile(JdomKt.loadElement(inputStream), getDefaultTemplateName(defTemplate), true, registerTemplate, provider.getClass().getClassLoader());
|
||||
if (group != null && group.getReplace() != null) {
|
||||
for (TemplateImpl template : myTemplates.get(group.getReplace())) {
|
||||
removeTemplate(template);
|
||||
|
||||
+2
-2
@@ -37,10 +37,10 @@ import com.intellij.openapi.options.SchemesManager;
|
||||
import com.intellij.openapi.options.SchemesManagerFactory;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import com.intellij.util.JdomKt;
|
||||
import com.intellij.util.ThrowableConvertor;
|
||||
import com.intellij.util.io.URLUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
@@ -204,7 +204,7 @@ public class EditorColorsManagerImpl extends EditorColorsManager implements Pers
|
||||
try {
|
||||
URL resource = attributesEP.getLoaderForClass().getResource(attributesEP.file);
|
||||
assert resource != null;
|
||||
((AbstractColorsScheme)editorColorsScheme).readAttributes(JDOMUtil.load(URLUtil.openStream(resource)));
|
||||
((AbstractColorsScheme)editorColorsScheme).readAttributes(JdomKt.loadElement(URLUtil.openStream(resource)));
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOG.error(e);
|
||||
|
||||
+1
-1
@@ -325,7 +325,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent
|
||||
try {
|
||||
URL defaultFileTypesUrl = FileTypeManagerImpl.class.getResource("/defaultFileTypes.xml");
|
||||
if (defaultFileTypesUrl != null) {
|
||||
Element defaultFileTypesElement = JDOMUtil.load(URLUtil.openStream(defaultFileTypesUrl));
|
||||
Element defaultFileTypesElement = JdomKt.loadElement(URLUtil.openStream(defaultFileTypesUrl));
|
||||
for (Element e : defaultFileTypesElement.getChildren()) {
|
||||
//noinspection SpellCheckingInspection
|
||||
if ("filetypes".equals(e.getName())) {
|
||||
|
||||
+3
-3
@@ -42,7 +42,6 @@ import com.intellij.openapi.ui.Messages
|
||||
import com.intellij.openapi.updateSettings.UpdateStrategyCustomization
|
||||
import com.intellij.openapi.util.ActionCallback
|
||||
import com.intellij.openapi.util.BuildNumber
|
||||
import com.intellij.openapi.util.JDOMUtil
|
||||
import com.intellij.openapi.util.SystemInfo
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
@@ -50,6 +49,7 @@ import com.intellij.util.PlatformUtils
|
||||
import com.intellij.util.containers.ContainerUtil
|
||||
import com.intellij.util.io.HttpRequests
|
||||
import com.intellij.util.io.URLUtil
|
||||
import com.intellij.util.loadElement
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import com.intellij.xml.util.XmlStringUtil
|
||||
import org.apache.http.client.utils.URIBuilder
|
||||
@@ -198,9 +198,9 @@ object UpdateChecker {
|
||||
|
||||
updateInfo = HttpRequests.request(updateUrl)
|
||||
.forceHttps(settings.canUseSecureConnection())
|
||||
.connect { request ->
|
||||
.connect {
|
||||
try {
|
||||
UpdatesInfo(JDOMUtil.load(request.reader))
|
||||
UpdatesInfo(loadElement(it.reader))
|
||||
}
|
||||
catch (e: JDOMException) {
|
||||
// corrupted content, don't bother telling user
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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, "<BeanWithPublicFields>\n" + " <option name=\"INT_V\" value=\"1\" />\n" + "</BeanWithPublicFields>", object : SerializationFilter {
|
||||
override fun accepts(accessor: Accessor, bean: Any) = accessor.name.startsWith("I")
|
||||
})
|
||||
assertSerializer(bean, "<BeanWithPublicFields>\n" + " <option name=\"INT_V\" value=\"1\" />\n" + "</BeanWithPublicFields>", SerializationFilter { accessor, bean -> accessor.name.startsWith("I") })
|
||||
}
|
||||
|
||||
data class BeanWithArray(var ARRAY_V: Array<String> = 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("""<bean>
|
||||
var bean = XmlSerializer.deserialize(loadElement("""<bean>
|
||||
<description>
|
||||
<![CDATA[
|
||||
<h4>Node.js integration</h4>
|
||||
@@ -843,7 +842,7 @@ internal class XmlSerializerTest {
|
||||
</bean>""".reader()), Bean::class.java)!!
|
||||
assertThat(bean.description).isEqualToIgnoringWhitespace("<h4>Node.js integration</h4>")
|
||||
|
||||
bean = XmlSerializer.deserialize(JDOMUtil.load("""<bean><description><![CDATA[<h4>Node.js integration</h4>]]></description></bean>""".reader()), Bean::class.java)!!
|
||||
bean = XmlSerializer.deserialize(loadElement("""<bean><description><![CDATA[<h4>Node.js integration</h4>]]></description></bean>""".reader()), Bean::class.java)!!
|
||||
assertThat(bean.description).isEqualTo("<h4>Node.js integration</h4>")
|
||||
}
|
||||
|
||||
|
||||
@@ -15,5 +15,6 @@
|
||||
<orderEntry type="library" scope="TEST" name="JUnit4" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="picocontainer" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="jna" level="project" />
|
||||
<orderEntry type="module" module-name="platform-impl" scope="TEST" />
|
||||
</component>
|
||||
</module>
|
||||
Reference in New Issue
Block a user