提交 d5741499 编写于 作者: S serge-rider

#6049 Move JSON editor to CE


Former-commit-id: 40ae7ef5
上级 03c0e61a
......@@ -45,6 +45,7 @@
<plugin id="org.jkiss.dbeaver.ui.editors.entity" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.jkiss.dbeaver.ui.editors.hex" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.jkiss.dbeaver.ui.editors.image" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.jkiss.dbeaver.ui.editors.json" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.jkiss.dbeaver.ui.editors.sql" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.jkiss.dbeaver.ui.editors.xml" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.jkiss.dbeaver.ui.navigator" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
......
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Vendor: %Bundle-Vendor
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.jkiss.dbeaver.ui.editors.json;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Release-Date: 20190909
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Require-Bundle: com.google.gson,
org.eclipse.core.runtime,
org.eclipse.core.resources,
org.eclipse.core.expressions,
org.eclipse.jface.text,
org.eclipse.ui,
org.eclipse.ui.editors,
org.eclipse.ui.ide,
org.eclipse.ui.workbench.texteditor,
org.jkiss.dbeaver.model,
org.jkiss.dbeaver.ui,
org.jkiss.dbeaver.ui.editors.base,
org.jkiss.dbeaver.ui.editors.data
Bundle-ClassPath: .
Export-Package: org.jkiss.dbeaver.ui.editors.json,
org.jkiss.dbeaver.ui.data.managers.stream
Automatic-Module-Name: org.jkiss.dbeaver.ui.editors.json
Bundle-Vendor = DBeaver Corp
Bundle-Name = DBeaver UI Editors - JSON
source.. = src/
output.. = target/classes/
bin.includes = .,\
META-INF/,\
OSGI-INF/,\
plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension point="org.eclipse.core.contenttype.contentTypes">
<content-type
base-type="org.eclipse.core.runtime.text"
file-extensions="json"
id="org.jkiss.dbeaver.json"
name="JSON"
priority="high"/>
</extension>
<extension point="org.jkiss.dbeaver.dataManager">
<streamManager class="org.jkiss.dbeaver.ui.data.managers.stream.JSONStreamValueManager" id="json" label="JSON" primaryMime="text/json"
description="JSON" icon="platform:/plugin/org.jkiss.dbeaver.model/icons/types/json.png"/>
</extension>
<extension point="org.eclipse.ui.editors">
<editor
class="org.jkiss.dbeaver.ui.editors.json.JSONTextEditor"
default="true"
extensions="json"
icon="platform:/plugin/org.jkiss.dbeaver.model/icons/types/json.png"
id="org.jkiss.dbeaver.ui.editors.json.JSONTextEditor"
name="JSON">
<contentTypeBinding contentTypeId="org.jkiss.dbeaver.json"/>
</editor>
</extension>
</plugin>
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jkiss.dbeaver</groupId>
<artifactId>plugins</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<artifactId>org.jkiss.dbeaver.ui.editors.json</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.data.managers.stream;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IEditorPart;
import org.jkiss.dbeaver.model.DBIcon;
import org.jkiss.dbeaver.ui.DBeaverIcons;
import org.jkiss.dbeaver.ui.editors.json.JSONTextEditor;
import org.jkiss.dbeaver.ui.editors.json.internal.JSONEditorMessages;
/**
* JSON text editor
*/
public class JSONEditorPart extends JSONTextEditor implements IEditorPart {
public JSONEditorPart() {
}
@Override
public String getTitle()
{
return JSONEditorMessages.JSONEditorPart_title;
}
@Override
public Image getTitleImage()
{
return DBeaverIcons.getImage(DBIcon.TYPE_JSON);
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.data.managers.stream;
import org.jkiss.dbeaver.ui.data.IValueController;
import org.jkiss.dbeaver.ui.data.managers.AbstractTextPanelEditor;
import org.jkiss.dbeaver.ui.editors.json.JSONTextEditor;
/**
* JSONPanelEditor
*/
public class JSONPanelEditor extends AbstractTextPanelEditor<JSONTextEditor> {
@Override
protected JSONTextEditor createEditorParty(IValueController valueController) {
return new JSONTextEditor();
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.data.managers.stream;
import org.eclipse.ui.IEditorPart;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.data.DBDContent;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSTypedObject;
import org.jkiss.dbeaver.ui.data.IStreamValueEditor;
import org.jkiss.dbeaver.ui.data.IStreamValueManager;
import org.jkiss.dbeaver.ui.data.IValueController;
import org.jkiss.dbeaver.utils.ContentUtils;
/**
* JSON editor manager
*/
public class JSONStreamValueManager implements IStreamValueManager {
@Override
public MatchType matchesTo(@NotNull DBRProgressMonitor monitor, @NotNull DBSTypedObject attribute, @Nullable DBDContent value) {
// Applies to text values
return ContentUtils.isJSON(value) ?
MatchType.PRIMARY :
(ContentUtils.isTextContent(value) ? MatchType.APPLIES : MatchType.NONE);
}
@Override
public IStreamValueEditor createPanelEditor(@NotNull final IValueController controller)
throws DBException
{
return new JSONPanelEditor();
}
@Override
public IEditorPart createEditorPart(@NotNull IValueController controller) {
return new JSONEditorPart();
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.json;
import com.google.gson.*;
import org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy;
import org.eclipse.jface.text.source.ISourceViewer;
import org.jkiss.utils.CommonUtils;
/**
* The formatting strategy that transforms SQL keywords to upper case
*/
public class JSONFormattingStrategy extends ContextBasedFormattingStrategy
{
private ISourceViewer sourceViewer;
private JSONSourceViewerConfiguration svConfig;
JSONFormattingStrategy(ISourceViewer sourceViewer, JSONSourceViewerConfiguration svConfig)
{
this.sourceViewer = sourceViewer;
this.svConfig = svConfig;
}
@Override
public void formatterStarts(String initialIndentation)
{
}
@Override
public String format(String content, boolean isLineStart, String indentation, int[] positions)
{
if (CommonUtils.isEmpty(content)) {
return content;
}
JsonParser parser = new JsonParser();
JsonElement jsonElement = parser.parse(content);
Gson gson = new GsonBuilder()
.serializeNulls()
.disableHtmlEscaping()
.setPrettyPrinting()
.setLenient()
.create();
String formattedJson = gson.toJson(jsonElement);
return formattedJson;
}
@Override
public void formatterStops()
{
}
}
\ No newline at end of file
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.json;
import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.jface.text.TextAttribute;
import org.eclipse.jface.text.rules.*;
import org.eclipse.swt.graphics.Color;
import org.jkiss.dbeaver.model.sql.SQLConstants;
import org.jkiss.dbeaver.ui.UIUtils;
import java.util.LinkedList;
import java.util.List;
/**
* JSONScanner
*/
public class JSONScanner extends RuleBasedScanner {
public JSONScanner() {
super();
initScanner();
}
public void reinitScanner() {
initScanner();
}
private void initScanner() {
ColorRegistry colorRegistry = UIUtils.getColorRegistry();
Color colorKey = colorRegistry.get(SQLConstants.CONFIG_COLOR_KEYWORD);
Color colorString = colorRegistry.get(SQLConstants.CONFIG_COLOR_STRING);
Color colorValue = colorRegistry.get(SQLConstants.CONFIG_COLOR_NUMBER);
IToken string = new Token(new TextAttribute(colorString));
IToken value = new Token(new TextAttribute(colorValue));
IToken defaultText = new Token(new TextAttribute(colorKey));
//IToken nullValue = new Token(new TextAttribute(colorKey));
List<IRule> rules = new LinkedList<>();
rules.add(new NumberRule(value));
rules.add(new MultiLineRule(":\"", "\"", value, '\\')); //$NON-NLS-1$//$NON-NLS-2$
rules.add(new MultiLineRule(": \"", "\"", value, '\\')); //$NON-NLS-1$//$NON-NLS-2$
rules.add(new MultiLineRule("\"", "\"", string, '\\')); //$NON-NLS-2$ //$NON-NLS-1$
WordRule wordRule = new WordRule(new WordDetector(), defaultText);
wordRule.addWord("null", value);
wordRule.addWord("true", value);
wordRule.addWord("false", value);
rules.add(wordRule);
rules.add(new WhitespaceRule(new WhitespaceDetector()));
IRule[] result = new IRule[rules.size()];
rules.toArray(result);
setRules(result);
}
public static class WhitespaceDetector implements IWhitespaceDetector {
@Override
public boolean isWhitespace(char character) {
return Character.isWhitespace(character);
}
}
public static class WordDetector implements IWordDetector {
@Override
public boolean isWordPart(char character) {
return Character.isJavaIdentifierPart(character);
}
@Override
public boolean isWordStart(char character) {
return Character.isJavaIdentifierPart(character);
}
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.json;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.formatter.ContentFormatter;
import org.eclipse.jface.text.formatter.IContentFormatter;
import org.eclipse.jface.text.formatter.IFormattingStrategy;
import org.eclipse.jface.text.presentation.IPresentationReconciler;
import org.eclipse.jface.text.presentation.PresentationReconciler;
import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
/**
* JSONSourceViewerConfiguration
*/
public class JSONSourceViewerConfiguration extends SourceViewerConfiguration {
private JSONTextEditor textEditor;
private JSONScanner jsonScanner;
JSONSourceViewerConfiguration(JSONTextEditor textEditor) {
super();
this.textEditor = textEditor;
this.jsonScanner = new JSONScanner();
}
@Override
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
PresentationReconciler reconciler = new PresentationReconciler();
DefaultDamagerRepairer dr = new DefaultDamagerRepairer(jsonScanner);
reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
return reconciler;
}
@Override
public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {
ContentFormatter formatter = new ContentFormatter();
formatter.setDocumentPartitioning(IDocument.DEFAULT_CONTENT_TYPE);
IFormattingStrategy formattingStrategy = new JSONFormattingStrategy(sourceViewer, this);
formatter.setFormattingStrategy(formattingStrategy, IDocument.DEFAULT_CONTENT_TYPE);
formatter.enablePartitionAwareFormatting(false);
return formatter;
}
}
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2019 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jkiss.dbeaver.ui.editors.json;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.text.source.DefaultCharacterPairMatcher;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.IVerticalRuler;
import org.eclipse.jface.text.source.projection.ProjectionSupport;
import org.eclipse.jface.text.source.projection.ProjectionViewer;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorInput;
import org.jkiss.dbeaver.ui.editors.text.BaseTextEditor;
import org.jkiss.dbeaver.ui.editors.text.FileRefDocumentProvider;
/*
* JSONTextEditor
*/
public class JSONTextEditor extends BaseTextEditor {
private final static char[] PAIRS= { '{', '}', '[', ']' };
private DefaultCharacterPairMatcher pairsMatcher = new DefaultCharacterPairMatcher(PAIRS);
private ProjectionSupport projectionSupport;
public JSONTextEditor() {
super();
setDocumentProvider(new FileRefDocumentProvider());
}
@Override
public void dispose() {
if (pairsMatcher != null) {
pairsMatcher.dispose();
pairsMatcher = null;
}
super.dispose();
}
@Override
public void doRevertToSaved() {
super.doRevertToSaved();
}
@Override
public void doSave(IProgressMonitor monitor) {
super.doSave(monitor);
}
@Override
public void doSaveAs() {
super.doSaveAs();
}
@Override
public void doSetInput(IEditorInput input) throws CoreException {
super.doSetInput(input);
}
@Override
public void createPartControl(Composite parent) {
setSourceViewerConfiguration(new JSONSourceViewerConfiguration(this));
super.createPartControl(parent);
}
@Override
protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler ruler, int styles) {
ISourceViewer viewer = new ProjectionViewer(parent, ruler, null, false, styles);
return viewer;
}
}
package org.jkiss.dbeaver.ui.editors.json.internal;
import org.eclipse.osgi.util.NLS;
public class JSONEditorMessages extends NLS {
private static final String BUNDLE_NAME = "org.jkiss.dbeaver.ui.editors.json.internal.JSONEditorMessages"; //$NON-NLS-1$
public static String JSONEditorPart_title;
public static String JSONPanelEditor_e_load_json;
public static String JSONPanelEditor_e_save_json;
public static String JSONPanelEditor_subtask_prime_task;
public static String JSONPanelEditor_task_prime;
public static String JSONPanelEditor_task_read_json;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, JSONEditorMessages.class);
}
private JSONEditorMessages()
{
}
}
JSONEditorPart_title=JSON
JSONPanelEditor_e_load_json=Can't load JSON value
JSONPanelEditor_e_save_json=Error saving JSON value
JSONPanelEditor_subtask_prime_task=Prime JSON value
JSONPanelEditor_task_prime=Prime content value
JSONPanelEditor_task_read_json=Read JSON value
......@@ -202,6 +202,9 @@ public class ViewerColumnController<COLUMN, ELEMENT> {
private void recreateColumns(boolean pack)
{
final Control control = viewer.getControl();
if (control == null || control.isDisposed()) {
return;
}
control.setRedraw(false);
isInitializing = true;
try {
......
......@@ -61,7 +61,6 @@ import org.jkiss.dbeaver.ui.controls.folders.ITabbedFolderContainer;
import org.jkiss.dbeaver.ui.controls.folders.ITabbedFolderListener;
import org.jkiss.dbeaver.ui.dialogs.ConfirmationDialog;
import org.jkiss.dbeaver.ui.editors.*;
import org.jkiss.dbeaver.ui.editors.entity.properties.ObjectPropertiesEditor;
import org.jkiss.dbeaver.ui.internal.UINavigatorMessages;
import org.jkiss.dbeaver.ui.navigator.NavigatorPreferences;
import org.jkiss.dbeaver.ui.navigator.actions.NavigatorHandlerObjectOpen;
......@@ -70,8 +69,8 @@ import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.CommonUtils;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.List;
import java.util.*;
/**
* EntityEditor
......@@ -512,6 +511,7 @@ public class EntityEditor extends MultiPageDatabaseEditor
try {
addPage(new ProgressEditorPart(this), editorInput);
setPageText(0, "Initializing ...");
setPageImage(0, DBeaverIcons.getImage(UIIcon.REFRESH));
setActivePage(0);
} catch (PartInitException e) {
log.error(e);
......
......@@ -89,7 +89,6 @@ public class ObjectPropertiesEditor extends AbstractDatabaseObjectEditor<DBSObje
private Composite propsPlaceholder;
@Nullable
private TabbedFolderPageForm propertiesPanel;
private String folderId;
public ObjectPropertiesEditor()
{
......@@ -125,7 +124,7 @@ public class ObjectPropertiesEditor extends AbstractDatabaseObjectEditor<DBSObje
pageControl.createProgressPanel();
folderId = getEditorInput().getDefaultFolderId();
curFolderId = getEditorInput().getDefaultFolderId();
// Create actual editor in async mode. We need to know editor size to make proper layout and avoid blinking
UIUtils.asyncExec(() -> createPropertyBrowser(container));
......@@ -216,9 +215,7 @@ public class ObjectPropertiesEditor extends AbstractDatabaseObjectEditor<DBSObje
}
}
if (folderId != null) {
folderComposite.switchFolder(folderId);
}
folderComposite.switchFolder(curFolderId);
folderComposite.addFolderListener(folderId1 -> {
if (CommonUtils.equalObjects(curFolderId, folderId1)) {
......@@ -393,9 +390,9 @@ public class ObjectPropertiesEditor extends AbstractDatabaseObjectEditor<DBSObje
@Override
public boolean switchFolder(String folderId)
{
this.folderId = folderId;
this.curFolderId = folderId;
if (folderComposite != null) {
return folderComposite.switchFolder(folderId);
return folderComposite.switchFolder(curFolderId);
}
return false;
}
......
......@@ -29,6 +29,7 @@
<module>org.jkiss.dbeaver.ui.editors.entity</module>
<module>org.jkiss.dbeaver.ui.editors.hex</module>
<module>org.jkiss.dbeaver.ui.editors.image</module>
<module>org.jkiss.dbeaver.ui.editors.json</module>
<module>org.jkiss.dbeaver.ui.editors.sql</module>
<module>org.jkiss.dbeaver.ui.editors.xml</module>
<module>org.jkiss.dbeaver.ui.navigator</module>
......
......@@ -22,8 +22,8 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.jkiss.dbeaver.core.application.product"/>
<stringAttribute key="productFile" value="\org.jkiss.dbeaver.ce.standalone\DBeaver.product"/>
<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic,ch.qos.logback.core,ch.qos.logback.slf4j,com.github.jsqlparser,com.google.gson,com.google.guava,com.ibm.icu,com.jcraft.jsch,com.jcraft.jzlib,javaewah,javax.annotation,javax.inject,javax.servlet*3.1.0.v201410161800,javax.xml,net.i2p.crypto.eddsa,net.sf.opencsv,org.apache.batik.constants,org.apache.batik.css,org.apache.batik.i18n,org.apache.batik.util,org.apache.commons.cli,org.apache.commons.codec,org.apache.commons.httpclient,org.apache.commons.io,org.apache.commons.jexl,org.apache.commons.jxpath,org.apache.commons.lang,org.apache.commons.logging,org.apache.felix.gogo.runtime,org.apache.felix.scr,org.apache.log4j,org.apache.sshd.core,org.apache.sshd.sftp,org.apache.xml.resolver,org.apache.xml.serializer,org.apache.xmlgraphics,org.bouncycastle.bcpg,org.bouncycastle.bcpkix,org.bouncycastle.bcprov,org.eclipse.compare,org.eclipse.compare.core,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.databinding.observable,org.eclipse.core.databinding.property,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.macosx,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.resources,org.eclipse.core.runtime,org.eclipse.core.variables,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.draw2d,org.eclipse.e4.core.commands,org.eclipse.e4.core.contexts,org.eclipse.e4.core.di,org.eclipse.e4.core.di.annotations,org.eclipse.e4.core.di.extensions,org.eclipse.e4.core.di.extensions.supplier,org.eclipse.e4.core.services,org.eclipse.e4.emf.xpath,org.eclipse.e4.ui.bindings,org.eclipse.e4.ui.css.core,org.eclipse.e4.ui.css.swt,org.eclipse.e4.ui.css.swt.theme,org.eclipse.e4.ui.di,org.eclipse.e4.ui.dialogs,org.eclipse.e4.ui.model.workbench,org.eclipse.e4.ui.services,org.eclipse.e4.ui.widgets,org.eclipse.e4.ui.workbench,org.eclipse.e4.ui.workbench.addons.swt,org.eclipse.e4.ui.workbench.renderers.swt,org.eclipse.e4.ui.workbench.renderers.swt.cocoa,org.eclipse.e4.ui.workbench.swt,org.eclipse.e4.ui.workbench3,org.eclipse.ecf,org.eclipse.ecf.filetransfer,org.eclipse.ecf.identity,org.eclipse.ecf.provider.filetransfer,org.eclipse.ecf.provider.filetransfer.ssl,org.eclipse.ecf.ssl,org.eclipse.emf.common,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit,org.eclipse.equinox.app,org.eclipse.equinox.bidi,org.eclipse.equinox.common,org.eclipse.equinox.concurrent,org.eclipse.equinox.event,org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.http.servlet,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.console,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.discovery,org.eclipse.equinox.p2.discovery.compatibility,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.extensionlocation,org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.operations,org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.p2.reconciler.dropins,org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.repository.tools,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.transport.ecf,org.eclipse.equinox.p2.ui,org.eclipse.equinox.p2.ui.discovery,org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.ui.sdk.scheduler,org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.equinox.security,org.eclipse.equinox.security.macosx,org.eclipse.equinox.security.ui,org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.util,org.eclipse.gef,org.eclipse.help,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.jgit,org.eclipse.jgit.ssh.apache,org.eclipse.jsch.core,org.eclipse.jsch.ui,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.osgi.compatibility.state,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.platform,org.eclipse.search,org.eclipse.swt,org.eclipse.swt.cocoa.macosx.x86_64,org.eclipse.team.core,org.eclipse.team.ui,org.eclipse.text,org.eclipse.ui,org.eclipse.ui.browser,org.eclipse.ui.cheatsheets,org.eclipse.ui.cocoa,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.forms,org.eclipse.ui.genericeditor,org.eclipse.ui.ide,org.eclipse.ui.ide.application,org.eclipse.ui.intro,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.net,org.eclipse.ui.themes,org.eclipse.ui.trace,org.eclipse.ui.views,org.eclipse.ui.views.log,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.workbench,org.eclipse.ui.workbench.texteditor,org.eclipse.update.configurator,org.eclipse.urischeme,org.eclipse.wst.common.core@default:default,org.eclipse.wst.common.emf@default:default,org.eclipse.wst.common.emfworkbench.integration@default:default,org.eclipse.wst.common.environment@default:default,org.eclipse.wst.common.frameworks@default:default,org.eclipse.wst.common.uriresolver@default:default,org.eclipse.wst.sse.core@default:default,org.eclipse.wst.validation@default:default,org.eclipse.wst.xml.core@default:default,org.eclipse.wst.xsd.core@default:default,org.eclipse.xsd,org.jkiss.bundle.apache.batik,org.jkiss.bundle.apache.poi,org.jkiss.bundle.gis,org.jkiss.bundle.jfreechart,org.jkiss.bundle.sshj,org.objectweb.asm,org.sat4j.core,org.sat4j.pb,org.slf4j.api,org.slf4j.impl.log4j12,org.tukaani.xz,org.w3c.css.sac,org.w3c.dom.events,org.w3c.dom.smil,org.w3c.dom.svg,slf4j.api"/>
<stringAttribute key="selected_workspace_plugins" value="org.jkiss.dbeaver.cmp.simple,org.jkiss.dbeaver.cmp.simple.ui,org.jkiss.dbeaver.core,org.jkiss.dbeaver.core.application,org.jkiss.dbeaver.data.gis,org.jkiss.dbeaver.data.gis.view,org.jkiss.dbeaver.data.office,org.jkiss.dbeaver.data.transfer,org.jkiss.dbeaver.debug.core,org.jkiss.dbeaver.debug.ui,org.jkiss.dbeaver.ext.athena,org.jkiss.dbeaver.ext.bigquery,org.jkiss.dbeaver.ext.clickhouse,org.jkiss.dbeaver.ext.db2,org.jkiss.dbeaver.ext.db2.i,org.jkiss.dbeaver.ext.db2.zos,org.jkiss.dbeaver.ext.derby,org.jkiss.dbeaver.ext.erd,org.jkiss.dbeaver.ext.es.ui,org.jkiss.dbeaver.ext.exasol,org.jkiss.dbeaver.ext.firebird,org.jkiss.dbeaver.ext.format.sqlworkbenchj,org.jkiss.dbeaver.ext.generic,org.jkiss.dbeaver.ext.generic.ui,org.jkiss.dbeaver.ext.greenplum,org.jkiss.dbeaver.ext.h2,org.jkiss.dbeaver.ext.hana,org.jkiss.dbeaver.ext.hive,org.jkiss.dbeaver.ext.hsqldb,org.jkiss.dbeaver.ext.import_config,org.jkiss.dbeaver.ext.informix,org.jkiss.dbeaver.ext.mockdata,org.jkiss.dbeaver.ext.mssql,org.jkiss.dbeaver.ext.mssql.ui,org.jkiss.dbeaver.ext.mysql,org.jkiss.dbeaver.ext.mysql.ui,org.jkiss.dbeaver.ext.netezza,org.jkiss.dbeaver.ext.oracle,org.jkiss.dbeaver.ext.oracle.ui,org.jkiss.dbeaver.ext.phoenix,org.jkiss.dbeaver.ext.postgresql,org.jkiss.dbeaver.ext.postgresql.debug.core,org.jkiss.dbeaver.ext.postgresql.debug.ui,org.jkiss.dbeaver.ext.postgresql.ui,org.jkiss.dbeaver.ext.sample.database,org.jkiss.dbeaver.ext.snowflake.core,org.jkiss.dbeaver.ext.snowflake.ui,org.jkiss.dbeaver.ext.spanner,org.jkiss.dbeaver.ext.sqlite,org.jkiss.dbeaver.ext.teradata,org.jkiss.dbeaver.ext.ui.colortheme,org.jkiss.dbeaver.ext.ui.locks,org.jkiss.dbeaver.ext.ui.svg,org.jkiss.dbeaver.ext.ui.tipoftheday,org.jkiss.dbeaver.ext.vertica,org.jkiss.dbeaver.ext.vertica.ui,org.jkiss.dbeaver.ext.wmi,org.jkiss.dbeaver.model,org.jkiss.dbeaver.model.sql,org.jkiss.dbeaver.net.ssh,org.jkiss.dbeaver.net.ssh.jsch,org.jkiss.dbeaver.net.ssh.sshj,org.jkiss.dbeaver.net.ssh.ui,org.jkiss.dbeaver.registry,org.jkiss.dbeaver.slf4j,org.jkiss.dbeaver.ui,org.jkiss.dbeaver.ui.charts,org.jkiss.dbeaver.ui.dashboard,org.jkiss.dbeaver.ui.editors.acl,org.jkiss.dbeaver.ui.editors.base,org.jkiss.dbeaver.ui.editors.connection,org.jkiss.dbeaver.ui.editors.content,org.jkiss.dbeaver.ui.editors.data,org.jkiss.dbeaver.ui.editors.entity,org.jkiss.dbeaver.ui.editors.hex,org.jkiss.dbeaver.ui.editors.image,org.jkiss.dbeaver.ui.editors.sql,org.jkiss.dbeaver.ui.editors.xml,org.jkiss.dbeaver.ui.navigator,org.jkiss.dbeaver.ui.search,org.jkiss.utils,org.jkiss.wmi"/>
<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic,ch.qos.logback.core,ch.qos.logback.slf4j,com.github.jsqlparser,com.google.gson,com.google.guava,com.ibm.icu,com.jcraft.jsch,com.jcraft.jzlib,javaewah,javax.annotation,javax.inject,javax.servlet*3.1.0.v201410161800,javax.xml,net.i2p.crypto.eddsa,net.sf.opencsv,org.apache.batik.constants,org.apache.batik.css*1.10.0.v20180703-1553,org.apache.batik.css*1.6.0.v201011041432,org.apache.batik.i18n,org.apache.batik.util*1.10.0.v20180703-1553,org.apache.batik.util*1.6.0.v201011041432,org.apache.commons.cli,org.apache.commons.codec,org.apache.commons.httpclient,org.apache.commons.io,org.apache.commons.jexl,org.apache.commons.jxpath,org.apache.commons.lang,org.apache.commons.logging,org.apache.felix.gogo.runtime,org.apache.felix.scr,org.apache.log4j,org.apache.sshd.core,org.apache.sshd.sftp,org.apache.xml.resolver,org.apache.xml.serializer,org.apache.xmlgraphics,org.bouncycastle.bcpg,org.bouncycastle.bcpkix,org.bouncycastle.bcprov,org.eclipse.compare,org.eclipse.compare.core,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.databinding.observable,org.eclipse.core.databinding.property,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.resources,org.eclipse.core.runtime,org.eclipse.core.variables,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.draw2d,org.eclipse.e4.core.commands,org.eclipse.e4.core.contexts,org.eclipse.e4.core.di,org.eclipse.e4.core.di.annotations,org.eclipse.e4.core.di.extensions,org.eclipse.e4.core.di.extensions.supplier,org.eclipse.e4.core.services,org.eclipse.e4.emf.xpath,org.eclipse.e4.ui.bindings,org.eclipse.e4.ui.css.core,org.eclipse.e4.ui.css.swt,org.eclipse.e4.ui.css.swt.theme,org.eclipse.e4.ui.di,org.eclipse.e4.ui.dialogs,org.eclipse.e4.ui.model.workbench,org.eclipse.e4.ui.services,org.eclipse.e4.ui.widgets,org.eclipse.e4.ui.workbench,org.eclipse.e4.ui.workbench.addons.swt,org.eclipse.e4.ui.workbench.renderers.swt,org.eclipse.e4.ui.workbench.swt,org.eclipse.e4.ui.workbench3,org.eclipse.ecf,org.eclipse.ecf.filetransfer,org.eclipse.ecf.identity,org.eclipse.ecf.provider.filetransfer,org.eclipse.ecf.provider.filetransfer.ssl,org.eclipse.ecf.ssl,org.eclipse.emf.common,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit,org.eclipse.equinox.app,org.eclipse.equinox.bidi,org.eclipse.equinox.common,org.eclipse.equinox.concurrent,org.eclipse.equinox.event,org.eclipse.equinox.frameworkadmin,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.equinox.http.servlet,org.eclipse.equinox.p2.artifact.repository,org.eclipse.equinox.p2.console,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.director,org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.discovery,org.eclipse.equinox.p2.discovery.compatibility,org.eclipse.equinox.p2.engine,org.eclipse.equinox.p2.extensionlocation,org.eclipse.equinox.p2.garbagecollector,org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.p2.metadata.repository,org.eclipse.equinox.p2.operations,org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.p2.reconciler.dropins,org.eclipse.equinox.p2.repository,org.eclipse.equinox.p2.repository.tools,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.equinox.p2.transport.ecf,org.eclipse.equinox.p2.ui,org.eclipse.equinox.p2.ui.discovery,org.eclipse.equinox.p2.ui.sdk,org.eclipse.equinox.p2.ui.sdk.scheduler,org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.equinox.security,org.eclipse.equinox.security.ui,org.eclipse.equinox.simpleconfigurator,org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.util,org.eclipse.gef,org.eclipse.help,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.jgit,org.eclipse.jgit.ssh.apache,org.eclipse.jsch.core,org.eclipse.jsch.ui,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.osgi.compatibility.state,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.platform,org.eclipse.search,org.eclipse.swt,org.eclipse.team.core,org.eclipse.team.ui,org.eclipse.text,org.eclipse.ui,org.eclipse.ui.browser,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.forms,org.eclipse.ui.genericeditor,org.eclipse.ui.ide,org.eclipse.ui.ide.application,org.eclipse.ui.intro,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.net,org.eclipse.ui.themes,org.eclipse.ui.trace,org.eclipse.ui.views,org.eclipse.ui.views.log,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.workbench,org.eclipse.ui.workbench.texteditor,org.eclipse.update.configurator,org.eclipse.urischeme,org.eclipse.wst.common.core,org.eclipse.wst.common.emf,org.eclipse.wst.common.emfworkbench.integration,org.eclipse.wst.common.environment,org.eclipse.wst.common.frameworks,org.eclipse.wst.common.uriresolver,org.eclipse.wst.sse.core,org.eclipse.wst.validation,org.eclipse.wst.xml.core,org.eclipse.wst.xsd.core,org.eclipse.xsd,org.jkiss.bundle.apache.batik,org.jkiss.bundle.apache.poi,org.jkiss.bundle.gis,org.jkiss.bundle.jfreechart,org.jkiss.bundle.sshj,org.objectweb.asm,org.sat4j.core,org.sat4j.pb,org.slf4j.api,org.slf4j.impl.log4j12,org.tukaani.xz,org.w3c.css.sac,org.w3c.dom.events,org.w3c.dom.smil,org.w3c.dom.svg,slf4j.api"/>
<stringAttribute key="selected_workspace_plugins" value="org.jkiss.dbeaver.cmp.simple,org.jkiss.dbeaver.cmp.simple.ui,org.jkiss.dbeaver.core,org.jkiss.dbeaver.core.application,org.jkiss.dbeaver.data.gis,org.jkiss.dbeaver.data.gis.view,org.jkiss.dbeaver.data.office,org.jkiss.dbeaver.data.transfer,org.jkiss.dbeaver.debug.core,org.jkiss.dbeaver.debug.ui,org.jkiss.dbeaver.ext.athena,org.jkiss.dbeaver.ext.bigquery,org.jkiss.dbeaver.ext.clickhouse,org.jkiss.dbeaver.ext.db2,org.jkiss.dbeaver.ext.db2.i,org.jkiss.dbeaver.ext.db2.zos,org.jkiss.dbeaver.ext.derby,org.jkiss.dbeaver.ext.erd,org.jkiss.dbeaver.ext.es.ui,org.jkiss.dbeaver.ext.exasol,org.jkiss.dbeaver.ext.firebird,org.jkiss.dbeaver.ext.format.sqlworkbenchj,org.jkiss.dbeaver.ext.generic,org.jkiss.dbeaver.ext.generic.ui,org.jkiss.dbeaver.ext.greenplum,org.jkiss.dbeaver.ext.h2,org.jkiss.dbeaver.ext.hana,org.jkiss.dbeaver.ext.hive,org.jkiss.dbeaver.ext.hsqldb,org.jkiss.dbeaver.ext.import_config,org.jkiss.dbeaver.ext.informix,org.jkiss.dbeaver.ext.mockdata,org.jkiss.dbeaver.ext.mssql,org.jkiss.dbeaver.ext.mssql.ui,org.jkiss.dbeaver.ext.mysql,org.jkiss.dbeaver.ext.mysql.ui,org.jkiss.dbeaver.ext.netezza,org.jkiss.dbeaver.ext.oracle,org.jkiss.dbeaver.ext.oracle.ui,org.jkiss.dbeaver.ext.phoenix,org.jkiss.dbeaver.ext.postgresql,org.jkiss.dbeaver.ext.postgresql.debug.core,org.jkiss.dbeaver.ext.postgresql.debug.ui,org.jkiss.dbeaver.ext.postgresql.ui,org.jkiss.dbeaver.ext.sample.database,org.jkiss.dbeaver.ext.snowflake.core,org.jkiss.dbeaver.ext.snowflake.ui,org.jkiss.dbeaver.ext.spanner,org.jkiss.dbeaver.ext.sqlite,org.jkiss.dbeaver.ext.teradata,org.jkiss.dbeaver.ext.ui.colortheme,org.jkiss.dbeaver.ext.ui.locks,org.jkiss.dbeaver.ext.ui.svg,org.jkiss.dbeaver.ext.ui.tipoftheday,org.jkiss.dbeaver.ext.vertica,org.jkiss.dbeaver.ext.vertica.ui,org.jkiss.dbeaver.ext.wmi,org.jkiss.dbeaver.model,org.jkiss.dbeaver.model.sql,org.jkiss.dbeaver.net.ssh,org.jkiss.dbeaver.net.ssh.jsch,org.jkiss.dbeaver.net.ssh.sshj,org.jkiss.dbeaver.net.ssh.ui,org.jkiss.dbeaver.registry,org.jkiss.dbeaver.slf4j,org.jkiss.dbeaver.ui,org.jkiss.dbeaver.ui.charts,org.jkiss.dbeaver.ui.dashboard,org.jkiss.dbeaver.ui.editors.acl,org.jkiss.dbeaver.ui.editors.base,org.jkiss.dbeaver.ui.editors.connection,org.jkiss.dbeaver.ui.editors.content,org.jkiss.dbeaver.ui.editors.data,org.jkiss.dbeaver.ui.editors.entity,org.jkiss.dbeaver.ui.editors.hex,org.jkiss.dbeaver.ui.editors.image,org.jkiss.dbeaver.ui.editors.json@default:default,org.jkiss.dbeaver.ui.editors.sql,org.jkiss.dbeaver.ui.editors.xml,org.jkiss.dbeaver.ui.navigator,org.jkiss.dbeaver.ui.search,org.jkiss.utils,org.jkiss.wmi"/>
<booleanAttribute key="show_selected_only" value="false"/>
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册