properties, ITerminalService.Done done) {
- Assert.isNotNull(properties);
-
- // Set the terminal tab title
- String terminalTitle = getTerminalTitle(properties);
- if (terminalTitle != null) {
- properties.put(ITerminalsConnectorConstants.PROP_TITLE, terminalTitle);
- }
-
- // If not configured, set the default encodings for the local terminal
- if (!properties.containsKey(ITerminalsConnectorConstants.PROP_ENCODING)) {
- String encoding = null;
- // Set the default encoding:
- // Default UTF-8 on Mac or Windows for Local, Preferences:Platform encoding otherwise
- if (Platform.OS_MACOSX.equals(Platform.getOS()) || Platform.OS_WIN32.equals(Platform.getOS())) {
- encoding = "UTF-8"; //$NON-NLS-1$
- } else {
- encoding = WorkbenchEncoding.getWorkbenchDefaultEncoding();
- }
- if (encoding != null && !"".equals(encoding)) //$NON-NLS-1$
- properties.put(ITerminalsConnectorConstants.PROP_ENCODING, encoding);
- }
-
- // For local terminals, force a new terminal tab each time it is launched,
- // if not set otherwise from outside
- if (!properties.containsKey(ITerminalsConnectorConstants.PROP_FORCE_NEW)) {
- properties.put(ITerminalsConnectorConstants.PROP_FORCE_NEW, Boolean.TRUE);
- }
-
- // Initialize the local terminal working directory.
- if (!properties.containsKey(ITerminalsConnectorConstants.PROP_PROCESS_WORKING_DIR)) {
- // By default, start the local terminal in the users home directory
- String initialCwd = org.eclipse.tm.terminal.view.ui.activator.UIPlugin.getScopedPreferences()
- .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD);
- String cwd = null;
- if (initialCwd == null || IPreferenceKeys.PREF_INITIAL_CWD_USER_HOME.equals(initialCwd)
- || "".equals(initialCwd.trim())) { //$NON-NLS-1$
- cwd = System.getProperty("user.home"); //$NON-NLS-1$
- } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_HOME.equals(initialCwd)) {
- String eclipseHomeLocation = System.getProperty("eclipse.home.location"); //$NON-NLS-1$
- if (eclipseHomeLocation != null) {
- try {
- URI uri = URIUtil.fromString(eclipseHomeLocation);
- File f = URIUtil.toFile(uri);
- cwd = f.getAbsolutePath();
- } catch (URISyntaxException ex) {
- /* ignored on purpose */ }
- }
- } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_WS.equals(initialCwd)) {
- Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
- if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
- if (org.eclipse.core.resources.ResourcesPlugin.getWorkspace() != null
- && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot() != null
- && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot()
- .getLocation() != null) {
- cwd = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation()
- .toOSString();
- }
- }
- } else {
- try {
- // Resolve possible dynamic variables
- IStringVariableManager vm = VariablesPlugin.getDefault().getStringVariableManager();
- String resolved = vm.performStringSubstitution(initialCwd);
-
- IPath p = new Path(resolved);
- if (p.toFile().canRead() && p.toFile().isDirectory()) {
- cwd = p.toOSString();
- }
- } catch (CoreException ex) {
- if (Platform.inDebugMode()) {
- UIPlugin.getDefault().getLog().log(ex.getStatus());
- }
- }
- }
-
- if (cwd != null && !"".equals(cwd)) { //$NON-NLS-1$
- properties.put(ITerminalsConnectorConstants.PROP_PROCESS_WORKING_DIR, cwd);
- }
- }
-
- // If the current selection resolved to an folder, default the working directory
- // to that folder and update the terminal title
- ISelectionService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
- if ((service != null && service.getSelection() != null)
- || properties.containsKey(ITerminalsConnectorConstants.PROP_SELECTION)) {
- ISelection selection = (ISelection) properties.get(ITerminalsConnectorConstants.PROP_SELECTION);
- if (selection == null)
- selection = service.getSelection();
- if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
- String dir = null;
- Iterator> iter = ((IStructuredSelection) selection).iterator();
- while (iter.hasNext()) {
- Object element = iter.next();
-
- Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
- if (bundle != null && bundle.getState() != Bundle.UNINSTALLED
- && bundle.getState() != Bundle.STOPPING) {
- // If the element is not an IResource, try to adapt to IResource
- if (!(element instanceof org.eclipse.core.resources.IResource)) {
- Object adapted = element instanceof IAdaptable
- ? ((IAdaptable) element).getAdapter(org.eclipse.core.resources.IResource.class)
- : null;
- if (adapted == null)
- adapted = Platform.getAdapterManager().getAdapter(element,
- org.eclipse.core.resources.IResource.class);
- if (adapted != null)
- element = adapted;
- }
-
- if (element instanceof org.eclipse.core.resources.IResource
- && ((org.eclipse.core.resources.IResource) element).exists()) {
- IPath location = ((org.eclipse.core.resources.IResource) element).getLocation();
- if (location == null)
- continue;
- if (location.toFile().isFile())
- location = location.removeLastSegments(1);
- if (location.toFile().isDirectory() && location.toFile().canRead()) {
- dir = location.toFile().getAbsolutePath();
- break;
- }
- }
-
- if (element instanceof IPath || element instanceof File) {
- File f = element instanceof IPath ? ((IPath) element).toFile() : (File) element;
- if (f.isDirectory() && f.canRead()) {
- dir = f.getAbsolutePath();
- break;
- }
- }
- }
- }
- if (dir != null) {
- properties.put(ITerminalsConnectorConstants.PROP_PROCESS_WORKING_DIR, dir);
-
- String basename = new Path(dir).lastSegment();
- properties.put(ITerminalsConnectorConstants.PROP_TITLE, basename + " (" + terminalTitle + ")"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- }
-
- // Get the terminal service
- ITerminalService terminal = TerminalServiceFactory.getService();
- // If not available, we cannot fulfill this request
- if (terminal != null) {
- terminal.openConsole(properties, done);
- }
- }
-
- /**
- * Returns the terminal title string.
- *
- * The default implementation constructs a title like "Serial <port> (Start time) ".
- *
- * @return The terminal title string or null
.
- */
- private String getTerminalTitle(Map properties) {
- // Try to see if the user set a title explicitly via the properties map.
- String title = getDefaultTerminalTitle(properties);
- if (title != null)
- return title;
-
- try {
- String hostname = InetAddress.getLocalHost().getHostName();
- if (hostname != null && !"".equals(hostname.trim())) { //$NON-NLS-1$
- return hostname;
- }
- } catch (UnknownHostException e) {
- /* ignored on purpose */ }
-
- return "Local"; //$NON-NLS-1$
- }
-
- @Override
- public T getAdapter(Class adapter) {
- if (IMementoHandler.class.equals(adapter)) {
- return adapter.cast(mementoHandler);
- }
- return super.getAdapter(adapter);
- }
-
- /**
- * Returns the default shell to launch. Looks at the environment
- * variable "SHELL" first before assuming some default default values.
- *
- * @return The default shell to launch.
- */
- private final File defaultShell() {
- String shell = null;
- if (Platform.OS_WIN32.equals(Platform.getOS())) {
- if (System.getenv("ComSpec") != null && !"".equals(System.getenv("ComSpec").trim())) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- shell = System.getenv("ComSpec").trim(); //$NON-NLS-1$
- } else {
- shell = "cmd.exe"; //$NON-NLS-1$
- }
- }
- if (shell == null) {
- shell = org.eclipse.tm.terminal.view.ui.activator.UIPlugin.getScopedPreferences()
- .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX);
- if (shell == null || "".equals(shell)) { //$NON-NLS-1$
- if (System.getenv("SHELL") != null && !"".equals(System.getenv("SHELL").trim())) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- shell = System.getenv("SHELL").trim(); //$NON-NLS-1$
- } else {
- shell = "/bin/sh"; //$NON-NLS-1$
- }
- }
- }
-
- return new File(shell);
- }
-
- @Override
- public ITerminalConnector createTerminalConnector(Map properties) {
- Assert.isNotNull(properties);
-
- // Check for the terminal connector id
- String connectorId = (String) properties.get(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
- if (connectorId == null)
- connectorId = "org.eclipse.tm.terminal.connector.local.LocalConnector"; //$NON-NLS-1$
-
- // Extract the process properties using defaults
- String image;
- if (!properties.containsKey(ITerminalsConnectorConstants.PROP_PROCESS_PATH)
- || properties.get(ITerminalsConnectorConstants.PROP_PROCESS_PATH) == null) {
- File defaultShell = defaultShell();
- image = defaultShell.isAbsolute() ? defaultShell.getAbsolutePath() : defaultShell.getPath();
- } else {
- image = (String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_PATH);
- }
-
- String arguments = (String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ARGS);
- if (arguments == null && !Platform.OS_WIN32.equals(Platform.getOS())) {
- arguments = org.eclipse.tm.terminal.view.ui.activator.UIPlugin.getScopedPreferences()
- .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX_ARGS);
- }
-
- // Determine if a PTY will be used
- boolean isUsingPTY = (properties.get(ITerminalsConnectorConstants.PROP_PROCESS_OBJ) == null
- && PTY.isSupported(PTY.Mode.TERMINAL))
- || properties.get(ITerminalsConnectorConstants.PROP_PTY_OBJ) instanceof PTY;
-
- boolean localEcho = false;
- if (!properties.containsKey(ITerminalsConnectorConstants.PROP_LOCAL_ECHO)
- || !(properties.get(ITerminalsConnectorConstants.PROP_LOCAL_ECHO) instanceof Boolean)) {
- // On Windows, turn on local echo by default if no PTY is used (bug 433645)
- if (Platform.OS_WIN32.equals(Platform.getOS())) {
- localEcho = !isUsingPTY;
- }
- } else {
- localEcho = ((Boolean) properties.get(ITerminalsConnectorConstants.PROP_LOCAL_ECHO)).booleanValue();
- }
-
- String lineSeparator = null;
- if (!properties.containsKey(ITerminalsConnectorConstants.PROP_LINE_SEPARATOR)
- || !(properties.get(ITerminalsConnectorConstants.PROP_LINE_SEPARATOR) instanceof String)) {
- // No line separator will be set if a PTY is used
- if (!isUsingPTY) {
- lineSeparator = Platform.OS_WIN32.equals(Platform.getOS()) ? ILineSeparatorConstants.LINE_SEPARATOR_CRLF
- : ILineSeparatorConstants.LINE_SEPARATOR_LF;
- }
- } else {
- lineSeparator = (String) properties.get(ITerminalsConnectorConstants.PROP_LINE_SEPARATOR);
- }
-
- Process process = (Process) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_OBJ);
- PTY pty = (PTY) properties.get(ITerminalsConnectorConstants.PROP_PTY_OBJ);
- ITerminalServiceOutputStreamMonitorListener[] stdoutListeners = (ITerminalServiceOutputStreamMonitorListener[]) properties
- .get(ITerminalsConnectorConstants.PROP_STDOUT_LISTENERS);
- ITerminalServiceOutputStreamMonitorListener[] stderrListeners = (ITerminalServiceOutputStreamMonitorListener[]) properties
- .get(ITerminalsConnectorConstants.PROP_STDERR_LISTENERS);
- String workingDir = (String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_WORKING_DIR);
-
- String[] envp = null;
- if (properties.containsKey(ITerminalsConnectorConstants.PROP_PROCESS_ENVIRONMENT)
- && properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ENVIRONMENT) != null
- && properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ENVIRONMENT) instanceof String[]) {
- envp = (String[]) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ENVIRONMENT);
- }
-
- // Set the ECLIPSE_HOME and ECLIPSE_WORKSPACE environment variables
- List envpList = new ArrayList<>();
- if (envp != null)
- envpList.addAll(Arrays.asList(envp));
-
- // ECLIPSE_HOME
- String eclipseHomeLocation = System.getProperty("eclipse.home.location"); //$NON-NLS-1$
- if (eclipseHomeLocation != null) {
- try {
- URI uri = URIUtil.fromString(eclipseHomeLocation);
- File f = URIUtil.toFile(uri);
- envpList.add("ECLIPSE_HOME=" + f.getAbsolutePath()); //$NON-NLS-1$
- } catch (URISyntaxException e) {
- /* ignored on purpose */ }
- }
-
- // ECLIPSE_WORKSPACE
- Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
- if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
- if (org.eclipse.core.resources.ResourcesPlugin.getWorkspace() != null
- && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot() != null
- && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation() != null) {
- envpList.add("ECLIPSE_WORKSPACE=" + org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot() //$NON-NLS-1$
- .getLocation().toOSString());
- }
- }
-
- // Convert back into a string array
- envp = envpList.toArray(new String[envpList.size()]);
-
- Assert.isTrue(image != null || process != null);
-
- // Construct the terminal settings store
- ISettingsStore store = new SettingsStore();
-
- // Construct the process settings
- ProcessSettings processSettings = new ProcessSettings();
- processSettings.setImage(image);
- processSettings.setArguments(arguments);
- processSettings.setProcess(process);
- processSettings.setPTY(pty);
- processSettings.setLocalEcho(localEcho);
- processSettings.setLineSeparator(lineSeparator);
- processSettings.setStdOutListeners(stdoutListeners);
- processSettings.setStdErrListeners(stderrListeners);
- processSettings.setWorkingDir(workingDir);
- processSettings.setEnvironment(envp);
-
- if (properties.containsKey(ITerminalsConnectorConstants.PROP_PROCESS_MERGE_ENVIRONMENT)) {
- Object value = properties.get(ITerminalsConnectorConstants.PROP_PROCESS_MERGE_ENVIRONMENT);
- processSettings
- .setMergeWithNativeEnvironment(value instanceof Boolean ? ((Boolean) value).booleanValue() : false);
- }
-
- // And save the settings to the store
- processSettings.save(store);
-
- // Construct the terminal connector instance
- ITerminalConnector connector = TerminalConnectorExtension.makeTerminalConnector(connectorId);
- if (connector != null) {
- // Apply default settings
- connector.setDefaultSettings();
- // And load the real settings
- connector.load(store);
- }
-
- return connector;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.local/src/org/eclipse/tm/terminal/connector/local/launcher/LocalLauncherHandler.java b/terminal/plugins/org.eclipse.tm.terminal.connector.local/src/org/eclipse/tm/terminal/connector/local/launcher/LocalLauncherHandler.java
deleted file mode 100644
index 18a1c9acb70..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.local/src/org/eclipse/tm/terminal/connector/local/launcher/LocalLauncherHandler.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.local.launcher;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Local terminal launcher handler implementation.
- */
-public class LocalLauncherHandler extends AbstractHandler {
-
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- // Get the current selection
- ISelection selection = HandlerUtil.getCurrentSelection(event);
-
- // If the selection is not a structured selection, check if there is an active
- // editor and get the path from the editor input
- if (!(selection instanceof IStructuredSelection)) {
- IEditorInput input = HandlerUtil.getActiveEditorInput(event);
- if (input instanceof IPathEditorInput) {
- IPath path = ((IPathEditorInput) input).getPath();
- if (path != null) {
- if (path.toFile().isFile())
- path = path.removeLastSegments(1);
- if (path.toFile().isDirectory() && path.toFile().canRead())
- selection = new StructuredSelection(path);
- }
- }
- }
-
- // Get all applicable launcher delegates for the current selection
- ILauncherDelegate[] delegates = LauncherDelegateManager.getInstance().getApplicableLauncherDelegates(selection);
- // Find the local terminal launcher delegate
- ILauncherDelegate delegate = null;
- for (ILauncherDelegate candidate : delegates) {
- if ("org.eclipse.tm.terminal.connector.local.launcher.local".equals(candidate.getId())) { //$NON-NLS-1$
- delegate = candidate;
- break;
- }
- }
-
- // Launch the local terminal
- if (delegate != null) {
- Map properties = new HashMap<>();
- properties.put(ITerminalsConnectorConstants.PROP_DELEGATE_ID, delegate.getId());
- properties.put(ITerminalsConnectorConstants.PROP_SELECTION, selection);
-
- delegate.execute(properties, null);
- }
-
- return null;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.local/src/org/eclipse/tm/terminal/connector/local/launcher/LocalMementoHandler.java b/terminal/plugins/org.eclipse.tm.terminal.connector.local/src/org/eclipse/tm/terminal/connector/local/launcher/LocalMementoHandler.java
deleted file mode 100644
index 393db3ff9aa..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.local/src/org/eclipse/tm/terminal/connector/local/launcher/LocalMementoHandler.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.local.launcher;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
-import org.eclipse.ui.IMemento;
-
-/**
- * Local terminal connection memento handler implementation.
- */
-public class LocalMementoHandler implements IMementoHandler {
-
- @Override
- public void saveState(IMemento memento, Map properties) {
- Assert.isNotNull(memento);
- Assert.isNotNull(properties);
-
- if ((String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_PATH) != null) {
- memento.putString(ITerminalsConnectorConstants.PROP_PROCESS_PATH,
- (String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_PATH));
- }
- if ((String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ARGS) != null) {
- memento.putString(ITerminalsConnectorConstants.PROP_PROCESS_ARGS,
- (String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ARGS));
- }
- if ((Boolean) properties.get(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE) != null) {
- memento.putBoolean(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE,
- (Boolean) properties.get(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE));
- }
- }
-
- @Override
- public void restoreState(IMemento memento, Map properties) {
- Assert.isNotNull(memento);
- Assert.isNotNull(properties);
-
- if (memento.getString(ITerminalsConnectorConstants.PROP_PROCESS_PATH) != null) {
- properties.put(ITerminalsConnectorConstants.PROP_PROCESS_PATH,
- memento.getString(ITerminalsConnectorConstants.PROP_PROCESS_PATH));
- }
- if (memento.getString(ITerminalsConnectorConstants.PROP_PROCESS_ARGS) != null) {
- properties.put(ITerminalsConnectorConstants.PROP_PROCESS_ARGS,
- memento.getString(ITerminalsConnectorConstants.PROP_PROCESS_ARGS));
- }
- if (memento.getBoolean(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE) != null) {
- properties.put(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE,
- memento.getBoolean(ITerminalsConnectorConstants.PROP_TRANSLATE_BACKSLASHES_ON_PASTE));
- }
-
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.classpath b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.classpath
deleted file mode 100644
index 81fe078c20c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.gitignore b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.gitignore
deleted file mode 100644
index ae3c1726048..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.options b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.options
deleted file mode 100644
index 7e3d5dfe7aa..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.tm.terminal.connector.process/debugmode = 0
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.project b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.project
deleted file mode 100644
index 92d9bc9fd90..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.project
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
- org.eclipse.tm.terminal.connector.process
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- 1329502082911
-
- 10
-
- org.eclipse.ui.ide.multiFilter
- 1.0-name-matches-false-false-target
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.core.resources.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.core.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9df862f8d49..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,486 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.launching.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.ui.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d35ba9b5231..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,213 +0,0 @@
-cleanup.add_all=false
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.array_with_curly=false
-cleanup.arrays_fill=false
-cleanup.bitwise_conditional_expression=false
-cleanup.boolean_literal=false
-cleanup.boolean_value_rather_than_comparison=false
-cleanup.break_loop=false
-cleanup.collection_cloning=false
-cleanup.comparing_on_criteria=false
-cleanup.comparison_statement=false
-cleanup.controlflow_merge=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
-cleanup.convert_to_switch_expressions=false
-cleanup.correct_indentation=false
-cleanup.do_while_rather_than_while=true
-cleanup.double_negation=false
-cleanup.else_if=false
-cleanup.embedded_if=false
-cleanup.evaluate_nullable=false
-cleanup.extract_increment=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.hash=false
-cleanup.if_condition=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.instanceof=false
-cleanup.instanceof_keyword=false
-cleanup.invert_equals=false
-cleanup.join=false
-cleanup.lazy_logical_operator=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.map_cloning=false
-cleanup.merge_conditional_blocks=false
-cleanup.multi_catch=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.no_string_creation=false
-cleanup.no_super=false
-cleanup.number_suffix=false
-cleanup.objects_equals=false
-cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
-cleanup.operand_factorization=false
-cleanup.organize_imports=true
-cleanup.overridden_assignment=false
-cleanup.plain_replacement=false
-cleanup.precompile_regex=false
-cleanup.primitive_comparison=false
-cleanup.primitive_parsing=false
-cleanup.primitive_rather_than_wrapper=false
-cleanup.primitive_serialization=false
-cleanup.pull_out_if_from_if_else=false
-cleanup.pull_up_assignment=false
-cleanup.push_down_negation=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.reduce_indentation=false
-cleanup.redundant_comparator=false
-cleanup.redundant_falling_through_block_end=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_array_creation=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_method_parameters=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.return_expression=false
-cleanup.simplify_lambda_expression_and_method_ref=false
-cleanup.single_used_field=false
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.standard_comparison=false
-cleanup.static_inner_class=false
-cleanup.strictly_equal_or_different=false
-cleanup.stringbuffer_to_stringbuilder=false
-cleanup.stringbuilder=false
-cleanup.stringbuilder_for_local_vars=true
-cleanup.stringconcat_to_textblock=false
-cleanup.substring=false
-cleanup.switch=false
-cleanup.system_property=false
-cleanup.system_property_boolean=false
-cleanup.system_property_file_encoding=false
-cleanup.system_property_file_separator=false
-cleanup.system_property_line_separator=false
-cleanup.system_property_path_separator=false
-cleanup.ternary_operator=false
-cleanup.try_with_resource=false
-cleanup.unlooped_while=false
-cleanup.unreachable_block=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_autoboxing=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_directly_map_method=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_string_is_blank=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup.use_unboxing=false
-cleanup.use_var=false
-cleanup.useless_continue=false
-cleanup.useless_return=false
-cleanup.valueof_rather_than_instantiation=false
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.pde.api.tools.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf321d0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.pde.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index ffaa8e3f1a7..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,36 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.exec-env-too-low=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/META-INF/MANIFEST.MF b/terminal/plugins/org.eclipse.tm.terminal.connector.process/META-INF/MANIFEST.MF
deleted file mode 100644
index d0676e3db01..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.connector.process;singleton:=true
-Bundle-Version: 4.9.400.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.connector.process.activator.UIPlugin
-Bundle-Vendor: %providerName
-Import-Package: org.eclipse.cdt.utils.pty;mandatory:=native,
- org.eclipse.cdt.utils.spawner;mandatory:=native
-Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.9.400,4)",
- org.eclipse.core.resources;bundle-version="[3.22.200,4)";resolution:=optional,
- org.eclipse.core.runtime;bundle-version="[3.33.0,4)",
- org.eclipse.tm.terminal.view.core;bundle-version="[4.10.400,5)";resolution:=optional,
- org.eclipse.tm.terminal.view.ui;bundle-version="[4.11.600,5)";resolution:=optional,
- org.eclipse.tm.terminal.control;bundle-version="[5.6.0,6.0.0)",
- org.eclipse.ui;bundle-version="[3.207.200,4)"
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.tm.terminal.connector.process,
- org.eclipse.tm.terminal.connector.process.activator;x-internal:=true,
- org.eclipse.tm.terminal.connector.process.help,
- org.eclipse.tm.terminal.connector.process.nls;x-internal:=true
-Automatic-Module-Name: org.eclipse.tm.terminal.connector.process
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/META-INF/p2.inf b/terminal/plugins/org.eclipse.tm.terminal.connector.process/META-INF/p2.inf
deleted file mode 100644
index 25fac253a0c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/META-INF/p2.inf
+++ /dev/null
@@ -1,99 +0,0 @@
-###############################################################################
-# Copyright (c) 2014, 2025 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-# Tue Ton - support for Linux riscv64
-###############################################################################
-
-# Most of the dependencies exposed here are actually covered in the feature.xml
-# This file ensures that the current bundle has all it needs, even if installed
-# without the enclosing org.eclipse.tm.terminal.view.feature .
-# See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=435150 .
-
-# 1. Make the optional cdt.core dependency non-greedy: Use (or update to proper
-# version!) when installed, but do not install automatically since the newer
-# org.eclipse.cdt.core.native can satisfy the dependency better. We use this
-# trick since CDT 8.3 had no version on export-package yet but we do want
-# a version constraint.
-requires.0.namespace = org.eclipse.equinox.p2.iu
-requires.0.name = org.eclipse.cdt.core
-#requires.0.range = [5.6, 6.0)
-requires.0.greedy = false
-requires.0.optional = true
-
-#requires.1.namespace = org.eclipse.equinox.p2.iu
-#requires.1.name = org.eclipse.cdt.core.native
-#requires.1.range = [5.6, 6.0)
-#requires.1.greedy = true
-#requires.1.optional = true
-
-# 2. Add the required fragments for local terminal support with proper version.
-requires.2.namespace = org.eclipse.equinox.p2.iu
-requires.2.name = org.eclipse.cdt.core.aix
-#requires.2.range = [5.3, 6.0)
-requires.2.filter = (osgi.os=aix)
-
-requires.3.namespace = org.eclipse.equinox.p2.iu
-requires.3.name = org.eclipse.cdt.core.linux
-#requires.3.range = [5.2, 6.0)
-requires.3.filter = (osgi.os=linux)
-
-requires.4.namespace = org.eclipse.equinox.p2.iu
-requires.4.name = org.eclipse.cdt.core.linux.ppc64
-#requires.4.range = [5.1, 6.0)
-requires.4.filter = (&(osgi.os=linux)(osgi.arch=ppc64))
-
-#requires.5.namespace = org.eclipse.equinox.p2.iu
-#requires.5.name = org.eclipse.cdt.core.linux.x86
-#requires.5.range = [5.2, 6.0)
-#requires.5.filter = (&(osgi.os=linux)(osgi.arch=x86))
-
-requires.6.namespace = org.eclipse.equinox.p2.iu
-requires.6.name = org.eclipse.cdt.core.linux.x86_64
-#requires.6.range = [5.2, 6.0)
-requires.6.filter = (&(osgi.os=linux)(osgi.arch=x86_64))
-
-requires.7.namespace = org.eclipse.equinox.p2.iu
-requires.7.name = org.eclipse.cdt.core.macosx
-#requires.7.range = [5.2, 6.0)
-requires.7.filter = (osgi.os=macosx)
-
-requires.8.namespace = org.eclipse.equinox.p2.iu
-requires.8.name = org.eclipse.cdt.core.solaris
-#requires.8.range = [5.2, 6.0)
-requires.8.filter = (&(osgi.os=solaris)(osgi.arch=sparc))
-
-requires.9.namespace = org.eclipse.equinox.p2.iu
-requires.9.name = org.eclipse.cdt.core.win32
-#requires.9.range = [5.3, 6.0)
-requires.9.filter = (osgi.os=win32)
-
-#requires.10.namespace = org.eclipse.equinox.p2.iu
-#requires.10.name = org.eclipse.cdt.core.win32.x86
-#requires.10.range = [5.2, 6.0)
-#requires.10.filter = (&(osgi.os=win32)(osgi.arch=x86))
-
-requires.11.namespace = org.eclipse.equinox.p2.iu
-requires.11.name = org.eclipse.cdt.core.win32.x86_64
-#requires.11.range = [5.2, 6.0)
-requires.11.filter = (&(osgi.os=win32)(osgi.arch=x86_64))
-
-requires.12.namespace = org.eclipse.equinox.p2.iu
-requires.12.name = org.eclipse.cdt.core.linux.aarch64
-#requires.12.range = [5.2, 6.0)
-requires.12.filter = (&(osgi.os=linux)(osgi.arch=aarch64))
-
-requires.13.namespace = org.eclipse.equinox.p2.iu
-requires.13.name = org.eclipse.cdt.core.win32.aarch64
-#requires.13.range = [5.2, 6.0)
-requires.13.filter = (&(osgi.os=win32)(osgi.arch=aarch64))
-
-requires.14.namespace = org.eclipse.equinox.p2.iu
-requires.14.name = org.eclipse.cdt.core.linux.riscv64
-#requires.14.range = [5.2, 6.0)
-requires.14.filter = (&(osgi.os=linux)(osgi.arch=riscv64))
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/about.html b/terminal/plugins/org.eclipse.tm.terminal.connector.process/about.html
deleted file mode 100644
index b3134865230..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/about.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
- About
-
-
-
- About This Content
-
- November 30, 2017
- License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at https://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at https://www.eclipse.org.
-
-
-
-
-
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/build.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.process/build.properties
deleted file mode 100644
index 1f1e5365420..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- plugin.properties,\
- about.html
-src.includes = about.html
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/plugin.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.process/plugin.properties
deleted file mode 100644
index 20001e08799..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-##################################################################################
-# Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-##################################################################################
-
-pluginName = Terminal Process Connector
-providerName = Eclipse CDT
-
-# ----- Terminal Connectors -----
-
-TerminalConnector.process=Process Connector (hidden)
-
-# ----- Terminal Launcher Delegates -----
-
-ProcessLauncherDelegate.label=Streams Terminal
-
-# ----- Commands and Menu contributions -----
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/plugin.xml b/terminal/plugins/org.eclipse.tm.terminal.connector.process/plugin.xml
deleted file mode 100644
index 4b981ff8272..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/plugin.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java
deleted file mode 100644
index 7b519189445..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Kaloyan Raev - Bug 485658 - NPE prevents displaying the actual error
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.process;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StreamTokenizer;
-import java.io.StringReader;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-
-import org.eclipse.cdt.utils.pty.PTY;
-import org.eclipse.cdt.utils.spawner.ProcessFactory;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.internal.terminal.emulator.VT100Emulator;
-import org.eclipse.tm.internal.terminal.emulator.VT100TerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.NullSettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.connector.process.activator.UIPlugin;
-import org.eclipse.tm.terminal.connector.process.nls.Messages;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ILineSeparatorConstants;
-import org.eclipse.tm.terminal.view.core.utils.Env;
-import org.eclipse.tm.terminal.view.ui.manager.ConsoleManager;
-import org.eclipse.tm.terminal.view.ui.streams.AbstractStreamsConnector;
-
-/**
- * Process connector implementation.
- */
-@SuppressWarnings("restriction")
-public class ProcessConnector extends AbstractStreamsConnector {
- // Reference to the process settings
- private final ProcessSettings settings;
-
- // Reference to the PTY instance.
- private PTY pty;
- // Reference to the launched process instance.
- private Process process;
- // Reference to the process monitor
- private ProcessMonitor monitor;
-
- // The terminal width and height. Initially unknown.
- private int width = -1;
- private int height = -1;
-
- /**
- * Constructor.
- */
- public ProcessConnector() {
- this(new ProcessSettings());
- }
-
- /**
- * Constructor.
- *
- * @param settings The process settings. Must not be null
- */
- public ProcessConnector(ProcessSettings settings) {
- super();
-
- Assert.isNotNull(settings);
- this.settings = settings;
- }
-
- /**
- * Returns the process object or null
if the
- * connector is connector.
- *
- * @return The process object or null
.
- */
- public Process getProcess() {
- return process;
- }
-
- @Override
- public void connect(ITerminalControl control) {
- Assert.isNotNull(control);
- super.connect(control);
-
- pty = null;
- width = -1;
- height = -1;
-
- try {
- boolean isAnsiTerminal = false;
-
- // Try to determine process and PTY instance from the process settings
- process = settings.getProcess();
- pty = settings.getPTY();
-
- // No process -> create PTY on supported platforms and execute
- // process image.
- if (process == null) {
- if (PTY.isSupported(PTY.Mode.TERMINAL)) {
- try {
- pty = new PTY(PTY.Mode.TERMINAL);
-
- // Initialize the terminal size
- VT100Emulator text = ((VT100TerminalControl) control).getTerminalText();
- text.fontChanged();
- } catch (IOException e) {
- // PTY not supported
- }
- }
-
- // Build up the command
- StringBuilder command = new StringBuilder(settings.getImage());
- String arguments = settings.getArguments();
- if (arguments != null && !"".equals(arguments.trim())) { //$NON-NLS-1$
- // Append to the command now
- command.append(" "); //$NON-NLS-1$
- command.append(arguments.trim());
- }
-
- File workingDir = null;
- if (settings.getWorkingDir() != null) {
- workingDir = new File(settings.getWorkingDir());
- }
-
- String[] envp = null;
- if (settings.getEnvironment() != null) {
- envp = settings.getEnvironment();
- }
-
- if (settings.isMergeWithNativeEnvironment()) {
- envp = Env.getEnvironment(envp, true);
- }
-
- isAnsiTerminal = getTermVariable(envp).startsWith("ansi"); //$NON-NLS-1$
-
- if (pty != null) {
- // A PTY is available -> can use the ProcessFactory.
-
- // Tokenize the command (ProcessFactory takes an array)
- StreamTokenizer st = new StreamTokenizer(new StringReader(command.toString()));
- st.resetSyntax();
- st.whitespaceChars(0, 32);
- st.whitespaceChars(0xa0, 0xa0);
- st.wordChars(33, 255);
- st.quoteChar('"');
- st.quoteChar('\'');
-
- List argv = new ArrayList<>();
- int ttype = st.nextToken();
- while (ttype != StreamTokenizer.TT_EOF) {
- argv.add(st.sval);
- ttype = st.nextToken();
- }
-
- // Execute the process
- process = ProcessFactory.getFactory().exec(argv.toArray(new String[argv.size()]), envp, workingDir,
- pty);
- } else {
- // No PTY -> just execute via the standard Java Runtime implementation.
- process = Runtime.getRuntime().exec(command.toString(), envp, workingDir);
- }
- }
-
- String lineSeparator = settings.getLineSeparator();
- if (lineSeparator == null && pty == null) {
- lineSeparator = System.getProperty("line.separator"); //$NON-NLS-1$
- if ("\r".equals(lineSeparator)) { //$NON-NLS-1$
- lineSeparator = ILineSeparatorConstants.LINE_SEPARATOR_CR;
- } else if ("\n".equals(lineSeparator)) { //$NON-NLS-1$
- lineSeparator = ILineSeparatorConstants.LINE_SEPARATOR_LF;
- } else {
- lineSeparator = ILineSeparatorConstants.LINE_SEPARATOR_CRLF;
- }
- }
-
- // Setup the listeners
- setStdoutListeners(settings.getStdOutListeners());
- setStderrListeners(settings.getStdErrListeners());
-
- // Enable VT100 line wrapping if we are connected via pty
- // And TERM is VT100 compatible
- if (pty != null && !isAnsiTerminal)
- control.setVT100LineWrapping(true);
-
- // connect the streams
- connectStreams(control, process.getOutputStream(), process.getInputStream(),
- (pty == null ? process.getErrorStream() : null), settings.isLocalEcho(), lineSeparator);
-
- // Set the terminal control state to CONNECTED
- control.setState(TerminalState.CONNECTED);
-
- // Create the process monitor
- monitor = new ProcessMonitor(this);
- monitor.startMonitoring();
- } catch (IOException e) {
- // Disconnect right away
- disconnect();
- // Save the shell so the error message can have somewhere to display
- Shell shell = control.getShell();
- // Lookup the tab item
- CTabItem item = ConsoleManager.getInstance().findConsole(control);
- if (item != null)
- item.dispose();
- // Get the error message from the exception
- String msg = e.getLocalizedMessage() != null ? e.getLocalizedMessage() : ""; //$NON-NLS-1$
- Assert.isNotNull(msg);
- // Strip away "Exec_tty error:"
- msg = msg.replace("Exec_tty error:", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$
- // Repackage into a more user friendly error
- msg = NLS.bind(Messages.ProcessConnector_error_creatingProcess, settings.getImage(), msg);
- // Open an error dialog
- MessageDialog.openError(shell, Messages.ProcessConnector_error_title, msg);
- }
- }
-
- private static String getTermVariable(String[] envp) {
- if (envp != null && !Platform.OS_WIN32.equals(Platform.getOS()))
- for (String var : envp)
- if (var.startsWith("TERM=")) //$NON-NLS-1$
- return var.substring(5);
- return "xterm"; //$NON-NLS-1$
- }
-
- @Override
- public boolean isLocalEcho() {
- return settings.isLocalEcho();
- }
-
- @Override
- public void doDisconnect() {
- // Stop monitoring the process
- if (monitor != null) {
- monitor.dispose();
- }
-
- boolean isWindows = Platform.OS_WIN32.equals(Platform.getOS());
-
- if (!isWindows) {
- // Destroy the process first, except on windows (Bug 465674)
- if (process != null) {
- process.destroy();
- process = null;
- }
- }
-
- // Dispose the streams
- super.doDisconnect();
-
- if (isWindows) {
- // On Windows destroy the process after closing streams
- if (process != null) {
- process.destroy();
- process = null;
- }
- }
-
- // Set the terminal control state to CLOSED.
- fControl.setState(TerminalState.CLOSED);
- }
-
- @Override
- public void setDefaultSettings() {
- settings.load(new NullSettingsStore());
- }
-
- @Override
- public String getSettingsSummary() {
- return settings.getImage() != null ? settings.getImage() : ""; //$NON-NLS-1$
- }
-
- @Override
- public void load(ISettingsStore store) {
- settings.load(store);
- }
-
- @Override
- public void save(ISettingsStore store) {
- settings.save(store);
- }
-
- @Override
- public void setTerminalSize(int newWidth, int newHeight) {
- if (width != newWidth || height != newHeight) {
- width = newWidth;
- height = newHeight;
- if (pty != null) {
- pty.setTerminalSize(newWidth, newHeight);
- }
- }
- }
-
- /**
- * @since 4.8
- */
- @Override
- public Optional getWorkingDirectory() {
- try {
- long pid = process.pid();
- try {
- if (Platform.getOS().equals(Platform.OS_LINUX)) {
- Path procCwd = Files.readSymbolicLink(FileSystems.getDefault().getPath("/proc/" + pid + "/cwd")); //$NON-NLS-1$//$NON-NLS-2$
- return Optional.of(procCwd.toAbsolutePath().toString());
- }
- } catch (Exception e) {
- UIPlugin.log("Failed to obtain working directory of process id " + pid, e); //$NON-NLS-1$
- }
- } catch (Exception e) {
- UIPlugin.log("Failed to obtain process id of terminal process", e); //$NON-NLS-1$
- }
- return Optional.empty();
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessLauncherDelegate.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessLauncherDelegate.java
deleted file mode 100644
index 89c114365c6..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessLauncherDelegate.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.process;
-
-import java.util.Map;
-
-import org.eclipse.cdt.utils.pty.PTY;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
-import org.eclipse.tm.terminal.view.core.TerminalServiceFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
-import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
-
-/**
- * Process launcher delegate implementation.
- */
-@SuppressWarnings("restriction")
-public class ProcessLauncherDelegate extends AbstractLauncherDelegate {
-
- @Override
- public boolean needsUserConfiguration() {
- return false;
- }
-
- @Override
- public IConfigurationPanel getPanel(IConfigurationPanelContainer container) {
- return null;
- }
-
- @Override
- public void execute(Map properties, ITerminalService.Done done) {
- Assert.isNotNull(properties);
-
- // Get the terminal service
- ITerminalService terminal = TerminalServiceFactory.getService();
- // If not available, we cannot fulfill this request
- if (terminal != null) {
- terminal.openConsole(properties, done);
- }
- }
-
- @Override
- public ITerminalConnector createTerminalConnector(Map properties) {
- Assert.isNotNull(properties);
-
- // Check for the terminal connector id
- String connectorId = (String) properties.get(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
- if (connectorId == null)
- connectorId = "org.eclipse.tm.terminal.connector.process.ProcessConnector"; //$NON-NLS-1$
-
- // Extract the process properties
- String image = (String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_PATH);
- String arguments = (String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ARGS);
- Process process = (Process) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_OBJ);
- PTY pty = (PTY) properties.get(ITerminalsConnectorConstants.PROP_PTY_OBJ);
- Object value = properties.get(ITerminalsConnectorConstants.PROP_LOCAL_ECHO);
- boolean localEcho = value instanceof Boolean ? ((Boolean) value).booleanValue() : false;
- String lineSeparator = (String) properties.get(ITerminalsConnectorConstants.PROP_LINE_SEPARATOR);
- ITerminalServiceOutputStreamMonitorListener[] stdoutListeners = (ITerminalServiceOutputStreamMonitorListener[]) properties
- .get(ITerminalsConnectorConstants.PROP_STDOUT_LISTENERS);
- ITerminalServiceOutputStreamMonitorListener[] stderrListeners = (ITerminalServiceOutputStreamMonitorListener[]) properties
- .get(ITerminalsConnectorConstants.PROP_STDERR_LISTENERS);
- String workingDir = (String) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_WORKING_DIR);
-
- String[] envp = null;
- if (properties.containsKey(ITerminalsConnectorConstants.PROP_PROCESS_ENVIRONMENT)
- && properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ENVIRONMENT) != null
- && properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ENVIRONMENT) instanceof String[]) {
- envp = (String[]) properties.get(ITerminalsConnectorConstants.PROP_PROCESS_ENVIRONMENT);
- }
-
- Assert.isTrue(image != null || process != null);
-
- // Construct the terminal settings store
- ISettingsStore store = new SettingsStore();
-
- // Construct the process settings
- ProcessSettings processSettings = new ProcessSettings();
- processSettings.setImage(image);
- processSettings.setArguments(arguments);
- processSettings.setProcess(process);
- processSettings.setPTY(pty);
- processSettings.setLocalEcho(localEcho);
- processSettings.setLineSeparator(lineSeparator);
- processSettings.setStdOutListeners(stdoutListeners);
- processSettings.setStdErrListeners(stderrListeners);
- processSettings.setWorkingDir(workingDir);
- processSettings.setEnvironment(envp);
-
- if (properties.containsKey(ITerminalsConnectorConstants.PROP_PROCESS_MERGE_ENVIRONMENT)) {
- value = properties.get(ITerminalsConnectorConstants.PROP_PROCESS_MERGE_ENVIRONMENT);
- processSettings
- .setMergeWithNativeEnvironment(value instanceof Boolean ? ((Boolean) value).booleanValue() : false);
- }
-
- // And save the settings to the store
- processSettings.save(store);
-
- // Construct the terminal connector instance
- ITerminalConnector connector = TerminalConnectorExtension.makeTerminalConnector(connectorId);
- if (connector != null) {
- // Apply default settings
- connector.setDefaultSettings();
- // And load the real settings
- connector.load(store);
- }
-
- return connector;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessMonitor.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessMonitor.java
deleted file mode 100644
index f40cca74fd0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessMonitor.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.process;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Process monitor implementation.
- */
-public class ProcessMonitor {
- // Reference to the parent process connector
- private final ProcessConnector processConnector;
- // Reference to the monitored process
- private final Process process;
- // Reference to the monitor thread
- private Thread thread;
- // Flag to mark the monitor disposed
- private boolean disposed;
-
- /**
- * Constructor.
- *
- * @param processConnector The parent process connector. Must not be null
.
- */
- public ProcessMonitor(ProcessConnector processConnector) {
- super();
-
- Assert.isNotNull(processConnector);
- this.processConnector = processConnector;
-
- // Query the monitored process for easier access
- this.process = processConnector.getProcess();
- }
-
- /**
- * Dispose the process monitor.
- */
- public void dispose() {
- // Set the disposed status
- disposed = true;
- // Not initialized -> return immediately
- if (thread == null)
- return;
-
- // Copy the reference
- final Thread oldThread = thread;
- // Unlink the monitor from the thread
- thread = null;
- // And interrupt the writer thread
- oldThread.interrupt();
- }
-
- /**
- * Starts the terminal output stream monitor.
- */
- public void startMonitoring() {
- // If already initialized -> return immediately
- if (thread != null)
- return;
-
- // Create a new runnable which is constantly reading from the stream
- Runnable runnable = () -> monitorProcess();
-
- // Create the monitor thread
- thread = new Thread(runnable, "Terminal Process Monitor Thread"); //$NON-NLS-1$
-
- // Configure the monitor thread
- thread.setDaemon(true);
-
- // Start the processing
- thread.start();
- }
-
- /**
- * Monitors the associated system process, waiting for it to terminate,
- * and notifies the associated process monitor's.
- */
- public void monitorProcess() {
- // If already disposed -> return immediately
- if (disposed)
- return;
-
- try {
- // Wait for the monitored process to terminate
- process.waitFor();
- } catch (InterruptedException ie) {
- // clear interrupted state
- Thread.interrupted();
- } finally {
- // Dispose the parent process connector
- if (!disposed)
- processConnector.disconnect();
- }
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessSettings.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessSettings.java
deleted file mode 100644
index 48b55a0b4fc..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessSettings.java
+++ /dev/null
@@ -1,305 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.process;
-
-import org.eclipse.cdt.utils.pty.PTY;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
-import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
-
-/**
- * Process connector settings implementation.
- */
-@SuppressWarnings("restriction")
-public class ProcessSettings {
- // Reference to the process image
- private String image;
- // Reference to the process arguments (space separated string)
- private String arguments;
- // Reference to the process object
- private Process process;
- // Reference to the pseudo terminal object
- private PTY pty;
- // Flag to control the local echo (defaults to true if
- // the PTY is not supported on the current host platform)
- private boolean localEcho = !PTY.isSupported(PTY.Mode.CONSOLE);
- // The line separator setting
- private String lineSeparator = null;
- // The list of stdout output listeners
- private ITerminalServiceOutputStreamMonitorListener[] stdoutListeners = null;
- // The list of stderr output listeners
- private ITerminalServiceOutputStreamMonitorListener[] stderrListeners = null;
- // working directory for process
- private String workingDir;
- // environment
- private String[] environment;
- // Flag to control if the provided environment is
- // automatically merged with the native process environment.
- // Defaults to "true".
- private boolean mergeWithNativeEnvironment = true;
-
- /**
- * Sets the process image.
- *
- * @param image The process image or null
.
- */
- public void setImage(String image) {
- this.image = image;
- }
-
- /**
- * Returns the process image.
- *
- * @return The process image or null
.
- */
- public String getImage() {
- return image;
- }
-
- /**
- * Sets the process arguments.
- *
- * The arguments are space separated. The caller is responsible for
- * correct quoting.
- *
- * @param arguments The process arguments or null
.
- */
- public void setArguments(String arguments) {
- this.arguments = arguments;
- }
-
- /**
- * Returns the process arguments.
- *
- * @return The process arguments as space separated list or null
.
- */
- public String getArguments() {
- return arguments;
- }
-
- /**
- * Sets the process object.
- *
- * @param image The process object or null
.
- */
- public void setProcess(Process process) {
- this.process = process;
- }
-
- /**
- * Returns the process object.
- *
- * @return The process object or null
.
- */
- public Process getProcess() {
- return process;
- }
-
- /**
- * Sets the pseudo terminal object.
- *
- * @param pty The pseudo terminal or null
.
- */
- public void setPTY(PTY pty) {
- this.pty = pty;
- // If the PTY is set to "null", the local echo will be set to "true"
- if (pty == null)
- setLocalEcho(true);
- }
-
- /**
- * Returns the pseudo terminal object.
- *
- * @return The pseudo terminal or null
.
- */
- public PTY getPTY() {
- return pty;
- }
-
- /**
- * Sets if the process requires a local echo from the
- * terminal widget.
- *
- * @param value Specify true
to enable the local echo, false
otherwise.
- */
- public void setLocalEcho(boolean value) {
- this.localEcho = value;
- }
-
- /**
- * Returns true
if the process requires a local echo
- * from the terminal widget.
- *
- * @return True
if local echo is enabled, false
otherwise.
- */
- public boolean isLocalEcho() {
- return localEcho;
- }
-
- /**
- * Sets the process line separator.
- *
- * @param separator The process line separator null
.
- */
- public void setLineSeparator(String separator) {
- this.lineSeparator = separator;
- }
-
- /**
- * Returns the process line separator.
- *
- * @return The process line separator or null
.
- */
- public String getLineSeparator() {
- return lineSeparator;
- }
-
- /**
- * Sets the list of stdout listeners.
- *
- * @param listeners The list of stdout listeners or null
.
- */
- public void setStdOutListeners(ITerminalServiceOutputStreamMonitorListener[] listeners) {
- this.stdoutListeners = listeners;
- }
-
- /**
- * Returns the list of stdout listeners.
- *
- * @return The list of stdout listeners or null
.
- */
- public ITerminalServiceOutputStreamMonitorListener[] getStdOutListeners() {
- return stdoutListeners;
- }
-
- /**
- * Sets the list of stderr listeners.
- *
- * @param listeners The list of stderr listeners or null
.
- */
- public void setStdErrListeners(ITerminalServiceOutputStreamMonitorListener[] listeners) {
- this.stderrListeners = listeners;
- }
-
- /**
- * Returns the list of stderr listeners.
- *
- * @return The list of stderr listeners or null
.
- */
- public ITerminalServiceOutputStreamMonitorListener[] getStdErrListeners() {
- return stderrListeners;
- }
-
- /**
- * Returns the working directory
- *
- * @return
- */
- public String getWorkingDir() {
- return this.workingDir;
- }
-
- /**
- * Sets the working directory of the process
- *
- * @param workingDir the absolute path of the working directory
- */
- public void setWorkingDir(String workingDir) {
- this.workingDir = workingDir;
- }
-
- /**
- * Get the process environment
- *
- * @return
- */
- public String[] getEnvironment() {
- return environment;
- }
-
- /**
- * Sets the process environment
- *
- * @param environment - will be added to the "parent" environment of the process
- */
- public void setEnvironment(String[] environment) {
- this.environment = environment;
- }
-
- /**
- * Returns if or if not the provided environment is merged with
- * the native process environment.
- *
- * @return True
if the provided environment is merged with the native process environment, false
otherwise.
- */
- public boolean isMergeWithNativeEnvironment() {
- return mergeWithNativeEnvironment;
- }
-
- /**
- * Sets if or if not the provided environment is merged with the
- * native process environment.
- *
- * @param value True
if the provided environment is merged with the native process environment, false
otherwise.
- */
- public void setMergeWithNativeEnvironment(boolean value) {
- this.mergeWithNativeEnvironment = value;
- }
-
- /**
- * Loads the process settings from the given settings store.
- *
- * @param store The settings store. Must not be null
.
- */
- public void load(ISettingsStore store) {
- Assert.isNotNull(store);
- image = store.get("Path", null);//$NON-NLS-1$
- arguments = store.get("Arguments", null); //$NON-NLS-1$
- localEcho = Boolean.parseBoolean(store.get("LocalEcho", Boolean.FALSE.toString())); //$NON-NLS-1$
- mergeWithNativeEnvironment = Boolean
- .parseBoolean(store.get("MergeWithNativeEnvironment", Boolean.FALSE.toString())); //$NON-NLS-1$
- lineSeparator = store.get("LineSeparator", null); //$NON-NLS-1$
- workingDir = store.get("WorkingDir", null); //$NON-NLS-1$
- if (store instanceof SettingsStore) {
- process = (Process) ((SettingsStore) store).getSettings().get("Process"); //$NON-NLS-1$
- pty = (PTY) ((SettingsStore) store).getSettings().get("PTY"); //$NON-NLS-1$
- stdoutListeners = (ITerminalServiceOutputStreamMonitorListener[]) ((SettingsStore) store).getSettings()
- .get("StdOutListeners"); //$NON-NLS-1$
- stderrListeners = (ITerminalServiceOutputStreamMonitorListener[]) ((SettingsStore) store).getSettings()
- .get("StdErrListeners"); //$NON-NLS-1$
- environment = (String[]) ((SettingsStore) store).getSettings().get("Environment"); //$NON-NLS-1$
- }
- }
-
- /**
- * Saves the process settings to the given settings store.
- *
- * @param store The settings store. Must not be null
.
- */
- public void save(ISettingsStore store) {
- Assert.isNotNull(store);
- store.put("Path", image);//$NON-NLS-1$
- store.put("Arguments", arguments); //$NON-NLS-1$
- store.put("LocalEcho", Boolean.toString(localEcho)); //$NON-NLS-1$
- store.put("MergeWithNativeEnvironment", Boolean.toString(mergeWithNativeEnvironment)); //$NON-NLS-1$
- store.put("LineSeparator", lineSeparator); //$NON-NLS-1$
- store.put("WorkingDir", workingDir); //$NON-NLS-1$
- if (store instanceof SettingsStore) {
- ((SettingsStore) store).getSettings().put("Process", process); //$NON-NLS-1$
- ((SettingsStore) store).getSettings().put("PTY", pty); //$NON-NLS-1$
- ((SettingsStore) store).getSettings().put("StdOutListeners", stdoutListeners); //$NON-NLS-1$
- ((SettingsStore) store).getSettings().put("StdErrListeners", stderrListeners); //$NON-NLS-1$
- ((SettingsStore) store).getSettings().put("Environment", environment); //$NON-NLS-1$
- }
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessSettingsPage.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessSettingsPage.java
deleted file mode 100644
index 3560c2021bc..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessSettingsPage.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.process;
-
-import org.eclipse.cdt.utils.pty.PTY;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.PlatformUI;
-import org.osgi.framework.Bundle;
-
-/**
- * Process connector settings page implementation.
- */
-@SuppressWarnings("restriction")
-public class ProcessSettingsPage extends AbstractSettingsPage {
- private Text processImageSelectorControl;
- private Button processImageSelectorControlButton;
- private Text processArgumentsControl;
- private Button localEchoSelectorControl;
- private Text processWorkingDirControl;
-
- private final ProcessSettings settings;
-
- /**
- * Constructor.
- *
- * @param settings
- */
- public ProcessSettingsPage(ProcessSettings settings) {
- super();
-
- Assert.isNotNull(settings);
- this.settings = settings;
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- composite.setLayout(new GridLayout());
- composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- // The entry fields shall be properly aligned
- Composite panel = new Composite(composite, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- panel.setLayout(layout);
- panel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // Create the process image selector control
- Label label = new Label(panel, SWT.HORIZONTAL);
- label.setText(Messages.ProcessSettingsPage_processImagePathSelectorControl_label);
-
- // Text field and browse button are aligned it their own panel
- Composite innerPanel = new Composite(panel, SWT.NONE);
- layout = new GridLayout(2, false);
- layout.marginWidth = 0;
- layout.marginHeight = 0;
- innerPanel.setLayout(layout);
- innerPanel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- processImageSelectorControl = new Text(innerPanel, SWT.SINGLE | SWT.BORDER);
- processImageSelectorControl.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- processImageSelectorControlButton = new Button(innerPanel, SWT.PUSH);
- processImageSelectorControlButton.setText(Messages.ProcessSettingsPage_processImagePathSelectorControl_button);
- processImageSelectorControlButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- onBrowseButtonSelected(e);
- }
- });
-
- // Create the process arguments control
- label = new Label(panel, SWT.HORIZONTAL);
- label.setText(Messages.ProcessSettingsPage_processArgumentsControl_label);
-
- processArgumentsControl = new Text(panel, SWT.SINGLE | SWT.BORDER);
- processArgumentsControl.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // Create the process arguments control
- label = new Label(panel, SWT.HORIZONTAL);
- label.setText(Messages.ProcessSettingsPage_processWorkingDirControl_label);
-
- processWorkingDirControl = new Text(panel, SWT.SINGLE | SWT.BORDER);
- processWorkingDirControl.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- // Create the local echo check box
- localEchoSelectorControl = new Button(composite, SWT.CHECK);
- localEchoSelectorControl.setText(Messages.ProcessSettingsPage_localEchoSelectorControl_label);
- localEchoSelectorControl.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- localEchoSelectorControl.setSelection(!PTY.isSupported(PTY.Mode.CONSOLE));
-
- // Initialize the control content
- loadSettings();
- }
-
- /**
- * Called once the user pressed the browse button.
- *
- * @param e The selection event or null
.
- */
- protected void onBrowseButtonSelected(SelectionEvent e) {
- // Determine the shell
- Shell shell = e != null ? e.widget.getDisplay().getActiveShell()
- : PlatformUI.getWorkbench().getDisplay().getActiveShell();
-
- // create a standard file dialog
- FileDialog dialog = new FileDialog(shell, SWT.OPEN);
- dialog.setText(Messages.ProcessSettingsPage_dialogTitle);
-
- // the dialog should open within the directory of the currently selected
- // file. If no file has been currently selected, it should open within the
- // last browsed directory.
- String selectedFile = processImageSelectorControl.getText();
- if (selectedFile != null && selectedFile.trim().length() > 0) {
- IPath filePath = new Path(selectedFile);
- // If the selected file points to an directory, use the directory as is
- IPath filterPath = filePath.toFile().isDirectory() ? filePath : filePath.removeLastSegments(1);
- String filterFileName = filePath.toFile().isDirectory() || !filePath.toFile().exists() ? null
- : filePath.lastSegment();
-
- if (!filterPath.isEmpty()) {
- dialog.setFilterPath(filterPath.toString());
- }
- if (filterFileName != null) {
- dialog.setFileName(filterFileName);
- }
- } else {
- Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
- if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
- dialog.setFilterPath(
- org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString());
- }
- }
-
- // Open the dialog
- selectedFile = dialog.open();
- if (selectedFile != null) {
- processImageSelectorControl.setText(selectedFile);
- }
- }
-
- @Override
- public void saveSettings() {
- settings.setImage(processImageSelectorControl.getText());
- settings.setArguments(processArgumentsControl.getText());
- settings.setLocalEcho(localEchoSelectorControl.getSelection());
- settings.setWorkingDir(processWorkingDirControl.getText());
- settings.setProcess(null);
- }
-
- @Override
- public void loadSettings() {
- processImageSelectorControl.setText(settings.getImage());
- processArgumentsControl.setText(settings.getArguments());
- localEchoSelectorControl.setSelection(settings.isLocalEcho());
- processWorkingDirControl.setText(settings.getWorkingDir());
- }
-
- @Override
- public boolean validateSettings() {
- // The settings are considered valid if the selected process image can be read.
- String selectedFile = processImageSelectorControl.getText();
- return selectedFile != null && !"".equals(selectedFile.trim()) && new Path(selectedFile).toFile().canRead(); //$NON-NLS-1$
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/activator/UIPlugin.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/activator/UIPlugin.java
deleted file mode 100644
index 00a56ddb17e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/activator/UIPlugin.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.process.activator;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.tm.terminal.view.core.tracing.TraceHandler;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class UIPlugin extends AbstractUIPlugin {
- // The shared instance
- private static UIPlugin plugin;
-
- // The trace handler instance
- private static volatile TraceHandler traceHandler;
-
- /**
- * The constructor
- */
- public UIPlugin() {
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static UIPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plugin.
- */
- public static String getUniqueIdentifier() {
- if (getDefault() != null && getDefault().getBundle() != null) {
- return getDefault().getBundle().getSymbolicName();
- }
- return "org.eclipse.tm.terminal.connector.process"; //$NON-NLS-1$
- }
-
- /**
- * Returns the bundles trace handler.
- *
- * @return The bundles trace handler.
- */
- public static TraceHandler getTraceHandler() {
- if (traceHandler == null) {
- traceHandler = new TraceHandler(getUniqueIdentifier());
- }
- return traceHandler;
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
- @Override
- protected void initializeImageRegistry(ImageRegistry registry) {
- super.initializeImageRegistry(registry);
- }
-
- /**
- * Loads the image registered under the specified key from the image
- * registry and returns the Image
object instance.
- *
- * @param key The key the image is registered with.
- * @return The Image
object instance or null
.
- */
- public static Image getImage(String key) {
- return getDefault().getImageRegistry().get(key);
- }
-
- /**
- * Loads the image registered under the specified key from the image
- * registry and returns the ImageDescriptor
object instance.
- *
- * @param key The key the image is registered with.
- * @return The ImageDescriptor
object instance or null
.
- */
- public static ImageDescriptor getImageDescriptor(String key) {
- return getDefault().getImageRegistry().getDescriptor(key);
- }
-
- public static void log(String msg, Throwable e) {
- log(new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.ERROR, msg, e));
- }
-
- public static void log(IStatus status) {
- getDefault().getLog().log(status);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/help/IContextHelpIds.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/help/IContextHelpIds.java
deleted file mode 100644
index 7c6dcb752bf..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/help/IContextHelpIds.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.process.help;
-
-import org.eclipse.tm.terminal.connector.process.activator.UIPlugin;
-
-/**
- * Context help id definitions.
- */
-public interface IContextHelpIds {
-
- /**
- * UI plug-in common context help id prefix.
- */
- public final static String PREFIX = UIPlugin.getUniqueIdentifier() + "."; //$NON-NLS-1$
-
- // ***** Message dialog boxes *****
-
- /**
- * Process connector: Create process failed
- */
- public final static String MESSAGE_CREATE_PROCESS_FAILED = PREFIX + ".status.messageCreateProcessFailed"; //$NON-NLS-1$
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/nls/Messages.java b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/nls/Messages.java
deleted file mode 100644
index 9e53c53460b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/nls/Messages.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.process.nls;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Process terminal connector plug-in externalized strings management.
- */
-public class Messages extends NLS {
-
- // The plug-in resource bundle name
- private static final String BUNDLE_NAME = "org.eclipse.tm.terminal.connector.process.nls.Messages"; //$NON-NLS-1$
-
- /**
- * Static constructor.
- */
- static {
- // Load message values from bundle file
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- // **** Declare externalized string id's down here *****
-
- public static String ProcessConnector_error_title;
- public static String ProcessConnector_error_creatingProcess;
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/nls/Messages.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/nls/Messages.properties
deleted file mode 100644
index 21f4086135e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/nls/Messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-
-ProcessConnector_error_title=Error
-ProcessConnector_error_creatingProcess=Failed to execute ''{0}''.\n\nPossibly caused by:\n{1}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.remote/src/org/eclipse/tm/terminal/connector/remote/internal/RemoteConnector.java b/terminal/plugins/org.eclipse.tm.terminal.connector.remote/src/org/eclipse/tm/terminal/connector/remote/internal/RemoteConnector.java
index f844774788e..02d9c78b56a 100644
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.remote/src/org/eclipse/tm/terminal/connector/remote/internal/RemoteConnector.java
+++ b/terminal/plugins/org.eclipse.tm.terminal.connector.remote/src/org/eclipse/tm/terminal/connector/remote/internal/RemoteConnector.java
@@ -19,7 +19,7 @@
import org.eclipse.terminal.connector.provider.AbstractTerminalConnector;
import org.eclipse.tm.terminal.connector.remote.IRemoteSettings;
-public class RemoteConnector extends AbstractTerminalConnector {
+public class RemoteConnector extends AbstractTerminalConnector {
private OutputStream fOutputStream;
private InputStream fInputStream;
private RemoteConnectionManager fConnection;
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.classpath b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.classpath
deleted file mode 100644
index 81fe078c20c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.gitignore b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.gitignore
deleted file mode 100644
index ae3c1726048..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.options b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.options
deleted file mode 100644
index 8ec18dafab2..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.tm.terminal.connector.ssh/debugmode = 0
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.project b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.project
deleted file mode 100644
index be963dbfb21..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.project
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
- org.eclipse.tm.terminal.connector.ssh
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- 1329502091181
-
- 10
-
- org.eclipse.ui.ide.multiFilter
- 1.0-name-matches-false-false-target
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.core.resources.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.core.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9df862f8d49..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,486 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.launching.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.ui.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d35ba9b5231..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,213 +0,0 @@
-cleanup.add_all=false
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.array_with_curly=false
-cleanup.arrays_fill=false
-cleanup.bitwise_conditional_expression=false
-cleanup.boolean_literal=false
-cleanup.boolean_value_rather_than_comparison=false
-cleanup.break_loop=false
-cleanup.collection_cloning=false
-cleanup.comparing_on_criteria=false
-cleanup.comparison_statement=false
-cleanup.controlflow_merge=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
-cleanup.convert_to_switch_expressions=false
-cleanup.correct_indentation=false
-cleanup.do_while_rather_than_while=true
-cleanup.double_negation=false
-cleanup.else_if=false
-cleanup.embedded_if=false
-cleanup.evaluate_nullable=false
-cleanup.extract_increment=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.hash=false
-cleanup.if_condition=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.instanceof=false
-cleanup.instanceof_keyword=false
-cleanup.invert_equals=false
-cleanup.join=false
-cleanup.lazy_logical_operator=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.map_cloning=false
-cleanup.merge_conditional_blocks=false
-cleanup.multi_catch=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.no_string_creation=false
-cleanup.no_super=false
-cleanup.number_suffix=false
-cleanup.objects_equals=false
-cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
-cleanup.operand_factorization=false
-cleanup.organize_imports=true
-cleanup.overridden_assignment=false
-cleanup.plain_replacement=false
-cleanup.precompile_regex=false
-cleanup.primitive_comparison=false
-cleanup.primitive_parsing=false
-cleanup.primitive_rather_than_wrapper=false
-cleanup.primitive_serialization=false
-cleanup.pull_out_if_from_if_else=false
-cleanup.pull_up_assignment=false
-cleanup.push_down_negation=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.reduce_indentation=false
-cleanup.redundant_comparator=false
-cleanup.redundant_falling_through_block_end=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_array_creation=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_method_parameters=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.return_expression=false
-cleanup.simplify_lambda_expression_and_method_ref=false
-cleanup.single_used_field=false
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.standard_comparison=false
-cleanup.static_inner_class=false
-cleanup.strictly_equal_or_different=false
-cleanup.stringbuffer_to_stringbuilder=false
-cleanup.stringbuilder=false
-cleanup.stringbuilder_for_local_vars=true
-cleanup.stringconcat_to_textblock=false
-cleanup.substring=false
-cleanup.switch=false
-cleanup.system_property=false
-cleanup.system_property_boolean=false
-cleanup.system_property_file_encoding=false
-cleanup.system_property_file_separator=false
-cleanup.system_property_line_separator=false
-cleanup.system_property_path_separator=false
-cleanup.ternary_operator=false
-cleanup.try_with_resource=false
-cleanup.unlooped_while=false
-cleanup.unreachable_block=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_autoboxing=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_directly_map_method=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_string_is_blank=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup.use_unboxing=false
-cleanup.use_var=false
-cleanup.useless_continue=false
-cleanup.useless_return=false
-cleanup.valueof_rather_than_instantiation=false
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.pde.api.tools.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf321d0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.pde.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index ffaa8e3f1a7..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,36 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.exec-env-too-low=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/META-INF/MANIFEST.MF b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/META-INF/MANIFEST.MF
deleted file mode 100644
index 71243691f62..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.connector.ssh;singleton:=true
-Bundle-Version: 4.8.600.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.connector.ssh.activator.UIPlugin
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.9.400,4)",
- org.eclipse.core.runtime;bundle-version="[3.33.0,4)",
- org.eclipse.equinox.security;bundle-version="[1.4.600,2)",
- org.eclipse.tm.terminal.view.core;bundle-version="[4.10.400,5)";resolution:=optional,
- org.eclipse.tm.terminal.view.ui;bundle-version="[4.11.600,5)";resolution:=optional,
- org.eclipse.tm.terminal.control;bundle-version="[5.6.0,6.0.0)",
- org.eclipse.ui;bundle-version="[3.207.200,4)",
- com.jcraft.jsch;bundle-version="[0.1.31,1.0.0)",
- org.eclipse.jsch.core;bundle-version="[1.5.600,2.0.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.tm.terminal.connector.ssh.activator;x-internal:=true,
- org.eclipse.tm.terminal.connector.ssh.connector,
- org.eclipse.tm.terminal.connector.ssh.controls,
- org.eclipse.tm.terminal.connector.ssh.launcher,
- org.eclipse.tm.terminal.connector.ssh.nls;x-internal:=true
-Automatic-Module-Name: org.eclipse.tm.terminal.connector.ssh
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/about.html b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/about.html
deleted file mode 100644
index b3134865230..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/about.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
- About
-
-
-
- About This Content
-
- November 30, 2017
- License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at https://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at https://www.eclipse.org.
-
-
-
-
-
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/build.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/build.properties
deleted file mode 100644
index 296f6c62d52..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties,\
- plugin.xml,\
- about.html,\
- about.ini,\
- about.mappings,\
- about.properties,\
- cdt_logo_icon32.png
-src.includes = about.html
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/plugin.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/plugin.properties
deleted file mode 100644
index cbbf5c4aa02..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/plugin.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-##################################################################################
-# Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-##################################################################################
-
-pluginName = Terminal SSH Connector
-providerName = Eclipse CDT
-
-# ----- Terminal Connector -----
-
-SshConnector.label=SSH
-
-# ----- Terminal Launcher Delegates -----
-
-SshLauncherDelegate.label=SSH Terminal
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/plugin.xml b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/plugin.xml
deleted file mode 100644
index 5c9ea94f3c4..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/plugin.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/activator/UIPlugin.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/activator/UIPlugin.java
deleted file mode 100644
index 598f41ef17b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/activator/UIPlugin.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.activator;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jsch.core.IJSchService;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.tm.terminal.connector.ssh.connector.SshConnection;
-import org.eclipse.tm.terminal.view.core.tracing.TraceHandler;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class UIPlugin extends AbstractUIPlugin {
- // The shared instance
- private static UIPlugin plugin;
- // The trace handler instance
- private static volatile TraceHandler traceHandler;
-
- // ServiceTracker for IJschService
- private ServiceTracker tracker;
-
- /**
- * The constructor
- */
- public UIPlugin() {
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static UIPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plugin.
- */
- public static String getUniqueIdentifier() {
- if (getDefault() != null && getDefault().getBundle() != null) {
- return getDefault().getBundle().getSymbolicName();
- }
- return "org.eclipse.tm.terminal.connector.ssh"; //$NON-NLS-1$
- }
-
- /**
- * Returns the bundles trace handler.
- *
- * @return The bundles trace handler.
- */
- public static TraceHandler getTraceHandler() {
- if (traceHandler == null) {
- traceHandler = new TraceHandler(getUniqueIdentifier());
- }
- return traceHandler;
- }
-
- //---------------------------------------------------------------------------
- //
- //---------------------------------------------------------------------------
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
- */
- @SuppressWarnings("unchecked")
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
-
- tracker = new ServiceTracker(getBundle().getBundleContext(), IJSchService.class.getName(), null);
- tracker.open();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
- */
- @Override
- public void stop(BundleContext context) throws Exception {
- try {
- SshConnection.shutdown();
- tracker.close();
- } finally {
- plugin = null;
- super.stop(context);
- }
- }
-
- /**
- * Returns an instance of IJSchService from the OSGi Registry.
- * @return An instance of IJSchService, or null
if no
- * IJschService service is available.
- */
- public IJSchService getJSchService() {
- return (IJSchService) tracker.getService();
- }
-
- //---------------------------------------------------------------------------
- //
- //---------------------------------------------------------------------------
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeImageRegistry(org.eclipse.jface.resource.ImageRegistry)
- */
- @Override
- protected void initializeImageRegistry(ImageRegistry registry) {
- }
-
- /**
- * Loads the image registered under the specified key from the image
- * registry and returns the Image
object instance.
- *
- * @param key The key the image is registered with.
- * @return The Image
object instance or null
.
- */
- public static Image getImage(String key) {
- return getDefault().getImageRegistry().get(key);
- }
-
- /**
- * Loads the image registered under the specified key from the image
- * registry and returns the ImageDescriptor
object instance.
- *
- * @param key The key the image is registered with.
- * @return The ImageDescriptor
object instance or null
.
- */
- public static ImageDescriptor getImageDescriptor(String key) {
- return getDefault().getImageRegistry().getDescriptor(key);
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/ISshConstants.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/ISshConstants.java
deleted file mode 100644
index 0d4bd371467..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/ISshConstants.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Martin Oberhuber (Wind River) - extracted from various team.cvs plugins
- * Martin Oberhuber (Wind River) - [175686] Adapted to new IJSchService API
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-/**
- * Defines the constants used by the terminal.ssh Plugin
- */
-public interface ISshConstants {
-
- // These are from cvs.ui.IHelpContextIds
- public static final String CVSUIPREFIX = "org.eclipse.team.cvs.ui."; //$NON-NLS-1$
- public static final String HELP_USER_VALIDATION_DIALOG = CVSUIPREFIX + "user_validation_dialog_context"; //$NON-NLS-1$
- public static final String HELP_KEYBOARD_INTERACTIVE_DIALOG = CVSUIPREFIX + "keyboard_interactive_dialog_context"; //$NON-NLS-1$
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/ISshSettings.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/ISshSettings.java
deleted file mode 100644
index 65d2b0c69e4..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/ISshSettings.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-public interface ISshSettings {
-
- public static int DEFAULT_SSH_PORT = 22;
-
- /**
- * Get the host name or IP address of remote system to connect.
- * @return host name or IP address of the remote system.
- */
- String getHost();
-
- /**
- * Get the login name for connecting to the remote system.
- * @return remote login name
- */
- String getUser();
-
- /**
- * Get the password for connecting to the remote system.
- * May be empty if connecting via SSH public key authentication
- * (with or without passphrase).
- * @return password to use
- */
- String getPassword();
-
- /**
- * Get the timeout (in seconds) after which the SSH connection is assumed dead.
- * @return timeout (in seconds) for the SSH connection.
- */
- int getTimeout();
-
- /**
- * Get the keepalive interval (in seconds).
- * After this time of inactivity, the SSH connector will send a message to the
- * remote system in order to avoid timeouts on the remote. A maximum of 6
- * keepalive messages will be sent if enabled. When set to 0, the keepalive
- * feature is disabled.
- * @return interval (in seconds) for keepalive messages.
- */
- int getKeepalive();
-
- /**
- * Get the TCP/IP port on the remote system to use.
- * @return TCP/IP port on the remote system to use.
- */
- int getPort();
-
- /**
- * Return a human-readable String summarizing all relevant connection data.
- * This String can be displayed in the Terminal caption, for instance.
- * @return a human-readable String summarizing relevant connection data.
- */
- String getSummary();
-
- /**
- * Load connection data from a settings store.
- * @param store the settings store to access.
- */
- void load(ISettingsStore store);
-
- /**
- * Store connection data into a settings store.
- * @param store the settings store to access.
- */
- void save(ISettingsStore store);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/KeyboardInteractiveDialog.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/KeyboardInteractiveDialog.java
deleted file mode 100644
index 8cbff227e79..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/KeyboardInteractiveDialog.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Atsuhiko Yamanaka, JCraft,Inc. - initial API and implementation.
- * IBM Corporation - ongoing maintenance
- * Martin Oberhuber (Wind River) - copied and adapted from team.cvs.ui
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * A dialog for keyboad-interactive authentication for the ssh2 connection.
- */
-public class KeyboardInteractiveDialog extends TrayDialog {
- // widgets
- private Text[] texts;
-
- protected String domain;
- protected String destination;
- protected String name;
- protected String instruction;
- protected String lang;
- protected String[] prompt;
- protected boolean[] echo;
- private String message;
- private String[] result;
-
- /**
- * Creates a nwe KeyboardInteractiveDialog.
- *
- * @param parentShell the parent shell
- * @param connectionId an id for the connection
- * @param destination the location
- * @param name the name
- * @param instruction the instruction
- * @param prompt the titles for textfields
- * @param echo '*' should be used or not
- */
- public KeyboardInteractiveDialog(Shell parentShell, String connectionId, String destination, String name,
- String instruction, String[] prompt, boolean[] echo) {
- super(parentShell);
- this.domain = connectionId;
- this.destination = destination;
- this.name = name;
- this.instruction = instruction;
- this.prompt = prompt;
- this.echo = echo;
- this.message = NLS.bind(SshMessages.KeyboardInteractiveDialog_message,
- new String[] { destination + (name != null && name.length() > 0 ? ": " + name : "") }); //NON-NLS-1$ //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- /**
- * @see Window#configureShell
- */
- @Override
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(message);
- }
-
- /**
- * @see Window#create
- */
- @Override
- public void create() {
- super.create();
- if (texts.length > 0) {
- texts[0].setFocus();
- }
- }
-
- /**
- * @see Dialog#createDialogArea
- */
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite main = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 3;
- main.setLayout(layout);
- main.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- // set F1 help
- PlatformUI.getWorkbench().getHelpSystem().setHelp(main, ISshConstants.HELP_KEYBOARD_INTERACTIVE_DIALOG);
-
- if (message != null) {
- Label messageLabel = new Label(main, SWT.WRAP);
- messageLabel.setText(message);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 3;
- messageLabel.setLayoutData(data);
- }
- if (domain != null) {
- Label label = new Label(main, SWT.WRAP);
- label.setText(NLS.bind(SshMessages.KeyboardInteractiveDialog_labelConnection, new String[] { domain }));
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 3;
- label.setLayoutData(data);
- }
- if (instruction != null && instruction.length() > 0) {
- Label messageLabel = new Label(main, SWT.WRAP);
- messageLabel.setText(instruction);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 3;
- messageLabel.setLayoutData(data);
- }
- createPasswordFields(main);
- return main;
- }
-
- /**
- * Creates the widgets that represent the entry area.
- *
- * @param parent the parent of the widgets
- */
- @SuppressWarnings("unused")
- protected void createPasswordFields(Composite parent) {
- texts = new Text[prompt.length];
-
- for (int i = 0; i < prompt.length; i++) {
- new Label(parent, SWT.NONE).setText(prompt[i]);
- texts[i] = new Text(parent, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
- texts[i].setLayoutData(data);
-
- if (!echo[i]) {
- texts[i].setEchoChar('*');
- }
- new Label(parent, SWT.NONE);
- }
-
- }
-
- /**
- * Returns the entered values, or null
- * if the user cancelled.
- *
- * @return the entered values
- */
- public String[] getResult() {
- return result;
- }
-
- /**
- * Notifies that the ok button of this dialog has been pressed.
- *
- * The default implementation of this framework method sets
- * this dialog's return code to Window.OK
- * and closes the dialog. Subclasses may override.
- *
- */
- @Override
- protected void okPressed() {
- result = new String[prompt.length];
- for (int i = 0; i < texts.length; i++) {
- result[i] = texts[i].getText();
- }
- super.okPressed();
- }
-
- /**
- * Notifies that the cancel button of this dialog has been pressed.
- *
- * The default implementation of this framework method sets
- * this dialog's return code to Window.CANCEL
- * and closes the dialog. Subclasses may override.
- *
- */
- @Override
- protected void cancelPressed() {
- result = null;
- super.cancelPressed();
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshConnection.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshConnection.java
deleted file mode 100644
index ee92426bfe1..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshConnection.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2015 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [175686] Adapted to new IJSchService API
- * - copied code from org.eclipse.team.cvs.ssh2/JSchSession (Copyright IBM)
- * Martin Oberhuber (Wind River) - [198790] make SSH createSession() protected
- * Mikhail Kalugin - [201864] Fix Terminal SSH keyboard interactive authentication
- * Martin Oberhuber (Wind River) - [155026] Add keepalives for SSH connection
- * Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
- * Martin Oberhuber (Wind River) - [225792] Rename SshConnector.getTelnetSettings() to getSshSettings()
- * Martin Oberhuber (Wind River) - [168197] Replace JFace MessagDialog by SWT MessageBox
- * Martin Oberhuber (Wind River) - [205674][ssh] Terminal remains "connecting" when authentication is cancelled
- * Michael Scharf (Wind River) - 240420: [terminal][ssh]Channel is not closed when the connection is closed with the close button
- * Martin Oberhuber (Wind River) - [206919] Improve SSH Terminal Error Reporting
- * Andrei Sobolev (Xored) - [250456] Ssh banner message causes IllegalArgumentException popup
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jsch.core.IJSchService;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.connector.ssh.activator.UIPlugin;
-
-import com.jcraft.jsch.ChannelShell;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
-import com.jcraft.jsch.UIKeyboardInteractive;
-import com.jcraft.jsch.UserInfo;
-
-public class SshConnection extends Thread {
- private static int fgNo;
- /* default */ final ITerminalControl fControl;
- private final SshConnector fConn;
- private Session fSession;
- private boolean fDisconnectHasBeenCalled;
-
- protected SshConnection(SshConnector conn, ITerminalControl control) {
- super("SshConnection-" + fgNo++); //$NON-NLS-1$
- fControl = control;
- fConn = conn;
- fControl.setState(TerminalState.CONNECTING);
- }
-
- //----------------------------------------------------------------------
- //
- //----------------------------------------------------------------------
-
- /**
- * Create a Jsch session.
- * Subclasses can override in order to replace the UserInfo wrapper
- * (for non-interactive usage, for instance), or in order to change
- * the Jsch config (for instance, in order to switch off strict
- * host key checking or in order to add specific ciphers).
- */
- protected Session createSession(String username, String password, String hostname, int port, UserInfo wrapperUI,
- IProgressMonitor monitor) throws JSchException {
- IJSchService service = UIPlugin.getDefault().getJSchService();
- if (service == null)
- return null;
- Session session = service.createSession(hostname, port, username);
- //session.setTimeout(getSshTimeoutInMillis());
- session.setTimeout(0); //never time out on the session
- session.setServerAliveCountMax(6); //give up after 6 tries (remote will be dead after 30 min)
- if (password != null)
- session.setPassword(password);
- session.setUserInfo(wrapperUI);
- return session;
- }
-
- public static void shutdown() {
- //TODO: Store all Jsch sessions in a pool and disconnect them on shutdown
- }
-
- //----------------------------------------------------------------------
- //
- //----------------------------------------------------------------------
-
- @Override
- public void run() {
- boolean connectSucceeded = false;
- String host = ""; //$NON-NLS-1$
- int port = ISshSettings.DEFAULT_SSH_PORT;
- try {
- int nTimeout = fConn.getSshSettings().getTimeout() * 1000;
- int nKeepalive = fConn.getSshSettings().getKeepalive() * 1000;
- host = fConn.getSshSettings().getHost();
- String user = fConn.getSshSettings().getUser();
- String password = fConn.getSshSettings().getPassword();
- port = fConn.getSshSettings().getPort();
-
- UserInfo ui = new MyUserInfo(null, user, password);
-
- Session session = createSession(user, password, host, port, ui, new NullProgressMonitor());
- synchronized (this) {
- fSession = session;
- }
-
- //java.util.Hashtable config=new java.util.Hashtable();
- //config.put("StrictHostKeyChecking", "no");
- //session.setConfig(config);
- //ui.aboutToConnect();
- if (nKeepalive > 0) {
- session.setServerAliveInterval(nKeepalive); //default is 5 minutes
- }
- // dont try to connect if disconnect has been requested already
- synchronized (this) {
- if (fDisconnectHasBeenCalled)
- return;
- }
-
- session.connect(nTimeout); // making connection with timeout.
- // if we got disconnected, do not continue
- if (!isSessionConnected())
- return;
- ChannelShell channel = (ChannelShell) session.openChannel("shell"); //$NON-NLS-1$
- channel.setPtyType("xterm"); //$NON-NLS-1$
- // TERM=xterm implies VT100 line wrapping mode
- fControl.setVT100LineWrapping(true);
- channel.connect();
-
- // maybe the terminal was disconnected while we were connecting
- if (isSessionConnected() && channel.isConnected()) {
- connectSucceeded = true;
- fConn.setInputStream(channel.getInputStream());
- fConn.setOutputStream(channel.getOutputStream());
- fConn.setChannel(channel);
- fControl.setState(TerminalState.CONNECTED);
- try {
- // read data until the connection gets terminated
- readDataForever(fConn.getInputStream());
- } catch (InterruptedIOException e) {
- // we got interrupted: we are done...
- }
- }
- } catch (Exception e) {
- Throwable cause = e;
- while (cause.getCause() != null) {
- cause = cause.getCause();
- }
- String origMsg = cause.getMessage();
- String msg = SshMessages.getMessageFor(cause);
- if ((cause instanceof JSchException) && origMsg != null && origMsg.startsWith("Auth")) { //$NON-NLS-1$
- if (origMsg.indexOf("cancel") >= 0) { //$NON-NLS-1$
- msg = SshMessages.SSH_AUTH_CANCEL;
- } else if (origMsg.indexOf("fail") >= 0) { //$NON-NLS-1$
- msg = SshMessages.SSH_AUTH_FAIL;
- }
- }
- if (!connectSucceeded) {
- String hostPort = host;
- if (port != ISshSettings.DEFAULT_SSH_PORT) {
- hostPort = hostPort + ':' + port;
- }
- msg = NLS.bind(SshMessages.ERROR_CONNECTING, hostPort, msg);
- }
- connectFailed(msg, msg);
- } finally {
- // make sure the terminal is disconnected when the thread ends
- try {
- disconnect();
- } finally {
- // when reading is done, we set the state to closed
- fControl.setState(TerminalState.CLOSED);
- }
- }
- }
-
- /* default */ synchronized boolean isSessionConnected() {
- return !fDisconnectHasBeenCalled && fSession != null && fSession.isConnected();
- }
-
- /**
- * disconnect the ssh session
- */
- void disconnect() {
- interrupt();
- synchronized (this) {
- fDisconnectHasBeenCalled = true;
- if (fSession != null) {
- try {
- fSession.disconnect();
- } catch (Exception e) {
- // Ignore NPE due to bug in JSch if disconnecting
- // while not yet authenticated
- }
- fSession = null;
- }
- }
- }
-
- /**
- * Read the data from the ssh connection and display it in the terminal.
- * @param in
- * @throws IOException
- */
- private void readDataForever(InputStream in) throws IOException {
- // read the data
- byte bytes[] = new byte[32 * 1024];
- int n;
- // read until the thread gets interrupted....
- while ((n = in.read(bytes)) != -1) {
- fControl.getRemoteToTerminalOutputStream().write(bytes, 0, n);
- }
- }
-
- protected static Display getStandardDisplay() {
- Display display = Display.getCurrent();
- if (display == null) {
- display = Display.getDefault();
- }
- return display;
- }
-
- private class MyUserInfo implements UserInfo, UIKeyboardInteractive {
- /* default */ final String fConnectionId;
- /* default */ final String fUser;
- private String fPassword;
- private String fPassphrase;
- private int fAttemptCount;
-
- public MyUserInfo(String connectionId, String user, String password) {
- fConnectionId = connectionId;
- fUser = user;
- fPassword = password;
- }
-
- @Override
- public String getPassword() {
- return fPassword;
- }
-
- @Override
- public boolean promptYesNo(final String str) {
- //need to switch to UI thread for prompting
- final boolean[] retval = new boolean[1];
- Display.getDefault().syncExec(new Runnable() {
- @Override
- public void run() {
- // [168197] Replace JFace MessagDialog by SWT MessageBox
- //retval[0] = MessageDialog.openQuestion(null, SshMessages.WARNING, str);
- if (isSessionConnected()) {
- MessageBox mb = new MessageBox(fControl.getShell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
- mb.setText(SshMessages.WARNING);
- mb.setMessage(str);
- retval[0] = (mb.open() == SWT.YES);
- } else {
- retval[0] = false;
- }
- }
- });
- return retval[0];
- }
-
- private String promptSecret(final String message) {
- final String[] retval = new String[1];
- getStandardDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- if (isSessionConnected()) {
- UserValidationDialog uvd = new UserValidationDialog(null, fConnectionId, fUser, message);
- uvd.setUsernameMutable(false);
- if (uvd.open() == Window.OK) {
- retval[0] = uvd.getPassword();
- } else {
- retval[0] = null;
- }
- } else {
- retval[0] = null;
- }
- }
- });
- return retval[0];
- }
-
- @Override
- public String getPassphrase() {
- return fPassphrase;
- }
-
- @Override
- public boolean promptPassphrase(String message) {
- fPassphrase = promptSecret(message);
- return (fPassphrase != null);
- }
-
- @Override
- public boolean promptPassword(final String message) {
- String _password = promptSecret(message);
- if (_password != null) {
- fPassword = _password;
- return true;
- }
- return false;
- }
-
- @Override
- public void showMessage(final String message) {
- Display.getDefault().syncExec(new Runnable() {
- @Override
- public void run() {
- // [168197] Replace JFace MessagDialog by SWT MessageBox
- // MessageDialog.openInformation(null, SshMessages.INFO, message);
- if (isSessionConnected()) {
- MessageBox mb = new MessageBox(fControl.getShell(), SWT.ICON_INFORMATION | SWT.OK);
- mb.setText(SshMessages.INFO);
- mb.setMessage(message);
- mb.open();
- }
- }
- });
- }
-
- @Override
- public String[] promptKeyboardInteractive(final String destination, final String name, final String instruction,
- final String[] prompt, final boolean[] echo) {
- if (prompt.length == 0) {
- // No need to prompt, just return an empty String array
- return new String[0];
- }
- try {
- if (fAttemptCount == 0 && fPassword != null && prompt.length == 1
- && prompt[0].trim().equalsIgnoreCase("password:")) { //$NON-NLS-1$
- // Return the provided password the first time but always prompt on subsequent tries
- fAttemptCount++;
- return new String[] { fPassword };
- }
- final String[][] finResult = new String[1][];
- getStandardDisplay().syncExec(new Runnable() {
- @Override
- public void run() {
- if (isSessionConnected()) {
- KeyboardInteractiveDialog dialog = new KeyboardInteractiveDialog(null, fConnectionId,
- destination, name, instruction, prompt, echo);
- dialog.open();
- finResult[0] = dialog.getResult();
- } else {
- finResult[0] = null; // indicate cancel to JSch
- }
- }
- });
- String[] result = finResult[0];
- if (result == null)
- return null; // cancelled
- if (result.length == 1 && prompt.length == 1 && prompt[0].trim().equalsIgnoreCase("password:")) { //$NON-NLS-1$
- fPassword = result[0];
- }
- fAttemptCount++;
- return result;
- } catch (OperationCanceledException e) {
- return null;
- }
- }
- }
-
- private void connectFailed(String terminalText, String msg) {
- Logger.log(terminalText);
- fControl.displayTextInTerminal(terminalText);
- // fControl.setMsg(msg);
- }
-
-}
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshConnector.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshConnector.java
deleted file mode 100644
index a402fdc8b70..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshConnector.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [225792] Rename SshConnector.getTelnetSettings() to getSshSettings()
- * Martin Oberhuber (Wind River) - [225853][api] Provide more default functionality in TerminalConnectorImpl
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.NullSettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-
-import com.jcraft.jsch.ChannelShell;
-import com.jcraft.jsch.JSch;
-
-public class SshConnector extends TerminalConnectorImpl {
- private OutputStream fOutputStream;
- private InputStream fInputStream;
- private JSch fJsch;
- private ChannelShell fChannel;
- private SshConnection fConnection;
- private final SshSettings fSettings;
- private int fWidth;
- private int fHeight;
-
- public SshConnector() {
- this(new SshSettings());
- }
-
- public SshConnector(SshSettings settings) {
- fSettings = settings;
- }
-
- @Override
- public void initialize() throws Exception {
- fJsch = new JSch();
- }
-
- @Override
- public void connect(ITerminalControl control) {
- super.connect(control);
- fConnection = new SshConnection(this, control);
- fConnection.start();
- }
-
- @Override
- synchronized public void doDisconnect() {
- fConnection.disconnect();
- if (getInputStream() != null) {
- try {
- getInputStream().close();
- } catch (Exception exception) {
- Logger.logException(exception);
- }
- }
-
- if (getTerminalToRemoteStream() != null) {
- try {
- getTerminalToRemoteStream().close();
- } catch (Exception exception) {
- Logger.logException(exception);
- }
- }
- }
-
- @Override
- public void setTerminalSize(int newWidth, int newHeight) {
- if (fChannel != null && (newWidth != fWidth || newHeight != fHeight)) {
- //avoid excessive communications due to change size requests by caching previous size
- fChannel.setPtySize(newWidth, newHeight, 8 * newWidth, 8 * newHeight);
- fWidth = newWidth;
- fHeight = newHeight;
- }
- }
-
- public InputStream getInputStream() {
- return fInputStream;
- }
-
- @Override
- public OutputStream getTerminalToRemoteStream() {
- return fOutputStream;
- }
-
- void setInputStream(InputStream inputStream) {
- fInputStream = inputStream;
- }
-
- void setOutputStream(OutputStream outputStream) {
- fOutputStream = outputStream;
- }
-
- /**
- * Return the SSH Settings.
- *
- * @return the settings for a concrete connection.
- * @since org.eclipse.tm.terminal.ssh 2.0 renamed from getTelnetSettings()
- */
- public ISshSettings getSshSettings() {
- return fSettings;
- }
-
- @Override
- public void setDefaultSettings() {
- fSettings.load(new NullSettingsStore());
- }
-
- @Override
- public String getSettingsSummary() {
- return fSettings.getSummary();
- }
-
- @Override
- public void load(ISettingsStore store) {
- fSettings.load(store);
- }
-
- @Override
- public void save(ISettingsStore store) {
- fSettings.save(store);
- }
-
- protected JSch getJsch() {
- return fJsch;
- }
-
- ChannelShell getChannel() {
- return fChannel;
- }
-
- void setChannel(ChannelShell channel) {
- fChannel = channel;
- fWidth = -1;
- fHeight = -1;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshMessages.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshMessages.java
deleted file mode 100644
index 3e8bf0cc648..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshMessages.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
- * Martin Oberhuber (Wind River) - [206919] Improve SSH Terminal Error Reporting (Adopting code from org.eclipse.team.cvs.core)
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.osgi.util.NLS;
-
-public class SshMessages extends NLS {
- static {
- NLS.initializeMessages(SshMessages.class.getName(), SshMessages.class);
- }
- public static String USER;
- public static String HOST;
- public static String PORT;
- public static String PASSWORD;
- public static String TIMEOUT;
- public static String KEEPALIVE;
- public static String KEEPALIVE_Tooltip;
- public static String WARNING;
- public static String INFO;
-
- //These are from org.eclipse.team.cvs.ui.CVSUIMessages
- public static String UserValidationDialog_required;
- public static String UserValidationDialog_labelUser;
- public static String UserValidationDialog_labelPassword;
- public static String UserValidationDialog_password;
- public static String UserValidationDialog_user;
- public static String UserValidationDialog_5;
- public static String UserValidationDialog_6;
- public static String UserValidationDialog_7;
-
- public static String KeyboardInteractiveDialog_message;
- public static String KeyboardInteractiveDialog_labelConnection;
-
- public static String ERROR_CONNECTING;
- public static String TerminalCommunicationException_io;
- public static String SSH_AUTH_CANCEL;
- public static String SSH_AUTH_FAIL;
- public static String com_jcraft_jsch_JSchException;
- public static String java_io_IOException;
- public static String java_io_EOFException;
- public static String java_io_InterruptedIOException;
- public static String java_net_UnknownHostException;
- public static String java_net_ConnectException;
- public static String java_net_SocketException;
- public static String java_net_NoRouteToHostException;
-
- //
-
- public static String getMessageFor(Throwable throwable) {
- String message = getMessage(getMessageKey(throwable));
- if (message == null) {
- message = NLS.bind(SshMessages.TerminalCommunicationException_io, (new Object[] { throwable.toString() }));
- } else {
- message = NLS.bind(message, (new Object[] { throwable.getMessage() }));
- }
- return message;
- }
-
- private static String getMessageKey(Throwable t) {
- String name = t.getClass().getName();
- name = name.replace('.', '_');
- return name;
- }
-
- //
- //
-
- public static String getMessage(String key) {
- try {
- Field f = SshMessages.class.getDeclaredField(key);
- Object o = f.get(null);
- if (o instanceof String)
- return (String) o;
- } catch (SecurityException e) {
- } catch (NoSuchFieldException e) {
- } catch (IllegalArgumentException e) {
- } catch (IllegalAccessException e) {
- }
- return null;
- }
-
- //
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshMessages.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshMessages.properties
deleted file mode 100644
index 70d31247c9e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshMessages.properties
+++ /dev/null
@@ -1,55 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2018 Wind River Systems, Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Michael Scharf (Wind River) - initial API and implementation
-# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
-# Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
-# Martin Oberhuber (Wind River) - [206919] Improve SSH Terminal Error Reporting (Adopting code from org.eclipse.team.cvs.core)
-###############################################################################
-
-# NLS_MESSAGEFORMAT_VAR
-
-HOST = Host
-USER = User
-PORT = Port
-PASSWORD = Password
-TIMEOUT = Timeout (sec)
-KEEPALIVE = KeepAlive (sec)
-KEEPALIVE_Tooltip=Interval for sending keepalive messages in case of inactivity. Enter 0 to disable keepalives.
-WARNING = Warning
-INFO = Info
-
-#These are from cvs.ui/messages.properties
-UserValidationDialog_required=Password Required
-UserValidationDialog_labelUser={0}
-UserValidationDialog_labelPassword={1}
-UserValidationDialog_password=&Password:
-UserValidationDialog_user=&User name:
-UserValidationDialog_5=Connection:
-UserValidationDialog_6=&Save password
-UserValidationDialog_7=Saved passwords are stored on your computer in a file that is difficult, but not impossible, for an intruder to read.
-
-KeyboardInteractiveDialog_message=Keyboard Interactive authentication for {0}
-KeyboardInteractiveDialog_labelConnection=Enter values for the following connection: {0}
-
-# from org.eclipse.team.cvs.core/messages.properties (c) IBM 2000, 2007
-ERROR_CONNECTING=Error connecting {0} : {1}
-TerminalCommunicationException_io=Communication error: {0}
-SSH_AUTH_CANCEL=SSH Authentication cancelled.
-SSH_AUTH_FAIL=SSH Authentication failed.
-com_jcraft_jsch_JSchException=SSH client error: {0}
-java_io_IOException=I/O exception occurred: {0}
-java_io_EOFException=End of file encountered: {0}
-java_io_InterruptedIOException=I/O has been interrupted.
-java_net_UnknownHostException=Cannot locate host: {0}
-java_net_ConnectException=Cannot connect to host: {0}
-java_net_SocketException=Socket Exception: {0}
-java_net_NoRouteToHostException={0}
-# from org.eclipse.team.cvs.core
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshSettings.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshSettings.java
deleted file mode 100644
index ea8ad058fbd..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshSettings.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Mikhail Kalugin - [201867] Improve Terminal SSH connection summary string
- * Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
- * Bryan Hunt - [313991] cannot programatically pass password to SshConnector
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-public class SshSettings implements ISshSettings {
- protected String fHost;
- protected String fUser;
- protected String fPassword;
- protected String fPort;
- protected String fTimeout;
- protected String fKeepalive;
-
- @Override
- public String getHost() {
- return fHost;
- }
-
- public void setHost(String strHost) {
- fHost = strHost;
- }
-
- @Override
- public String getSummary() {
- String settings = getUser() + '@' + getHost();
- if (getPort() != ISshSettings.DEFAULT_SSH_PORT) {
- settings += ":" + getPort(); //$NON-NLS-1$
- }
- return settings;
- }
-
- @Override
- public void load(ISettingsStore store) {
- fHost = store.get("Host", "");//$NON-NLS-1$ //$NON-NLS-2$
- fUser = store.get("User", "");//$NON-NLS-1$ //$NON-NLS-2$
- // ISettingsStore providers have to make sure that
- // the password is not saved in some as plain text
- // on disk. [bug 313991]
- fPassword = store.get("Password", "");//$NON-NLS-1$ //$NON-NLS-2$
- fPort = store.get("Port", String.valueOf(ISshSettings.DEFAULT_SSH_PORT));//$NON-NLS-1$
- fTimeout = store.get("Timeout", "0");//$NON-NLS-1$ //$NON-NLS-2$
- fKeepalive = store.get("Keepalive", "300");//$NON-NLS-1$ //$NON-NLS-2$
- }
-
- @Override
- public void save(ISettingsStore store) {
- store.put("Host", fHost);//$NON-NLS-1$
- store.put("User", fUser);//$NON-NLS-1$
- store.put("Port", fPort);//$NON-NLS-1$
- // We do *not* store the password in the settings because
- // this can cause the password to be stored as plain text
- // in some settings file
- store.put("Timeout", fTimeout);//$NON-NLS-1$
- store.put("Keepalive", fKeepalive);//$NON-NLS-1$
- }
-
- @Override
- public int getTimeout() {
- try {
- return Integer.parseInt(fTimeout);
- } catch (NumberFormatException numberFormatException) {
- return 10;
- }
- }
-
- public String getTimeoutString() {
- return fTimeout;
- }
-
- public void setTimeout(String timeout) {
- fTimeout = timeout;
- }
-
- @Override
- public int getKeepalive() {
- try {
- return Integer.parseInt(fKeepalive);
- } catch (NumberFormatException numberFormatException) {
- return 300;
- }
- }
-
- public String getKeepaliveString() {
- return fKeepalive;
- }
-
- public void setKeepalive(String keepalive) {
- fKeepalive = keepalive;
- }
-
- @Override
- public String getUser() {
- return fUser;
- }
-
- public void setUser(String user) {
- fUser = user;
- }
-
- @Override
- public int getPort() {
- try {
- return Integer.parseInt(fPort);
- } catch (NumberFormatException numberFormatException) {
- return ISshSettings.DEFAULT_SSH_PORT;
- }
- }
-
- public String getPortString() {
- return fPort;
- }
-
- public void setPort(String port) {
- fPort = port;
- }
-
- @Override
- public String getPassword() {
- return fPassword;
- }
-
- public void setPassword(String password) {
- fPassword = password;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshSettingsPage.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshSettingsPage.java
deleted file mode 100644
index 043ea44c959..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/SshSettingsPage.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Johnson Ma (Wind River) - [218880] Add UI setting for ssh keepalives
- * Martin Oberhuber (Wind River) - [206917] Add validation for Terminal Settings
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
-
-public class SshSettingsPage extends AbstractSettingsPage {
- private Text fHostText;
- private Text fUser;
- private Text fTimeout;
- private Text fKeepalive;
- private final SshSettings fTerminalSettings;
- private Text fPort;
- private Text fPassword;
-
- public SshSettingsPage(SshSettings settings) {
- fTerminalSettings = settings;
- }
-
- @Override
- public void saveSettings() {
- fTerminalSettings.setHost(fHostText.getText());
- fTerminalSettings.setUser(fUser.getText());
- fTerminalSettings.setPassword(fPassword.getText());
- fTerminalSettings.setPort(fPort.getText());
- fTerminalSettings.setTimeout(fTimeout.getText());
- fTerminalSettings.setKeepalive(fKeepalive.getText());
- }
-
- @Override
- public void loadSettings() {
- if (fTerminalSettings != null) {
- fHostText.setText(get(fTerminalSettings.getHost(), ""));//$NON-NLS-1$
- fTimeout.setText(get(fTerminalSettings.getTimeoutString(), "0"));//$NON-NLS-1$
- fKeepalive.setText(get(fTerminalSettings.getKeepaliveString(), "300"));//$NON-NLS-1$
- fUser.setText(get(fTerminalSettings.getUser(), ""));//$NON-NLS-1$
- fPort.setText(get(fTerminalSettings.getPortString(), String.valueOf(ISshSettings.DEFAULT_SSH_PORT)));
- fPassword.setText(get(fTerminalSettings.getPassword(), ""));//$NON-NLS-1$
- }
- }
-
- String get(String value, String def) {
- if (value == null || value.length() == 0)
- return def;
- return value;
- }
-
- @Override
- public boolean validateSettings() {
- String message = null;
- int messageType = IMessageProvider.NONE;
- boolean valid = true;
-
- if (fHostText.getText().trim().length() == 0) {
- String m = "Please enter a host IP or name."; //$NON-NLS-1$
- int mt = IMessageProvider.INFORMATION;
- updateControlDecoration(fHostText, m, mt);
- if (mt > messageType) {
- message = m;
- messageType = mt;
- }
-
- valid = false;
- } else {
- updateControlDecoration(fHostText, null, IMessageProvider.NONE);
- }
- if (fUser.getText().trim().length() == 0) {
- String m = "Please enter a username."; //$NON-NLS-1$
- int mt = IMessageProvider.INFORMATION;
- updateControlDecoration(fUser, m, mt);
- if (mt > messageType) {
- message = m;
- messageType = mt;
- }
-
- valid = false;
- } else {
- updateControlDecoration(fUser, null, IMessageProvider.NONE);
- }
- try {
- int p = Integer.parseInt(fPort.getText().trim());
- if (p <= 0 || p > 65535) {
- String m = "Invalid network port. Must be between 0 and 65535."; //$NON-NLS-1$
- int mt = IMessageProvider.ERROR;
- updateControlDecoration(fPort, m, mt);
- if (mt > messageType) {
- message = m;
- messageType = mt;
- }
-
- valid = false;
- } else {
- updateControlDecoration(fPort, null, IMessageProvider.NONE);
- }
- p = Integer.parseInt(fTimeout.getText().trim());
- if (p < 0) {
- String m = "Invalid timeout. Must be greater than 0."; //$NON-NLS-1$
- int mt = IMessageProvider.ERROR;
- updateControlDecoration(fTimeout, m, mt);
- if (mt > messageType) {
- message = m;
- messageType = mt;
- }
-
- valid = false;
- } else {
- updateControlDecoration(fTimeout, null, IMessageProvider.NONE);
- }
- p = Integer.parseInt(fKeepalive.getText().trim());
- if (p < 0) {
- String m = "Invalid keep alive. Must be greater than 0."; //$NON-NLS-1$
- int mt = IMessageProvider.ERROR;
- updateControlDecoration(fKeepalive, m, mt);
- if (mt > messageType) {
- message = m;
- messageType = mt;
- }
-
- valid = false;
- } else {
- updateControlDecoration(fKeepalive, null, IMessageProvider.NONE);
- }
- } catch (Exception e) {
- valid = false;
- }
-
- setMessage(message, messageType);
- return valid;
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout gridLayout = new GridLayout(2, false);
- GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.horizontalIndent = FieldDecorationRegistry.getDefault().getMaximumDecorationWidth();
-
- composite.setLayout(gridLayout);
- composite.setLayoutData(gridData);
-
- fHostText = createTextField(composite, SshMessages.HOST);
- fUser = createTextField(composite, SshMessages.USER);
- fPassword = createTextField(composite, SshMessages.PASSWORD, SWT.PASSWORD);
- fTimeout = createTextField(composite, SshMessages.TIMEOUT);
- fKeepalive = createTextField(composite, SshMessages.KEEPALIVE);
- fKeepalive.setToolTipText(SshMessages.KEEPALIVE_Tooltip);
- fPort = createTextField(composite, SshMessages.PORT);
- loadSettings();
- }
-
- private Text createTextField(Composite composite, String labelTxt, int textOptions) {
- GridData gridData;
- // Add label
- Label ctlLabel = new Label(composite, SWT.RIGHT);
- ctlLabel.setText(labelTxt + ":"); //$NON-NLS-1$
-
- // Add control
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- final Text text = new Text(composite, SWT.BORDER | textOptions);
- text.setLayoutData(gridData);
- text.addModifyListener(new ModifyListener() {
- @Override
- public void modifyText(ModifyEvent e) {
- fireListeners(text);
- }
- });
- createControlDecoration(text);
- return text;
- }
-
- private Text createTextField(Composite composite, String labelTxt) {
- return createTextField(composite, labelTxt, 0);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/UserValidationDialog.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/UserValidationDialog.java
deleted file mode 100644
index 8047ac91579..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/connector/UserValidationDialog.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Martin Oberhuber (Wind River) - copied from org.eclipse.team.cvs.ui
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.connector;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * A dialog for prompting for a username and password
- */
-public class UserValidationDialog extends TrayDialog {
- // widgets
- protected Text usernameField;
- protected Text passwordField;
- protected Button allowCachingButton;
-
- protected String domain;
- protected String defaultUsername;
- protected String password = null;
- protected boolean allowCaching = false;
- protected Image keyLockImage;
-
- // whether or not the username can be changed
- protected boolean isUsernameMutable = true;
- protected String username = null;
- protected String message = null;
-
- /**
- * Creates a new UserValidationDialog.
- *
- * @param parentShell the parent shell
- * @param location the location
- * @param defaultName the default user name
- * @param message a mesage to display to the user
- */
- public UserValidationDialog(Shell parentShell, String location, String defaultName, String message) {
- super(parentShell);
- setShellStyle(getShellStyle() | SWT.RESIZE);
- this.defaultUsername = defaultName;
- this.domain = location;
- this.message = message;
- }
-
- /**
- * @see Window#configureShell
- */
- @Override
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- newShell.setText(SshMessages.UserValidationDialog_required);
- // set F1 help
- PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell, ISshConstants.HELP_USER_VALIDATION_DIALOG);
- }
-
- /**
- * @see Window#create
- */
- @Override
- public void create() {
- super.create();
- // add some default values
- usernameField.setText(defaultUsername);
-
- if (isUsernameMutable) {
- // give focus to username field
- usernameField.selectAll();
- usernameField.setFocus();
- } else {
- usernameField.setEditable(false);
- passwordField.setFocus();
- }
- }
-
- /**
- * @see Dialog#createDialogArea
- */
- @Override
- protected Control createDialogArea(Composite parent) {
- Composite top = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
-
- top.setLayout(layout);
- top.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Composite imageComposite = new Composite(top, SWT.NONE);
- layout = new GridLayout();
- imageComposite.setLayout(layout);
- imageComposite.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-
- Composite main = new Composite(top, SWT.NONE);
- layout = new GridLayout();
- layout.numColumns = 3;
- main.setLayout(layout);
- main.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- Label imageLabel = new Label(imageComposite, SWT.NONE);
- //keyLockImage = TeamImages.getImageDescriptor(ITeamUIImages.IMG_KEY_LOCK).createImage();
- //imageLabel.setImage(keyLockImage);
- GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- imageLabel.setLayoutData(data);
-
- if (message != null) {
- Label messageLabel = new Label(main, SWT.WRAP);
- messageLabel.setText(message);
- data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- data.horizontalSpan = 3;
- data.widthHint = 300;
- messageLabel.setLayoutData(data);
- }
- if (domain != null) {
- Label d = new Label(main, SWT.WRAP);
- d.setText(SshMessages.UserValidationDialog_5);
- data = new GridData();
- d.setLayoutData(data);
- Label label = new Label(main, SWT.WRAP);
- if (isUsernameMutable) {
- label.setText(NLS.bind(SshMessages.UserValidationDialog_labelUser, new String[] { domain }));
- } else {
- label.setText(NLS.bind(SshMessages.UserValidationDialog_labelPassword,
- (new Object[] { defaultUsername, domain })));
- }
- data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- data.horizontalSpan = 2;
- data.widthHint = 300;
- label.setLayoutData(data);
- }
- createUsernameFields(main);
- createPasswordFields(main);
-
- if (domain != null) {
- allowCachingButton = new Button(main, SWT.CHECK);
- allowCachingButton.setText(SshMessages.UserValidationDialog_6);
- data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
- data.horizontalSpan = 3;
- allowCachingButton.setLayoutData(data);
- allowCachingButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- allowCaching = allowCachingButton.getSelection();
- }
- });
- Composite warningComposite = new Composite(main, SWT.NONE);
- layout = new GridLayout();
- layout.numColumns = 2;
- layout.marginHeight = 0;
- layout.marginHeight = 0;
- warningComposite.setLayout(layout);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 3;
- warningComposite.setLayoutData(data);
- Label warningLabel = new Label(warningComposite, SWT.NONE);
- warningLabel.setImage(getImage(DLG_IMG_MESSAGE_WARNING));
- warningLabel.setLayoutData(
- new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.HORIZONTAL_ALIGN_BEGINNING));
- Label warningText = new Label(warningComposite, SWT.WRAP);
- warningText.setText(SshMessages.UserValidationDialog_7);
- data = new GridData(GridData.FILL_HORIZONTAL);
- data.widthHint = 300;
- warningText.setLayoutData(data);
- }
-
- Dialog.applyDialogFont(parent);
-
- return main;
- }
-
- /**
- * Creates the three widgets that represent the password entry area.
- *
- * @param parent the parent of the widgets
- */
- protected void createPasswordFields(Composite parent) {
- new Label(parent, SWT.NONE).setText(SshMessages.UserValidationDialog_password);
-
- passwordField = new Text(parent, SWT.BORDER | SWT.PASSWORD);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
- passwordField.setLayoutData(data);
- }
-
- /**
- * Creates the three widgets that represent the user name entry area.
- *
- * @param parent the parent of the widgets
- */
- protected void createUsernameFields(Composite parent) {
- new Label(parent, SWT.NONE).setText(SshMessages.UserValidationDialog_user);
-
- usernameField = new Text(parent, SWT.BORDER);
- GridData data = new GridData(GridData.FILL_HORIZONTAL);
- data.horizontalSpan = 2;
- data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH);
- usernameField.setLayoutData(data);
- }
-
- /**
- * Returns the password entered by the user, or null
- * if the user cancelled.
- *
- * @return the entered password
- */
- public String getPassword() {
- return password;
- }
-
- /**
- * Returns the username entered by the user, or null
- * if the user cancelled.
- *
- * @return the entered username
- */
- public String getUsername() {
- return username;
- }
-
- /**
- * Returns true
if the save password checkbox was selected.
- * @return true
if the save password checkbox was selected and false
- * otherwise.
- */
- public boolean getAllowCaching() {
- return allowCaching;
- }
-
- /**
- * Notifies that the ok button of this dialog has been pressed.
- *
- * The default implementation of this framework method sets
- * this dialog's return code to Window.OK
- * and closes the dialog. Subclasses may override.
- *
- */
- @Override
- protected void okPressed() {
- password = passwordField.getText();
- username = usernameField.getText();
-
- super.okPressed();
- }
-
- /**
- * Sets whether or not the username field should be mutable.
- * This method must be called before create(), otherwise it
- * will be ignored.
- *
- * @param value whether the username is mutable
- */
- public void setUsernameMutable(boolean value) {
- isUsernameMutable = value;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#close()
- */
- @Override
- public boolean close() {
- if (keyLockImage != null) {
- keyLockImage.dispose();
- }
- return super.close();
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/controls/SshWizardConfigurationPanel.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/controls/SshWizardConfigurationPanel.java
deleted file mode 100644
index 18531ac11d4..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/controls/SshWizardConfigurationPanel.java
+++ /dev/null
@@ -1,440 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [361352] [TERMINALS][SSH] Add SSH terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.controls;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.equinox.security.storage.ISecurePreferences;
-import org.eclipse.equinox.security.storage.SecurePreferencesFactory;
-import org.eclipse.equinox.security.storage.StorageException;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage;
-import org.eclipse.tm.terminal.connector.ssh.connector.SshConnector;
-import org.eclipse.tm.terminal.connector.ssh.connector.SshSettings;
-import org.eclipse.tm.terminal.connector.ssh.connector.SshSettingsPage;
-import org.eclipse.tm.terminal.connector.ssh.nls.Messages;
-import org.eclipse.tm.terminal.view.core.TerminalContextPropertiesProviderFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.IContextPropertiesConstants;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel;
-
-/**
- * SSH wizard configuration panel implementation.
- */
-public class SshWizardConfigurationPanel extends AbstractExtendedConfigurationPanel {
-
- private static final String SAVE_USER = "saveUser"; //$NON-NLS-1$
- private static final String SAVE_PASSWORD = "savePassword"; //$NON-NLS-1$
-
- private SshSettings sshSettings;
- private ISettingsPage sshSettingsPage;
- private Button userButton;
- private Button passwordButton;
-
- /**
- * Constructor.
- *
- * @param container The configuration panel container or null
.
- */
- public SshWizardConfigurationPanel(IConfigurationPanelContainer container) {
- super(container);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel#setupPanel(org.eclipse.swt.widgets.Composite)
- */
- @Override
- public void setupPanel(Composite parent) {
- Composite panel = new Composite(parent, SWT.NONE);
- panel.setLayout(new GridLayout());
- GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
- panel.setLayoutData(data);
-
- // Create the host selection combo
- if (isWithoutSelection())
- createHostsUI(panel, true);
-
- SshConnector conn = new SshConnector();
- sshSettings = (SshSettings) conn.getSshSettings();
- sshSettings.setHost(getSelectionHost());
- sshSettings.setUser(getDefaultUser());
-
- sshSettingsPage = new SshSettingsPage(sshSettings);
- if (sshSettingsPage instanceof AbstractSettingsPage) {
- ((AbstractSettingsPage) sshSettingsPage).setHasControlDecoration(true);
- }
- sshSettingsPage.createControl(panel);
-
- // Add the listener to the settings page
- sshSettingsPage.addListener(new ISettingsPage.Listener() {
- @Override
- public void onSettingsPageChanged(Control control) {
- if (getContainer() != null)
- getContainer().validate();
- }
- });
-
- // Create the encoding selection combo
- createEncodingUI(panel, true);
-
- // if user and password for host should be saved or not
- createSaveButtonsUI(panel, true);
-
- setControl(panel);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#setupData(java.util.Map)
- */
- @Override
- public void setupData(Map data) {
- if (data == null || sshSettings == null || sshSettingsPage == null)
- return;
-
- String value = (String) data.get(ITerminalsConnectorConstants.PROP_IP_HOST);
- if (value != null)
- sshSettings.setHost(value);
-
- Object v = data.get(ITerminalsConnectorConstants.PROP_IP_PORT);
- value = v != null ? v.toString() : null;
- if (value != null)
- sshSettings.setPort(value);
-
- v = data.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
- value = v != null ? v.toString() : null;
- if (value != null)
- sshSettings.setTimeout(value);
-
- v = data.get(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE);
- value = v != null ? v.toString() : null;
- if (value != null)
- sshSettings.setKeepalive(value);
-
- value = (String) data.get(ITerminalsConnectorConstants.PROP_SSH_PASSWORD);
- if (value != null)
- sshSettings.setPassword(value);
-
- value = (String) data.get(ITerminalsConnectorConstants.PROP_SSH_USER);
- if (value != null)
- sshSettings.setUser(value);
-
- value = (String) data.get(ITerminalsConnectorConstants.PROP_ENCODING);
- if (value != null)
- setEncoding(value);
-
- sshSettingsPage.loadSettings();
- }
-
- /**
- * Returns the default user name.
- *
- * @return The default user name.
- */
- private String getDefaultUser() {
- ISelection selection = getSelection();
- if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
- Object element = ((IStructuredSelection) selection).getFirstElement();
- ITerminalContextPropertiesProvider provider = TerminalContextPropertiesProviderFactory.getProvider(element);
- if (provider != null) {
- Object user = provider.getProperty(element, IContextPropertiesConstants.PROP_DEFAULT_USER);
- if (user instanceof String)
- return ((String) user).trim();
- }
- }
-
- return System.getProperty("user.name"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#extractData(java.util.Map)
- */
- @Override
- public void extractData(Map data) {
- if (data == null)
- return;
-
- // set the terminal connector id for ssh
- data.put(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID,
- "org.eclipse.tm.terminal.connector.ssh.SshConnector"); //$NON-NLS-1$
-
- sshSettingsPage.saveSettings();
- data.put(ITerminalsConnectorConstants.PROP_IP_HOST, sshSettings.getHost());
- data.put(ITerminalsConnectorConstants.PROP_IP_PORT, Integer.valueOf(sshSettings.getPort()));
- data.put(ITerminalsConnectorConstants.PROP_TIMEOUT, Integer.valueOf(sshSettings.getTimeout()));
- data.put(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE, Integer.valueOf(sshSettings.getKeepalive()));
- data.put(ITerminalsConnectorConstants.PROP_SSH_PASSWORD, sshSettings.getPassword());
- data.put(ITerminalsConnectorConstants.PROP_SSH_USER, sshSettings.getUser());
- data.put(ITerminalsConnectorConstants.PROP_ENCODING, getEncoding());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#fillSettingsForHost(java.lang.String)
- */
- @Override
- protected void fillSettingsForHost(String host) {
- boolean saveUser = true;
- boolean savePassword = false;
- if (host != null && host.length() != 0) {
- if (hostSettingsMap.containsKey(host)) {
- Map hostSettings = hostSettingsMap.get(host);
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_IP_HOST) != null) {
- sshSettings.setHost(hostSettings.get(ITerminalsConnectorConstants.PROP_IP_HOST));
- }
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_IP_PORT) != null) {
- sshSettings.setPort(hostSettings.get(ITerminalsConnectorConstants.PROP_IP_PORT));
- }
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_TIMEOUT) != null) {
- sshSettings.setTimeout(hostSettings.get(ITerminalsConnectorConstants.PROP_TIMEOUT));
- }
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE) != null) {
- sshSettings.setKeepalive(hostSettings.get(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE));
- }
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_SSH_USER) != null) {
- sshSettings.setUser(hostSettings.get(ITerminalsConnectorConstants.PROP_SSH_USER));
- }
- if (hostSettings.get(SAVE_PASSWORD) != null) {
- savePassword = new Boolean(hostSettings.get(SAVE_PASSWORD)).booleanValue();
- }
- if (!savePassword) {
- sshSettings.setPassword(""); //$NON-NLS-1$
- } else {
- String password = accessSecurePassword(sshSettings.getHost());
- if (password != null) {
- sshSettings.setPassword(password);
- }
- }
-
- String encoding = hostSettings.get(ITerminalsConnectorConstants.PROP_ENCODING);
- if (encoding == null || "null".equals(encoding)) { //$NON-NLS-1$
- String defaultEncoding = getSelectionEncoding();
- encoding = defaultEncoding != null && !"".equals(defaultEncoding.trim()) ? defaultEncoding.trim() //$NON-NLS-1$
- : "UTF-8"; //$NON-NLS-1$
- }
- setEncoding(encoding);
- } else {
- sshSettings.setHost(getSelectionHost());
- sshSettings.setUser(getDefaultUser());
- saveUser = true;
- savePassword = false;
- }
- // set settings in page
- sshSettingsPage.loadSettings();
- userButton.setSelection(saveUser);
- passwordButton.setSelection(savePassword);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel#doSaveWidgetValues(org.eclipse.jface.dialogs.IDialogSettings, java.lang.String)
- */
- @Override
- public void doSaveWidgetValues(IDialogSettings settings, String idPrefix) {
- saveSettingsForHost(true);
- super.doSaveWidgetValues(settings, idPrefix);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#saveSettingsForHost(boolean)
- */
- @Override
- protected void saveSettingsForHost(boolean add) {
- boolean saveUser = userButton.getSelection();
- boolean savePassword = passwordButton.getSelection();
- String host = getHostFromSettings();
- if (host != null && host.length() != 0) {
- if (hostSettingsMap.containsKey(host)) {
- Map hostSettings = hostSettingsMap.get(host);
- hostSettings.put(ITerminalsConnectorConstants.PROP_IP_HOST, sshSettings.getHost());
- hostSettings.put(ITerminalsConnectorConstants.PROP_IP_PORT, Integer.toString(sshSettings.getPort()));
- hostSettings.put(ITerminalsConnectorConstants.PROP_TIMEOUT, Integer.toString(sshSettings.getTimeout()));
- hostSettings.put(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE,
- Integer.toString(sshSettings.getKeepalive()));
- if (saveUser) {
- if (sshSettings.getUser() != null) {
- hostSettings.put(ITerminalsConnectorConstants.PROP_SSH_USER, sshSettings.getUser());
- } else {
- hostSettings.remove(ITerminalsConnectorConstants.PROP_SSH_USER);
- }
- } else {
- hostSettings.remove(ITerminalsConnectorConstants.PROP_SSH_USER);
- }
-
- String encoding = getEncoding();
- if (encoding != null) {
- String defaultEncoding = getSelectionEncoding();
- if (defaultEncoding != null && defaultEncoding.trim().equals(encoding)) {
- encoding = null;
- }
- }
- hostSettings.put(ITerminalsConnectorConstants.PROP_ENCODING, encoding);
- hostSettings.put(SAVE_USER, Boolean.toString(saveUser));
- hostSettings.put(SAVE_PASSWORD, Boolean.toString(savePassword));
-
- if (savePassword && sshSettings.getPassword() != null && sshSettings.getPassword().length() != 0) {
- saveSecurePassword(host, sshSettings.getPassword());
- }
-
- // maybe unchecked the password button - so try to remove a saved password - if any
- if (!savePassword)
- removeSecurePassword(host);
- } else if (add) {
- Map hostSettings = new HashMap<>();
- hostSettings.put(ITerminalsConnectorConstants.PROP_IP_HOST, sshSettings.getHost());
- hostSettings.put(ITerminalsConnectorConstants.PROP_IP_PORT, Integer.toString(sshSettings.getPort()));
- hostSettings.put(ITerminalsConnectorConstants.PROP_TIMEOUT, Integer.toString(sshSettings.getTimeout()));
- hostSettings.put(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE,
- Integer.toString(sshSettings.getKeepalive()));
- if (saveUser) {
- if (sshSettings.getUser() != null) {
- hostSettings.put(ITerminalsConnectorConstants.PROP_SSH_USER, sshSettings.getUser());
- }
- }
- hostSettings.put(ITerminalsConnectorConstants.PROP_ENCODING, getEncoding());
- hostSettings.put(SAVE_USER, Boolean.toString(saveUser));
- hostSettings.put(SAVE_PASSWORD, Boolean.toString(savePassword));
- hostSettingsMap.put(host, hostSettings);
-
- if (savePassword && sshSettings.getPassword() != null && sshSettings.getPassword().length() != 0) {
- saveSecurePassword(host, sshSettings.getPassword());
- }
- }
- }
- }
-
- /**
- * Save the password to the secure storage.
- *
- * @param host The host. Must not be null
.
- * @param password The password. Must not be null
.
- */
- private void saveSecurePassword(String host, String password) {
- Assert.isNotNull(host);
- Assert.isNotNull(password);
-
- // To access the secure storage, we need the preference instance
- ISecurePreferences preferences = SecurePreferencesFactory.getDefault();
- if (preferences != null) {
- // Construct the secure preferences node key
- String nodeKey = "/Target Explorer SSH Password/" + host; //$NON-NLS-1$
- ISecurePreferences node = preferences.node(nodeKey);
- if (node != null) {
- try {
- node.put("password", password, true); //$NON-NLS-1$
- } catch (StorageException ex) {
- /* ignored on purpose */ }
- }
- }
- }
-
- /**
- * Reads the password from the secure storage.
- *
- * @param host The host. Must not be null
.
- * @return The password or null
.
- */
- private String accessSecurePassword(String host) {
- Assert.isNotNull(host);
-
- // To access the secure storage, we need the preference instance
- ISecurePreferences preferences = SecurePreferencesFactory.getDefault();
- if (preferences != null) {
- // Construct the secure preferences node key
- String nodeKey = "/Target Explorer SSH Password/" + host; //$NON-NLS-1$
- ISecurePreferences node = preferences.node(nodeKey);
- if (node != null) {
- String password = null;
- try {
- password = node.get("password", null); //$NON-NLS-1$
- } catch (StorageException ex) {
- /* ignored on purpose */ }
-
- return password;
- }
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#removeSecurePassword(java.lang.String)
- */
- @Override
- protected void removeSecurePassword(String host) {
- Assert.isNotNull(host);
-
- // To access the secure storage, we need the preference instance
- ISecurePreferences preferences = SecurePreferencesFactory.getDefault();
- if (preferences != null) {
- // Construct the secure preferences node key
- String nodeKey = "/Target Explorer SSH Password/" + host; //$NON-NLS-1$
- ISecurePreferences node = preferences.node(nodeKey);
- if (node != null) {
- node.remove("password"); //$NON-NLS-1$
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#isValid()
- */
- @Override
- public boolean isValid() {
- return isEncodingValid() && sshSettingsPage.validateSettings();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel#getHostFromSettings()
- */
- @Override
- protected String getHostFromSettings() {
- sshSettingsPage.saveSettings();
- return sshSettings.getHost();
- }
-
- private void createSaveButtonsUI(final Composite parent, boolean separator) {
- Assert.isNotNull(parent);
-
- if (separator) {
- Label sep = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
- sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- }
-
- Composite panel = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- panel.setLayout(layout);
- panel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-
- userButton = new Button(panel, SWT.CHECK);
- userButton.setLayoutData(new GridData(SWT.LEAD, SWT.CENTER, false, false));
- userButton.setText(Messages.SshWizardConfigurationPanel_saveUser);
-
- passwordButton = new Button(panel, SWT.CHECK);
- passwordButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- passwordButton.setText(Messages.SshWizardConfigurationPanel_savePassword);
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/launcher/SshLauncherDelegate.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/launcher/SshLauncherDelegate.java
deleted file mode 100644
index 6b43937b9c0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/launcher/SshLauncherDelegate.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [361352] [TERMINALS][SSH] Add SSH terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.launcher;
-
-import java.text.DateFormat;
-import java.util.Date;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
-import org.eclipse.tm.terminal.connector.ssh.connector.ISshSettings;
-import org.eclipse.tm.terminal.connector.ssh.connector.SshSettings;
-import org.eclipse.tm.terminal.connector.ssh.controls.SshWizardConfigurationPanel;
-import org.eclipse.tm.terminal.connector.ssh.nls.Messages;
-import org.eclipse.tm.terminal.view.core.TerminalServiceFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
-import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
-import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
-
-/**
- * SSH launcher delegate implementation.
- */
-@SuppressWarnings("restriction")
-public class SshLauncherDelegate extends AbstractLauncherDelegate {
- // The SSH terminal connection memento handler
- private final IMementoHandler mementoHandler = new SshMementoHandler();
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#needsUserConfiguration()
- */
- @Override
- public boolean needsUserConfiguration() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#getPanel(org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer)
- */
- @Override
- public IConfigurationPanel getPanel(IConfigurationPanelContainer container) {
- return new SshWizardConfigurationPanel(container);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#execute(java.util.Map, org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done)
- */
- @Override
- public void execute(Map properties, ITerminalService.Done done) {
- Assert.isNotNull(properties);
-
- // Set the terminal tab title
- String terminalTitle = getTerminalTitle(properties);
- if (terminalTitle != null) {
- properties.put(ITerminalsConnectorConstants.PROP_TITLE, terminalTitle);
- }
-
- // For SSH terminals, force a new terminal tab each time it is launched,
- // if not set otherwise from outside
- if (!properties.containsKey(ITerminalsConnectorConstants.PROP_FORCE_NEW)) {
- properties.put(ITerminalsConnectorConstants.PROP_FORCE_NEW, Boolean.TRUE);
- }
-
- // Get the terminal service
- ITerminalService terminal = TerminalServiceFactory.getService();
- // If not available, we cannot fulfill this request
- if (terminal != null) {
- terminal.openConsole(properties, done);
- }
- }
-
- /**
- * Returns the terminal title string.
- *
- * The default implementation constructs a title like "SSH @ host (Start time) ".
- *
- * @return The terminal title string or null
.
- */
- private String getTerminalTitle(Map properties) {
- // Try to see if the user set a title explicitly via the properties map.
- String title = getDefaultTerminalTitle(properties);
- if (title != null)
- return title;
-
- //No title,try to calculate the title
- String host = (String) properties.get(ITerminalsConnectorConstants.PROP_IP_HOST);
- String user = (String) properties.get(ITerminalsConnectorConstants.PROP_SSH_USER);
- Object value = properties.get(ITerminalsConnectorConstants.PROP_IP_PORT);
- String port = value != null ? value.toString() : null;
-
- if (host != null && user != null) {
- DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
- String date = format.format(new Date(System.currentTimeMillis()));
- if (port != null && Integer.valueOf(port).intValue() != ISshSettings.DEFAULT_SSH_PORT) {
- return NLS.bind(Messages.SshLauncherDelegate_terminalTitle_port,
- new String[] { user, host, port, date });
- }
- return NLS.bind(Messages.SshLauncherDelegate_terminalTitle, new String[] { user, host, date });
- }
-
- return Messages.SshLauncherDelegate_terminalTitle_default;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class)
- */
- @Override
- public Object getAdapter(Class adapter) {
- if (IMementoHandler.class.equals(adapter)) {
- return mementoHandler;
- }
- return super.getAdapter(adapter);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate#createTerminalConnector(java.util.Map)
- */
- @Override
- public ITerminalConnector createTerminalConnector(Map properties) {
- Assert.isNotNull(properties);
-
- // Check for the terminal connector id
- String connectorId = (String) properties.get(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
- if (connectorId == null)
- connectorId = "org.eclipse.tm.terminal.connector.ssh.SshConnector"; //$NON-NLS-1$
-
- // Extract the ssh properties
- String host = (String) properties.get(ITerminalsConnectorConstants.PROP_IP_HOST);
- Object value = properties.get(ITerminalsConnectorConstants.PROP_IP_PORT);
- String port = value != null ? value.toString() : null;
- value = properties.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
- String timeout = value != null ? value.toString() : null;
- value = properties.get(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE);
- String keepAlive = value != null ? value.toString() : null;
- String password = (String) properties.get(ITerminalsConnectorConstants.PROP_SSH_PASSWORD);
- String user = (String) properties.get(ITerminalsConnectorConstants.PROP_SSH_USER);
-
- int portOffset = 0;
- if (properties.get(ITerminalsConnectorConstants.PROP_IP_PORT_OFFSET) instanceof Integer) {
- portOffset = ((Integer) properties.get(ITerminalsConnectorConstants.PROP_IP_PORT_OFFSET)).intValue();
- if (portOffset < 0)
- portOffset = 0;
- }
-
- // The real port to connect to is port + portOffset
- if (port != null) {
- port = Integer.toString(Integer.decode(port).intValue() + portOffset);
- }
-
- // Construct the ssh settings store
- ISettingsStore store = new SettingsStore();
-
- // Construct the telnet settings
- SshSettings sshSettings = new SshSettings();
- sshSettings.setHost(host);
- sshSettings.setPort(port);
- sshSettings.setTimeout(timeout);
- sshSettings.setKeepalive(keepAlive);
- sshSettings.setPassword(password);
- sshSettings.setUser(user);
-
- // And save the settings to the store
- sshSettings.save(store);
-
- // MWE TODO make sure this is NOT passed outside as this is plain text
- store.put("Password", password); //$NON-NLS-1$
-
- // Construct the terminal connector instance
- ITerminalConnector connector = TerminalConnectorExtension.makeTerminalConnector(connectorId);
- if (connector != null) {
- // Apply default settings
- connector.setDefaultSettings();
- // And load the real settings
- connector.load(store);
- }
-
- return connector;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/launcher/SshMementoHandler.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/launcher/SshMementoHandler.java
deleted file mode 100644
index b7b5f4b65f1..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/launcher/SshMementoHandler.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.launcher;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.equinox.security.storage.ISecurePreferences;
-import org.eclipse.equinox.security.storage.SecurePreferencesFactory;
-import org.eclipse.equinox.security.storage.StorageException;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
-import org.eclipse.ui.IMemento;
-
-/**
- * SSH terminal connection memento handler implementation.
- */
-public class SshMementoHandler implements IMementoHandler {
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler#saveState(org.eclipse.ui.IMemento, java.util.Map)
- */
- @Override
- public void saveState(IMemento memento, Map properties) {
- Assert.isNotNull(memento);
- Assert.isNotNull(properties);
-
- // Do not write the terminal title to the memento -> needs to
- // be recreated at the time of restoration.
- memento.putString(ITerminalsConnectorConstants.PROP_IP_HOST,
- (String) properties.get(ITerminalsConnectorConstants.PROP_IP_HOST));
- Object value = properties.get(ITerminalsConnectorConstants.PROP_IP_PORT);
- memento.putInteger(ITerminalsConnectorConstants.PROP_IP_PORT,
- value instanceof Integer ? ((Integer) value).intValue() : -1);
- value = properties.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
- memento.putInteger(ITerminalsConnectorConstants.PROP_TIMEOUT,
- value instanceof Integer ? ((Integer) value).intValue() : -1);
- value = properties.get(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE);
- memento.putInteger(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE,
- value instanceof Integer ? ((Integer) value).intValue() : -1);
- memento.putString(ITerminalsConnectorConstants.PROP_SSH_USER,
- (String) properties.get(ITerminalsConnectorConstants.PROP_SSH_USER));
- memento.putString(ITerminalsConnectorConstants.PROP_ENCODING,
- (String) properties.get(ITerminalsConnectorConstants.PROP_ENCODING));
-
- // The password is stored within the Eclipse secure preferences -> no need to store it to the memento
- //
- // If ever needed, this is an example on how to encrypt the password using 3DES. Do not remove!
-
- /*
- String password = properties.getStringProperty(ITerminalsConnectorConstants.PROP_SSH_PASSWORD);
- if (password != null) {
- try {
- // Generate a temporary key. In practice, you would save this key.
- // See also Encrypting with DES Using a Pass Phrase.
- // SecretKey key = KeyGenerator.getInstance("DESede").generateKey();
-
- SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede"); //$NON-NLS-1$
- SecretKey key = factory.generateSecret(new DESKeySpec((ITerminalsConnectorConstants.PROP_SSH_PASSWORD + ".SshMementoHandler").getBytes("UTF-8"))); //$NON-NLS-1$ //$NON-NLS-2$
-
- Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); //$NON-NLS-1$
- cipher.init(Cipher.ENCRYPT_MODE, key);
-
- String encrypedPwd = new String(Base64.encode(cipher.doFinal(password.getBytes("UTF-8")))); //$NON-NLS-1$
- memento.putString(ITerminalsConnectorConstants.PROP_SSH_PASSWORD, encrypedPwd);
- }
- catch (Exception e) {
- if (Platform.inDebugMode()) e.printStackTrace();
- }
- }
- */
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler#restoreState(org.eclipse.ui.IMemento, java.util.Map)
- */
- @Override
- public void restoreState(IMemento memento, Map properties) {
- Assert.isNotNull(memento);
- Assert.isNotNull(properties);
-
- // Restore the terminal properties from the memento
- properties.put(ITerminalsConnectorConstants.PROP_IP_HOST,
- memento.getString(ITerminalsConnectorConstants.PROP_IP_HOST));
- properties.put(ITerminalsConnectorConstants.PROP_IP_PORT,
- memento.getInteger(ITerminalsConnectorConstants.PROP_IP_PORT));
- properties.put(ITerminalsConnectorConstants.PROP_TIMEOUT,
- memento.getInteger(ITerminalsConnectorConstants.PROP_TIMEOUT));
- properties.put(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE,
- memento.getInteger(ITerminalsConnectorConstants.PROP_SSH_KEEP_ALIVE));
- properties.put(ITerminalsConnectorConstants.PROP_SSH_USER,
- memento.getString(ITerminalsConnectorConstants.PROP_SSH_USER));
- properties.put(ITerminalsConnectorConstants.PROP_ENCODING,
- memento.getString(ITerminalsConnectorConstants.PROP_ENCODING));
-
- // The password is stored within the Eclipse secure preferences -> restore it from there
- // To access the secure storage, we need the preference instance
- String password = null;
- ISecurePreferences preferences = SecurePreferencesFactory.getDefault();
- if (preferences != null && (String) properties.get(ITerminalsConnectorConstants.PROP_IP_HOST) != null) {
- // Construct the secure preferences node key
- String nodeKey = "/Target Explorer SSH Password/" //$NON-NLS-1$
- + (String) properties.get(ITerminalsConnectorConstants.PROP_IP_HOST);
- ISecurePreferences node = preferences.node(nodeKey);
- if (node != null) {
- try {
- password = node.get("password", null); //$NON-NLS-1$
- } catch (StorageException ex) {
- /* ignored on purpose */ }
- }
- }
-
- // Example of restoring the password from an 3DES encrypted string. Do not remove!
- /*
- String encrypedPwd = memento.getString(ITerminalsConnectorConstants.PROP_SSH_PASSWORD);
- if (encrypedPwd != null) {
- try {
- SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede"); //$NON-NLS-1$
- SecretKey key = factory.generateSecret(new DESKeySpec((ITerminalsConnectorConstants.PROP_SSH_PASSWORD + ".SshMementoHandler").getBytes("UTF-8"))); //$NON-NLS-1$ //$NON-NLS-2$
-
- Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); //$NON-NLS-1$
- cipher.init(Cipher.DECRYPT_MODE, key);
-
- byte[] encBytes = Base64.decode(encrypedPwd.getBytes("UTF-8")); //$NON-NLS-1$
- byte[] decBytes = cipher.doFinal(encBytes);
-
- password = new String(decBytes);
- }
- catch (Exception e) {
- if (Platform.inDebugMode()) e.printStackTrace();
- }
- }
- */
-
- properties.put(ITerminalsConnectorConstants.PROP_SSH_PASSWORD, password);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/nls/Messages.java b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/nls/Messages.java
deleted file mode 100644
index 61978ceb6df..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/nls/Messages.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [361352] [TERMINALS][SSH] Add SSH terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.ssh.nls;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Externalized strings management.
- */
-public class Messages extends NLS {
-
- // The plug-in resource bundle name
- private static final String BUNDLE_NAME = "org.eclipse.tm.terminal.connector.ssh.nls.Messages"; //$NON-NLS-1$
-
- /**
- * Static constructor.
- */
- static {
- // Load message values from bundle file
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- // **** Declare externalized string id's down here *****
-
- public static String SshLauncherDelegate_terminalTitle;
- public static String SshLauncherDelegate_terminalTitle_port;
- public static String SshLauncherDelegate_terminalTitle_default;
- public static String SshWizardConfigurationPanel_saveUser;
- public static String SshWizardConfigurationPanel_savePassword;
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/nls/Messages.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/nls/Messages.properties
deleted file mode 100644
index 5a5b7efec5c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.ssh/src/org/eclipse/tm/terminal/connector/ssh/nls/Messages.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-
-SshLauncherDelegate_terminalTitle=SSH {0}@{1} ({2})
-SshLauncherDelegate_terminalTitle_port=SSH {0}@{1}:{2} ({3})
-SshLauncherDelegate_terminalTitle_default=SSH Terminal
-SshWizardConfigurationPanel_saveUser=Save user
-SshWizardConfigurationPanel_savePassword=Save password
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.classpath b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.classpath
deleted file mode 100644
index 81fe078c20c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.gitignore b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.gitignore
deleted file mode 100644
index ae3c1726048..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.options b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.options
deleted file mode 100644
index 77c6a134ddd..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.tm.terminal.connector.telnet/debugmode = 0
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.project b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.project
deleted file mode 100644
index 83045227a60..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.project
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
- org.eclipse.tm.terminal.connector.telnet
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- 1329502098231
-
- 10
-
- org.eclipse.ui.ide.multiFilter
- 1.0-name-matches-false-false-target
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/.api_filters b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/.api_filters
deleted file mode 100644
index b44d5989d5e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.core.resources.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.core.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9df862f8d49..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,486 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.launching.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.ui.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d35ba9b5231..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,213 +0,0 @@
-cleanup.add_all=false
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.array_with_curly=false
-cleanup.arrays_fill=false
-cleanup.bitwise_conditional_expression=false
-cleanup.boolean_literal=false
-cleanup.boolean_value_rather_than_comparison=false
-cleanup.break_loop=false
-cleanup.collection_cloning=false
-cleanup.comparing_on_criteria=false
-cleanup.comparison_statement=false
-cleanup.controlflow_merge=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
-cleanup.convert_to_switch_expressions=false
-cleanup.correct_indentation=false
-cleanup.do_while_rather_than_while=true
-cleanup.double_negation=false
-cleanup.else_if=false
-cleanup.embedded_if=false
-cleanup.evaluate_nullable=false
-cleanup.extract_increment=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.hash=false
-cleanup.if_condition=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.instanceof=false
-cleanup.instanceof_keyword=false
-cleanup.invert_equals=false
-cleanup.join=false
-cleanup.lazy_logical_operator=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.map_cloning=false
-cleanup.merge_conditional_blocks=false
-cleanup.multi_catch=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.no_string_creation=false
-cleanup.no_super=false
-cleanup.number_suffix=false
-cleanup.objects_equals=false
-cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
-cleanup.operand_factorization=false
-cleanup.organize_imports=true
-cleanup.overridden_assignment=false
-cleanup.plain_replacement=false
-cleanup.precompile_regex=false
-cleanup.primitive_comparison=false
-cleanup.primitive_parsing=false
-cleanup.primitive_rather_than_wrapper=false
-cleanup.primitive_serialization=false
-cleanup.pull_out_if_from_if_else=false
-cleanup.pull_up_assignment=false
-cleanup.push_down_negation=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.reduce_indentation=false
-cleanup.redundant_comparator=false
-cleanup.redundant_falling_through_block_end=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_array_creation=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_method_parameters=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.return_expression=false
-cleanup.simplify_lambda_expression_and_method_ref=false
-cleanup.single_used_field=false
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.standard_comparison=false
-cleanup.static_inner_class=false
-cleanup.strictly_equal_or_different=false
-cleanup.stringbuffer_to_stringbuilder=false
-cleanup.stringbuilder=false
-cleanup.stringbuilder_for_local_vars=true
-cleanup.stringconcat_to_textblock=false
-cleanup.substring=false
-cleanup.switch=false
-cleanup.system_property=false
-cleanup.system_property_boolean=false
-cleanup.system_property_file_encoding=false
-cleanup.system_property_file_separator=false
-cleanup.system_property_line_separator=false
-cleanup.system_property_path_separator=false
-cleanup.ternary_operator=false
-cleanup.try_with_resource=false
-cleanup.unlooped_while=false
-cleanup.unreachable_block=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_autoboxing=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_directly_map_method=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_string_is_blank=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup.use_unboxing=false
-cleanup.use_var=false
-cleanup.useless_continue=false
-cleanup.useless_return=false
-cleanup.valueof_rather_than_instantiation=false
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.pde.api.tools.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf321d0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.pde.prefs b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index ffaa8e3f1a7..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,36 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.exec-env-too-low=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/META-INF/MANIFEST.MF b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/META-INF/MANIFEST.MF
deleted file mode 100644
index 9640e5b7d15..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.connector.telnet;singleton:=true
-Bundle-Version: 4.8.400.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.connector.telnet.activator.UIPlugin
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.9.400,4)",
- org.eclipse.core.runtime;bundle-version="[3.33.0,4)",
- org.eclipse.equinox.security;bundle-version="[1.4.600,2)",
- org.eclipse.tm.terminal.view.core;bundle-version="[4.10.400,5)";resolution:=optional,
- org.eclipse.tm.terminal.view.ui;bundle-version="[4.11.600,5)";resolution:=optional,
- org.eclipse.tm.terminal.control;bundle-version="[5.6.0,6.0.0)",
- org.eclipse.ui;bundle-version="[3.207.200,4)"
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.tm.terminal.connector.telnet.activator;x-internal:=true,
- org.eclipse.tm.terminal.connector.telnet.connector,
- org.eclipse.tm.terminal.connector.telnet.controls,
- org.eclipse.tm.terminal.connector.telnet.launcher,
- org.eclipse.tm.terminal.connector.telnet.nls;x-internal:=true
-Automatic-Module-Name: org.eclipse.tm.terminal.connector.telnet
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/about.html b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/about.html
deleted file mode 100644
index b3134865230..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/about.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
- About
-
-
-
- About This Content
-
- November 30, 2017
- License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at https://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at https://www.eclipse.org.
-
-
-
-
-
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/build.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/build.properties
deleted file mode 100644
index 4a9d09e7c1c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties,\
- plugin.xml,\
- about.html
-src.includes = about.html
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/plugin.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/plugin.properties
deleted file mode 100644
index 2c151e75e3d..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/plugin.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-##################################################################################
-# Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-##################################################################################
-
-pluginName = Terminal Telnet Connector
-providerName = Eclipse CDT
-
-# ----- Terminal Connector -----
-
-TelnetConnector.label=Telnet
-
-# ----- Terminal Launcher Delegates -----
-
-TelnetLauncherDelegate.label=Telnet Terminal
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/plugin.xml b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/plugin.xml
deleted file mode 100644
index dc9d728cb06..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/plugin.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/activator/UIPlugin.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/activator/UIPlugin.java
deleted file mode 100644
index b85e25876b3..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/activator/UIPlugin.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [366374] [TERMINALS][TELNET] Add Telnet terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.activator;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.tm.terminal.view.core.tracing.TraceHandler;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class UIPlugin extends AbstractUIPlugin {
- // The shared instance
- private static UIPlugin plugin;
- // The trace handler instance
- private static volatile TraceHandler traceHandler;
-
- /**
- * The constructor
- */
- public UIPlugin() {
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static UIPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plugin.
- */
- public static String getUniqueIdentifier() {
- if (getDefault() != null && getDefault().getBundle() != null) {
- return getDefault().getBundle().getSymbolicName();
- }
- return "org.eclipse.tm.terminal.connector.telnet"; //$NON-NLS-1$
- }
-
- /**
- * Returns the bundles trace handler.
- *
- * @return The bundles trace handler.
- */
- public static TraceHandler getTraceHandler() {
- if (traceHandler == null) {
- traceHandler = new TraceHandler(getUniqueIdentifier());
- }
- return traceHandler;
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
- @Override
- protected void initializeImageRegistry(ImageRegistry registry) {
- }
-
- /**
- * Loads the image registered under the specified key from the image
- * registry and returns the Image
object instance.
- *
- * @param key The key the image is registered with.
- * @return The Image
object instance or null
.
- */
- public static Image getImage(String key) {
- return getDefault().getImageRegistry().get(key);
- }
-
- /**
- * Loads the image registered under the specified key from the image
- * registry and returns the ImageDescriptor
object instance.
- *
- * @param key The key the image is registered with.
- * @return The ImageDescriptor
object instance or null
.
- */
- public static ImageDescriptor getImageDescriptor(String key) {
- return getDefault().getImageRegistry().getDescriptor(key);
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/ITelnetSettings.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/ITelnetSettings.java
deleted file mode 100644
index b59413ca745..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/ITelnetSettings.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-/**
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface ITelnetSettings {
- /**
- * @since 4.2
- */
- static final String EOL_CRNUL = "CR+NUL"; //$NON-NLS-1$
- /**
- * @since 4.2
- */
- static final String EOL_CRLF = "CR+LF"; //$NON-NLS-1$
-
- String getHost();
-
- int getNetworkPort();
-
- int getTimeout();
-
- /**
- * @since 4.2
- */
- String getEndOfLine();
-
- String getSummary();
-
- void load(ISettingsStore store);
-
- void save(ISettingsStore store);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/NetworkPortMap.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/NetworkPortMap.java
deleted file mode 100644
index 5fb593acd18..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/NetworkPortMap.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalNetworkPortMap
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class NetworkPortMap {
- public static final String PROP_NAMETGTCONS = "tgtcons"; //$NON-NLS-1$
- public static final String PROP_NAMETELNET = "telnet"; //$NON-NLS-1$
- public static final String PROP_VALUENET = "1233"; //$NON-NLS-1$
- public static final String PROP_VALUETGTCONS = "1232"; //$NON-NLS-1$
- public static final String PROP_VALUETELNET = "23"; //$NON-NLS-1$
-
- String[][] fPortMap = new String[][] {
- // portName, port
- { PROP_NAMETGTCONS, PROP_VALUETGTCONS }, { PROP_NAMETELNET, PROP_VALUETELNET } };
-
- public String getDefaultNetworkPort() {
- return PROP_VALUETELNET;
- }
-
- public String findPortName(String strPort) {
- for (int i = 0; i < fPortMap.length; i++) {
- if (fPortMap[i][1].equals(strPort))
- return fPortMap[i][0];
- }
- return null;
- }
-
- public String findPort(String strPortName) {
- for (int i = 0; i < fPortMap.length; i++) {
- if (fPortMap[i][0].equals(strPortName))
- return fPortMap[i][1];
- }
- return null;
- }
-
- public List getNameTable() {
- List names = new ArrayList<>();
- for (int i = 0; i < fPortMap.length; i++) {
- names.add(fPortMap[i][0]);
- }
- return names;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetCodes.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetCodes.java
deleted file mode 100644
index 21edea869da..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetCodes.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Fran Litterio (Wind River) - initial API and implementation
- * Helmut Haigermoser (Wind River) - repackaged
- * Ted Williams (Wind River) - repackaged into org.eclipse namespace
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-/**
- * This interface defines symbolic constants for numeric TELNET protocol command and
- * option codes. Any class that needs to use these constants must implement this
- * interface. The meanings of these constants are defined in the various TELNET RFCs
- * (RFC 854 to RFC 861, and others).
- */
-interface TelnetCodes {
- /** Command code: Subnegotiation End. */
- static final byte TELNET_SE = (byte) 240;
-
- /** Command code: No-op. */
- static final byte TELNET_NOP = (byte) 241;
-
- /** Command code: Data Mark. */
- static final byte TELNET_DM = (byte) 242;
-
- /** Command code: Break. */
- static final byte TELNET_BREAK = (byte) 243;
-
- /** Command code: Interrupt Process. */
- static final byte TELNET_IP = (byte) 244;
-
- /** Command code: Abort Output. */
- static final byte TELNET_AO = (byte) 245;
-
- /** Command code: Are You There. */
- static final byte TELNET_AYT = (byte) 246;
-
- /** Command code: Erase Character. */
- static final byte TELNET_EC = (byte) 247;
-
- /** Command code: Erase Line. */
- static final byte TELNET_EL = (byte) 248;
-
- /** Command code: Go Ahead. */
- static final byte TELNET_GA = (byte) 249;
-
- /** Command code: Subnegotiation Begin. */
- static final byte TELNET_SB = (byte) 250;
-
- /** Command code: Will. */
- static final byte TELNET_WILL = (byte) 251;
-
- /** Command code: Won't. */
- static final byte TELNET_WONT = (byte) 252;
-
- /** Command code: Do. */
- static final byte TELNET_DO = (byte) 253;
-
- /** Command code: Don't. */
- static final byte TELNET_DONT = (byte) 254;
-
- /** Command code: Interpret As Command. */
- static final byte TELNET_IAC = (byte) 255;
-
- /** Command code: IS. */
- static final byte TELNET_IS = 0;
-
- /** Command code: SEND. */
- static final byte TELNET_SEND = 1;
-
- /** Option code: Transmit Binary option. */
- static final byte TELNET_OPTION_TRANSMIT_BINARY = 0;
-
- /** Option code: Echo option. */
- static final byte TELNET_OPTION_ECHO = 1;
-
- /** Option code: Suppress Go Ahead option. */
- static final byte TELNET_OPTION_SUPPRESS_GA = 3;
-
- /** Option code: Terminal Type */
- static final byte TELNET_OPTION_TERMINAL_TYPE = 24;
-
- /** Option code: Negotitate About Window Size (NAWS) */
- static final byte TELNET_OPTION_NAWS = 31;
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnectWorker.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnectWorker.java
deleted file mode 100644
index d2ab614884a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnectWorker.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalControl
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Uwe Stieber (Wind River) - [287158][terminal][telnet] Connect worker is giving up to early
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import java.net.ConnectException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.SocketTimeoutException;
-import java.net.UnknownHostException;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-
-class TelnetConnectWorker extends Thread {
- private final ITerminalControl fControl;
- private final TelnetConnector fConn;
-
- protected TelnetConnectWorker(TelnetConnector conn, ITerminalControl control) {
- fControl = control;
- fConn = conn;
- fControl.setState(TerminalState.CONNECTING);
- }
-
- @Override
- public void run() {
- // Retry the connect with after a little pause in case the
- // remote telnet server isn't ready. ConnectExceptions might
- // happen if the telnet server process did not initialized itself.
- // This is seen especially if the telnet server is a process
- // providing it's input and output via a built in telnet server.
- int remaining = 10;
-
- while (remaining >= 0) {
- // Pause before we re-try if the remaining tries are less than the initial value
- if (remaining < 10)
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {
- /* ignored on purpose */ }
-
- try {
- int nTimeout = fConn.getTelnetSettings().getTimeout() * 1000;
- String strHost = fConn.getTelnetSettings().getHost();
- int nPort = fConn.getTelnetSettings().getNetworkPort();
- InetSocketAddress address = new InetSocketAddress(strHost, nPort);
- Socket socket = new Socket();
-
- socket.connect(address, nTimeout);
-
- // If we get to this point, the connect succeeded and we will
- // force the remaining counter to be 0.
- remaining = 0;
-
- // This next call causes reads on the socket to see TCP urgent data
- // inline with the rest of the non-urgent data. Without this call, TCP
- // urgent data is silently dropped by Java. This is required for
- // TELNET support, because when the TELNET server sends "IAC DM", the
- // IAC byte is TCP urgent data. If urgent data is silently dropped, we
- // only see the DM, which looks like an ISO Latin-1 '�' character.
-
- socket.setOOBInline(true);
-
- fConn.setSocket(socket);
-
- TelnetConnection connection = new TelnetConnection(fConn, socket);
- socket.setKeepAlive(true);
- fConn.setTelnetConnection(connection);
- connection.start();
- fControl.setState(TerminalState.CONNECTED);
-
- } catch (UnknownHostException ex) {
- // No re-try in case of UnknownHostException, there is no indication that
- // the DNS will fix itself
- remaining = 0;
- //Construct error message and signal failed
- String txt = "Unknown host: " + ex.getMessage(); //$NON-NLS-1$
- connectFailed(txt, "Unknown host: " + ex.getMessage() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
- } catch (SocketTimeoutException socketTimeoutException) {
- // Time out occurred. No re-try in this case either. Time out can
- // be increased by the user. Multiplying the timeout with the remaining
- // counter is not desired.
- remaining = 0;
- // Construct error message and signal failed
- connectFailed(socketTimeoutException.getMessage(),
- "Connection Error!\n" + socketTimeoutException.getMessage()); //$NON-NLS-1$
- } catch (ConnectException connectException) {
- // In case of a ConnectException, do a re-try. The server could have been
- // simply not ready yet and the worker would give up to early. If the terminal
- // control is already closed (disconnected), don't print "Connection refused" errors
- if (remaining == 0 && TerminalState.CLOSED != fControl.getState()) {
- connectFailed(connectException.getMessage(), "Connection refused!"); //$NON-NLS-1$
- }
- } catch (Exception exception) {
- // Any other exception on connect. No re-try in this case either
- remaining = 0;
- // Log the exception
- Logger.logException(exception);
- // And signal failed
- connectFailed(exception.getMessage(), ""); //$NON-NLS-1$
- } finally {
- remaining--;
- }
- }
- }
-
- private void connectFailed(String terminalText, String msg) {
- Logger.log(terminalText);
- fControl.displayTextInTerminal(terminalText);
- fConn.cleanSocket();
- fControl.setState(TerminalState.CLOSED);
- fControl.setMsg(msg);
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnection.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnection.java
deleted file mode 100644
index 63a1afd9a8b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnection.java
+++ /dev/null
@@ -1,704 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Fran Litterio (Wind River) - initial API and implementation
- * Helmut Haigermoser (Wind River) - repackaged
- * Ted Williams (Wind River) - repackaged into org.eclipse namespace
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Michael Scharf (Wind River) - [209665] Add ability to log byte streams from terminal
- * Alex Panchenko (Xored) - [277061] TelnetConnection.isConnected() should check if socket was not closed
- * Uwe Stieber (Wind River) - [281329] Telnet connection not handling "SocketException: Connection reset" correct
- * Nils Hagge (Siemens AG) - [276023] close socket streams after connection is disconnected
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Socket;
-import java.net.SocketException;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-
-/**
- * This class encapsulates a TELNET connection to a remote server. It processes
- * incoming TELNET protocol data and generates outbound TELNET protocol data. It
- * also manages two sets of TelnetOption objects: one for the local endpoint and
- * one for the remote endpoint.
- *
- *
- * IMPORTANT: Understanding this code requires understanding the TELNET protocol
- * and TELNET option processing, as defined in the RFCs listed below.
- *
- *
- * @author Fran Litterio (francis.litterio@windriver.com)
- *
- * @see RFC 854
- * @see RFC 855
- * @see RFC 856
- * @see RFC 857
- * @see RFC 858
- * @see RFC 859
- * @see RFC 860
- * @see RFC 861
- * @see RFC 1091
- * @see RFC 1096
- * @see RFC 1073
- * @see RFC 1079
- * @see RFC 1143
- * @see RFC 1572
- */
-public class TelnetConnection extends Thread implements TelnetCodes {
- /**
- * TELNET connection state: Initial state.
- */
- protected static final int STATE_INITIAL = 0;
-
- /**
- * TELNET connection state: Last byte processed was IAC code. code.
- */
- protected static final int STATE_IAC_RECEIVED = 1;
-
- /**
- * TELNET connection state: Last byte processed was WILL code. code.
- */
- protected static final int STATE_WILL_RECEIVED = 2;
-
- /**
- * TELNET connection state: Last byte processed was WONT code.
- */
- protected static final int STATE_WONT_RECEIVED = 3;
-
- /**
- * TELNET connection state: Last byte processed was DO code.
- */
- protected static final int STATE_DO_RECEIVED = 4;
-
- /**
- * TELNET connection state: Last byte processed was DONT code.
- */
- protected static final int STATE_DONT_RECEIVED = 5;
-
- /**
- * TELNET connection state: Last byte processed was SB.
- */
- protected static final int STATE_SUBNEGOTIATION_STARTED = 6;
-
- /**
- * TELNET connection state: Currently receiving sub-negotiation data.
- */
- protected static final int STATE_RECEIVING_SUBNEGOTIATION = 7;
-
- /**
- * Size of buffer for processing data received from remote endpoint.
- */
- protected static final int BUFFER_SIZE = 2048;
-
- /**
- * Holds raw bytes received from the remote endpoint, prior to any TELNET
- * protocol processing.
- */
- protected byte[] rawBytes = new byte[BUFFER_SIZE];
-
- /**
- * Holds incoming network data after the TELNET protocol bytes have been
- * processed and removed.
- */
- protected byte[] processedBytes = new byte[BUFFER_SIZE];
-
- /**
- * This field holds a StringBuffer containing text recently received from
- * the remote endpoint (after all TELNET protocol bytes have been processed
- * and removed).
- */
- protected StringBuffer processedStringBuffer = new StringBuffer(BUFFER_SIZE);
-
- /**
- * Holds the current state of the TELNET protocol processor.
- */
- protected int telnetState = STATE_INITIAL;
-
- /**
- * This field is true if the remote endpoint is a TELNET server, false if
- * not. We set this to true if and only if the remote endpoint sends
- * recognizable TELNET protocol data. We do not assume that the remote
- * endpoint is a TELNET server just because it is listening on port 23. This
- * allows us to successfully connect to a TELNET server listening on a port
- * other than 23.
- *
- *
- * When this field first changes from false to true, we send all WILL or DO
- * commands to the remote endpoint.
- *
- *
- * @see #telnetServerDetected()
- */
- protected boolean remoteIsTelnetServer = false;
-
- /**
- * An array of TelnetOption objects representing the local endpoint's TELNET
- * options. The array is indexed by the numeric TELNET option code.
- */
- protected TelnetOption[] localOptions = new TelnetOption[256];
-
- /**
- * An array of TelnetOption objects representing the remote endpoint's
- * TELNET options. The array is indexed by the numeric TELNET option code.
- */
- protected TelnetOption[] remoteOptions = new TelnetOption[256];
-
- /**
- * An array of bytes that holds the TELNET subnegotiation command most
- * recently received from the remote endpoint. This array does _not_ include
- * the leading IAC SB bytes, nor does it include the trailing IAC SE bytes.
- * The first byte of this array is always a TELNET option code.
- */
- protected byte[] receivedSubnegotiation = new byte[128];
-
- /**
- * This field holds the index into array {@link #receivedSubnegotiation} of
- * the next unused byte. This is used by method
- * {@link #processTelnetProtocol(int)} when the state machine is in states
- * {@link #STATE_SUBNEGOTIATION_STARTED} and {@link
- * #STATE_RECEIVING_SUBNEGOTIATION}.
- */
- protected int nextSubnegotiationByteIndex = 0;
-
- /**
- * This field is true if an error occurs while processing a subnegotiation
- * command.
- *
- * @see #processTelnetProtocol(int)
- */
- protected boolean ignoreSubnegotiation = false;
-
- /**
- * This field holds the width of the Terminal screen in columns.
- */
- protected int width = 0;
-
- /**
- * This field holds the height of the Terminal screen in rows.
- */
- protected int height = 0;
-
- /**
- * This field holds a reference to the {@link ITerminalControl} singleton.
- */
- protected TelnetConnector terminalControl;
-
- /**
- * This method holds the Socket object for the TELNET connection.
- */
- protected Socket socket;
-
- /**
- * This field holds a reference to an {@link InputStream} object used to
- * receive data from the remote endpoint.
- */
- protected InputStream inputStream;
-
- /**
- * This field holds a reference to an {@link OutputStream} object used to
- * send data to the remote endpoint.
- */
- protected OutputStream outputStream;
-
- /**
- * UNDER CONSTRUCTION
- */
- protected boolean localEcho = true;
-
- /**
- * This constructor just initializes some internal object state from its
- * arguments.
- */
- public TelnetConnection(TelnetConnector terminalControl, Socket socket) throws IOException {
- super();
-
- Logger.log("entered"); //$NON-NLS-1$
-
- this.terminalControl = terminalControl;
- this.socket = socket;
-
- inputStream = socket.getInputStream();
- outputStream = socket.getOutputStream();
-
- initializeOptions();
- }
-
- /**
- * Returns true if the TCP connection represented by this object is
- * connected, false otherwise.
- */
- public boolean isConnected() {
- return socket != null && socket.isConnected() && !socket.isClosed();
- }
-
- /**
- * Returns true if the TCP connection represented by this object is
- * connected and the remote endpoint is a TELNET server, false otherwise.
- */
- public boolean isRemoteTelnetServer() {
- return remoteIsTelnetServer;
- }
-
- /**
- * This method sets the terminal width and height to the supplied values. If
- * either new value differs from the corresponding old value, we initiate a
- * NAWS subnegotiation to inform the remote endpoint of the new terminal
- * size.
- */
- public void setTerminalSize(int newWidth, int newHeight) {
- Logger.log("Setting new size: width = " + newWidth + ", height = " + newHeight); //$NON-NLS-1$ //$NON-NLS-2$
- if (!isConnected() || !isRemoteTelnetServer())
- return;
- boolean sizeChanged = false;
-
- if (newWidth != width || newHeight != height)
- sizeChanged = true;
-
- width = newWidth;
- height = newHeight;
-
- if (sizeChanged && remoteIsTelnetServer && localOptions[TELNET_OPTION_NAWS].isEnabled()) {
- Integer[] sizeData = { Integer.valueOf(width), Integer.valueOf(height) };
-
- localOptions[TELNET_OPTION_NAWS].sendSubnegotiation(sizeData);
- }
- }
-
- /**
- * Returns true if local echoing is enabled for this TCP connection, false
- * otherwise.
- */
- public boolean localEcho() {
- return localEcho;
- }
-
- private void displayTextInTerminal(String string) {
- terminalControl.displayTextInTerminal(string);
- }
-
- /**
- * This method runs in its own thread. It reads raw bytes from the TELNET
- * connection socket, processes any TELNET protocol bytes (and removes
- * them), and passes the remaining bytes to a TerminalDisplay object for
- * display.
- */
- @Override
- public void run() {
- Logger.log("Entered"); //$NON-NLS-1$
-
- try {
- while (socket.isConnected()) {
- int nRawBytes = inputStream.read(rawBytes);
-
- if (nRawBytes == -1) {
- // End of input on inputStream.
- Logger.log("End of input reading from socket!"); //$NON-NLS-1$
-
- // Announce to the user that the remote endpoint has closed the
- // connection.
-
- displayTextInTerminal(TelnetMessages.CONNECTION_CLOSED_BY_FOREIGN_HOST);
-
- // Tell the ITerminalControl object that the connection is
- // closed.
- terminalControl.setState(TerminalState.CLOSED);
- break;
- }
-
- // Process any TELNET protocol data that we receive. Don't
- // send any TELNET protocol data until we are sure the remote
- // endpoint is a TELNET server.
-
- int nProcessedBytes = processTelnetProtocol(nRawBytes);
-
- if (nProcessedBytes > 0) {
- terminalControl.getRemoteToTerminalOutputStream().write(processedBytes, 0, nProcessedBytes);
- }
- }
- } catch (SocketException ex) {
- String message = ex.getMessage();
-
- // A "socket closed" exception is normal here. It's caused by the
- // user clicking the disconnect button on the Terminal view toolbar.
-
- if (message != null && !message.equalsIgnoreCase("Socket closed") //$NON-NLS-1$
- && !message.equalsIgnoreCase("Connection reset")) //$NON-NLS-1$
- {
- Logger.logException(ex);
- }
-
- } catch (Exception ex) {
- Logger.logException(ex);
- } finally {
- // Tell the ITerminalControl object that the connection is closed.
- terminalControl.setState(TerminalState.CLOSED);
- try {
- inputStream.close();
- } catch (IOException ioe) {
- /*ignore*/ }
- try {
- outputStream.close();
- } catch (IOException ioe) {
- /*ignore*/ }
- }
- }
-
- /**
- * This method initializes the localOptions[] and remoteOptions[] arrays so
- * that they contain references to TelnetOption objects representing our
- * desired state for each option. The goal is to achieve server-side
- * echoing, suppression of Go Aheads, and to send the local terminal type
- * and size to the remote endpoint.
- */
- protected void initializeOptions() {
- // First, create all the TelnetOption objects in the "undesired" state.
-
- for (int i = 0; i < localOptions.length; ++i) {
- localOptions[i] = new TelnetOption((byte) i, false, true, outputStream);
- }
-
- for (int i = 0; i < localOptions.length; ++i) {
- remoteOptions[i] = new TelnetOption((byte) i, false, false, outputStream);
- }
-
- // Next, set some of the options to the "desired" state. The options we
- // desire to be enabled are as follows:
- //
- // TELNET Option Desired for Desired for
- // Name and Code Local Endpoint Remote Endpoint
- // --------------------- -------------- ---------------
- // Echo (1) No Yes
- // Suppress Go Ahead (3) Yes Yes
- // Terminal Type (24) Yes Yes
- // NAWS (31) Yes Yes
- //
- // All other options remain in the "undesired" state, and thus will be
- // disabled (since either endpoint can force any option to be disabled by simply
- // answering WILL with DONT and DO with WONT).
-
- localOptions[TELNET_OPTION_ECHO].setDesired(false);
- remoteOptions[TELNET_OPTION_ECHO].setDesired(true);
-
- localOptions[TELNET_OPTION_SUPPRESS_GA].setDesired(true);
- remoteOptions[TELNET_OPTION_SUPPRESS_GA].setDesired(true);
-
- localOptions[TELNET_OPTION_TERMINAL_TYPE].setDesired(true);
- remoteOptions[TELNET_OPTION_TERMINAL_TYPE].setDesired(true);
-
- localOptions[TELNET_OPTION_NAWS].setDesired(true);
- remoteOptions[TELNET_OPTION_NAWS].setDesired(true);
- }
-
- /**
- * Process TELNET protocol data contained in the first count bytes
- * of rawBytes. This function preserves its state between calls,
- * because a multi-byte TELNET command might be split between two (or more)
- * calls to this function. The state is preserved in field telnetState.
- * This function implements an FSA that recognizes TELNET option codes.
- * TELNET option sub-negotiation is delegated to instances of TelnetOption.
- *
- * @return The number of bytes remaining in the buffer after removing all
- * TELNET protocol bytes.
- */
- //TELNET option state is stored in instances of TelnetOption.
- protected int processTelnetProtocol(int count) {
- // This is too noisy to leave on all the time.
- // Logger.log("Processing " + count + " bytes of data.");
-
- int nextProcessedByte = 0;
-
- for (int byteIndex = 0; byteIndex < count; ++byteIndex) {
- // It is possible for control to flow through the below code such
- // that nothing happens. This happens when array rawBytes[] contains no
- // TELNET protocol data.
-
- byte inputByte = rawBytes[byteIndex];
- int ubyte = inputByte & 0xFF;
-
- switch (telnetState) {
- case STATE_INITIAL:
- if (inputByte == TELNET_IAC) {
- telnetState = STATE_IAC_RECEIVED;
- } else {
- // It's not an IAC code, so just append it to
- // processedBytes.
-
- processedBytes[nextProcessedByte++] = inputByte;
- }
- break;
-
- case STATE_IAC_RECEIVED:
- switch (inputByte) {
- case TELNET_IAC:
- // Two IAC bytes in a row are translated into one byte with
- // the
- // value 0xff.
-
- processedBytes[nextProcessedByte++] = (byte) 0xff;
- telnetState = STATE_INITIAL;
- break;
-
- case TELNET_WILL:
- telnetState = STATE_WILL_RECEIVED;
- break;
-
- case TELNET_WONT:
- telnetState = STATE_WONT_RECEIVED;
- break;
-
- case TELNET_DO:
- telnetState = STATE_DO_RECEIVED;
- break;
-
- case TELNET_DONT:
- telnetState = STATE_DONT_RECEIVED;
- break;
-
- case TELNET_SB:
- telnetState = STATE_SUBNEGOTIATION_STARTED;
- break;
-
- // Commands to consume and ignore.
-
- // Data Mark (DM). This is sent by a TELNET server following an
- // IAC sent as TCP urgent data. It should cause the client to
- // skip all not yet processed non-TELNET-protocol data preceding the
- // DM byte. However, Java 1.4.x has no way to inform clients of
- // class Socket that urgent data is available, so we simply ignore the
- // "IAC DM" command. Since the IAC is sent as TCP urgent data,
- // the Socket must be put into OOB-inline mode via a call to
- // setOOBInline(true), otherwise the IAC is silently dropped by
- // Java and only the DM arrives (leaving the user to see a
- // spurious ISO Latin-1 character).
- case TELNET_DM:
-
- case TELNET_NOP: // No-op.
- case TELNET_GA: // Go Ahead command. Meaningless on a full-duplex link.
- case TELNET_IP: // Interupt Process command. Server should never send this.
- case TELNET_AO: // Abort Output command. Server should never send this.
- case TELNET_AYT: // Are You There command. Server should never send this.
- case TELNET_EC: // Erase Character command. Server should never send this.
- case TELNET_EL: // Erase Line command. Server should never send this.
- telnetState = STATE_INITIAL;
- break;
-
- default:
- // Unrecognized command! This should never happen.
- Logger.log("processTelnetProtocol: UNRECOGNIZED TELNET PROTOCOL COMMAND: " + //$NON-NLS-1$
- ubyte);
- telnetState = STATE_INITIAL;
- break;
- }
- break;
-
- // For the next four cases, WILL and WONT commands affect the state
- // of remote options, and DO and DONT commands affect the state of
- // local options.
-
- case STATE_WILL_RECEIVED:
- Logger.log("Received WILL " + localOptions[ubyte].optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- remoteOptions[ubyte].handleWill();
- telnetState = STATE_INITIAL;
- telnetServerDetected();
- break;
-
- case STATE_WONT_RECEIVED:
- Logger.log("Received WONT " + localOptions[ubyte].optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- remoteOptions[ubyte].handleWont();
- telnetState = STATE_INITIAL;
- telnetServerDetected();
- break;
-
- case STATE_DO_RECEIVED:
- Logger.log("Received DO " + localOptions[ubyte].optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- localOptions[ubyte].handleDo();
- telnetState = STATE_INITIAL;
- telnetServerDetected();
- break;
-
- case STATE_DONT_RECEIVED:
- Logger.log("Received DONT " + localOptions[ubyte].optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- localOptions[ubyte].handleDont();
- telnetState = STATE_INITIAL;
- telnetServerDetected();
- break;
-
- case STATE_SUBNEGOTIATION_STARTED:
- Logger.log("Starting subnegotiation for option " + //$NON-NLS-1$
- localOptions[ubyte].optionName() + "."); //$NON-NLS-1$
-
- // First, zero out the array of received subnegotiation butes.
-
- for (int i = 0; i < receivedSubnegotiation.length; ++i)
- receivedSubnegotiation[i] = 0;
-
- // Forget about any previous subnegotiation errors.
-
- ignoreSubnegotiation = false;
-
- // Then insert this input byte into the array and enter state
- // STATE_RECEIVING_SUBNEGOTIATION, where we will gather the
- // remaining subnegotiation bytes.
-
- nextSubnegotiationByteIndex = 0;
- receivedSubnegotiation[nextSubnegotiationByteIndex++] = inputByte;
- telnetState = STATE_RECEIVING_SUBNEGOTIATION;
- break;
-
- case STATE_RECEIVING_SUBNEGOTIATION:
- if (inputByte == TELNET_IAC) {
- // Handle double IAC bytes. From RFC 855: "if parameters
- // in an option 'subnegotiation' include a byte with a value
- // of 255, it is necessary to double this byte in accordance
- // the general TELNET rules."
-
- if (nextSubnegotiationByteIndex > 0
- && receivedSubnegotiation[nextSubnegotiationByteIndex - 1] == TELNET_IAC) {
- // The last input byte we received in this
- // subnegotiation was IAC, so this is a double IAC. Leave the previous IAC
- // in the receivedSubnegotiation[] array and drop the current
- // one (thus translating a double IAC into a single IAC).
-
- Logger.log("Double IAC in subnegotiation translated into single IAC."); //$NON-NLS-1$
- break;
- }
-
- // Append the IAC byte to receivedSubnegotiation[]. If there
- // is no room for the IAC byte, it overwrites the last byte,
- // because we need to know when the subnegotiation ends, and that is
- // marked by an "IAC SE" command.
-
- if (nextSubnegotiationByteIndex < receivedSubnegotiation.length) {
- receivedSubnegotiation[nextSubnegotiationByteIndex++] = inputByte;
- } else {
- receivedSubnegotiation[receivedSubnegotiation.length - 1] = inputByte;
- }
- break;
- }
-
- // Handle an "IAC SE" command, which marks the end of the
- // subnegotiation. An SE byte by itself might be a legitimate
- // part of the subnegotiation data, so don't do anything unless the SE
- // is immediately preceded by an IAC.
-
- if (inputByte == TELNET_SE && receivedSubnegotiation[nextSubnegotiationByteIndex - 1] == TELNET_IAC) {
- Logger.log("Found SE code marking end of subnegotiation."); //$NON-NLS-1$
-
- // We are done receiving the subnegotiation command. Now
- // process it. We always use the option object stored in array
- // localOptions[] to process the received subnegotiation.
- // This is an arbitrary decision, but it is sufficient for handling
- // options TERMINAL-TYPE and NAWS, which are the only options that
- // we subnegotiate (presently). If, in the future,subnegotiations
- // need to be handled by option objects stored in both
- // localOptions[] and remoteOptions[], then some mechanism
- // to choose the correct option object must be implemented.
- //
- // Also, if ignoreSubnegotiation is true, there was an error
- // while receiving the subnegotiation, so we must not process the
- // command, and instead just return to the initial state.
-
- if (!ignoreSubnegotiation) {
- // Remove the trailing IAC byte from
- // receivedSubnegotiation[].
-
- receivedSubnegotiation[nextSubnegotiationByteIndex - 1] = 0;
-
- int subnegotiatedOption = receivedSubnegotiation[0] & 0xFF;
-
- localOptions[subnegotiatedOption].handleSubnegotiation(receivedSubnegotiation,
- nextSubnegotiationByteIndex);
- } else {
- Logger.log("NOT CALLING handleSubnegotiation() BECAUSE OF ERRORS!"); //$NON-NLS-1$
- }
-
- // Return to the initial state.
-
- telnetState = STATE_INITIAL;
- }
-
- // Check whether the receivedSubnegotiation[] array is full.
-
- if (nextSubnegotiationByteIndex >= receivedSubnegotiation.length) {
- // This should not happen. Array receivedSubnegotiation can
- // hold 128 bytes, and no TELNET option that we perform
- // subnegotiation for requires that many bytes in a subnegotiation command.
- // In the interest of robustness, we handle this case by ignoring all
- // remaining subnegotiation bytes until we receive the IAC SE
- // command that ends the subnegotiation. Also, we set
- // ignoreSubnegotiation to true to prevent a call to
- // handleSubnegotiation() when the IAC SE command arrives.
-
- Logger.log("SUBNEGOTIATION BUFFER FULL!"); //$NON-NLS-1$
- ignoreSubnegotiation = true;
- } else {
- Logger.log("Recording subnegotiation byte " + ubyte); //$NON-NLS-1$
-
- receivedSubnegotiation[nextSubnegotiationByteIndex++] = inputByte;
- }
- break;
-
- default:
- // This should _never_ happen! If it does, it means there is a
- // bug in this FSA. For robustness, we return to the initial state.
-
- Logger.log("INVALID TELNET STATE: " + telnetState); //$NON-NLS-1$
- telnetState = STATE_INITIAL;
- break;
- }
- }
-
- // Return the number of bytes of processed data (i.e., number of bytes
- // of raw data minus TELNET control bytes). This value can be zero.
-
- return nextProcessedByte;
- }
-
- /**
- * This method is called whenever we receive a valid TELNET protocol command
- * from the remote endpoint. When it is called for the first time for this
- * connection, we negotiate all options that we desire to be enabled.
- *
- *
- * This method does not negotiate options that we do not desire to be
- * enabled, because all options are initially disabled.
- *
- */
- protected void telnetServerDetected() {
- if (!remoteIsTelnetServer) {
- // This block only executes once per TelnetConnection instance.
-
- localEcho = false;
-
- Logger.log("Detected TELNET server."); //$NON-NLS-1$
-
- remoteIsTelnetServer = true;
-
- for (int i = 0; i < localOptions.length; ++i) {
- if (localOptions[i].isDesired()) {
- localOptions[i].negotiate();
- }
- }
-
- for (int i = 0; i < remoteOptions.length; ++i) {
- if (remoteOptions[i].isDesired()) {
- remoteOptions[i].negotiate();
- }
- }
- }
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnector.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnector.java
deleted file mode 100644
index 13c994db808..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetConnector.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalControl
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [225853][api] Provide more default functionality in TerminalConnectorImpl
- * Sean Adams (Cisco) - [231959][terminal][telnet] NPE in TelnetConnector.java
- * David Sciamma (Anyware-Tech) - [288254][telnet] local echo is always disabled
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Socket;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.NullSettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-
-public class TelnetConnector extends TerminalConnectorImpl {
-
- static final class TelnetOutputStream extends FilterOutputStream {
- final static byte CR = 13;
- final static byte LF = 10;
- final static byte NUL = 0;
- final static byte[] CRNUL = { CR, NUL };
- final static byte[] CRLF = { CR, LF };
- final byte[] EOL;
-
- public TelnetOutputStream(OutputStream outputStream, String endOfLine) {
- super(outputStream);
- if (ITelnetSettings.EOL_CRLF.equals(endOfLine))
- EOL = CRLF;
- else
- EOL = CRNUL;
- }
-
- @Override
- public void write(int b) throws IOException {
- if (b == CR)
- out.write(EOL);
- else
- out.write(b);
- }
- }
-
- private OutputStream fOutputStream;
- private InputStream fInputStream;
- private Socket fSocket;
- private TelnetConnection fTelnetConnection;
- private final TelnetSettings fSettings;
- private int fWidth = -1;
- private int fHeight = -1;
-
- public TelnetConnector() {
- this(new TelnetSettings());
- }
-
- public TelnetConnector(TelnetSettings settings) {
- fSettings = settings;
- }
-
- @Override
- public void connect(ITerminalControl control) {
- super.connect(control);
- fWidth = -1;
- fHeight = -1;
- // TERM=xterm implies VT100 line wrapping mode
- control.setVT100LineWrapping(true);
- TelnetConnectWorker worker = new TelnetConnectWorker(this, control);
- worker.start();
- }
-
- @Override
- public void doDisconnect() {
- if (getSocket() != null) {
- try {
- getSocket().close();
- } catch (Exception exception) {
- Logger.logException(exception);
- }
- }
-
- if (getInputStream() != null) {
- try {
- getInputStream().close();
- } catch (Exception exception) {
- Logger.logException(exception);
- }
- }
-
- if (getTerminalToRemoteStream() != null) {
- try {
- getTerminalToRemoteStream().close();
- } catch (Exception exception) {
- Logger.logException(exception);
- }
- }
- cleanSocket();
- }
-
- @Override
- public boolean isLocalEcho() {
- if (fTelnetConnection == null)
- return false;
- return fTelnetConnection.localEcho();
- }
-
- @Override
- public void setTerminalSize(int newWidth, int newHeight) {
- if (fTelnetConnection != null && (newWidth != fWidth || newHeight != fHeight)) {
- //avoid excessive communications due to change size requests by caching previous size
- fTelnetConnection.setTerminalSize(newWidth, newHeight);
- fWidth = newWidth;
- fHeight = newHeight;
- }
- }
-
- public InputStream getInputStream() {
- return fInputStream;
- }
-
- @Override
- public OutputStream getTerminalToRemoteStream() {
- return fOutputStream;
- }
-
- private void setInputStream(InputStream inputStream) {
- fInputStream = inputStream;
- }
-
- private void setOutputStream(OutputStream outputStream) {
- if (outputStream == null) {
- fOutputStream = null;
- return;
- }
- // translate CR to telnet end-of-line sequence - RFC 854
- fOutputStream = new TelnetOutputStream(outputStream, fSettings.getEndOfLine());
- }
-
- Socket getSocket() {
- return fSocket;
- }
-
- /**
- * sets the socket to null
- */
- void cleanSocket() {
- fSocket = null;
- setInputStream(null);
- setOutputStream(null);
- }
-
- void setSocket(Socket socket) throws IOException {
- if (socket == null) {
- cleanSocket();
- } else {
- fSocket = socket;
- setInputStream(socket.getInputStream());
- setOutputStream(socket.getOutputStream());
- }
-
- }
-
- public void setTelnetConnection(TelnetConnection connection) {
- fTelnetConnection = connection;
- }
-
- public void displayTextInTerminal(String text) {
- fControl.displayTextInTerminal(text);
- }
-
- public OutputStream getRemoteToTerminalOutputStream() {
- return fControl.getRemoteToTerminalOutputStream();
- }
-
- public void setState(TerminalState state) {
- fControl.setState(state);
- }
-
- public ITelnetSettings getTelnetSettings() {
- return fSettings;
- }
-
- @Override
- public void setDefaultSettings() {
- fSettings.load(new NullSettingsStore());
- }
-
- @Override
- public String getSettingsSummary() {
- return fSettings.getSummary();
- }
-
- @Override
- public void load(ISettingsStore store) {
- fSettings.load(store);
- }
-
- @Override
- public void save(ISettingsStore store) {
- fSettings.save(store);
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetMessages.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetMessages.java
deleted file mode 100644
index b05c6f03e4e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetMessages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import org.eclipse.osgi.util.NLS;
-
-public class TelnetMessages extends NLS {
- static {
- NLS.initializeMessages(TelnetMessages.class.getName(), TelnetMessages.class);
- }
- public static String PORT;
- public static String HOST;
- public static String CONNECTION_CLOSED_BY_FOREIGN_HOST;
- public static String TIMEOUT;
- /**
- * @since 4.2
- */
- public static String END_OF_LINE;
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetMessages.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetMessages.properties
deleted file mode 100644
index 561ee4237dc..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetMessages.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2018 Wind River Systems, Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Initial Contributors:
-# The following Wind River employees contributed to the Terminal component
-# that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
-# Helmut Haigermoser and Ted Williams.
-#
-# Contributors:
-# Michael Scharf (Wind River) - split into core, view and connector plugins
-# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
-###############################################################################
-PORT = Port
-HOST = Host
-CONNECTION_CLOSED_BY_FOREIGN_HOST= Connection closed by foreign host.
-TIMEOUT = Timeout (sec)
-END_OF_LINE = End of Line
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetOption.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetOption.java
deleted file mode 100644
index 3889188dc38..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetOption.java
+++ /dev/null
@@ -1,686 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - split into core, view and connector plugins
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [267181] Fix telnet option negotiation loop
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Date;
-
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-
-/**
- * This class represents a single TELNET protocol option at one endpoint of a TELNET
- * connection. This class encapsulates the endpoint associated with the option (local
- * or remote), the current state of the option (enabled or disabled), the desired state
- * of the option, the current state of the negotiation, an OutputStream that allows
- * communication with the remote endpoint, and the number of negotiations that have
- * started within this connection.
- *
- * In addition to encapsulating the above state, this class performs option negotiation
- * to attempt to achieve the desired option state. For some options, this class also
- * performs option sub-negotiation.
- *
- * IMPORTANT: Understanding this code requires understanding the TELNET protocol and
- * TELNET option processing.
- *
- * @author Fran Litterio (francis.litterio@windriver.com)
- */
-class TelnetOption implements TelnetCodes {
- /**
- * This array of Strings maps an integer TELNET option code value to the symbolic
- * name of the option. Array elements of the form "?" represent unassigned option
- * values.
- */
- protected static final String[] optionNames = { "BINARY", // 0 //$NON-NLS-1$
- "ECHO", // 1 //$NON-NLS-1$
- "RECONNECTION", // 2 //$NON-NLS-1$
- "SUPPRESS GO AHEAD", // 3 //$NON-NLS-1$
- "MSG SIZE NEGOTIATION", // 4 //$NON-NLS-1$
- "STATUS", // 5 //$NON-NLS-1$
- "TIMING MARK", // 6 //$NON-NLS-1$
- "REMOTE CTRL TRANS+ECHO", // 7 //$NON-NLS-1$
- "OUTPUT LINE WIDTH", // 8 //$NON-NLS-1$
- "OUTPUT PAGE SIZE", // 9 //$NON-NLS-1$
- "OUTPUT CR DISPOSITION", // 10 //$NON-NLS-1$
- "OUTPUT HORIZ TABSTOPS", // 11 //$NON-NLS-1$
- "OUTPUT HORIZ TAB DISPOSITION", // 12 //$NON-NLS-1$
- "OUTPUT FORMFEED DISPOSITION", // 13 //$NON-NLS-1$
- "OUTPUT VERTICAL TABSTOPS", // 14 //$NON-NLS-1$
- "OUTPUT VT DISPOSITION", // 15 //$NON-NLS-1$
- "OUTPUT LF DISPOSITION", // 16 //$NON-NLS-1$
- "EXTENDED ASCII", // 17 //$NON-NLS-1$
- "LOGOUT", // 18 //$NON-NLS-1$
- "BYTE MACRO", // 19 //$NON-NLS-1$
- "DATA ENTRY TERMINAL", // 20 //$NON-NLS-1$
- "SUPDUP", // 21 //$NON-NLS-1$
- "SUPDUP OUTPUT", // 22 //$NON-NLS-1$
- "SEND LOCATION", // 23 //$NON-NLS-1$
- "TERMINAL TYPE", // 24 //$NON-NLS-1$
- "END OF RECORD", // 25 //$NON-NLS-1$
- "TACACS USER IDENTIFICATION", // 26 //$NON-NLS-1$
- "OUTPUT MARKING", // 27 //$NON-NLS-1$
- "TERMINAL LOCATION NUMBER", // 28 //$NON-NLS-1$
- "3270 REGIME", // 29 //$NON-NLS-1$
- "X.3 PAD", // 30 //$NON-NLS-1$
- "NEGOTIATE ABOUT WINDOW SIZE", // 31 //$NON-NLS-1$
- "TERMINAL SPEED", // 32 //$NON-NLS-1$
- "REMOTE FLOW CONTROL", // 33 //$NON-NLS-1$
- "LINEMODE", // 34 //$NON-NLS-1$
- "X DISPLAY LOCATION", // 35 //$NON-NLS-1$
- "ENVIRONMENT OPTION", // 36 //$NON-NLS-1$
- "AUTHENTICATION OPTION", // 37 //$NON-NLS-1$
- "ENCRYPTION OPTION", // 38 //$NON-NLS-1$
- "NEW ENVIRONMENT OPTION", // 39 //$NON-NLS-1$
- "TN3270E", // 40 //$NON-NLS-1$
- "XAUTH", // 41 //$NON-NLS-1$
- "CHARSET", // 42 //$NON-NLS-1$
- "REMOTE SERIAL PORT", // 43 //$NON-NLS-1$
- "COM PORT CONTROL OPTION", // 44 //$NON-NLS-1$
- "SUPPRESS LOCAL ECHO", // 45 //$NON-NLS-1$
- "START TLS", // 46 //$NON-NLS-1$
- "KERMIT", // 47 //$NON-NLS-1$
- "SEND URL", // 48 //$NON-NLS-1$
- "FORWARD X", // 49 //$NON-NLS-1$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", // 50 ... //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", // ... 137 //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
- "TELOPT PRAGMA LOGON", // 138 //$NON-NLS-1$
- "TELOPT SSPI LOGON", // 139 //$NON-NLS-1$
- "TELOPT PRAGMA HEARTBEAT", // 140 //$NON-NLS-1$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", // 141 ... //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
- "?", "?", "?", "?", // ... 254 //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- "EXTENDED OPTIONS LIST" // 255 //$NON-NLS-1$
- };
-
- /**
- * Negotiation state: Negotiation not yet started for this option.
- *
- * This constant and the others having similar names represent the states of a
- * finite state automaton (FSA) that tracks the negotiation state of this option.
- * The initial state is NEGOTIATION_NOT_STARTED. The state machine is as follows
- * (with transitions labeled with letters in parentheses):
- *
- *
- * NEGOTIATION_NOT_STARTED -----> {@link #NEGOTIATION_IN_PROGRESS}
- * | (A) | ^
- * (C)| (B)| |(D)
- * | V |
- * +--------> {@link #NEGOTIATION_DONE}
- *
- *
- * Once the FSA leaves state NEGOTIATION_NOT_STARTED, it never returns to that
- * state. Transition A happens when the local endpoint sends an option command
- * before receiving a command for the same option from the remote endpoint.
- *
- * Transition B happens when the local endpoint receives a reply to an option
- * command sent earlier by the local endpoint. Receipt of that reply terminates
- * the negotiation.
- *
- * Transition D happens after negotiation is done and "something changes" (see the
- * RFCs for the definition of "something changes"). Either endpoint can
- * re-negotiate an option after a previous negotiation, but only if some external
- * influence (such as the user or the OS) causes it to do so. Re-negotiation must
- * start more than {@link #NEGOTIATION_IGNORE_DURATION} milliseconds after the FSA
- * enters state NEGOTIATION_DONE or it will be ignored. This is how this client
- * prevents negotiation loops.
- *
- * Transition C happens when the local endpoint receives an option command from the
- * remote endpoint before sending a command for the same option. In that case, the
- * local endpoint replies immediately with an option command and the negotiation
- * terminates.
- *
- * Some TELNET servers (e.g., the Solaris server), after sending WILL and receiving
- * DONT, will reply with a superfluous WONT. Any such superfluous option command
- * received from the remote endpoint while the option's FSA is in state
- * {@link #NEGOTIATION_DONE} will be ignored by the local endpoint.
- */
- protected static final int NEGOTIATION_NOT_STARTED = 0;
-
- /** Negotiation state: Negotiation is in progress for this option. */
- protected static final int NEGOTIATION_IN_PROGRESS = 1;
-
- /** Negotiation state: Negotiation has terminated for this option. */
- protected static final int NEGOTIATION_DONE = 2;
-
- /**
- * The number of milliseconds following the end of negotiation of this option
- * before which the remote endpoint can re-negotiate the option. Any option
- * command received from the remote endpoint before this time passes is ignored.
- * This is used to prevent option negotiation loops.
- *
- * @see #ignoreNegotiation()
- * @see #negotiationCompletionTime
- */
- protected static final int NEGOTIATION_IGNORE_DURATION = 30000;
-
- /**
- * This field holds the current negotiation state for this option.
- */
- protected int negotiationState = NEGOTIATION_NOT_STARTED;
-
- /**
- * This field holds the time when negotiation of this option most recently
- * terminated (i.e., entered state {@link #NEGOTIATION_DONE}). This is used to
- * determine whether an option command received from the remote endpoint after
- * negotiation has terminated for this option is to be ignored or interpreted as
- * the start of a new negotiation.
- *
- * @see #NEGOTIATION_IGNORE_DURATION
- */
- protected Date negotiationCompletionTime = new Date(0);
-
- /**
- * Holds the total number of negotiations that have completed for this option.
- */
- protected int negotiationCount = 0;
-
- /**
- * Holds the integer code representing the option.
- */
- protected byte option = 0;
-
- /**
- * Holds the OutputStream object that allows data to be sent to the remote endpoint
- * of the TELNET connection.
- */
- protected OutputStream outputStream;
-
- /**
- * True if this option is for the local endpoint, false for the remote endpoint.
- */
- protected boolean local = true;
-
- /**
- * This field is true if the option is enabled, false if it is disabled. All
- * options are initially disabled until they are negotiated to be enabled.
- */
- protected boolean enabled = false;
-
- /**
- * This field is true if the client desires the option to be enabled, false if the
- * client desires the option to be disabled. This field does not represent the
- * remote's endpoints desire (as expressed via WILL and WONT commands) -- it
- * represnet the local endpoint's desire.
- *
- * @see #setDesired(boolean)
- */
- protected boolean desired = false;
-
- /**
- * Constructor.
- *
- * @param option The integer code of this option.
- * @param desired Whether we desire this option to be enabled.
- * @param local Whether this option is for the local or remote endpoint.
- * @param outputStream A stream used to negotiate with the remote endpoint.
- */
- TelnetOption(byte option, boolean desired, boolean local, OutputStream outputStream) {
- this.option = option;
- this.desired = desired;
- this.local = local;
- this.outputStream = outputStream;
- }
-
- /**
- * @return Returns a String containing the name of the TELNET option specified in
- * parameter option.
- */
- public String optionName() {
- return optionNames[option & 0xFF];
- }
-
- /**
- * Returns true if this option is enabled, false if it is disabled.
- *
- * @return Returns true if this option is enabled, false if it is disabled.
- */
- public boolean isEnabled() {
- return enabled;
- }
-
- /**
- * Enables this option if newValue is true, otherwise disables this
- * option.
- *
- * @param newValue True if this option is to be enabled, false otherwise.
- */
- public void setEnabled(boolean newValue) {
- Logger.log("Enabling " + (local ? "local" : "remote") + " option " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- optionName());
- enabled = newValue;
- }
-
- /**
- * Returns true if the local endpoint desires this option to be enabled, false if
- * not. It is not an error for the value returned by this method to differ from
- * the value returned by isEnabled(). The value returned by this method can change
- * over time, reflecting the local endpoint's changing desire regarding the
- * option.
- *
- * NOTE: Even if this option represents a remote endpoint option, the return value
- * of this method represents the local endpint's desire regarding the remote
- * option.
- *
- * @return Returns true if the local endpoint desires this option to be enabled,
- * false if not.
- */
- public boolean isDesired() {
- return desired;
- }
-
- /**
- * Sets our desired value for this option. Note that the option can be desired
- * when enabled is false, and the option can be undesired when
- * enabled is true, though the latter state should not persist, since either
- * endpoint can disable any option at any time.
- *
- * @param newValue True if we desire this option to be enabled, false if
- * we desire this option to be disabled.
- */
- public void setDesired(boolean newValue) {
- if (newValue)
- Logger.log("Setting " + (local ? "local" : "remote") + " option " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- optionName() + " as desired."); //$NON-NLS-1$
-
- desired = newValue;
- }
-
- /**
- * Call this method to request that negotiation begin for this option. This method
- * does nothing if negotiation for this option has already started or is already
- * complete. If negotiation has not yet started for this option and the local
- * endpoint desires this option to be enabled, then we send a WILL or DO command to
- * the remote endpoint.
- */
- public void negotiate() {
- if (negotiationState == NEGOTIATION_NOT_STARTED && desired) {
- if (local) {
- Logger.log("Starting negotiation for local option " + optionName()); //$NON-NLS-1$
- sendWill();
- } else {
- Logger.log("Starting negotiation for remote option " + optionName()); //$NON-NLS-1$
- sendDo();
- }
-
- negotiationState = NEGOTIATION_IN_PROGRESS;
- }
- }
-
- /**
- * This method is called whenever we receive a WILL command from the remote
- * endpoint.
- */
- public void handleWill() {
- if (negotiationState == NEGOTIATION_DONE && ignoreNegotiation()) {
- Logger.log("Ignoring superfluous WILL command from remote endpoint."); //$NON-NLS-1$
- return;
- }
-
- if (negotiationState == NEGOTIATION_IN_PROGRESS) {
- if (desired) {
- // We sent DO and server replied with WILL. Enable the option, and end
- // this negotiation.
-
- enabled = true;
- Logger.log("Enabling remote option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- } else {
- // This should never happen! We sent DONT and the server replied with
- // WILL. Bad server. No soup for you. Disable the option, and end
- // this negotiation.
-
- Logger.log("Server answered DONT with WILL!"); //$NON-NLS-1$
- enabled = false;
- Logger.log("Disabling remote option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- }
- } else {
- if (desired) {
- // Server sent WILL, so we reply with DO. Enable the option, and end
- // this negotiation.
-
- sendDo();
- enabled = true;
- Logger.log("Enabling remote option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- } else {
- // Server sent WILL, so we reply with DONT. Disable the option, and
- // end this negotiation.
-
- sendDont();
- enabled = false;
- Logger.log("Disabling remote option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- }
- }
- }
-
- /**
- * Handles a WONT command sent by the remote endpoint for this option. The value
- * of desired doesn't matter in this method, because the remote endpoint is
- * forcing the option to be disabled.
- */
- public void handleWont() {
- if (negotiationState == NEGOTIATION_DONE && ignoreNegotiation()) {
- Logger.log("Ignoring superfluous WONT command from remote endpoint."); //$NON-NLS-1$
- return;
- }
-
- if (negotiationState == NEGOTIATION_IN_PROGRESS) {
- // We sent DO or DONT and server replied with WONT. Disable the
- // option, and end this negotiation.
-
- enabled = false;
- Logger.log("Disabling remote option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- } else {
- // Server sent WONT, so we reply with DONT. Disable the option, and
- // end this negotiation.
-
- sendDont();
- enabled = false;
- Logger.log("Disabling remote option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- }
- }
-
- /**
- * Handles a DO command sent by the remote endpoint for this option.
- */
- public void handleDo() {
- if (negotiationState == NEGOTIATION_DONE && ignoreNegotiation()) {
- Logger.log("Ignoring superfluous DO command from remote endpoint."); //$NON-NLS-1$
- return;
- }
-
- if (negotiationState == NEGOTIATION_IN_PROGRESS) {
- if (desired) {
- // We sent WILL and server replied with DO. Enable the option, and end
- // this negotiation.
-
- enabled = true;
- Logger.log("Enabling local option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- } else {
- // We sent WONT and server replied with DO. This should never happen!
- // Bad server. No soup for you. Disable the option, and end this
- // negotiation.
-
- Logger.log("Server answered WONT with DO!"); //$NON-NLS-1$
- enabled = false;
- Logger.log("Disabling local option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- }
- } else {
- if (desired) {
- // Server sent DO, so we reply with WILL. Enable the option, and end
- // this negotiation.
-
- sendWill();
- enabled = true;
- Logger.log("Enabling local option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- } else {
- // Server sent DO, so we reply with WONT. Disable the option, and end
- // this negotiation.
-
- sendWont();
- enabled = false;
- Logger.log("Disabling local option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- }
- }
- }
-
- /**
- * Handles a DONT command sent by the remote endpoint for this option. The value
- * of desired doesn't matter in this method, because the remote endpoint is
- * forcing the option to be disabled.
- */
- public void handleDont() {
- if (negotiationState == NEGOTIATION_DONE && ignoreNegotiation()) {
- Logger.log("Ignoring superfluous DONT command from remote endpoint."); //$NON-NLS-1$
- return;
- }
-
- if (negotiationState == NEGOTIATION_IN_PROGRESS) {
- // We sent WILL or WONT and server replied with DONT. Disable the
- // option, and end this negotiation.
-
- enabled = false;
- Logger.log("Disabling local option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- } else {
- // Server sent DONT, so we reply with WONT. Disable the option, and end
- // this negotiation.
-
- sendWont();
- enabled = false;
- Logger.log("Disabling local option " + optionName() + "."); //$NON-NLS-1$ //$NON-NLS-2$
- endNegotiation();
- }
- }
-
- /**
- * This method handles a subnegotiation command received from the remote endpoint.
- * Currently, the only subnegotiation we handle is when the remote endpoint
- * commands us to send our terminal type (which is "xterm").
- *
- * @param subnegotiationData An array of bytes containing a TELNET
- * subnegotiation command received from the
- * remote endpoint.
- * @param count The number of bytes in array
- * subnegotiationData to examine.
- */
- public void handleSubnegotiation(byte[] subnegotiationData, int count) {
- switch (option) {
- case TELNET_OPTION_TERMINAL_TYPE:
- if (subnegotiationData[1] != TELNET_SEND) {
- // This should never happen!
- Logger.log("Invalid TERMINAL-TYPE subnegotiation command from remote endpoint: " + //$NON-NLS-1$
- (subnegotiationData[1] & 0xff));
- break;
- }
-
- // Tell the remote endpoint our terminal type is "xterm" using this sequence
- // of TELNET protocol bytes:
- //
- // IAC SB TERMINAL-TYPE IS x t e r m IAC SE
-
- byte[] terminalTypeData = { TELNET_IAC, TELNET_SB, TELNET_OPTION_TERMINAL_TYPE, TELNET_IS, (byte) 'x',
- (byte) 't', (byte) 'e', (byte) 'r', (byte) 'm', TELNET_IAC, TELNET_SE };
-
- try {
- outputStream.write(terminalTypeData);
- } catch (IOException ex) {
- Logger.log("IOException sending TERMINAL-TYPE subnegotiation!"); //$NON-NLS-1$
- Logger.logException(ex);
- }
- break;
-
- default:
- // This should never happen!
- Logger.log("SHOULD NOT BE REACHED: Called for option " + optionName()); //$NON-NLS-1$
- break;
- }
- }
-
- /**
- * This method sends a subnegotiation command to the remote endpoint.
- *
- * @param subnegotiationData An array of Objects holding data to be used
- * when generating the outbound subnegotiation
- * command.
- */
- public void sendSubnegotiation(Object[] subnegotiationData) {
- switch (option) {
- case TELNET_OPTION_NAWS:
- // Get the width and height of the view and send it to the remote
- // endpoint using this sequence of TELNET protocol bytes:
- //
- // IAC SB NAWS
- // IAC SE
-
- final byte[] NAWSData = { TELNET_IAC, TELNET_SB, TELNET_OPTION_NAWS, 0, 0, 0, 0, TELNET_IAC, TELNET_SE };
- int width = ((Integer) subnegotiationData[0]).intValue();
- int height = ((Integer) subnegotiationData[1]).intValue();
-
- NAWSData[3] = (byte) ((width >>> 8) & 0xff); // High order byte of width.
- NAWSData[4] = (byte) (width & 0xff); // Low order byte of width.
- NAWSData[5] = (byte) ((height >>> 8) & 0xff); // High order byte of height.
- NAWSData[6] = (byte) (height & 0xff); // Low order byte of height.
-
- Logger.log("sending terminal size to remote endpoint: width = " + width + //$NON-NLS-1$
- ", height = " + height + "."); //$NON-NLS-1$ //$NON-NLS-2$
-
- // Send the NAWS data in a new thread. The current thread is the display
- // thread, and calls to write() can block, but blocking the display thread
- // is _bad_ (it hangs the GUI).
-
- Thread t = new Thread() {
- @Override
- public void run() {
- try {
- outputStream.write(NAWSData);
- } catch (IOException ex) {
- Logger.log("IOException sending NAWS subnegotiation!"); //$NON-NLS-1$
- Logger.logException(ex);
- }
- }
- };
- t.setDaemon(true);
- t.start();
- break;
-
- default:
- // This should never happen!
- Logger.log("SHOULD NOT BE REACHED: Called for option " + optionName()); //$NON-NLS-1$
- break;
- }
- }
-
- /**
- * This method returns true if there has not yet been any negotiation of this
- * option.
- *
- * @return Returns true if there has not yet been any negotiation of this option.
- */
- protected boolean notYetNegotiated() {
- return negotiationState == NEGOTIATION_NOT_STARTED;
- }
-
- /**
- * This method terminates the current negotiation and records the time at which the
- * negotiation terminated.
- */
- protected void endNegotiation() {
- Logger.log("Ending negotiation #" + negotiationCount + " for " + //$NON-NLS-1$ //$NON-NLS-2$
- (local ? "local" : "remote") + " option " + optionName()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- negotiationState = NEGOTIATION_DONE;
- negotiationCompletionTime.setTime(System.currentTimeMillis());
- ++negotiationCount;
- }
-
- /**
- * This method determines whether or not to ignore what appears to be a new
- * negotiation initiated by the remote endpoint. This is needed because some
- * TELNET servers send superfluous option commands that a naive client might
- * interpret as the start of a new negotiation. If the superfluous command is not
- * ignored, an option negotiation loop can result (which is bad). For details
- * about the superfluous commands sent by some servers, see the documentation for
- * {@link #NEGOTIATION_NOT_STARTED}.
- *
- * The current implementation of this method returns true if the new negotiation
- * starts within NEGOTIATION_IGNORE_DURATION seconds of the end of the previous
- * negotiation of this option.
- *
- * @return Returns true if the new negotiation should be ignored, false if not.
- */
- protected boolean ignoreNegotiation() {
- return (System.currentTimeMillis() - negotiationCompletionTime.getTime()) < NEGOTIATION_IGNORE_DURATION;
- }
-
- /**
- * Sends a DO command to the remote endpoint for this option.
- */
- protected void sendDo() {
- Logger.log("Sending DO " + optionName()); //$NON-NLS-1$
- sendCommand(TELNET_DO);
- }
-
- /**
- * Sends a DONT command to the remote endpoint for this option.
- */
- protected void sendDont() {
- Logger.log("Sending DONT " + optionName()); //$NON-NLS-1$
- sendCommand(TELNET_DONT);
- }
-
- /**
- * Sends a WILL command to the remote endpoint for this option.
- */
- protected void sendWill() {
- Logger.log("Sending WILL " + optionName()); //$NON-NLS-1$
- sendCommand(TELNET_WILL);
- }
-
- /**
- * Sends a WONT command to the remote endpoint for this option.
- */
- protected void sendWont() {
- Logger.log("Sending WONT " + optionName()); //$NON-NLS-1$
- sendCommand(TELNET_WONT);
- }
-
- /**
- * This method sends a WILL/WONT/DO/DONT command to the remote endpoint for this
- * option.
- */
- protected void sendCommand(byte command) {
- byte[] data = { TELNET_IAC, 0, 0 };
-
- data[1] = command;
- data[2] = option;
-
- try {
- outputStream.write(data);
- } catch (IOException ex) {
- Logger.log("IOException sending command " + command); //$NON-NLS-1$
- Logger.logException(ex);
- }
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetProperties.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetProperties.java
deleted file mode 100644
index c96d7455845..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetProperties.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalProperties
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-public class TelnetProperties {
- private final NetworkPortMap fNetworkPortMap;
- private final String fDefaultHost;
- private final String fDefaultNetworkPort;
-
- public TelnetProperties() {
- fNetworkPortMap = new NetworkPortMap();
- fDefaultNetworkPort = fNetworkPortMap.getDefaultNetworkPort();
- fDefaultHost = ""; //$NON-NLS-1$
- }
-
- public String getDefaultHost() {
- return fDefaultHost;
- }
-
- public String getDefaultNetworkPort() {
- return fDefaultNetworkPort;
- }
-
- public NetworkPortMap getNetworkPortMap() {
- // TODO Auto-generated method stub
- return fNetworkPortMap;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetSettings.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetSettings.java
deleted file mode 100644
index 4ecf960ea5c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetSettings.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalSettings
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-/**
- * @noreference This class is not intended to be referenced by clients.
- */
-public class TelnetSettings implements ITelnetSettings {
- protected String fHost;
- protected String fNetworkPort;
- protected String fTimeout;
- protected String fEndOfLine = EOL_CRNUL;
- private final TelnetProperties fProperties = new TelnetProperties();
-
- @Override
- public String getHost() {
- return fHost;
- }
-
- public void setHost(String strHost) {
- fHost = strHost;
- }
-
- public String getNetworkPortString() {
- return fNetworkPort;
- }
-
- @Override
- public int getNetworkPort() {
- try {
- return Integer.parseInt(fNetworkPort);
- } catch (NumberFormatException numberFormatException) {
- return 1313;
- }
- }
-
- public void setNetworkPort(String strNetworkPort) {
- fNetworkPort = strNetworkPort;
- }
-
- @Override
- public String getSummary() {
- return getHost() + ":" + getNetworkPortString(); //$NON-NLS-1$
- }
-
- @Override
- public void load(ISettingsStore store) {
- fHost = store.get("Host", fProperties.getDefaultHost());//$NON-NLS-1$
- fNetworkPort = store.get("NetworkPort", fProperties.getDefaultNetworkPort());//$NON-NLS-1$
- fTimeout = store.get("Timeout", "10");//$NON-NLS-1$ //$NON-NLS-2$
- fEndOfLine = store.get("EndOfLine", EOL_CRNUL);//$NON-NLS-1$
- }
-
- @Override
- public void save(ISettingsStore store) {
- store.put("Host", fHost);//$NON-NLS-1$
- store.put("NetworkPort", fNetworkPort);//$NON-NLS-1$
- store.put("Timeout", fTimeout);//$NON-NLS-1$
- store.put("EndOfLine", fEndOfLine);//$NON-NLS-1$
- }
-
- public TelnetProperties getProperties() {
- return fProperties;
- }
-
- @Override
- public int getTimeout() {
- try {
- return Integer.parseInt(fTimeout);
- } catch (NumberFormatException numberFormatException) {
- return 10;
- }
- }
-
- public String getTimeoutString() {
- return fTimeout;
- }
-
- public void setTimeout(String timeout) {
- fTimeout = timeout;
- }
-
- public void setEndOfLine(String eol) {
- fEndOfLine = EOL_CRLF.equals(eol) ? EOL_CRLF : EOL_CRNUL;
- }
-
- @Override
- public String getEndOfLine() {
- return fEndOfLine;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetSettingsPage.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetSettingsPage.java
deleted file mode 100644
index 435a4f1296c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/connector/TelnetSettingsPage.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Initial Contributors:
- * The following Wind River employees contributed to the Terminal component
- * that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
- * Helmut Haigermoser and Ted Williams.
- *
- * Contributors:
- * Michael Scharf (Wind River) - extracted from TerminalSettingsDlg
- * Martin Oberhuber (Wind River) - fixed copyright headers and beautified
- * Martin Oberhuber (Wind River) - [206917] Add validation for Terminal Settings
- * Martin Oberhuber (Wind River) - [401476] Strip whitespace around Telnet Port
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.connector;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
-
-public class TelnetSettingsPage extends AbstractSettingsPage {
- /* default */ Text fHostText;
- /* default */ Combo fNetworkPortCombo;
- /* default */ Text fTimeout;
- /* default */ Combo fEndOfLineCombo;
- private final TelnetSettings fTerminalSettings;
-
- public TelnetSettingsPage(TelnetSettings settings) {
- fTerminalSettings = settings;
- }
-
- @Override
- public void saveSettings() {
- fTerminalSettings.setHost(fHostText.getText());
- fTerminalSettings.setTimeout(fTimeout.getText());
- fTerminalSettings.setNetworkPort(getNetworkPort());
- fTerminalSettings.setEndOfLine(getEndOfLine());
- }
-
- @Override
- public void loadSettings() {
- if (fTerminalSettings != null) {
- setHost(fTerminalSettings.getHost());
- setTimeout(fTerminalSettings.getTimeoutString());
- setNetworkPort(fTerminalSettings.getNetworkPortString());
- setEndOfLine(fTerminalSettings.getEndOfLine());
- }
- }
-
- private void setHost(String strHost) {
- if (strHost == null)
- strHost = ""; //$NON-NLS-1$
- fHostText.setText(strHost);
-
- }
-
- private void setTimeout(String timeout) {
- if (timeout == null || timeout.length() == 0)
- timeout = "5"; //$NON-NLS-1$
- fTimeout.setText(timeout);
-
- }
-
- private void setNetworkPort(String strNetworkPort) {
- if (strNetworkPort != null) {
- String strPortName = getNetworkPortMap().findPortName(strNetworkPort);
- if (strPortName == null) {
- strPortName = strNetworkPort; //fallback to verbatim port if not found
- }
- int nIndex = fNetworkPortCombo.indexOf(strPortName);
-
- if (nIndex == -1) {
- fNetworkPortCombo.setText(strNetworkPort);
- } else {
- fNetworkPortCombo.select(nIndex);
- }
- }
- }
-
- private String getNetworkPort() {
- String portText = fNetworkPortCombo.getText().trim();
- String mappedPort = getNetworkPortMap().findPort(portText);
- return mappedPort != null ? mappedPort : portText;
- }
-
- private NetworkPortMap getNetworkPortMap() {
- return fTerminalSettings.getProperties().getNetworkPortMap();
- }
-
- private void setEndOfLine(String eol) {
- int idx = fEndOfLineCombo.indexOf(eol);
- fEndOfLineCombo.select(idx >= 0 ? idx : 0);
- }
-
- private String getEndOfLine() {
- return fEndOfLineCombo.getText();
- }
-
- @Override
- public boolean validateSettings() {
- String message = null;
- int messageType = IMessageProvider.NONE;
- boolean valid = true;
-
- if (fHostText.getText().trim().length() == 0) {
- String m = "Please enter a host IP or name."; //$NON-NLS-1$
- int mt = IMessageProvider.INFORMATION;
- updateControlDecoration(fHostText, m, mt);
- if (mt > messageType) {
- message = m;
- messageType = mt;
- }
-
- valid = false;
- } else {
- updateControlDecoration(fHostText, null, IMessageProvider.NONE);
- }
-
- try {
- int p = Integer.parseInt(getNetworkPort());
- if (p <= 0 || p > 65535) {
- String m = "Invalid network port. Must be between 0 and 65535."; //$NON-NLS-1$
- int mt = IMessageProvider.ERROR;
- updateControlDecoration(fNetworkPortCombo, m, mt);
- if (mt > messageType) {
- message = m;
- messageType = mt;
- }
-
- valid = false;
- } else {
- updateControlDecoration(fNetworkPortCombo, null, IMessageProvider.NONE);
- }
-
- p = Integer.parseInt(fTimeout.getText().trim());
- if (p < 0) {
- String m = "Invalid timeout. Must be greater than 0."; //$NON-NLS-1$
- int mt = IMessageProvider.ERROR;
- updateControlDecoration(fTimeout, m, mt);
- if (mt > messageType) {
- message = m;
- messageType = mt;
- }
-
- valid = false;
- } else {
- updateControlDecoration(fTimeout, null, IMessageProvider.NONE);
- }
-
- } catch (Exception e) {
- valid = false;
- }
-
- setMessage(message, messageType);
- return valid;
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite composite = new Composite(parent, SWT.NONE);
- GridLayout gridLayout = new GridLayout(2, false);
- GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.horizontalIndent = FieldDecorationRegistry.getDefault().getMaximumDecorationWidth();
-
- composite.setLayout(gridLayout);
- composite.setLayoutData(gridData);
-
- // Add label
- Label ctlLabel = new Label(composite, SWT.RIGHT);
- ctlLabel.setText(TelnetMessages.HOST + ":"); //$NON-NLS-1$
-
- // Add control
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- fHostText = new Text(composite, SWT.BORDER);
- fHostText.setLayoutData(gridData);
- fHostText.addModifyListener(e -> fireListeners(fHostText));
- createControlDecoration(fHostText);
-
- // Add label
- ctlLabel = new Label(composite, SWT.RIGHT);
- ctlLabel.setText(TelnetMessages.PORT + ":"); //$NON-NLS-1$
-
- // Add control
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- fNetworkPortCombo = new Combo(composite, SWT.DROP_DOWN);
- fNetworkPortCombo.setLayoutData(gridData);
- fNetworkPortCombo.addModifyListener(e -> fireListeners(fNetworkPortCombo));
- fNetworkPortCombo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- fireListeners(fNetworkPortCombo);
- }
- });
- createControlDecoration(fNetworkPortCombo);
-
- List table = getNetworkPortMap().getNameTable();
- Collections.sort(table);
- loadCombo(fNetworkPortCombo, table);
-
- new Label(composite, SWT.RIGHT).setText(TelnetMessages.TIMEOUT + ":"); //$NON-NLS-1$
- fTimeout = new Text(composite, SWT.BORDER);
- fTimeout.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- fTimeout.addModifyListener(e -> fireListeners(fTimeout));
- createControlDecoration(fTimeout);
-
- new Label(composite, SWT.RIGHT).setText(TelnetMessages.END_OF_LINE + ":"); //$NON-NLS-1$
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- fEndOfLineCombo = new Combo(composite, SWT.DROP_DOWN | SWT.READ_ONLY);
- fEndOfLineCombo.setLayoutData(gridData);
- fEndOfLineCombo.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- fireListeners(fEndOfLineCombo);
- }
- });
- loadCombo(fEndOfLineCombo, Arrays.asList(ITelnetSettings.EOL_CRNUL, ITelnetSettings.EOL_CRLF));
-
- loadSettings();
- }
-
- private void loadCombo(Combo ctlCombo, List table) {
- for (Iterator iter = table.iterator(); iter.hasNext();) {
- String label = iter.next();
- ctlCombo.add(label);
- }
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/controls/TelnetWizardConfigurationPanel.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/controls/TelnetWizardConfigurationPanel.java
deleted file mode 100644
index 9a968fd1a4d..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/controls/TelnetWizardConfigurationPanel.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [366374] [TERMINALS][TELNET] Add Telnet terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.controls;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tm.internal.terminal.provisional.api.AbstractSettingsPage;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsPage;
-import org.eclipse.tm.terminal.connector.telnet.connector.NetworkPortMap;
-import org.eclipse.tm.terminal.connector.telnet.connector.TelnetConnector;
-import org.eclipse.tm.terminal.connector.telnet.connector.TelnetSettings;
-import org.eclipse.tm.terminal.connector.telnet.connector.TelnetSettingsPage;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel;
-
-/**
- * telnet wizard configuration panel implementation.
- */
-public class TelnetWizardConfigurationPanel extends AbstractExtendedConfigurationPanel {
-
- public TelnetSettings telnetSettings;
- private ISettingsPage telnetSettingsPage;
-
- /**
- * Constructor.
- *
- * @param container The configuration panel container or null
.
- */
- public TelnetWizardConfigurationPanel(IConfigurationPanelContainer container) {
- super(container);
- }
-
- @Override
- public void setupPanel(Composite parent) {
- Composite panel = new Composite(parent, SWT.NONE);
- panel.setLayout(new GridLayout());
- GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
- panel.setLayoutData(data);
-
- // Create the host selection combo
- if (isWithoutSelection())
- createHostsUI(panel, true);
-
- TelnetConnector conn = new TelnetConnector();
- telnetSettings = (TelnetSettings) conn.getTelnetSettings();
- telnetSettings.setHost(getSelectionHost());
- // MWE otherwise we don't get a valid default selection of the combo
- telnetSettings.setNetworkPort(NetworkPortMap.PROP_VALUETELNET);
-
- telnetSettingsPage = new TelnetSettingsPage(telnetSettings);
- if (telnetSettingsPage instanceof AbstractSettingsPage) {
- ((AbstractSettingsPage) telnetSettingsPage).setHasControlDecoration(true);
- }
- telnetSettingsPage.createControl(panel);
-
- // Add the listener to the settings page
- telnetSettingsPage.addListener(control -> {
- if (getContainer() != null)
- getContainer().validate();
- });
-
- // Create the encoding selection combo
- createEncodingUI(panel, true);
-
- setControl(panel);
- }
-
- @Override
- public void setupData(Map data) {
- if (data == null || telnetSettings == null || telnetSettingsPage == null)
- return;
-
- String value = (String) data.get(ITerminalsConnectorConstants.PROP_IP_HOST);
- if (value != null)
- telnetSettings.setHost(value);
-
- Object v = data.get(ITerminalsConnectorConstants.PROP_IP_PORT);
- value = v != null ? v.toString() : null;
- if (value != null)
- telnetSettings.setNetworkPort(value);
-
- v = data.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
- value = v != null ? v.toString() : null;
- if (value != null)
- telnetSettings.setTimeout(value);
-
- v = data.get(ITerminalsConnectorConstants.PROP_TELNET_EOL);
- value = v != null ? v.toString() : null;
- if (value != null)
- telnetSettings.setEndOfLine(value);
-
- value = (String) data.get(ITerminalsConnectorConstants.PROP_ENCODING);
- if (value != null)
- setEncoding(value);
-
- telnetSettingsPage.loadSettings();
- }
-
- @Override
- public void extractData(Map data) {
- if (data == null)
- return;
-
- // set the terminal connector id for ssh
- data.put(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID,
- "org.eclipse.tm.terminal.connector.telnet.TelnetConnector"); //$NON-NLS-1$
-
- telnetSettingsPage.saveSettings();
- data.put(ITerminalsConnectorConstants.PROP_IP_HOST, telnetSettings.getHost());
- data.put(ITerminalsConnectorConstants.PROP_IP_PORT, Integer.valueOf(telnetSettings.getNetworkPort()));
- data.put(ITerminalsConnectorConstants.PROP_TIMEOUT, Integer.valueOf(telnetSettings.getTimeout()));
- data.put(ITerminalsConnectorConstants.PROP_TELNET_EOL, telnetSettings.getEndOfLine());
- data.put(ITerminalsConnectorConstants.PROP_ENCODING, getEncoding());
- }
-
- @Override
- protected void fillSettingsForHost(String host) {
- if (host != null && host.length() != 0) {
- if (hostSettingsMap.containsKey(host)) {
- Map hostSettings = hostSettingsMap.get(host);
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_IP_HOST) != null) {
- telnetSettings.setHost(hostSettings.get(ITerminalsConnectorConstants.PROP_IP_HOST));
- }
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_IP_PORT) != null) {
- telnetSettings.setNetworkPort(hostSettings.get(ITerminalsConnectorConstants.PROP_IP_PORT));
- }
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_TIMEOUT) != null) {
- telnetSettings.setTimeout(hostSettings.get(ITerminalsConnectorConstants.PROP_TIMEOUT));
- }
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_TELNET_EOL) != null) {
- telnetSettings.setEndOfLine(hostSettings.get(ITerminalsConnectorConstants.PROP_TELNET_EOL));
- }
- if (hostSettings.get(ITerminalsConnectorConstants.PROP_ENCODING) != null) {
- setEncoding(hostSettings.get(ITerminalsConnectorConstants.PROP_ENCODING));
- }
- } else {
- telnetSettings.setHost(getSelectionHost());
- // MWE otherwise we don't get a valid default selection of the combo
- telnetSettings.setNetworkPort(NetworkPortMap.PROP_VALUETELNET);
- }
- // set settings in page
- telnetSettingsPage.loadSettings();
- }
- }
-
- @Override
- protected void saveSettingsForHost(boolean add) {
- String host = getHostFromSettings();
- if (host != null && host.length() != 0) {
- Map hostSettings = hostSettingsMap.get(host);
- if (hostSettings == null && add) {
- hostSettings = new HashMap<>();
- hostSettingsMap.put(host, hostSettings);
- }
- if (hostSettings != null) {
- hostSettings.put(ITerminalsConnectorConstants.PROP_IP_HOST, telnetSettings.getHost());
- hostSettings.put(ITerminalsConnectorConstants.PROP_IP_PORT,
- Integer.toString(telnetSettings.getNetworkPort()));
- hostSettings.put(ITerminalsConnectorConstants.PROP_TIMEOUT,
- Integer.toString(telnetSettings.getTimeout()));
- hostSettings.put(ITerminalsConnectorConstants.PROP_TELNET_EOL, telnetSettings.getEndOfLine());
- if (getEncoding() != null) {
- hostSettings.put(ITerminalsConnectorConstants.PROP_ENCODING, getEncoding());
- }
- }
- }
- }
-
- @Override
- public boolean isValid() {
- return isEncodingValid() && telnetSettingsPage.validateSettings();
- }
-
- @Override
- public void doSaveWidgetValues(IDialogSettings settings, String idPrefix) {
- saveSettingsForHost(true);
- super.doSaveWidgetValues(settings, idPrefix);
- }
-
- @Override
- protected String getHostFromSettings() {
- telnetSettingsPage.saveSettings();
- return telnetSettings.getHost();
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/launcher/TelnetLauncherDelegate.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/launcher/TelnetLauncherDelegate.java
deleted file mode 100644
index 5a16fc23415..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/launcher/TelnetLauncherDelegate.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [366374] [TERMINALS][TELNET] Add Telnet terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.launcher;
-
-import java.text.DateFormat;
-import java.util.Date;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalConnectorExtension;
-import org.eclipse.tm.terminal.connector.telnet.connector.TelnetSettings;
-import org.eclipse.tm.terminal.connector.telnet.controls.TelnetWizardConfigurationPanel;
-import org.eclipse.tm.terminal.connector.telnet.nls.Messages;
-import org.eclipse.tm.terminal.view.core.TerminalServiceFactory;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
-import org.eclipse.tm.terminal.view.ui.internal.SettingsStore;
-import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
-
-/**
- * Telnet launcher delegate implementation.
- */
-@SuppressWarnings("restriction")
-public class TelnetLauncherDelegate extends AbstractLauncherDelegate {
- // The Telnet terminal connection memento handler
- private final IMementoHandler mementoHandler = new TelnetMementoHandler();
-
- @Override
- public boolean needsUserConfiguration() {
- return true;
- }
-
- @Override
- public IConfigurationPanel getPanel(IConfigurationPanelContainer container) {
- return new TelnetWizardConfigurationPanel(container);
- }
-
- @Override
- public void execute(Map properties, ITerminalService.Done done) {
- Assert.isNotNull(properties);
-
- // Set the terminal tab title
- String terminalTitle = getTerminalTitle(properties);
- if (terminalTitle != null) {
- properties.put(ITerminalsConnectorConstants.PROP_TITLE, terminalTitle);
- }
-
- // For Telnet terminals, force a new terminal tab each time it is launched,
- // if not set otherwise from outside
- if (!properties.containsKey(ITerminalsConnectorConstants.PROP_FORCE_NEW)) {
- properties.put(ITerminalsConnectorConstants.PROP_FORCE_NEW, Boolean.TRUE);
- }
-
- // Get the terminal service
- ITerminalService terminal = TerminalServiceFactory.getService();
- // If not available, we cannot fulfill this request
- if (terminal != null) {
- terminal.openConsole(properties, done);
- }
- }
-
- /**
- * Returns the terminal title string.
- *
- * The default implementation constructs a title like "Telnet @ host (Start time) ".
- *
- * @return The terminal title string or null
.
- */
- private String getTerminalTitle(Map properties) {
- // Try to see if the user set a title explicitly via the properties map.
- String title = getDefaultTerminalTitle(properties);
- if (title != null)
- return title;
-
- //No title,try to calculate the title
- String host = (String) properties.get(ITerminalsConnectorConstants.PROP_IP_HOST);
-
- if (host != null) {
- DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
- String date = format.format(new Date(System.currentTimeMillis()));
- return NLS.bind(Messages.TelnetLauncherDelegate_terminalTitle, new String[] { host, date });
- }
-
- return Messages.TelnetLauncherDelegate_terminalTitle_default;
- }
-
- @Override
- public T getAdapter(Class adapter) {
- if (IMementoHandler.class.equals(adapter)) {
- return adapter.cast(mementoHandler);
- }
- return super.getAdapter(adapter);
- }
-
- @Override
- public ITerminalConnector createTerminalConnector(Map properties) {
- Assert.isNotNull(properties);
-
- // Check for the terminal connector id
- String connectorId = (String) properties.get(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
- if (connectorId == null)
- connectorId = "org.eclipse.tm.terminal.connector.telnet.TelnetConnector"; //$NON-NLS-1$
-
- // Extract the telnet properties
- String host = (String) properties.get(ITerminalsConnectorConstants.PROP_IP_HOST);
- Object value = properties.get(ITerminalsConnectorConstants.PROP_IP_PORT);
- String port = value != null ? value.toString() : null;
- value = properties.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
- String timeout = value != null ? value.toString() : null;
- String endOfLine = (String) properties.get(ITerminalsConnectorConstants.PROP_TELNET_EOL);
-
- int portOffset = 0;
- if (properties.get(ITerminalsConnectorConstants.PROP_IP_PORT_OFFSET) instanceof Integer) {
- portOffset = ((Integer) properties.get(ITerminalsConnectorConstants.PROP_IP_PORT_OFFSET)).intValue();
- if (portOffset < 0)
- portOffset = 0;
- }
-
- // The real port to connect to is port + portOffset
- if (port != null) {
- port = Integer.toString(Integer.decode(port).intValue() + portOffset);
- }
-
- // Construct the terminal settings store
- ISettingsStore store = new SettingsStore();
-
- // Construct the telnet settings
- TelnetSettings telnetSettings = new TelnetSettings();
- telnetSettings.setHost(host);
- telnetSettings.setNetworkPort(port);
- if (timeout != null) {
- telnetSettings.setTimeout(timeout);
- }
- telnetSettings.setEndOfLine(endOfLine);
- // And save the settings to the store
- telnetSettings.save(store);
-
- // Construct the terminal connector instance
- ITerminalConnector connector = TerminalConnectorExtension.makeTerminalConnector(connectorId);
- if (connector != null) {
- // Apply default settings
- connector.setDefaultSettings();
- // And load the real settings
- connector.load(store);
- }
-
- return connector;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/launcher/TelnetMementoHandler.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/launcher/TelnetMementoHandler.java
deleted file mode 100644
index ae5d921041e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/launcher/TelnetMementoHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.launcher;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.interfaces.IMementoHandler;
-import org.eclipse.ui.IMemento;
-
-/**
- * Telnet terminal connection memento handler implementation.
- */
-public class TelnetMementoHandler implements IMementoHandler {
-
- @Override
- public void saveState(IMemento memento, Map properties) {
- Assert.isNotNull(memento);
- Assert.isNotNull(properties);
-
- // Do not write the terminal title to the memento -> needs to
- // be recreated at the time of restoration.
- memento.putString(ITerminalsConnectorConstants.PROP_IP_HOST,
- (String) properties.get(ITerminalsConnectorConstants.PROP_IP_HOST));
- Object value = properties.get(ITerminalsConnectorConstants.PROP_IP_PORT);
- memento.putInteger(ITerminalsConnectorConstants.PROP_IP_PORT,
- value instanceof Integer ? ((Integer) value).intValue() : -1);
- value = properties.get(ITerminalsConnectorConstants.PROP_TIMEOUT);
- memento.putInteger(ITerminalsConnectorConstants.PROP_TIMEOUT,
- value instanceof Integer ? ((Integer) value).intValue() : -1);
- memento.putString(ITerminalsConnectorConstants.PROP_ENCODING,
- (String) properties.get(ITerminalsConnectorConstants.PROP_ENCODING));
- }
-
- @Override
- public void restoreState(IMemento memento, Map properties) {
- Assert.isNotNull(memento);
- Assert.isNotNull(properties);
-
- // Restore the terminal properties from the memento
- properties.put(ITerminalsConnectorConstants.PROP_IP_HOST,
- memento.getString(ITerminalsConnectorConstants.PROP_IP_HOST));
- properties.put(ITerminalsConnectorConstants.PROP_IP_PORT,
- memento.getInteger(ITerminalsConnectorConstants.PROP_IP_PORT));
- properties.put(ITerminalsConnectorConstants.PROP_TIMEOUT,
- memento.getInteger(ITerminalsConnectorConstants.PROP_TIMEOUT));
- properties.put(ITerminalsConnectorConstants.PROP_ENCODING,
- memento.getString(ITerminalsConnectorConstants.PROP_ENCODING));
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/nls/Messages.java b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/nls/Messages.java
deleted file mode 100644
index d223e942a6c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/nls/Messages.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [366374] [TERMINALS][TELNET] Add Telnet terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.connector.telnet.nls;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Externalized strings management.
- */
-public class Messages extends NLS {
-
- // The plug-in resource bundle name
- private static final String BUNDLE_NAME = "org.eclipse.tm.terminal.connector.telnet.nls.Messages"; //$NON-NLS-1$
-
- /**
- * Static constructor.
- */
- static {
- // Load message values from bundle file
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- // **** Declare externalized string id's down here *****
-
- public static String TelnetLauncherDelegate_terminalTitle;
- public static String TelnetLauncherDelegate_terminalTitle_default;
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/nls/Messages.properties b/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/nls/Messages.properties
deleted file mode 100644
index 7ed5b2ef78d..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.connector.telnet/src/org/eclipse/tm/terminal/connector/telnet/nls/Messages.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-
-TelnetLauncherDelegate_terminalTitle=Telnet {0} ({1})
-TelnetLauncherDelegate_terminalTitle_default=Telnet Terminal
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.classpath b/terminal/plugins/org.eclipse.tm.terminal.test/.classpath
deleted file mode 100644
index 51ec4e6b8b9..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.classpath
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.gitignore b/terminal/plugins/org.eclipse.tm.terminal.test/.gitignore
deleted file mode 100644
index ae3c1726048..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.project b/terminal/plugins/org.eclipse.tm.terminal.test/.project
deleted file mode 100644
index 492f603b4c0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
- org.eclipse.tm.terminal.test
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.core.resources.prefs b/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.core.prefs b/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index afec999c9e1..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,486 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=ignore
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.launching.prefs b/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.ui.prefs b/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d35ba9b5231..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,213 +0,0 @@
-cleanup.add_all=false
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.array_with_curly=false
-cleanup.arrays_fill=false
-cleanup.bitwise_conditional_expression=false
-cleanup.boolean_literal=false
-cleanup.boolean_value_rather_than_comparison=false
-cleanup.break_loop=false
-cleanup.collection_cloning=false
-cleanup.comparing_on_criteria=false
-cleanup.comparison_statement=false
-cleanup.controlflow_merge=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
-cleanup.convert_to_switch_expressions=false
-cleanup.correct_indentation=false
-cleanup.do_while_rather_than_while=true
-cleanup.double_negation=false
-cleanup.else_if=false
-cleanup.embedded_if=false
-cleanup.evaluate_nullable=false
-cleanup.extract_increment=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.hash=false
-cleanup.if_condition=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.instanceof=false
-cleanup.instanceof_keyword=false
-cleanup.invert_equals=false
-cleanup.join=false
-cleanup.lazy_logical_operator=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.map_cloning=false
-cleanup.merge_conditional_blocks=false
-cleanup.multi_catch=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.no_string_creation=false
-cleanup.no_super=false
-cleanup.number_suffix=false
-cleanup.objects_equals=false
-cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
-cleanup.operand_factorization=false
-cleanup.organize_imports=true
-cleanup.overridden_assignment=false
-cleanup.plain_replacement=false
-cleanup.precompile_regex=false
-cleanup.primitive_comparison=false
-cleanup.primitive_parsing=false
-cleanup.primitive_rather_than_wrapper=false
-cleanup.primitive_serialization=false
-cleanup.pull_out_if_from_if_else=false
-cleanup.pull_up_assignment=false
-cleanup.push_down_negation=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.reduce_indentation=false
-cleanup.redundant_comparator=false
-cleanup.redundant_falling_through_block_end=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_array_creation=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_method_parameters=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.return_expression=false
-cleanup.simplify_lambda_expression_and_method_ref=false
-cleanup.single_used_field=false
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.standard_comparison=false
-cleanup.static_inner_class=false
-cleanup.strictly_equal_or_different=false
-cleanup.stringbuffer_to_stringbuilder=false
-cleanup.stringbuilder=false
-cleanup.stringbuilder_for_local_vars=true
-cleanup.stringconcat_to_textblock=false
-cleanup.substring=false
-cleanup.switch=false
-cleanup.system_property=false
-cleanup.system_property_boolean=false
-cleanup.system_property_file_encoding=false
-cleanup.system_property_file_separator=false
-cleanup.system_property_line_separator=false
-cleanup.system_property_path_separator=false
-cleanup.ternary_operator=false
-cleanup.try_with_resource=false
-cleanup.unlooped_while=false
-cleanup.unreachable_block=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_autoboxing=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_directly_map_method=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_string_is_blank=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup.use_unboxing=false
-cleanup.use_var=false
-cleanup.useless_continue=false
-cleanup.useless_return=false
-cleanup.valueof_rather_than_instantiation=false
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.pde.api.tools.prefs b/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf321d0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.pde.prefs b/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 010e493a319..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,36 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.exec-env-too-low=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=2
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF b/terminal/plugins/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF
deleted file mode 100644
index 09aacf4da05..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.test;singleton:=true
-Bundle-Version: 4.6.100.qualifier
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.junit;bundle-version="[4.13.2,5)",
- org.eclipse.tm.terminal.control;bundle-version="[5.6.0,6.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.33.0,4)",
- org.eclipse.ui;bundle-version="[3.207.200,4)",
- org.opentest4j;bundle-version="[1.3.0,2)"
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Export-Package: org.eclipse.tm.internal.terminal.connector;x-internal:=true,
- org.eclipse.tm.internal.terminal.emulator;x-internal:=true,
- org.eclipse.tm.internal.terminal.model;x-internal:=true,
- org.eclipse.tm.internal.terminal.speedtest;x-internal:=true,
- org.eclipse.tm.internal.terminal.test.terminalcanvas;x-internal:=true,
- org.eclipse.tm.internal.terminal.test.ui;x-internal:=true,
- org.eclipse.tm.internal.terminal.textcanvas;x-internal:=true,
- org.eclipse.tm.terminal.model,
- org.eclipse.tm.terminal.test
-Import-Package: org.junit.jupiter.api;version="[5.9.3,6.0.0)",
- org.junit.jupiter.api.function;version="[5.9.3,6.0.0)"
-Automatic-Module-Name: org.eclipse.tm.terminal.test
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/about.html b/terminal/plugins/org.eclipse.tm.terminal.test/about.html
deleted file mode 100644
index b3134865230..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/about.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
- About
-
-
-
- About This Content
-
- November 30, 2017
- License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at https://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at https://www.eclipse.org.
-
-
-
-
-
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/about.ini b/terminal/plugins/org.eclipse.tm.terminal.test/about.ini
deleted file mode 100644
index 3adc27ab587..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/about.ini
+++ /dev/null
@@ -1,27 +0,0 @@
-# about.ini
-# contains information about a feature
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# "%key" are externalized strings defined in about.properties
-# This file does not need to be translated.
-
-# Property "aboutText" contains blurb for "About" dialog (translated)
-aboutText=%blurb
-
-# Property "windowImage" contains path to window icon (16x16)
-# needed for primary features only
-
-# Property "featureImage" contains path to feature image (32x32)
-featureImage=tm32.png
-
-# Property "aboutImage" contains path to product image (500x330 or 115x164)
-# needed for primary features only
-
-# Property "appName" contains name of the application (not translated)
-# needed for primary features only
-
-# Property "welcomePage" contains path to welcome page (special XML-based format)
-# optional
-
-# Property "welcomePerspective" contains the id of the perspective in which the
-# welcome page is to be opened.
-# optional
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/about.properties b/terminal/plugins/org.eclipse.tm.terminal.test/about.properties
deleted file mode 100644
index bd810e7c32b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/about.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-#
-# Do not translate any values surrounded by {}
-
-blurb=TM Terminal Unit Tests\n\
-\n\
-Version: {featureVersion}\n\
-\n\
-(c) Copyright Wind River Systems, Inc. and others 2007, 2017. All rights reserved.\n\
-Visit http://www.eclipse.org/tm
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/build.properties b/terminal/plugins/org.eclipse.tm.terminal.test/build.properties
deleted file mode 100644
index 0b897913118..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Michael Scharf (Wind River) - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties,\
- plugin.xml,\
- about.properties,\
- about.ini,\
- about.html
-src.includes = teamConfig/,\
- about.html
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/plugin.properties b/terminal/plugins/org.eclipse.tm.terminal.test/plugin.properties
deleted file mode 100644
index 0532f6a6263..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License 2.0
-# which accompanies this distribution, and is available at
-# https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Initial Contributors:
-# The following Wind River employees contributed to the Terminal component
-# that contains this file: Chris Thew, Fran Litterio, Stephen Lamb,
-# Helmut Haigermoser and Ted Williams.
-#
-# Contributors:
-# Michael Scharf (Wind River) - initial API and implementation
-###############################################################################
-pluginName = Target Management Terminal Tests
-providerName = Eclipse CDT
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/plugin.xml b/terminal/plugins/org.eclipse.tm.terminal.test/plugin.xml
deleted file mode 100644
index def334de009..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/plugin.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java
deleted file mode 100644
index 120c444eb21..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorFactoryTest.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [225853][api] Provide more default functionality in TerminalConnectorImpl
- * Martin Oberhuber (Wind River) - [204796] Terminal should allow setting the encoding to use
- * Uwe Stieber (Wind River) - [282996] [terminal][api] Add "hidden" attribute to terminal connector extension point
- * Anton Leherbauer (Wind River) - [433751] Add option to enable VT100 line wrapping mode
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.connector;
-
-import java.io.OutputStream;
-import java.nio.charset.Charset;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.internal.terminal.control.ITerminalListener3.TerminalTitleRequestor;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-
-import junit.framework.TestCase;
-
-public class TerminalConnectorFactoryTest extends TestCase {
- public class SettingsMock implements ISettingsStore {
-
- @Override
- public String get(String key) {
- return null;
- }
-
- @Override
- public String get(String key, String defaultValue) {
- return null;
- }
-
- @Override
- public void put(String key, String value) {
- }
-
- }
-
- public static class TerminalControlMock implements ITerminalControl {
-
- @Override
- public void setEncoding(String encoding) {
- }
-
- @Override
- public void setCharset(Charset charset) {
- }
-
- @Override
- public String getEncoding() {
- return "UTF-8"; //$NON-NLS-1$
- }
-
- @Override
- public Charset getCharset() {
- return Charset.defaultCharset();
- }
-
- @Override
- public void displayTextInTerminal(String text) {
- }
-
- @Override
- public OutputStream getRemoteToTerminalOutputStream() {
- return null;
- }
-
- @Override
- public Shell getShell() {
- return null;
- }
-
- @Override
- public TerminalState getState() {
- return null;
- }
-
- @Override
- public void setMsg(String msg) {
- }
-
- @Override
- public void setState(TerminalState state) {
- }
-
- @Override
- public void setTerminalTitle(String title) {
- }
-
- @Override
- public void setTerminalTitle(String title, TerminalTitleRequestor requestor) {
- }
-
- @Override
- public void setupTerminal(Composite parent) {
- }
-
- @Override
- public boolean isConnectOnEnterIfClosed() {
- return false;
- }
-
- @Override
- public void setConnectOnEnterIfClosed(boolean on) {
- }
-
- @Override
- public void setVT100LineWrapping(boolean enable) {
- }
-
- @Override
- public boolean isVT100LineWrapping() {
- return false;
- }
- }
-
- static class ConnectorMock extends TerminalConnectorImpl {
-
- public boolean fEcho;
- public int fWidth;
- public int fHeight;
- public ITerminalControl fTerminalControl;
- public ISettingsStore fSaveStore;
- public ISettingsStore fLoadStore;
- public boolean fDisconnect;
-
- @Override
- public boolean isLocalEcho() {
- return fEcho;
- }
-
- @Override
- public void setTerminalSize(int newWidth, int newHeight) {
- fWidth = newWidth;
- fHeight = newHeight;
- }
-
- @Override
- public void connect(ITerminalControl control) {
- super.connect(control);
- fTerminalControl = control;
- }
-
- @Override
- public void doDisconnect() {
- fDisconnect = true;
- }
-
- @Override
- public OutputStream getTerminalToRemoteStream() {
- return null;
- }
-
- @Override
- public String getSettingsSummary() {
- return "Summary";
- }
-
- @Override
- public void load(ISettingsStore store) {
- fLoadStore = store;
- }
-
- @Override
- public void save(ISettingsStore store) {
- fSaveStore = store;
- }
- }
-
- protected TerminalConnector makeTerminalConnector() {
- return makeTerminalConnector(new ConnectorMock());
- }
-
- protected TerminalConnector makeTerminalConnector(final TerminalConnectorImpl mock) {
- TerminalConnector c = new TerminalConnector(() -> mock, "xID", "xName", false);
- return c;
- }
-
- public void testGetInitializationErrorMessage() {
- TerminalConnector c = makeTerminalConnector();
- c.connect(new TerminalControlMock());
- assertNull(c.getInitializationErrorMessage());
-
- c = makeTerminalConnector(new ConnectorMock() {
- @Override
- public void initialize() throws Exception {
- throw new Exception("FAILED");
- }
- });
- c.connect(new TerminalControlMock());
- assertEquals("FAILED", c.getInitializationErrorMessage());
-
- }
-
- public void testGetIdAndName() {
- TerminalConnector c = makeTerminalConnector();
- assertEquals("xID", c.getId());
- assertEquals("xName", c.getName());
- }
-
- public void testIsInitialized() {
- TerminalConnector c = makeTerminalConnector();
- assertFalse(c.isInitialized());
- c.getId();
- assertFalse(c.isInitialized());
- c.getName();
- assertFalse(c.isInitialized());
- c.getSettingsSummary();
- assertFalse(c.isInitialized());
- c.setTerminalSize(10, 10);
- assertFalse(c.isInitialized());
- c.load(null);
- assertFalse(c.isInitialized());
- c.save(null);
- assertFalse(c.isInitialized());
- if (!Platform.isRunning())
- return;
- c.getAdapter(ConnectorMock.class);
- assertFalse(c.isInitialized());
- }
-
- public void testConnect() {
- TerminalConnector c = makeTerminalConnector();
- assertFalse(c.isInitialized());
- c.connect(new TerminalControlMock());
- assertTrue(c.isInitialized());
-
- }
-
- public void testDisconnect() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = makeTerminalConnector(mock);
- TerminalControlMock control = new TerminalControlMock();
- c.connect(control);
- c.disconnect();
- assertTrue(mock.fDisconnect);
- }
-
- public void testGetTerminalToRemoteStream() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = makeTerminalConnector(mock);
- TerminalControlMock control = new TerminalControlMock();
- c.connect(control);
- assertSame(mock.fTerminalControl, control);
- }
-
- public void testGetSettingsSummary() {
- TerminalConnector c = makeTerminalConnector();
- assertEquals("Not Initialized", c.getSettingsSummary());
- c.connect(new TerminalControlMock());
- assertEquals("Summary", c.getSettingsSummary());
- }
-
- public void testIsLocalEcho() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = makeTerminalConnector(mock);
- assertFalse(c.isLocalEcho());
- mock.fEcho = true;
- assertTrue(c.isLocalEcho());
- }
-
- public void testLoad() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = makeTerminalConnector(mock);
- ISettingsStore s = new SettingsMock();
- c.load(s);
- // the load is called after the connect...
- assertNull(mock.fLoadStore);
- c.connect(new TerminalControlMock());
- assertSame(s, mock.fLoadStore);
- }
-
- public void testSave() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = makeTerminalConnector(mock);
- ISettingsStore s = new SettingsMock();
- c.save(s);
- assertNull(mock.fSaveStore);
- c.connect(new TerminalControlMock());
- c.save(s);
- assertSame(s, mock.fSaveStore);
- }
-
- public void testSetDefaultSettings() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = makeTerminalConnector(mock);
- c.setDefaultSettings();
- }
-
- public void testSetTerminalSize() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = makeTerminalConnector(mock);
- c.setTerminalSize(100, 200);
-
- }
-
- public void testGetAdapter() {
- if (!Platform.isRunning())
- return;
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = makeTerminalConnector(mock);
- assertNull(c.getAdapter(ConnectorMock.class));
- // the load is called after the connect...
- c.connect(new TerminalControlMock());
-
- assertSame(mock, c.getAdapter(ConnectorMock.class));
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorPluginTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorPluginTest.java
deleted file mode 100644
index b5899dcd8e1..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorPluginTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - initial API and implementation
- * Uwe Stieber (Wind River) - [282996] [terminal][api] Add "hidden" attribute to terminal connector extension point
- *******************************************************************************/
-
-package org.eclipse.tm.internal.terminal.connector;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tm.internal.terminal.connector.TerminalConnectorTest.ConnectorMock;
-import org.eclipse.tm.internal.terminal.connector.TerminalConnectorTest.SimpleFactory;
-import org.eclipse.tm.internal.terminal.connector.TerminalConnectorTest.TerminalControlMock;
-
-import junit.framework.TestCase;
-
-/**
- * Testcase for TerminalConnector that must run as a JUnit plug-in test.
- */
-public class TerminalConnectorPluginTest extends TestCase {
-
- public void testIsInitialized() {
- if (!Platform.isRunning())
- return;
- TerminalConnector c = new TerminalConnector(new SimpleFactory(new ConnectorMock()), "xID", "xName", false);
- assertFalse(c.isInitialized());
- c.getId();
- assertFalse(c.isInitialized());
- c.getName();
- assertFalse(c.isInitialized());
- c.isHidden();
- assertFalse(c.isInitialized());
- c.getSettingsSummary();
- assertFalse(c.isInitialized());
- c.setTerminalSize(10, 10);
- assertFalse(c.isInitialized());
- c.load(null);
- assertFalse(c.isInitialized());
- c.save(null);
- assertFalse(c.isInitialized());
- c.getAdapter(ConnectorMock.class);
- assertFalse(c.isInitialized());
- }
-
- public void testGetAdapter() {
- if (!Platform.isRunning())
- return;
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = new TerminalConnector(new SimpleFactory(mock), "xID", "xName", false);
- assertNull(c.getAdapter(ConnectorMock.class));
- // the load is called after the connect...
- c.connect(new TerminalControlMock());
-
- assertSame(mock, c.getAdapter(ConnectorMock.class));
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java
deleted file mode 100644
index 4bfa869f861..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalConnectorTest.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [225853][api] Provide more default functionality in TerminalConnectorImpl
- * Martin Oberhuber (Wind River) - [204796] Terminal should allow setting the encoding to use
- * Uwe Stieber (Wind River) - [282996] [terminal][api] Add "hidden" attribute to terminal connector extension point
- * Anton Leherbauer (Wind River) - [433751] Add option to enable VT100 line wrapping mode
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.connector;
-
-import java.io.OutputStream;
-import java.nio.charset.Charset;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.internal.terminal.connector.TerminalConnector.Factory;
-import org.eclipse.tm.internal.terminal.control.ITerminalListener3.TerminalTitleRequestor;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-
-import junit.framework.TestCase;
-
-public class TerminalConnectorTest extends TestCase {
- public class SettingsMock implements ISettingsStore {
-
- @Override
- public String get(String key) {
- return null;
- }
-
- @Override
- public String get(String key, String defaultValue) {
- return null;
- }
-
- @Override
- public void put(String key, String value) {
- }
-
- }
-
- public static class TerminalControlMock implements ITerminalControl {
-
- @Override
- public void setEncoding(String encoding) {
- }
-
- @Override
- public void setCharset(Charset charset) {
- }
-
- @Override
- public String getEncoding() {
- return "UTF-8"; //$NON-NLS-1$
- }
-
- @Override
- public Charset getCharset() {
- return Charset.defaultCharset();
- }
-
- @Override
- public void displayTextInTerminal(String text) {
- }
-
- @Override
- public OutputStream getRemoteToTerminalOutputStream() {
- return null;
- }
-
- @Override
- public Shell getShell() {
- return null;
- }
-
- @Override
- public TerminalState getState() {
- return null;
- }
-
- @Override
- public void setMsg(String msg) {
- }
-
- @Override
- public void setState(TerminalState state) {
- }
-
- @Override
- public void setTerminalTitle(String title) {
- }
-
- @Override
- public void setTerminalTitle(String title, TerminalTitleRequestor requestor) {
- }
-
- @Override
- public void setupTerminal(Composite parent) {
- }
-
- @Override
- public boolean isConnectOnEnterIfClosed() {
- return false;
- }
-
- @Override
- public void setConnectOnEnterIfClosed(boolean on) {
- }
-
- @Override
- public void setVT100LineWrapping(boolean enable) {
- }
-
- @Override
- public boolean isVT100LineWrapping() {
- return false;
- }
- }
-
- static class ConnectorMock extends TerminalConnectorImpl {
-
- public boolean fEcho;
- public int fWidth;
- public int fHeight;
- public ITerminalControl fTerminalControl;
- public ISettingsStore fSaveStore;
- public ISettingsStore fLoadStore;
- public boolean fDisconnect;
-
- @Override
- public boolean isLocalEcho() {
- return fEcho;
- }
-
- @Override
- public void setTerminalSize(int newWidth, int newHeight) {
- fWidth = newWidth;
- fHeight = newHeight;
- }
-
- @Override
- public void connect(ITerminalControl control) {
- super.connect(control);
- fTerminalControl = control;
- }
-
- @Override
- public void doDisconnect() {
- fDisconnect = true;
- }
-
- @Override
- public OutputStream getTerminalToRemoteStream() {
- return null;
- }
-
- @Override
- public String getSettingsSummary() {
- return "Summary";
- }
-
- @Override
- public void load(ISettingsStore store) {
- fLoadStore = store;
- }
-
- @Override
- public void save(ISettingsStore store) {
- fSaveStore = store;
- }
- }
-
- static class SimpleFactory implements Factory {
- final TerminalConnectorImpl fConnector;
-
- public SimpleFactory(TerminalConnectorImpl connector) {
- fConnector = connector;
- }
-
- @Override
- public TerminalConnectorImpl makeConnector() throws Exception {
- // TODO Auto-generated method stub
- return fConnector;
- }
- }
-
- public void testGetInitializationErrorMessage() {
- TerminalConnector c = new TerminalConnector(new SimpleFactory(new ConnectorMock()), "xID", "xName", false);
- c.connect(new TerminalControlMock());
- assertNull(c.getInitializationErrorMessage());
-
- c = new TerminalConnector(new SimpleFactory(new ConnectorMock() {
- @Override
- public void initialize() throws Exception {
- throw new Exception("FAILED");
- }
- }), "xID", "xName", false);
- c.connect(new TerminalControlMock());
- assertEquals("FAILED", c.getInitializationErrorMessage());
-
- }
-
- public void testGetIdAndName() {
- TerminalConnector c = new TerminalConnector(new SimpleFactory(new ConnectorMock()), "xID", "xName", false);
- assertEquals("xID", c.getId());
- assertEquals("xName", c.getName());
- }
-
- public void testConnect() {
- TerminalConnector c = new TerminalConnector(new SimpleFactory(new ConnectorMock()), "xID", "xName", false);
- assertFalse(c.isInitialized());
- c.connect(new TerminalControlMock());
- assertTrue(c.isInitialized());
-
- }
-
- public void testDisconnect() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = new TerminalConnector(new SimpleFactory(mock), "xID", "xName", false);
- TerminalControlMock control = new TerminalControlMock();
- c.connect(control);
- c.disconnect();
- assertTrue(mock.fDisconnect);
- }
-
- public void testGetTerminalToRemoteStream() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = new TerminalConnector(new SimpleFactory(mock), "xID", "xName", false);
- TerminalControlMock control = new TerminalControlMock();
- c.connect(control);
- assertSame(mock.fTerminalControl, control);
- }
-
- public void testGetSettingsSummary() {
- TerminalConnector c = new TerminalConnector(new SimpleFactory(new ConnectorMock()), "xID", "xName", false);
- assertEquals("Not Initialized", c.getSettingsSummary());
- c.connect(new TerminalControlMock());
- assertEquals("Summary", c.getSettingsSummary());
- }
-
- public void testIsLocalEcho() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = new TerminalConnector(new SimpleFactory(mock), "xID", "xName", false);
- assertFalse(c.isLocalEcho());
- mock.fEcho = true;
- assertTrue(c.isLocalEcho());
- }
-
- public void testLoad() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = new TerminalConnector(new SimpleFactory(mock), "xID", "xName", false);
- ISettingsStore s = new SettingsMock();
- c.load(s);
- // the load is called after the connect...
- assertNull(mock.fLoadStore);
- c.connect(new TerminalControlMock());
- assertSame(s, mock.fLoadStore);
- }
-
- public void testSave() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = new TerminalConnector(new SimpleFactory(mock), "xID", "xName", false);
- ISettingsStore s = new SettingsMock();
- c.save(s);
- assertNull(mock.fSaveStore);
- c.connect(new TerminalControlMock());
- c.save(s);
- assertSame(s, mock.fSaveStore);
- }
-
- public void testSetDefaultSettings() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = new TerminalConnector(new SimpleFactory(mock), "xID", "xName", false);
- c.setDefaultSettings();
- }
-
- public void testSetTerminalSize() {
- ConnectorMock mock = new ConnectorMock();
- TerminalConnector c = new TerminalConnector(new SimpleFactory(mock), "xID", "xName", false);
- c.setTerminalSize(100, 200);
-
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalToRemoteInjectionOutputStreamTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalToRemoteInjectionOutputStreamTest.java
deleted file mode 100644
index 04e3a2769b8..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/connector/TerminalToRemoteInjectionOutputStreamTest.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.connector;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-
-import junit.framework.TestCase;
-
-public class TerminalToRemoteInjectionOutputStreamTest extends TestCase {
- final static Charset ENCODING = StandardCharsets.UTF_8;
-
- /**
- * This class escapes strings coming on the original
- * terminal..
- *
- */
- class CleverInterceptor extends TerminalToRemoteInjectionOutputStream.Interceptor {
-
- @Override
- public void close() throws IOException {
- }
-
- @Override
- public void write(int b) throws IOException {
- fOriginal.write('[');
- fOriginal.write(b);
- fOriginal.write(']');
- }
-
- @Override
- public void write(byte[] b, int off, int len) throws IOException {
- fOriginal.write('[');
- fOriginal.write(b, off, len);
- fOriginal.write(']');
- }
-
- }
-
- class NullInterceptor extends TerminalToRemoteInjectionOutputStream.Interceptor {
- }
-
- public void testClose() throws IOException {
- ByteArrayOutputStream bs = new ByteArrayOutputStream();
- try (TerminalToRemoteInjectionOutputStream s = new TerminalToRemoteInjectionOutputStream(bs)) {
- s.write("begin:".getBytes(ENCODING));
- assertEquals("begin:", new String(bs.toByteArray(), ENCODING));
- OutputStream os1 = s.grabOutput();
- os1.write('x');
- s.write('A');
- os1.write('y');
- s.write('B');
- os1.close();
-
- s.write('-');
- OutputStream os = s.grabOutput();
- // make sure the closed output does not inject anything
- try {
- os1.write('k');
- fail("...");
- } catch (Exception e) {
- }
- os.write('X');
- s.write('a');
- os.write('Y');
- // make sure the closed output does not inject anything
- try {
- os1.write('l');
- fail("...");
- } catch (Exception e) {
- }
- s.write('b');
- os.close();
- assertEquals("begin:xyAB-XYab", new String(bs.toByteArray(), ENCODING));
- }
- }
-
- public void testFlush() {
- }
-
- public void testWriteInt() throws IOException {
- ByteArrayOutputStream bs = new ByteArrayOutputStream();
- TerminalToRemoteInjectionOutputStream s = new TerminalToRemoteInjectionOutputStream(bs);
- s.write("begin:".getBytes(ENCODING));
- assertEquals("begin:", new String(bs.toByteArray(), ENCODING));
- OutputStream os = s.grabOutput();
- os.write('x');
- s.write('A');
- os.write('y');
- s.write('B');
- s.close();
- assertEquals("begin:xyAB", new String(bs.toByteArray(), ENCODING));
-
- }
-
- public void testWriteByteArray() {
- }
-
- public void testWriteByteArrayIntInt() {
- }
-
- public void testGrabOutput() throws IOException {
- ByteArrayOutputStream bs = new ByteArrayOutputStream();
- try (TerminalToRemoteInjectionOutputStream s = new TerminalToRemoteInjectionOutputStream(bs)) {
- s.write("begin:".getBytes(ENCODING));
- assertEquals("begin:", new String(bs.toByteArray(), ENCODING));
- OutputStream os1 = s.grabOutput();
- OutputStream os2;
- try {
- os2 = s.grabOutput();
- fail("should fail until the foirst output is closed");
- } catch (IOException e) {
- }
- os1.close();
- os2 = s.grabOutput();
- assertEquals("begin:", new String(bs.toByteArray(), ENCODING));
- os2.write("Test".getBytes(ENCODING));
- assertEquals("begin:Test", new String(bs.toByteArray(), ENCODING));
- s.write(" west".getBytes(ENCODING));
- assertEquals("begin:Test", new String(bs.toByteArray(), ENCODING));
- os2.write(" the".getBytes(ENCODING));
- assertEquals("begin:Test the", new String(bs.toByteArray(), ENCODING));
- os2.close();
- assertEquals("begin:Test the west", new String(bs.toByteArray(), ENCODING));
- s.write('!');
- assertEquals("begin:Test the west!", new String(bs.toByteArray(), ENCODING));
- }
- }
-
- public void testGrabOutputWithCleverInterceptor() throws IOException {
- ByteArrayOutputStream bs = new ByteArrayOutputStream();
- try (TerminalToRemoteInjectionOutputStream s = new TerminalToRemoteInjectionOutputStream(bs)) {
- s.write("begin:".getBytes(ENCODING));
- assertEquals("begin:", new String(bs.toByteArray(), ENCODING));
- // the injector escapes the output coming from the main stream
- OutputStream os = s.grabOutput(new CleverInterceptor());
- assertEquals("begin:", new String(bs.toByteArray(), ENCODING));
- os.write("Test".getBytes(ENCODING));
- assertEquals("begin:Test", new String(bs.toByteArray(), ENCODING));
- s.write(" west".getBytes(ENCODING));
- assertEquals("begin:Test[ west]", new String(bs.toByteArray(), ENCODING));
- os.write(" the".getBytes(ENCODING));
- assertEquals("begin:Test[ west] the", new String(bs.toByteArray(), ENCODING));
- s.write('x');
- assertEquals("begin:Test[ west] the[x]", new String(bs.toByteArray(), ENCODING));
- os.close();
- assertEquals("begin:Test[ west] the[x]", new String(bs.toByteArray(), ENCODING));
- s.write('!');
- assertEquals("begin:Test[ west] the[x]!", new String(bs.toByteArray(), ENCODING));
- }
- }
-
- public void testGrabOutputWithNullInterceptor() throws IOException {
- ByteArrayOutputStream bs = new ByteArrayOutputStream();
- try (TerminalToRemoteInjectionOutputStream s = new TerminalToRemoteInjectionOutputStream(bs)) {
- s.write("begin:".getBytes(ENCODING));
- assertEquals("begin:", new String(bs.toByteArray(), ENCODING));
- // bytes written to the main stream are ignored while the injector
- // is active
- OutputStream os = s.grabOutput(new NullInterceptor());
- assertEquals("begin:", new String(bs.toByteArray(), ENCODING));
- os.write("Test".getBytes(ENCODING));
- assertEquals("begin:Test", new String(bs.toByteArray(), ENCODING));
- s.write(" west".getBytes(ENCODING));
- assertEquals("begin:Test", new String(bs.toByteArray(), ENCODING));
- os.write(" the".getBytes(ENCODING));
- assertEquals("begin:Test the", new String(bs.toByteArray(), ENCODING));
- s.write('x');
- assertEquals("begin:Test the", new String(bs.toByteArray(), ENCODING));
- os.close();
- assertEquals("begin:Test the", new String(bs.toByteArray(), ENCODING));
- s.write('!');
- assertEquals("begin:Test the!", new String(bs.toByteArray(), ENCODING));
- }
-
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/AllTestSuite.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/AllTestSuite.java
deleted file mode 100644
index 8a99236f846..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/AllTestSuite.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Terminal emulator test cases.
- * Runs in emulator package to allow access to default visible items.
- */
-public class AllTestSuite extends TestCase {
- public AllTestSuite() {
- super(null);
- }
-
- public AllTestSuite(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(AllTestSuite.class.getName());
- suite.addTestSuite(VT100EmulatorBackendTest.class);
- return suite;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/MockTerminalControlForText.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/MockTerminalControlForText.java
deleted file mode 100644
index b8c81ccd1a1..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/MockTerminalControlForText.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 Kichwa Coders Canada Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.tm.internal.terminal.control.ITerminalListener3.TerminalTitleRequestor;
-import org.eclipse.tm.internal.terminal.control.impl.ITerminalControlForText;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-
-public class MockTerminalControlForText implements ITerminalControlForText {
- private List allTitles = new ArrayList<>();
-
- @Override
- public TerminalState getState() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setState(TerminalState state) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void setTerminalTitle(String title, TerminalTitleRequestor requestor) {
- if (requestor == TerminalTitleRequestor.ANSI) {
- allTitles.add(title);
- }
- }
-
- public List getAllTitles() {
- return Collections.unmodifiableList(allTitles);
- }
-
- @Override
- public ITerminalConnector getTerminalConnector() {
- return null;
- }
-
- @Override
- public OutputStream getOutputStream() {
- throw new UnsupportedOperationException();
-
- }
-
- @Override
- public void enableApplicationCursorKeys(boolean enable) {
- throw new UnsupportedOperationException();
-
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackendTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackendTest.java
deleted file mode 100644
index de6bec1f900..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorBackendTest.java
+++ /dev/null
@@ -1,949 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- * Anton Leherbauer (Wind River) - [458218] Add support for ANSI insert mode
- * Anton Leherbauer (Wind River) - [458402] Add support for scroll up/down and scroll region
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import static org.eclipse.tm.terminal.model.TerminalColor.BLACK;
-import static org.eclipse.tm.terminal.model.TerminalColor.WHITE;
-
-import org.eclipse.tm.internal.terminal.model.TerminalTextDataStore;
-import org.eclipse.tm.internal.terminal.model.TerminalTextTestHelper;
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-import junit.framework.TestCase;
-
-public class VT100EmulatorBackendTest extends TestCase {
-
- protected IVT100EmulatorBackend makeBakend(ITerminalTextData term) {
- return new VT100EmulatorBackend(term);
- }
-
- protected ITerminalTextData makeITerminalTextData() {
- return new TerminalTextDataStore();
- }
-
- protected String toSimple(ITerminalTextData term) {
- return TerminalTextTestHelper.toSimple(term);
- }
-
- protected String toMultiLineText(ITerminalTextDataReadOnly term) {
- return TerminalTextTestHelper.toMultiLineText(term);
- }
-
- protected void fill(ITerminalTextData term, String s) {
- TerminalTextTestHelper.fill(term, s);
- }
-
- protected void fillSimple(ITerminalTextData term, String s) {
- TerminalTextTestHelper.fillSimple(term, s);
- }
-
- /**
- * Used for multi line text
- * @param expected
- * @param actual
- */
- protected void assertEqualsTerm(String expected, String actual) {
- assertEquals(expected.replace(' ', '.'), actual.replace('\000', '.'));
- }
-
- /**
- * Used for simple text
- * @param expected
- * @param actual
- */
- protected void assertEqualsSimple(String expected, String actual) {
- assertEquals(-1, actual.indexOf('\n'));
- assertEquals(expected, actual);
- }
-
- public void testClearAll() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- vt100.setDimensions(3, 4);
- fill(term, "0000\n" + "1111\n" + "2222\n" + "3333\n" + "4444\n" + "5555");
- vt100.clearAll();
- assertEqualsTerm(" \n" + " \n" + " ", toMultiLineText(term));
- }
-
- public void testSetDimensions() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- String s = "0000\n" + "1111\n" + "2222\n" + "3333\n" + "4444\n" + "5555";
- fill(term, s);
- vt100.setDimensions(3, 4);
- assertEquals(3, vt100.getLines());
- assertEquals(4, vt100.getColumns());
- assertEqualsTerm(s, toMultiLineText(term));
-
- vt100.setCursor(0, 2);
- vt100.setDimensions(2, 4);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
-
- vt100.setCursor(0, 2);
- vt100.setDimensions(5, 4);
- assertEquals(3, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
-
- assertEqualsTerm(s, toMultiLineText(term));
-
- vt100.setCursor(0, 3);
- vt100.setDimensions(5, 2);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(1, vt100.getCursorColumn());
- }
-
- public void testToAbsoluteLine() {
- ITerminalTextData term = makeITerminalTextData();
- VT100EmulatorBackend vt100 = new VT100EmulatorBackend(term);
- vt100.setDimensions(2, 3);
- assertEquals(vt100.toAbsoluteLine(0), 0);
- // TODO
- term = makeITerminalTextData();
- vt100 = new VT100EmulatorBackend(term);
- vt100.setDimensions(1, 10);
- assertEquals(vt100.toAbsoluteLine(0), 0);
- }
-
- public void testInsertCharacters() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- vt100.setDimensions(3, 4);
- String s = "aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "1234\n" + "4567\n" + "9012";
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.insertCharacters(1);
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " 123\n" + "4567\n" + "9012",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 1);
- vt100.insertCharacters(1);
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "1234\n" + "4 56\n" + "9012",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 1);
- vt100.insertCharacters(2);
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "1234\n" + "4 5\n" + "9012",
- toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 0);
- vt100.insertCharacters(10);
- assertEqualsTerm(" ", toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 0);
- vt100.insertCharacters(14);
- assertEqualsTerm(" ", toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 3);
- vt100.insertCharacters(14);
- assertEqualsTerm("012 ", toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 3);
- vt100.insertCharacters(0);
- assertEqualsTerm("0123456789", toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 3);
- vt100.insertCharacters(2);
- assertEqualsTerm("012 34567", toMultiLineText(term));
- }
-
- public void testEraseToEndOfScreen() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- vt100.setDimensions(3, 4);
- String s = "aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "0123\n" + "4567\n" + "8901";
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.eraseToEndOfScreen();
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " \n" + " \n" + " ",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 0);
- vt100.eraseToEndOfScreen();
- assertEquals(1, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "0123\n" + " \n" + " ",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 1);
- vt100.eraseToEndOfScreen();
- assertEquals(1, vt100.getCursorLine());
- assertEquals(1, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "0123\n" + "4 \n" + " ",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 4);
- assertEquals(1, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- vt100.eraseToEndOfScreen();
- assertEquals(1, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "0123\n" + "456.\n" + " ",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 5);
- vt100.eraseToEndOfScreen();
- assertEquals(1, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "0123\n" + "456.\n" + " ",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(2, 3);
- vt100.eraseToEndOfScreen();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "0123\n" + "4567\n" + "890 ",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(2, 5);
- vt100.eraseToEndOfScreen();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "0123\n" + "4567\n" + "890.",
- toMultiLineText(term));
- }
-
- public void testEraseToCursor() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- vt100.setDimensions(3, 4);
- String s = "aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "0123\n" + "4567\n" + "8901";
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.eraseToCursor();
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " 123\n" + "4567\n" + "8901",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 0);
- vt100.eraseToCursor();
- assertEquals(1, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " \n" + " 567\n" + "8901",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 1);
- vt100.eraseToCursor();
- assertEquals(1, vt100.getCursorLine());
- assertEquals(1, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " \n" + " 67\n" + "8901",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 4);
- vt100.eraseToCursor();
- assertEquals(1, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " \n" + " \n" + "8901",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 5);
- vt100.eraseToCursor();
- assertEquals(1, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " \n" + " \n" + "8901",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(2, 3);
- vt100.eraseToCursor();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " \n" + " \n" + " ",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(2, 5);
- vt100.eraseToCursor();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + " \n" + " \n" + " ",
- toMultiLineText(term));
- }
-
- public void testEraseAll() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- vt100.setDimensions(3, 4);
- fill(term, "0000\n" + "1111\n" + "2222\n" + "3333\n" + "4444\n" + "5555");
- vt100.eraseAll();
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + " \n" + " \n" + " ", toMultiLineText(term));
- }
-
- public void testEraseLine() {
- String s = "abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + "EFGHI";
-
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
-
- vt100.setDimensions(3, 5);
- fill(term, s);
- vt100.setCursor(0, 3);
- vt100.eraseLine();
- assertEquals(0, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + " \n" + "zABCD\n" + "EFGHI",
- toMultiLineText(term));
-
- vt100.setDimensions(3, 5);
- fill(term, s);
- vt100.setCursor(2, 3);
- vt100.eraseLine();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + " ",
- toMultiLineText(term));
- }
-
- public void testEraseLineToEnd() {
- String s = "abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + "EFGHI";
-
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
-
- vt100.setDimensions(3, 5);
- fill(term, s);
- vt100.setCursor(0, 3);
- vt100.eraseLineToEnd();
- assertEquals(0, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvw \n" + "zABCD\n" + "EFGHI",
- toMultiLineText(term));
-
- vt100.setDimensions(3, 5);
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.eraseLineToEnd();
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + " \n" + "zABCD\n" + "EFGHI",
- toMultiLineText(term));
-
- vt100.setDimensions(3, 5);
- fill(term, s);
- vt100.setCursor(2, 3);
- vt100.eraseLineToEnd();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + "EFG ",
- toMultiLineText(term));
- vt100.setDimensions(3, 5);
- fill(term, s);
-
- vt100.setCursor(2, 4);
- vt100.eraseLineToEnd();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(4, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + "EFGH ",
- toMultiLineText(term));
-
- vt100.setCursor(2, 5);
- vt100.eraseLineToEnd();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(4, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + "EFGH ",
- toMultiLineText(term));
-
- }
-
- public void testEraseLineToCursor() {
- String s = "abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + "EFGHI";
-
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
-
- vt100.setDimensions(3, 5);
- fill(term, s);
- vt100.setCursor(0, 3);
- vt100.eraseLineToCursor();
- assertEquals(0, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + " y\n" + "zABCD\n" + "EFGHI",
- toMultiLineText(term));
-
- vt100.setDimensions(3, 5);
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.eraseLineToCursor();
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + " vwxy\n" + "zABCD\n" + "EFGHI",
- toMultiLineText(term));
-
- vt100.setDimensions(3, 5);
- fill(term, s);
- vt100.setCursor(2, 3);
- vt100.eraseLineToCursor();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + " I",
- toMultiLineText(term));
- vt100.setDimensions(3, 5);
- fill(term, s);
-
- vt100.setCursor(2, 4);
- vt100.eraseLineToCursor();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(4, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + " ",
- toMultiLineText(term));
-
- vt100.setCursor(2, 5);
- vt100.eraseLineToCursor();
- assertEquals(2, vt100.getCursorLine());
- assertEquals(4, vt100.getCursorColumn());
- assertEqualsTerm("abcde\n" + "fghij\n" + "klmno\n" + "pqrst\n" + "uvwxy\n" + "zABCD\n" + " ",
- toMultiLineText(term));
-
- }
-
- public void testInsertLines() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- String s = "0000\n" + "1111\n" + "2222\n" + "3333\n" + "4444\n" + "5555";
- vt100.setDimensions(3, 4);
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.insertLines(1);
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + " \n" + "3333\n" + "4444", toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 0);
- vt100.insertLines(1);
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + "3333\n" + " \n" + "4444", toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 0);
- vt100.insertLines(2);
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + "3333\n" + " \n" + " ", toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 3);
- vt100.insertLines(2);
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + "3333\n" + " \n" + " ", toMultiLineText(term));
-
- vt100.setDimensions(6, 4);
- fill(term, s);
- vt100.setCursor(1, 3);
- vt100.insertLines(2);
- assertEqualsTerm("0000\n" + " \n" + " \n" + "1111\n" + "2222\n" + "3333", toMultiLineText(term));
-
- vt100.setDimensions(6, 4);
- fill(term, s);
- vt100.setCursor(1, 3);
- vt100.insertLines(7);
- assertEqualsTerm("0000\n" + " \n" + " \n" + " \n" + " \n" + " ", toMultiLineText(term));
-
- vt100.setDimensions(6, 4);
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.insertLines(7);
- assertEqualsTerm(" \n" + " \n" + " \n" + " \n" + " \n" + " ", toMultiLineText(term));
-
- vt100.setDimensions(6, 4);
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.insertLines(5);
- assertEqualsTerm(" \n" + " \n" + " \n" + " \n" + " \n" + "0000", toMultiLineText(term));
- }
-
- public void testDeleteCharacters() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- vt100.setDimensions(3, 4);
- String s = "aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "1234\n" + "4567\n" + "9012";
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.deleteCharacters(1);
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "234 \n" + "4567\n" + "9012",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 1);
- vt100.deleteCharacters(1);
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "1234\n" + "467 \n" + "9012",
- toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 1);
- vt100.deleteCharacters(2);
- assertEqualsTerm("aaaa\n" + "bbbb\n" + "cccc\n" + "dddd\n" + "eeee\n" + "ffff\n" + "1234\n" + "47 \n" + "9012",
- toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 0);
- vt100.deleteCharacters(10);
- assertEqualsTerm(" ", toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 0);
- vt100.deleteCharacters(14);
- assertEqualsTerm(" ", toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 3);
- vt100.deleteCharacters(0);
- assertEqualsTerm("0123456789", toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 3);
- vt100.deleteCharacters(2);
- assertEqualsTerm("01256789 ", toMultiLineText(term));
-
- vt100.setDimensions(1, 10);
- fill(term, "0123456789");
- vt100.setCursor(0, 3);
- vt100.deleteCharacters(14);
- assertEqualsTerm("012 ", toMultiLineText(term));
-
- }
-
- public void testDeleteLines() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- String s = "0000\n" + "1111\n" + "2222\n" + "3333\n" + "4444\n" + "5555";
- vt100.setDimensions(3, 4);
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.deleteLines(1);
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + "4444\n" + "5555\n" + " ", toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 0);
- vt100.deleteLines(1);
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + "3333\n" + "5555\n" + " ", toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 0);
- vt100.deleteLines(2);
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + "3333\n" + " \n" + " ", toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 3);
- vt100.deleteLines(2);
- assertEqualsTerm("0000\n" + "1111\n" + "2222\n" + "3333\n" + " \n" + " ", toMultiLineText(term));
-
- vt100.setDimensions(6, 4);
- fill(term, s);
- vt100.setCursor(1, 3);
- vt100.deleteLines(2);
- assertEqualsTerm("0000\n" + "3333\n" + "4444\n" + "5555\n" + " \n" + " ", toMultiLineText(term));
-
- vt100.setDimensions(6, 4);
- fill(term, s);
- vt100.setCursor(1, 3);
- vt100.deleteLines(7);
- assertEqualsTerm("0000\n" + " \n" + " \n" + " \n" + " \n" + " ", toMultiLineText(term));
-
- vt100.setDimensions(6, 4);
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.deleteLines(7);
- assertEqualsTerm(" \n" + " \n" + " \n" + " \n" + " \n" + " ", toMultiLineText(term));
-
- vt100.setDimensions(6, 4);
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.deleteLines(5);
- assertEqualsTerm("5555\n" + " \n" + " \n" + " \n" + " \n" + " ", toMultiLineText(term));
- }
-
- public void testGetDefaultStyle() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- TerminalStyle style = TerminalStyle.getStyle(WHITE, BLACK);
- vt100.setDefaultStyle(style);
- assertSame(style, vt100.getDefaultStyle());
- TerminalStyle style2 = style.setBold(true);
- vt100.setDefaultStyle(style2);
- assertSame(style2, vt100.getDefaultStyle());
- }
-
- public void testGetStyle() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- TerminalStyle style = TerminalStyle.getStyle(WHITE, BLACK);
- vt100.setStyle(style);
- assertSame(style, vt100.getStyle());
- TerminalStyle style2 = style.setBold(true);
- vt100.setStyle(style2);
- assertSame(style2, vt100.getStyle());
- }
-
- public void testAppendString() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(6);
- vt100.setDimensions(3, 4);
- vt100.setCursor(0, 0);
- assertEqualsTerm(" \n" + " \n" + " ", toMultiLineText(term));
- vt100.appendString("012");
- assertEqualsTerm("012 \n" + " \n" + " ", toMultiLineText(term));
- assertEquals(0, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- vt100.appendString("3");
- assertEqualsTerm("0123\n" + " \n" + " ", toMultiLineText(term));
- assertEquals(1, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
-
- vt100.appendString("567890");
- assertEqualsTerm("0123\n" + "5678\n" + "90 ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
-
- vt100.appendString("a");
- assertEqualsTerm("0123\n" + "5678\n" + "90a ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
-
- vt100.appendString("b");
- assertEqualsTerm("0123\n" + "5678\n" + "90ab\n" + " ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
-
- vt100.appendString("cd");
- assertEqualsTerm("0123\n" + "5678\n" + "90ab\n" + "cd ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
-
- vt100.appendString("efgh");
- assertEqualsTerm("0123\n" + "5678\n" + "90ab\n" + "cdef\n" + "gh ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
-
- vt100.appendString("ijklmnopqrstuvwx");
- assertEqualsTerm("cdef\n" + "ghij\n" + "klmn\n" + "opqr\n" + "stuv\n" + "wx ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
-
- vt100.setCursor(1, 1);
- vt100.appendString("123");
- assertEqualsTerm("cdef\n" + "ghij\n" + "klmn\n" + "opqr\n" + "s123\n" + "wx ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
-
- vt100.setCursor(1, 1);
- vt100.appendString("ABCDEFGHIJKL");
- assertEqualsTerm("klmn\n" + "opqr\n" + "sABC\n" + "DEFG\n" + "HIJK\n" + "L ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(1, vt100.getCursorColumn());
- }
-
- public void testProcessNewline() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- String s = "0000\n" + "1111\n" + "2222\n" + "3333\n" + "4444\n" + "5555";
- term.setMaxHeight(6);
- vt100.setDimensions(3, 4);
- vt100.setCursor(0, 0);
- fill(term, s);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.processNewline();
- assertEqualsTerm(s, toMultiLineText(term));
- assertEquals(1, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursorColumn(3);
- vt100.processNewline();
- assertEqualsTerm(s, toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
-
- vt100.processNewline();
- assertEqualsTerm("1111\n" + "2222\n" + "3333\n" + "4444\n" + "5555\n" + " ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
-
- vt100.processNewline();
- assertEqualsTerm("2222\n" + "3333\n" + "4444\n" + "5555\n" + " \n" + " ", toMultiLineText(term));
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- }
-
- public void testSetCursorLine() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(6);
- vt100.setDimensions(3, 4);
- // the cursor still at the beginning....
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursor(0, 2);
- vt100.setCursorLine(1);
- assertEquals(1, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
- vt100.setCursor(0, -2);
- vt100.setCursorLine(-1);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursor(0, 10);
- vt100.setCursorLine(10);
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- }
-
- public void testSetCursorAndSetDimensions() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(10);
- vt100.setDimensions(3, 4);
- // the cursor still at the beginning....
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setDimensions(6, 4);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursor(2, 3);
- vt100.setDimensions(8, 4);
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- }
-
- public void testSetCursorColumn() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(6);
- vt100.setDimensions(3, 4);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursor(1, 0);
- vt100.setCursorColumn(2);
- assertEquals(1, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
- vt100.setCursor(-1, -2);
- vt100.setCursorColumn(-2);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursor(10, 0);
- vt100.setCursorColumn(10);
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- }
-
- public void testSetCursor() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(6);
- vt100.setDimensions(3, 4);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursor(0, 0);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursor(1, 2);
- assertEquals(1, vt100.getCursorLine());
- assertEquals(2, vt100.getCursorColumn());
- vt100.setCursor(-1, -2);
- assertEquals(0, vt100.getCursorLine());
- assertEquals(0, vt100.getCursorColumn());
- vt100.setCursor(10, 10);
- assertEquals(2, vt100.getCursorLine());
- assertEquals(3, vt100.getCursorColumn());
- }
-
- public void testVT100LineWrappingOn() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(10);
- vt100.setDimensions(6, 4);
- vt100.setVT100LineWrapping(true);
- vt100.appendString("abcd");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("1234");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- assertEquals(2, vt100.getCursorLine());
- }
-
- public void testVT100LineWrappingOff() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(10);
- vt100.setDimensions(6, 4);
- vt100.setVT100LineWrapping(false);
- vt100.appendString("abcd");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("1234");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- assertEquals(4, vt100.getCursorLine());
- }
-
- public void testWrappedLines() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(10);
- vt100.setDimensions(6, 4);
- vt100.setVT100LineWrapping(true);
- vt100.appendString("abcd123");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("abc");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("1234abcd");
- assertEquals(4, vt100.getCursorLine());
- assertTrue(term.isWrappedLine(0));
- assertFalse(term.isWrappedLine(1));
- assertFalse(term.isWrappedLine(2));
- assertTrue(term.isWrappedLine(3));
- }
-
- public void testInsertMode() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(10);
- vt100.setDimensions(4, 6);
- // replace mode
- vt100.appendString("123");
- vt100.setCursorColumn(0);
- vt100.appendString("abc");
- assertEquals("abc", new String(term.getChars(0)));
- vt100.clearAll();
- // insert mode
- vt100.setCursorColumn(0);
- vt100.appendString("123");
- vt100.setCursorColumn(0);
- vt100.setInsertMode(true);
- vt100.appendString("abc");
- vt100.setInsertMode(false);
- assertEquals("abc123", new String(term.getChars(0)));
- }
-
- public void testScrollRegion() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- term.setMaxHeight(10);
- vt100.setDimensions(8, 6);
- vt100.appendString("123");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("456");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("789");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("abc");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("def");
- vt100.setCursorColumn(0);
- vt100.processNewline();
- vt100.appendString("ghi");
-
- // test scroll within region
- vt100.setCursorLine(1);
- vt100.setScrollRegion(1, 4);
- vt100.scrollUp(1);
- assertEquals("123", new String(term.getChars(0)));
- assertEquals("789", new String(term.getChars(1)));
- assertEquals("abc", new String(term.getChars(2)));
- assertEquals("def", new String(term.getChars(3)));
- assertNull(term.getChars(4));
- assertEquals("ghi", new String(term.getChars(5)));
- vt100.scrollDown(1);
- assertEquals("123", new String(term.getChars(0)));
- assertNull(term.getChars(1));
- assertEquals("789", new String(term.getChars(2)));
- assertEquals("abc", new String(term.getChars(3)));
- assertEquals("def", new String(term.getChars(4)));
- assertEquals("ghi", new String(term.getChars(5)));
-
- // test scroll without region
- vt100.setScrollRegion(-1, -1);
- vt100.scrollDown(1);
- assertNull(term.getChars(0));
- assertEquals("123", new String(term.getChars(1)));
- assertNull(term.getChars(2));
- assertEquals("789", new String(term.getChars(3)));
- assertEquals("abc", new String(term.getChars(4)));
- assertEquals("def", new String(term.getChars(5)));
- assertEquals("ghi", new String(term.getChars(6)));
- vt100.scrollUp(1);
- assertEquals("123", new String(term.getChars(0)));
- assertNull(term.getChars(1));
- assertEquals("789", new String(term.getChars(2)));
- assertEquals("abc", new String(term.getChars(3)));
- assertEquals("def", new String(term.getChars(4)));
- assertEquals("ghi", new String(term.getChars(5)));
-
- // test scroll by newline
- vt100.setScrollRegion(1, 4);
- vt100.setCursorLine(4);
- vt100.processNewline();
- assertEquals("123", new String(term.getChars(0)));
- assertEquals("789", new String(term.getChars(1)));
- assertEquals("abc", new String(term.getChars(2)));
- assertEquals("def", new String(term.getChars(3)));
- assertNull(term.getChars(4));
- assertEquals("ghi", new String(term.getChars(5)));
- }
-
- public void testEraseCharacters() {
- ITerminalTextData term = makeITerminalTextData();
- IVT100EmulatorBackend vt100 = makeBakend(term);
- vt100.setDimensions(4, 4);
- String s = "aaaa\n" + "bcde\n" + "1234\n" + "5678";
- fill(term, s);
- vt100.setCursor(0, 0);
- vt100.eraseCharacters(1);
- assertEqualsTerm(" aaa\n" + "bcde\n" + "1234\n" + "5678", toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(1, 0);
- vt100.eraseCharacters(1);
- assertEqualsTerm("aaaa\n" + " cde\n" + "1234\n" + "5678", toMultiLineText(term));
-
- fill(term, s);
- vt100.setCursor(2, 1);
- vt100.eraseCharacters(2);
- assertEqualsTerm("aaaa\n" + "bcde\n" + "1 4\n" + "5678", toMultiLineText(term));
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorTest.java
deleted file mode 100644
index 66aa5941f0c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/emulator/VT100EmulatorTest.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 Kichwa Coders Canada Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.emulator;
-
-import static org.junit.jupiter.api.Assertions.assertAll;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringJoiner;
-
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.TerminalTextDataFactory;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-public class VT100EmulatorTest {
-
- private static final int WINDOW_COLUMNS = 80;
- private static final int WINDOW_LINES = 24;
- private static final String CLEAR_CURSOR_TO_EOL = "\033[K";
- private static final String CURSOR_POSITION_TOP_LEFT = "\033[H";
- private static final String CLEAR_ENTIRE_SCREEN_AND_SCROLLBACK = "\033[3J";
- private static final String CLEAR_ENTIRE_SCREEN = "\033[2J";
- private static final String SCROLL_REVERSE = "\033M";
-
- private static String TITLE_ST_BEL(String title) {
- return "\033]0;" + title + "\007";
- }
-
- private static String TITLE_ST_ESC_BACKSLASH(String title) {
- return "\033]0;" + title + "\033\\";
- }
-
- private static String TITLE(String title) {
- return TITLE_ST_BEL(title);
- }
-
- private static String SCROLL_REGION(int startRow, int endRow) {
- return "\033[" + startRow + ";" + endRow + "r";
- }
-
- /**
- * Set the cursor position to line/column. Note that this is the logical
- * line and column, so 1, 1 is the top left.
- */
- private static String CURSOR_POSITION(int line, int column) {
- return "\033[" + line + ";" + column + "H";
- }
-
- @BeforeAll
- public static void beforeAll() {
- Logger.setUnderTest(true);
- }
-
- @AfterAll
- public static void afterAll() {
- Logger.setUnderTest(false);
- }
-
- private ITerminalTextData data;
-
- private MockTerminalControlForText control = new MockTerminalControlForText();
-
- private VT100Emulator emulator;
-
- @BeforeEach
- public void before() {
- data = TerminalTextDataFactory.makeTerminalTextData();
- emulator = new VT100Emulator(data, control, null);
- emulator.resetState();
- emulator.setDimensions(WINDOW_LINES, WINDOW_COLUMNS);
- }
-
- private Reader input(String... input) {
- StringReader reader = new StringReader(String.join("", input));
- emulator.setInputStreamReader(reader);
- return reader;
- }
-
- private void run(String... input) {
- Reader reader = input(input);
- emulator.processText();
- try {
- assertEquals(-1, reader.read());
- } catch (IOException e) {
- throw new RuntimeException("Wrap exception so that run can be called in functions", e);
- }
- }
-
- /**
- * Convert the data's char arrays into a string that can be compared with
- * an expected array of lines. Each line in the data has its \0 characters
- * changed to spaces and then stripTrailing is run.
- *
- * @param expectedArray lines that are joined with \n before testing against actual
- */
- private void assertTextEquals(String... expectedArray) {
- int height = data.getHeight();
- StringJoiner sj = new StringJoiner("\n");
- for (int i = 0; i < height; i++) {
- char[] chars = data.getChars(i);
- String line = chars == null ? "" : new String(chars);
- String lineCleanedup = line.replace('\0', ' ');
- String stripTrailing = lineCleanedup.stripTrailing();
- sj.add(stripTrailing);
- }
- String expected = String.join("\n", expectedArray).stripTrailing();
- String actual = sj.toString().stripTrailing();
- assertEquals(expected, actual);
- }
-
- private void assertTextEquals(List expected) {
- assertTextEquals(expected.toArray(String[]::new));
- }
-
- private void assertCursorLocation(int line, int column) {
- assertAll(() -> assertEquals(line, data.getCursorLine(), "cursor line"),
- () -> assertEquals(column, data.getCursorColumn(), "cursor column"));
- }
-
- /**
- * This tests the test harness ({@link #assertTextEquals(String...)} as much as the code.
- */
- @Test
- public void testBasicOperaiion() {
- assertAll(() -> assertCursorLocation(0, 0), () -> assertTextEquals(""));
- run("Hello");
- assertAll(() -> assertCursorLocation(0, 5), () -> assertTextEquals("Hello"));
- emulator.clearTerminal();
- assertAll(() -> assertCursorLocation(0, 0), () -> assertTextEquals(""));
-
- // test multiline
- emulator.clearTerminal();
- run("Hello 1\r\nHello 2");
- // test both ways of asserting multiple lines
- assertAll(() -> assertCursorLocation(1, 7), //
- () -> assertTextEquals("Hello 1\nHello 2"), //
- () -> assertTextEquals("Hello 1", "Hello 2"));
-
- // test with no carriage return
- emulator.clearTerminal();
- run("Hello 1\nHello 2");
- assertTextEquals("Hello 1", " Hello 2");
-
- // test \b backspace
- emulator.clearTerminal();
- run("Hello 1");
- assertAll(() -> assertCursorLocation(0, 7), () -> assertTextEquals("Hello 1"));
- run("\b\b");
- assertAll(() -> assertCursorLocation(0, 5), () -> assertTextEquals("Hello 1"));
- run(CLEAR_CURSOR_TO_EOL);
- assertAll(() -> assertCursorLocation(0, 5), () -> assertTextEquals("Hello"));
- }
-
- @Test
- public void testMultiline() {
- List expected = new ArrayList<>();
- for (int i = 0; i < data.getHeight(); i++) {
- String line = "Hello " + i;
- expected.add(line);
- run(line);
- if (i != data.getHeight() - 1) {
- run("\r\n");
- }
- }
- assertTextEquals(expected);
-
- // add the final newline and check that the first line has been scrolled away
- run("\r\n");
- expected.remove(0);
- assertTextEquals(expected);
- }
-
- @Test
- public void testScrollBack() {
- data.setMaxHeight(1000);
- List expected = new ArrayList<>();
- for (int i = 0; i < 1000; i++) {
- String line = "Hello " + i;
- run(line + "\r\n");
- expected.add(line);
- }
- expected.remove(0);
- assertTextEquals(expected);
- }
-
- @Test
- public void testCursorPosition() {
- run(CURSOR_POSITION_TOP_LEFT);
- assertAll(() -> assertCursorLocation(0, 0), () -> assertTextEquals(""));
- run("Hello");
- assertAll(() -> assertCursorLocation(0, 5), () -> assertTextEquals("Hello"));
- run(CURSOR_POSITION_TOP_LEFT);
- assertAll(() -> assertCursorLocation(0, 0), () -> assertTextEquals("Hello"));
- run(CURSOR_POSITION(2, 2));
- assertAll(() -> assertCursorLocation(1, 1), () -> assertTextEquals("Hello"));
- emulator.clearTerminal();
-
- data.setMaxHeight(1000);
- List expected = new ArrayList<>();
- for (int i = 0; i < WINDOW_LINES; i++) {
- String line = "Hello " + i;
- run(line + "\r\n");
- expected.add(line);
- }
- assertAll(() -> assertCursorLocation(WINDOW_LINES, 0), () -> assertTextEquals(expected));
- run(CURSOR_POSITION_TOP_LEFT);
- // because we added WINDOW_LINES number of lines, and ended it with a \r\n the first
- // line we added is now in the scrollback, so the cursor is at line 1
- assertAll(() -> assertCursorLocation(1, 0), () -> assertTextEquals(expected));
- run("Bye \r\n");
- expected.set(1, "Bye");
- assertAll(() -> assertCursorLocation(2, 0), () -> assertTextEquals(expected));
- run(CURSOR_POSITION_TOP_LEFT);
- assertAll(() -> assertCursorLocation(1, 0), () -> assertTextEquals(expected));
- run(CURSOR_POSITION(2, 2));
- assertAll(() -> assertCursorLocation(2, 1), () -> assertTextEquals(expected));
- }
-
- @Test
- public void testTitle() {
- run( //
- TITLE("TITLE1"), //
- "HELLO", //
- TITLE("TITLE2"));
- assertAll(() -> assertTextEquals("HELLO"),
- () -> assertEquals(List.of("TITLE1", "TITLE2"), control.getAllTitles()));
- }
-
- @Test
- public void testE3ClearScreenAndScrollback() {
- data.setMaxHeight(1000);
- List expected = new ArrayList<>();
- for (int i = 0; i < 1000; i++) {
- String line = "Hello " + i;
- run(line + "\r\n");
- expected.add(line);
- }
- expected.remove(0);
- assertAll(() -> assertCursorLocation(999, 0), () -> assertTextEquals(expected));
- run(CLEAR_ENTIRE_SCREEN_AND_SCROLLBACK);
- assertAll(() -> assertTextEquals(""));
- }
-
- /**
- * Runs what "clear" command does on modern Linux installs, including E3 extension
- */
- @Test
- public void testClear() {
- data.setMaxHeight(1000);
- List expected = new ArrayList<>();
- for (int i = 0; i < 1000; i++) {
- String line = "Hello " + i;
- run(line + "\r\n");
- expected.add(line);
- }
- expected.remove(0);
- assertAll(() -> assertCursorLocation(999, 0), () -> assertTextEquals(expected));
- run(CURSOR_POSITION_TOP_LEFT + CLEAR_ENTIRE_SCREEN + CLEAR_ENTIRE_SCREEN_AND_SCROLLBACK);
- assertAll(() -> assertCursorLocation(0, 0), () -> assertTextEquals(""));
- }
-
- /**
- * Runs what "up arrow" would send back to terminal in less/man/etc.
- */
- @Test
- public void testScrollReverseNoScrollback() {
- List expected = new ArrayList<>();
- for (int i = 0; i < WINDOW_LINES; i++) {
- String line = "Hello " + i;
- run(line);
- expected.add(line);
- if (i != data.getHeight() - 1) {
- run("\r\n");
- }
- }
- assertAll(() -> assertCursorLocation(WINDOW_LINES - 1, expected.get(expected.size() - 1).length()),
- () -> assertTextEquals(expected));
- run(CURSOR_POSITION_TOP_LEFT);
- assertAll(() -> assertCursorLocation(0, 0), () -> assertTextEquals(expected));
- run(SCROLL_REVERSE);
- expected.add(0, "");
- expected.remove(expected.size() - 1);
- assertAll(() -> assertCursorLocation(0, 0), () -> assertTextEquals(expected));
- }
-
- /**
- * Runs what "up arrow" would send back to terminal in less/man/etc.
- */
- @Test
- public void testScrollReverse() {
- data.setMaxHeight(1000);
- List expected = new ArrayList<>();
- for (int i = 0; i < WINDOW_LINES; i++) {
- String line = "Hello " + i;
- run(line);
- expected.add(line);
- run("\r\n");
- }
- assertAll(() -> assertCursorLocation(WINDOW_LINES, 0), () -> assertTextEquals(expected));
- run(CURSOR_POSITION_TOP_LEFT);
- assertAll(() -> assertCursorLocation(1, 0), () -> assertTextEquals(expected));
- run(SCROLL_REVERSE);
- expected.add(1, "");
- assertAll(() -> assertCursorLocation(1, 0), () -> assertTextEquals(expected));
- run("New text on top line following scroll reverse");
- expected.set(1, "New text on top line following scroll reverse");
- assertAll(() -> assertCursorLocation(1, expected.get(1).length()), () -> assertTextEquals(expected));
- }
-
- /**
- * Runs what "up arrow" would send back to terminal in less/man/etc.
- * but with a scrolling region set
- */
- @Test
- public void testScrollReverseScrollingRegion() {
- data.setMaxHeight(1000);
- List expected = new ArrayList<>();
- for (int i = 0; i < WINDOW_LINES; i++) {
- String line = "Hello " + i;
- run(line);
- expected.add(line);
- run("\r\n");
- }
- assertAll(() -> assertCursorLocation(WINDOW_LINES, 0), () -> assertTextEquals(expected));
- run(CURSOR_POSITION_TOP_LEFT + "\n");
- assertAll(() -> assertCursorLocation(2, 0), () -> assertTextEquals(expected));
- run(SCROLL_REGION(2, WINDOW_LINES));
- run(SCROLL_REVERSE);
- expected.add(2, "");
- assertAll(() -> assertCursorLocation(2, 0), () -> assertTextEquals(expected));
- run("New text on top line following scroll reverse");
- expected.set(2, "New text on top line following scroll reverse");
- assertAll(() -> assertCursorLocation(2, expected.get(2).length()), () -> assertTextEquals(expected));
- }
-
- @Test
- public void testStringTerminator() {
- run( //
- TITLE_ST_BEL("TITLE1"), //
- "HELLO1", //
- TITLE_ST_ESC_BACKSLASH("TITLE2"), //
- "HELLO2", //
- TITLE_ST_BEL("TITLE3"), //
- "HELLO3", //
- TITLE_ST_ESC_BACKSLASH("TITLE4") //
- );
- assertAll(() -> assertTextEquals("HELLO1HELLO2HELLO3"),
- () -> assertEquals(List.of("TITLE1", "TITLE2", "TITLE3", "TITLE4"), control.getAllTitles()));
- }
-
- @Test
- public void testMalformedStringTerminator() {
- run( //
- TITLE_ST_ESC_BACKSLASH("TITLE1"), //
- "\033]0;" + "TITLE1" + "\033X", //
- TITLE_ST_ESC_BACKSLASH("TITLE2"), //
- "HELLO" //
- );
- assertAll(() -> assertTextEquals("HELLO"),
- () -> assertEquals(List.of("TITLE1", "TITLE2"), control.getAllTitles()));
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/AbstractITerminalTextDataTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/AbstractITerminalTextDataTest.java
deleted file mode 100644
index ac7399229d3..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/AbstractITerminalTextDataTest.java
+++ /dev/null
@@ -1,713 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Anton Leherbauer (Wind River) - [453393] Add support for copying wrapped lines without line break
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-import junit.framework.TestCase;
-
-abstract public class AbstractITerminalTextDataTest extends TestCase {
- abstract protected ITerminalTextData makeITerminalTextData();
-
- @Override
- protected void setUp() throws Exception {
- try {
- assert false;
- throw new Error("No Assertions! Run this code with assertions enabled! (vmargs: -ea)");
- } catch (AssertionError e) {
- // OK, assertions are enabled!
- }
- super.setUp();
- }
-
- protected String toSimple(ITerminalTextData term) {
- return TerminalTextTestHelper.toSimple(term);
- }
-
- protected String toMultiLineText(ITerminalTextDataReadOnly term) {
- return TerminalTextTestHelper.toMultiLineText(term);
- }
-
- protected void fill(ITerminalTextData term, String s) {
- TerminalTextTestHelper.fill(term, s);
- }
-
- protected void fill(ITerminalTextData term, int i, int j, String s) {
- TerminalTextTestHelper.fill(term, i, j, s);
- }
-
- protected void fillSimple(ITerminalTextData term, String s) {
- TerminalTextTestHelper.fillSimple(term, s);
- }
-
- /**
- * Used for multi line text
- * @param expected
- * @param actual
- */
- protected void assertEqualsTerm(String expected, String actual) {
- assertEquals(expected, actual);
- }
-
- /**
- * Used for simple text
- * @param expected
- * @param actual
- */
- protected void assertEqualsSimple(String expected, String actual) {
- assertEquals(-1, actual.indexOf('\n'));
- assertEquals(expected, actual);
- }
-
- public void testGetWidth() {
- ITerminalTextData term = makeITerminalTextData();
- assertEquals(0, term.getWidth());
- term.setDimensions(term.getHeight(), 10);
- assertEquals(10, term.getWidth());
- term.setDimensions(term.getHeight(), 0);
- assertEquals(0, term.getWidth());
- }
-
- public void testAddLine() {
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- ITerminalTextData term = makeITerminalTextData();
- fill(term, s);
- term.setMaxHeight(5);
- term.addLine();
- assertEqualsTerm("222\n" + "333\n" + "444\n" + "555\n" + "\000\000\000", toMultiLineText(term));
- }
-
- public void testCleanLine() {
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- ITerminalTextData term = makeITerminalTextData();
- fill(term, s);
- term.cleanLine(0);
- assertEqualsTerm("\000\000\000\n" + "222\n" + "333\n" + "444\n" + "555", toMultiLineText(term));
-
- fill(term, s);
- term.cleanLine(4);
- assertEqualsTerm("111\n" + "222\n" + "333\n" + "444\n" + "\000\000\000", toMultiLineText(term));
- }
-
- public void testMaxSize() {
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- ITerminalTextData term = makeITerminalTextData();
- term.setMaxHeight(8);
- fill(term, s);
- assertEquals(5, term.getHeight());
- assertEquals(8, term.getMaxHeight());
- term.addLine();
- assertEquals(6, term.getHeight());
- assertEqualsTerm("111\n" + "222\n" + "333\n" + "444\n" + "555\n" + "\000\000\000", toMultiLineText(term));
- term.addLine();
- assertEquals(7, term.getHeight());
- assertEqualsTerm("111\n" + "222\n" + "333\n" + "444\n" + "555\n" + "\000\000\000\n" + "\000\000\000",
- toMultiLineText(term));
- term.addLine();
- assertEquals(8, term.getHeight());
- assertEqualsTerm(
- "111\n" + "222\n" + "333\n" + "444\n" + "555\n" + "\000\000\000\n" + "\000\000\000\n" + "\000\000\000",
- toMultiLineText(term));
- term.addLine();
- assertEquals(8, term.getHeight());
- assertEqualsTerm("222\n" + "333\n" + "444\n" + "555\n" + "\000\000\000\n" + "\000\000\000\n" + "\000\000\000\n"
- + "\000\000\000", toMultiLineText(term));
- term.addLine();
- assertEquals(8, term.getHeight());
- assertEqualsTerm("333\n" + "444\n" + "555\n" + "\000\000\000\n" + "\000\000\000\n" + "\000\000\000\n"
- + "\000\000\000\n" + "\000\000\000", toMultiLineText(term));
- }
-
- public void testGetHeight() {
- ITerminalTextData term = makeITerminalTextData();
- assertEquals(0, term.getHeight());
- term.setDimensions(10, term.getWidth());
- assertEquals(10, term.getHeight());
- term.setDimensions(0, term.getWidth());
- assertEquals(0, term.getHeight());
- }
-
- public void testSetDimensions() {
- ITerminalTextData term = makeITerminalTextData();
- assertEquals(0, term.getHeight());
- term.setDimensions(10, 5);
- assertEquals(5, term.getWidth());
- assertEquals(10, term.getHeight());
- term.setDimensions(5, 10);
- assertEquals(10, term.getWidth());
- assertEquals(5, term.getHeight());
- term.setDimensions(15, 0);
- assertEquals(0, term.getWidth());
- assertEquals(15, term.getHeight());
- term.setDimensions(0, 12);
- assertEquals(12, term.getWidth());
- assertEquals(0, term.getHeight());
- term.setDimensions(0, 0);
- assertEquals(0, term.getWidth());
- assertEquals(0, term.getHeight());
- }
-
- public void testResize() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(3, 5);
- String s = "12345\n" + "abcde\n" + "ABCDE";
- fill(term, 0, 0, s);
- assertEqualsTerm(s, toMultiLineText(term));
- term.setDimensions(3, 4);
- assertEqualsTerm("1234\n" + "abcd\n" + "ABCD", toMultiLineText(term));
- // the columns should be restored
- term.setDimensions(3, 5);
- assertEqualsTerm("12345\n" + "abcde\n" + "ABCDE", toMultiLineText(term));
- term.setDimensions(3, 6);
- assertEqualsTerm("12345\000\n" + "abcde\000\n" + "ABCDE\000", toMultiLineText(term));
- term.setChar(0, 5, 'x', null);
- term.setChar(1, 5, 'y', null);
- term.setChar(2, 5, 'z', null);
- assertEqualsTerm("12345x\n" + "abcdey\n" + "ABCDEz", toMultiLineText(term));
- term.setDimensions(2, 4);
- assertEqualsTerm("1234\n" + "abcd", toMultiLineText(term));
- }
-
- public void testResizeFailure() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(3, 5);
- String s = "12345\n" + "abcde\n" + "ABCDE";
- fill(term, 0, 0, s);
- assertEqualsTerm(s, toMultiLineText(term));
- try {
- term.setDimensions(-3, 4);
- fail();
- } catch (RuntimeException e) {
- // OK
- }
- // assertEquals(5, term.getWidth());
- // assertEquals(3, term.getHeight());
- // assertEquals(s, toSimpleText(term));
- }
-
- public void testGetLineSegments() {
- TerminalStyle s1 = getDefaultStyle();
- TerminalStyle s2 = s1.setBold(true);
- TerminalStyle s3 = s1.setUnderline(true);
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(8, 8);
- LineSegment[] segments;
-
- term.setChars(0, 0, "0123".toCharArray(), s1);
- term.setChars(0, 4, "abcd".toCharArray(), null);
- segments = term.getLineSegments(0, 0, term.getWidth());
- assertEquals(2, segments.length);
- assertSegment(0, "0123", s1, segments[0]);
- assertSegment(4, "abcd", null, segments[1]);
-
- segments = term.getLineSegments(0, 4, term.getWidth() - 4);
- assertEquals(1, segments.length);
- assertSegment(4, "abcd", null, segments[0]);
-
- segments = term.getLineSegments(0, 3, 2);
- assertEquals(2, segments.length);
- assertSegment(3, "3", s1, segments[0]);
- assertSegment(4, "a", null, segments[1]);
-
- segments = term.getLineSegments(0, 7, 1);
- assertEquals(1, segments.length);
- assertSegment(7, "d", null, segments[0]);
-
- segments = term.getLineSegments(0, 0, 1);
- assertEquals(1, segments.length);
- assertSegment(0, "0", s1, segments[0]);
-
- // line 1
- term.setChars(1, 0, "x".toCharArray(), s1);
- term.setChars(1, 1, "y".toCharArray(), s2);
- term.setChars(1, 2, "z".toCharArray(), s3);
-
- segments = term.getLineSegments(1, 0, term.getWidth());
- assertEquals(4, segments.length);
- assertSegment(0, "x", s1, segments[0]);
- assertSegment(1, "y", s2, segments[1]);
- assertSegment(2, "z", s3, segments[2]);
- assertSegment(3, "\000\000\000\000\000", null, segments[3]);
-
- // line 2
- term.setChars(2, 4, "klm".toCharArray(), s1);
- segments = term.getLineSegments(2, 0, term.getWidth());
- assertEquals(3, segments.length);
- assertSegment(0, "\000\000\000\000", null, segments[0]);
- assertSegment(4, "klm", s1, segments[1]);
- assertSegment(7, "\000", null, segments[2]);
-
- // line 3
- segments = term.getLineSegments(3, 0, term.getWidth());
- assertEquals(1, segments.length);
- assertSegment(0, "\000\000\000\000\000\000\000\000", null, segments[0]);
-
- }
-
- public void testGetLineSegmentsNull() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(8, 8);
- LineSegment[] segments = term.getLineSegments(0, 0, term.getWidth());
- assertEquals(1, segments.length);
- }
-
- public void testGetLineSegmentsOutOfBounds() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(1, 8);
- term.setChars(0, 0, "xx".toCharArray(), null);
- LineSegment[] segments = term.getLineSegments(0, 5, 2);
- assertEquals(1, segments.length);
-
- }
-
- void assertSegment(int col, String text, TerminalStyle style, LineSegment segment) {
- assertEquals(col, segment.getColumn());
- assertEqualsTerm(text, segment.getText());
- assertEquals(style, segment.getStyle());
-
- }
-
- public void testGetChar() {
- String s = "12345\n" + "abcde\n" + "ABCDE";
- ITerminalTextData term = makeITerminalTextData();
- fill(term, s);
- assertEquals('1', term.getChar(0, 0));
- assertEquals('2', term.getChar(0, 1));
- assertEquals('3', term.getChar(0, 2));
- assertEquals('4', term.getChar(0, 3));
- assertEquals('5', term.getChar(0, 4));
- assertEquals('a', term.getChar(1, 0));
- assertEquals('b', term.getChar(1, 1));
- assertEquals('c', term.getChar(1, 2));
- assertEquals('d', term.getChar(1, 3));
- assertEquals('e', term.getChar(1, 4));
- assertEquals('A', term.getChar(2, 0));
- assertEquals('B', term.getChar(2, 1));
- assertEquals('C', term.getChar(2, 2));
- assertEquals('D', term.getChar(2, 3));
- assertEquals('E', term.getChar(2, 4));
- try {
- term.getChar(0, -1);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- term.getChar(-1, -1);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- term.getChar(-1, 0);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- term.getChar(0, 5);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- term.getChar(3, 5);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- term.getChar(3, 0);
- fail();
- } catch (RuntimeException e) {
- }
- }
-
- public void testGetStyle() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalStyle style = getDefaultStyle();
- term.setDimensions(6, 3);
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = (char) ('a' + column + line);
- term.setChar(line, column, c, style.setForeground(c));
- }
- }
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = (char) ('a' + column + line);
- assertSame(style.setForeground(c), term.getStyle(line, column));
- }
- }
-
- }
-
- protected TerminalStyle getDefaultStyle() {
- return TerminalStyle.getDefaultStyle();
- }
-
- public void testSetChar() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(6, 3);
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- term.setChar(line, column, (char) ('a' + column + line), null);
- }
- }
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = (char) ('a' + column + line);
- assertEquals(c, term.getChar(line, column));
- }
- }
- assertEqualsTerm("abc\n" + "bcd\n" + "cde\n" + "def\n" + "efg\n" + "fgh", toMultiLineText(term));
- }
-
- public void testSetChars() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(6, 3);
- for (int line = 0; line < term.getHeight(); line++) {
- char[] chars = new char[term.getWidth()];
- for (int column = 0; column < term.getWidth(); column++) {
- chars[column] = (char) ('a' + column + line);
- }
- term.setChars(line, 0, chars, null);
- }
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = (char) ('a' + column + line);
- assertEquals(c, term.getChar(line, column));
- }
- }
- assertEqualsTerm("abc\n" + "bcd\n" + "cde\n" + "def\n" + "efg\n" + "fgh", toMultiLineText(term));
-
- term.setChars(3, 1, new char[] { '1', '2' }, null);
- assertEqualsTerm("abc\n" + "bcd\n" + "cde\n" + "d12\n" + "efg\n" + "fgh", toMultiLineText(term));
- try {
- // check if we cannot exceed the range
- term.setChars(4, 1, new char[] { '1', '2', '3', '4', '5' }, null);
- fail();
- } catch (RuntimeException e) {
- }
-
- }
-
- public void testSetCharsLen() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "ZYXWVU\n" + "abcdef\n" + "ABCDEF";
- fill(term, s);
- char[] chars = new char[] { '1', '2', '3', '4', '5', '6', '7', '8' };
- term.setChars(1, 0, chars, 0, 6, null);
- assertEqualsTerm("ZYXWVU\n" + "123456\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- term.setChars(1, 0, chars, 0, 5, null);
- assertEqualsTerm("ZYXWVU\n" + "12345f\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- term.setChars(1, 0, chars, 1, 5, null);
- assertEqualsTerm("ZYXWVU\n" + "23456f\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- term.setChars(1, 1, chars, 1, 4, null);
- assertEqualsTerm("ZYXWVU\n" + "a2345f\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- term.setChars(1, 2, chars, 3, 4, null);
- assertEqualsTerm("ZYXWVU\n" + "ab4567\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- try {
- term.setChars(1, 0, chars, 7, 10, null);
- fail();
- } catch (RuntimeException e) {
- }
- fill(term, s);
- try {
- term.setChars(1, -1, chars, 0, 2, null);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- term.setChars(-1, 1, chars, 0, 2, null);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- term.setChars(1, 10, chars, 0, 2, null);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- term.setChars(10, 1, chars, 0, 2, null);
- fail();
- } catch (RuntimeException e) {
- }
- // assertEquals(s, toSimpleText(term));
- }
-
- public void testSetCopyInto() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(3, 5);
- String s = "12345\n" + "abcde\n" + "ABCDE";
- fill(term, 0, 0, s);
- ITerminalTextData termCopy = makeITerminalTextData();
- termCopy.copy(term);
- assertEqualsTerm(s, toMultiLineText(termCopy));
- assertEqualsTerm(s, toMultiLineText(term));
-
- termCopy.setChar(1, 1, 'X', null);
- assertEqualsTerm(s, toMultiLineText(term));
- term.setDimensions(2, 4);
- assertEquals(5, termCopy.getWidth());
- assertEquals(3, termCopy.getHeight());
-
- assertEqualsTerm("12345\n" + "aXcde\n" + "ABCDE", toMultiLineText(termCopy));
-
- assertEquals(4, term.getWidth());
- assertEquals(2, term.getHeight());
- }
-
- public void testSetCopyLines() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "012345";
- fillSimple(term, s);
- ITerminalTextData termCopy = makeITerminalTextData();
- String sCopy = "abcde";
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 0, 0);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple(sCopy, toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 0, 5);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("01234", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 0, 2);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("01cde", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 1, 2);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("a01de", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 1, 1, 2);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("a12de", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 1, 1, 4);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("a1234", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 2, 1, 4);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("a2345", toSimple(termCopy));
-
- try {
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 1, 1, 5);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 0, 6);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 7, 0, 1);
- fail();
- } catch (RuntimeException e) {
- }
- try {
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 7, 1);
- fail();
- } catch (RuntimeException e) {
- }
- }
-
- public void testCopyLine() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- fill(term, s);
- ITerminalTextData dest = makeITerminalTextData();
- String sCopy = "aaa\n" + "bbb\n" + "ccc\n" + "ddd\n" + "eee";
- fill(dest, sCopy);
- copySelective(dest, term, 0, 0, new boolean[] { true, true, false, false, true });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm("111\n" + "222\n" + "ccc\n" + "ddd\n" + "555", toMultiLineText(dest));
-
- fill(dest, sCopy);
- copySelective(dest, term, 0, 0, new boolean[] { true, true, true, true, true });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm(s, toMultiLineText(dest));
-
- fill(dest, sCopy);
- copySelective(dest, term, 0, 0, new boolean[] { false, false, false, false, false });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm(sCopy, toMultiLineText(dest));
- }
-
- protected void copySelective(ITerminalTextData dest, ITerminalTextData source, int sourceStartLine,
- int destStartLine, boolean[] linesToCopy) {
- for (int i = 0; i < linesToCopy.length; i++) {
- if (linesToCopy[i]) {
- dest.copyLine(source, i + sourceStartLine, i + destStartLine);
- }
- }
- }
-
- public void testCopyLineWithOffset() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- fill(term, s);
- ITerminalTextData dest = makeITerminalTextData();
- String sCopy = "aaa\n" + "bbb\n" + "ccc\n" + "ddd\n" + "eee";
- fill(dest, sCopy);
- copySelective(dest, term, 1, 0, new boolean[] { true, false, false, true });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm("222\n" + "bbb\n" + "ccc\n" + "555\n" + "eee", toMultiLineText(dest));
-
- fill(dest, sCopy);
- copySelective(dest, term, 2, 0, new boolean[] { true, true });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm("333\n" + "444\n" + "ccc\n" + "ddd\n" + "eee", toMultiLineText(dest));
-
- fill(dest, sCopy);
- copySelective(dest, term, 0, 0, new boolean[] { true, true, true, true, true });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm(s, toMultiLineText(dest));
-
- fill(dest, sCopy);
- copySelective(dest, term, 0, 0, new boolean[] { false, false, false, false, false });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm(sCopy, toMultiLineText(dest));
- }
-
- public void testScrollNoop() {
- scrollTest(0, 0, 0, "012345", "012345");
- scrollTest(0, 1, 0, "012345", "012345");
- scrollTest(0, 6, 0, "012345", "012345");
- }
-
- public void testScrollAll() {
- scrollTest(0, 6, 1, "012345", " 01234");
- scrollTest(0, 6, -1, "012345", "12345 ");
- scrollTest(0, 6, 2, "012345", " 0123");
- scrollTest(0, 6, -2, "012345", "2345 ");
- }
-
- public void testScrollNegative() {
- scrollTest(0, 2, -1, "012345", "1 2345");
- scrollTest(0, 1, -1, "012345", " 12345");
- scrollTest(0, 6, -1, "012345", "12345 ");
- scrollTest(0, 6, -6, "012345", " ");
- scrollTest(0, 6, -7, "012345", " ");
- scrollTest(0, 6, -8, "012345", " ");
- scrollTest(0, 6, -2, "012345", "2345 ");
- scrollTest(1, 1, -1, "012345", "0 2345");
- scrollTest(1, 1, -1, "012345", "0 2345");
- scrollTest(1, 2, -1, "012345", "02 345");
- scrollTest(5, 1, -1, "012345", "01234 ");
- scrollTest(5, 1, -1, "012345", "01234 ");
- }
-
- public void testScrollNegative2() {
- scrollTest(0, 2, -1, " 23 ", " 23 ");
- scrollTest(0, 1, -1, " 23 ", " 23 ");
- scrollTest(0, 6, -1, " 23 ", " 23 ");
- scrollTest(0, 6, -6, " 23 ", " ");
- scrollTest(0, 6, -7, " 23 ", " ");
- scrollTest(0, 6, -8, " 23 ", " ");
- scrollTest(0, 6, -2, " 23 ", "23 ");
- scrollTest(1, 1, -1, " 23 ", " 23 ");
- scrollTest(1, 2, -1, " 23 ", " 2 3 ");
- scrollTest(5, 1, -1, " 23 ", " 23 ");
- scrollTest(5, 1, -1, " 23 ", " 23 ");
- }
-
- public void testScrollNegative3() {
- scrollTest(1, 5, -7, "012345", "0 ");
- }
-
- public void testScrollPositive2() {
- scrollTest(2, 8, 20, "0123456789", "01 ");
- }
-
- public void testScrollPositive() {
- scrollTest(0, 2, 1, "012345", " 02345");
- scrollTest(0, 2, 2, "012345", " 2345");
- scrollTest(2, 4, 2, "012345", "01 23");
- scrollTest(2, 4, 2, "0123456", "01 236");
- scrollTest(0, 7, 6, "0123456", " 0");
- scrollTest(0, 7, 8, "0123456", " ");
- scrollTest(0, 7, 9, "0123456", " ");
- scrollTest(2, 4, 2, "0123456", "01 236");
- scrollTest(2, 5, 3, "0123456789", "01 23789");
- scrollTest(2, 7, 3, "0123456789", "01 23459");
- scrollTest(2, 8, 3, "0123456789", "01 23456");
- scrollTest(2, 8, 5, "0123456789", "01 234");
- scrollTest(2, 8, 9, "0123456789", "01 ");
- scrollTest(0, 10, 9, "0123456789", " 0");
- scrollTest(0, 6, 6, "012345", " ");
- }
-
- public void testScrollFail() {
- try {
- scrollTest(5, 2, -1, "012345", "012345");
- fail();
- } catch (RuntimeException e) {
- }
- try {
- scrollTest(0, 7, 1, "012345", " ");
- fail();
- } catch (RuntimeException e) {
- }
- }
-
- /**
- * Makes a simple shift test
- * @param line scroll start
- * @param n number of lines to be scrolled
- * @param shift amount of lines to be shifted
- * @param start the original data
- * @param result the expected result
- */
- void scrollTest(int line, int n, int shift, String start, String result) {
- ITerminalTextData term = makeITerminalTextData();
- fillSimple(term, start);
- term.scroll(line, n, shift);
- assertEqualsSimple(result, toSimple(term));
- }
-
- public void testWrappedLines() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(4, 4);
- for (int i = 0; i < term.getHeight(); ++i)
- assertFalse(term.isWrappedLine(i));
- term.setWrappedLine(0);
- term.setWrappedLine(3);
- assertTrue(term.isWrappedLine(0));
- assertFalse(term.isWrappedLine(1));
- assertFalse(term.isWrappedLine(2));
- assertTrue(term.isWrappedLine(3));
- term.cleanLine(0);
- assertFalse(term.isWrappedLine(0));
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/AllTestSuite.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/AllTestSuite.java
deleted file mode 100644
index 123de062d5e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/AllTestSuite.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Internal Terminal Model test cases.
- * Runs in internal model package to allow access to default visible items.
- */
-public class AllTestSuite extends TestCase {
- public AllTestSuite() {
- super(null);
- }
-
- public AllTestSuite(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(AllTestSuite.class.getName());
- suite.addTestSuite(SnapshotChangesTest.class);
- suite.addTestSuite(SynchronizedTerminalTextDataTest.class);
- suite.addTestSuite(TerminalTextDataFastScrollTest.class);
- suite.addTestSuite(TerminalTextDataFastScrollMaxHeightTest.class);
- suite.addTestSuite(TerminalTextDataPerformanceTest.class);
- suite.addTestSuite(TerminalTextDataSnapshotTest.class);
- suite.addTestSuite(TerminalTextDataSnapshotWindowTest.class);
- suite.addTestSuite(TerminalTextDataStoreTest.class);
- suite.addTestSuite(TerminalTextDataTest.class);
- suite.addTestSuite(TerminalTextDataWindowTest.class);
- return suite;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/SnapshotChangesTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/SnapshotChangesTest.java
deleted file mode 100644
index 9a95ba2f8e8..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/SnapshotChangesTest.java
+++ /dev/null
@@ -1,692 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-import junit.framework.TestCase;
-
-public class SnapshotChangesTest extends TestCase {
- /**
- * @param change
- * @param expected a string of 0 and 1 (1 means changed)
- */
- void assertChangedLines(ISnapshotChanges change, String expected) {
- StringBuffer buffer = new StringBuffer();
- for (int line = 0; line < expected.length(); line++) {
- if (change.hasLineChanged(line))
- buffer.append('1');
- else
- buffer.append('0');
- }
- assertEquals(expected, buffer.toString());
- }
-
- public void testSnapshotChanges() {
- SnapshotChanges changes = new SnapshotChanges(1);
- assertEquals(0, changes.getInterestWindowStartLine());
- assertEquals(0, changes.getInterestWindowSize());
- }
-
- public void testSnapshotChangesWithWindow() {
- SnapshotChanges changes = new SnapshotChanges(2, 5);
- assertEquals(2, changes.getInterestWindowStartLine());
- assertEquals(5, changes.getInterestWindowSize());
- }
-
- public void testIsInInterestWindowIntInt() {
- SnapshotChanges changes = new SnapshotChanges(2, 5);
- assertFalse(changes.isInInterestWindow(0, 1));
- assertFalse(changes.isInInterestWindow(0, 2));
- assertTrue(changes.isInInterestWindow(0, 3));
- assertTrue(changes.isInInterestWindow(0, 4));
- assertTrue(changes.isInInterestWindow(0, 5));
- assertTrue(changes.isInInterestWindow(0, 6));
- assertTrue(changes.isInInterestWindow(0, 10));
- assertTrue(changes.isInInterestWindow(2, 5));
- assertTrue(changes.isInInterestWindow(6, 0));
- assertTrue(changes.isInInterestWindow(6, 1));
- assertTrue(changes.isInInterestWindow(6, 10));
- assertFalse(changes.isInInterestWindow(7, 0));
- assertFalse(changes.isInInterestWindow(7, 1));
- assertFalse(changes.isInInterestWindow(8, 10));
- }
-
- public void testIsInInterestWindowIntIntNoWindow() {
- SnapshotChanges changes = new SnapshotChanges(3);
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j < 5; j++) {
- assertTrue(changes.isInInterestWindow(i, j));
- }
- }
- }
-
- public void testIsInInterestWindowInt() {
- SnapshotChanges changes = new SnapshotChanges(3, 1);
- assertFalse(changes.isInInterestWindow(0));
- assertFalse(changes.isInInterestWindow(1));
- assertFalse(changes.isInInterestWindow(2));
- assertTrue(changes.isInInterestWindow(3));
- assertFalse(changes.isInInterestWindow(4));
- assertFalse(changes.isInInterestWindow(5));
- }
-
- public void testIsInInterestWindowIntNoWindow() {
- SnapshotChanges changes = new SnapshotChanges(3);
- for (int i = 0; i < 10; i++) {
- assertTrue(changes.isInInterestWindow(i));
- }
- }
-
- public void testFitLineToWindow() {
- SnapshotChanges changes = new SnapshotChanges(2, 5);
- assertEquals(2, changes.fitLineToWindow(0));
- assertEquals(2, changes.fitLineToWindow(1));
- assertEquals(2, changes.fitLineToWindow(2));
- assertEquals(3, changes.fitLineToWindow(3));
-
- assertTrue(changes.isInInterestWindow(4));
- assertEquals(4, changes.fitLineToWindow(4));
-
- assertTrue(changes.isInInterestWindow(5));
- assertEquals(5, changes.fitLineToWindow(5));
-
- assertTrue(changes.isInInterestWindow(6));
- assertEquals(6, changes.fitLineToWindow(6));
-
- assertFalse(changes.isInInterestWindow(7));
- // value undefined!
- assertEquals(7, changes.fitLineToWindow(7));
-
- assertFalse(changes.isInInterestWindow(8));
- // value undefined!
- assertEquals(8, changes.fitLineToWindow(8));
- }
-
- public void testFitLineToWindowNoWindow() {
- SnapshotChanges changes = new SnapshotChanges(5);
- assertEquals(0, changes.fitLineToWindow(0));
- assertEquals(1, changes.fitLineToWindow(1));
- assertEquals(2, changes.fitLineToWindow(2));
- assertEquals(3, changes.fitLineToWindow(3));
- assertEquals(4, changes.fitLineToWindow(4));
- assertEquals(5, changes.fitLineToWindow(5));
- assertEquals(6, changes.fitLineToWindow(6));
- assertEquals(7, changes.fitLineToWindow(7));
- }
-
- public void testFitSizeToWindow() {
- SnapshotChanges changes = new SnapshotChanges(2, 3);
- assertFalse(changes.isInInterestWindow(0, 1));
- assertFalse(changes.isInInterestWindow(0, 2));
- assertTrue(changes.isInInterestWindow(0, 3));
- assertEquals(1, changes.fitSizeToWindow(0, 3));
- assertEquals(2, changes.fitSizeToWindow(0, 4));
- assertEquals(3, changes.fitSizeToWindow(0, 5));
- assertEquals(3, changes.fitSizeToWindow(0, 6));
- assertEquals(3, changes.fitSizeToWindow(0, 7));
- assertEquals(3, changes.fitSizeToWindow(0, 8));
- assertEquals(3, changes.fitSizeToWindow(0, 9));
- assertEquals(3, changes.fitSizeToWindow(1, 9));
- assertEquals(3, changes.fitSizeToWindow(2, 9));
- assertEquals(3, changes.fitSizeToWindow(2, 3));
- assertEquals(2, changes.fitSizeToWindow(2, 2));
- assertEquals(1, changes.fitSizeToWindow(2, 1));
- assertEquals(2, changes.fitSizeToWindow(3, 9));
- assertEquals(2, changes.fitSizeToWindow(3, 2));
- assertEquals(1, changes.fitSizeToWindow(3, 1));
- assertEquals(2, changes.fitSizeToWindow(3, 2));
- assertEquals(2, changes.fitSizeToWindow(3, 3));
- assertEquals(1, changes.fitSizeToWindow(4, 1));
- assertEquals(1, changes.fitSizeToWindow(4, 2));
- assertFalse(changes.isInInterestWindow(5, 1));
-
- }
-
- public void testFitSizeToWindowNoWindow() {
- SnapshotChanges changes = new SnapshotChanges(3);
- assertEquals(1, changes.fitSizeToWindow(0, 1));
- assertEquals(2, changes.fitSizeToWindow(0, 2));
- assertEquals(3, changes.fitSizeToWindow(0, 3));
- assertEquals(4, changes.fitSizeToWindow(0, 4));
- assertEquals(5, changes.fitSizeToWindow(0, 5));
-
- assertEquals(5, changes.fitSizeToWindow(1, 5));
- assertEquals(3, changes.fitSizeToWindow(2, 3));
- assertEquals(2, changes.fitSizeToWindow(1, 2));
- assertEquals(10, changes.fitSizeToWindow(5, 10));
- }
-
- public void testMarkLineChanged() {
- SnapshotChanges changes = new SnapshotChanges(2, 3);
- assertFalse(changes.hasChanged());
- changes.markLineChanged(0);
- assertFalse(changes.hasChanged());
- changes.markLineChanged(1);
- assertFalse(changes.hasChanged());
- changes.markLineChanged(2);
- assertTrue(changes.hasChanged());
-
- changes = new SnapshotChanges(2, 3);
- assertFalse(changes.hasChanged());
- changes.markLineChanged(3);
- assertTrue(changes.hasChanged());
-
- assertLineChange(false, 2, 3, 0);
- assertLineChange(false, 2, 3, 1);
- assertLineChange(true, 2, 3, 2);
- assertLineChange(true, 2, 3, 3);
- assertLineChange(true, 2, 3, 4);
- assertLineChange(false, 2, 3, 5);
- assertLineChange(false, 2, 3, 6);
-
- assertLineChange(true, 2, 4, 5);
- }
-
- void assertLineChange(boolean expected, int windowStart, int windowSize, int changedLine) {
- SnapshotChanges changes = new SnapshotChanges(windowStart, windowSize);
- assertFalse(changes.hasChanged());
- changes.markLineChanged(changedLine);
- if (expected) {
- assertEquals(changedLine, changes.getFirstChangedLine());
- assertEquals(changedLine, changes.getLastChangedLine());
- } else {
- assertEquals(Integer.MAX_VALUE, changes.getFirstChangedLine());
- assertEquals(-1, changes.getLastChangedLine());
-
- }
- assertEquals(expected, changes.hasChanged());
- for (int i = 0; i < windowStart + windowSize + 5; i++) {
- boolean e = i == changedLine && i >= windowStart && i < windowStart + windowSize;
- assertEquals(e, changes.hasLineChanged(i));
- }
-
- }
-
- public void testMarkLinesChanged() {
- SnapshotChanges changes = new SnapshotChanges(2, 3);
- assertFalse(changes.hasChanged());
- assertEquals(Integer.MAX_VALUE, changes.getFirstChangedLine());
- assertEquals(-1, changes.getLastChangedLine());
- changes.markLinesChanged(0, 1);
- assertChangedLines(changes, "00000000000");
- assertFalse(changes.hasChanged());
- assertEquals(Integer.MAX_VALUE, changes.getFirstChangedLine());
- assertEquals(-1, changes.getLastChangedLine());
- changes.markLinesChanged(0, 2);
- assertChangedLines(changes, "00000000000");
- assertFalse(changes.hasChanged());
- assertEquals(Integer.MAX_VALUE, changes.getFirstChangedLine());
- assertEquals(-1, changes.getLastChangedLine());
- changes.markLinesChanged(0, 3);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(2, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00100000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.markLinesChanged(1, 3);
- assertTrue(changes.hasChanged());
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(3, changes.getLastChangedLine());
- assertChangedLines(changes, "00110000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.markLinesChanged(1, 4);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00111000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.markLinesChanged(1, 4);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00111000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.markLinesChanged(2, 4);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00111000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.markLinesChanged(3, 4);
- assertEquals(3, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00011000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.markLinesChanged(3, 1);
- assertEquals(3, changes.getFirstChangedLine());
- assertEquals(3, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00010000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.markLinesChanged(4, 1);
- assertEquals(4, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00001000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.markLinesChanged(5, 1);
- assertEquals(Integer.MAX_VALUE, changes.getFirstChangedLine());
- assertEquals(-1, changes.getLastChangedLine());
- assertFalse(changes.hasChanged());
- assertChangedLines(changes, "00000000000");
- }
-
- public void testMarkLinesChangedNoWindow() {
- SnapshotChanges changes = new SnapshotChanges(10);
- assertFalse(changes.hasChanged());
- assertEquals(Integer.MAX_VALUE, changes.getFirstChangedLine());
- assertEquals(-1, changes.getLastChangedLine());
-
- changes.markLinesChanged(0, 1);
- assertTrue(changes.hasChanged());
- assertEquals(0, changes.getFirstChangedLine());
- assertEquals(0, changes.getLastChangedLine());
- assertChangedLines(changes, "1000000000");
-
- changes = new SnapshotChanges(10);
- changes.markLinesChanged(0, 5);
- assertTrue(changes.hasChanged());
- assertEquals(0, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertChangedLines(changes, "1111100000");
-
- changes = new SnapshotChanges(3);
- changes.markLinesChanged(1, 6);
- assertTrue(changes.hasChanged());
- assertEquals(1, changes.getFirstChangedLine());
- assertEquals(6, changes.getLastChangedLine());
- assertChangedLines(changes, "011");
-
- changes = new SnapshotChanges(10);
- changes.markLinesChanged(5, 6);
- assertTrue(changes.hasChanged());
- assertEquals(5, changes.getFirstChangedLine());
- assertEquals(10, changes.getLastChangedLine());
- assertChangedLines(changes, "0000011111");
-
- }
-
- public void testHasChanged() {
- SnapshotChanges changes = new SnapshotChanges(0);
- assertFalse(changes.hasChanged());
- changes = new SnapshotChanges(1);
- assertFalse(changes.hasChanged());
- changes = new SnapshotChanges(1, 9);
- assertFalse(changes.hasChanged());
- }
-
- public void testSetAllChanged() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- changes.setAllChanged(10);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00111000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.setAllChanged(3);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(2, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00111000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.setAllChanged(4);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(3, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00111000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.setAllChanged(5);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00111000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.setAllChanged(6);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "00111000000");
- }
-
- public void testSetAllChangedNoWindow() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(5);
- changes.setAllChanged(10);
- assertEquals(0, changes.getFirstChangedLine());
- assertEquals(9, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "1111111111");
-
- changes = new SnapshotChanges(5);
- changes.setAllChanged(3);
- assertEquals(0, changes.getFirstChangedLine());
- assertEquals(2, changes.getLastChangedLine());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "1111111111");
-
- }
-
- public void testConvertScrollingIntoChanges() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 4, -1);
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "000100");
- changes.convertScrollingIntoChanges();
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(3, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertChangedLines(changes, "001100");
- }
-
- public void testConvertScrollingIntoChangesNoWindow() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(7);
- changes.scroll(0, 4, -1);
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "000100");
- changes.convertScrollingIntoChanges();
- assertEquals(0, changes.getFirstChangedLine());
- assertEquals(3, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertChangedLines(changes, "111100");
- }
-
- public void testScrollNoWindow() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(7);
- changes.scroll(0, 3, -2);
- assertEquals(1, changes.getFirstChangedLine());
- assertEquals(2, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(3, changes.getScrollWindowSize());
- assertEquals(-2, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0110000");
-
- changes = new SnapshotChanges(7);
- changes.scroll(0, 3, -1);
- changes.scroll(0, 3, -1);
- assertEquals(1, changes.getFirstChangedLine());
- assertEquals(2, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(3, changes.getScrollWindowSize());
- assertEquals(-2, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0110000");
-
- changes = new SnapshotChanges(7);
- changes.scroll(0, 7, -1);
- changes.scroll(0, 7, -1);
- assertEquals(5, changes.getFirstChangedLine());
- assertEquals(6, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(7, changes.getScrollWindowSize());
- assertEquals(-2, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0000011");
-
- // positive scrolls cannot be optimized at the moment
- changes = new SnapshotChanges(7);
- changes.scroll(0, 7, 1);
- changes.scroll(0, 7, 1);
- assertEquals(0, changes.getFirstChangedLine());
- assertEquals(6, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "1111111");
-
- }
-
- public void testScroll() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 7, -1);
- assertEquals(4, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertEquals(2, changes.getScrollWindowStartLine());
- assertEquals(3, changes.getScrollWindowSize());
- assertEquals(-1, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0000100000");
-
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 7, -2);
- assertEquals(3, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertEquals(2, changes.getScrollWindowStartLine());
- assertEquals(3, changes.getScrollWindowSize());
- assertEquals(-2, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0001100000");
- }
-
- public void testScrollNergative() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 7, -1);
- changes.scroll(0, 7, -1);
- assertEquals(3, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertEquals(2, changes.getScrollWindowStartLine());
- assertEquals(3, changes.getScrollWindowSize());
- assertEquals(-2, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0001100000");
-
- }
-
- public void testScrollPositive() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 7, 1);
- changes.scroll(0, 7, 1);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0011100000");
-
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 3, 1);
- changes.scroll(0, 3, 1);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(2, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0010000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 4, 1);
- changes.scroll(0, 4, 1);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(3, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0011000000");
-
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 5, 1);
- changes.scroll(0, 5, 1);
- assertEquals(2, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0011100000");
-
- changes = new SnapshotChanges(2, 3);
- changes.scroll(3, 5, 1);
- changes.scroll(3, 5, 1);
- assertEquals(3, changes.getFirstChangedLine());
- assertEquals(4, changes.getLastChangedLine());
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertTrue(changes.hasChanged());
- assertChangedLines(changes, "0001100000");
- }
-
- public void testCopyChangedLines() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- changes.markLineChanged(3);
- ITerminalTextData source = new TerminalTextDataStore();
- TerminalTextTestHelper.fillSimple(source, "01234567890");
- ITerminalTextData dest = new TerminalTextDataStore();
- TerminalTextTestHelper.fillSimple(dest, "abcdefghijk");
-
- changes.copyChangedLines(dest, source);
- assertEquals("abc3efghijk", TerminalTextTestHelper.toSimple(dest));
-
- changes = new SnapshotChanges(2, 3);
- changes.setAllChanged(7);
- source = new TerminalTextDataStore();
- TerminalTextTestHelper.fillSimple(source, "01234567890");
- dest = new TerminalTextDataStore();
- TerminalTextTestHelper.fillSimple(dest, "abcdefghijk");
-
- changes.copyChangedLines(dest, source);
- assertEquals("ab234fghijk", TerminalTextTestHelper.toSimple(dest));
-
- changes = new SnapshotChanges(2, 3);
- changes.scroll(0, 7, -1);
- source = new TerminalTextDataStore();
- TerminalTextTestHelper.fillSimple(source, "01234567890");
- dest = new TerminalTextDataStore();
- TerminalTextTestHelper.fillSimple(dest, "abcdefghijk");
- // only one line has changed! The other lines are scrolled!
- assertChangedLines(changes, "00001000");
- changes.copyChangedLines(dest, source);
- assertEquals("abcd4fghijk", TerminalTextTestHelper.toSimple(dest));
- }
-
- public void testCopyChangedLinesWithSmallSource() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- changes.markLineChanged(3);
- ITerminalTextData source = new TerminalTextDataStore();
- source.setDimensions(2, 2);
- TerminalTextDataWindow dest = new TerminalTextDataWindow();
- dest.setWindow(2, 2);
- changes.copyChangedLines(dest, source);
- }
-
- public void testCopyChangedLinesWithSmallSource1() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- changes.markLineChanged(3);
- ITerminalTextData source = new TerminalTextDataStore();
- TerminalTextTestHelper.fillSimple(source, "01");
- ITerminalTextData dest = new TerminalTextDataStore();
- changes.copyChangedLines(dest, source);
- }
-
- public void testSetInterestWindowSize() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- // move the window
- changes.setInterestWindow(3, 3);
- // only one line has changed! The other lines are scrolled!
- assertEquals(3, changes.getScrollWindowStartLine());
- assertEquals(3, changes.getScrollWindowSize());
- assertEquals(-1, changes.getScrollWindowShift());
-
- assertChangedLines(changes, "0000010");
- changes.convertScrollingIntoChanges();
- assertChangedLines(changes, "0001110");
-
- changes = new SnapshotChanges(2, 3);
- // move the window
- changes.setInterestWindow(3, 4);
- // only one line has changed! The other lines are scrolled!
- assertEquals(3, changes.getScrollWindowStartLine());
- assertEquals(3, changes.getScrollWindowSize());
- assertEquals(-1, changes.getScrollWindowShift());
-
- assertChangedLines(changes, "0000011");
- changes.convertScrollingIntoChanges();
- assertChangedLines(changes, "0001111");
-
- changes = new SnapshotChanges(2, 3);
- // move the window
- changes.setInterestWindow(6, 3);
- // cannot scroll
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
- assertChangedLines(changes, "000000111000");
-
- changes = new SnapshotChanges(2, 3);
- // expand the window
- changes.setInterestWindow(2, 5);
- // cannot scroll
- assertEquals(0, changes.getScrollWindowStartLine());
- assertEquals(0, changes.getScrollWindowSize());
- assertEquals(0, changes.getScrollWindowShift());
-
- assertChangedLines(changes, "0000011000");
- }
-
- public void testSetInterestWindowSize2() {
- SnapshotChanges changes;
- changes = new SnapshotChanges(2, 3);
- // move the window
- changes.setInterestWindow(1, 3);
- assertChangedLines(changes, "0111000");
-
- changes = new SnapshotChanges(2, 3);
- // move the window
- changes.setInterestWindow(1, 4);
- assertChangedLines(changes, "01111000");
-
- changes = new SnapshotChanges(2, 3);
- // expand the window
- changes.setInterestWindow(6, 3);
- assertChangedLines(changes, "000000111000");
-
- changes = new SnapshotChanges(2, 3);
- // expand the window
- changes.setInterestWindow(1, 2);
- assertChangedLines(changes, "0110000");
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/SynchronizedTerminalTextDataTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/SynchronizedTerminalTextDataTest.java
deleted file mode 100644
index cca7990c9fc..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/SynchronizedTerminalTextDataTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-public class SynchronizedTerminalTextDataTest extends AbstractITerminalTextDataTest {
- @Override
- protected ITerminalTextData makeITerminalTextData() {
- return new SynchronizedTerminalTextData(new TerminalTextData());
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScrollMaxHeightTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScrollMaxHeightTest.java
deleted file mode 100644
index c21c2d55c6d..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScrollMaxHeightTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-public class TerminalTextDataFastScrollMaxHeightTest extends AbstractITerminalTextDataTest {
- @Override
- protected ITerminalTextData makeITerminalTextData() {
- return new TerminalTextDataFastScroll(1);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScrollTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScrollTest.java
deleted file mode 100644
index 5a0bb80a773..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataFastScrollTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-public class TerminalTextDataFastScrollTest extends AbstractITerminalTextDataTest {
- @Override
- protected ITerminalTextData makeITerminalTextData() {
- return new TerminalTextDataFastScroll(3);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataPerformanceTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataPerformanceTest.java
deleted file mode 100644
index 6bfbb44237c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataPerformanceTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-import junit.framework.TestCase;
-
-public class TerminalTextDataPerformanceTest extends TestCase {
- long TIME = 100;
-
- private void initPerformance(ITerminalTextData term) {
- term.setDimensions(300, 200);
- }
-
- public void testPerformance0() {
- ITerminalTextData term = new TerminalTextData();
- method0(term, "0 ");
- }
-
- public void testPerformance0a() {
- ITerminalTextData term = new TerminalTextData();
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- method0(term, "0a");
- snapshot.updateSnapshot(true);
- }
-
- public void testPerformance0b() {
- ITerminalTextData term = new TerminalTextData();
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- N = 0;
- snapshot.addListener(snapshot1 -> N++);
- method0(term, "0b");
- snapshot.updateSnapshot(true);
- }
-
- private void method0(ITerminalTextData term, String label) {
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- initPerformance(term);
- String s = "This is a test string";
- long n = 0;
- long t0 = System.currentTimeMillis();
- for (int i = 0; i < 10000000; i++) {
- char c = s.charAt(i % s.length());
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- term.setChar(line, column, c, style);
- n++;
- }
- }
- if (System.currentTimeMillis() - t0 > TIME) {
- System.out
- .println(label + " " + (n * 1000) / (System.currentTimeMillis() - t0) + " setChar()/sec " + N);
- break;
- }
- }
- }
-
- public void testPerformance1() {
- ITerminalTextData term = new TerminalTextData();
- method1(term, "1 ");
- }
-
- public void testPerformance1a() {
- ITerminalTextData term = new TerminalTextData();
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- method1(term, "1a");
- snapshot.updateSnapshot(true);
- }
-
- public void testPerformance1b() {
- ITerminalTextData term = new TerminalTextData();
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- N = 0;
- snapshot.addListener(snapshot1 -> N++);
- method1(term, "1b");
- snapshot.updateSnapshot(true);
- }
-
- private void method1(ITerminalTextData term, String label) {
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- initPerformance(term);
- String s = "This is a test string";
- long n = 0;
- long t0 = System.currentTimeMillis();
- char[] chars = new char[term.getWidth()];
- for (int i = 0; i < 10000000; i++) {
- for (int j = 0; j < chars.length; j++) {
- chars[j] = s.charAt((i + j) % s.length());
- }
- for (int line = 0; line < term.getHeight(); line++) {
- term.setChars(line, 0, chars, style);
- n += chars.length;
- }
- if (System.currentTimeMillis() - t0 > TIME) {
- System.out
- .println(label + " " + (n * 1000) / (System.currentTimeMillis() - t0) + " setChars()/sec " + N);
- break;
- }
- }
- }
-
- public void testPerformance2() {
- TerminalTextData term = new TerminalTextData();
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- initPerformance(term);
- TerminalTextData copy = new TerminalTextData();
- copy.copy(term);
-
- String s = "This is a test string";
- long n = 0;
- long t0 = System.currentTimeMillis();
- char[] chars = new char[term.getWidth()];
- for (int i = 0; i < 10000000; i++) {
- for (int j = 0; j < chars.length; j++) {
- chars[j] = s.charAt((i + j) % s.length());
- }
- for (int line = 0; line < term.getHeight(); line++) {
- term.setChars(line, 0, chars, 0, 1, style);
- copy.copy(term);
- n += 1;
- if (System.currentTimeMillis() - t0 > TIME) {
- System.out.println((n * 1000) / (System.currentTimeMillis() - t0) + " copy()/sec");
- return;
- }
- }
- }
- }
-
- public void testPerformance2a() {
- TerminalTextData term = new TerminalTextData();
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- initPerformance(term);
- TerminalTextData copy = new TerminalTextData();
- copy.copy(term);
-
- String s = "This is a test string";
- long n = 0;
- long t0 = System.currentTimeMillis();
- char[] chars = new char[term.getWidth()];
- for (int i = 0; i < 10000000; i++) {
- for (int j = 0; j < chars.length; j++) {
- chars[j] = s.charAt((i + j) % s.length());
- }
- for (int line = 0; line < term.getHeight(); line++) {
- term.setChars(line, 0, chars, 0, 1, style);
- copy.copy(term);
- n += 1;
- if (System.currentTimeMillis() - t0 > TIME) {
- System.out.println((n * 1000) / (System.currentTimeMillis() - t0) + " copy()/sec");
- return;
- }
- }
- }
- snapshot.updateSnapshot(true);
- }
-
- int N = 0;
-
- public void testPerformance2b() {
- TerminalTextData term = new TerminalTextData();
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- N = 0;
- snapshot.addListener(snapshot1 -> N++);
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- initPerformance(term);
- TerminalTextData copy = new TerminalTextData();
- copy.copy(term);
-
- String s = "This is a test string";
- long n = 0;
- long t0 = System.currentTimeMillis();
- char[] chars = new char[term.getWidth()];
- for (int i = 0; i < 10000000; i++) {
- for (int j = 0; j < chars.length; j++) {
- chars[j] = s.charAt((i + j) % s.length());
- }
- for (int line = 0; line < term.getHeight(); line++) {
- term.setChars(line, 0, chars, 0, 1, style);
- copy.copy(term);
- n += 1;
- if (System.currentTimeMillis() - t0 > TIME) {
- System.out.println((n * 1000) / (System.currentTimeMillis() - t0) + " copy()/sec " + n);
- return;
- }
- }
- }
- snapshot.updateSnapshot(true);
- }
-
- public void testPerformance3() {
- TerminalTextData term = new TerminalTextData();
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- initPerformance(term);
- TerminalTextData copy = new TerminalTextData();
- copy.copy(term);
- String s = "This is a test string";
- long n = 0;
- long t0 = System.currentTimeMillis();
- char[] chars = new char[term.getWidth()];
- for (int i = 0; i < 10000000; i++) {
- boolean[] linesToCopy = new boolean[term.getHeight()];
- for (int j = 0; j < chars.length; j++) {
- chars[j] = s.charAt((i + j) % s.length());
- }
- for (int line = 0; line < term.getHeight(); line++) {
- term.setChars(line, 0, chars, 0, 1, style);
- linesToCopy[line] = true;
- copy.copyLine(term, 0, 0);
- linesToCopy[line] = false;
- n += 1;
- if (System.currentTimeMillis() - t0 > TIME) {
- System.out.println((n * 1000) / (System.currentTimeMillis() - t0) + " copy()/sec");
- return;
- }
- }
- }
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshotTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshotTest.java
deleted file mode 100644
index 56b9b145b42..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshotTest.java
+++ /dev/null
@@ -1,1234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-import junit.framework.TestCase;
-
-public class TerminalTextDataSnapshotTest extends TestCase {
- String toMultiLineText(ITerminalTextDataReadOnly term) {
- return TerminalTextTestHelper.toMultiLineText(term);
- }
-
- protected ITerminalTextData makeITerminalTextData() {
- return new TerminalTextData();
- }
-
- public void testTerminalTextDataSnapshot() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- assertEquals(toMultiLineText(term), toMultiLineText(snapshot));
-
- // new snapshots are fully changed
- assertEquals(0, snapshot.getFirstChangedLine());
- assertEquals(term.getHeight() - 1, snapshot.getLastChangedLine());
- for (int line = 0; line <= snapshot.getLastChangedLine(); line++) {
- assertTrue(snapshot.hasLineChanged(line));
- }
- // nothing has scrolled
- assertEquals(0, snapshot.getScrollWindowSize());
- }
-
- public void testDetach() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- assertEquals(toMultiLineText(term), toMultiLineText(snapshot));
- snapshot.detach();
- // after detach changes to the term has no effect
- term.setChar(0, 0, '?', null);
- assertEquals(s, toMultiLineText(snapshot));
- term.setDimensions(2, 2);
- assertEquals(s, toMultiLineText(snapshot));
- }
-
- public void testIsOutOfDate() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
-
- assertFalse(snapshot.isOutOfDate());
-
- // make a change and expect it to be changed
- term.setChar(0, 0, '?', null);
- assertTrue(snapshot.isOutOfDate());
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.isOutOfDate());
-
- // make a change and expect it to be changed
- term.setChars(1, 1, new char[] { '?', '!', '.' }, null);
- assertTrue(snapshot.isOutOfDate());
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.isOutOfDate());
-
- // scroll
- term.scroll(1, 2, -1);
- assertTrue(snapshot.isOutOfDate());
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.isOutOfDate());
-
- // scroll
- term.scroll(1, 2, 1);
- assertTrue(snapshot.isOutOfDate());
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.isOutOfDate());
-
- // scroll
- term.scroll(1, 2, -1);
- assertTrue(snapshot.isOutOfDate());
-
- snapshot.updateSnapshot(true);
- assertFalse(snapshot.isOutOfDate());
-
- // scroll
- term.scroll(1, 2, 1);
- assertTrue(snapshot.isOutOfDate());
-
- snapshot.updateSnapshot(true);
- assertFalse(snapshot.isOutOfDate());
-
- // setDimensions
- term.setDimensions(2, 2);
- assertTrue(snapshot.isOutOfDate());
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.isOutOfDate());
-
- // setDimensions
- term.setDimensions(20, 20);
- assertTrue(snapshot.isOutOfDate());
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.isOutOfDate());
-
- }
-
- ITerminalTextDataSnapshot snapshot(String text, ITerminalTextData term) {
- TerminalTextTestHelper.fill(term, text);
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- return snapshot;
-
- }
-
- public void testUpdateSnapshot() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
- String termString = toMultiLineText(term);
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- assertEquals(termString, toMultiLineText(snapshot));
-
- // make changes and assert that the snapshot has not changed
- // then update the snapshot and expect it to be the
- // same as the changed terminal
-
- // make a change
- term.setChar(0, 0, '?', null);
- assertEquals(termString, toMultiLineText(snapshot));
-
- snapshot.updateSnapshot(false);
- termString = toMultiLineText(term);
- assertEquals(termString, toMultiLineText(snapshot));
-
- // make a change
- term.setChars(1, 1, new char[] { '?', '!', '.' }, null);
- assertEquals(termString, toMultiLineText(snapshot));
-
- snapshot.updateSnapshot(false);
- termString = toMultiLineText(term);
- assertEquals(termString, toMultiLineText(snapshot));
-
- // scroll
- term.scroll(1, 2, -1);
- assertEquals(termString, toMultiLineText(snapshot));
-
- snapshot.updateSnapshot(false);
- termString = toMultiLineText(term);
- assertEquals(termString, toMultiLineText(snapshot));
-
- // scroll
- term.scroll(1, 2, 1);
- assertEquals(termString, toMultiLineText(snapshot));
-
- snapshot.updateSnapshot(false);
- termString = toMultiLineText(term);
- assertEquals(termString, toMultiLineText(snapshot));
-
- // scroll
- term.scroll(1, 2, -1);
- assertEquals(termString, toMultiLineText(snapshot));
-
- snapshot.updateSnapshot(true);
- termString = toMultiLineText(term);
- assertEquals(termString, toMultiLineText(snapshot));
-
- // scroll
- term.scroll(1, 2, 1);
- assertEquals(termString, toMultiLineText(snapshot));
-
- snapshot.updateSnapshot(true);
- termString = toMultiLineText(term);
- assertEquals(termString, toMultiLineText(snapshot));
-
- // set dimensions
- term.setDimensions(2, 2);
- assertEquals(termString, toMultiLineText(snapshot));
-
- snapshot.updateSnapshot(false);
- termString = toMultiLineText(term);
- assertEquals(termString, toMultiLineText(snapshot));
-
- // set dimensions
- term.setDimensions(20, 20);
- assertEquals(termString, toMultiLineText(snapshot));
-
- snapshot.updateSnapshot(false);
- termString = toMultiLineText(term);
- assertEquals(termString, toMultiLineText(snapshot));
- }
-
- public void testMaxSize() {
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- ITerminalTextData term = makeITerminalTextData();
- term.setMaxHeight(8);
- TerminalTextTestHelper.fill(term, s);
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- term.addLine();
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertEquals(toMultiLineText(term), toMultiLineText(snapshot));
-
- term.addLine();
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertEquals(toMultiLineText(term), toMultiLineText(snapshot));
-
- term.addLine();
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertEquals(toMultiLineText(term), toMultiLineText(snapshot));
-
- term.addLine();
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertEquals(toMultiLineText(term), toMultiLineText(snapshot));
-
- term.addLine();
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertEquals(toMultiLineText(term), toMultiLineText(snapshot));
-
- }
-
- public void testGetChar() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
- ITerminalTextData termUnchanged = makeITerminalTextData();
- TerminalTextTestHelper.fill(termUnchanged, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- for (int line = 0; line < snapshot.getHeight(); line++) {
- for (int column = 0; column < snapshot.getWidth(); column++) {
- assertEquals(term.getChar(line, column), snapshot.getChar(line, column));
- }
- }
- // make a change
- term.setChar(0, 0, '?', null);
- // check against unchanged data
- for (int line = 0; line < snapshot.getHeight(); line++) {
- for (int column = 0; column < snapshot.getWidth(); column++) {
- assertEquals(termUnchanged.getChar(line, column), snapshot.getChar(line, column));
- }
- }
- // update and compare against the terminal
- snapshot.updateSnapshot(true);
- for (int line = 0; line < snapshot.getHeight(); line++) {
- for (int column = 0; column < snapshot.getWidth(); column++) {
- assertEquals(term.getChar(line, column), snapshot.getChar(line, column));
- }
- }
-
- }
-
- public void testGetHeight() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- int expectedHeight = term.getHeight();
- assertEquals(expectedHeight, snapshot.getHeight());
- term.setDimensions(term.getHeight() - 1, term.getWidth());
- assertEquals(expectedHeight, snapshot.getHeight());
-
- //
- snapshot.updateSnapshot(false);
- expectedHeight = term.getHeight();
- assertEquals(expectedHeight, snapshot.getHeight());
- term.setDimensions(term.getHeight() - 1, term.getWidth());
- assertEquals(expectedHeight, snapshot.getHeight());
- }
-
- //
- // public void testGetLineSegments() {
- // fail("Not yet implemented");
- // }
- //
- public void testGetStyle() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- term.setDimensions(6, 3);
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = (char) ('a' + column + line);
- term.setChar(line, column, c, style.setForeground(c));
- }
- }
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = (char) ('a' + column + line);
- assertSame(style.setForeground(c), snapshot.getStyle(line, column));
- }
- }
-
- }
-
- public void testGetWidth() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- int expectedWidth = term.getWidth();
- assertEquals(expectedWidth, snapshot.getWidth());
- term.setDimensions(term.getHeight(), term.getWidth() - 1);
- assertEquals(expectedWidth, snapshot.getWidth());
-
- //
- snapshot.updateSnapshot(false);
- expectedWidth = term.getWidth();
- assertEquals(expectedWidth, snapshot.getWidth());
- term.setDimensions(term.getHeight(), term.getWidth() - 1);
- assertEquals(expectedWidth, snapshot.getWidth());
- }
-
- public void testGetFirstChangedLine() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- ITerminalTextDataSnapshot snapshot = snapshot(s, term);
-
- assertEquals(0, snapshot.getFirstChangedLine());
-
- // if nothing has changed the first changed line i height
- snapshot.updateSnapshot(false);
- assertEquals(Integer.MAX_VALUE, snapshot.getFirstChangedLine());
-
- snapshot = snapshot(s, term);
- term.setChar(0, 0, 'x', null);
- snapshot.updateSnapshot(false);
- assertEquals(0, snapshot.getFirstChangedLine());
-
- snapshot = snapshot(s, term);
- term.setChar(3, 0, 'x', null);
- term.setChar(4, 0, 'x', null);
- snapshot.updateSnapshot(false);
- assertEquals(3, snapshot.getFirstChangedLine());
-
- snapshot = snapshot(s, term);
- term.scroll(0, 1, -1);
- snapshot.updateSnapshot(false);
- assertEquals(0, snapshot.getFirstChangedLine());
-
- snapshot = snapshot(s, term);
- term.scroll(2, 2, -1);
- snapshot.updateSnapshot(false);
- assertEquals(2, snapshot.getFirstChangedLine());
-
- // when scrolling the end of the region 'has changed'
- snapshot = snapshot(s, term);
- term.scroll(2, 2, -1);
- snapshot.updateSnapshot(true);
- assertEquals(3, snapshot.getFirstChangedLine());
-
- // when scrolling the end of the region 'has changed'
- snapshot = snapshot(s, term);
- term.scroll(2, 2, -1);
- term.setChar(1, 0, 'x', null);
- snapshot.updateSnapshot(true);
- assertEquals(1, snapshot.getFirstChangedLine());
-
- }
-
- public void testGetLastChangedLine() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- ITerminalTextDataSnapshot snapshot = snapshot(s, term);
-
- assertEquals(4, snapshot.getLastChangedLine());
-
- // if nothing has changed the first changed line i height
- snapshot.updateSnapshot(false);
- assertEquals(-1, snapshot.getLastChangedLine());
-
- snapshot = snapshot(s, term);
- term.setChar(0, 0, 'x', null);
- snapshot.updateSnapshot(false);
- assertEquals(0, snapshot.getLastChangedLine());
-
- snapshot = snapshot(s, term);
- term.cleanLine(1);
- snapshot.updateSnapshot(false);
- assertEquals(1, snapshot.getLastChangedLine());
-
- snapshot = snapshot(s, term);
- term.setChar(3, 0, 'x', null);
- term.setChar(4, 0, 'x', null);
- snapshot.updateSnapshot(false);
- assertEquals(4, snapshot.getLastChangedLine());
-
- snapshot = snapshot(s, term);
- term.scroll(0, 1, -1);
- snapshot.updateSnapshot(false);
- assertEquals(0, snapshot.getLastChangedLine());
-
- snapshot = snapshot(s, term);
- term.scroll(2, 2, -1);
- snapshot.updateSnapshot(false);
- assertEquals(3, snapshot.getLastChangedLine());
-
- // when scrolling the end of the region 'has changed'
- snapshot = snapshot(s, term);
- term.scroll(2, 2, -1);
- snapshot.updateSnapshot(true);
- assertEquals(3, snapshot.getLastChangedLine());
-
- // when scrolling the end of the region 'has changed'
- snapshot = snapshot(s, term);
- term.scroll(2, 2, -1);
- term.setChar(1, 0, 'x', null);
- snapshot.updateSnapshot(true);
- assertEquals(3, snapshot.getLastChangedLine());
-
- }
-
- /**
- * @param snapshot
- * @param expected a string of 0 and 1 (1 means changed)
- */
- void assertChangedLines(ITerminalTextDataSnapshot snapshot, String expected) {
- assertEquals(expected.length(), snapshot.getHeight());
- StringBuffer buffer = new StringBuffer();
- for (int line = 0; line < expected.length(); line++) {
- if (snapshot.hasLineChanged(line))
- buffer.append('1');
- else
- buffer.append('0');
- }
- assertEquals(expected, buffer.toString());
- }
-
- public void testHasLineChangedScroll() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "00\n" + "11\n" + "22\n" + "33\n" + "44\n" + "55\n" + "66\n" + "77\n" + "88\n" + "99";
- ITerminalTextDataSnapshot snapshot = snapshot(s, term);
-
- term.scroll(2, 3, -1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0000100000");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 3, -2);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0001100000");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 4, -1);
- term.scroll(2, 4, -1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0000110000");
-
- term.scroll(2, 3, 1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0011100000");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 3, 2);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0011100000");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 4, 1);
- term.scroll(2, 4, 1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0011110000");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 3, -1);
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011100000");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 3, -2);
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011100000");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 4, -1);
- term.scroll(2, 4, -1);
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011110000");
- }
-
- public void testMultiScrollWithDifferentSizes() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "00\n" + "11\n" + "22\n" + "33\n" + "44\n" + "55\n" + "66\n" + "77\n" + "88\n" + "99";
- ITerminalTextDataSnapshot snapshot;
-
- snapshot = snapshot(s, term);
- term.scroll(2, 6, -1);
- term.scroll(2, 5, -1);
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011111100");
- assertEquals(2, snapshot.getFirstChangedLine());
- assertEquals(7, snapshot.getLastChangedLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- // scrolls with different ranges cause no scroll
- // optimization
- snapshot = snapshot(s, term);
- term.scroll(2, 6, -1);
- term.scroll(2, 5, -1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0011111100");
- assertEquals(2, snapshot.getFirstChangedLine());
- assertEquals(7, snapshot.getLastChangedLine());
- assertEquals(0, snapshot.getScrollWindowShift());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowStartLine());
- }
-
- public void testHasLineChanged() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "000000\n" + "111111\n" + "222222\n" + "333333\n" + "444444\n" + "555555\n" + "666666\n" + "777777\n"
- + "888888\n" + "999999";
- ITerminalTextDataSnapshot snapshot;
-
- snapshot = snapshot(s, term);
- term.scroll(2, 3, -1);
- term.setChar(7, 0, '.', null);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0000100100");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 3, -2);
- term.setChar(9, 0, '.', null);
- term.setChars(0, 0, new char[] { '.', '!' }, null);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "1001100001");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 4, -1);
- term.scroll(2, 4, -1);
- term.setChars(2, 2, new char[] { '.', '!', '*' }, 1, 1, null);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0010110000");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 7, -1);
- term.setChar(5, 2, '.', null);
- term.scroll(2, 7, -2);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0001001110");
-
- snapshot = snapshot(s, term);
- term.scroll(2, 7, -1);
- term.setChar(5, 2, '.', null);
- term.scroll(2, 7, -2);
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011111110");
-
- }
-
- public void testScroll() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "00\n" + "11\n" + "22\n" + "33\n" + "44\n" + "55\n" + "66\n" + "77\n" + "88\n" + "99";
- ITerminalTextDataSnapshot snapshot = snapshot(s, term);
-
- term.scroll(2, 3, -1);
- snapshot.updateSnapshot(true);
- assertEquals(2, snapshot.getScrollWindowStartLine());
- assertEquals(3, snapshot.getScrollWindowSize());
- assertEquals(-1, snapshot.getScrollWindowShift());
- assertEquals(4, snapshot.getFirstChangedLine());
- assertEquals(4, snapshot.getLastChangedLine());
-
- term.scroll(2, 3, -2);
- snapshot.updateSnapshot(true);
- assertEquals(2, snapshot.getScrollWindowStartLine());
- assertEquals(3, snapshot.getScrollWindowSize());
- assertEquals(-2, snapshot.getScrollWindowShift());
- assertEquals(3, snapshot.getFirstChangedLine());
- assertEquals(4, snapshot.getLastChangedLine());
-
- term.scroll(2, 4, -1);
- term.scroll(2, 4, -1);
- snapshot.updateSnapshot(true);
- assertEquals(2, snapshot.getScrollWindowStartLine());
- assertEquals(4, snapshot.getScrollWindowSize());
- assertEquals(-2, snapshot.getScrollWindowShift());
- assertEquals(4, snapshot.getFirstChangedLine());
- assertEquals(5, snapshot.getLastChangedLine());
-
- snapshot = snapshot(s, term);
- term.scroll(2, 3, -1);
- snapshot.updateSnapshot(false);
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
- assertEquals(2, snapshot.getFirstChangedLine());
- assertEquals(4, snapshot.getLastChangedLine());
-
- }
-
- public void testDisjointScroll() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "000000\n" + "111111\n" + "222222\n" + "333333\n" + "444444\n" + "555555\n" + "666666\n" + "777777\n"
- + "888888\n" + "999999";
- ITerminalTextDataSnapshot snapshot;
-
- snapshot = snapshot(s, term);
- term.scroll(0, 2, -1);
- term.scroll(4, 2, -1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "1100110000");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- snapshot = snapshot(s, term);
- term.scroll(0, 3, -1);
- term.scroll(2, 2, -2);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "1111000000");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- snapshot = snapshot(s, term);
- term.scroll(0, 3, -1);
- term.scroll(2, 2, -2);
- term.scroll(0, 3, -1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "1111000000");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- snapshot = snapshot(s, term);
- term.scroll(0, 3, -1);
- term.scroll(2, 2, -2);
- term.scroll(0, 3, -10);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "1111000000");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- snapshot = snapshot(s, term);
- term.scroll(1, 3, -1);
- term.scroll(1, 3, 1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "0111000000");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
- }
-
- public void testResize() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "000000\n" + "111111\n" + "222222\n" + "333333";
- ITerminalTextDataSnapshot snapshot;
-
- snapshot = snapshot(s, term);
- term.setDimensions(term.getHeight(), term.getWidth() + 1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "1111");
- assertEquals(0, snapshot.getFirstChangedLine());
- assertEquals(3, snapshot.getLastChangedLine());
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- snapshot = snapshot(s, term);
- term.setDimensions(term.getHeight() + 1, term.getWidth());
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "11111");
- assertEquals(0, snapshot.getFirstChangedLine());
- assertEquals(4, snapshot.getLastChangedLine());
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- snapshot = snapshot(s, term);
- term.setDimensions(term.getHeight() - 1, term.getWidth());
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "111");
- assertEquals(0, snapshot.getFirstChangedLine());
- assertEquals(2, snapshot.getLastChangedLine());
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- snapshot = snapshot(s, term);
- term.setDimensions(0, 0);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "");
- assertEquals(0, snapshot.getFirstChangedLine());
- assertEquals(-1, snapshot.getLastChangedLine());
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- }
-
- public void testResizeAfterScroll() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "000000\n" + "111111\n" + "222222\n" + "333333\n" + "444444\n" + "555555\n" + "666666\n" + "777777\n"
- + "888888\n" + "999999";
- ITerminalTextDataSnapshot snapshot;
-
- snapshot = snapshot(s, term);
- term.scroll(1, 2, -1);
- term.setDimensions(5, 4);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "11111");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
-
- snapshot = snapshot(s, term);
- term.scroll(1, 2, -1);
- term.setDimensions(7, 2);
- term.scroll(4, 2, -1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "1111111");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
- snapshot = snapshot(s, term);
-
- term.scroll(1, 2, -1);
- term.setDimensions(term.getHeight(), term.getWidth() + 1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "1111111111");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
- }
-
- public void testScrollAfterResize() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "000000\n" + "111111\n" + "222222\n" + "333333\n" + "444444\n" + "555555\n" + "666666\n" + "777777\n"
- + "888888\n" + "999999";
- ITerminalTextDataSnapshot snapshot;
-
- snapshot = snapshot(s, term);
- term.setDimensions(14, 6);
- term.scroll(0, 14, -1);
- snapshot.updateSnapshot(true);
- assertChangedLines(snapshot, "11111111111111");
- assertEquals(0, snapshot.getScrollWindowStartLine());
- assertEquals(0, snapshot.getScrollWindowSize());
- assertEquals(0, snapshot.getScrollWindowShift());
- }
-
- private final class SnapshotListener implements ITerminalTextDataSnapshot.SnapshotOutOfDateListener {
- int N;
-
- @Override
- public void snapshotOutOfDate(ITerminalTextDataSnapshot snapshot) {
- N++;
- }
-
- public void reset() {
- N = 0;
- }
- }
-
- public void testAddListener() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- SnapshotListener listener = new SnapshotListener();
- snapshot.addListener(listener);
- assertEquals(0, listener.N);
-
- // make a change and expect it to be changed
- term.setChar(0, 0, '?', null);
- assertEquals(1, listener.N);
- term.setChar(1, 1, '?', null);
- assertEquals(1, listener.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener.N);
- listener.reset();
-
- // make a change and expect it to be changed
- term.setChars(1, 1, new char[] { '?', '!', '.' }, null);
- assertEquals(1, listener.N);
- term.setChars(2, 1, new char[] { '?', '!', '.' }, null);
- assertEquals(1, listener.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener.N);
- listener.reset();
-
- // scroll
- term.scroll(1, 2, -1);
- assertEquals(1, listener.N);
- term.scroll(1, 2, -1);
- assertEquals(1, listener.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener.N);
- listener.reset();
-
- // scroll
- term.scroll(1, 2, 1);
- assertEquals(1, listener.N);
- term.scroll(1, 2, 1);
- assertEquals(1, listener.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener.N);
- listener.reset();
-
- // scroll
- term.scroll(1, 2, -1);
- assertEquals(1, listener.N);
- term.scroll(1, 2, -1);
- assertEquals(1, listener.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener.N);
- listener.reset();
-
- // scroll
- term.scroll(1, 2, 1);
- assertEquals(1, listener.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener.N);
- listener.reset();
-
- // setDimensions
- term.setDimensions(2, 2);
- assertEquals(1, listener.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener.N);
- listener.reset();
-
- // setDimensions
- term.setDimensions(20, 20);
- assertEquals(1, listener.N);
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.isOutOfDate());
- }
-
- public void testRemoveListener() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
-
- SnapshotListener listener1 = new SnapshotListener();
- SnapshotListener listener2 = new SnapshotListener();
- SnapshotListener listener3 = new SnapshotListener();
- snapshot.addListener(listener1);
- snapshot.addListener(listener2);
- snapshot.addListener(listener3);
- assertEquals(0, listener1.N);
-
- // make a change and expect it to be changed
- term.setChar(0, 0, '?', null);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
- term.setChar(1, 1, '?', null);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
- listener1.reset();
- listener2.reset();
- listener3.reset();
-
- // make a change and expect it to be changed
- term.setChars(1, 1, new char[] { '?', '!', '.' }, null);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
- term.setChars(2, 1, new char[] { '?', '!', '.' }, null);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
-
- listener1.reset();
- listener2.reset();
- listener3.reset();
-
- snapshot.removeListener(listener2);
-
- // scroll
- term.scroll(1, 2, -1);
- assertEquals(1, listener1.N);
- assertEquals(0, listener2.N);
- assertEquals(1, listener3.N);
-
- term.scroll(1, 2, -1);
- assertEquals(1, listener1.N);
- assertEquals(0, listener2.N);
- assertEquals(1, listener3.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener1.N);
- assertEquals(0, listener2.N);
- assertEquals(1, listener3.N);
-
- snapshot.addListener(listener2);
- listener1.reset();
- listener2.reset();
- listener3.reset();
-
- snapshot.removeListener(listener3);
- // scroll
- term.scroll(1, 2, 1);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(0, listener3.N);
-
- term.scroll(1, 2, 1);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(0, listener3.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(0, listener3.N);
-
- snapshot.addListener(listener3);
- listener1.reset();
- listener2.reset();
- listener3.reset();
-
- // add listener multiple times
- snapshot.addListener(listener3);
-
- // scroll
- term.scroll(1, 2, -1);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(2, listener3.N);
-
- term.scroll(1, 2, -1);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(2, listener3.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(2, listener3.N);
-
- listener1.reset();
- listener2.reset();
- listener3.reset();
- // remove the duplicate listener
- snapshot.removeListener(listener3);
-
- // scroll
- term.scroll(1, 2, 1);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
-
- listener1.reset();
- listener2.reset();
- listener3.reset();
-
- // setDimensions
- term.setDimensions(2, 2);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
-
- snapshot.updateSnapshot(false);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
-
- listener1.reset();
- listener2.reset();
- listener3.reset();
-
- // setDimensions
- term.setDimensions(20, 20);
- assertEquals(1, listener1.N);
- assertEquals(1, listener2.N);
- assertEquals(1, listener3.N);
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.isOutOfDate());
- }
-
- public void testWindowOfInterest() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalTextTestHelper.fillSimple(term, "0123456789");
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
- snapshot.setInterestWindow(7, 4);
- snapshot.setInterestWindow(9, 4);
- snapshot.updateSnapshot(false);
- }
-
- public void testWindowOfInterest2() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalTextTestHelper.fillSimple(term, "0123456789");
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- snapshot.updateSnapshot(false);
- term.scroll(7, 3, -1);
- snapshot.setInterestWindow(9, 4);
- snapshot.updateSnapshot(false);
- }
-
- public void testAddLine() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalTextTestHelper.fillSimple(term, "0123456789");
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- term.setMaxHeight(20);
- snapshot.updateSnapshot(false);
- assertEquals(10, term.getHeight());
- assertEquals(20, term.getMaxHeight());
- assertFalse(snapshot.isOutOfDate());
- term.addLine();
- assertTrue(snapshot.isOutOfDate());
- assertEquals(11, term.getHeight());
- assertEquals(10, snapshot.getHeight());
- snapshot.updateSnapshot(false);
- assertEquals(11, term.getHeight());
- assertEquals(11, snapshot.getHeight());
- assertEquals(20, term.getMaxHeight());
-
- term.addLine();
- term.addLine();
- assertEquals(11, snapshot.getHeight());
- assertEquals(13, term.getHeight());
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertEquals(13, snapshot.getHeight());
- assertEquals(13, term.getHeight());
- assertEquals(20, term.getMaxHeight());
- }
-
- public void testHasDimensionsChanged() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalTextTestHelper.fillSimple(term, "0123456789");
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- term.setMaxHeight(20);
- snapshot.setInterestWindow(3, 4);
- snapshot.updateSnapshot(false);
- assertEquals(10, term.getHeight());
- assertEquals(20, term.getMaxHeight());
- assertFalse(snapshot.isOutOfDate());
- term.addLine();
- assertTrue(snapshot.isOutOfDate());
- assertEquals(11, term.getHeight());
- assertEquals(10, snapshot.getHeight());
- snapshot.updateSnapshot(false);
- assertTrue(snapshot.hasDimensionsChanged());
- assertEquals(11, term.getHeight());
- assertEquals(11, snapshot.getHeight());
- assertEquals(20, term.getMaxHeight());
-
- term.addLine();
- term.addLine();
- assertEquals(11, snapshot.getHeight());
- assertEquals(13, term.getHeight());
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertTrue(snapshot.hasDimensionsChanged());
- assertEquals(13, snapshot.getHeight());
- assertEquals(13, term.getHeight());
- assertEquals(20, term.getMaxHeight());
- }
-
- public void testCursor() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalTextTestHelper.fillSimple(term, "0123456789");
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- term.setMaxHeight(20);
- snapshot.setInterestWindow(3, 4);
- snapshot.updateSnapshot(false);
- term.setCursorLine(2);
- term.setCursorColumn(1);
- snapshot.updateSnapshot(false);
- assertEquals(2, snapshot.getCursorLine());
- assertEquals(1, snapshot.getCursorColumn());
- term.setCursorLine(3);
- term.setCursorColumn(2);
- snapshot.updateSnapshot(false);
- assertEquals(3, snapshot.getCursorLine());
- assertEquals(2, snapshot.getCursorColumn());
- }
-
- public void testCursor2() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalTextTestHelper.fillSimple(term, "0123456789");
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- term.setMaxHeight(20);
- snapshot.setInterestWindow(3, 4);
- snapshot.updateSnapshot(false);
- term.setCursorLine(2);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- term.setCursorColumn(1);
- assertTrue(snapshot.isOutOfDate());
- }
-
- public void testHasTerminalChanged() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "12345\n" + "abcde\n" + "ABCDE\n" + "vwxzy\n" + "VWXYZ";
- TerminalTextTestHelper.fill(term, s);
-
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- assertTrue(snapshot.hasTerminalChanged());
- snapshot.updateSnapshot(false);
-
- assertTrue(snapshot.hasTerminalChanged());
-
- // make a change and expect it to be changed
- term.setChar(0, 0, '?', null);
- snapshot.updateSnapshot(false);
- assertTrue(snapshot.hasTerminalChanged());
-
- // make a change and expect it to be changed
- term.setChars(1, 1, new char[] { '?', '!', '.' }, null);
- snapshot.updateSnapshot(false);
- assertTrue(snapshot.hasTerminalChanged());
-
- // scroll
- term.scroll(1, 2, -1);
- snapshot.updateSnapshot(false);
- assertTrue(snapshot.hasTerminalChanged());
-
- // scroll
- term.scroll(1, 2, 1);
- snapshot.updateSnapshot(false);
- assertTrue(snapshot.hasTerminalChanged());
-
- // scroll
- term.scroll(1, 2, -1);
- snapshot.updateSnapshot(true);
- assertTrue(snapshot.hasTerminalChanged());
-
- // scroll
- term.scroll(1, 2, 1);
- snapshot.updateSnapshot(true);
- assertTrue(snapshot.hasTerminalChanged());
-
- // setDimensions
- term.setDimensions(2, 2);
- snapshot.updateSnapshot(false);
- assertTrue(snapshot.hasTerminalChanged());
-
- // setDimensions
- term.setDimensions(20, 20);
- snapshot.updateSnapshot(false);
- assertTrue(snapshot.hasTerminalChanged());
-
- snapshot.updateSnapshot(false);
- assertFalse(snapshot.hasTerminalChanged());
-
- // window of interest changes should NOT set hasTerminalChanged
- snapshot.updateSnapshot(false);
- snapshot.setInterestWindow(7, 4);
-
- assertFalse(snapshot.hasTerminalChanged());
- }
-
- public void testGetTerminalTextData() {
- ITerminalTextData term = makeITerminalTextData();
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- assertSame(term, snapshot.getTerminalTextData());
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshotWindowTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshotWindowTest.java
deleted file mode 100644
index c0988c78369..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataSnapshotWindowTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-
-import junit.framework.TestCase;
-
-public class TerminalTextDataSnapshotWindowTest extends TestCase {
- String toMultiLineText(ITerminalTextDataReadOnly term) {
- return TerminalTextTestHelper.toMultiLineText(term);
- }
-
- String toSimpleText(ITerminalTextDataReadOnly term) {
- return TerminalTextTestHelper.toSimple(term);
- }
-
- protected ITerminalTextData makeITerminalTextData() {
- return new TerminalTextData();
- }
-
- ITerminalTextDataSnapshot snapshotSimple(String text, ITerminalTextData term) {
- TerminalTextTestHelper.fillSimple(term, text);
- ITerminalTextDataSnapshot snapshot = term.makeSnapshot();
- return snapshot;
-
- }
-
- /**
- * @param snapshot
- * @param expected a string of 0 and 1 (1 means changed)
- */
- void assertChangedLines(ITerminalTextDataSnapshot snapshot, String expected) {
- assertEquals(expected.length(), snapshot.getHeight());
- StringBuffer buffer = new StringBuffer();
- for (int line = 0; line < expected.length(); line++) {
- if (snapshot.hasLineChanged(line))
- buffer.append('1');
- else
- buffer.append('0');
- }
- assertEquals(expected, buffer.toString());
- }
-
- public void testSetInterestWindow() {
- ITerminalTextData term = makeITerminalTextData();
- ITerminalTextDataSnapshot snapshot = snapshotSimple("0123456789", term);
- assertEquals(0, snapshot.getInterestWindowStartLine());
- assertEquals(-1, snapshot.getInterestWindowSize());
- snapshot.setInterestWindow(2, 3);
- assertEquals(2, snapshot.getInterestWindowStartLine());
- assertEquals(3, snapshot.getInterestWindowSize());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011100000");
- }
-
- public void testSetChar() {
- ITerminalTextData term = makeITerminalTextData();
- ITerminalTextDataSnapshot snapshot = snapshotSimple("0123456789", term);
- snapshot.setInterestWindow(2, 3);
- snapshot.updateSnapshot(false);
- assertEquals(" 234 ", toSimpleText(snapshot));
-
- term.setChar(0, 0, 'x', null);
- assertFalse(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0000000000");
-
- term.setChar(1, 0, 'x', null);
- assertFalse(snapshot.isOutOfDate());
-
- term.setChar(2, 0, 'x', null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0010000000");
-
- term.setChar(3, 0, 'x', null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0001000000");
-
- term.setChar(4, 0, 'x', null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0000100000");
-
- term.setChar(5, 0, 'x', null);
- assertFalse(snapshot.isOutOfDate());
-
- term.setChar(6, 0, 'x', null);
- assertFalse(snapshot.isOutOfDate());
-
- for (int i = 0; i < 9; i++) {
- term.setChar(i, 0, (char) ('a' + i), null);
- }
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011100000");
- }
-
- public void testSetChars() {
- ITerminalTextData term = makeITerminalTextData();
- ITerminalTextDataSnapshot snapshot = snapshotSimple("0123456789", term);
- snapshot.setInterestWindow(2, 3);
- snapshot.updateSnapshot(false);
- assertEquals(" 234 ", toSimpleText(snapshot));
-
- term.setChars(0, 0, "x".toCharArray(), null);
- assertFalse(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0000000000");
-
- term.setChars(1, 0, "x".toCharArray(), null);
- assertFalse(snapshot.isOutOfDate());
-
- term.setChars(2, 0, "x".toCharArray(), null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0010000000");
-
- term.setChars(3, 0, "x".toCharArray(), null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0001000000");
-
- term.setChars(4, 0, "x".toCharArray(), null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0000100000");
-
- term.setChars(5, 0, "x".toCharArray(), null);
- assertFalse(snapshot.isOutOfDate());
-
- term.setChars(6, 0, "x".toCharArray(), null);
- assertFalse(snapshot.isOutOfDate());
- for (int i = 0; i < 9; i++) {
- term.setChars(i, 0, (i + "").toCharArray(), null);
- }
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011100000");
- }
-
- public void testSetChars2() {
- ITerminalTextData term = makeITerminalTextData();
- ITerminalTextDataSnapshot snapshot = snapshotSimple("0123456789", term);
- snapshot.setInterestWindow(2, 3);
- snapshot.updateSnapshot(false);
- assertEquals(" 234 ", toSimpleText(snapshot));
-
- term.setChars(0, 0, "abcdef".toCharArray(), 2, 1, null);
- assertFalse(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0000000000");
-
- term.setChars(1, 0, "abcdef".toCharArray(), 2, 1, null);
- assertFalse(snapshot.isOutOfDate());
-
- term.setChars(2, 0, "abcdef".toCharArray(), 2, 1, null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0010000000");
-
- term.setChars(3, 0, "abcdef".toCharArray(), 2, 1, null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0001000000");
-
- term.setChars(4, 0, "abcdef".toCharArray(), 2, 1, null);
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0000100000");
-
- term.setChars(5, 0, "abcdef".toCharArray(), 2, 1, null);
- assertFalse(snapshot.isOutOfDate());
-
- term.setChars(6, 0, "abcdef".toCharArray(), 2, 1, null);
- assertFalse(snapshot.isOutOfDate());
- for (int i = 0; i < 9; i++) {
- term.setChars(i, 0, ("ab" + i + "def").toCharArray(), 2, 1, null);
- }
- assertTrue(snapshot.isOutOfDate());
- snapshot.updateSnapshot(false);
- assertChangedLines(snapshot, "0011100000");
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataStoreTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataStoreTest.java
deleted file mode 100644
index 29e7ef4c0c0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataStoreTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-public class TerminalTextDataStoreTest extends AbstractITerminalTextDataTest {
- @Override
- protected ITerminalTextData makeITerminalTextData() {
- return new TerminalTextDataStore();
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataTest.java
deleted file mode 100644
index ade4d22d761..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-public class TerminalTextDataTest extends AbstractITerminalTextDataTest {
- @Override
- protected ITerminalTextData makeITerminalTextData() {
- return new TerminalTextData();
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindowTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindowTest.java
deleted file mode 100644
index d681687a7ef..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextDataWindowTest.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import java.util.ArrayList;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.LineSegment;
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-public class TerminalTextDataWindowTest extends AbstractITerminalTextDataTest {
- int fOffset;
- int fSize;
-
- public TerminalTextDataWindowTest() {
- fOffset = 2;
- fSize = 2;
- }
-
- @Override
- protected ITerminalTextData makeITerminalTextData() {
- TerminalTextDataWindow term = new TerminalTextDataWindow();
- term.setWindow(fOffset, fSize);
- return term;
- }
-
- /**
- * Used for multi line text
- * @param expected
- * @param actual
- */
- @Override
- protected void assertEqualsTerm(String expected, String actual) {
- assertEquals(stripMultiLine(expected), stripMultiLine(actual));
- }
-
- private String stripMultiLine(String s) {
- StringBuffer b = new StringBuffer();
- // String[] lines=s.split("\n");
- //
- ArrayList l = new ArrayList<>();
- int j = 0;
- for (int k = 0; k < s.length(); k++) {
- if (s.charAt(k) == '\n') {
- l.add(s.substring(j, k));
- j = k;
- }
- }
- j = l.size() - 1;
- while (j >= 0 && "".equals(l.get(j))) {
- j--;
- }
- String[] lines = new String[j + 1];
- while (j >= 0) {
- lines[j] = l.get(j);
- j--;
- }
- //
- for (int i = 0; i < lines.length; i++) {
- if (i > 0)
- b.append("\n"); //$NON-NLS-1$
- if (i >= fOffset && i < fOffset + fSize)
- b.append(lines[i]);
- else
- b.append(new String(new char[lines[i].length()]));
- }
- return b.toString();
- }
-
- /**
- * Used for simple text
- * @param expected
- * @param actual
- */
- @Override
- protected void assertEqualsSimple(String expected, String actual) {
- assertEquals(stripSimple(expected), stripSimple(actual));
- }
-
- String stripSimple(String s) {
- StringBuffer b = new StringBuffer();
- for (int i = 0; i < s.length(); i++) {
- if (i >= fOffset && i < fOffset + fSize)
- b.append(s.charAt(i));
- else
- b.append(' ');
- }
- return b.toString();
- }
-
- @Override
- public void testAddLine() {
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- ITerminalTextData term = makeITerminalTextData();
- fill(term, s);
- term.addLine();
- assertEqualsTerm("222\n" + "333\n" + "444\n" + "\0\0\0\n" + "\000\000\000", toMultiLineText(term));
- }
-
- @Override
- public void testMaxSize() {
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- ITerminalTextData term = makeITerminalTextData();
- term.setMaxHeight(8);
- fill(term, s);
- assertEquals(5, term.getHeight());
- assertEquals(8, term.getMaxHeight());
- term.addLine();
- assertEquals(6, term.getHeight());
- assertEqualsTerm("111\n" + "222\n" + "333\n" + "444\n" + "555\n" + "\000\000\000", toMultiLineText(term));
- term.addLine();
- assertEquals(7, term.getHeight());
- assertEqualsTerm("111\n" + "222\n" + "333\n" + "444\n" + "555\n" + "\000\000\000\n" + "\000\000\000",
- toMultiLineText(term));
- term.addLine();
- assertEquals(8, term.getHeight());
- assertEqualsTerm(
- "111\n" + "222\n" + "333\n" + "444\n" + "555\n" + "\000\000\000\n" + "\000\000\000\n" + "\000\000\000",
- toMultiLineText(term));
- term.addLine();
- assertEquals(8, term.getHeight());
- assertEqualsTerm("222\n" + "333\n" + "444\n" + "\000\000\000\n" + "\000\000\000\n" + "\000\000\000\n"
- + "\000\000\000\n" + "\000\000\000", toMultiLineText(term));
- }
-
- @Override
- public void testGetLineSegments() {
- TerminalStyle s1 = getDefaultStyle();
- TerminalStyle s2 = s1.setBold(true);
- TerminalStyle s3 = s1.setUnderline(true);
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(8, 8);
- LineSegment[] segments;
-
- term.setChars(2, 0, "0123".toCharArray(), s1);
- term.setChars(2, 4, "abcd".toCharArray(), null);
- segments = term.getLineSegments(2, 0, term.getWidth());
- assertEquals(2, segments.length);
- assertSegment(0, "0123", s1, segments[0]);
- assertSegment(4, "abcd", null, segments[1]);
-
- segments = term.getLineSegments(2, 4, term.getWidth() - 4);
- assertEquals(1, segments.length);
- assertSegment(4, "abcd", null, segments[0]);
-
- segments = term.getLineSegments(2, 3, 2);
- assertEquals(2, segments.length);
- assertSegment(3, "3", s1, segments[0]);
- assertSegment(4, "a", null, segments[1]);
-
- segments = term.getLineSegments(2, 7, 1);
- assertEquals(1, segments.length);
- assertSegment(7, "d", null, segments[0]);
-
- segments = term.getLineSegments(2, 0, 1);
- assertEquals(1, segments.length);
- assertSegment(0, "0", s1, segments[0]);
-
- // line 1
- term.setChars(1, 0, "x".toCharArray(), s1);
- term.setChars(1, 1, "y".toCharArray(), s2);
- term.setChars(1, 2, "z".toCharArray(), s3);
-
- segments = term.getLineSegments(1, 0, term.getWidth());
- assertEquals(1, segments.length);
- assertSegment(0, "\000\000\000\000\000\000\000\000", null, segments[0]);
-
- // line 3
- segments = term.getLineSegments(3, 0, term.getWidth());
- assertEquals(1, segments.length);
- assertSegment(0, "\000\000\000\000\000\000\000\000", null, segments[0]);
-
- }
-
- @Override
- public void testGetChar() {
- String s = "12345\n" + "abcde\n" + "ABCDE";
- ITerminalTextData term = makeITerminalTextData();
- fill(term, s);
- assertEquals('\000', term.getChar(0, 0));
- assertEquals('\000', term.getChar(0, 1));
- assertEquals('\000', term.getChar(0, 2));
- assertEquals('\000', term.getChar(0, 3));
- assertEquals('\000', term.getChar(0, 4));
- assertEquals('\000', term.getChar(1, 0));
- assertEquals('\000', term.getChar(1, 1));
- assertEquals('\000', term.getChar(1, 2));
- assertEquals('\000', term.getChar(1, 3));
- assertEquals('\000', term.getChar(1, 4));
- assertEquals('A', term.getChar(2, 0));
- assertEquals('B', term.getChar(2, 1));
- assertEquals('C', term.getChar(2, 2));
- assertEquals('D', term.getChar(2, 3));
- assertEquals('E', term.getChar(2, 4));
- }
-
- @Override
- public void testGetStyle() {
- ITerminalTextData term = makeITerminalTextData();
- TerminalStyle style = getDefaultStyle();
- term.setDimensions(6, 3);
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = (char) ('a' + column + line);
- term.setChar(line, column, c, style.setForeground(c));
- }
- }
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = (char) ('a' + column + line);
- TerminalStyle s = null;
- if (line >= fOffset && line < fOffset + fSize)
- s = style.setForeground(c);
- assertSame(s, term.getStyle(line, column));
- }
- }
-
- }
-
- @Override
- public void testSetChar() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(6, 3);
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- term.setChar(line, column, (char) ('a' + column + line), null);
- }
- }
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = 0;
- if (line >= fOffset && line < fOffset + fSize)
- c = (char) ('a' + column + line);
- assertEquals(c, term.getChar(line, column));
- }
- }
- assertEqualsTerm("abc\n" + "bcd\n" + "cde\n" + "def\n" + "efg\n" + "fgh", toMultiLineText(term));
- }
-
- @Override
- public void testSetChars() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(6, 3);
- for (int line = 0; line < term.getHeight(); line++) {
- char[] chars = new char[term.getWidth()];
- for (int column = 0; column < term.getWidth(); column++) {
- chars[column] = (char) ('a' + column + line);
- }
- term.setChars(line, 0, chars, null);
- }
- for (int line = 0; line < term.getHeight(); line++) {
- for (int column = 0; column < term.getWidth(); column++) {
- char c = 0;
- if (line >= fOffset && line < fOffset + fSize)
- c = (char) ('a' + column + line);
- assertEquals(c, term.getChar(line, column));
- }
- }
- assertEqualsTerm("abc\n" + "bcd\n" + "cde\n" + "def\n" + "efg\n" + "fgh", toMultiLineText(term));
-
- term.setChars(3, 1, new char[] { '1', '2' }, null);
- assertEqualsTerm("abc\n" + "bcd\n" + "cde\n" + "d12\n" + "efg\n" + "fgh", toMultiLineText(term));
- // check if chars are correctly chopped
- term.setChars(4, 1, new char[] { '1', '2', '3', '4', '5' }, null);
- assertEqualsTerm("abc\n" + "bcd\n" + "cde\n" + "d12\n" + "e12\n" + "fgh", toMultiLineText(term));
-
- }
-
- @Override
- public void testSetCharsLen() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "ZYXWVU\n" + "abcdef\n" + "ABCDEF";
- fill(term, s);
- char[] chars = new char[] { '1', '2', '3', '4', '5', '6', '7', '8' };
- term.setChars(1, 0, chars, 0, 6, null);
- assertEqualsTerm("ZYXWVU\n" + "123456\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- term.setChars(1, 0, chars, 0, 5, null);
- assertEqualsTerm("ZYXWVU\n" + "12345f\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- term.setChars(1, 0, chars, 1, 5, null);
- assertEqualsTerm("ZYXWVU\n" + "23456f\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- term.setChars(1, 1, chars, 1, 4, null);
- assertEqualsTerm("ZYXWVU\n" + "a2345f\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- term.setChars(1, 2, chars, 3, 4, null);
- assertEqualsTerm("ZYXWVU\n" + "ab4567\n" + "ABCDEF", toMultiLineText(term));
-
- fill(term, s);
- }
-
- @Override
- public void testSetCopyLines() {
- ITerminalTextData term = new TerminalTextDataStore();
- String s = "012345";
- fillSimple(term, s);
- ITerminalTextData termCopy = makeITerminalTextData();
- String sCopy = "abcde";
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 0, 0);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple(sCopy, toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 0, 5);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("01234", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 0, 2);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("01cde", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 0, 1, 2);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("a01de", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 1, 1, 2);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("a12de", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 1, 1, 4);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("a1234", toSimple(termCopy));
-
- fillSimple(termCopy, sCopy);
- termCopy.copyRange(term, 2, 1, 4);
- assertEqualsSimple(s, toSimple(term));
- assertEqualsSimple("a2345", toSimple(termCopy));
- }
-
- @Override
- public void testScrollNegative() {
- scrollTest(0, 2, -1, " 23 ", " 23 ");
- scrollTest(0, 1, -1, " 23 ", " 23 ");
- scrollTest(0, 6, -1, " 23 ", " 3 ");
- scrollTest(0, 6, -6, " 23 ", " ");
- scrollTest(0, 6, -7, " 23 ", " ");
- scrollTest(0, 6, -8, " 23 ", " ");
- scrollTest(0, 6, -2, " 23 ", " ");
- scrollTest(1, 1, -1, " 23 ", " 23 ");
- scrollTest(1, 2, -1, " 23 ", " 3 ");
- scrollTest(5, 1, -1, " 23 ", " 23 ");
- scrollTest(5, 1, -1, " 23 ", " 23 ");
- }
-
- @Override
- public void testScrollAll() {
- scrollTest(0, 6, 1, " 2345", " 2 ");
- scrollTest(0, 6, -1, " 2345", " 3 ");
- scrollTest(0, 6, 2, " 2345", " ");
- scrollTest(0, 6, -2, " 2345", " ");
- }
-
- @Override
- public void testCopyLineWithOffset() {
- ITerminalTextData term = makeITerminalTextData();
- String s = "111\n" + "222\n" + "333\n" + "444\n" + "555";
- fill(term, s);
- ITerminalTextData dest = makeITerminalTextData();
- String sCopy = "aaa\n" + "bbb\n" + "ccc\n" + "ddd\n" + "eee";
- fill(dest, sCopy);
- copySelective(dest, term, 1, 0, new boolean[] { true, false, false, true });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm("222\n" + "bbb\n" + "ccc\n" + "\00\00\00\n" + "eee", toMultiLineText(dest));
-
- fill(dest, sCopy);
- copySelective(dest, term, 2, 0, new boolean[] { true, true });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm("333\n" + "444\n" + "ccc\n" + "ddd\n" + "eee", toMultiLineText(dest));
-
- fill(dest, sCopy);
- copySelective(dest, term, 0, 0, new boolean[] { true, true, true, true, true });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm(s, toMultiLineText(dest));
-
- fill(dest, sCopy);
- copySelective(dest, term, 0, 0, new boolean[] { false, false, false, false, false });
- assertEqualsTerm(s, toMultiLineText(term));
- assertEqualsTerm(sCopy, toMultiLineText(dest));
- }
-
- public void testCopy() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(3, 1);
- ITerminalTextData data = new TerminalTextData();
- fillSimple(data, "abcd");
- term.copy(data);
- }
-
- @Override
- public void testWrappedLines() {
- ITerminalTextData term = makeITerminalTextData();
- term.setDimensions(4, 4);
- for (int i = 0; i < term.getHeight(); ++i)
- assertFalse(term.isWrappedLine(i));
- term.setWrappedLine(0); // outside window
- term.setWrappedLine(3);
- assertFalse(term.isWrappedLine(0));
- assertFalse(term.isWrappedLine(1));
- assertFalse(term.isWrappedLine(2));
- assertTrue(term.isWrappedLine(3));
- term.cleanLine(3);
- assertFalse(term.isWrappedLine(3));
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextTestHelper.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextTestHelper.java
deleted file mode 100644
index 205d304614f..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/model/TerminalTextTestHelper.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [168197] Fix Terminal for CDC-1.1/Foundation-1.1
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.model;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataReadOnly;
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-public class TerminalTextTestHelper {
- static public String toSimple(ITerminalTextDataReadOnly term) {
- return toSimple(toMultiLineText(term));
- }
-
- static public String toMultiLineText(ITerminalTextDataReadOnly term) {
- StringBuffer buff = new StringBuffer();
- int width = term.getWidth();
- for (int line = 0; line < term.getHeight(); line++) {
- if (line > 0)
- buff.append("\n"); //$NON-NLS-1$
- for (int column = 0; column < width; column++) {
- buff.append(term.getChar(line, column));
- }
- }
- return buff.toString();
- }
-
- static public String toSimple(String str) {
- //return str.replaceAll("\000", " ").replaceAll("\n", "");
- //
- StringBuffer buf = new StringBuffer(str.length());
- for (int i = 0; i < str.length(); i++) {
- char c = str.charAt(i);
- switch (c) {
- case '\000':
- buf.append(' ');
- break;
- case '\n':
- break;
- default:
- buf.append(c);
- break;
- }
- }
- return buf.toString();
- //
- }
-
- /**
- * @param term
- * @param s each character is one line
- */
- static public void fillSimple(ITerminalTextData term, String s) {
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- term.setDimensions(s.length(), 1);
- for (int i = 0; i < s.length(); i++) {
- char c = s.charAt(i);
- term.setChar(i, 0, c, style.setForeground(c));
- }
- }
-
- /**
- * @param term
- * @param s lines separated by \n. The terminal will automatically
- * resized to fit the text.
- */
- static public void fill(ITerminalTextData term, String s) {
- int width = 0;
- int len = 0;
- int height = 0;
- for (int i = 0; i < s.length(); i++) {
- char c = s.charAt(i);
- if (c == '\n') {
- width = Math.max(width, len);
- len = 0;
- } else {
- if (len == 0)
- height++;
- len++;
- }
- }
- width = Math.max(width, len);
- term.setDimensions(height, width);
- fill(term, 0, 0, s);
- }
-
- static public void fill(ITerminalTextData term, int column, int line, String s) {
- int xx = column;
- int yy = line;
- TerminalStyle style = TerminalStyle.getDefaultStyle();
- for (int i = 0; i < s.length(); i++) {
- char c = s.charAt(i);
- if (c == '\n') {
- yy++;
- xx = column;
- } else {
- term.setChar(yy, xx, c, style.setForeground(c));
- xx++;
- }
- }
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestConnection.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestConnection.java
deleted file mode 100644
index ea670329ddb..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestConnection.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.speedtest;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.internal.terminal.control.ITerminalListener3.TerminalTitleRequestor;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-
-public class SpeedTestConnection extends Thread {
- private static int fgNo;
- private final ITerminalControl fControl;
- private final InputStream fInputStream;
- private final SpeedTestSettings fSettings;
-
- protected SpeedTestConnection(InputStream inputStream, SpeedTestSettings settings, ITerminalControl control) {
- super("SpeedTestConnection-" + fgNo++);
- fControl = control;
- fInputStream = inputStream;
- fSettings = settings;
- }
-
- @Override
- public void run() {
- fControl.setState(TerminalState.CONNECTED);
-
- try {
- readDataForever(fInputStream, fControl.getRemoteToTerminalOutputStream());
- } catch (IOException e) {
- connectFailed(e.getMessage(), e.getMessage());
- }
- // when reading is done, we set the state to closed
- fControl.setState(TerminalState.CLOSED);
- }
-
- private void connectFailed(String terminalText, String msg) {
- Logger.log(terminalText);
- fControl.displayTextInTerminal(terminalText);
- fControl.setState(TerminalState.CLOSED);
- fControl.setMsg(msg);
- }
-
- /**
- * Read the data from the input file and display it in the terminal.
- * @param in
- * @throws IOException
- */
- private void readDataForever(InputStream in, OutputStream os) throws IOException {
- long N = 0;
- long T = 0;
- long tDisplay = 0;
- int NCalls = 0;
- int bufferSize = fSettings.getBufferSize();
- int throttle = fSettings.getThrottle();
- // read the data
- BufferedReader reader = new BufferedReader(new InputStreamReader(in));
- // read until the thread gets interrupted....
- String info = "";
- int n = 0;
- byte[] crnl = "\r\n".getBytes("UTF-8");
- long t0 = System.currentTimeMillis();
- String line = null;
- do {
- line = reader.readLine();
-
- // read some bytes
- if (line != null) {
- os.write(line.getBytes("UTF-8"));
- os.write(crnl);
- n += line.length();
- }
- // process at least this number of characters to update the UI
- if (line == null || n > bufferSize) {
- if (throttle > 0)
- sleep(throttle);
- // we assume we get ASCII UTF8 bytes
- long t = System.currentTimeMillis();
- T += t - t0;
- N += n;
- NCalls++;
- if (t - tDisplay > 1000 && T > 0) {
- long rate = (1000 * N) / T;
- info = rate + " byte/s = " + rate * 8 + " baud " + "bytes/call=" + N / NCalls;
- info = rate + " byte/s with buffer size " + fSettings.getBufferSize();
- setTitle(info);
- tDisplay = System.currentTimeMillis();
- }
- n = 0;
- t0 = System.currentTimeMillis();
- }
- } while (line != null);
- }
-
- private void sleep(int ms) {
- try {
- Thread.sleep(ms);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
-
- private void setTitle(final String title) {
- Display.getDefault().asyncExec(() -> fControl.setTerminalTitle(title, TerminalTitleRequestor.OTHER));
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestConnector.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestConnector.java
deleted file mode 100644
index b2b1c33f88c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestConnector.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [225853][api] Provide more default functionality in TerminalConnectorImpl
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.speedtest;
-
-import java.io.BufferedInputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.tm.internal.terminal.control.ITerminalListener3.TerminalTitleRequestor;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalControl;
-import org.eclipse.tm.internal.terminal.provisional.api.Logger;
-import org.eclipse.tm.internal.terminal.provisional.api.NullSettingsStore;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.internal.terminal.provisional.api.provider.TerminalConnectorImpl;
-
-public class SpeedTestConnector extends TerminalConnectorImpl {
- final SpeedTestSettings fSettings = new SpeedTestSettings();
- InputStream fInputStream;
- OutputStream fOutputStream;
- SpeedTestConnection fConnection;
-
- public SpeedTestConnector() {
- }
-
- @Override
- synchronized public void connect(ITerminalControl control) {
- super.connect(control);
- fControl.setState(TerminalState.CONNECTING);
- String file = fSettings.getInputFile();
- try {
- fInputStream = new BufferedInputStream(new FileInputStream(file));
- } catch (FileNotFoundException e) {
- disconnect();
- fControl.setMsg(file + ": " + e.getLocalizedMessage());
- return;
- }
- fOutputStream = System.out;
- fControl.setTerminalTitle(fSettings.getInputFile(), TerminalTitleRequestor.OTHER);
- fConnection = new SpeedTestConnection(fInputStream, fSettings, fControl);
- fConnection.start();
- }
-
- @Override
- synchronized public void doDisconnect() {
- if (fConnection != null) {
- fConnection.interrupt();
- fConnection = null;
- }
- if (fInputStream != null) {
- try {
- fInputStream.close();
- } catch (Exception exception) {
- Logger.logException(exception);
- }
- }
- fInputStream = null;
- if (fOutputStream != null) {
- try {
- fOutputStream.close();
- } catch (Exception exception) {
- Logger.logException(exception);
- }
- }
- fOutputStream = null;
- }
-
- synchronized public InputStream getInputStream() {
- return fInputStream;
- }
-
- @Override
- synchronized public OutputStream getTerminalToRemoteStream() {
- return fOutputStream;
- }
-
- @Override
- public String getSettingsSummary() {
- return fSettings.getInputFile();
- }
-
- @Override
- public void setDefaultSettings() {
- fSettings.load(new NullSettingsStore());
- }
-
- @Override
- public void load(ISettingsStore store) {
- fSettings.load(store);
- }
-
- @Override
- public void save(ISettingsStore store) {
- fSettings.save(store);
- }
-
- @Override
- public void setTerminalSize(int newWidth, int newHeight) {
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestSettings.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestSettings.java
deleted file mode 100644
index 8283cf4a927..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/speedtest/SpeedTestSettings.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.speedtest;
-
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-public class SpeedTestSettings {
- String fInputFile = "";
- String fBufferSize = "";
- String fThrottle;
-
- String getInputFile() {
- return fInputFile;
- }
-
- public String getBufferSizeString() {
- return getBufferSize() + "";
- }
-
- public void setBufferSizeString(String bufferSize) {
- fBufferSize = bufferSize;
- }
-
- public int getBufferSize() {
- try {
- return Integer.parseInt(fBufferSize);
- } catch (RuntimeException e) {
- return 1024;
- }
- }
-
- void setInputFile(String testFile) {
- fInputFile = testFile;
- }
-
- public void load(ISettingsStore store) {
- fInputFile = store.get("inputFile", "");
- fBufferSize = store.get("bufferSize", "");
- fThrottle = store.get("throttle", "0");
- }
-
- public void save(ISettingsStore store) {
- store.put("inputFile", fInputFile);
- store.put("bufferSize", fBufferSize);
- store.put("throttle", fThrottle);
- }
-
- public String getThrottleString() {
- return fThrottle;
- }
-
- public int getThrottle() {
- try {
- return Integer.parseInt(fThrottle);
- } catch (RuntimeException e) {
- return 0;
- }
- }
-
- public void setThrottleString(String throttle) {
- fThrottle = throttle;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/Main.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/Main.java
deleted file mode 100644
index fd1061db108..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/Main.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.terminalcanvas;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class Main {
-
- /**
- * @param args
- */
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new FillLayout());
- new TerminalTextCanvas(shell, SWT.NONE);
- shell.setSize(200, 150);
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/Snippet48.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/Snippet48.java
deleted file mode 100644
index 5bd030dc582..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/Snippet48.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.terminalcanvas;
-
-/*
- * Canvas example snippet: scroll an image (flicker free, no double buffering)
- *
- * For a list of all SWT example snippets see
- * http://www.eclipse.org/swt/snippets/
- */
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Shell;
-
-public class Snippet48 {
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new FillLayout());
- Image originalImage = null;
- FileDialog dialog = new FileDialog(shell, SWT.OPEN);
- dialog.setText("Open an image file or cancel");
- String string = dialog.open();
- if (string != null) {
- originalImage = new Image(display, string);
- }
- final Image image = originalImage;
- final Point origin = new Point(0, 0);
- final Canvas canvas = new Canvas(shell, SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE | SWT.V_SCROLL | SWT.H_SCROLL);
- final ScrollBar hBar = canvas.getHorizontalBar();
- hBar.addListener(SWT.Selection, e -> {
- int hSelection = hBar.getSelection();
- int destX = -hSelection - origin.x;
- Rectangle rect = image.getBounds();
- canvas.scroll(destX, 0, 0, 0, rect.width, rect.height, false);
- origin.x = -hSelection;
- });
- final ScrollBar vBar = canvas.getVerticalBar();
- vBar.addListener(SWT.Selection, e -> {
- int vSelection = vBar.getSelection();
- int destY = -vSelection - origin.y;
- Rectangle rect = image.getBounds();
- canvas.scroll(0, destY, 0, 0, rect.width, rect.height, false);
- origin.y = -vSelection;
- });
- canvas.addListener(SWT.Resize, e -> {
- Rectangle rect = image.getBounds();
- Rectangle client = canvas.getClientArea();
- hBar.setMaximum(rect.width);
- vBar.setMaximum(rect.height);
- hBar.setThumb(Math.min(rect.width, client.width));
- vBar.setThumb(Math.min(rect.height, client.height));
- int hPage = rect.width - client.width;
- int vPage = rect.height - client.height;
- int hSelection = hBar.getSelection();
- int vSelection = vBar.getSelection();
- if (hSelection >= hPage) {
- if (hPage <= 0)
- hSelection = 0;
- origin.x = -hSelection;
- }
- if (vSelection >= vPage) {
- if (vPage <= 0)
- vSelection = 0;
- origin.y = -vSelection;
- }
- canvas.redraw();
- });
- canvas.addListener(SWT.Paint, e -> {
- GC gc = e.gc;
- gc.drawImage(image, origin.x, origin.y);
- Rectangle rect = image.getBounds();
- Rectangle client = canvas.getClientArea();
- int marginWidth = client.width - rect.width;
- if (marginWidth > 0) {
- gc.fillRectangle(rect.width, 0, marginWidth, client.height);
- }
- int marginHeight = client.height - rect.height;
- if (marginHeight > 0) {
- gc.fillRectangle(0, rect.height, client.width, marginHeight);
- }
- });
- shell.setSize(200, 150);
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- originalImage.dispose();
- display.dispose();
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/TerminalTextCanvas.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/TerminalTextCanvas.java
deleted file mode 100644
index 13f6dd07678..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/TerminalTextCanvas.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.terminalcanvas;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.ScrollBar;
-
-public class TerminalTextCanvas extends Canvas {
- Image image;
- Point origin = new Point(0, 0);
-
- public TerminalTextCanvas(Composite parent, int style) {
- super(parent, SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE | SWT.V_SCROLL | SWT.H_SCROLL | style);
- loadImage(parent);
-
- final ScrollBar hBar = getHorizontalBar();
- hBar.addListener(SWT.Selection, e -> {
- int hSelection = hBar.getSelection();
- int destX = -hSelection - origin.x;
- Rectangle rect = image.getBounds();
- scroll(destX, 0, 0, 0, rect.width, rect.height, false);
- origin.x = -hSelection;
- });
- final ScrollBar vBar = getVerticalBar();
- vBar.addListener(SWT.Selection, e -> {
- int vSelection = vBar.getSelection();
- int destY = -vSelection - origin.y;
- Rectangle rect = image.getBounds();
- scroll(0, destY, 0, 0, rect.width, rect.height, false);
- origin.y = -vSelection;
- });
- addListener(SWT.Resize, e -> {
- Rectangle rect = image.getBounds();
- Rectangle client = getClientArea();
- hBar.setMaximum(rect.width);
- vBar.setMaximum(rect.height);
- hBar.setThumb(Math.min(rect.width, client.width));
- vBar.setThumb(Math.min(rect.height, client.height));
- int hPage = rect.width - client.width;
- int vPage = rect.height - client.height;
- int hSelection = hBar.getSelection();
- int vSelection = vBar.getSelection();
- if (hSelection >= hPage) {
- if (hPage <= 0)
- hSelection = 0;
- origin.x = -hSelection;
- }
- if (vSelection >= vPage) {
- if (vPage <= 0)
- vSelection = 0;
- origin.y = -vSelection;
- }
- redraw();
- });
- addListener(SWT.Paint, e -> {
- GC gc = e.gc;
- System.out.println(gc.getClipping() + " " + origin);
- gc.drawImage(image, origin.x, origin.y);
- Rectangle rect = image.getBounds();
- Rectangle client = getClientArea();
- int marginWidth = client.width - rect.width;
- if (marginWidth > 0) {
- gc.fillRectangle(rect.width, 0, marginWidth, client.height);
- }
- int marginHeight = client.height - rect.height;
- if (marginHeight > 0) {
- gc.fillRectangle(0, rect.height, client.width, marginHeight);
- }
- });
- }
-
- private void loadImage(Composite parent) {
- FileDialog dialog = new FileDialog(parent.getShell(), SWT.OPEN);
- dialog.setText("Open an image file or cancel");
- String string = dialog.open();
- if (string != null) {
- image = new Image(getDisplay(), string);
- }
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/VirtualCanvas.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/VirtualCanvas.java
deleted file mode 100644
index ed610faa10a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/terminalcanvas/VirtualCanvas.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.terminalcanvas;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.ScrollBar;
-
-/**
- * A Canvas
showing a virtual object.
- * Virtual: the extent of the total canvas.
- * Screen: the visible client area in the screen.
- */
-public abstract class VirtualCanvas extends Canvas {
-
- private final Rectangle fVirtualBounds = new Rectangle(0, 0, 0, 0);
- private Rectangle fClientArea;
- private GC fPaintGC = null;
-
- public VirtualCanvas(Composite parent, int style) {
- super(parent, style | SWT.NO_BACKGROUND | SWT.NO_REDRAW_RESIZE);
- fPaintGC = new GC(this);
- addListener(SWT.Paint, event -> paint(event.gc));
- addListener(SWT.Resize, event -> {
- fClientArea = getClientArea();
- updateViewRectangle();
- });
- getVerticalBar().addListener(SWT.Selection, e -> {
- scrollY((ScrollBar) e.widget);
- postScrollEventHandling(e);
-
- });
- getHorizontalBar().addListener(SWT.Selection, e -> {
- scrollX((ScrollBar) e.widget);
- postScrollEventHandling(e);
-
- });
- addDisposeListener(e -> {
- if (fPaintGC != null) {
- fPaintGC.dispose();
- fPaintGC = null;
- }
- });
- }
-
- public void setAutoSelect(boolean on) {
- }
-
- public boolean hasAutoSelect() {
- return false;
- }
-
- public void doAutoSelect() {
- }
-
- /** HACK: run an event loop if the scrollbar is dragged...*/
- private void postScrollEventHandling(Event e) {
- if (true && e.detail == SWT.DRAG) {
- // TODO check if this is always ok???
- // used to process runnables while scrolling
- // This fixes the update problems when scrolling!
- // see: https://bugs.eclipse.org/bugs/show_bug.cgi?id=47582#5
- // TODO investigate:
- // The alternative is to call redraw on the new visible area
- // redraw(expose.x, expose.y, expose.width, expose.height, true);
-
- while (!getDisplay().isDisposed() && getDisplay().readAndDispatch()) {
- // do nothing here...
- }
- }
- }
-
- protected void scrollX(ScrollBar hBar) {
- int hSelection = hBar.getSelection();
- int destX = -hSelection - fVirtualBounds.x;
- fVirtualBounds.x = -hSelection;
- scrollSmart(destX, 0);
- updateViewRectangle();
- }
-
- protected void scrollXDelta(int delta) {
- getHorizontalBar().setSelection(-fVirtualBounds.x + delta);
- scrollX(getHorizontalBar());
- }
-
- protected void scrollY(ScrollBar vBar) {
- int vSelection = vBar.getSelection();
- int destY = -vSelection - fVirtualBounds.y;
- fVirtualBounds.y = -vSelection;
- scrollSmart(0, destY);
- updateViewRectangle();
-
- }
-
- protected void scrollYDelta(int delta) {
- getVerticalBar().setSelection(-fVirtualBounds.y + delta);
- scrollY(getVerticalBar());
- }
-
- private void scrollSmart(int deltaX, int deltaY) {
- Rectangle rect = getBounds();
- scroll(deltaX, deltaY, 0, 0, rect.width, rect.height, false);
- }
-
- protected void revealRect(Rectangle rect) {
- Rectangle visibleRect = getScreenRectInVirtualSpace();
- // scroll the X part
- int deltaX = 0;
- if (rect.x < visibleRect.x) {
- deltaX = rect.x - visibleRect.x;
- } else if (visibleRect.x + visibleRect.width < rect.x + rect.width) {
- deltaX = (rect.x + rect.width) - (visibleRect.x + visibleRect.width);
- }
- if (deltaX != 0) {
- getHorizontalBar().setSelection(-fVirtualBounds.x + deltaX);
- scrollX(getHorizontalBar());
- }
-
- // scroll the Y part
- int deltaY = 0;
- if (rect.y < visibleRect.y) {
- deltaY = rect.y - visibleRect.y;
- } else if (visibleRect.y + visibleRect.height < rect.y + rect.height) {
- deltaY = (rect.y + rect.height) - (visibleRect.y + visibleRect.height);
-
- }
- if (deltaY != 0) {
- getVerticalBar().setSelection(-fVirtualBounds.y + deltaY);
- scrollY(getVerticalBar());
- }
- }
-
- protected void repaint(Rectangle r) {
- if (fPaintGC != null) {
- if (inClipping(r, fClientArea)) {
- fPaintGC.setClipping(r);
- paint(fPaintGC);
- }
- }
- }
-
- /**
- * @param gc
- */
- abstract protected void paint(GC gc);
-
- protected Color getBackgroundCanvasColor() {
- return getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND);
- }
-
- protected void paintUnoccupiedSpace(GC gc, Rectangle clipping) {
- int width = fVirtualBounds.width;
- int height = fVirtualBounds.height;
- int marginWidth = (clipping.x + clipping.width) - width;
- int marginHeight = (clipping.y + clipping.height) - height;
- if (marginWidth > 0 || marginHeight > 0) {
- Color bg = getBackground();
- gc.setBackground(getBackgroundCanvasColor());
- if (marginWidth > 0) {
- gc.fillRectangle(width, clipping.y, marginWidth, clipping.height);
- }
- if (marginHeight > 0) {
- gc.fillRectangle(clipping.x, height, clipping.width, marginHeight);
- }
- gc.setBackground(bg);
- }
- }
-
- /**
- * @private
- */
- protected boolean inClipping(Rectangle clipping, Rectangle r) {
- // TODO check if this is OK in all cases (the <=!)
- //
- if (r.x + r.width <= clipping.x)
- return false;
- if (clipping.x + clipping.width <= r.x)
- return false;
- if (r.y + r.height <= clipping.y)
- return false;
- if (clipping.y + clipping.height <= r.y)
- return false;
-
- return true;
- }
-
- /**
- * @return the screen rect in virtual space (starting with (0,0))
- * of the visible screen. (x,y>=0)
- */
- protected Rectangle getScreenRectInVirtualSpace() {
- return new Rectangle(fClientArea.x - fVirtualBounds.x, fClientArea.y - fVirtualBounds.y, fClientArea.width,
- fClientArea.height);
- }
-
- /**
- * @return the rect in virtual space (starting with (0,0))
- * of the visible screen. (x,y>=0)
- */
- protected Rectangle getRectInVirtualSpace(Rectangle r) {
- return new Rectangle(r.x - fVirtualBounds.x, r.y - fVirtualBounds.y, r.width, r.height);
- }
-
- /**
- * Sets the extend of the virtual dieplay ares
- * @param width
- * @param height
- */
- protected void setVirtualExtend(int width, int height) {
- fVirtualBounds.width = width;
- fVirtualBounds.height = height;
- updateScrollbars();
- updateViewRectangle();
- }
-
- /**
- * sets the scrolling origin. Also sets the scrollbars.
- * Does NOT redraw!
- * Use negative values (move the virtual origin to the top left
- * to see something in the screen (which is located at (0,0))
- * @param x
- * @param y
- */
- protected void setVirtualOrigin(int x, int y) {
- fVirtualBounds.x = x;
- fVirtualBounds.y = y;
- getHorizontalBar().setSelection(x);
- getVerticalBar().setSelection(y);
- updateViewRectangle();
- }
-
- /**
- * @param x
- * @return the virtual coordinate in scree space
- */
- protected int virtualXtoScreen(int x) {
- return x + fVirtualBounds.x;
- }
-
- protected int virtualYtoScreen(int y) {
- return y + fVirtualBounds.y;
- }
-
- protected int screenXtoVirtual(int x) {
- return x - fVirtualBounds.x;
- }
-
- protected int screenYtoVirtual(int y) {
- return y - fVirtualBounds.y;
- }
-
- /** called when the viewed part is changing */
- private final Rectangle fViewRectangle = new Rectangle(0, 0, 0, 0);
-
- void updateViewRectangle() {
- if (fViewRectangle.x == -fVirtualBounds.x && fViewRectangle.y == -fVirtualBounds.y
- && fViewRectangle.width == fClientArea.width && fViewRectangle.height == fClientArea.height)
- return;
- fViewRectangle.x = -fVirtualBounds.x;
- fViewRectangle.y = -fVirtualBounds.y;
- fViewRectangle.width = fClientArea.width;
- fViewRectangle.height = fClientArea.height;
- viewRectangleChanged(fViewRectangle.x, fViewRectangle.y, fViewRectangle.width, fViewRectangle.height);
- }
-
- protected Rectangle getViewRectangle() {
- return fViewRectangle;
- }
-
- /**
- * Called when the viewed part has changed.
- * Override when you need this information....
- * Is only called if the values change!
- * @param x visible in virtual space
- * @param y visible in virtual space
- * @param width
- * @param height
- */
- protected void viewRectangleChanged(int x, int y, int width, int height) {
- // System.out.println(x+" "+y+" "+width+" "+height);
- }
-
- /**
- * @private
- */
- private void updateScrollbars() {
- Point size = getSize();
- Rectangle clientArea = getClientArea();
-
- ScrollBar horizontal = getHorizontalBar();
- if (fVirtualBounds.width <= clientArea.width) {
- // TODO IMPORTANT in ScrollBar.setVisible comment out the line
- // that checks 'isvisible' and returns (at the beginning)
- horizontal.setVisible(false);
- horizontal.setSelection(0);
- } else {
- horizontal.setPageIncrement(clientArea.width - horizontal.getIncrement());
- int max = fVirtualBounds.width + (size.x - clientArea.width);
- horizontal.setMaximum(max);
- horizontal.setThumb(size.x > max ? max : size.x);
- horizontal.setVisible(true);
- }
-
- ScrollBar vertical = getVerticalBar();
- if (fVirtualBounds.height <= clientArea.height) {
- vertical.setVisible(false);
- vertical.setSelection(0);
- } else {
- vertical.setPageIncrement(clientArea.height - vertical.getIncrement());
- int max = fVirtualBounds.height + (size.y - clientArea.height);
- vertical.setMaximum(max);
- vertical.setThumb(size.y > max ? max : size.y);
- vertical.setVisible(true);
- }
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/AbstractLineOrientedDataSource.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/AbstractLineOrientedDataSource.java
deleted file mode 100644
index 923b7f8387c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/AbstractLineOrientedDataSource.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-/**
- * Adds line by line
- *
- */
-abstract class AbstractLineOrientedDataSource implements IDataSource {
- abstract public char[] dataSource();
-
- abstract public TerminalStyle getStyle();
-
- abstract public void next();
-
- @Override
- public int step(ITerminalTextData terminal) {
- next();
- char[] chars = dataSource();
- TerminalStyle style = getStyle();
- int len;
- // keep the synchronized block short!
- synchronized (terminal) {
- terminal.addLine();
- len = Math.min(terminal.getWidth(), chars.length);
- int line = terminal.getHeight() - 1;
- terminal.setChars(line, 0, chars, 0, len, style);
- terminal.setCursorLine(line);
- terminal.setCursorColumn(len - 1);
- }
- return len;
- }
-}
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/DataReader.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/DataReader.java
deleted file mode 100644
index f40ea9c4875..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/DataReader.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-class DataReader implements Runnable {
- final Thread fThread;
- final IDataSource fDataSource;
- final ITerminalTextData fTerminal;
- volatile boolean fStart;
- volatile boolean fStop;
- volatile int fThrottleTime;
- final IStatus fStatus;
- final String fName;
-
- DataReader(String name, ITerminalTextData terminal, IDataSource dataSource, IStatus status) {
- fStatus = status;
- fName = name;
- fTerminal = terminal;
- fDataSource = dataSource;
- fThread = new Thread(this, name);
- fThread.setDaemon(true);
- fThread.start();
- }
-
- @Override
- public void run() {
- long t0 = System.currentTimeMillis() - 1;
- long c = 0;
- int lines = 0;
- while (!Thread.interrupted()) {
- while (!fStart || fStop) {
- sleep(1);
- }
- if (fThrottleTime > 0)
- sleep(fThrottleTime);
- // synchronize because we have to be sure the size does not change while
- // we add lines
- int len = fDataSource.step(fTerminal);
- // keep the synchronized block short!
- c += len;
- lines++;
- if ((fThrottleTime > 0 || (lines % 100 == 0)) && (System.currentTimeMillis() - t0) > 1000) {
- long t = System.currentTimeMillis() - t0;
- final String s = (c * 1000) / (t * 1024) + "kb/s " + (lines * 1000) / t + "lines/sec "
- + (c * 1000 * 8) / t + " bits/s ";
- fStatus.setStatus(s);
- lines = 0;
- t0 = System.currentTimeMillis();
- c = 0;
- }
- }
- }
-
- public int getThrottleTime() {
- return fThrottleTime;
- }
-
- public void setThrottleTime(int throttleTime) {
- fThrottleTime = throttleTime;
- }
-
- private void sleep(int ms) {
- try {
- Thread.sleep(ms);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
-
- public boolean isStart() {
- return fStart;
- }
-
- public void setStart(boolean start) {
- fStart = start;
- }
-
- public String getName() {
- return fName;
- }
-
- public boolean isStop() {
- return fStop;
- }
-
- public void setStop(boolean stop) {
- fStop = stop;
- }
-}
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/FastDataSource.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/FastDataSource.java
deleted file mode 100644
index a2b38d1e0ab..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/FastDataSource.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-final class FastDataSource extends AbstractLineOrientedDataSource {
- char lines[][] = new char[][] {
- "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 ".toCharArray(),
- "abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi ".toCharArray(), };
-
- int pos;
-
- @Override
- public char[] dataSource() {
- return lines[pos % lines.length];
- }
-
- @Override
- public TerminalStyle getStyle() {
- return null;
- }
-
- @Override
- public void next() {
- pos++;
- }
-}
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/FileDataSource.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/FileDataSource.java
deleted file mode 100644
index 669fe792c4e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/FileDataSource.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-/**
- * Reads the file in an infinite loop.
- * Makes lines containing 'x' bold.
- *
- */
-final class FileDataSource extends AbstractLineOrientedDataSource {
- private final String fFile;
-
- BufferedReader reader;
-
- String line;
-
- TerminalStyle style;
-
- TerminalStyle styleNormal = TerminalStyle.getDefaultStyle();
-
- TerminalStyle styleBold = styleNormal.setBold(true);
-
- FileDataSource(String file) {
- fFile = file;
- }
-
- @Override
- public char[] dataSource() {
- return line.toCharArray();
- }
-
- @Override
- public TerminalStyle getStyle() {
- return style;
- }
-
- @Override
- public void next() {
- try {
- if (reader == null)
- reader = new BufferedReader(new FileReader(fFile));
- line = reader.readLine();
- if (line == null) {
- reader.close();
- reader = null;
- // reopen the file
- next();
- return;
- }
- if (line.lastIndexOf('x') > 0)
- style = styleBold;
- else
- style = styleNormal;
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- }
-}
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/IDataSource.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/IDataSource.java
deleted file mode 100644
index 93f25146100..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/IDataSource.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-interface IDataSource {
- /**
- * @param terminal
- * @return number of characters changed
- */
- int step(ITerminalTextData terminal);
-}
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/IStatus.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/IStatus.java
deleted file mode 100644
index 02f8319878f..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/IStatus.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-public interface IStatus {
- void setStatus(String message);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/LineCountingDataSource.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/LineCountingDataSource.java
deleted file mode 100644
index 5baef90f258..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/LineCountingDataSource.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import static org.eclipse.tm.terminal.model.TerminalColor.BLACK;
-import static org.eclipse.tm.terminal.model.TerminalColor.BLUE;
-import static org.eclipse.tm.terminal.model.TerminalColor.RED;
-import static org.eclipse.tm.terminal.model.TerminalColor.YELLOW;
-
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-final class LineCountingDataSource extends AbstractLineOrientedDataSource {
- TerminalStyle styleNormal = TerminalStyle.getStyle(BLACK, RED);
-
- TerminalStyle styles[] = new TerminalStyle[] { styleNormal, styleNormal.setBold(true),
- styleNormal.setForeground(BLUE), styleNormal.setForeground(YELLOW),
- styleNormal.setBold(true).setUnderline(true), styleNormal.setReverse(true),
- styleNormal.setReverse(true).setBold(true), styleNormal.setReverse(true).setUnderline(true) };
-
- int pos;
-
- @Override
- public char[] dataSource() {
- return (pos + " 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789")
- .toCharArray();
- }
-
- @Override
- public TerminalStyle getStyle() {
- return styles[pos % styles.length];
- }
-
- @Override
- public void next() {
- pos++;
- }
-}
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/RandomDataSource.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/RandomDataSource.java
deleted file mode 100644
index a13bf7c3101..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/RandomDataSource.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import static org.eclipse.tm.terminal.model.TerminalColor.BLACK;
-import static org.eclipse.tm.terminal.model.TerminalColor.GREEN;
-import static org.eclipse.tm.terminal.model.TerminalColor.RED;
-import static org.eclipse.tm.terminal.model.TerminalColor.YELLOW;
-
-import java.util.Random;
-
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.TerminalStyle;
-
-public class RandomDataSource implements IDataSource {
- Random fRandom = new Random();
- TerminalStyle styleNormal = TerminalStyle.getStyle(BLACK, GREEN);
- TerminalStyle styles[] = new TerminalStyle[] { styleNormal, styleNormal.setBold(true),
- styleNormal.setForeground(RED), styleNormal.setForeground(YELLOW),
- styleNormal.setBold(true).setUnderline(true), styleNormal.setReverse(true),
- styleNormal.setReverse(true).setBold(true), styleNormal.setReverse(true).setUnderline(true) };
-
- @Override
- public int step(ITerminalTextData terminal) {
- int N = fRandom.nextInt(1000);
- int h = terminal.getHeight();
- int w = terminal.getWidth();
- synchronized (terminal) {
- for (int i = 0; i < N; i++) {
- int line = fRandom.nextInt(h);
- int col = fRandom.nextInt(w);
- char c = (char) ('A' + fRandom.nextInt('z' - 'A'));
- TerminalStyle style = styles[fRandom.nextInt(styles.length)];
- terminal.setChar(line, col, c, style);
- }
- }
- return N;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/TerminalTextUITest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/TerminalTextUITest.java
deleted file mode 100644
index 483a1feaaee..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/TerminalTextUITest.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.tm.internal.terminal.textcanvas.ITextCanvasModel;
-import org.eclipse.tm.internal.terminal.textcanvas.PollingTextCanvasModel;
-import org.eclipse.tm.internal.terminal.textcanvas.TextCanvas;
-import org.eclipse.tm.internal.terminal.textcanvas.TextLineRenderer;
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-import org.eclipse.tm.terminal.model.ITerminalTextDataSnapshot;
-import org.eclipse.tm.terminal.model.TerminalTextDataFactory;
-
-/**
- * adjust columns when table gets resized....
- *
- */
-public class TerminalTextUITest {
- static TextCanvas fgTextCanvas;
- static ITextCanvasModel fgModel;
- static ITerminalTextData fTerminalModel;
- static Label fStatusLabel;
- static volatile int fHeight;
- static volatile int fWidth;
- static DataReader fDataReader;
- static List fDataReaders = new ArrayList();
- private static Text heightText;
-
- static class Status implements IStatus {
- @Override
- public void setStatus(final String s) {
- if (!fStatusLabel.isDisposed())
- Display.getDefault().asyncExec(() -> {
- if (!fStatusLabel.isDisposed())
- fStatusLabel.setText(s);
- });
- }
-
- }
-
- public static void main(String[] args) {
- Display display = new Display();
- Shell shell = new Shell(display);
- shell.setLayout(new GridLayout());
- Composite composite = new Composite(shell, SWT.NONE);
- composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- RowLayout layout = new RowLayout(SWT.HORIZONTAL);
- layout.wrap = true;
- layout.fill = false;
- fTerminalModel = TerminalTextDataFactory.makeTerminalTextData();
- fHeight = 24;
- fWidth = 80;
- fTerminalModel.setDimensions(fHeight, fWidth);
- fTerminalModel.setMaxHeight(fHeight);
- ITerminalTextDataSnapshot snapshot = fTerminalModel.makeSnapshot();
- // TODO how to get the initial size correctly!
- snapshot.updateSnapshot(false);
- fgModel = new PollingTextCanvasModel(snapshot);
- fgTextCanvas = new TextCanvas(shell, fgModel, SWT.NONE, new TextLineRenderer(fgTextCanvas, fgModel));
- fgTextCanvas.setLayoutData(new GridData(GridData.FILL_BOTH));
-
- composite.setLayout(layout);
- addAutorevealCursorButton(composite);
- Text maxHeightText = addMaxHeightInput(composite);
- addHeightInput(composite, maxHeightText);
- addWidthText(composite);
- Text throttleText = addThrottleText(composite);
-
- IStatus status = new Status();
- DataReader reader = new DataReader("Line Count", fTerminalModel, new LineCountingDataSource(), status);
- addDataReader(composite, reader);
- reader = new DataReader("Fast", fTerminalModel, new FastDataSource(), status);
- addDataReader(composite, reader);
- reader = new DataReader("Colors", fTerminalModel, new VT100DataSource(), status);
- addDataReader(composite, reader);
- reader = new DataReader("Random", fTerminalModel, new RandomDataSource(), status);
- addDataReader(composite, reader);
- for (int i = 0; i < args.length; i++) {
- File file = new File(args[i]);
- reader = new DataReader(file.getName(), fTerminalModel, new VT100DataSource(args[i]), status);
- addDataReader(composite, reader);
- }
- addStopAllButton(composite, reader);
-
- fStatusLabel = new Label(shell, SWT.NONE);
- fStatusLabel.setLayoutData(new GridData(250, 15));
- throttleText.setText("100");
- setThrottleForAll(100);
-
- if (args.length == 0)
- addLabel(composite, "[Files can be added via commandline]");
- shell.setSize(600, 300);
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- display.dispose();
- }
-
- private static Text addMaxHeightInput(Composite composite) {
- addLabel(composite, "maxHeight:");
- final Text maxHeightText = new Text(composite, SWT.BORDER);
- setLayoutData(maxHeightText, 30);
- maxHeightText.addModifyListener(e -> {
- synchronized (fTerminalModel) {
- int height = textToInt(maxHeightText);
- if (height < 1)
- return;
- if (fTerminalModel.getHeight() > height) {
- fTerminalModel.scroll(0, fTerminalModel.getHeight(), height - fTerminalModel.getHeight());
- fTerminalModel.setDimensions(height, fTerminalModel.getWidth());
- heightText.setText(height + "");
- }
- fTerminalModel.setMaxHeight(height);
- }
- });
- maxHeightText.setText(fHeight + "");
- return maxHeightText;
- }
-
- private static void addHeightInput(Composite composite, final Text maxHeightText) {
- addLabel(composite, "heigth:");
- heightText = new Text(composite, SWT.BORDER);
- setLayoutData(heightText, 30);
- heightText.addModifyListener(e -> {
- synchronized (fTerminalModel) {
- int height = textToInt(heightText);
- if (height < 1)
- return;
- maxHeightText.setText("" + height);
- fTerminalModel.setDimensions(height, fTerminalModel.getWidth());
- fTerminalModel.setMaxHeight(height);
- }
- });
- heightText.setText(fHeight + "");
- }
-
- private static Text addWidthText(Composite composite) {
- addLabel(composite, "width:");
- final Text widthText = new Text(composite, SWT.BORDER);
- setLayoutData(widthText, 30);
- widthText.addModifyListener(e -> {
- synchronized (fTerminalModel) {
- int width = textToInt(widthText);
- if (width > 1)
- fTerminalModel.setDimensions(fTerminalModel.getHeight(), width);
- }
- });
- widthText.setText(fWidth + "");
- return widthText;
- }
-
- private static Text addThrottleText(Composite composite) {
- addLabel(composite, "throttle:");
- final Text throttleText = new Text(composite, SWT.BORDER);
- setLayoutData(throttleText, 30);
- throttleText.addModifyListener(e -> {
- synchronized (fTerminalModel) {
- int throttle = textToInt(throttleText);
- setThrottleForAll(throttle);
- }
- });
- return throttleText;
- }
-
- private static void addStopAllButton(Composite composite, DataReader reader) {
- final Button stopAllButton = new Button(composite, SWT.CHECK);
- stopAllButton.setText("Stop ALL");
- stopAllButton.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- boolean stop = stopAllButton.getSelection();
- for (Iterator iterator = fDataReaders.iterator(); iterator.hasNext();) {
- DataReader reader = (DataReader) iterator.next();
- reader.setStop(stop);
-
- }
- }
- });
- stopAllButton.setSelection(reader.isStart());
- }
-
- private static void addAutorevealCursorButton(Composite composite) {
- final Button button = new Button(composite, SWT.CHECK);
- button.setText("ScrollLock");
- button.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- boolean scrollLock = button.getSelection();
- fgTextCanvas.setScrollLock(scrollLock);
- }
- });
- button.setSelection(fgTextCanvas.isScrollLock());
- }
-
- private static void addLabel(Composite composite, String message) {
- Label label;
- label = new Label(composite, SWT.NONE);
- label.setText(message);
- }
-
- private static void addDataReader(Composite composite, final DataReader reader) {
- fDataReaders.add(reader);
- final Button button = new Button(composite, SWT.CHECK);
- button.setText(reader.getName());
- button.addSelectionListener(new SelectionAdapter() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- reader.setStart(button.getSelection());
- }
- });
- button.setSelection(reader.isStart());
-
- }
-
- static private void setThrottleForAll(int throttle) {
- for (Iterator iterator = fDataReaders.iterator(); iterator.hasNext();) {
- DataReader reader = (DataReader) iterator.next();
- reader.setThrottleTime(throttle);
- }
- }
-
- static void setLayoutData(Control c, int width) {
- c.setLayoutData(new RowData(width, -1));
- }
-
- static int textToInt(Text text) {
- try {
- return Integer.valueOf(text.getText()).intValue();
- } catch (Exception ex) {
- return 0;
- }
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/VT100DataSource.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/VT100DataSource.java
deleted file mode 100644
index 6ec10f847da..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/test/ui/VT100DataSource.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- * Martin Oberhuber (Wind River) - [204796] Terminal should allow setting the encoding to use
- * Anton Leherbauer (Wind River) - [458398] Add support for normal/application cursor keys mode
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.test.ui;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.nio.charset.StandardCharsets;
-
-import org.eclipse.tm.internal.terminal.control.ITerminalListener3.TerminalTitleRequestor;
-import org.eclipse.tm.internal.terminal.control.impl.ITerminalControlForText;
-import org.eclipse.tm.internal.terminal.emulator.VT100Emulator;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.model.ITerminalTextData;
-
-/**
- * Reads the file in an infinite loop.
- * Makes lines containing 'x' bold.
- *
- */
-final class VT100DataSource implements IDataSource {
- VT100Emulator fEmulator;
- volatile int fAvailable;
- volatile int fRead;
- private final String fFile;
- private final String fANSIEscapeColors;
-
- VT100DataSource(String file) {
- fFile = file;
- fANSIEscapeColors = null;
- }
-
- VT100DataSource() {
- fFile = null;
- StringBuffer input = new StringBuffer();
- input.append(" 8-bit ");
- for (int i = 0; i < 255; i++) {
- input.append("\033[38:5:");
- input.append(i);
- input.append("m");
- input.append(String.format(" %3s ", i));
- input.append("\033[0m");
- if ((i + 1) % 6 == 4) {
- input.append("\n");
- }
- }
- input.append("\n");
- input.append(" 8-bit ");
- for (int i = 0; i < 255; i++) {
- input.append("\033[48:5:");
- input.append(i);
- input.append("m");
- input.append(String.format(" %3s ", i));
- input.append("\033[0m");
- if ((i + 1) % 6 == 4) {
- input.append("\n");
- }
- }
- input.append("\n");
-
- input.append("\n");
- input.append(" 24-bit (RGB incremented by 15)");
- int count = 0;
- for (int r = 0; r < 255; r += 15) {
- for (int g = 0; g < 255; g += 15) {
- count = 0;
- for (int b = 0; b < 255; b += 15) {
- if (count++ % 5 == 0) {
- input.append("\n");
- }
- input.append("\033[38:2:3:");
- input.append(r);
- input.append(":");
- input.append(g);
- input.append(":");
- input.append(b);
- input.append(":");
- input.append("m");
- input.append(String.format(" (%02x%02x%02x) ", r, g, b));
- input.append("\033[0m");
-
- }
- }
- }
- input.append("\n");
- input.append(" 24-bit (RGB incremented by 15)");
- count = 0;
- for (int r = 0; r < 255; r += 15) {
- for (int g = 0; g < 255; g += 15) {
- count = 0;
- for (int b = 0; b < 255; b += 15) {
- if (count++ % 5 == 0) {
- input.append("\n");
- }
- input.append("\033[48:2:3:");
- input.append(r);
- input.append(":");
- input.append(g);
- input.append(":");
- input.append(b);
- input.append(":");
- input.append("m");
- input.append(String.format(" (%02x%02x%02x) ", r, g, b));
- input.append("\033[0m");
-
- }
- }
- }
-
- input.append("\n");
-
- fANSIEscapeColors = input.toString();
- }
-
- class InfiniteFileInputStream extends InputStream {
- public InfiniteFileInputStream() {
- startInputStream();
-
- }
-
- private void startInputStream() {
- if (fFile == null) {
- fInputStream = new ByteArrayInputStream(fANSIEscapeColors.getBytes(StandardCharsets.ISO_8859_1));
- } else {
- try {
- fInputStream = new FileInputStream(fFile);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
-
- @Override
- public int available() throws IOException {
- return fAvailable;
- }
-
- private InputStream fInputStream;
-
- @Override
- public int read() throws IOException {
- throw new IOException();
- }
-
- @Override
- public int read(byte[] b, int off, int len) throws IOException {
- while (fAvailable == 0) {
- try {
- Thread.sleep(1);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- len = fAvailable;
- int n = fInputStream.read(b, off, len);
- if (n <= 0) {
- fInputStream.close();
- startInputStream();
- n = fInputStream.read(b, off, len);
- }
- fAvailable -= n;
- return n;
- }
-
- }
-
- void init(ITerminalTextData terminal) {
- final Reader reader = new InputStreamReader(new InfiniteFileInputStream(), StandardCharsets.ISO_8859_1);
- fEmulator = new VT100Emulator(terminal, new ITerminalControlForText() {
-
- public void disconnectTerminal() {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public OutputStream getOutputStream() {
- return new ByteArrayOutputStream();
- }
-
- @Override
- public TerminalState getState() {
- return TerminalState.CONNECTED;
- }
-
- @Override
- public ITerminalConnector getTerminalConnector() {
- return null;
- }
-
- @Override
- public void setState(TerminalState state) {
- }
-
- @Override
- public void setTerminalTitle(String title, TerminalTitleRequestor requestor) {
- }
-
- @Override
- public void enableApplicationCursorKeys(boolean enable) {
- }
- }, reader);
- }
-
- @Override
- public int step(ITerminalTextData terminal) {
- synchronized (terminal) {
- if (fEmulator == null) {
- init(terminal);
- // fEmulator.setDimensions(48, 132);
- fEmulator.setDimensions(24, 80);
- fEmulator.setCrAfterNewLine(true);
-
- }
- fAvailable = 80;
- fEmulator.processText();
- }
- return 80;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/textcanvas/PipedInputStreamPerformanceTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/textcanvas/PipedInputStreamPerformanceTest.java
deleted file mode 100644
index 2b6a82d59ac..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/textcanvas/PipedInputStreamPerformanceTest.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-import java.io.OutputStream;
-
-public class PipedInputStreamPerformanceTest {
-
- /**
- * @param args
- * @throws InterruptedException
- */
- public static void main(String[] args) throws InterruptedException {
- runPerformanceTest();
- runPerformanceTest();
- }
-
- private static void runPerformanceTest() throws InterruptedException {
- PipedInputStream in = new PipedInputStream(1024);
- OutputStream out = in.getOutputStream();
- PipedStreamTest.runPipe("", in, out, 100);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/textcanvas/PipedStreamTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/textcanvas/PipedStreamTest.java
deleted file mode 100644
index c18fdfd3e4e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/internal/terminal/textcanvas/PipedStreamTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.internal.terminal.textcanvas;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-class PipedStreamTest {
- static class ReadThread extends Thread {
-
- InputStream pi = null;
-
- OutputStream po = null;
-
- ReadThread(String process, InputStream pi, OutputStream po) {
- this.pi = pi;
- this.po = po;
- setDaemon(true);
- }
-
- @Override
- public void run() {
- byte[] buffer = new byte[2048];
- int bytes_read;
- try {
- for (;;) {
- bytes_read = pi.read(buffer);
- if (bytes_read == -1) {
- po.close();
- pi.close();
- return;
- }
- po.write(buffer, 0, bytes_read);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- }
-
- static class FakeInputStream extends InputStream {
- int N;
-
- FakeInputStream(int n) {
- N = n;
- }
-
- @Override
- public int read(byte[] b, int off, int len) throws IOException {
- if (N == 0)
- return -1;
- int n = Math.min(len, N);
- for (int i = off; i < off + n; i++) {
- b[i] = 'x';
- }
- N -= n;
- return n;
- }
-
- @Override
- public int read() throws IOException {
- throw new UnsupportedOperationException();
- }
-
- /*
- * available has to be implemented!
- */
- @Override
- public int available() throws IOException {
- return N;
- }
- }
-
- static class FakeOutputStream extends OutputStream {
- long N;
-
- @Override
- public void write(int b) throws IOException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void write(byte[] b, int off, int len) throws IOException {
- N += len;
- }
- }
-
- public static void main(String[] args) throws IOException, InterruptedException {
- while (true) {
- runSunTest();
- runMyTest();
- }
- }
-
- private static void runSunTest() throws IOException, InterruptedException {
- java.io.PipedInputStream in = new java.io.PipedInputStream();
- OutputStream out = new java.io.PipedOutputStream(in);
- runPipe("Sun ", in, out, 10);
- }
-
- private static void runMyTest() throws IOException, InterruptedException {
- PipedInputStream in = new PipedInputStream(4 * 1024);
- OutputStream out = in.getOutputStream();
- runPipe("My ", in, out, 99);
- }
-
- public static void runPipe(String what, InputStream writeIn, OutputStream readOut, int N)
- throws InterruptedException {
- FakeInputStream in = new FakeInputStream(N * 1000 * 1000);
- FakeOutputStream out = new FakeOutputStream();
- ReadThread rt = new ReadThread("reader", in, readOut);
- ReadThread wt = new ReadThread("writer", writeIn, out);
- long t0 = System.currentTimeMillis();
- rt.start();
- wt.start();
- wt.join();
- long t = System.currentTimeMillis();
- long n = out.N;
- System.out.println(
- what + n + " byte in " + (t - t0) + " ms -> " + (1000 * n) / ((t - t0 + 1) * 1024) + " kb/sec");
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/AllTestSuite.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/AllTestSuite.java
deleted file mode 100644
index 4a665936a4b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/AllTestSuite.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Public Terminal Model test cases.
- * Runs in internal model package to allow access to default visible items.
- */
-public class AllTestSuite extends TestCase {
- public AllTestSuite() {
- super(null);
- }
-
- public AllTestSuite(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(AllTestSuite.class.getName());
- suite.addTest(new JUnit4TestAdapter(TerminalColorUITest.class));
- suite.addTestSuite(StyleTest.class);
- return suite;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/StyleTest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/StyleTest.java
deleted file mode 100644
index cdc11a8ac13..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/StyleTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- * Michael Scharf (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-import junit.framework.TestCase;
-
-public class StyleTest extends TestCase {
- final TerminalColor c1 = TerminalColor.getIndexedTerminalColor(1);
- final TerminalColor c2 = TerminalColor.getIndexedTerminalColor(2);
- final TerminalColor c3 = TerminalColor.getIndexedTerminalColor(3);
-
- public void testGetStyle() {
- TerminalStyle s1 = TerminalStyle.getStyle(c1, c2, true, false, true, false);
- TerminalStyle s2 = TerminalStyle.getStyle(c1, c2, true, false, true, false);
- assertEquals(s1, s2);
- assertSame(s1, s2);
- s1 = s1.setBlink(!s1.isBlink());
- assertNotSame(s1, s2);
- assertFalse(s1.equals(s2));
- s1 = s1.setBlink(!s1.isBlink());
- assertSame(s1, s2);
- }
-
- public void testSetForeground() {
- TerminalStyle s1 = TerminalStyle.getStyle(c1, c2, true, false, true, false);
- TerminalStyle s2 = s1;
- s2 = s1.setForeground(c3);
- assertNotSame(s1, s2);
- assertFalse(s1.equals(s2));
- assertSame(s2.getForegroundTerminalColor(), c3);
- assertSame(s1.getForegroundTerminalColor(), c1);
- assertSame(s1.getBackgroundTerminalColor(), c2);
- assertSame(s2.getBackgroundTerminalColor(), c2);
- s2 = s2.setForeground(c1);
- assertSame(s1, s2);
- }
-
- public void testSetBackground() {
- TerminalStyle s1 = TerminalStyle.getStyle(c1, c2, true, false, true, false);
- TerminalStyle s2 = s1;
- s2 = s1.setBackground(c3);
- assertNotSame(s1, s2);
- assertFalse(s1.equals(s2));
- assertSame(s2.getForegroundTerminalColor(), c1);
- assertSame(s1.getForegroundTerminalColor(), c1);
- assertSame(s1.getBackgroundTerminalColor(), c2);
- assertSame(s2.getBackgroundTerminalColor(), c3);
- s2 = s2.setBackground(c2);
- assertSame(s1, s2);
- }
-
- public void testSetBold() {
- TerminalStyle s1 = getDefaultStyle();
- TerminalStyle s2 = s1;
- assertSame(s1, s2);
- assertFalse(s2.isBold());
- s2 = s2.setBold(true);
- assertNotSame(s1, s2);
- assertTrue(s2.isBold());
- s2 = s2.setBold(false);
- assertSame(s1, s2);
- assertFalse(s2.isBold());
- }
-
- public void testSetBlink() {
- TerminalStyle s1 = getDefaultStyle();
- TerminalStyle s2 = s1;
- assertSame(s1, s2);
- assertFalse(s2.isBlink());
- s2 = s2.setBlink(true);
- assertNotSame(s1, s2);
- assertTrue(s2.isBlink());
- s2 = s2.setBlink(false);
- assertSame(s1, s2);
- assertFalse(s2.isBlink());
- }
-
- public void testSetUnderline() {
- TerminalStyle s1 = getDefaultStyle();
- TerminalStyle s2 = s1;
- assertSame(s1, s2);
- assertFalse(s2.isUnderline());
- s2 = s2.setUnderline(true);
- assertNotSame(s1, s2);
- assertTrue(s2.isUnderline());
- s2 = s2.setUnderline(false);
- assertSame(s1, s2);
- assertFalse(s2.isUnderline());
- }
-
- public void testSetReverse() {
- TerminalStyle s1 = getDefaultStyle();
- TerminalStyle s2 = s1;
- assertSame(s1, s2);
- assertFalse(s2.isReverse());
- s2 = s2.setReverse(true);
- assertNotSame(s1, s2);
- assertTrue(s2.isReverse());
- s2 = s2.setReverse(false);
- assertSame(s1, s2);
- assertFalse(s2.isReverse());
- }
-
- private TerminalStyle getDefaultStyle() {
- return TerminalStyle.getStyle(c1, c2, false, false, false, false);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/TerminalColorUITest.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/TerminalColorUITest.java
deleted file mode 100644
index cf0bf3781ce..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/model/TerminalColorUITest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 Kichwa Coders Canada Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *******************************************************************************/
-package org.eclipse.tm.terminal.model;
-
-import static org.eclipse.tm.terminal.model.TerminalColor.BLACK;
-import static org.eclipse.tm.terminal.model.TerminalColor.BLUE;
-import static org.eclipse.tm.terminal.model.TerminalColor.CYAN;
-import static org.eclipse.tm.terminal.model.TerminalColor.GREEN;
-import static org.eclipse.tm.terminal.model.TerminalColor.MAGENTA;
-import static org.eclipse.tm.terminal.model.TerminalColor.RED;
-import static org.eclipse.tm.terminal.model.TerminalColor.WHITE;
-import static org.eclipse.tm.terminal.model.TerminalColor.YELLOW;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.eclipse.swt.widgets.Display;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * This is a UI test because {@link TerminalColor#convertColor(boolean, boolean)
- * requires a Display to operate the ColorRegistry.
- */
-public class TerminalColorUITest {
-
- private static Display display = null;
-
- @BeforeClass
- public static void createDisplay() {
- Display current = Display.getCurrent();
- if (current == null) {
- display = new Display();
- }
- }
-
- @AfterClass
- public static void disposeDisplay() {
- if (display != null) {
- display.dispose();
- }
- }
-
- @Test
- public void testInversionsStandard() {
-
- assertEquals(BLACK.convertColor(false, false), WHITE.convertColor(true, false));
- assertNotEquals(BLACK.convertColor(false, false), WHITE.convertColor(false, false));
-
- assertEquals(RED.convertColor(false, false), RED.convertColor(true, false));
- assertEquals(GREEN.convertColor(false, false), GREEN.convertColor(true, false));
- assertEquals(YELLOW.convertColor(false, false), YELLOW.convertColor(true, false));
- assertEquals(BLUE.convertColor(false, false), BLUE.convertColor(true, false));
- assertEquals(MAGENTA.convertColor(false, false), MAGENTA.convertColor(true, false));
- assertEquals(CYAN.convertColor(false, false), CYAN.convertColor(true, false));
-
- assertEquals(WHITE.convertColor(false, false), BLACK.convertColor(true, false));
- assertNotEquals(WHITE.convertColor(false, false), BLACK.convertColor(false, false));
-
- }
-
- @Test
- public void testInversionsBright() {
- assertEquals(BLACK.convertColor(false, true), WHITE.convertColor(true, true));
- assertNotEquals(BLACK.convertColor(false, true), WHITE.convertColor(false, true));
-
- assertEquals(RED.convertColor(false, true), RED.convertColor(true, true));
- assertEquals(GREEN.convertColor(false, true), GREEN.convertColor(true, true));
- assertEquals(YELLOW.convertColor(false, true), YELLOW.convertColor(true, true));
- assertEquals(BLUE.convertColor(false, true), BLUE.convertColor(true, true));
- assertEquals(MAGENTA.convertColor(false, true), MAGENTA.convertColor(true, true));
- assertEquals(CYAN.convertColor(false, true), CYAN.convertColor(true, true));
-
- assertEquals(WHITE.convertColor(false, true), BLACK.convertColor(true, true));
- assertNotEquals(WHITE.convertColor(false, true), BLACK.convertColor(false, true));
- }
-
- @Test
- public void testIndexesResolveToStandardColors() {
- // check explicit colors
- assertEquals(TerminalColor.BLACK.convertColor(false, false),
- TerminalColor.getIndexedTerminalColor(0).convertColor(false, false));
- assertEquals(TerminalColor.RED.convertColor(false, false),
- TerminalColor.getIndexedTerminalColor(1).convertColor(false, false));
-
- // Now check all colors
- for (int i = 0; i < 8; i++) {
- assertEquals(TerminalColor.values()[i].convertColor(false, false),
- TerminalColor.getIndexedTerminalColor(i).convertColor(false, false));
- }
- }
-
- @Test
- public void testIndexesResolveToBrightColors() {
- // check explicit colors
- assertEquals(TerminalColor.BLACK.convertColor(false, true),
- TerminalColor.getIndexedTerminalColor(8).convertColor(false, false));
- assertEquals(TerminalColor.RED.convertColor(false, true),
- TerminalColor.getIndexedTerminalColor(9).convertColor(false, false));
-
- // Now check all colors
- for (int i = 0; i < 8; i++) {
- assertEquals(TerminalColor.values()[i].convertColor(false, true),
- TerminalColor.getIndexedTerminalColor(i + 8).convertColor(false, false));
- }
- }
-
- @Test
- public void testIndexesInRange() {
- for (int i = 0; i < 16; i++) {
- assertNotNull(TerminalColor.getIndexedTerminalColor(i));
- }
- for (int i = 16; i < 256; i++) {
- assertNotNull(TerminalColor.getIndexedRGBColor(i));
- }
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIndexesOutOfRange_m1TerminalColor() {
- assertNotNull(TerminalColor.getIndexedTerminalColor(-1));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIndexesOutOfRange_m1RGBColor() {
- assertNotNull(TerminalColor.getIndexedRGBColor(-1));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIndexesOutOfRange_16() {
- assertNotNull(TerminalColor.getIndexedTerminalColor(16));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIndexesOutOfRange_15() {
- assertNotNull(TerminalColor.getIndexedRGBColor(15));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIndexesOutOfRange_256TerminalColor() {
- assertNotNull(TerminalColor.getIndexedTerminalColor(256));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void testIndexesOutOfRange_256RGBColor() {
- assertNotNull(TerminalColor.getIndexedRGBColor(256));
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedIntegrationSuite.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedIntegrationSuite.java
deleted file mode 100644
index 62d717b80f5..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedIntegrationSuite.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 Kichwa Coders Canada and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.tm.terminal.test;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({ AutomatedPluginTestSuite.class, AutomatedTestSuite.class })
-public class AutomatedIntegrationSuite {
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedPluginTestSuite.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedPluginTestSuite.java
deleted file mode 100644
index e6504581091..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedPluginTestSuite.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.tm.terminal.test;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Master Test Suite to run all Terminal plug-in tests.
- */
-public class AutomatedPluginTestSuite extends TestCase {
- /**
- * Call each AllTestSuite class from each of the test packages.
- */
- public static Test suite() {
- TestSuite suite = new TestSuite(AutomatedPluginTestSuite.class.getName());
- //These tests require Eclipse Platform to be up
- suite.addTestSuite(org.eclipse.tm.internal.terminal.connector.TerminalConnectorPluginTest.class);
- suite.addTestSuite(org.eclipse.tm.internal.terminal.connector.TerminalConnectorFactoryTest.class);
-
- //These tests must run as plain JUnit because they require access
- //to "package" protected methods
- //suite.addTest(AutomatedTestSuite.suite());
- return suite;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedTestSuite.java b/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedTestSuite.java
deleted file mode 100644
index 2383462921a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/src/org/eclipse/tm/terminal/test/AutomatedTestSuite.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2018 Wind River Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Martin Oberhuber (Wind River) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.test;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Master test suite to run all terminal unit tests.
- */
-public class AutomatedTestSuite extends TestCase {
-
- public static final String PI_TERMINAL_TESTS = "org.eclipse.tm.terminal.test"; //$NON-NLS-1$
-
- public AutomatedTestSuite() {
- super(null);
- }
-
- public AutomatedTestSuite(String name) {
- super(name);
- }
-
- /**
- * Call each AllTestSuite class from each of the test packages.
- */
- public static Test suite() {
- TestSuite suite = new TestSuite(AutomatedTestSuite.class.getName());
- suite.addTest(org.eclipse.tm.internal.terminal.emulator.AllTestSuite.suite());
- suite.addTest(org.eclipse.tm.internal.terminal.model.AllTestSuite.suite());
- suite.addTest(org.eclipse.tm.terminal.model.AllTestSuite.suite());
- suite.addTestSuite(org.eclipse.tm.internal.terminal.connector.TerminalConnectorTest.class);
- suite.addTestSuite(org.eclipse.tm.internal.terminal.connector.TerminalToRemoteInjectionOutputStreamTest.class);
- return suite;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/teamConfig/Terminal All Unit Tests.launch b/terminal/plugins/org.eclipse.tm.terminal.test/teamConfig/Terminal All Unit Tests.launch
deleted file mode 100644
index fd2e3ebb9d4..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/teamConfig/Terminal All Unit Tests.launch
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.test/teamConfig/Terminal AutomatedTests.launch b/terminal/plugins/org.eclipse.tm.terminal.test/teamConfig/Terminal AutomatedTests.launch
deleted file mode 100644
index a8d7a4e206d..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.test/teamConfig/Terminal AutomatedTests.launch
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.classpath b/terminal/plugins/org.eclipse.tm.terminal.view.core/.classpath
deleted file mode 100644
index 81fe078c20c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.gitignore b/terminal/plugins/org.eclipse.tm.terminal.view.core/.gitignore
deleted file mode 100644
index ae3c1726048..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.options b/terminal/plugins/org.eclipse.tm.terminal.view.core/.options
deleted file mode 100644
index a0a2c87a3c7..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.tm.terminal.view.core/debugmode = 0
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.project b/terminal/plugins/org.eclipse.tm.terminal.view.core/.project
deleted file mode 100644
index f6e4e7e96a0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.project
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
- org.eclipse.tm.terminal.view.core
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- 1329501981620
-
- 10
-
- org.eclipse.ui.ide.multiFilter
- 1.0-name-matches-false-false-target
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.core.resources.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.core.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9df862f8d49..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,486 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.launching.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.ui.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d35ba9b5231..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,213 +0,0 @@
-cleanup.add_all=false
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.array_with_curly=false
-cleanup.arrays_fill=false
-cleanup.bitwise_conditional_expression=false
-cleanup.boolean_literal=false
-cleanup.boolean_value_rather_than_comparison=false
-cleanup.break_loop=false
-cleanup.collection_cloning=false
-cleanup.comparing_on_criteria=false
-cleanup.comparison_statement=false
-cleanup.controlflow_merge=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
-cleanup.convert_to_switch_expressions=false
-cleanup.correct_indentation=false
-cleanup.do_while_rather_than_while=true
-cleanup.double_negation=false
-cleanup.else_if=false
-cleanup.embedded_if=false
-cleanup.evaluate_nullable=false
-cleanup.extract_increment=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.hash=false
-cleanup.if_condition=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.instanceof=false
-cleanup.instanceof_keyword=false
-cleanup.invert_equals=false
-cleanup.join=false
-cleanup.lazy_logical_operator=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.map_cloning=false
-cleanup.merge_conditional_blocks=false
-cleanup.multi_catch=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.no_string_creation=false
-cleanup.no_super=false
-cleanup.number_suffix=false
-cleanup.objects_equals=false
-cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
-cleanup.operand_factorization=false
-cleanup.organize_imports=true
-cleanup.overridden_assignment=false
-cleanup.plain_replacement=false
-cleanup.precompile_regex=false
-cleanup.primitive_comparison=false
-cleanup.primitive_parsing=false
-cleanup.primitive_rather_than_wrapper=false
-cleanup.primitive_serialization=false
-cleanup.pull_out_if_from_if_else=false
-cleanup.pull_up_assignment=false
-cleanup.push_down_negation=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.reduce_indentation=false
-cleanup.redundant_comparator=false
-cleanup.redundant_falling_through_block_end=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_array_creation=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_method_parameters=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.return_expression=false
-cleanup.simplify_lambda_expression_and_method_ref=false
-cleanup.single_used_field=false
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.standard_comparison=false
-cleanup.static_inner_class=false
-cleanup.strictly_equal_or_different=false
-cleanup.stringbuffer_to_stringbuilder=false
-cleanup.stringbuilder=false
-cleanup.stringbuilder_for_local_vars=true
-cleanup.stringconcat_to_textblock=false
-cleanup.substring=false
-cleanup.switch=false
-cleanup.system_property=false
-cleanup.system_property_boolean=false
-cleanup.system_property_file_encoding=false
-cleanup.system_property_file_separator=false
-cleanup.system_property_line_separator=false
-cleanup.system_property_path_separator=false
-cleanup.ternary_operator=false
-cleanup.try_with_resource=false
-cleanup.unlooped_while=false
-cleanup.unreachable_block=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_autoboxing=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_directly_map_method=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_string_is_blank=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup.use_unboxing=false
-cleanup.use_var=false
-cleanup.useless_continue=false
-cleanup.useless_return=false
-cleanup.valueof_rather_than_instantiation=false
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.api.tools.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf321d0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index ffaa8e3f1a7..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,36 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.exec-env-too-low=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/META-INF/MANIFEST.MF b/terminal/plugins/org.eclipse.tm.terminal.view.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 64e065d9e43..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.view.core;singleton:=true
-Bundle-Version: 4.10.500.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.9.400,4)",
- org.eclipse.core.runtime;bundle-version="[3.33.0,4)"
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.tm.terminal.view.core,
- org.eclipse.tm.terminal.view.core.activator;x-internal:=true,
- org.eclipse.tm.terminal.view.core.interfaces,
- org.eclipse.tm.terminal.view.core.interfaces.constants,
- org.eclipse.tm.terminal.view.core.internal;x-internal:=true,
- org.eclipse.tm.terminal.view.core.nls;x-internal:=true,
- org.eclipse.tm.terminal.view.core.preferences,
- org.eclipse.tm.terminal.view.core.tracing,
- org.eclipse.tm.terminal.view.core.utils
-Automatic-Module-Name: org.eclipse.tm.terminal.view.core
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/about.html b/terminal/plugins/org.eclipse.tm.terminal.view.core/about.html
deleted file mode 100644
index b3134865230..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/about.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
- About
-
-
-
- About This Content
-
- November 30, 2017
- License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at https://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at https://www.eclipse.org.
-
-
-
-
-
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/build.properties b/terminal/plugins/org.eclipse.tm.terminal.view.core/build.properties
deleted file mode 100644
index 23a7377b39e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/build.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties,\
- about.html,\
- plugin.xml,\
- about.ini,\
- about.mappings,\
- about.properties,\
- cdt_logo_icon32.png
-src.includes = about.html,\
- schema/
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/plugin.properties b/terminal/plugins/org.eclipse.tm.terminal.view.core/plugin.properties
deleted file mode 100644
index 58f7d91fb3a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-##################################################################################
-# Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-##################################################################################
-
-pluginName = Terminal View Core
-providerName = Eclipse CDT
-
-ExtensionPoint.contextPropertiesProviders = Terminal Context Properties Providers
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/plugin.xml b/terminal/plugins/org.eclipse.tm.terminal.view.core/plugin.xml
deleted file mode 100644
index b60ca296396..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/plugin.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/schema/contextPropertiesProviders.exsd b/terminal/plugins/org.eclipse.tm.terminal.view.core/schema/contextPropertiesProviders.exsd
deleted file mode 100644
index 3a9b909701d..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/schema/contextPropertiesProviders.exsd
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
-
-
-
-
- This extension point is used to contribute terminal context properties providers. The context properties provider allows querying desired properties for a given context.
-<p>
-The terminal context is passed in as default variable to the enablement expression evaluation. The terminal context is not expected to be iteratable or countable.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Declares a terminal context properties provider contribution.
-
-
-
-
-
-
-
-
-
- The class that implements <code>org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider</code>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TM Terminal 4.0.0
-
-
-
-
-
-
-
-
- This is an example of the extension point usage:
-<p>
-<pre><code>
- <extension point="org.eclipse.tm.terminal.view.core.contextPropertiesProviders">
- <contextPropertiesProvider
- class="com.my.contribution.MyContextPropertiesProviderImpl">
- </contextPropertiesProvider>
- </extension>
-</code></pre>
-
-
-
-
-
-
-
-
- The provider of a terminal context properties provider must implement <samp>org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider</samp>.
-
-
-
-
-
-
-
-
-
- Copyright (c) 2015, 2018 Wind River Systems, Inc. and others.
-
-All rights reserved.
-
-This program and the accompanying materials are made available under the terms
-of the Eclipse Public License 2.0 which accompanies this distribution, and is
-available at https://www.eclipse.org/legal/epl-2.0/
-
- SPDX-License-Identifier: EPL-2.0
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalContextPropertiesProviderFactory.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalContextPropertiesProviderFactory.java
deleted file mode 100644
index 633c0a8cb12..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalContextPropertiesProviderFactory.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalContextPropertiesProvider;
-import org.eclipse.tm.terminal.view.core.nls.Messages;
-
-/**
- * Terminal context properties provider factory.
- */
-public final class TerminalContextPropertiesProviderFactory {
- // Flag to remember if the contributions got loaded
- private static boolean contributionsLoaded = false;
-
- // The list of all loaded contributions
- private static final List contributions = new ArrayList<>();
-
- // The proxy used to achieve lazy class loading and plug-in activation
- private static class Proxy implements IExecutableExtension {
- // Reference to the configuration element
- private IConfigurationElement configElement = null;
- // The class implementing the provider
- public String clazz;
- // The context properties provider instance
- private ITerminalContextPropertiesProvider provider = null;
- // The converted expression
- private Expression expression;
-
- /**
- * Constructor.
- */
- protected Proxy() {
- }
-
- @Override
- public void setInitializationData(IConfigurationElement config, String propertyName, Object data)
- throws CoreException {
- Assert.isNotNull(config);
- this.configElement = config;
-
- // Read the class attribute.
- // Throws an exception if the attribute value is empty or null.
- clazz = config.getAttribute("class"); //$NON-NLS-1$
- if (clazz == null || "".equals(clazz.trim())) { //$NON-NLS-1$
- throw new CoreException(new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(),
- NLS.bind(Messages.Extension_error_missingRequiredAttribute, "class", //$NON-NLS-1$
- config.getContributor().getName())));
- }
-
- // Read the "enablement" sub element of the extension
- IConfigurationElement[] children = configElement.getChildren("enablement"); //$NON-NLS-1$
- if (children == null || children.length == 0) {
- throw new CoreException(new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(),
- NLS.bind(Messages.Extension_error_missingRequiredAttribute, "enablement", //$NON-NLS-1$
- config.getContributor().getName())));
- }
- // Only one "enablement" element is expected
- expression = ExpressionConverter.getDefault().perform(children[0]);
- }
-
- /**
- * Return the real terminal context properties provider instance for this proxy.
- */
- protected ITerminalContextPropertiesProvider getProvider() {
- if (provider == null && configElement != null) {
- try {
- // Create the service class instance via the configuration element
- Object provider = configElement.createExecutableExtension("class"); //$NON-NLS-1$
- if (provider instanceof ITerminalContextPropertiesProvider) {
- this.provider = (ITerminalContextPropertiesProvider) provider;
- } else {
- IStatus status = new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(),
- "Terminal context properties provider '" + provider.getClass().getName() //$NON-NLS-1$
- + "' not of type ITerminalContextPropertiesProvider."); //$NON-NLS-1$
- Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(status);
- }
- } catch (CoreException e) {
- IStatus status = new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(),
- "Cannot create terminal context properties provider '" + clazz + "'.", e); //$NON-NLS-1$ //$NON-NLS-2$
- Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(status);
- }
- }
- return provider;
- }
-
- /**
- * Returns if or if not the context properties provider contribution is enabled for
- * the given terminal context.
- *
- * @param context The terminal context or null
.
- * @return True
if the context properties provider contribution is enabled
- * for the given terminal context, false
otherwise.
- */
- protected boolean isEnabled(Object context) {
- if (context == null) {
- return getEnablement() == null;
- }
-
- Expression enablement = getEnablement();
-
- // The service contribution is enabled by default if no expression is specified.
- boolean enabled = enablement == null;
-
- if (enablement != null) {
- // Set the default variable to the service context.
- EvaluationContext evalContext = new EvaluationContext(null, context);
- // Allow plug-in activation
- evalContext.setAllowPluginActivation(true);
- // Evaluate the expression
- try {
- enabled = enablement.evaluate(evalContext).equals(EvaluationResult.TRUE);
- } catch (CoreException e) {
- IStatus status = new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(),
- e.getLocalizedMessage(), e);
- Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(status);
- }
- }
-
- return enabled;
- }
-
- /**
- * Returns the enablement expression.
- *
- * @return The enablement expression or null
.
- */
- protected Expression getEnablement() {
- return expression;
- }
- }
-
- /**
- * Creates a new terminal context properties provider proxy instance and initialize it.
- *
- * @param config The configuration element. Must not be null
.
- * @return The new terminal context properties provider proxy instance.
- */
- private static Proxy getProxy(IConfigurationElement config) {
- Assert.isNotNull(config);
- Proxy proxy = new Proxy();
- try {
- proxy.setInitializationData(config, null, null);
- } catch (CoreException e) {
- if (Platform.inDebugMode()) {
- Platform.getLog(CoreBundleActivator.getContext().getBundle()).log(e.getStatus());
- }
- }
- return proxy;
- }
-
- /**
- * Load the terminal context properties provider contributions.
- */
- private static void loadContributions() {
- IExtensionPoint ep = Platform.getExtensionRegistry()
- .getExtensionPoint("org.eclipse.tm.terminal.view.core.contextPropertiesProviders"); //$NON-NLS-1$
- if (ep != null) {
- IExtension[] extensions = ep.getExtensions();
- if (extensions != null) {
- for (IExtension extension : extensions) {
- IConfigurationElement[] configElements = extension.getConfigurationElements();
- if (configElements != null) {
- for (IConfigurationElement configElement : configElements) {
- if ("contextPropertiesProvider".equals(configElement.getName())) { //$NON-NLS-1$
- Proxy proxy = getProxy(configElement);
- contributions.add(proxy);
- }
- }
- }
- }
- }
- }
- }
-
- /**
- * Get the terminal context properties provider for the given context. The first terminal
- * context properties provider which is enabled is returned.
- *
- * @param context The terminal context. Must not be null
.
- *
- * @return The service or null
.
- */
- public static ITerminalContextPropertiesProvider getProvider(Object context) {
- Assert.isNotNull(context);
-
- // Load the contributions if not yet loaded
- synchronized (contributions) {
- if (!contributionsLoaded) {
- loadContributions();
- contributionsLoaded = true;
- }
- }
-
- for (Proxy proxy : contributions) {
- if (proxy.isEnabled(context)) {
- return proxy.getProvider();
- }
- }
-
- return null;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalServiceFactory.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalServiceFactory.java
deleted file mode 100644
index 595046ffdb8..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/TerminalServiceFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.core.nls.Messages;
-import org.osgi.framework.Bundle;
-
-/**
- * Terminal service factory implementation.
- *
- * Provides access to the terminal service instance.
- */
-public final class TerminalServiceFactory {
- private static ITerminalService instance = null;
-
- static {
- // Tries to instantiate the terminal service implementation
- // from the o.e.tm.terminal.view.ui bundle
- Bundle bundle = Platform.getBundle("org.eclipse.tm.terminal.view.ui"); //$NON-NLS-1$
- if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
- try {
- Class> clazz = bundle.loadClass("org.eclipse.tm.terminal.view.ui.services.TerminalService"); //$NON-NLS-1$
- instance = (ITerminalService) clazz.getDeclaredConstructor().newInstance();
- } catch (Exception e) {
- if (Platform.inDebugMode()) {
- Platform.getLog(bundle).log(new Status(IStatus.ERROR, CoreBundleActivator.getUniqueIdentifier(),
- Messages.TerminalServiceFactory_error_serviceImplLoadFailed, e));
- }
- }
- }
- }
-
- /**
- * Returns the terminal service instance.
- */
- public static ITerminalService getService() {
- return instance;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/activator/CoreBundleActivator.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/activator/CoreBundleActivator.java
deleted file mode 100644
index 4184e1b9438..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/activator/CoreBundleActivator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.activator;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class CoreBundleActivator implements BundleActivator {
- // The bundle context
- private static BundleContext context;
-
- /**
- * Returns the bundle context
- *
- * @return the bundle context
- */
- public static BundleContext getContext() {
- return context;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plug-in.
- */
- public static String getUniqueIdentifier() {
- if (getContext() != null && getContext().getBundle() != null) {
- return getContext().getBundle().getSymbolicName();
- }
- return "org.eclipse.tm.terminal.view.core"; //$NON-NLS-1$
- }
-
- @Override
- public void start(BundleContext bundleContext) throws Exception {
- CoreBundleActivator.context = bundleContext;
- }
-
- @Override
- public void stop(BundleContext bundleContext) throws Exception {
- CoreBundleActivator.context = null;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalContextPropertiesProvider.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalContextPropertiesProvider.java
deleted file mode 100644
index eefca07d8fd..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalContextPropertiesProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.interfaces;
-
-import java.util.Map;
-
-/**
- * Terminal context properties provider.
- *
- * The context properties provider allows querying desired properties
- * for a given context. The context is typically an element from a selection
- * and the inner structure of the element is unknown to the terminal.
- */
-public interface ITerminalContextPropertiesProvider {
-
- /**
- * Returns a unmodifiable map containing the target address and port for the given context,
- * if it can be determined.
- *
- * A context may return multiple target addresses and ports if the context can be reached using
- * different connection methods.
- *
- * Note:
- *
- * - See the constants defined in the context provider constants interface for default
- * address and port types.
- * - The target address returned must not necessarily be an IP address.
- * - The values of the address or port properties might be
null
.
- *
- *
- * @param context The context to get the target addresses and ports from. Must not be null
.
- * @return The unmodifiable map containing the target addresses and ports, or null
.
- */
- public Map getTargetAddress(Object context);
-
- /**
- * Returns the property value stored under the given property key. If the property does not
- * exist, null
is returned.
- *
- * @param context The context to get the property from. Must not be null
.
- * @param key The property key. Must not be null
.
- *
- * @return The stored property value or null
.
- */
- public Object getProperty(Object context, String key);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalService.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalService.java
deleted file mode 100644
index e28f1b42298..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalService.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.interfaces;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Terminal service.
- */
-public interface ITerminalService {
-
- /**
- * Client call back interface.
- */
- public interface Done {
- /**
- * Called when the terminal service operation is done.
- *
- * @param status The status of the terminal service operation.
- */
- public void done(IStatus status);
- }
-
- /**
- * Opens a terminal asynchronously and invokes the given callback if done.
- *
- * @param properties The terminal properties. Must not be null
.
- * @param done The callback to invoke if finished or null
.
- */
- public void openConsole(Map properties, Done done);
-
- /**
- * Close the terminal asynchronously and invokes the given callback if done.
- *
- * @param properties The terminal properties. Must not be null
.
- * @param done The callback to invoke if finished or null
.
- */
- public void closeConsole(Map properties, Done done);
-
- /**
- * Terminate (disconnect) the terminal asynchronously and invokes the given callback if done.
- *
- * @param properties The terminal properties. Must not be null
.
- * @param done The callback to invoke if finished or null
.
- */
- public void terminateConsole(Map properties, Done done);
-
- /**
- * Register the given listener to receive notifications about terminal events.
- * Calling this method multiple times with the same listener has no effect.
-
- * @param listener The terminal tab listener. Must not be null
.
- */
- public void addTerminalTabListener(ITerminalTabListener listener);
-
- /**
- * Unregister the given listener from receiving notifications about terminal
- * events. Calling this method multiple times with the same listener
- * has no effect.
- *
- * @param listener The terminal tab listener. Must not be null
.
- */
- public void removeTerminalTabListener(ITerminalTabListener listener);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalServiceOutputStreamMonitorListener.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalServiceOutputStreamMonitorListener.java
deleted file mode 100644
index b48a1113adf..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalServiceOutputStreamMonitorListener.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014 - 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.interfaces;
-
-/**
- * An interface to be implemented by listeners who want to listen
- * to the streams data without interfering with the original data receiver.
- *
- * Listeners are invoked within the monitor processing thread.
- */
-public interface ITerminalServiceOutputStreamMonitorListener {
-
- /**
- * Signals that some content has been read from the monitored stream.
- *
- * @param byteBuffer The byte stream. Must not be null
.
- * @param bytesRead The number of bytes that were read into the read buffer.
- */
- public void onContentReadFromStream(byte[] byteBuffer, int bytesRead);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalTabListener.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalTabListener.java
deleted file mode 100644
index bd3a034680b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/ITerminalTabListener.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.interfaces;
-
-/**
- * Listener to implement and to register to get notified about
- * terminal tabs events, like the disposal of a terminal tab.
- */
-public interface ITerminalTabListener {
-
- /**
- * Invoked once a terminal tab got disposed. The source object is
- * the disposed tab item and data is the custom data object associated
- * with the disposed tab item.
- *
- * @param source The disposed tab item. Must not be null
.
- * @param data The custom data object associated with the disposed tab item or null
.
- */
- public void terminalTabDisposed(Object source, Object data);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/IContextPropertiesConstants.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/IContextPropertiesConstants.java
deleted file mode 100644
index 55daaeecbc7..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/IContextPropertiesConstants.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.interfaces.constants;
-
-/**
- * Defines the terminal context properties constants.
- */
-public interface IContextPropertiesConstants {
-
- /**
- * Target name.
- *
- * The target name is not meant to be identical with the targets network name. It can
- * be the targets network name, but it can be any other string identifying the target
- * to the user as well. The name is for display only, it is not meant to be used for
- * communicating with the target.
- */
- public static String PROP_NAME = "name"; //$NON-NLS-1$
-
- /**
- * Target agent address.
- *
- * The value is typically the address an agent running at the target.
- */
- public static String PROP_ADDRESS = "address"; //$NON-NLS-1$
-
- /**
- * Target agent port.
- *
- * The value is typically the port an agent running at the target.
- */
- public static String PROP_PORT = "port"; //$NON-NLS-1$
-
- /**
- * The default user name to use to log into the target.
- */
- public static String PROP_DEFAULT_USER = "defaultUser"; //$NON-NLS-1$
-
- /**
- * The default encoding to use.
- */
- public static String PROP_DEFAULT_ENCODING = "defaultEncoding"; //$NON-NLS-1$
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ILineSeparatorConstants.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ILineSeparatorConstants.java
deleted file mode 100644
index f6888a22629..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ILineSeparatorConstants.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.interfaces.constants;
-
-/**
- * Line separator constants.
- */
-public interface ILineSeparatorConstants {
-
- /**
- * The line separator setting CR (carriage return only; for example, used by Mac OS 9).
- */
- public final static String LINE_SEPARATOR_CR = "\\r"; //$NON-NLS-1$
-
- /**
- * The line separator setting CRLF (carriage return and line feed; for example, used by
- * Windows).
- */
- public final static String LINE_SEPARATOR_CRLF = "\\r\\n"; //$NON-NLS-1$
-
- /**
- * The line separator setting LF (line feed only; used by all UNIX-based systems).
- */
- public final static String LINE_SEPARATOR_LF = "\\n"; //$NON-NLS-1$
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ITerminalsConnectorConstants.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ITerminalsConnectorConstants.java
deleted file mode 100644
index 4d60d49c31b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/interfaces/constants/ITerminalsConnectorConstants.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [361352] [TERMINALS][SSH] Add SSH terminal support
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.interfaces.constants;
-
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalServiceOutputStreamMonitorListener;
-
-/**
- * Defines the terminals connector constants.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITerminalsConnectorConstants {
-
- /**
- * Property: The unique id of the terminals view to open.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_ID = "id"; //$NON-NLS-1$
-
- /**
- * Property: The unique secondary id of the terminals view to open.
- *
- * Special values:
- *
- * -
- * not present in properties table or {@link #LAST_ACTIVE_SECONDARY_ID} means open on most recent terminal view
- *
- * -
- * {@link #ANY_ACTIVE_SECONDARY_ID} means open on any terminal view
- *
- * -
- *
null
means open on the first primary terminal (the one with no secondary id)
- *
- *
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SECONDARY_ID = "secondaryId"; //$NON-NLS-1$
-
- /**
- * Special value for {@link #PROP_SECONDARY_ID} to indicate reuse of the most recent terminal view
- * @since 4.8
- */
- public static final String LAST_ACTIVE_SECONDARY_ID = "last"; //$NON-NLS-1$
-
- /**
- * Special value for {@link #PROP_SECONDARY_ID} to indicate reuse of any terminal view
- * @since 4.8
- */
- public static final String ANY_ACTIVE_SECONDARY_ID = "*"; //$NON-NLS-1$
-
- /**
- * Property: The title of the terminal tab to open.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_TITLE = "title"; //$NON-NLS-1$
-
- /**
- * Property: Flag to disable updating the terminal title from ANSI escape sequences.
- *
- * Property Type: {@link Boolean}
- * @since 4.10
- */
- public static final String PROP_TITLE_DISABLE_ANSI_TITLE = "titleDisableAnsiTitle"; //$NON-NLS-1$
-
- /**
- * Property: The encoding of the terminal tab to open.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_ENCODING = "encoding"; //$NON-NLS-1$
-
- /**
- * Property: Custom data object to associate with the terminal tab.
- *
- * Property Type: {@link Object}
- */
- public static final String PROP_DATA = "data"; //$NON-NLS-1$
-
- /**
- * Property: External selection to associate with the terminal tab.
- *
- * Property Type: {@link org.eclipse.jface.viewers.ISelection}
- */
- public static final String PROP_SELECTION = "selection"; //$NON-NLS-1$
-
- /**
- * Property: Flag to force a new terminal tab.
- *
- * Property Type: {@link Boolean}
- */
- public static final String PROP_FORCE_NEW = "terminal.forceNew"; //$NON-NLS-1$
-
- /**
- * Property: Terminal launcher delegate id.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_DELEGATE_ID = "delegateId"; //$NON-NLS-1$
-
- /**
- * Property: Specific terminal connector type id. Allows clients to
- * override the specifically used terminal connector
- * implementation for a given type.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_TERMINAL_CONNECTOR_ID = "tm.terminal.connector.id"; //$NON-NLS-1$
-
- // ***** Generic terminals connector properties *****
-
- /**
- * Property: Timeout to be passed to the terminal connector. The specific terminal
- * connector implementation may interpret this value differently. If not
- * set, the terminal connector may use a default value.
- *
- * Property Type: {@link Integer}
- */
- public static final String PROP_TIMEOUT = "timeout"; //$NON-NLS-1$
-
- /**
- * Property: Flag to control if a local echo is needed from the terminal widget.
- *
Typical for process and streams terminals.
- *
- * Property Type: {@link Boolean}
- */
- public static final String PROP_LOCAL_ECHO = "localEcho"; //$NON-NLS-1$
-
- /**
- * Property: Data flag to tell the terminal to not reconnect when hitting enter
- * in a disconnected terminal.
- *
- * Property Type: {@link Boolean}
- */
- public static final String PROP_DATA_NO_RECONNECT = "data.noReconnect"; //$NON-NLS-1$
-
- /**
- * Property: The line separator expected by the remote terminal on input streams and
- * send by the remote terminal on output streams.
- *
Typical for process and streams terminals.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_LINE_SEPARATOR = "lineSeparator"; //$NON-NLS-1$
-
- /**
- * Property: The list of stdout listeners to attach to the corresponding stream monitor.
- *
Typical for process and streams terminals.
- *
- * Property Type: {@link ITerminalServiceOutputStreamMonitorListener} array
- */
- public static final String PROP_STDOUT_LISTENERS = "stdoutListeners"; //$NON-NLS-1$
-
- /**
- * Property: The list of stderr listeners to attach to the corresponding stream monitor.
- *
Typical for process and streams terminals.
- *
- * Property Type: {@link ITerminalServiceOutputStreamMonitorListener} array
- */
- public static final String PROP_STDERR_LISTENERS = "stderrListeners"; //$NON-NLS-1$
-
- /**
- * Property: If set to true
, backslashes are translated to
- * slashes before pasting the text to the terminal widget.
- *
- * Property Type: {@link Boolean}
- */
- public static final String PROP_TRANSLATE_BACKSLASHES_ON_PASTE = "translateBackslashesOnPaste"; //$NON-NLS-1$
-
- // ***** IP based terminals connector properties *****
-
- /**
- * Property: Host name or IP address the terminal server is running.
- *
Typical for telnet or ssh terminals.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_IP_HOST = "ip.host"; //$NON-NLS-1$
-
- /**
- * Property: Port at which the terminal server is providing the console input and output.
- *
Typical for telnet or ssh terminals.
- *
- * Property Type: {@link Integer}
- */
- public static final String PROP_IP_PORT = "ip.port"; //$NON-NLS-1$
-
- /**
- * Property: An offset to add to the specified port number.
- *
Typical for telnet or ssh terminals.
- *
- * Property Type: {@link Integer}
- */
- public static final String PROP_IP_PORT_OFFSET = "ip.port.offset"; //$NON-NLS-1$
-
- // ***** Process based terminals connector properties *****
-
- /**
- * Property: Process image path.
- *
Typical for process terminals.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_PROCESS_PATH = "process.path"; //$NON-NLS-1$
-
- /**
- * Property: Process arguments.
- *
Typical for process terminals.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_PROCESS_ARGS = "process.args"; //$NON-NLS-1$
-
- /**
- * Property: Process arguments.
- *
Typical for process terminals.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_PROCESS_WORKING_DIR = "process.working_dir"; //$NON-NLS-1$
-
- /**
- * Property: Process environment.
- *
Typical for process terminals.
- *
- * Property Type: {@link String} array
- */
- public static final String PROP_PROCESS_ENVIRONMENT = "process.environment"; //$NON-NLS-1$
-
- /**
- * Property: Flag to merge process environment with native environment.
- *
Typical for process terminals.
- *
- * Property Type: {@link Boolean}
- */
- public static final String PROP_PROCESS_MERGE_ENVIRONMENT = "process.environment.merge"; //$NON-NLS-1$
-
- /**
- * Property: Runtime process instance.
- *
Typical for process terminals.
- *
- * Property Type: {@link Process}
- */
- public static final String PROP_PROCESS_OBJ = "process"; //$NON-NLS-1$
-
- /**
- * Property: Runtime process PTY instance.
- *
Typical for process terminals.
- *
- * Property Type: {@link org.eclipse.cdt.utils.pty.PTY}
- */
- public static final String PROP_PTY_OBJ = "pty"; //$NON-NLS-1$
-
- // ***** Streams based terminals connector properties *****
-
- /**
- * Property: Stdin streams instance.
- *
Typical for streams terminals.
- *
- * Property Type: {@link OutputStream}
- */
- public static final String PROP_STREAMS_STDIN = "streams.stdin"; //$NON-NLS-1$
-
- /**
- * Property: Stdout streams instance.
- *
Typical for streams terminals.
- *
- * Property Type: {@link InputStream}
- */
- public static final String PROP_STREAMS_STDOUT = "streams.stdout"; //$NON-NLS-1$
-
- /**
- * Property: Stderr streams instance.
- *
Typical for streams terminals.
- *
- * Property Type: {@link InputStream}
- */
- public static final String PROP_STREAMS_STDERR = "streams.stderr"; //$NON-NLS-1$
-
- // ***** Ssh specific properties *****
-
- /**
- * Property: ssh keep alive value.
- *
- * Property Type: {@link Integer}
- */
- public static final String PROP_SSH_KEEP_ALIVE = "ssh.keep_alive"; //$NON-NLS-1$
-
- /**
- * Property: Ssh password.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SSH_PASSWORD = "ssh.password"; //$NON-NLS-1$
-
- /**
- * Property: Ssh user.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SSH_USER = "ssh.user"; //$NON-NLS-1$
-
- // ***** Serial specific properties *****
-
- /**
- * The serial device name.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SERIAL_DEVICE = "serial.device"; //$NON-NLS-1$
-
- /**
- * The baud rate.
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SERIAL_BAUD_RATE = "serial.baudrate"; //$NON-NLS-1$
-
- /**
- * The data bits
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SERIAL_DATA_BITS = "serial.databits"; //$NON-NLS-1$
-
- /**
- * The parity
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SERIAL_PARITY = "serial.parity"; //$NON-NLS-1$
-
- /**
- * The stop bits
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SERIAL_STOP_BITS = "serial.stopbits"; //$NON-NLS-1$
-
- /**
- * The flow control
- *
- * Property Type: {@link String}
- */
- public static final String PROP_SERIAL_FLOW_CONTROL = "serial.flowcontrol"; //$NON-NLS-1$
-
- // ***** Telnet specific properties *****
-
- /**
- * The end-of-line sequence to be sent to the server on "Enter".
- *
- * Property Type: {@link String}
- * @since 4.2
- */
- public static final String PROP_TELNET_EOL = "telnet.eol"; //$NON-NLS-1$
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/internal/PropertyTester.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/internal/PropertyTester.java
deleted file mode 100644
index 7e0f46ce6db..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/internal/PropertyTester.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 - 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.internal;
-
-import org.eclipse.tm.terminal.view.core.TerminalContextPropertiesProviderFactory;
-
-/**
- * Property tester implementation.
- */
-public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
-
- @Override
- public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
-
- // "hasContextPropertiesProvider": Checks if a context properties provider is available for the given receiver.
- if ("hasContextPropertiesProvider".equals(property)) { //$NON-NLS-1$
- boolean hasProvider = TerminalContextPropertiesProviderFactory.getProvider(receiver) != null;
- return expectedValue instanceof Boolean ? ((Boolean) expectedValue).equals(Boolean.valueOf(hasProvider))
- : hasProvider;
- }
-
- return false;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.java
deleted file mode 100644
index 2d778f3b126..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.nls;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Externalized strings management.
- */
-public class Messages extends NLS {
-
- // The plug-in resource bundle name
- private static final String BUNDLE_NAME = "org.eclipse.tm.terminal.view.core.nls.Messages"; //$NON-NLS-1$
-
- /**
- * Static constructor.
- */
- static {
- // Load message values from bundle file
- NLS.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- // **** Declare externalized string id's down here *****
-
- public static String TerminalServiceFactory_error_serviceImplLoadFailed;
-
- public static String Extension_error_missingRequiredAttribute;
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.properties b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.properties
deleted file mode 100644
index 647a26ff699..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/nls/Messages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-
-TerminalServiceFactory_error_serviceImplLoadFailed=Failed to load terminal service implementation.
-
-Extension_error_missingRequiredAttribute=Required attribute "{0}" missing for extension "{1}"!
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/preferences/ScopedEclipsePreferences.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/preferences/ScopedEclipsePreferences.java
deleted file mode 100644
index b660a387c73..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/preferences/ScopedEclipsePreferences.java
+++ /dev/null
@@ -1,453 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.preferences;
-
-import java.io.OutputStream;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.core.runtime.preferences.IPreferenceFilter;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.core.runtime.preferences.PreferenceFilterEntry;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * Helper class to handle scoped Eclipse preferences for plug-in's. Scoped
- * preferences means a given preference context plus the default preferences
- * scope.
- *
- * On changes a {@link PreferenceChangeEvent} is sent to inform all listeners of the change.
- *
- * @see IEclipsePreferences
- * @see IEclipsePreferences.PreferenceChangeEvent
- * @see IEclipsePreferences.IPreferenceChangeListener
- */
-public class ScopedEclipsePreferences {
- /**
- * The preferences scope qualifier.
- */
- private final String qualifier;
-
- /**
- * The default scope preference node.
- */
- protected final IEclipsePreferences defaultPrefs;
-
- /**
- * The context scope preference node.
- */
- protected final IEclipsePreferences contextScopePrefs;
-
- /**
- * The registered preference change listeners.
- */
- private final ListenerList listeners = new ListenerList<>();
-
- /**
- * Constructor.
- *
- * Initialize the scoped preferences with a new instance scope for the given qualifier. The default
- * scope is determined by calling DefaultScope().getNode(qualifier)
.
- *
- * @param qualifier The qualifier for the preferences (in example the unique identifier of a plugin). Must not be null
.
- */
- public ScopedEclipsePreferences(String qualifier) {
- this(InstanceScope.INSTANCE, qualifier);
- }
-
- /**
- * Constructor.
- *
- * Initialize the scoped preferences with the given scope. The default scope
- * is determined by calling DefaultScope().getNode(qualifier)
.
- *
- * @param context The preference scope context. Must not be null
.
- * @param qualifier The qualifier for the preferences (in example the unique identifier of a plugin). Must not be null
.
- */
- public ScopedEclipsePreferences(IScopeContext context, String qualifier) {
- Assert.isNotNull(context);
- Assert.isNotNull(qualifier);
- this.qualifier = qualifier;
- defaultPrefs = DefaultScope.INSTANCE.getNode(getQualifier());
- contextScopePrefs = context.getNode(getQualifier());
- }
-
- /**
- * Returns the qualifier that is used to get the preferences.
- * For plugin preferences, this is the unique identifier of the plugin.
- */
- protected final String getQualifier() {
- return qualifier;
- }
-
- /**
- * Exports the preferences to the stream.
- *
- * Note: The stream will be closed after the export.
- *
- * @param stream The stream to where preferences and defaults should be exported.
- */
- public void exportPreferences(OutputStream stream) {
- Assert.isNotNull(stream);
- try {
- IPreferenceFilter filter = new IPreferenceFilter() {
- @Override
- public String[] getScopes() {
- return new String[] { InstanceScope.SCOPE };
- }
-
- @Override
- public Map getMapping(String scope) {
- return null;
- }
- };
-
- Platform.getPreferencesService().exportPreferences(contextScopePrefs, new IPreferenceFilter[] { filter },
- stream);
- stream.close();
- } catch (Exception e) {
- }
- }
-
- /**
- * Check whether a key is set or not.
- *
- * @param key The key to check.
- * @return null
if the key does not exist.
- */
- public boolean containsKey(String key) {
- return Platform.getPreferencesService().getString(getQualifier(), key, null, null) != null;
- }
-
- /**
- * Get a String preference value.
- *
- * @param key The preference key.
- * @return The value of the preference key or the default value if not set.
- */
- public final String getString(String key) {
- return Platform.getPreferencesService().getString(getQualifier(), key, null, null);
- }
-
- /**
- * Get a boolean preference value.
- *
- * @param key The preference key.
- * @return The value of the preference key or the default value if not set.
- */
- public final boolean getBoolean(String key) {
- return Platform.getPreferencesService().getBoolean(getQualifier(), key, false, null);
- }
-
- /**
- * Get an int preference value.
- *
- * @param key The preference key.
- * @return The value of the preference key or the default value if not set.
- */
- public final int getInt(String key) {
- return Platform.getPreferencesService().getInt(getQualifier(), key, 0, null);
- }
-
- /**
- * Get a long preference value.
- *
- * @param key The preference key.
- * @return The value of the preference key or the default value if not set.
- */
- public final long getLong(String key) {
- return Platform.getPreferencesService().getLong(getQualifier(), key, 0, null);
- }
-
- /**
- * Get a default String preference value.
- *
- * @param key The preference key.
- * @return The default value of the preference key or null
.
- */
- public final String getDefaultString(String key) {
- return defaultPrefs.get(key, null);
- }
-
- /**
- * Get a default boolean preference value.
- *
- * @param key The preference key.
- * @return The default value of the preference key or null
.
- */
- public final boolean getDefaultBoolean(String key) {
- return defaultPrefs.getBoolean(key, false);
- }
-
- /**
- * Get a default int preference value.
- *
- * @param key The preference key.
- * @return The default value of the preference key or null
.
- */
- public final int getDefaultInt(String key) {
- return defaultPrefs.getInt(key, 0);
- }
-
- /**
- * Get a default long preference value.
- *
- * @param key The preference key.
- * @return The default value of the preference key or null
.
- */
- public final long getDefaultLong(String key) {
- return defaultPrefs.getLong(key, 0);
- }
-
- /**
- * Set a String preference value. If the value is null
or is equal to
- * the default value, the entry will be removed.
- *
- * A {@link PreferenceChangeEvent} is fired, if the value has changed.
- *
- * @param key The preference key.
- * @return The value of the preference key.
- */
- public void putString(String key, String value) {
- String defValue = defaultPrefs.get(key, null);
- String instValue = getString(key);
- if (value == null || value.equals(defValue)) {
- contextScopePrefs.remove(key);
- flushAndNotify(contextScopePrefs, key, instValue, defValue);
- } else if (!value.equals(instValue)) {
- contextScopePrefs.put(key, value);
- flushAndNotify(contextScopePrefs, key, instValue, value);
- }
- }
-
- /**
- * Set a boolean preference value. If the value is equal the default value,
- * the entry will be removed.
- *
- * A {@link PreferenceChangeEvent} is fired, if the value has changed.
- *
- * @param key The preference key.
- * @return The value of the preference key.
- */
- public void putBoolean(String key, boolean value) {
- boolean defValue = defaultPrefs.getBoolean(key, false);
- boolean instValue = getBoolean(key);
- if (value == defValue) {
- contextScopePrefs.remove(key);
- flushAndNotify(contextScopePrefs, key, Boolean.toString(instValue), Boolean.toString(defValue));
- } else if (value != instValue) {
- contextScopePrefs.putBoolean(key, value);
- flushAndNotify(contextScopePrefs, key, Boolean.toString(instValue), Boolean.toString(value));
- }
- }
-
- /**
- * Set an int preference value. If the value is equal to the default value,
- * the entry will be removed.
- *
- * A {@link PreferenceChangeEvent} is fired, if the value has changed. The old
- * and new values are string representation in base 10.
- *
- * @param key The preference key.
- * @return The value of the preference key.
- */
- public void putInt(String key, int value) {
- int defValue = defaultPrefs.getInt(key, 0);
- int instValue = getInt(key);
- if (value == defValue) {
- contextScopePrefs.remove(key);
- flushAndNotify(contextScopePrefs, key, Integer.toString(instValue), Integer.toString(defValue));
- } else if (value != instValue) {
- contextScopePrefs.putInt(key, value);
- flushAndNotify(contextScopePrefs, key, Integer.toString(instValue), Integer.toString(value));
- }
- }
-
- /**
- * Set a long preference value. If the given value is equal to the default
- * value, the entry will be removed.
- *
- * A {@link PreferenceChangeEvent} is fired, if the value has changed. The old
- * and new values are string representation in base 10.
- *
- * @param key The preference key.
- * @return The value of the preference key.
- */
- public void putLong(String key, long value) {
- long defValue = defaultPrefs.getLong(key, 0);
- long instValue = getLong(key);
- if (value == defValue) {
- contextScopePrefs.remove(key);
- flushAndNotify(contextScopePrefs, key, Long.toString(instValue), Long.toString(defValue));
- } else if (value != instValue) {
- contextScopePrefs.putLong(key, value);
- flushAndNotify(contextScopePrefs, key, Long.toString(instValue), Long.toString(value));
- }
- }
-
- /**
- * Set a default String preference value. If the given value is null
,
- * the entry will be removed.
- *
- * A {@link PreferenceChangeEvent} is fired, if the value has changed.
- *
- * @param key The preference key.
- * @return The default value of the preference key.
- */
- public void putDefaultString(String key, String value) {
- String defValue = defaultPrefs.get(key, null);
- if (value == null) {
- defaultPrefs.remove(key);
- flushAndNotify(defaultPrefs, key, defValue, null);
- } else if (!value.equals(defValue)) {
- defaultPrefs.put(key, value);
- flushAndNotify(defaultPrefs, key, defValue, value);
- }
- }
-
- /**
- * Set a default boolean preference value.
- *
- * A {@link PreferenceChangeEvent} is fired, if the value has changed.
- *
- * @param key The preference key.
- * @return The default value of the preference key.
- */
- public void putDefaultBoolean(String key, boolean value) {
- boolean defValue = defaultPrefs.getBoolean(key, false);
- if (value != defValue) {
- defaultPrefs.putBoolean(key, value);
- flushAndNotify(defaultPrefs, key, Boolean.toString(defValue), Boolean.toString(value));
- }
- }
-
- /**
- * Set a default int preference value.
- *
- * A {@link PreferenceChangeEvent} is fired, if the value has changed. The old
- * and new values are string representation in base 10.
- *
- * @param key The preference key.
- * @return The default value of the preference key.
- */
- public void putDefaultInt(String key, int value) {
- int defValue = defaultPrefs.getInt(key, 0);
- if (value != defValue) {
- defaultPrefs.putInt(key, value);
- flushAndNotify(defaultPrefs, key, Integer.toString(defValue), Integer.toString(value));
- }
- }
-
- /**
- * Set a default long preference value.
- *
- * A {@link PreferenceChangeEvent} is fired, if the value has changed. The old
- * and new values are string representation in base 10.
- *
- * @param key The preference key.
- * @return The default value of the preference key.
- */
- public void putDefaultLong(String key, long value) {
- long defValue = defaultPrefs.getLong(key, 0);
- if (value != defValue) {
- defaultPrefs.putLong(key, value);
- flushAndNotify(defaultPrefs, key, Long.toString(defValue), Long.toString(value));
- }
- }
-
- /**
- * Write back the changes to the store and notify all listeners about the changed key.
- *
- * @param node The preference node which has changed. Must not be null
.
- * @param key The key of the changed preference. Must not be null
.
- * @param oldValue The old value as a {@link String}, or null
.
- * @param newValue The new value as a {@link String}, or null
.
- */
- protected final void flushAndNotify(IEclipsePreferences node, String key, String oldValue, String newValue) {
- // Flush the preferences to the persistence store
- try {
- node.flush();
- } catch (BackingStoreException e) {
- /* Ignored on purpose */ }
-
- // Notify the listeners
- firePreferenceEvent(node, key, oldValue, newValue);
- }
-
- /**
- * Register the given listener to receive notifications of preference changes to this node.
- * Calling this method multiple times with the same listener has no effect. The given listener
- * argument must not be null
.
- *
- * @param listener The preference change listener. Must not be null
.
- */
- public void addPreferenceChangeListener(IPreferenceChangeListener listener) {
- Assert.isNotNull(listener);
- listeners.add(listener);
- }
-
- /**
- * De-register the given listener from receiving notifications of preference changes
- * to this node. Calling this method multiple times with the same listener has no
- * effect. The given listener argument must not be null
.
- *
- * @param listener The preference change listener. Must not be null
.
- */
- public void removePreferenceChangeListener(IPreferenceChangeListener listener) {
- Assert.isNotNull(listener);
- listeners.remove(listener);
- }
-
- /**
- * Convenience method for notifying the registered preference change listeners.
- *
- * @param node The preference node which has changed. Must not be null
.
- * @param key The key of the changed preference. Must not be null
.
- * @param oldValue The old value as a {@link String}, or null
.
- * @param newValue The new value as a {@link String}, or null
.
- */
- protected void firePreferenceEvent(IEclipsePreferences node, String key, String oldValue, String newValue) {
- Assert.isNotNull(node);
- Assert.isNotNull(key);
-
- // If no listener is registered, we are done here
- if (listeners.isEmpty())
- return;
-
- // Create the preference change event
- final PreferenceChangeEvent event = new PreferenceChangeEvent(node, key, oldValue, newValue);
- for (IPreferenceChangeListener listener : listeners) {
- ISafeRunnable job = new ISafeRunnable() {
- @Override
- public void handleException(Throwable exception) {
- // already logged in Platform#run()
- }
-
- @Override
- public void run() throws Exception {
- listener.preferenceChange(event);
- }
- };
- SafeRunner.run(job);
- }
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/tracing/TraceHandler.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/tracing/TraceHandler.java
deleted file mode 100644
index 98945b613c2..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/tracing/TraceHandler.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.tracing;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tm.terminal.view.core.activator.CoreBundleActivator;
-
-/**
- * Helper class to handle tracing using the platforms debug capabilities.
- */
-public class TraceHandler {
- /**
- * The bundle identifier.
- */
- private final String identifier;
-
- /**
- * The tracer instance.
- */
- private Tracer tracer = null;
-
- /**
- * The tracer is responsible for writing the trace message to the desired
- * output media.
- */
- protected static class Tracer {
-
- /**
- * The bundle identifier.
- */
- private final String fIdentifier;
-
- /**
- * The qualifier for the default "<bundle identifier>/debugmode"
- * tracing slot.
- */
- private final String fDebugModeQualifier;
-
- /**
- * Constructor.
- *
- * @param identifier The bundle identifier. Must not be null
.
- */
- public Tracer(String identifier) {
- Assert.isNotNull(identifier);
- fIdentifier = identifier;
-
- // Initialize the debug mode qualifier
- fDebugModeQualifier = fIdentifier + "/debugmode"; //$NON-NLS-1$
- }
-
- /**
- * Returns the value of the debug mode tracing slot.
- *
- * If not set, or the value is not an {@link Integer}, the method returns 0
.
- *
- * @return The debug mode value.
- */
- protected int getDebugMode() {
- try {
- String mode = Platform.getDebugOption(fDebugModeQualifier);
- if (mode != null && Integer.decode(mode).intValue() > 0) {
- return Integer.decode(mode).intValue();
- }
- } catch (NumberFormatException e) {
- /* ignored on purpose */ }
-
- return 0;
- }
-
- /**
- * Check if the specified trace slot is enabled.
- *
- * @param slotId The name of the slot.
- * @return true
if the slot is defined and enabled, false
otherwise.
- */
- protected boolean isSlotEnabled(String slotId) {
- return fIdentifier != null ? Boolean.parseBoolean(Platform.getDebugOption(fIdentifier + "/" + slotId)) //$NON-NLS-1$
- : false;
- }
-
- /**
- * Check if tracing is enabled for given mode and slot.
- *
- * @param debugMode The debug mode for the current debug.
- * @param slotId The name of the slot.
- *
- * @return true
if the debug should be written, false
otherwise.
- */
- protected final boolean isEnabled(int debugMode, String slotId) {
- return getDebugMode() < 0 || (debugMode <= getDebugMode()
- && (slotId == null || slotId.trim().length() == 0 || isSlotEnabled(slotId)));
- }
-
- /**
- * Format the trace message.
- *
- * @param message The trace message.
- * @param debugMode The debug mode.
- * @param slotId The name of the slot.
- * @param severity The severity. See {@link IStatus} for valid severity values.
- * @param clazz The class that calls this tracer.
- *
- * @see IStatus
- */
- protected String getFormattedDebugMessage(String message, int debugMode, String slotId, int severity,
- Object clazz) {
- StringBuffer debug = new StringBuffer();
- if (slotId != null || clazz != null) {
- if (clazz != null) {
- String name = clazz instanceof Class> ? ((Class>) clazz).getSimpleName()
- : clazz.getClass().getSimpleName();
- debug.append(name.trim().length() > 0 ? name.trim()
- : clazz instanceof Class> ? ((Class>) clazz).getName() : clazz.getClass().getName());
- }
- if (slotId != null) {
- debug.append(" at "); //$NON-NLS-1$
- debug.append(slotId);
- }
- if (debugMode >= 0) {
- debug.append(" (Mode "); //$NON-NLS-1$
- debug.append(debugMode);
- debug.append(')');
- }
- debug.append('\n');
- debug.append('\t');
- }
- debug.append(message);
-
- return debug.toString();
- }
-
- /**
- * Write the trace message.
- *
- * @param message The trace message.
- * @param debugMode The debug mode.
- * @param slotId The name of the slot.
- * @param severity The severity. See {@link IStatus} for valid severity values.
- * @param clazz The class that calls this tracer.
- *
- * @see IStatus
- */
- protected void write(String message, int debugMode, String slotId, int severity, Object clazz) {
- String formattedMessage = getFormattedDebugMessage(message, debugMode, slotId, severity, clazz);
- if (severity == IStatus.ERROR || severity == IStatus.WARNING) {
- System.err.println(formattedMessage);
- } else {
- System.out.println(formattedMessage);
- }
- }
-
- /**
- * Trace the given message with the given debug mode and slot.
- *
- * @param message The trace message.
- * @param debugMode The debug mode.
- * @param slotId The name of the slot.
- * @param severity The severity. See {@link IStatus} for valid severity values.
- * @param clazz The class that calls this tracer.
- *
- * @see IStatus
- */
- public final void trace(String message, int debugMode, String slotId, int severity, Object clazz) {
- if (isEnabled(debugMode, slotId)) {
- write(message, debugMode, slotId, severity, clazz);
- }
- }
- }
-
- /**
- * Constructor.
- *
- * Initializes the tracing handler with the given bundle identifier.
- *
- * @param identifier The bundle identifier or null
.
- */
- public TraceHandler(String identifier) {
- this.identifier = identifier != null ? identifier : CoreBundleActivator.getUniqueIdentifier();
- Assert.isNotNull(this.identifier);
- }
-
- /**
- * Returns the identifier.
- */
- protected final String getIdentifier() {
- return identifier;
- }
-
- /**
- * Returns the tracer instance. Create a new tracer instance
- * on first invocation.
- *
- * @return The tracer instance.
- */
- protected Tracer getTracer() {
- if (tracer == null) {
- tracer = new Tracer(identifier);
- }
- return tracer;
- }
-
- /**
- * Return the current debug mode.
- */
- public final int getDebugMode() {
- return getTracer().getDebugMode();
- }
-
- /**
- * Check whether a trace slot is enabled. The debug mode defaults
- * to 0.
- *
- * @param slotId The name of the slot.
- *
- * @return true
if the slot is enabled, false
otherwise.
- */
- public final boolean isSlotEnabled(String slotId) {
- return isSlotEnabled(0, slotId);
- }
-
- /**
- * Check whether a trace slot is enabled with the given debug mode.
- *
- * @param debugMode The debug mode
- * @param slotId The name of the slot.
- *
- * @return true
if the slot is enabled, false
otherwise.
- */
- public final boolean isSlotEnabled(int debugMode, String slotId) {
- return getTracer().isEnabled(debugMode, slotId);
- }
-
- /**
- * Trace the given message.
- *
- * The message severity will be {@link IStatus#INFO} and the message will be
- * traced unconditionally.
- *
- * @param message The message.
- * @param clazz The class that calls this tracer or null
.
- */
- public final void trace(String message, Object clazz) {
- getTracer().trace(message, 0, null, IStatus.INFO, clazz);
- }
-
- /**
- * Trace the given message.
- *
- * The message severity will be {@link IStatus#INFO}.
- *
- * @param message The message.
- * @param debugMode The minimum debug mode that has to be set to write out the message.
- * @param clazz The class that calls this tracer or null
.
- */
- public final void trace(String message, int debugMode, Object clazz) {
- getTracer().trace(message, debugMode, null, IStatus.INFO, clazz);
- }
-
- /**
- * Trace the given message.
- *
- * The message severity will be {@link IStatus#INFO} and the debug mode
- * will default to 0
.
- *
- * @param message The message.
- * @param slotId The slot that has to be enabled to write out the message.
- * @param clazz The class that calls this tracer or null
.
- */
- public final void trace(String message, String slotId, Object clazz) {
- getTracer().trace(message, 0, slotId, IStatus.INFO, clazz);
- }
-
- /**
- * Trace the given message.
- *
- * @param message The message.
- * @param debugMode The minimum debug mode that has to be set to write out the message.
- * @param slotId The slot that has to be enabled to write out the message.
- * @param severity The severity. See {@link IStatus} for valid severity values.
- * @param clazz The class that calls this tracer or null
.
- *
- * @see IStatus
- */
- public final void trace(String message, int debugMode, String slotId, int severity, Object clazz) {
- getTracer().trace(message, debugMode, slotId, severity, clazz);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java
deleted file mode 100644
index 4b081c81e8a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.core.utils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.Platform;
-
-/**
- * Environment handling utility methods.
- */
-public class Env {
-
- /**
- * Returns the merged environment of the native environment and the passed
- * in environment. Passed in variables will overwrite the native environment
- * if the same variables are set there.
- *
- * For use with terminals, the parameter terminal
should be set to
- * true
. In this case, the method will assure that the TERM
- * environment variable is always set to ANSI
and is not overwritten
- * by the passed in environment.
- *
- * @param envp The environment to set on top of the native environment or null
.
- * @param terminal True
if used with an terminal, false
otherwise.
- *
- * @return The merged environment.
- */
- public static String[] getEnvironment(String[] envp, boolean terminal) {
- // Get a copy of the native environment variables
- Properties environmentVariables = getEnvVars();
-
- // If a "local" environment is provided, merge it with the native
- // environment.
- if (envp != null) {
- for (String keyValue : envp) {
- // keyValue is the full provided variable in form "name=value"
- String[] parts = keyValue.split("=", 2); //$NON-NLS-1$
- if (parts.length == 2) {
- String name = parts[0];
- String value = parts[1];
-
- if ("".equals(value)) { //$NON-NLS-1$
- environmentVariables.remove(name);
- } else {
- environmentVariables.put(name, value);
- }
- }
- }
- }
- // Set the TERM environment variable if in terminal mode
- if (terminal)
- environmentVariables.put("TERM", "xterm");//$NON-NLS-1$ //$NON-NLS-2$
-
- // Convert into an array of strings
- List keys = new ArrayList<>(environmentVariables.stringPropertyNames());
- // On Windows hosts, sort the environment keys
- if (Platform.OS_WIN32.equals(Platform.getOS()))
- Collections.sort(keys);
- List strings = new ArrayList<>(keys.size());
- for (String key : keys) {
- String value = environmentVariables.getProperty(key);
- strings.add(key + "=" + value); //$NON-NLS-1$
- }
-
- return strings.toArray(new String[strings.size()]);
- }
-
- //WARNING
- //Below is a copy of org.eclipse.cdt.utils.spawner.EnvironmentReader to make the terminal independent from CDT
- //This is supposed to be a straight copy (no modifications)
- //except for making getEnvVars private to avoid errors/warnings
- private static Properties envVars;
- @SuppressWarnings("nls")
- private static List toUppercaseEnvironmentVars = Arrays.asList("PATH", "CYGWIN_HOME", "LANG");
-
- static {
- boolean isWindows = Platform.OS_WIN32.equals(Platform.getOS());
- envVars = new Properties();
- Map envMap = System.getenv();
- for (Map.Entry curEnvVar : envMap.entrySet()) {
- String key = curEnvVar.getKey();
- String value = curEnvVar.getValue();
- if (isWindows && toUppercaseEnvironmentVars.contains(key.toUpperCase())) {
- key = key.toUpperCase();
- }
- envVars.setProperty(key, value);
- }
- }
-
- /**
- * @return a clone of the list of environment variables.
- */
- private static Properties getEnvVars() {
- return (Properties) envVars.clone();
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.classpath b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.classpath
deleted file mode 100644
index 81fe078c20c..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.gitignore b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.gitignore
deleted file mode 100644
index ae3c1726048..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.options b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.options
deleted file mode 100644
index 2b37de4fb78..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.options
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.tm.terminal.view.ui/debugmode = 0
-org.eclipse.tm.terminal.view.ui/trace/outputStreamMonitor = false
-org.eclipse.tm.terminal.view.ui/trace/launchTerminalCommandHandler = false
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.project b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.project
deleted file mode 100644
index 3686758258d..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.project
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
- org.eclipse.tm.terminal.view.ui
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
- org.eclipse.pde.api.tools.apiAnalysisBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
- org.eclipse.pde.api.tools.apiAnalysisNature
-
-
-
- 1329502074611
-
- 10
-
- org.eclipse.ui.ide.multiFilter
- 1.0-name-matches-false-false-target
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/.api_filters b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/.api_filters
deleted file mode 100644
index 3d478ee8e78..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/.api_filters
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.core.resources.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0203a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.core.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9df862f8d49..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,486 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch, *.xtend
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.mainOnlyProjectHasTestOnlyDependency=error
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
-org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
-org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
-org.eclipse.jdt.core.formatter.align_with_spaces=false
-org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
-org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
-org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
-org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=true
-org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=false
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=false
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
-org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=true
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.launching.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.launching.prefs
deleted file mode 100644
index f8a131b56e0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.launching.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.launching.PREF_COMPILER_COMPLIANCE_DOES_NOT_MATCH_JRE=warning
-org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.ui.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d35ba9b5231..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,213 +0,0 @@
-cleanup.add_all=false
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_missing_override_annotations_interface_methods=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.array_with_curly=false
-cleanup.arrays_fill=false
-cleanup.bitwise_conditional_expression=false
-cleanup.boolean_literal=false
-cleanup.boolean_value_rather_than_comparison=false
-cleanup.break_loop=false
-cleanup.collection_cloning=false
-cleanup.comparing_on_criteria=false
-cleanup.comparison_statement=false
-cleanup.controlflow_merge=false
-cleanup.convert_functional_interfaces=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.convert_to_enhanced_for_loop_if_loop_var_used=true
-cleanup.convert_to_switch_expressions=false
-cleanup.correct_indentation=false
-cleanup.do_while_rather_than_while=true
-cleanup.double_negation=false
-cleanup.else_if=false
-cleanup.embedded_if=false
-cleanup.evaluate_nullable=false
-cleanup.extract_increment=false
-cleanup.format_source_code=true
-cleanup.format_source_code_changes_only=false
-cleanup.hash=false
-cleanup.if_condition=false
-cleanup.insert_inferred_type_arguments=false
-cleanup.instanceof=false
-cleanup.instanceof_keyword=false
-cleanup.invert_equals=false
-cleanup.join=false
-cleanup.lazy_logical_operator=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_type_abstract_if_missing_method=false
-cleanup.make_variable_declarations_final=false
-cleanup.map_cloning=false
-cleanup.merge_conditional_blocks=false
-cleanup.multi_catch=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.no_string_creation=false
-cleanup.no_super=false
-cleanup.number_suffix=false
-cleanup.objects_equals=false
-cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
-cleanup.operand_factorization=false
-cleanup.organize_imports=true
-cleanup.overridden_assignment=false
-cleanup.plain_replacement=false
-cleanup.precompile_regex=false
-cleanup.primitive_comparison=false
-cleanup.primitive_parsing=false
-cleanup.primitive_rather_than_wrapper=false
-cleanup.primitive_serialization=false
-cleanup.pull_out_if_from_if_else=false
-cleanup.pull_up_assignment=false
-cleanup.push_down_negation=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=false
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.reduce_indentation=false
-cleanup.redundant_comparator=false
-cleanup.redundant_falling_through_block_end=false
-cleanup.remove_private_constructors=true
-cleanup.remove_redundant_modifiers=false
-cleanup.remove_redundant_semicolons=true
-cleanup.remove_redundant_type_arguments=true
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_array_creation=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=false
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_method_parameters=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.return_expression=false
-cleanup.simplify_lambda_expression_and_method_ref=false
-cleanup.single_used_field=false
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.standard_comparison=false
-cleanup.static_inner_class=false
-cleanup.strictly_equal_or_different=false
-cleanup.stringbuffer_to_stringbuilder=false
-cleanup.stringbuilder=false
-cleanup.stringbuilder_for_local_vars=true
-cleanup.stringconcat_to_textblock=false
-cleanup.substring=false
-cleanup.switch=false
-cleanup.system_property=false
-cleanup.system_property_boolean=false
-cleanup.system_property_file_encoding=false
-cleanup.system_property_file_separator=false
-cleanup.system_property_line_separator=false
-cleanup.system_property_path_separator=false
-cleanup.ternary_operator=false
-cleanup.try_with_resource=false
-cleanup.unlooped_while=false
-cleanup.unreachable_block=false
-cleanup.use_anonymous_class_creation=false
-cleanup.use_autoboxing=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_directly_map_method=false
-cleanup.use_lambda=true
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_string_is_blank=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup.use_unboxing=false
-cleanup.use_var=false
-cleanup.useless_continue=false
-cleanup.useless_return=false
-cleanup.valueof_rather_than_instantiation=false
-cleanup_profile=_CDT
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_CDT
-formatter_settings_version=14
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=1000
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=1000
-org.eclipse.jdt.ui.text.custom_code_templates=
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_missing_override_annotations_interface_methods=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_functional_interfaces=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.insert_inferred_type_arguments=false
-sp_cleanup.make_local_variable_final=true
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_redundant_modifiers=false
-sp_cleanup.remove_redundant_semicolons=true
-sp_cleanup.remove_redundant_type_arguments=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=false
-sp_cleanup.remove_unused_imports=true
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_anonymous_class_creation=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_lambda=true
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.api.tools.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index ec9fbf321d0..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,184 +0,0 @@
-ANNOTATION_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD_WITH_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-API_USE_SCAN_FIELD_SEVERITY=Error
-API_USE_SCAN_METHOD_SEVERITY=Error
-API_USE_SCAN_TYPE_SEVERITY=Error
-CLASS_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_FIELD=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERCLASS_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_CHANGED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-CLASS_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CLASS_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-ENUM_ELEMENT_TYPE_CHANGED_TO_INTERFACE=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENTS=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Warning
-ILLEGAL_IMPLEMENT=Warning
-ILLEGAL_INSTANTIATE=Warning
-ILLEGAL_OVERRIDE=Warning
-ILLEGAL_REFERENCE=Warning
-INTERFACE_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETERS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ANNOTATION=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_CLASS=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TO_ENUM=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_ANNOTATION=Ignore
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
-LEAK_EXTEND=Warning
-LEAK_FIELD_DECL=Warning
-LEAK_IMPLEMENT=Warning
-LEAK_METHOD_PARAM=Warning
-LEAK_METHOD_RETURN_TYPE=Warning
-METHOD_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_ADDED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-METHOD_ELEMENT_TYPE_REMOVED_INTERFACE_BOUNDS=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETERS=Error
-MISSING_EE_DESCRIPTIONS=Warning
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-automatically_removed_unused_problem_filters=false
-changed_execution_env=Error
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-incompatible_api_component_version_report_major_without_breaking_change=Warning
-incompatible_api_component_version_report_minor_without_api_change=Warning
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.prefs b/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 4a7a2a8d8c5..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,36 +0,0 @@
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.build.bin.includes=0
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
-compilers.p.build.java.compliance=1
-compilers.p.build.missing.output=2
-compilers.p.build.output.library=1
-compilers.p.build.source.library=1
-compilers.p.build.src.includes=0
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.exec-env-too-low=1
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.no.automatic.module=1
-compilers.p.not-externalized-att=1
-compilers.p.service.component.without.lazyactivation=1
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/META-INF/MANIFEST.MF b/terminal/plugins/org.eclipse.tm.terminal.view.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 55ba5b71838..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,43 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.tm.terminal.view.ui;singleton:=true
-Bundle-Version: 4.11.800.qualifier
-Bundle-Activator: org.eclipse.tm.terminal.view.ui.activator.UIPlugin
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.9.400,4)",
- org.eclipse.core.runtime;bundle-version="[3.33.0,4)",
- org.eclipse.core.resources;bundle-version="[3.22.200,4)";resolution:=optional,
- org.eclipse.core.variables;bundle-version="[3.6.500,4)",
- org.eclipse.debug.ui;bundle-version="[3.18.800,4)";resolution:=optional,
- org.eclipse.tm.terminal.view.core;bundle-version="[4.10.0,5.0.0)",
- org.eclipse.tm.terminal.control;bundle-version="[5.6.0,6.0.0)",
- org.eclipse.ui;bundle-version="[3.207.200,4)",
- org.eclipse.ui.ide;bundle-version="[3.22.600,4)";resolution:=optional,
- org.eclipse.ui.editors;bundle-version="[3.20.0,4)";resolution:=optional,
- org.eclipse.text;bundle-version="[3.14.300,4)";resolution:=optional
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Export-Package: org.eclipse.tm.terminal.view.ui.actions,
- org.eclipse.tm.terminal.view.ui.activator;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.controls,
- org.eclipse.tm.terminal.view.ui.help,
- org.eclipse.tm.terminal.view.ui.interfaces,
- org.eclipse.tm.terminal.view.ui.interfaces.tracing;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.internal;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.internal.dialogs;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.internal.handler;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.launcher,
- org.eclipse.tm.terminal.view.ui.listeners,
- org.eclipse.tm.terminal.view.ui.local.showin;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.local.showin.detectors;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.manager,
- org.eclipse.tm.terminal.view.ui.nls;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.panels,
- org.eclipse.tm.terminal.view.ui.preferences;x-internal:=true,
- org.eclipse.tm.terminal.view.ui.services,
- org.eclipse.tm.terminal.view.ui.streams,
- org.eclipse.tm.terminal.view.ui.tabs,
- org.eclipse.tm.terminal.view.ui.view
-Automatic-Module-Name: org.eclipse.tm.terminal.view.ui
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/about.html b/terminal/plugins/org.eclipse.tm.terminal.view.ui/about.html
deleted file mode 100644
index b3134865230..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/about.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
- About
-
-
-
- About This Content
-
- November 30, 2017
- License
-
-
- The Eclipse Foundation makes available all content in this plug-in
- ("Content"). Unless otherwise indicated below, the Content
- is provided to you under the terms and conditions of the Eclipse
- Public License Version 2.0 ("EPL"). A copy of the EPL is
- available at https://www.eclipse.org/legal/epl-2.0.
- For purposes of the EPL, "Program" will mean the Content.
-
-
-
- If you did not receive this Content directly from the Eclipse
- Foundation, the Content is being redistributed by another party
- ("Redistributor") and different terms and conditions may
- apply to your use of any object code in the Content. Check the
- Redistributor's license that was provided with the Content. If no such
- license exists, contact the Redistributor. Unless otherwise indicated
- below, the terms and conditions of the EPL still apply to any source
- code in the Content and such source code may be obtained at https://www.eclipse.org.
-
-
-
-
-
\ No newline at end of file
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/build.properties b/terminal/plugins/org.eclipse.tm.terminal.view.ui/build.properties
deleted file mode 100644
index 8a51227f4f2..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/build.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- plugin.properties,\
- plugin.xml,\
- about.html,\
- icons/,\
- contexts.xml,\
- about.ini,\
- about.mappings,\
- about.properties,\
- cdt_logo_icon32.png
-src.includes = schema/,\
- about.html
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/contexts.xml b/terminal/plugins/org.eclipse.tm.terminal.view.ui/contexts.xml
deleted file mode 100644
index 7a0390e6408..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/contexts.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- Select the terminal type and specify the connections settings to connect a new terminal.
-
-
- Select the new encoding for the active terminal.
-
-
- Add or modify an external executable added to the 'Show in Local Terminal' context menu.
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/command_input_field.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/command_input_field.gif
deleted file mode 100644
index 9e3a547c145..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/command_input_field.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/lock_co.png b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/lock_co.png
deleted file mode 100644
index df111d48fb3..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/lock_co.png and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/lock_co@2x.png b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/lock_co@2x.png
deleted file mode 100644
index df6d4317702..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/lock_co@2x.png and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/new_terminal_view.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/new_terminal_view.gif
deleted file mode 100644
index 00896268424..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/clcl16/new_terminal_view.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/command_input_field.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/command_input_field.gif
deleted file mode 100644
index f538ca707fc..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/command_input_field.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/disconnect.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/disconnect.gif
deleted file mode 100644
index 1ca9213a43c..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/disconnect.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/lock_co.png b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/lock_co.png
deleted file mode 100644
index 6f061961726..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/lock_co.png and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/lock_co@2x.png b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/lock_co@2x.png
deleted file mode 100644
index 692fa10d326..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/lock_co@2x.png and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/new_terminal_view.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/new_terminal_view.gif
deleted file mode 100644
index 25adc24b2a6..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/dlcl16/new_terminal_view.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/command_input_field.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/command_input_field.gif
deleted file mode 100644
index f538ca707fc..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/command_input_field.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/disconnect.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/disconnect.gif
deleted file mode 100644
index d61dd776e39..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/disconnect.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/lock_co.png b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/lock_co.png
deleted file mode 100644
index df111d48fb3..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/lock_co.png and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/lock_co@2x.png b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/lock_co@2x.png
deleted file mode 100644
index df6d4317702..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/lock_co@2x.png and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/new_terminal_view.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/new_terminal_view.gif
deleted file mode 100644
index b81882b503d..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/elcl16/new_terminal_view.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/console_view.png b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/console_view.png
deleted file mode 100644
index ca77aee5bca..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/console_view.png and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/console_view@2x.png b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/console_view@2x.png
deleted file mode 100644
index 54ecae20f3f..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/console_view@2x.png and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/terminal_view.gif b/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/terminal_view.gif
deleted file mode 100644
index bbb6a9e153e..00000000000
Binary files a/terminal/plugins/org.eclipse.tm.terminal.view.ui/icons/eview16/terminal_view.gif and /dev/null differ
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/plugin.properties b/terminal/plugins/org.eclipse.tm.terminal.view.ui/plugin.properties
deleted file mode 100644
index dd968a731d3..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/plugin.properties
+++ /dev/null
@@ -1,78 +0,0 @@
-##################################################################################
-# Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
-# This program and the accompanying materials are made available under the terms
-# of the Eclipse Public License 2.0 which accompanies this distribution, and is
-# available at https://www.eclipse.org/legal/epl-2.0/
-#
-# SPDX-License-Identifier: EPL-2.0
-#
-# Contributors:
-# Wind River Systems - initial API and implementation
-##################################################################################
-
-pluginName = Terminal View
-providerName = Eclipse CDT
-
-# ----- Terminal View -----
-
-ViewCategory.name=Terminal
-
-TerminalsView.name=Terminal
-TerminalsView.name.old=Terminals (Old)
-TerminalsView.context.name=In Terminal View
-TerminalsView.context.description=Show modified keyboard shortcuts in context menu
-
-# ----- Terminal Connectors -----
-
-TerminalConnector.streams=Streams Connector (hidden)
-
-# ----- Terminal Launcher Delegates -----
-
-StreamsLauncherDelegate.label=Streams Terminal
-
-# ----- Commands and Menu contributions -----
-command.category.name=Terminal Commands
-
-toolbar.terminal.label=Terminal
-
-command.launch.selection.name=Open Terminal on Selection
-command.launch.name=Open Terminal
-command.launch.label=Open Terminal...
-command.launch.tooltip=Open a Terminal
-
-command.disconnect.name=Disconnect Terminal
-command.disconnect.label=Disconnect
-command.disconnect.tooltip=Disconnect Terminal Connection
-
-command.newview.name=New Terminal View
-
-menu.showIn.label = Show in Local Terminal
-menu.showIn.mnemonic=I
-
-LocalLauncherDelegate.label=Local Terminal
-
-command.launch.name=Open Local Terminal on Selection
-
-menu.showIn.localterminal.label = Terminal
-
-TerminalConnector.local=Local
-
-# ----- Extension Points -----
-
-ExtensionPoint.launcherDelegates.name=Terminal Launcher Delegates
-
-# ----- Activity contributions -----
-
-activities.category.terminals.name=Terminal
-activities.category.terminals.description=Use the terminal to connect to remote hosts via telnet, ssh and others.
-
-activities.activity.terminals.views.name=Terminal Views
-activities.activity.terminals.views.description=Terminal related views.
-
-activities.activity.terminals.maintoolbar.name=Terminal Main Toolbar
-activities.activity.terminals.maintoolbar.description=Terminal main toolbar buttons.
-
-# ----- Preference Pages -----
-
-preference.page.name=Local Terminal
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/plugin.xml b/terminal/plugins/org.eclipse.tm.terminal.view.ui/plugin.xml
deleted file mode 100644
index a00a5fa5614..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/plugin.xml
+++ /dev/null
@@ -1,559 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/schema/launcherDelegates.exsd b/terminal/plugins/org.eclipse.tm.terminal.view.ui/schema/launcherDelegates.exsd
deleted file mode 100644
index 4e011a1e3a3..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/schema/launcherDelegates.exsd
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
-
-
-
-
-
-
- This extension point is used to contribute terminal launcher delegates.
-<p>
-Terminal launcher delegates contributes terminal settings widget to the <code>LaunchTerminalSettingsDialog</code> required to open a remote terminal through a specific communication channel, like TCF or SSH.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Declares a terminal launcher delegate contribution.
-
-
-
-
-
-
-
-
-
-
-
- The unique id of the terminal launcher delegate contribution.
-
-
-
-
-
-
- The label representing the terminal launcher delegate within the UI.
-
-
-
-
-
-
- The class that implements <code>org.eclipse.tcf.te.ui.terminals.interfaces.ILauncherDelegate</code> or extends <code>org.eclipse.tcf.te.ui.terminals.launcher.AbstractLauncherDelegate</code>.
-<p>
-The terminal launcher delegate implementation class must be specified either by the class attribute or the class child element!
-
-
-
-
-
-
-
-
-
- If <code>true</code>, than the terminal launcher delegate is not visible in the UI, even if a possible <code>enablement</code> will evaluate to <code>true</code>.
-
-
-
-
-
-
-
-
-
- A short description of the terminal connector type to be presented in the UI.
-
-
-
-
-
-
-
- Used when creating an <code>IExecutableExtension</code> with a named parameter, or more than one.
-
-
-
-
-
-
-
-
-
- The class that implements <code>org.eclipse.tcf.te.ui.terminals.interfaces.ILauncherDelegate</code> or extends <code>org.eclipse.tcf.te.ui.terminals.launcher.AbstractLauncherDelegate</code>.
-<p>
-The terminal launcher delegate implementation class must be specified either by the class attribute or the class child element!
-
-
-
-
-
-
-
-
-
-
-
-
- A parameter for an <code>IExecutableExtension</code>.
-
-
-
-
-
-
- <p>The parameter name.</p>
-
-
-
-
-
-
- <p>The parameter value.</p>
-
-
-
-
-
-
-
-
-
-
-
- Target Explorer 1.0.0
-
-
-
-
-
-
-
-
- This is an example of the extension point usage:
-<p>
-<pre><code>
- <extension point="org.eclipse.tcf.te.ui.terminals.launcherDelegates">
- <delegate
- id="org.eclipse.tcf.te.ui.terminals.launcher.tcf"
- class="org.eclipse.tcf.te.tcf.terminals.ui.internal.TerminalLauncherDelegate"
- label="TCF Terminal">
- <enablement>
- ...
- </enablement>
- </delegate>
- </extension>
-</code></pre>
-
-
-
-
-
-
-
-
- The provider of a launcher delegate must implement <samp>org.eclipse.tcf.te.ui.terminals.interfaces.ILauncherDelegate</samp>.
-
-
-
-
-
-
-
-
-
- Copyright (c) 2011, 2018 Wind River Systems, Inc. and others.
-
-All rights reserved.
-
-This program and the accompanying materials are made available under the terms
-of the Eclipse Public License 2.0 which accompanies this distribution, and is
-available at https://www.eclipse.org/legal/epl-2.0/
-
- SPDX-License-Identifier: EPL-2.0
-
-
-
-
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/AbstractAction.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/AbstractAction.java
deleted file mode 100644
index 31967001c57..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/AbstractAction.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.actions;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderToolbarHandler;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * Abstract terminal action wrapper implementation.
- */
-public abstract class AbstractAction extends AbstractTerminalAction {
- // Reference to the parent toolbar handler
- private final TabFolderToolbarHandler parent;
-
- /**
- * Constructor.
- *
- * @param parent
- * The parent toolbar handler instance. Must not be
- * null
.
- * @param id
- * The terminal action id. Must not be null
.
- */
- public AbstractAction(TabFolderToolbarHandler parent, String id) {
- super(id);
-
- Assert.isNotNull(parent);
- this.parent = parent;
- }
-
- /**
- * Returns the parent toolbar handler.
- *
- * @return The parent toolbar handler.
- */
- protected final TabFolderToolbarHandler getParent() {
- return parent;
- }
-
- @Override
- protected ITerminalViewControl getTarget() {
- return getParent().getActiveTerminalViewControl();
- }
-
- @Override
- public void run() {
- // Get the active tab item from the tab folder manager
- TabFolderManager manager = getParent().getAdapter(TabFolderManager.class);
- if (manager != null) {
- // If we have the active tab item, we can get the active terminal control
- CTabItem activeTabItem = manager.getActiveTabItem();
- if (activeTabItem != null) {
- // And execute the command
- executeCommand(activeTabItem.getData("customData")); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Executes the command for the given data node as current and active menu selection.
- *
- * Node: If the provided data node is null
, the method will trigger
- * the command with an empty selection.
- *
- * @param data The terminal custom data node or null
.
- */
- protected void executeCommand(Object data) {
- // Get the command service from the workbench
- ICommandService service = PlatformUI.getWorkbench().getAdapter(ICommandService.class);
- if (service != null && getCommandId() != null) {
- // Get the command
- final Command command = service.getCommand(getCommandId());
- if (command != null && command.isDefined()) {
- IHandlerService handlerSvc = PlatformUI.getWorkbench().getService(IHandlerService.class);
- Assert.isNotNull(handlerSvc);
-
- // Construct a selection element
- IStructuredSelection selection = data != null ? new StructuredSelection(data)
- : new StructuredSelection();
- // Construct the application context
- EvaluationContext context = new EvaluationContext(handlerSvc.getCurrentState(), selection);
- // Apply the selection to the "activeMenuSelection" and "selection" variable too
- context.addVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME, selection);
- context.addVariable(ISources.ACTIVE_MENU_SELECTION_NAME, selection);
- // Allow plug-in activation
- context.setAllowPluginActivation(true);
- // And execute the event
- try {
- ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(command, null);
- Assert.isNotNull(pCmd);
-
- handlerSvc.executeCommandInContext(pCmd, null, context);
- } catch (Exception e) {
- IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
- NLS.bind(Messages.AbstractAction_error_commandExecutionFailed, getCommandId(),
- e.getLocalizedMessage()),
- e);
- UIPlugin.getDefault().getLog().log(status);
- }
- }
- }
- }
-
- /**
- * Returns the command id of the command to execute.
- *
- * @return The command id. Must be never null
.
- */
- protected abstract String getCommandId();
-
- @Override
- public void updateAction(boolean aboutToShow) {
- // Ignore the flag given from outside. We have to decide ourself
- // what the enabled state of the action is
- boolean enabled = getTarget() != null;
-
- // If a target terminal control is available, we need to find the corresponding
- // VLM target object which we need to trigger the handler
- if (enabled) {
- // The action will be enabled if we can determine the VLM target object
- enabled = false;
- // Get the active tab item from the tab folder manager
- TabFolderManager manager = getParent().getAdapter(TabFolderManager.class);
- if (manager != null) {
- // If we have the active tab item, we can get the active terminal control
- CTabItem activeTabItem = manager.getActiveTabItem();
- if (activeTabItem != null) {
- enabled = checkEnableAction(activeTabItem.getData("customData")); //$NON-NLS-1$
- }
- }
- }
-
- setEnabled(enabled);
- }
-
- /**
- * Checks if the action should be enabled based on the given terminal data object.
- *
- * @param data The terminal data node or null
.
- * @return True
to enable the action, false
otherwise.
- */
- protected boolean checkEnableAction(Object data) {
- return data != null;
- }
-
- /**
- * Returns if the action is a separator. Returning true
here
- * means that an additional separator toolbar element is added right or
- * above of the action.
- *
- * @return True
if the action is separating the parent contribution manager, false
otherwise.
- */
- public boolean isSeparator() {
- return false;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/InvertColorsAction.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/InvertColorsAction.java
deleted file mode 100644
index 2ea1e97337f..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/InvertColorsAction.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 Fabrizio Iannetti.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tm.terminal.view.ui.actions;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-
-/**
- * @since 4.8
- */
-public class InvertColorsAction extends AbstractTerminalAction {
-
- /**
- * Constructor.
- *
- * @param tabFolderManager The parent tab folder manager. Must not be null
.
- */
- public InvertColorsAction(TabFolderManager tabFolderManager) {
- super(null, InvertColorsAction.class.getName(), IAction.AS_CHECK_BOX);
-
- Assert.isNotNull(tabFolderManager);
- setupAction(Messages.InvertColorsAction_menu, Messages.InvertColorsAction_tooltip, (ImageDescriptor) null,
- (ImageDescriptor) null, (ImageDescriptor) null, true);
- }
-
- @Override
- public void run() {
- ITerminalViewControl target = getTarget();
- if (target == null)
- return;
- target.setInvertedColors(!target.isInvertedColors());
- }
-
- @Override
- public void updateAction(boolean aboutToShow) {
- setEnabled(aboutToShow && getTarget() != null && getTarget().getState() == TerminalState.CONNECTED);
- setChecked(aboutToShow && getTarget() != null && getTarget().isInvertedColors());
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/NewTerminalViewAction.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/NewTerminalViewAction.java
deleted file mode 100644
index 7d61839b9e7..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/NewTerminalViewAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.actions;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-
-/**
- * Opens a new terminal view with a new secondary view ID.
- *
- * @since 4.1
- */
-public class NewTerminalViewAction extends AbstractTerminalAction {
-
- //private ITerminalsView view = null;
-
- /**
- * Constructor.
- */
- public NewTerminalViewAction(ITerminalsView view) {
- super(null, NewTerminalViewAction.class.getName(), IAction.AS_PUSH_BUTTON);
-
- //this.view = view;
- setupAction(Messages.NewTerminalViewAction_menu, Messages.NewTerminalViewAction_tooltip,
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_NewTerminalView_Hover),
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_NewTerminalView_Enabled),
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_NewTerminalView_Disabled), true);
- setEnabled(true);
- }
-
- @Override
- public void run() {
- ICommandService service = PlatformUI.getWorkbench().getService(ICommandService.class);
- Command command = service != null ? service.getCommand("org.eclipse.tm.terminal.view.ui.command.newview") //$NON-NLS-1$
- : null;
- if (command != null && command.isDefined() && command.isEnabled()) {
- try {
- ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(command, null);
- Assert.isNotNull(pCmd);
- IHandlerService handlerSvc = PlatformUI.getWorkbench().getService(IHandlerService.class);
- Assert.isNotNull(handlerSvc);
- handlerSvc.executeCommandInContext(pCmd, null, handlerSvc.getCurrentState());
- } catch (Exception e) {
- // If the platform is in debug mode, we print the exception to the log view
- if (Platform.inDebugMode()) {
- IStatus status = new Status(IStatus.ERROR, UIPlugin.getUniqueIdentifier(),
- Messages.AbstractTriggerCommandHandler_error_executionFailed, e);
- UIPlugin.getDefault().getLog().log(status);
- }
- }
- }
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/RenameTerminalAction.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/RenameTerminalAction.java
deleted file mode 100644
index 9eeae1df516..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/RenameTerminalAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2021 Kichwa Coders Canada Inc. and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-
-package org.eclipse.tm.terminal.view.ui.actions;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.tm.internal.terminal.control.ITerminalListener3.TerminalTitleRequestor;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-
-/**
- * @since 4.8
- */
-public class RenameTerminalAction extends AbstractTerminalAction {
-
- /**
- * Constructor.
- *
- * @param tabFolderManager The parent tab folder manager. Must not be null
.
- */
- public RenameTerminalAction(TabFolderManager tabFolderManager) {
- super(RenameTerminalAction.class.getName());
-
- Assert.isNotNull(tabFolderManager);
- setupAction(Messages.RenameTerminalAction_menu, Messages.RenameTerminalAction_tooltip, (ImageDescriptor) null,
- (ImageDescriptor) null, (ImageDescriptor) null, true);
- }
-
- @Override
- public void run() {
- ITerminalViewControl target = getTarget();
- if (target == null)
- return;
- InputDialog inputDialog = new InputDialog(target.getControl().getShell(), //
- Messages.RenameTerminalAction_inputdialog_title, //
- Messages.RenameTerminalAction_inputdialog_prompt, //
- Messages.RenameTerminalAction_inputdialog_defaulttext, //
- null);
- if (inputDialog.open() == Window.OK) {
- String value = inputDialog.getValue();
- if (value != null) {
- target.setTerminalTitle(value, TerminalTitleRequestor.MENU);
- }
- }
-
- }
-
- @Override
- public void updateAction(boolean aboutToShow) {
- setEnabled(aboutToShow && getTarget() != null);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/SelectEncodingAction.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/SelectEncodingAction.java
deleted file mode 100644
index 8b7177a2d32..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/SelectEncodingAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.actions;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.internal.dialogs.EncodingSelectionDialog;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-
-/**
- * Terminal control select encoding action implementation.
- */
-public class SelectEncodingAction extends AbstractTerminalAction {
- // Reference to the parent tab folder manager
- private final TabFolderManager tabFolderManager;
-
- /**
- * Constructor.
- *
- * @param tabFolderManager The parent tab folder manager. Must not be null
.
- */
- public SelectEncodingAction(TabFolderManager tabFolderManager) {
- super(null, SelectEncodingAction.class.getName(), IAction.AS_PUSH_BUTTON);
-
- Assert.isNotNull(tabFolderManager);
- this.tabFolderManager = tabFolderManager;
-
- setupAction(Messages.SelectEncodingAction_menu, Messages.SelectEncodingAction_tooltip, (ImageDescriptor) null,
- (ImageDescriptor) null, (ImageDescriptor) null, true);
- }
-
- @Override
- public void run() {
- ITerminalViewControl target = getTarget();
- if (target == null)
- return;
-
- EncodingSelectionDialog dialog = new EncodingSelectionDialog(null);
- dialog.setCharset(target.getCharset());
- if (dialog.open() == Window.OK) {
- target.setCharset(dialog.getCharset());
- tabFolderManager.updateStatusLine();
- }
- }
-
- @Override
- public void updateAction(boolean aboutToShow) {
- setEnabled(aboutToShow && getTarget() != null && getTarget().getState() == TerminalState.CONNECTED);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/TabScrollLockAction.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/TabScrollLockAction.java
deleted file mode 100644
index 25e1b3352ca..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/TabScrollLockAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-
-/**
- * Terminal console tab scroll lock action.
- */
-public class TabScrollLockAction extends AbstractTerminalAction {
-
- /**
- * Constructor.
- */
- public TabScrollLockAction() {
- super(null, TabScrollLockAction.class.getName(), IAction.AS_RADIO_BUTTON);
-
- setupAction(Messages.TabScrollLockAction_text, Messages.TabScrollLockAction_tooltip,
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_ScrollLock_Hover),
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_ScrollLock_Enabled),
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_ScrollLock_Disabled), true);
- }
-
- @Override
- public void run() {
- ITerminalViewControl target = getTarget();
- if (target != null) {
- target.setScrollLock(!target.isScrollLock());
- setChecked(target.isScrollLock());
- }
- }
-
- @Override
- public void updateAction(boolean aboutToShow) {
- setEnabled(aboutToShow && getTarget() != null && getTarget().getState() == TerminalState.CONNECTED);
- setChecked(getTarget() != null && getTarget().isScrollLock());
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/ToggleCommandFieldAction.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/ToggleCommandFieldAction.java
deleted file mode 100644
index 13efde8f3b9..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/actions/ToggleCommandFieldAction.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.control.actions.AbstractTerminalAction;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.tabs.TabCommandFieldHandler;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-
-/**
- * Toggle command input field.
- */
-public class ToggleCommandFieldAction extends AbstractTerminalAction {
- private ITerminalsView view = null;
-
- /**
- * Constructor.
- */
- public ToggleCommandFieldAction(ITerminalsView view) {
- super(null, ToggleCommandFieldAction.class.getName(), IAction.AS_CHECK_BOX);
-
- this.view = view;
- setupAction(Messages.ToggleCommandFieldAction_menu, Messages.ToggleCommandFieldAction_toolTip,
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_ToggleCommandField_Hover),
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_ToggleCommandField_Enabled),
- UIPlugin.getImageDescriptor(ImageConsts.ACTION_ToggleCommandField_Disabled), true);
-
- TabCommandFieldHandler handler = getCommandFieldHandler();
- setChecked(handler != null && handler.hasCommandInputField());
- }
-
- @Override
- public void run() {
- TabCommandFieldHandler handler = getCommandFieldHandler();
- if (handler != null) {
- handler.setCommandInputField(!handler.hasCommandInputField());
- }
- setChecked(handler != null && handler.hasCommandInputField());
- }
-
- @Override
- public void updateAction(boolean aboutToShow) {
- TabCommandFieldHandler handler = getCommandFieldHandler();
- ITerminalViewControl target = getTarget();
- setEnabled(aboutToShow && handler != null && target != null && target.getState() == TerminalState.CONNECTED);
- setChecked(handler != null && handler.hasCommandInputField());
- }
-
- /**
- * Returns the command input field handler for the active tab.
- *
- * @return The command input field handler or null
.
- */
- protected TabCommandFieldHandler getCommandFieldHandler() {
- TabCommandFieldHandler handler = null;
- // Get the active tab item from the tab folder manager
- TabFolderManager manager = view.getAdapter(TabFolderManager.class);
- if (manager != null) {
- // If we have the active tab item, we can get the active terminal control
- CTabItem activeTabItem = manager.getActiveTabItem();
- if (activeTabItem != null && !activeTabItem.isDisposed()) {
- handler = manager.getTabCommandFieldHandler(activeTabItem);
- }
- }
- return handler;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/activator/UIPlugin.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/activator/UIPlugin.java
deleted file mode 100644
index 0fb148e3a6a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/activator/UIPlugin.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.activator;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.core.preferences.ScopedEclipsePreferences;
-import org.eclipse.tm.terminal.view.core.tracing.TraceHandler;
-import org.eclipse.tm.terminal.view.ui.interfaces.ImageConsts;
-import org.eclipse.tm.terminal.view.ui.listeners.WorkbenchWindowListener;
-import org.eclipse.tm.terminal.view.ui.view.TerminalsView;
-import org.eclipse.tm.terminal.view.ui.view.TerminalsViewMementoHandler;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchListener;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class UIPlugin extends AbstractUIPlugin {
- // The shared instance
- private static UIPlugin plugin;
- // The scoped preferences instance
- private static volatile ScopedEclipsePreferences scopedPreferences;
- // The trace handler instance
- private static volatile TraceHandler traceHandler;
- // The workbench listener instance
- private IWorkbenchListener listener;
- // The global window listener instance
- private IWindowListener windowListener;
-
- /**
- * The constructor
- */
- public UIPlugin() {
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static UIPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plug-in.
- */
- public static String getUniqueIdentifier() {
- if (getDefault() != null && getDefault().getBundle() != null) {
- return getDefault().getBundle().getSymbolicName();
- }
- return "org.eclipse.tm.terminal.view.ui"; //$NON-NLS-1$
- }
-
- /**
- * Return the scoped preferences for this plug-in.
- */
- public static ScopedEclipsePreferences getScopedPreferences() {
- if (scopedPreferences == null) {
- scopedPreferences = new ScopedEclipsePreferences(getUniqueIdentifier());
- }
- return scopedPreferences;
- }
-
- /**
- * Returns the bundles trace handler.
- *
- * @return The bundles trace handler.
- */
- public static TraceHandler getTraceHandler() {
- if (traceHandler == null) {
- traceHandler = new TraceHandler(getUniqueIdentifier());
- }
- return traceHandler;
- }
-
- @Override
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
-
- // Create and register the workbench listener instance
- listener = new IWorkbenchListener() {
-
- @Override
- public boolean preShutdown(IWorkbench workbench, boolean forced) {
- if (workbench != null && workbench.getActiveWorkbenchWindow() != null
- && workbench.getActiveWorkbenchWindow().getActivePage() != null) {
- // Find all "Terminal" views
- IViewReference[] refs = workbench.getActiveWorkbenchWindow().getActivePage().getViewReferences();
- for (IViewReference ref : refs) {
- IViewPart part = ref.getView(false);
- if (part instanceof TerminalsView) {
- /*
- * The terminal tabs to save to the views memento on shutdown can
- * be determined only _before_ the saveState(memento) method of the
- * view is called. Within saveState, it is already to late and the
- * terminals might be in CLOSED state already. This depends on the
- * terminal type and the corresponding connector implementation.
- *
- * To be safe, we determine the still opened terminals on shutdown
- * separately here in the preShutdown.
- */
- final List saveables = new ArrayList<>();
-
- // Get the tab folder
- CTabFolder tabFolder = ((TerminalsView) part).getAdapter(CTabFolder.class);
- if (tabFolder != null && !tabFolder.isDisposed()) {
- // Get the list of tab items
- CTabItem[] items = tabFolder.getItems();
- // Loop the tab items and find the still connected ones
- for (CTabItem item : items) {
- // Ignore disposed items
- if (item.isDisposed())
- continue;
- // Get the terminal view control
- ITerminalViewControl terminal = (ITerminalViewControl) item.getData();
- if (terminal == null || terminal.getState() != TerminalState.CONNECTED) {
- continue;
- }
- // Still connected -> Add to the list
- saveables.add(item);
- }
- }
-
- // Push the determined saveable items to the memento handler
- TerminalsViewMementoHandler mementoHandler = ((TerminalsView) part)
- .getAdapter(TerminalsViewMementoHandler.class);
- if (mementoHandler != null)
- mementoHandler.setSaveables(saveables);
- }
- }
- }
-
- return true;
- }
-
- @Override
- public void postShutdown(IWorkbench workbench) {
- }
- };
- PlatformUI.getWorkbench().addWorkbenchListener(listener);
-
- if (windowListener == null && PlatformUI.getWorkbench() != null) {
- windowListener = new WorkbenchWindowListener();
- PlatformUI.getWorkbench().addWindowListener(windowListener);
- activateContexts();
- }
- }
-
- void activateContexts() {
- if (Display.getCurrent() != null) {
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- if (window != null && windowListener != null)
- windowListener.windowOpened(window);
- } else {
- PlatformUI.getWorkbench().getDisplay().asyncExec(() -> activateContexts());
- }
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- if (windowListener != null && PlatformUI.getWorkbench() != null) {
- PlatformUI.getWorkbench().removeWindowListener(windowListener);
- windowListener = null;
- }
-
- plugin = null;
- scopedPreferences = null;
- traceHandler = null;
- if (listener != null) {
- PlatformUI.getWorkbench().removeWorkbenchListener(listener);
- listener = null;
- }
- super.stop(context);
- }
-
- @Override
- protected void initializeImageRegistry(ImageRegistry registry) {
- Bundle bundle = getBundle();
- URL url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_EVIEW + "console_view.png"); //$NON-NLS-1$
- registry.put(ImageConsts.VIEW_Terminals, ImageDescriptor.createFromURL(url));
-
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_CLCL + "lock_co.png"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_ScrollLock_Hover, ImageDescriptor.createFromURL(url));
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_ELCL + "lock_co.png"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_ScrollLock_Enabled, ImageDescriptor.createFromURL(url));
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_DLCL + "lock_co.png"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_ScrollLock_Disabled, ImageDescriptor.createFromURL(url));
-
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_CLCL + "command_input_field.gif"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_ToggleCommandField_Hover, ImageDescriptor.createFromURL(url));
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_ELCL + "command_input_field.gif"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_ToggleCommandField_Enabled, ImageDescriptor.createFromURL(url));
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_DLCL + "command_input_field.gif"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_ToggleCommandField_Disabled, ImageDescriptor.createFromURL(url));
-
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_CLCL + "new_terminal_view.gif"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_NewTerminalView_Hover, ImageDescriptor.createFromURL(url));
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_ELCL + "new_terminal_view.gif"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_NewTerminalView_Enabled, ImageDescriptor.createFromURL(url));
- url = bundle.getEntry(ImageConsts.IMAGE_DIR_ROOT + ImageConsts.IMAGE_DIR_DLCL + "new_terminal_view.gif"); //$NON-NLS-1$
- registry.put(ImageConsts.ACTION_NewTerminalView_Disabled, ImageDescriptor.createFromURL(url));
- }
-
- /**
- * Loads the image registered under the specified key from the image
- * registry and returns the Image
object instance.
- *
- * @param key The key the image is registered with.
- * @return The Image
object instance or null
.
- */
- public static Image getImage(String key) {
- return getDefault().getImageRegistry().get(key);
- }
-
- /**
- * Loads the image registered under the specified key from the image
- * registry and returns the ImageDescriptor
object instance.
- *
- * @param key The key the image is registered with.
- * @return The ImageDescriptor
object instance or null
.
- */
- public static ImageDescriptor getImageDescriptor(String key) {
- return getDefault().getImageRegistry().getDescriptor(key);
- }
-
- public static void log(String msg, Throwable e) {
- log(new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.ERROR, msg, e));
- }
-
- public static void log(IStatus status) {
- getDefault().getLog().log(status);
- }
-
- public static boolean isOptionEnabled(String strOption) {
- String strEnabled = Platform.getDebugOption(strOption);
- if (strEnabled == null)
- return false;
-
- return Boolean.parseBoolean(strEnabled);
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/ConfigurationPanelControl.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/ConfigurationPanelControl.java
deleted file mode 100644
index e95b8dc05ba..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/ConfigurationPanelControl.java
+++ /dev/null
@@ -1,413 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.controls;
-
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel;
-
-/**
- * Base control to deal with wizard or property page controls
- * which should share the same UI space.
- */
-public class ConfigurationPanelControl implements IConfigurationPanelContainer, IMessageProvider {
- private final Map configurationPanels = new Hashtable<>();
-
- private String message = null;
- private int messageType = IMessageProvider.NONE;
-
- private boolean isGroup;
-
- private Composite panel;
- private StackLayout panelLayout;
-
- private String activeConfigurationPanelKey = null;
- private IConfigurationPanel activeConfigurationPanel = null;
-
- private final AbstractConfigurationPanel EMPTY_PANEL;
-
- /**
- * An empty configuration panel implementation.
- */
- private static final class EmptySettingsPanel extends AbstractConfigurationPanel {
-
- /**
- * Constructor.
- *
- * @param container The configuration panel container or null
.
- */
- public EmptySettingsPanel(IConfigurationPanelContainer container) {
- super(container);
- }
-
- @Override
- public void setupPanel(Composite parent) {
- Composite panel = new Composite(parent, SWT.NONE);
- panel.setLayout(new GridLayout());
- panel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
- panel.setBackground(parent.getBackground());
-
- setControl(panel);
- }
-
- @Override
- public boolean isValid() {
- return false;
- }
- }
-
- /**
- * Cleanup all resources the control might have been created.
- */
- public void dispose() {
- EMPTY_PANEL.dispose();
- }
-
- /**
- * Constructor.
- */
- public ConfigurationPanelControl() {
- EMPTY_PANEL = new EmptySettingsPanel(this);
- clear();
- setPanelIsGroup(false);
- }
-
- /**
- * Sets if or if not the controls panel is a Group
.
- *
- * @param isGroup True
if the controls panel is a group, false
otherwise.
- */
- public void setPanelIsGroup(boolean isGroup) {
- this.isGroup = isGroup;
- }
-
- /**
- * Returns if or if not the controls panel is a Group
.
- *
- * @return True
if the controls panel is a group, false
otherwise.
- */
- public boolean isPanelIsGroup() {
- return isGroup;
- }
-
- /**
- * Returns the controls panel.
- *
- * @return The controls panel or null
.
- */
- public Composite getPanel() {
- return panel;
- }
-
- /**
- * Returns the label text to set for the group (if the panel is a group).
- *
- * @return The label text to apply or null
.
- */
- public String getGroupLabel() {
- return null;
- }
-
- @Override
- public void validate() {
- }
-
- /**
- * To be called from the embedding control to setup the controls UI elements.
- *
- * @param parent The parent control. Must not be null
!
- */
- public void setupPanel(Composite parent, String[] configurationPanelKeys) {
- Assert.isNotNull(parent);
-
- if (isPanelIsGroup()) {
- panel = new Group(parent, SWT.NONE);
- if (getGroupLabel() != null)
- ((Group) panel).setText(getGroupLabel());
- } else {
- panel = new Composite(parent, SWT.NONE);
- }
- Assert.isNotNull(panel);
- panel.setFont(parent.getFont());
- panel.setBackground(parent.getBackground());
-
- panelLayout = new StackLayout();
- panel.setLayout(panelLayout);
-
- setupConfigurationPanels(panel, configurationPanelKeys);
- EMPTY_PANEL.setupPanel(panel);
- }
-
- /**
- * Removes all configuration panels.
- */
- public void clear() {
- configurationPanels.clear();
- }
-
- /**
- * Returns a unsorted list of all registered configuration panel id's.
- *
- * @return A list of registered configuration panel id's.
- */
- public String[] getConfigurationPanelIds() {
- return configurationPanels.keySet().toArray(new String[configurationPanels.keySet().size()]);
- }
-
- /**
- * Returns the configuration panel instance registered for the given configuration panel key.
- *
- * @param key The key to get the configuration panel for. Must not be null
!
- * @return The configuration panel instance or an empty configuration panel if the key is unknown.
- */
- public IConfigurationPanel getConfigurationPanel(String key) {
- IConfigurationPanel panel = key != null ? configurationPanels.get(key) : null;
- return panel != null ? panel : EMPTY_PANEL;
- }
-
- /**
- * Returns if or if not the given configuration panel is equal to the
- * empty configuration panel.
- *
- * @param panel The configuration panel or null
.
- * @return True
if the configuration panel is equal to the empty configuration panel.
- */
- public final boolean isEmptyConfigurationPanel(IConfigurationPanel panel) {
- return EMPTY_PANEL == panel;
- }
-
- /**
- * Adds the given configuration panel under the given configuration panel key to the
- * list of known panels. If the given configuration panel is null
, any
- * configuration panel stored under the given key is removed from the list of known panels.
- *
- * @param key The key to get the configuration panel for. Must not be null
!
- * @param panel The configuration panel instance or null
.
- */
- public void addConfigurationPanel(String key, IConfigurationPanel panel) {
- if (key == null)
- return;
- if (panel != null) {
- configurationPanels.put(key, panel);
- } else {
- configurationPanels.remove(key);
- }
- }
-
- /**
- * Setup the configuration panels for being presented to the user. This method is called by the
- * controls doSetupPanel(...)
and initialize all possible configuration panels to show.
- * The default implementation iterates over the given list of configuration panel keys and calls
- * setupPanel(...)
for each of them.
- *
- * @param parent The parent composite to use for the configuration panels. Must not be null
!
- * @param configurationPanelKeys The list of configuration panels to initialize. Might be null
or empty!
- */
- public void setupConfigurationPanels(Composite parent, String[] configurationPanelKeys) {
- Assert.isNotNull(parent);
-
- if (configurationPanelKeys != null) {
- for (String configurationPanelKey : configurationPanelKeys) {
- IConfigurationPanel configPanel = getConfigurationPanel(configurationPanelKey);
- Assert.isNotNull(configPanel);
- configPanel.setupPanel(parent);
- }
- }
- }
-
- /**
- * Make the wizard configuration panel registered under the given configuration panel key the
- * most top configuration panel. If no configuration panel is registered under the given key,
- * nothing will happen.
- *
- * @param key The key to get the wizard configuration panel for. Must not be null
!
- */
- public void showConfigurationPanel(String key) {
- String activeKey = getActiveConfigurationPanelKey();
- if (key != null && key.equals(activeKey) && activeConfigurationPanel != null) {
- return;
- }
- IConfigurationPanel configPanel = getActiveConfigurationPanel();
- Map data = new HashMap<>();
- if (configPanel != null)
- configPanel.extractData(data);
- configPanel = getConfigurationPanel(key);
- Assert.isNotNull(configPanel);
- if (configPanel.getControl() != null) {
- activeConfigurationPanel = configPanel;
- activeConfigurationPanelKey = key;
- panelLayout.topControl = configPanel.getControl();
- panel.layout();
- if (!data.isEmpty())
- configPanel.updateData(data);
- configPanel.activate();
- } else {
- activeConfigurationPanelKey = key;
- }
- }
-
- /**
- * Returns the currently active configuration panel.
- *
- * @return The active configuration panel or null
.
- */
- public IConfigurationPanel getActiveConfigurationPanel() {
- return activeConfigurationPanel;
- }
-
- /**
- * Returns the currently active configuration panel key.
- *
- * @return The active configuration panel key or null
.
- */
- public String getActiveConfigurationPanelKey() {
- return activeConfigurationPanelKey;
- }
-
- /**
- * Returns the dialog settings to use to save and restore control specific
- * widget values.
- *
- * @param settings The parent dialog settings. Must not be null
.
- * @return The dialog settings to use.
- */
- public final IDialogSettings getDialogSettings(IDialogSettings settings) {
- Assert.isNotNull(settings);
-
- // Store the settings of the control within it's own section.
- String sectionName = this.getClass().getSimpleName();
- Assert.isNotNull(sectionName);
-
- IDialogSettings section = settings.getSection(sectionName);
- if (section == null) {
- section = settings.addNewSection(sectionName);
- }
-
- return section;
- }
-
- /**
- * Restore the widget values from the dialog settings store to recreate the control history.
- *
- * Note:
- * The control is saving the widget values into a section equal to the class name {@link Class#getName()}.
- * After the sections has been created, the method calls doRestoreWidgetValues
for restoring
- * the single properties from the dialog settings. Subclasses may override doRestoreWidgetValues
- * only to deal with the single properties only or restoreWidgetValues
when to override the
- * creation of the subsections.
- *
- * @param settings The dialog settings object instance to restore the widget values from. Must not be null
!
- * @param idPrefix The prefix to use for every dialog settings slot keys. If null
, the dialog settings slot keys are not to prefix.
- */
- public final void restoreWidgetValues(IDialogSettings settings, String idPrefix) {
- Assert.isNotNull(settings);
-
- // now, call the hook for actually reading the single properties from the dialog settings.
- doRestoreWidgetValues(getDialogSettings(settings), idPrefix);
- }
-
- /**
- * Hook to restore the widget values finally plain from the given dialog settings. This method should
- * not fragment the given dialog settings any further.
- *
- * @param settings The dialog settings to restore the widget values from. Must not be null
!
- * @param idPrefix The prefix to use for every dialog settings slot keys. If null
, the dialog settings slot keys are not to prefix.
- */
- public void doRestoreWidgetValues(IDialogSettings settings, String idPrefix) {
- Assert.isNotNull(settings);
-
- for (String panelKey : configurationPanels.keySet()) {
- IConfigurationPanel configPanel = getConfigurationPanel(panelKey);
- if (configPanel != null && !isEmptyConfigurationPanel(configPanel)) {
- IDialogSettings configPanelSettings = settings.getSection(panelKey);
- if (configPanelSettings == null)
- configPanelSettings = settings.addNewSection(panelKey);
- configPanel.doRestoreWidgetValues(configPanelSettings, idPrefix);
- }
- }
- }
-
- /**
- * Saves the widget values to the dialog settings store for remembering the history. The control might
- * be embedded within multiple pages multiple times handling different properties. Because the single
- * controls should not mix up the history, we create subsections within the given dialog settings if
- * they do not already exist. After the sections has been created, the method calls doSaveWidgetValues
- * for saving the single properties to the dialog settings. Subclasses may override doSaveWidgetValues
- * only to deal with the single properties only or saveWidgetValues
when to override the
- * creation of the subsections.
- *
- * @param settings The dialog settings object instance to save the widget values to. Must not be null
!
- * @param idPrefix The prefix to use for every dialog settings slot keys. If null
, the dialog settings slot keys are not to prefix.
- */
- public final void saveWidgetValues(IDialogSettings settings, String idPrefix) {
- Assert.isNotNull(settings);
-
- // now, call the hook for actually writing the single properties to the dialog settings.
- doSaveWidgetValues(getDialogSettings(settings), idPrefix);
- }
-
- /**
- * Hook to save the widget values finally plain to the given dialog settings. This method should
- * not fragment the given dialog settings any further.
- *
- * @param settings The dialog settings to save the widget values to. Must not be null
!
- * @param idPrefix The prefix to use for every dialog settings slot keys. If null
, the dialog settings slot keys are not to prefix.
- */
- public void doSaveWidgetValues(IDialogSettings settings, String idPrefix) {
- Assert.isNotNull(settings);
-
- IConfigurationPanel configPanel = getActiveConfigurationPanel();
- if (configPanel != null && !isEmptyConfigurationPanel(configPanel)) {
- String key = getActiveConfigurationPanelKey();
- IDialogSettings configPanelSettings = settings.getSection(key);
- if (configPanelSettings == null)
- configPanelSettings = settings.addNewSection(key);
- configPanel.doSaveWidgetValues(configPanelSettings, idPrefix);
- }
- }
-
- @Override
- public final String getMessage() {
- return message;
- }
-
- @Override
- public final int getMessageType() {
- return messageType;
- }
-
- /**
- * Set the message and the message type to display.
- *
- * @param message The message or null
.
- * @param messageType The message type or IMessageProvider.NONE
.
- */
- @Override
- public final void setMessage(String message, int messageType) {
- this.message = message;
- this.messageType = messageType;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/NoteCompositeHelper.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/NoteCompositeHelper.java
deleted file mode 100644
index d66ffe8e44b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/controls/NoteCompositeHelper.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.controls;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-
-/**
- * A helper class to create a composite with a highlighted note
- * entry and a message text.
- */
-public class NoteCompositeHelper {
-
- /**
- * The common label text to show on a note. Defaults to "Note:".
- */
- public static final String NOTE_LABEL = Messages.NoteCompositeHelper_note_label;
-
- private static class NoteComposite extends Composite {
-
- public NoteComposite(Composite parent, int style) {
- super(parent, style);
- }
-
- @Override
- public void setEnabled(boolean enabled) {
- super.setEnabled(enabled);
- for (Control child : getChildren()) {
- child.setEnabled(enabled);
- }
- }
- }
-
- /**
- * Creates a composite with a highlighted Note entry and a message text.
- * This is designed to take up the full width of the page.
- *
- * @see PreferencePage#createNoteComposite, this is a plain copy of that!
- * @param font
- * the font to use
- * @param composite
- * the parent composite
- * @param title
- * the title of the note
- * @param message
- * the message for the note
- *
- * @return the composite for the note
- */
- public static Composite createNoteComposite(Font font, Composite composite, String title, String message) {
- return createNoteComposite(font, composite, title, message, SWT.DEFAULT);
- }
-
- /**
- * Creates a composite with a highlighted Note entry and a message text.
- * This is designed to take up the full width of the page.
- *
- * @see PreferencePage#createNoteComposite, this is a plain copy of that!
- * @param font
- * the font to use
- * @param composite
- * the parent composite
- * @param title
- * the title of the note
- * @param message
- * the message for the note
- * @param minCharsPerLine
- * the minimum number of characters per line. Defaults to '65' if less than '20'.
- *
- * @return the composite for the note
- */
- public static Composite createNoteComposite(Font font, Composite composite, String title, String message,
- int minCharsPerLine) {
- final GC gc = new GC(composite);
- gc.setFont(font);
-
- Composite messageComposite = new NoteComposite(composite, SWT.NONE);
-
- GridLayout messageLayout = new GridLayout();
- messageLayout.numColumns = 2;
- messageLayout.marginWidth = 0;
- messageLayout.marginHeight = 0;
- messageComposite.setLayout(messageLayout);
-
- GridData layoutData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- if (composite.getLayout() instanceof GridLayout) {
- layoutData.horizontalSpan = ((GridLayout) composite.getLayout()).numColumns;
- }
- messageComposite.setLayoutData(layoutData);
- messageComposite.setFont(font);
-
- final Label noteLabel = new Label(messageComposite, SWT.BOLD);
- noteLabel.setText(title);
- noteLabel.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT));
- noteLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-
- final IPropertyChangeListener fontListener = event -> {
- // Note: This is actually wrong but the same as in platforms
- // PreferencePage
- if (JFaceResources.BANNER_FONT.equals(event.getProperty())) {
- noteLabel.setFont(JFaceResources.getFont(JFaceResources.BANNER_FONT));
- }
- };
- JFaceResources.getFontRegistry().addListener(fontListener);
- noteLabel.addDisposeListener(event -> JFaceResources.getFontRegistry().removeListener(fontListener));
-
- Label messageLabel = new Label(messageComposite, SWT.WRAP);
- messageLabel.setText(message);
- messageLabel.setFont(font);
-
- /**
- * Set the controls style to FILL_HORIZONTAL making it multi-line if
- * needed
- */
- layoutData = new GridData(GridData.FILL_HORIZONTAL);
- layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(),
- minCharsPerLine >= 20 ? minCharsPerLine : 65);
- messageLabel.setLayoutData(layoutData);
-
- gc.dispose();
-
- return messageComposite;
- }
-
- /**
- * change the text of the second label
- *
- * @param messageComposite
- * the NoteComposite that gets returned from createNoteComposite
- * @param msg
- * the new text
- */
- public static void setMessage(Composite messageComposite, String msg) {
- if (messageComposite instanceof NoteComposite) {
- Control[] children = messageComposite.getChildren();
- if (children.length == 2) {
- Control c = children[1];
- if (c instanceof Label) {
- ((Label) c).setText(msg);
- messageComposite.pack();
- }
- }
- }
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/help/IContextHelpIds.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/help/IContextHelpIds.java
deleted file mode 100644
index 0fb521ca456..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/help/IContextHelpIds.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Dirk Fauth - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.help;
-
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-
-/**
- * UI Context help id definitions.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IContextHelpIds {
-
- /**
- * UI plug-in common context help id prefix.
- */
- public final static String PREFIX = UIPlugin.getUniqueIdentifier() + "."; //$NON-NLS-1$
-
- /**
- * Launch terminal settings dialog.
- */
- public final static String LAUNCH_TERMINAL_SETTINGS_DIALOG = PREFIX + "LaunchTerminalSettingsDialog"; //$NON-NLS-1$
-
- /**
- * Terminal control encoding selection dialog.
- */
- public final static String ENCODING_SELECTION_DIALOG = PREFIX + "EncodingSelectionDialog"; //$NON-NLS-1$
-
- /**
- * External executables dialog.
- * @since 4.1
- */
- public final static String EXTERNAL_EXECUTABLES_DIALOG = PREFIX + "ExternalExecutablesDialog"; //$NON-NLS-1$
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanel.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanel.java
deleted file mode 100644
index 23859039434..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanel.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-import java.util.Map;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel;
-
-/**
- * Terminal launcher configuration panel.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * Clients should extend {@link AbstractConfigurationPanel} instead.
- */
-public interface IConfigurationPanel extends IMessageProvider {
-
- /**
- * Returns the configuration panel container.
- *
- * @return The configuration panel container or null
.
- */
- public IConfigurationPanelContainer getContainer();
-
- /**
- * Creates the terminal launcher configuration panel UI elements within the
- * given parent composite. Terminal launcher configuration panels should always
- * create another composite within the given composite, which is the panel top
- * control. The top control is queried later from the stack layout to show the
- * different panels if the selected terminal launcher changed.
- *
- * @param parent The parent composite to create the UI elements in. Must not be null
.
- */
- public void setupPanel(Composite parent);
-
- /**
- * Cleanup all resources the wizard configuration panel might have been created.
- */
- public void dispose();
-
- /**
- * Returns the terminal launcher configuration panels top control, typically a
- * composite control. This control is requested every time the stack layout is
- * required to set a new top control because the selected terminal launcher changed.
- *
- * @return The top control or null
if the configuration panel has been not setup yet.
- */
- public Composite getControl();
-
- /**
- * Validates the control and sets the message text and type so the parent
- * page or control is able to display validation result informations.
- * The default implementation of this method does nothing.
- *
- * @return Result of validation.
- */
- public boolean isValid();
-
- /**
- * Restore the widget values plain from the given dialog settings. This method should
- * not fragment the given dialog settings any further.
- *
- * @param settings The dialog settings to restore the widget values from. Must not be null
!
- * @param idPrefix The prefix to use for every dialog settings slot keys. If null
, the dialog settings slot keys are not to prefix.
- */
- public void doRestoreWidgetValues(IDialogSettings settings, String idPrefix);
-
- /**
- * Save the widget values plain to the given dialog settings. This method should
- * not fragment the given dialog settings any further.
- *
- * @param settings The dialog settings to save the widget values to. Must not be null
!
- * @param idPrefix The prefix to use for every dialog settings slot keys. If null
, the dialog settings slot keys are not to prefix.
- */
- public void doSaveWidgetValues(IDialogSettings settings, String idPrefix);
-
- /**
- * Enables or disables all UI elements belonging to the wizard configuration panel.
- *
- * @param enabled True
to enable the UI elements, false
otherwise.
- */
- public void setEnabled(boolean enabled);
-
- /**
- * Called when the panel gets the active panel.
- */
- public void activate();
-
- /**
- * Initialize the widgets based of the data from the given map.
- *
- * This method may called multiple times during the lifetime of the panel and the given
- * map might be even null
.
- *
- * @param data The map or null
.
- */
- public void setupData(Map data);
-
- /**
- * Extract the data from the widgets and write it back to the given map.
- *
- * This method may called multiple times during the lifetime of the panel and the given
- * map might be even null
.
- *
- * @param data The map or null
.
- */
- public void extractData(Map data);
-
- /**
- * Update the data from the given properties container which contains the current
- * working data.
- *
- * This method may called multiple times during the lifetime of the panel and the given
- * map might be even null
.
- *
- * @param data The map or null
.
- */
- public void updateData(Map data);
-
- /**
- * Set the selection to the terminal launcher configuration panel.
- *
- * @param selection The selection or null
.
- */
- public void setSelection(ISelection selection);
-
- /**
- * Returns the selection associated with the terminal launcher configuration panel.
- *
- * @return The selection or null
.
- */
- public ISelection getSelection();
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanelContainer.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanelContainer.java
deleted file mode 100644
index c6f4e13319f..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IConfigurationPanelContainer.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2015, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-/**
- * A container to deal with configuration panels.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IConfigurationPanelContainer {
-
- /**
- * Validates the container status.
- *
- * If necessary, set the corresponding messages and message types to signal when some sub
- * elements of the container needs user attention.
- */
- public void validate();
-
- /**
- * Set the message and the message type to display.
- *
- * @param message The message or null
.
- * @param messageType The message type or IMessageProvider.NONE
.
- */
- public void setMessage(String message, int messageType);
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IExternalExecutablesProperties.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IExternalExecutablesProperties.java
deleted file mode 100644
index 3b4507e7469..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IExternalExecutablesProperties.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Dirk Fauth - [460496] Moved from o.e.tm.t.connector.local.showin.interfaces
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-/**
- * External executables data property names.
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * @since 4.1
- */
-public interface IExternalExecutablesProperties {
-
- /**
- * The name/label of the external executable.
- */
- public final String PROP_NAME = "Name"; //$NON-NLS-1$
-
- /**
- * The absolute path of the external executable.
- */
- public final String PROP_PATH = "Path"; //$NON-NLS-1$
-
- /**
- * The arguments to pass to the external executable.
- */
- public final String PROP_ARGS = "Args"; //$NON-NLS-1$
-
- /**
- * The absolute path to the icon representing the external executable.
- */
- public final String PROP_ICON = "Icon"; //$NON-NLS-1$
-
- /**
- * If set, backslashes are translated to forward slashes on paste.
- */
- public final String PROP_TRANSLATE = "Translate"; //$NON-NLS-1$
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ILauncherDelegate.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ILauncherDelegate.java
deleted file mode 100644
index f6d23cc366e..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ILauncherDelegate.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-import java.util.Map;
-
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService;
-import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
-
-/**
- * Terminal launcher delegate.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- * Clients should extend {@link AbstractLauncherDelegate} instead.
- */
-public interface ILauncherDelegate extends IExecutableExtension, IAdaptable {
-
- /**
- * Returns the unique id of the launcher delegate. The returned
- * id must be never null
or an empty string.
- *
- * @return The unique id.
- */
- public String getId();
-
- /**
- * Returns the label or UI name of the launcher delegate.
- *
- * @return The label or UI name. An empty string if not set.
- */
- public String getLabel();
-
- /**
- * Returns if or if not the launcher delegate is hidden for the user.
- *
- * @return True
if the launcher delegate is hidden, false
otherwise.
- */
- public boolean isHidden();
-
- /**
- * Returns the enablement expression.
- *
- * @return The enablement expression or null
.
- */
- public Expression getEnablement();
-
- /**
- * Returns if or if not the user needs to set configuration details for this launcher to work.
- * The settings to configure are provided to the user through the configuration panel returned
- * by {@link #getPanel(BaseDialogPageControl)}.
- *
- * @return True
if a user configuration is required, false
otherwise.
- */
- public boolean needsUserConfiguration();
-
- /**
- * Returns the configuration panel instance to present to the user. The instance must be always
- * the same on subsequent calls until disposed.
- *
- * The method may return null
if the launcher does not provide any user
- * configurable settings. In this case, {@link #needsUserConfiguration()} should return
- * false
.
- *
- * @param container The configuration panel container or null
.
- * @return The configuration panel instance or null
- */
- public IConfigurationPanel getPanel(IConfigurationPanelContainer container);
-
- /**
- * Execute the terminal launch.
- *
- * @param properties The properties. Must not be null
.
- * @param done The callback or null
.
- */
- public void execute(Map properties, ITerminalService.Done done);
-
- /**
- * Creates the terminal connector for this launcher delegate based on
- * the given properties.
- *
- * @param properties The terminal properties. Must not be null
.
- * @return The terminal connector or null
.
- */
- public ITerminalConnector createTerminalConnector(Map properties);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IMementoHandler.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IMementoHandler.java
deleted file mode 100644
index c1f5e9bf26d..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IMementoHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-import java.util.Map;
-
-import org.eclipse.ui.IMemento;
-
-/**
- * Terminal properties memento handler.
- */
-public interface IMementoHandler {
-
- /**
- * Saves the terminal properties in the given memento.
- *
- * @param memento The memento. Must not be null
.
- * @param properties The map containing the terminal properties to save. Must not be null
.
- */
- public void saveState(IMemento memento, Map properties);
-
- /**
- * Restore the terminal properties from the given memento.
- *
- * @param memento The memento. Must not be null
.
- * @param properties The map receiving the restored terminal properties. Must not be null
.
- */
- public void restoreState(IMemento memento, Map properties);
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IPreferenceKeys.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IPreferenceKeys.java
deleted file mode 100644
index b37439f813f..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IPreferenceKeys.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Dirk Fauth - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-/**
- * Terminal plug-in preference key definitions.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IPreferenceKeys {
- /**
- * Preference keys family prefix.
- */
- public final String PREF_TERMINAL = "terminals"; //$NON-NLS-1$
-
- /**
- * Preference key: Remove terminated terminals when a new terminal is created.
- */
- public final String PREF_REMOVE_TERMINATED_TERMINALS = PREF_TERMINAL + ".removeTerminatedTerminals"; //$NON-NLS-1$
-
- // showin preferences
-
- /**
- * Preference key: Local terminal initial working directory.
- * @since 4.1
- */
- public final String PREF_LOCAL_TERMINAL_INITIAL_CWD = PREF_TERMINAL + ".localTerminalInitialCwd"; //$NON-NLS-1$
-
- /**
- * Preference value: Local terminal initial working directory is "User home"
- * @since 4.1
- */
- public final String PREF_INITIAL_CWD_USER_HOME = "userhome"; //$NON-NLS-1$
-
- /**
- * Preference value: Local terminal initial working directory is "Eclipse home"
- * @since 4.1
- */
- public final String PREF_INITIAL_CWD_ECLIPSE_HOME = "eclipsehome"; //$NON-NLS-1$
-
- /**
- * Preference value: Local terminal initial working directory is "Eclipse workspace"
- * @since 4.1
- */
- public final String PREF_INITIAL_CWD_ECLIPSE_WS = "eclipsews"; //$NON-NLS-1$
-
- /**
- * Preference key: Local terminal default shell command on Unix hosts.
- * @since 4.1
- */
- public final String PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX = PREF_TERMINAL + ".localTerminalDefaultShellUnix"; //$NON-NLS-1$
-
- /**
- * Preference key: Local terminal default shell command arguments on Unix hosts.
- * @since 4.1
- */
- public final String PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX_ARGS = PREF_TERMINAL
- + ".localTerminalDefaultShellUnixArgs"; //$NON-NLS-1$
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ITerminalsView.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ITerminalsView.java
deleted file mode 100644
index 4d6f6750490..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ITerminalsView.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-import org.eclipse.ui.IViewPart;
-
-/**
- * Terminal view public interface.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITerminalsView extends IViewPart {
-
- /**
- * Switch to the empty page control.
- */
- public void switchToEmptyPageControl();
-
- /**
- * Switch to the tab folder control.
- */
- public void switchToTabFolderControl();
-
- /**
- * Returns the context help id associated with the terminal
- * console view instance.
- *
- * @return The context help id or null
if none is associated.
- */
- public String getContextHelpId();
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IUIConstants.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IUIConstants.java
deleted file mode 100644
index e18dcbef38a..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/IUIConstants.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-/**
- * Terminal common UI constants.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IUIConstants {
- /**
- * The view id of the terminals view.
- */
- public static final String ID = "org.eclipse.tm.terminal.view.ui.TerminalsView"; //$NON-NLS-1$
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ImageConsts.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ImageConsts.java
deleted file mode 100644
index 352228af88b..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/ImageConsts.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [361363] [TERMINALS] Implement "Pin&Clone" for the "Terminals" view
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces;
-
-/**
- * Image registry constants.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ImageConsts {
- /**
- * The root directory where to load the images from, relative to
- * the bundle directory.
- */
- public final static String IMAGE_DIR_ROOT = "icons/"; //$NON-NLS-1$
-
- /**
- * The directory where to load colored local toolbar images from,
- * relative to the image root directory.
- */
- public final static String IMAGE_DIR_CLCL = "clcl16/"; //$NON-NLS-1$
-
- /**
- * The directory where to load disabled local toolbar images from,
- * relative to the image root directory.
- */
- public final static String IMAGE_DIR_DLCL = "dlcl16/"; //$NON-NLS-1$
-
- /**
- * The directory where to load enabled local toolbar images from,
- * relative to the image root directory.
- */
- public final static String IMAGE_DIR_ELCL = "elcl16/"; //$NON-NLS-1$
-
- /**
- * The directory where to load view related images from, relative to
- * the image root directory.
- */
- public final static String IMAGE_DIR_EVIEW = "eview16/"; //$NON-NLS-1$
-
- /**
- * The key to access the terminals console view image.
- */
- public static final String VIEW_Terminals = "TerminalsView"; //$NON-NLS-1$
-
- /**
- * The key to access the scroll lock action image (enabled).
- */
- public static final String ACTION_ScrollLock_Enabled = "ScrollLockAction_enabled"; //$NON-NLS-1$
-
- /**
- * The key to access the scroll lock action image (disabled).
- */
- public static final String ACTION_ScrollLock_Disabled = "ScrollLockAction_disabled"; //$NON-NLS-1$
-
- /**
- * The key to access the scroll lock action image (hover).
- */
- public static final String ACTION_ScrollLock_Hover = "ScrollLockAction_hover"; //$NON-NLS-1$
-
- /**
- * The key to access the new terminal view action image (enabled).
- * @since 4.1
- */
- public static final String ACTION_NewTerminalView_Enabled = "NewTerminalViewAction_enabled"; //$NON-NLS-1$
-
- /**
- * The key to access the new terminal view action image (disabled).
- * @since 4.1
- */
- public static final String ACTION_NewTerminalView_Disabled = "NewTerminalViewAction_disabled"; //$NON-NLS-1$
-
- /**
- * The key to access the new terminal view action image (hover).
- * @since 4.1
- */
- public static final String ACTION_NewTerminalView_Hover = "NewTerminalViewAction_hover"; //$NON-NLS-1$
-
- /**
- * The key to access the toggle command field action image (enabled).
- */
- public static final String ACTION_ToggleCommandField_Enabled = "ToggleCommandField_enabled"; //$NON-NLS-1$
-
- /**
- * The key to access the toggle command field action image (disabled).
- */
- public static final String ACTION_ToggleCommandField_Disabled = "ToggleCommandField_disabled"; //$NON-NLS-1$
-
- /**
- * The key to access the toggle command field action image (hover).
- */
- public static final String ACTION_ToggleCommandField_Hover = "ToggleCommandField_hover"; //$NON-NLS-1$
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/tracing/ITraceIds.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/tracing/ITraceIds.java
deleted file mode 100644
index d4062007595..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/interfaces/tracing/ITraceIds.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.interfaces.tracing;
-
-/**
- * Core plug-in trace slot identifiers.
- *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface ITraceIds {
-
- /**
- * If activated, tracing information about the terminals output stream monitor is printed out.
- */
- public static final String TRACE_OUTPUT_STREAM_MONITOR = "trace/outputStreamMonitor"; //$NON-NLS-1$
-
- /**
- * If activated, tracing information about the launch terminal command handler is printed out.
- */
- public static final String TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER = "trace/launchTerminalCommandHandler"; //$NON-NLS-1$
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/ExternalExecutablesState.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/ExternalExecutablesState.java
deleted file mode 100644
index 3cec5ce117f..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/ExternalExecutablesState.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016, 2018 Dirk Fauth and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Dirk Fauth - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesManager;
-import org.eclipse.ui.AbstractSourceProvider;
-import org.eclipse.ui.ISources;
-
-/**
- * SourceProvider that provides a state to determine whether external executables are configured or not.
- */
-public class ExternalExecutablesState extends AbstractSourceProvider {
- public final static String CONFIGURED_STATE = "org.eclipse.tm.terminal.external.executable.configured"; //$NON-NLS-1$
- private boolean enabled;
-
- public ExternalExecutablesState() {
- this.enabled = ExternalExecutablesManager.hasEntries();
- }
-
- @Override
- public String[] getProvidedSourceNames() {
- return new String[] { CONFIGURED_STATE };
- }
-
- @Override
- public Map getCurrentState() {
- Map map = new HashMap<>(1);
- map.put(CONFIGURED_STATE, Boolean.valueOf(enabled).toString().toUpperCase());
- return map;
- }
-
- public void enable() {
- fireSourceChanged(ISources.WORKBENCH, CONFIGURED_STATE, "TRUE"); //$NON-NLS-1$
- }
-
- public void disable() {
- fireSourceChanged(ISources.WORKBENCH, CONFIGURED_STATE, "FALSE"); //$NON-NLS-1$
- }
-
- @Override
- public void dispose() {
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/PropertyTester.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/PropertyTester.java
deleted file mode 100644
index 0b5052bccda..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/PropertyTester.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.internal;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
-import org.eclipse.tm.internal.terminal.provisional.api.TerminalState;
-import org.eclipse.tm.terminal.view.ui.interfaces.ITerminalsView;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.tm.terminal.view.ui.tabs.TabFolderManager;
-
-/**
- * Terminal property tester implementation.
- */
-public class PropertyTester extends org.eclipse.core.expressions.PropertyTester {
-
- @Override
- public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
-
- if ("hasApplicableLauncherDelegates".equals(property)) { //$NON-NLS-1$
- ISelection selection = receiver instanceof ISelection ? (ISelection) receiver
- : new StructuredSelection(receiver);
- return expectedValue.equals(Boolean.valueOf(
- LauncherDelegateManager.getInstance().getApplicableLauncherDelegates(selection).length > 0));
- }
-
- if ("canDisconnect".equals(property) && receiver instanceof ITerminalsView) { //$NON-NLS-1$
- CTabItem tabItem = null;
-
- TabFolderManager manager = ((ITerminalsView) receiver).getAdapter(TabFolderManager.class);
- if (manager != null) {
- tabItem = manager.getActiveTabItem();
- }
-
- if (tabItem != null && !tabItem.isDisposed() && tabItem.getData() instanceof ITerminalViewControl) {
- ITerminalViewControl terminal = (ITerminalViewControl) tabItem.getData();
- TerminalState state = terminal.getState();
- return expectedValue.equals(Boolean.valueOf(state != TerminalState.CLOSED));
- }
- return false;
- }
-
- return false;
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/SettingsStore.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/SettingsStore.java
deleted file mode 100644
index 116e1dd4dd5..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/SettingsStore.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.tm.internal.terminal.provisional.api.ISettingsStore;
-
-/**
- * Simple default Terminal settings store implementation keeping the settings
- * within memory.
- */
-public class SettingsStore implements ISettingsStore {
- private final Map settings = new HashMap<>();
-
- public SettingsStore() {
- }
-
- /**
- * Returns the map containing the settings.
- *
- * @return The map containing the settings.
- */
- public final Map getSettings() {
- return settings;
- }
-
- @Override
- public final String get(String key, String defaultValue) {
- Assert.isNotNull(key);
- String value = settings.get(key) instanceof String ? (String) settings.get(key) : null;
- return value != null ? value : defaultValue;
- }
-
- @Override
- public final String get(String key) {
- Assert.isNotNull(key);
- return settings.get(key) instanceof String ? (String) settings.get(key) : null;
- }
-
- @Override
- public final void put(String key, String value) {
- Assert.isNotNull(key);
- if (value == null)
- settings.remove(key);
- else
- settings.put(key, value);
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/EncodingSelectionDialog.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/EncodingSelectionDialog.java
deleted file mode 100644
index 96b9c9016df..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/EncodingSelectionDialog.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.internal.dialogs;
-
-import java.nio.charset.Charset;
-import java.nio.charset.UnsupportedCharsetException;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.terminal.view.ui.help.IContextHelpIds;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractExtendedConfigurationPanel;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Encoding selection dialog implementation.
- */
-public class EncodingSelectionDialog extends TrayDialog {
- private String contextHelpId = null;
-
- // The selected encoding or null
- private String encoding;
-
- // Reference to the encodings panel
- private EncodingPanel encodingPanel = null;
-
- /**
- * Encodings panel implementation
- */
- protected class EncodingPanel extends AbstractExtendedConfigurationPanel {
-
- /**
- * Constructor
- *
- * @param container The configuration panel container or null
.
- */
- public EncodingPanel(IConfigurationPanelContainer container) {
- super(container);
- }
-
- @Override
- public void setupPanel(Composite parent) {
- Composite panel = new Composite(parent, SWT.NONE);
- panel.setLayout(new GridLayout());
- GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
- panel.setLayoutData(data);
-
- // Create the encoding selection combo
- createEncodingUI(panel, false);
- if (EncodingSelectionDialog.this.encoding != null) {
- setEncoding(EncodingSelectionDialog.this.encoding);
- }
-
- setControl(panel);
- }
-
- @Override
- protected void saveSettingsForHost(boolean add) {
- }
-
- @Override
- protected void fillSettingsForHost(String host) {
- }
-
- @Override
- protected String getHostFromSettings() {
- return null;
- }
-
- @Override
- public String getEncoding() {
- return super.getEncoding();
- }
-
- @Override
- public void setEncoding(String encoding) {
- super.setEncoding(encoding);
- }
- }
-
- /**
- * Constructor.
- *
- * @param shell The parent shell or null
.
- */
- public EncodingSelectionDialog(Shell shell) {
- super(shell);
-
- this.contextHelpId = IContextHelpIds.ENCODING_SELECTION_DIALOG;
- setHelpAvailable(true);
- }
-
- @Override
- protected final Control createDialogArea(Composite parent) {
- if (contextHelpId != null) {
- PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, contextHelpId);
- }
-
- // Let the super implementation create the dialog area control
- Control control = super.createDialogArea(parent);
- // Setup the inner panel as scrollable composite
- if (control instanceof Composite) {
- ScrolledComposite sc = new ScrolledComposite((Composite) control, SWT.V_SCROLL);
-
- GridLayout layout = new GridLayout(1, true);
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- layout.verticalSpacing = 0;
- layout.horizontalSpacing = 0;
-
- sc.setLayout(layout);
- sc.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
-
- sc.setExpandHorizontal(true);
- sc.setExpandVertical(true);
-
- Composite composite = new Composite(sc, SWT.NONE);
- composite.setLayout(new GridLayout());
-
- // Setup the dialog area content
- createDialogAreaContent(composite);
-
- sc.setContent(composite);
- sc.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
- // Return the scrolled composite as new dialog area control
- control = sc;
- }
-
- return control;
- }
-
- /**
- * Creates the dialog area content.
- *
- * @param parent The parent composite. Must not be null
.
- */
- protected void createDialogAreaContent(Composite parent) {
- Assert.isNotNull(parent);
-
- setDialogTitle(Messages.EncodingSelectionDialog_title);
-
- Composite panel = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- panel.setLayout(layout);
- panel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
-
- encodingPanel = new EncodingPanel(null);
- encodingPanel.setupPanel(panel);
-
- applyDialogFont(panel);
- }
-
- /**
- * Sets the title for this dialog.
- *
- * @param title The title.
- */
- public void setDialogTitle(String title) {
- if (getShell() != null && !getShell().isDisposed()) {
- getShell().setText(title);
- }
- }
-
- @Override
- protected void okPressed() {
- // Save the selected encoding
- if (encodingPanel != null)
- encoding = encodingPanel.getEncoding();
- super.okPressed();
- }
-
- @Override
- protected void cancelPressed() {
- // Reset the encoding
- encoding = null;
- super.cancelPressed();
- }
-
- /**
- * Set the charset to default to on creating the dialog.
- */
-
- public void setCharset(Charset charset) {
- this.encoding = charset == null ? null : charset.name();
- }
-
- /**
- * Returns the selected charset or null
.
- */
- public final Charset getCharset() {
- if (encoding == null) {
- return null;
- }
- try {
- return Charset.forName(encoding);
- } catch (UnsupportedCharsetException e) {
- return null;
- }
- }
-
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/ErrorSettingsPanel.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/ErrorSettingsPanel.java
deleted file mode 100644
index 4b09e67c9eb..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/ErrorSettingsPanel.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 Kichwa Coders Canada Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.internal.dialogs;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.panels.AbstractConfigurationPanel;
-
-/**
- * An empty configuration panel implementation.
- */
-public class ErrorSettingsPanel extends AbstractConfigurationPanel {
-
- private String errorMessage;
-
- /**
- * Constructor.
- *
- * @param container The configuration panel container or null
.
- */
- public ErrorSettingsPanel(IConfigurationPanelContainer container, String errorMessage) {
- super(container);
- this.errorMessage = errorMessage;
- }
-
- @Override
- public void setupPanel(Composite parent) {
- Composite panel = new Composite(parent, SWT.NONE);
- panel.setLayout(new GridLayout());
- panel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
- panel.setBackground(parent.getBackground());
-
- if (errorMessage != null) {
- Label label = new Label(panel, SWT.NONE);
- label.setText(errorMessage);
- }
-
- setControl(panel);
- }
-
- @Override
- public boolean isValid() {
- return false;
- }
-}
diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/LaunchTerminalSettingsDialog.java b/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/LaunchTerminalSettingsDialog.java
deleted file mode 100644
index 98ce9cc86c5..00000000000
--- a/terminal/plugins/org.eclipse.tm.terminal.view.ui/src/org/eclipse/tm/terminal/view/ui/internal/dialogs/LaunchTerminalSettingsDialog.java
+++ /dev/null
@@ -1,696 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011, 2018 Wind River Systems, Inc. and others. All rights reserved.
- * This program and the accompanying materials are made available under the terms
- * of the Eclipse Public License 2.0 which accompanies this distribution, and is
- * available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Wind River Systems - initial API and implementation
- * Max Weninger (Wind River) - [361352] [TERMINALS][SSH] Add SSH terminal support
- * Dirk Fauth - Bug 460496
- *******************************************************************************/
-package org.eclipse.tm.terminal.view.ui.internal.dialogs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.eclipse.tm.terminal.view.core.interfaces.ITerminalService.Done;
-import org.eclipse.tm.terminal.view.core.interfaces.constants.ITerminalsConnectorConstants;
-import org.eclipse.tm.terminal.view.ui.activator.UIPlugin;
-import org.eclipse.tm.terminal.view.ui.controls.ConfigurationPanelControl;
-import org.eclipse.tm.terminal.view.ui.help.IContextHelpIds;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanel;
-import org.eclipse.tm.terminal.view.ui.interfaces.IConfigurationPanelContainer;
-import org.eclipse.tm.terminal.view.ui.interfaces.IExternalExecutablesProperties;
-import org.eclipse.tm.terminal.view.ui.interfaces.ILauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.interfaces.tracing.ITraceIds;
-import org.eclipse.tm.terminal.view.ui.launcher.AbstractLauncherDelegate;
-import org.eclipse.tm.terminal.view.ui.launcher.LauncherDelegateManager;
-import org.eclipse.tm.terminal.view.ui.local.showin.ExternalExecutablesManager;
-import org.eclipse.tm.terminal.view.ui.nls.Messages;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Launch terminal settings dialog implementation.
- */
-public class LaunchTerminalSettingsDialog extends TrayDialog {
- /**
- * Special label for terminal (not shown to user) when there are no terminal
- * connectors installed.
- */
- private static final String NO_CONNECTORS_LABEL = "none"; //$NON-NLS-1$
-
- private String contextHelpId = null;
-
- // The parent selection
- private ISelection selection = null;
-
- // The sub controls
- /* default */ Combo terminals;
- /* default */ SettingsPanelControl settings;
-
- // Map the label added to the combo box to the corresponding launcher delegate.
- /* default */ final Map label2delegate = new HashMap<>();
-
- // Map the label added to the combo box to the corresponding launcher properties for external executables.
- /* default */ final Map> label2properties = new HashMap<>();
-
- // The data object containing the currently selected settings
- private Map data = null;
-
- // The dialog settings storage
- private IDialogSettings dialogSettings;
-
- // In case of a single available terminal launcher delegate, the label of that delegate
- private String singleDelegateLabel = null;
-
- /**
- * The control managing the terminal setting panels.
- */
- protected class SettingsPanelControl extends ConfigurationPanelControl {
-
- public SettingsPanelControl() {
- setPanelIsGroup(true);
- }
-
- @Override
- public String getGroupLabel() {
- return Messages.LaunchTerminalSettingsDialog_group_label;
- }
-
- @Override
- public void showConfigurationPanel(String key) {
- // Check if we have to create the panel first
- IConfigurationPanel configPanel = getConfigurationPanel(key);
- if (isEmptyConfigurationPanel(configPanel)) {
- // Get the corresponding delegate
- ILauncherDelegate delegate = label2delegate.get(key);
- Assert.isNotNull(delegate);
- // Create the wizard configuration panel instance
- configPanel = delegate.getPanel(this);
- if (configPanel != null) {
- // Add it to the settings panel control
- settings.addConfigurationPanel(key, configPanel);
- // Push the selection to the configuration panel
- configPanel.setSelection(getSelection());
- // Create the panel controls
- configPanel.setupPanel(getPanel());
- // Restore widget values
- IDialogSettings dialogSettings = LaunchTerminalSettingsDialog.this.settings
- .getDialogSettings(LaunchTerminalSettingsDialog.this.getDialogSettings());
- IDialogSettings configPanelSettings = dialogSettings != null ? dialogSettings.getSection(key)
- : null;
- if (configPanelSettings != null)
- configPanel.doRestoreWidgetValues(configPanelSettings, null);
- }
- }
-
- super.showConfigurationPanel(key);
- }
-
- @Override
- public void validate() {
- LaunchTerminalSettingsDialog.this.validate();
- }
- }
-
- /**
- * Constructor.
- *
- * @param shell The parent shell or null
.
- */
- public LaunchTerminalSettingsDialog(Shell shell) {
- this(shell, 0);
- }
-
- private long start = 0;
-
- /**
- * Constructor.
- *
- * @param shell The parent shell or null
.
- */
- public LaunchTerminalSettingsDialog(Shell shell, long start) {
- super(shell);
- this.start = start;
-
- initializeDialogSettings();
-
- this.contextHelpId = IContextHelpIds.LAUNCH_TERMINAL_SETTINGS_DIALOG;
- setHelpAvailable(true);
- }
-
- /**
- * Sets the parent selection.
- *
- * @param selection The parent selection or null
.
- */
- public void setSelection(ISelection selection) {
- this.selection = selection;
- }
-
- /**
- * Returns the parent selection.
- *
- * @return The parent selection or null
.
- */
- public ISelection getSelection() {
- return selection;
- }
-
- @Override
- public boolean close() {
- dispose();
- return super.close();
- }
-
- /**
- * Dispose the dialog resources.
- */
- protected void dispose() {
- if (settings != null) {
- settings.dispose();
- settings = null;
- }
- dialogSettings = null;
- }
-
- @Override
- protected boolean isResizable() {
- return true;
- }
-
- @Override
- protected Control createContents(Composite parent) {
- Control composite = super.createContents(parent);
-
- // Validate the dialog after having created all the content
- validate();
-
- return composite;
- }
-
- @Override
- protected final Control createDialogArea(Composite parent) {
- if (contextHelpId != null) {
- PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, contextHelpId);
- }
-
- // Let the super implementation create the dialog area control
- Control control = super.createDialogArea(parent);
- // Setup the inner panel as scrollable composite
- if (control instanceof Composite) {
- ScrolledComposite sc = new ScrolledComposite((Composite) control, SWT.V_SCROLL);
-
- GridLayout layout = new GridLayout(1, true);
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- layout.verticalSpacing = 0;
- layout.horizontalSpacing = 0;
-
- sc.setLayout(layout);
- sc.setLayoutData(new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
-
- sc.setExpandHorizontal(true);
- sc.setExpandVertical(true);
-
- Composite composite = new Composite(sc, SWT.NONE);
- composite.setLayout(new GridLayout());
-
- // Setup the dialog area content
- createDialogAreaContent(composite);
-
- sc.setContent(composite);
- sc.setMinSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
- // Return the scrolled composite as new dialog area control
- control = sc;
- }
-
- return control;
- }
-
- /**
- * Sets the title for this dialog.
- *
- * @param title The title.
- */
- public void setDialogTitle(String title) {
- if (getShell() != null && !getShell().isDisposed()) {
- getShell().setText(title);
- }
- }
-
- /**
- * Creates the dialog area content.
- *
- * @param parent The parent composite. Must not be null
.
- */
- protected void createDialogAreaContent(Composite parent) {
- Assert.isNotNull(parent);
-
- if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
- UIPlugin.getTraceHandler().trace(
- "Creating dialog area after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
- ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
- }
-
- setDialogTitle(Messages.LaunchTerminalSettingsDialog_title);
-
- final List items = getTerminals();
-
- Composite panel = new Composite(parent, SWT.NONE);
- GridLayout layout = new GridLayout(2, false);
- layout.marginHeight = 0;
- layout.marginWidth = 0;
- panel.setLayout(layout);
- panel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
-
- if (items.size() != 1) {
- Label label = new Label(panel, SWT.HORIZONTAL);
- label.setText(Messages.LaunchTerminalSettingsDialog_combo_label);
-
- terminals = new Combo(panel, SWT.READ_ONLY);
- terminals.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
- terminals.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- // Get the old panel
- IConfigurationPanel oldPanel = settings.getActiveConfigurationPanel();
- // Extract the current settings in an special properties container
- Map data = new HashMap<>();
- if (oldPanel != null)
- oldPanel.extractData(data);
- // Clean out settings which are never passed between the panels
- data.remove(ITerminalsConnectorConstants.PROP_IP_PORT);
- data.remove(ITerminalsConnectorConstants.PROP_TIMEOUT);
- data.remove(ITerminalsConnectorConstants.PROP_TERMINAL_CONNECTOR_ID);
- data.remove(ITerminalsConnectorConstants.PROP_ENCODING);
- // Switch to the new panel
- settings.showConfigurationPanel(terminals.getText());
- // Get the new panel
- IConfigurationPanel newPanel = settings.getActiveConfigurationPanel();
- // Re-setup the relevant data
- if (newPanel != null)
- newPanel.setupData(data);
-
- // resize the dialog if needed to show the complete panel
- getShell().pack();
- // validate the settings dialog
- validate();
- }
- });
-
- // fill the combo with content
- fillCombo(terminals, items);
- } else {
- Assert.isTrue(items.size() == 1);
- singleDelegateLabel = items.get(0);
- }
-
- // Create the settings panel control
- settings = new SettingsPanelControl();
-
- // Create, initialize and add the first visible panel. All
- // other panels are created on demand only.
- String terminalLabel = terminals != null ? terminals.getItem(0) : singleDelegateLabel;
- if (terminalLabel != null) {
- // Get the corresponding delegate
- ILauncherDelegate delegate = label2delegate.get(terminalLabel);
- Assert.isNotNull(delegate);
- // Create the wizard configuration panel instance
- IConfigurationPanel configPanel = delegate.getPanel(settings);
- if (configPanel != null) {
- // Add it to the settings panel control
- settings.addConfigurationPanel(terminalLabel, configPanel);
- // Push the selection to the configuration panel
- configPanel.setSelection(getSelection());
- }
- }
-
- // Setup the panel control
- settings.setupPanel(panel, terminals != null ? terminals.getItems() : new String[] { singleDelegateLabel });
- GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
- layoutData.horizontalSpan = 2;
- settings.getPanel().setLayoutData(layoutData);
-
- // Preselect the first terminal launcher
- if (terminals != null) {
- terminals.select(0);
- settings.showConfigurationPanel(terminals.getText());
-
- terminals.setEnabled(terminals.getItemCount() > 1);
- } else {
- settings.showConfigurationPanel(singleDelegateLabel);
- }
-
- restoreWidgetValues();
-
- applyDialogFont(panel);
-
- if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
- UIPlugin.getTraceHandler().trace(
- "Created dialog area after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
- ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
- }
- }
-
- /**
- * Fill the given combo with the given list of terminal launcher delegate labels.
- *
- * @param combo The combo. Must not be null
.
- * @param items The list of terminal launcher delegates. Must not be null
.
- */
- protected void fillCombo(Combo combo, List items) {
- Assert.isNotNull(combo);
- Assert.isNotNull(items);
-
- if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
- UIPlugin.getTraceHandler().trace("Filling combo after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
- ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
- }
-
- Collections.sort(items);
- combo.setItems(items.toArray(new String[items.size()]));
- }
-
- /**
- * Returns the list of terminal launcher delegate labels. The method queries the
- * terminal launcher delegates and initialize the label2delegate
map.
- *
- * @return The list of terminal launcher delegate labels or an empty list.
- */
- protected List getTerminals() {
- List items = new ArrayList<>();
-
- ILauncherDelegate localLauncher = null;
-
- if (selection == null || selection.isEmpty()) {
- if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
- UIPlugin.getTraceHandler().trace(
- "Getting launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
- ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
- }
-
- ILauncherDelegate[] delegates = LauncherDelegateManager.getInstance().getLauncherDelegates(false);
-
- if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
- UIPlugin.getTraceHandler().trace(
- "Got launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
- ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
- }
-
- for (ILauncherDelegate delegate : delegates) {
- if (delegate.isHidden() || isFiltered(selection, delegate))
- continue;
- String label = delegate.getLabel();
- if (label == null || "".equals(label.trim()) || label2delegate.containsKey(label)) //$NON-NLS-1$
- label = delegate.getId();
- label2delegate.put(label, delegate);
- items.add(label);
-
- if ("org.eclipse.tm.terminal.connector.local.launcher.local".equals(delegate.getId())) { //$NON-NLS-1$
- localLauncher = delegate;
- }
- }
- } else {
- if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
- UIPlugin.getTraceHandler().trace(
- "Getting applicable launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
- ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
- }
-
- ILauncherDelegate[] delegates = LauncherDelegateManager.getInstance()
- .getApplicableLauncherDelegates(selection);
-
- if (UIPlugin.getTraceHandler().isSlotEnabled(0, ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER)) {
- UIPlugin.getTraceHandler().trace(
- "Got applicable launcher delegates after " + (System.currentTimeMillis() - start) + " ms.", //$NON-NLS-1$ //$NON-NLS-2$
- ITraceIds.TRACE_LAUNCH_TERMINAL_COMMAND_HANDLER, LaunchTerminalSettingsDialog.this);
- }
-
- for (ILauncherDelegate delegate : delegates) {
- if (delegate.isHidden() || isFiltered(selection, delegate))
- continue;
- String label = delegate.getLabel();
- if (label == null || "".equals(label.trim())) //$NON-NLS-1$
- label = delegate.getId();
- label2delegate.put(label, delegate);
- items.add(label);
-
- if ("org.eclipse.tm.terminal.connector.local.launcher.local".equals(delegate.getId())) { //$NON-NLS-1$
- localLauncher = delegate;
- }
- }
- }
-
- // if the local launcher was found, check for configured external executables
- if (localLauncher != null) {
- List