diff options
author | Vikas Chandra | 2019-02-28 14:27:59 +0000 |
---|---|---|
committer | Vikas Chandra | 2019-02-28 14:27:59 +0000 |
commit | 944436e37909d89f74d7b21abacefc660de09d12 (patch) | |
tree | b2500ae90b1232d92434c14be09c0c5ce6e5bb9d | |
parent | 32eec5bd6f3e0140d860f5bbeb601c1d0674968f (diff) | |
parent | 1f9b2c673d11dd00995ec9db87b40afd54833135 (diff) | |
download | eclipse.pde.ui-BETA_JAVA_12.tar.gz eclipse.pde.ui-BETA_JAVA_12.tar.xz eclipse.pde.ui-BETA_JAVA_12.zip |
Merge remote-tracking branch 'origin/master' into BETA_JAVA_12Y20190320-2200Y20190319-2305Y20190316-1220Y20190313-2200Y20190313-0215Y20190308-0715Y20190307-1015Y20190306-2200P20190328-0035P20190327-2330P20190320-0100P20190319-2355P20190319-2255P20190319-2210P20190312-0135P20190306-0525P20190301-0045P20190228-2320BETA_JAVA_12
115 files changed, 616 insertions, 646 deletions
diff --git a/apitools/org.eclipse.pde.api.tools.ui/META-INF/MANIFEST.MF b/apitools/org.eclipse.pde.api.tools.ui/META-INF/MANIFEST.MF index 531b1194f4..a94f2006b1 100644 --- a/apitools/org.eclipse.pde.api.tools.ui/META-INF/MANIFEST.MF +++ b/apitools/org.eclipse.pde.api.tools.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.pde.api.tools.ui; singleton:=true -Bundle-Version: 1.1.500.qualifier +Bundle-Version: 1.1.600.qualifier Bundle-Localization: plugin Eclipse-LazyStart: true Bundle-ActivationPolicy: lazy diff --git a/apitools/org.eclipse.pde.api.tools.ui/pom.xml b/apitools/org.eclipse.pde.api.tools.ui/pom.xml index 95105cc797..7c20a46ea5 100644 --- a/apitools/org.eclipse.pde.api.tools.ui/pom.xml +++ b/apitools/org.eclipse.pde.api.tools.ui/pom.xml @@ -19,6 +19,6 @@ </parent> <groupId>org.eclipse.pde</groupId> <artifactId>org.eclipse.pde.api.tools.ui</artifactId> - <version>1.1.500-SNAPSHOT</version> + <version>1.1.600-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project> diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/preferences/ApiUseScanPreferencePage.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/preferences/ApiUseScanPreferencePage.java index f845ff0221..361451bb38 100644 --- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/preferences/ApiUseScanPreferencePage.java +++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/preferences/ApiUseScanPreferencePage.java @@ -332,7 +332,7 @@ public class ApiUseScanPreferencePage extends PreferencePage implements IWorkben for (String locationString : locations) { String values[] = locationString.split(UseScanManager.ESCAPE_REGEX + UseScanManager.STATE_DELIM); fLocationList.add(values[0]); - if (Boolean.valueOf(values[1]).booleanValue()) { + if (Boolean.parseBoolean(values[1])) { checkedLocations.add(values[0]); } } @@ -396,7 +396,7 @@ public class ApiUseScanPreferencePage extends PreferencePage implements IWorkben String[] locations = oldLocations.split(UseScanManager.ESCAPE_REGEX + UseScanManager.LOCATION_DELIM); for (String location : locations) { String values[] = location.split(UseScanManager.ESCAPE_REGEX + UseScanManager.STATE_DELIM); - if (Boolean.valueOf(values[1]).booleanValue()) { + if (Boolean.parseBoolean(values[1])) { oldCheckedElements.add(values[0]); } } diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/wizards/CompareOperation.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/wizards/CompareOperation.java index 8ae331f862..236c7a863f 100644 --- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/wizards/CompareOperation.java +++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/wizards/CompareOperation.java @@ -22,10 +22,10 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jdt.core.IClassFile; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IOrdinaryClassFile; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.IType; @@ -206,8 +206,8 @@ public class CompareOperation extends Job { return; } if (isArchive) { - IClassFile[] classFiles = packageFragment.getClassFiles(); - for (IClassFile classFile : classFiles) { + IOrdinaryClassFile[] classFiles = packageFragment.getOrdinaryClassFiles(); + for (IOrdinaryClassFile classFile : classFiles) { addElementFor(classFile, apiComponent, scope); } } else { @@ -218,7 +218,7 @@ public class CompareOperation extends Job { } } - private static void addElementFor(IClassFile classFile, IApiComponent apiComponent, ApiScope scope) { + private static void addElementFor(IOrdinaryClassFile classFile, IApiComponent apiComponent, ApiScope scope) { try { IApiTypeRoot typeRoot = apiComponent.findTypeRoot(classFile.getType().getFullyQualifiedName()); if (typeRoot != null) { diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiDescriptionProcessor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiDescriptionProcessor.java index d07420de94..6371330fa7 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiDescriptionProcessor.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiDescriptionProcessor.java @@ -758,7 +758,7 @@ public class ApiDescriptionProcessor { String value = element.getAttribute(name); int lres = res; if (value.length() > 0) { - if (!Boolean.valueOf(value).booleanValue()) { + if (!Boolean.parseBoolean(value)) { lres = res | flag; } } diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ProjectApiDescription.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ProjectApiDescription.java index a7bb8919ea..33790001f9 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ProjectApiDescription.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ProjectApiDescription.java @@ -33,6 +33,7 @@ import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IOrdinaryClassFile; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.IType; @@ -368,8 +369,8 @@ public class ProjectApiDescription extends ApiDescription { String cuName = unit.getElementName(); String tName = cuName.substring(0, cuName.length() - ".java".length()); //$NON-NLS-1$ visit(visitor, unit.getType(tName)); - } else if (child instanceof IClassFile) { - visit(visitor, ((IClassFile) child).getType()); + } else if (child instanceof IOrdinaryClassFile) { + visit(visitor, ((IOrdinaryClassFile) child).getType()); } } } else { @@ -489,8 +490,8 @@ public class ProjectApiDescription extends ApiDescription { } } else { IClassFile file = fragment.getClassFile(name + ".class"); //$NON-NLS-1$ - if (file.exists()) { - type = file.getType(); + if (file.exists() && file instanceof IOrdinaryClassFile) { + type = ((IOrdinaryClassFile) file).getType(); } } } diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java index e4d50336a6..e6d64cf8dc 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/ReferenceExtractor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2018 IBM Corporation and others. + * Copyright (c) 2007, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -415,7 +415,8 @@ public class ReferenceExtractor extends ClassVisitor { } if (root != null) { IApiType type = root.getStructure(); - if (type != null && getDefaultDefined(type, name, desc, false) != null) { + if (type != null && (!"<init>".equals(name)) //$NON-NLS-1$ + && getDefaultDefined(type, name, desc, false) != null) { flags = IReference.F_DEFAULT_METHOD; } } @@ -1397,7 +1398,9 @@ public class ReferenceExtractor extends ClassVisitor { IApiType def = null; if (fVersion >= Opcodes.V1_8) { // See if we are overriding a default interface method - def = getDefaultDefined(owner, name, desc, true); + if (!"<init>".equals(name)) { //$NON-NLS-1$ + def = getDefaultDefined(owner, name, desc, true); + } } if (def != null) { addReference(Reference.methodReference(method, def.getName(), method.getName(), method.getSignature(), IReference.REF_OVERRIDE, IReference.F_DEFAULT_METHOD)); diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/UseScanManager.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/UseScanManager.java index a3899ec48a..cd18bf3710 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/UseScanManager.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/search/UseScanManager.java @@ -376,7 +376,7 @@ public class UseScanManager { ArrayList<String> locationList = new ArrayList<>(locations.length); for (String location : locations) { String values[] = location.split(ESCAPE_REGEX + STATE_DELIM); - if (Boolean.valueOf(values[1]).booleanValue()) { + if (Boolean.parseBoolean(values[1])) { locationList.add(values[0]); } } diff --git a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/ApiFileGenerationTask.java b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/ApiFileGenerationTask.java index 9a633bb570..30853cbaec 100644 --- a/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/ApiFileGenerationTask.java +++ b/apitools/org.eclipse.pde.api.tools/src_ant/org/eclipse/pde/api/tools/internal/tasks/ApiFileGenerationTask.java @@ -200,7 +200,7 @@ public class ApiFileGenerationTask extends Task { * @param allow */ public void setAllowNonApiProject(String allow) { - this.allowNonApiProject = Boolean.valueOf(allow).booleanValue(); + this.allowNonApiProject = Boolean.parseBoolean(allow); } /** @@ -509,7 +509,7 @@ public class ApiFileGenerationTask extends Task { Object directive = directiveKeys.nextElement(); if ("x-internal".equals(directive)) { //$NON-NLS-1$ String value = packageName.getDirective((String) directive); - if (Boolean.valueOf(value).booleanValue()) { + if (Boolean.parseBoolean(value)) { include = false; break loop; } diff --git a/ua/org.eclipse.pde.ua.ui/META-INF/MANIFEST.MF b/ua/org.eclipse.pde.ua.ui/META-INF/MANIFEST.MF index eeac35e2ba..5c1de44ab6 100644 --- a/ua/org.eclipse.pde.ua.ui/META-INF/MANIFEST.MF +++ b/ua/org.eclipse.pde.ua.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.pde.ua.ui;singleton:=true -Bundle-Version: 1.1.300.qualifier +Bundle-Version: 1.1.400.qualifier Bundle-Activator: org.eclipse.pde.internal.ua.ui.PDEUserAssistanceUIPlugin Require-Bundle: org.eclipse.ui;bundle-version="[3.4.0,4.0.0)", org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)", diff --git a/ua/org.eclipse.pde.ua.ui/pom.xml b/ua/org.eclipse.pde.ua.ui/pom.xml index 4d2ec03c31..0e0b5b1340 100644 --- a/ua/org.eclipse.pde.ua.ui/pom.xml +++ b/ua/org.eclipse.pde.ua.ui/pom.xml @@ -20,7 +20,7 @@ </parent> <groupId>org.eclipse.pde</groupId> <artifactId>org.eclipse.pde.ua.ui</artifactId> - <version>1.1.300-SNAPSHOT</version> + <version>1.1.400-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> <properties> diff --git a/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/editor/toc/TocTreeSection.java b/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/editor/toc/TocTreeSection.java index 2b5140b43e..26454e44a9 100755 --- a/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/editor/toc/TocTreeSection.java +++ b/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/editor/toc/TocTreeSection.java @@ -1109,8 +1109,12 @@ public class TocTreeSection extends TreeSection { * Remove the selected objects from the TOC tree */ private void handleDeleteAction() { - ArrayList objects = new ArrayList<>( - fTocTree.getStructuredSelection().toList()); + List<?> list = fTocTree.getStructuredSelection().toList(); + ArrayList<TocObject> objects = new ArrayList<>(list.size()); + for (Object o : list) { + if (o instanceof TocObject) + objects.add((TocObject) o); + } boolean beep = false; // Iterate through the list of selected objects, removing ones diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java index f99d23aa70..98881e3981 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java @@ -296,7 +296,7 @@ public class P2Utils { if ("default".equals(auto)) {//$NON-NLS-1$ isAuto = defaultAutoStart; } else { - isAuto = Boolean.valueOf(auto).booleanValue(); + isAuto = Boolean.parseBoolean(auto); } if ("default".equals(levelString)) {//$NON-NLS-1$ level = defaultStartLevel; diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PreferenceInitializer.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PreferenceInitializer.java index 4aab67f067..aa833d895a 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PreferenceInitializer.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PreferenceInitializer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2017 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -52,7 +52,7 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer { prefs.putInt(CompilerFlags.P_BUILD_ENCODINGS, CompilerFlags.IGNORE); prefs.putInt(CompilerFlags.P_INCOMPATIBLE_ENV, CompilerFlags.WARNING); - prefs.putInt(CompilerFlags.P_MISSING_EXPORT_PKGS, CompilerFlags.IGNORE); + prefs.putInt(CompilerFlags.P_MISSING_EXPORT_PKGS, CompilerFlags.WARNING); prefs.putInt(CompilerFlags.P_MISSING_VERSION_EXP_PKG, CompilerFlags.IGNORE); prefs.putInt(CompilerFlags.P_MISSING_VERSION_IMP_PKG, CompilerFlags.IGNORE); diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/TargetPlatformHelper.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/TargetPlatformHelper.java index 7d3c76b718..f41c729a32 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/TargetPlatformHelper.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/TargetPlatformHelper.java @@ -296,7 +296,7 @@ public class TargetPlatformHelper { continue; } String visiblity = elements[0].getAttribute("visible"); //$NON-NLS-1$ - boolean visible = visiblity == null ? true : Boolean.valueOf(visiblity).booleanValue(); + boolean visible = visiblity == null ? true : Boolean.parseBoolean(visiblity); if (id != null && visible) { result.add(id); } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/CompilerFlags.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/CompilerFlags.java index ea0ac4f3db..dee6c320b6 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/CompilerFlags.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/CompilerFlags.java @@ -112,7 +112,7 @@ public class CompilerFlags { * @return the boolean value for the given preference id */ public static boolean getBoolean(IProject project, String flagId) { - return Boolean.valueOf(getString(project, flagId)).booleanValue(); + return Boolean.parseBoolean(getString(project, flagId)); } /** diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/ImportObject.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/ImportObject.java index 5eaed5ceef..4172ab4a24 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/ImportObject.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/ImportObject.java @@ -15,6 +15,7 @@ package org.eclipse.pde.internal.core.plugin; import java.io.PrintWriter; import java.io.Serializable; +import org.eclipse.osgi.service.resolver.VersionRange; import org.eclipse.pde.core.ISourceObject; import org.eclipse.pde.core.IWritable; import org.eclipse.pde.core.plugin.IPluginBase; @@ -86,7 +87,9 @@ public class ImportObject extends PluginReference implements IWritable, Serializ @Override protected IPluginModelBase findModel() { - return PluginRegistry.findModel(getId(), iimport.getVersion(), iimport.getMatch(), null); + String version = iimport.getVersion(); + VersionRange range = new VersionRange(version); + return PluginRegistry.findModel(getId(), range, null); } } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/JREInfo.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/JREInfo.java index c50bdc4855..2fd53c76f3 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/JREInfo.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/JREInfo.java @@ -103,7 +103,7 @@ public class JREInfo extends ProductObject implements IJREInfo { Node child = list.item(i); if (child.getNodeType() == Node.ELEMENT_NODE) { Node includeNode = child.getAttributes().getNamedItem("include"); //$NON-NLS-1$ - boolean include = includeNode != null ? Boolean.valueOf(includeNode.getNodeValue()).booleanValue() : true; + boolean include = includeNode != null ? Boolean.parseBoolean(includeNode.getNodeValue()) : true; if (child.getNodeName().equals(JRE_LIN)) { fJVMLin = getPath(child); bIncludeLin = include; diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/PluginConfiguration.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/PluginConfiguration.java index 0bd47a0895..36b7bc1fcf 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/PluginConfiguration.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/PluginConfiguration.java @@ -41,7 +41,7 @@ public class PluginConfiguration extends ProductObject implements IPluginConfigu if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; fId = element.getAttribute("id"); //$NON-NLS-1$ - fAutoStart = Boolean.valueOf(element.getAttribute(P_AUTO_START)).booleanValue(); + fAutoStart = Boolean.parseBoolean(element.getAttribute(P_AUTO_START)); fStartLevel = Integer.parseInt(element.getAttribute(P_START_LEVEL)); } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ProductPlugin.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ProductPlugin.java index bc5c53ae53..a1d0399ae8 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ProductPlugin.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/ProductPlugin.java @@ -48,7 +48,7 @@ public class ProductPlugin extends ProductObject implements IProductPlugin { fId = element.getAttribute("id"); //$NON-NLS-1$ fVersion = element.getAttribute("version"); //$NON-NLS-1$ String fragment = element.getAttribute("fragment"); //$NON-NLS-1$ - fFragment = Boolean.valueOf(fragment).booleanValue(); + fFragment = Boolean.parseBoolean(fragment); } } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/RepositoryInfo.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/RepositoryInfo.java index a57adb6cea..b7e4f4456c 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/RepositoryInfo.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/product/RepositoryInfo.java @@ -66,7 +66,7 @@ public class RepositoryInfo extends ProductObject implements IRepositoryInfo { if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; fURL = element.getAttribute("location"); //$NON-NLS-1$ - fEnabled = Boolean.valueOf(element.getAttribute(P_ENABLED)).booleanValue(); + fEnabled = Boolean.parseBoolean(element.getAttribute(P_ENABLED)); } } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/Schema.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/Schema.java index 5462c118e6..5b9643855f 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/Schema.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/Schema.java @@ -783,7 +783,7 @@ public class Schema extends PlatformObject implements ISchema { // set internal String internal = getAttribute(meta, ISchemaRootElement.P_INTERNAL); - ((ISchemaRootElement) element).setInternal(Boolean.valueOf(internal).booleanValue()); + ((ISchemaRootElement) element).setInternal(Boolean.parseBoolean(internal)); } } } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/site/RepositoryReference.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/site/RepositoryReference.java index dcf0faadff..13b21ee578 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/site/RepositoryReference.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/site/RepositoryReference.java @@ -64,7 +64,7 @@ public class RepositoryReference extends SiteObject implements IRepositoryRefere if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; fURL = element.getAttribute("location"); //$NON-NLS-1$ - fEnabled = Boolean.valueOf(element.getAttribute(P_ENABLED)).booleanValue(); + fEnabled = Boolean.parseBoolean(element.getAttribute(P_ENABLED)); } } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/AbstractTargetHandle.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/AbstractTargetHandle.java index 5f6b918dd5..1b249ae7e1 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/AbstractTargetHandle.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/AbstractTargetHandle.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 IBM Corporation and others. + * Copyright (c) 2008, 2018 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -8,13 +8,14 @@ * * SPDX-License-Identifier: EPL-2.0 * + * * Contributors: * IBM Corporation - initial API and implementation * EclipseSource Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.pde.internal.core.target; -import org.eclipse.core.filebuffers.ITextFileBuffer; +import java.io.InputStream; import org.eclipse.core.runtime.CoreException; import org.eclipse.pde.core.target.ITargetDefinition; import org.eclipse.pde.core.target.ITargetHandle; @@ -30,7 +31,7 @@ public abstract class AbstractTargetHandle implements ITargetHandle { public ITargetDefinition getTargetDefinition() throws CoreException { TargetDefinition definition = new TargetDefinition(this); if (exists()) { - definition.setContents(getTextFileBuffer()); + definition.setContents(getInputStream()); } return definition; } @@ -38,11 +39,11 @@ public abstract class AbstractTargetHandle implements ITargetHandle { /** * Returns an input stream of the target definition's contents. * - * @return file buffer of content + * @return stream of content * @throws CoreException - * if an error occurs + * if an error occurs */ - protected abstract ITextFileBuffer getTextFileBuffer() throws CoreException; + protected abstract InputStream getInputStream() throws CoreException; /** * Deletes the underlying target definition. diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/ExternalFileTargetHandle.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/ExternalFileTargetHandle.java index 6cc71cf815..b143d0361e 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/ExternalFileTargetHandle.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/ExternalFileTargetHandle.java @@ -1,11 +1,11 @@ /*******************************************************************************
* Copyright (c) 2009, 2011 IBM Corporation 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/ - * + * https://www.eclipse.org/legal/epl-2.0/
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -13,18 +13,22 @@ *******************************************************************************/
package org.eclipse.pde.internal.core.target;
+import java.io.BufferedOutputStream;
import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
import java.net.URI;
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.filebuffers.ITextFileBufferManager;
-import org.eclipse.core.filebuffers.LocationKind;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.URIUtil;
+import org.eclipse.osgi.util.NLS;
import org.eclipse.pde.core.target.ITargetDefinition;
import org.eclipse.pde.core.target.ITargetHandle;
+import org.eclipse.pde.internal.core.PDECore;
/**
* A handle to a target stored in a remote file (outside workspace) and accessed using its URI.
@@ -49,45 +53,55 @@ public class ExternalFileTargetHandle extends AbstractTargetHandle { }
private final URI fURI;
- private ITextFileBuffer fFileBuffer;
+ private File fFile;
/**
* Constructs a new target handle to the remote file, based on its URI.
*/
protected ExternalFileTargetHandle(URI uri) {
fURI = uri;
- File file = URIUtil.toFile(fURI);
- ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager();
- IPath path = Path.fromOSString(file.getAbsolutePath());
- try {
- manager.connect(path, LocationKind.LOCATION, null);
- fFileBuffer = manager.getTextFileBuffer(path, LocationKind.LOCATION);
- } catch (CoreException e) {
- fFileBuffer = null;
- }
+ fFile = URIUtil.toFile(fURI);
}
-
+
+
+
@Override
void delete() throws CoreException {
// We can not delete a file lying outside the workspace
}
-
+
+
+
@Override
- protected ITextFileBuffer getTextFileBuffer() throws CoreException {
- return fFileBuffer;
+ protected InputStream getInputStream() throws CoreException {
+ try {
+ return fURI.toURL().openStream();
+ } catch (MalformedURLException e) {
+ } catch (IOException e) {
+ }
+ return null;
}
-
+
+
@Override
void save(ITargetDefinition definition) throws CoreException {
- ((TargetDefinition) definition).write(getTextFileBuffer());
+ try {
+ OutputStream stream = new BufferedOutputStream(new FileOutputStream(fFile));
+ ((TargetDefinition) definition).write(stream);
+ stream.close();
+ } catch (IOException e) {
+ throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID,
+ NLS.bind(Messages.LocalTargetHandle_4, fFile.getName()), e));
+ }
}
-
+
+
@Override
public boolean exists() {
- return fFileBuffer != null && fFileBuffer.getFileStore() != null
- && fFileBuffer.getFileStore().fetchInfo() != null && fFileBuffer.getFileStore().fetchInfo().exists();
+ return fFile != null && fFile.exists();
}
-
+
+
@Override
public String getMemento() throws CoreException {
return fURI.toString();
@@ -105,7 +119,8 @@ public class ExternalFileTargetHandle extends AbstractTargetHandle { public URI getLocation() {
return fURI;
}
-
+
+
@Override
public String toString() {
return fURI.toString();
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/IULocationFactory.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/IULocationFactory.java index 8d20da6dcf..abdacd645a 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/IULocationFactory.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/IULocationFactory.java @@ -102,9 +102,9 @@ public class IULocationFactory implements ITargetLocationFactory { flags = 0;
}
}
- flags |= Boolean.valueOf(includeAllPlatforms).booleanValue() ? IUBundleContainer.INCLUDE_ALL_ENVIRONMENTS : 0;
- flags |= Boolean.valueOf(includeSource).booleanValue() ? IUBundleContainer.INCLUDE_SOURCE : 0;
- flags |= Boolean.valueOf(includeConfigurePhase).booleanValue() ? IUBundleContainer.INCLUDE_CONFIGURE_PHASE : 0;
+ flags |= Boolean.parseBoolean(includeAllPlatforms) ? IUBundleContainer.INCLUDE_ALL_ENVIRONMENTS : 0;
+ flags |= Boolean.parseBoolean(includeSource) ? IUBundleContainer.INCLUDE_SOURCE : 0;
+ flags |= Boolean.parseBoolean(includeConfigurePhase) ? IUBundleContainer.INCLUDE_CONFIGURE_PHASE : 0;
IUBundleContainer targetLocation = new IUBundleContainer(iuIDs, iuVer, uris, flags);
return targetLocation;
}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/LocalTargetHandle.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/LocalTargetHandle.java index 1943d84160..89015ff8ca 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/LocalTargetHandle.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/LocalTargetHandle.java @@ -13,15 +13,17 @@ *******************************************************************************/ package org.eclipse.pde.internal.core.target; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; import java.io.File; +import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.net.URI; import java.net.URISyntaxException; -import org.eclipse.core.filebuffers.FileBuffers; -import org.eclipse.core.filebuffers.ITextFileBuffer; -import org.eclipse.core.filebuffers.ITextFileBufferManager; -import org.eclipse.core.filebuffers.LocationKind; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; @@ -115,22 +117,12 @@ public class LocalTargetHandle extends AbstractTargetHandle { } @Override - protected ITextFileBuffer getTextFileBuffer() throws CoreException { - File file = getFile(); + protected InputStream getInputStream() throws CoreException { try { - if (!file.exists()) { - file.getParentFile().mkdirs(); - file.createNewFile(); - } + return new BufferedInputStream(new FileInputStream(getFile())); } catch (FileNotFoundException e) { throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, Messages.LocalTargetHandle_1, e)); - } catch (IOException e) { - throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, Messages.LocalTargetHandle_5, e)); } - IPath path = Path.fromOSString(getFile().getAbsolutePath()); - ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); - manager.connect(path, LocationKind.LOCATION, null); - return manager.getTextFileBuffer(path, LocationKind.LOCATION); } @Override @@ -187,9 +179,31 @@ public class LocalTargetHandle extends AbstractTargetHandle { P2TargetUtils.deleteProfile(this); } + protected OutputStream getOutputStream() throws CoreException { + try { + File file = getFile(); + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + return new BufferedOutputStream(new FileOutputStream(file)); + } catch (FileNotFoundException e) { + throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, Messages.LocalTargetHandle_1, e)); + } catch (IOException e) { + throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, Messages.LocalTargetHandle_5, e)); + } + } + @Override void save(ITargetDefinition definition) throws CoreException { - ((TargetDefinition) definition).write(getTextFileBuffer()); + OutputStream stream = getOutputStream(); + ((TargetDefinition) definition).write(stream); + try { + stream.close(); + } catch (IOException e) { + throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, + NLS.bind(Messages.LocalTargetHandle_4, getFile().getName()), e)); + } } @Override diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java index 2ff4ced47d..72cf3d88ae 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/P2TargetUtils.java @@ -532,7 +532,7 @@ public class P2TargetUtils { boolean all = false; String value = fProfile.getProperty(PROP_ALL_ENVIRONMENTS); if (value != null) { - all = Boolean.valueOf(value).booleanValue(); + all = Boolean.parseBoolean(value); if (!Boolean.toString(getIncludeAllEnvironments()).equals(value)) { return false; } @@ -559,11 +559,11 @@ public class P2TargetUtils { } // check that the include source flag matches what the profile represents - if (getIncludeSource() != Boolean.valueOf(fProfile.getProperty(PROP_AUTO_INCLUDE_SOURCE)).booleanValue()) { + if (getIncludeSource() != Boolean.parseBoolean(fProfile.getProperty(PROP_AUTO_INCLUDE_SOURCE))) { return false; } - if (getIncludeConfigurePhase() != Boolean.valueOf(fProfile.getProperty(PROP_INCLUDE_CONFIGURE_PHASE)).booleanValue()) { + if (getIncludeConfigurePhase() != Boolean.parseBoolean(fProfile.getProperty(PROP_INCLUDE_CONFIGURE_PHASE))) { return false; } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java index ab9b977d89..693cf983b7 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinition.java @@ -17,6 +17,8 @@ package org.eclipse.pde.internal.core.target; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; @@ -33,7 +35,6 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; -import org.eclipse.core.filebuffers.ITextFileBuffer; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; @@ -776,12 +777,12 @@ public class TargetDefinition implements ITargetDefinition { /** * Build contents from the given stream. * - * @param input - * input file buffer + * @param stream + * input stream * @throws CoreException - * if an error occurs + * if an error occurs */ - void setContents(ITextFileBuffer input) throws CoreException { + void setContents(InputStream stream) throws CoreException { try { fArch = null; fContainers = null; @@ -797,7 +798,7 @@ public class TargetDefinition implements ITargetDefinition { fSequenceNumber = 0; fDocument = null; fRoot = null; - TargetDefinitionPersistenceHelper.initFromXML(this, input); + TargetDefinitionPersistenceHelper.initFromXML(this, stream); } catch (ParserConfigurationException | SAXException | IOException e) { setDocument(createNewDocument()); abort(Messages.TargetDefinition_0, e); @@ -807,14 +808,19 @@ public class TargetDefinition implements ITargetDefinition { /** * Persists contents to the given stream. * - * @param output - * output file buffer + * @param stream + * output stream * @throws CoreException - * if an error occurs + * if an error occurs */ - void write(ITextFileBuffer output) throws CoreException { + void write(OutputStream stream) throws CoreException { try { - TargetDefinitionPersistenceHelper.persistXML(this, output); + if (fContainers != null && fContainers.length != 0) { + Element containersElement = TargetDefinitionDocumentTools.getChildElement(fRoot, + TargetDefinitionPersistenceHelper.LOCATIONS); + serializeBundleContainers(fContainers, containersElement); + } + TargetDefinitionPersistenceHelper.persistXML(this, stream); } catch (IOException | ParserConfigurationException | TransformerException | SAXException e) { abort(Messages.TargetDefinition_3, e); } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinitionPersistenceHelper.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinitionPersistenceHelper.java index c7dc9c8c4d..76bd0392f3 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinitionPersistenceHelper.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetDefinitionPersistenceHelper.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2017 IBM Corporation and others. + * Copyright (c) 2008, 2018 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -8,13 +8,12 @@ * * SPDX-License-Identifier: EPL-2.0 * + * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.pde.internal.core.target; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -29,11 +28,9 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import org.eclipse.core.filebuffers.ITextFileBuffer; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; -import org.eclipse.jface.text.TextUtilities; import org.eclipse.pde.core.target.ITargetDefinition; import org.eclipse.pde.core.target.ITargetPlatformService; import org.eclipse.pde.internal.core.ICoreConstants; @@ -101,83 +98,48 @@ public class TargetDefinitionPersistenceHelper { private static ITargetPlatformService fTargetService; /** - * Serializes a target definition to xml and writes the xml to the given stream + * Serializes a target definition to xml and writes the xml to the given + * stream * * @param definition - * target definition to serialize + * target definition to serialize * @param output - * output file buffer to write xml to + * output stream to write xml to * @throws CoreException * @throws ParserConfigurationException * @throws TransformerException * @throws IOException * @throws SAXException */ - public static void persistXML(ITargetDefinition definition, ITextFileBuffer output) + public static void persistXML(ITargetDefinition definition, OutputStream output) throws CoreException, ParserConfigurationException, TransformerException, IOException, SAXException { - if (output == null) { - return; - } Document document = definition.getDocument(); DOMSource source = new DOMSource(document); - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - StreamResult outputTarget = new StreamResult(outputStream); + StreamResult outputTarget = new StreamResult(output); TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); transformer.transform(source, outputTarget); - - // Convert the line separators - byte[] bytes = outputStream.toByteArray(); - String encoding = output.getEncoding(); - String strContent = outputStream.toString(encoding); - strContent = strContent.replace(System.getProperty("line.separator"), //$NON-NLS-1$ - TextUtilities.getDefaultLineDelimiter(output.getDocument())); - bytes = strContent.getBytes(encoding); - - try (OutputStream stream = output.getFileStore().openOutputStream(0, null)) { - stream.write(bytes); - } } /** - * Parses an xml document from the text file buffer and deserializes it into a + * Parses an xml document from the input stream and deserializes it into a * target definition. * * @param definition - * definition to be filled with the result of - * deserialization + * definition to be filled with the result of deserialization * @param input - * text file buffer to get xml input from + * stream to get xml input from * @throws CoreException * @throws ParserConfigurationException * @throws IOException * @throws SAXException */ - public static void initFromXML(ITargetDefinition definition, ITextFileBuffer input) + public static void initFromXML(ITargetDefinition definition, InputStream input) throws CoreException, ParserConfigurationException, SAXException, IOException { - if (input == null) { - return; - } - InputStream stream = null; - if (input.isDirty()) { - String documentContent = input.getDocument().get(); - if (!documentContent.isEmpty()) { - stream = new ByteArrayInputStream(documentContent.getBytes()); - } else { - return; - } - } else { - stream = input.getFileStore().openInputStream(0, null); - if (stream.available() == 0) { - // do not process empty stream - return; - } - } DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder(); parser.setErrorHandler(new DefaultHandler()); - Document doc = parser.parse(new InputSource(stream)); - stream.close(); + Document doc = parser.parse(new InputSource(input)); Element root = doc.getDocumentElement(); if (!root.getNodeName().equalsIgnoreCase(ROOT)) { diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence34Helper.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence34Helper.java index 71298ad552..3847f50963 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence34Helper.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence34Helper.java @@ -197,7 +197,7 @@ public class TargetPersistence34Helper { String def = location.getAttribute(TargetDefinitionPersistenceHelper.ATTR_USE_DEFAULT); String path = null; String type = null; - if (def.length() > 0 && Boolean.valueOf(def).booleanValue()) { + if (def.length() > 0 && Boolean.parseBoolean(def)) { path = "${eclipse_home}"; //$NON-NLS-1$ type = ProfileBundleContainer.TYPE; } else { diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence35Helper.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence35Helper.java index 9500fba3c1..85419a028f 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence35Helper.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence35Helper.java @@ -241,7 +241,7 @@ public class TargetPersistence35Helper { flags = 0; } } - flags |= Boolean.valueOf(includeAllPlatforms).booleanValue() ? IUBundleContainer.INCLUDE_ALL_ENVIRONMENTS : 0; + flags |= Boolean.parseBoolean(includeAllPlatforms) ? IUBundleContainer.INCLUDE_ALL_ENVIRONMENTS : 0; container = new IUBundleContainer(iuIDs, iuVer, uris, flags); } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence36Helper.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence36Helper.java index 6d617ef26b..6ec2dea14c 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence36Helper.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPersistence36Helper.java @@ -248,8 +248,8 @@ public class TargetPersistence36Helper { flags = 0; } } - flags |= Boolean.valueOf(includeAllPlatforms).booleanValue() ? IUBundleContainer.INCLUDE_ALL_ENVIRONMENTS : 0; - flags |= Boolean.valueOf(includeSource).booleanValue() ? IUBundleContainer.INCLUDE_SOURCE : 0; + flags |= Boolean.parseBoolean(includeAllPlatforms) ? IUBundleContainer.INCLUDE_ALL_ENVIRONMENTS : 0; + flags |= Boolean.parseBoolean(includeSource) ? IUBundleContainer.INCLUDE_SOURCE : 0; container = new IUBundleContainer(iuIDs, iuVer, uris, flags); } return container; diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPlatformService.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPlatformService.java index 0090d28647..1915c3f904 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPlatformService.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/TargetPlatformService.java @@ -13,6 +13,9 @@ *******************************************************************************/ package org.eclipse.pde.internal.core.target; +import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; @@ -28,10 +31,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; -import org.eclipse.core.filebuffers.FileBuffers; -import org.eclipse.core.filebuffers.ITextFileBuffer; -import org.eclipse.core.filebuffers.ITextFileBufferManager; -import org.eclipse.core.filebuffers.LocationKind; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceProxy; @@ -65,6 +64,7 @@ import org.eclipse.pde.internal.core.ICoreConstants; import org.eclipse.pde.internal.core.PDECore; import org.eclipse.pde.internal.core.PDECoreMessages; import org.eclipse.pde.internal.core.PDEPreferencesManager; +import org.eclipse.pde.internal.core.TargetDefinitionManager; import org.eclipse.pde.internal.core.TargetPlatformHelper; import org.osgi.service.prefs.BackingStoreException; @@ -100,7 +100,7 @@ public class TargetPlatformService implements ITargetPlatformService { */ class ResourceProxyVisitor implements IResourceProxyVisitor { - private final List<IResource> fList; + private List<IResource> fList; protected ResourceProxyVisitor(List<IResource> list) { fList = list; @@ -399,22 +399,10 @@ public class TargetPlatformService implements ITargetPlatformService { @Override public void copyTargetDefinition(ITargetDefinition from, ITargetDefinition to) throws CoreException { - File tempFile = null; - try { - tempFile = File.createTempFile("targetDefinition", null); //$NON-NLS-1$ - IPath path = Path.fromOSString(tempFile.getAbsolutePath()); - ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); - manager.connect(path, LocationKind.LOCATION, null); - ITextFileBuffer holdFileBuffer = manager.getTextFileBuffer(path, LocationKind.LOCATION); - ((TargetDefinition) from).write(holdFileBuffer); - ((TargetDefinition) to).setContents(holdFileBuffer); - } catch (IOException e) { - throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, e.getLocalizedMessage())); - } finally { - if (tempFile != null) { - tempFile.delete(); - } - } + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ((TargetDefinition) from).write(outputStream); + ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + ((TargetDefinition) to).setContents(inputStream); } @Override @@ -424,10 +412,15 @@ public class TargetPlatformService implements ITargetPlatformService { throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, NLS.bind(Messages.TargetPlatformService_2, targetExtensionId))); } String path = elem.getAttribute("definition"); //$NON-NLS-1$ - if (path != null) { - ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); - ITextFileBuffer fileBuffer = manager.getTextFileBuffer(Path.fromOSString(path), LocationKind.LOCATION); - ((TargetDefinition) definition).setContents(fileBuffer); + String symbolicName = elem.getDeclaringExtension().getContributor().getName(); + URL url = TargetDefinitionManager.getResourceURL(symbolicName, path); + if (url != null) { + try { + ((TargetDefinition) definition).setContents(new BufferedInputStream(url.openStream())); + } catch (IOException e) { + throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, + NLS.bind(Messages.TargetPlatformService_3, path), e)); + } } else { throw new CoreException(new Status(IStatus.ERROR, PDECore.PLUGIN_ID, NLS.bind(Messages.TargetPlatformService_4, path))); } diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/WorkspaceFileTargetHandle.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/WorkspaceFileTargetHandle.java index 0eb9ec79e6..9533f1be4d 100644 --- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/WorkspaceFileTargetHandle.java +++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/WorkspaceFileTargetHandle.java @@ -14,15 +14,12 @@ package org.eclipse.pde.internal.core.target; import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; -import org.eclipse.core.filebuffers.FileBuffers; -import org.eclipse.core.filebuffers.ITextFileBuffer; -import org.eclipse.core.filebuffers.ITextFileBufferManager; -import org.eclipse.core.filebuffers.LocationKind; import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; @@ -84,9 +81,12 @@ public class WorkspaceFileTargetHandle extends AbstractTargetHandle { } @Override - protected ITextFileBuffer getTextFileBuffer() throws CoreException { + public void save(ITargetDefinition definition) throws CoreException { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + ((TargetDefinition) definition).write(outputStream); + ByteArrayInputStream stream = new ByteArrayInputStream(outputStream.toByteArray()); if (!fFile.exists()) { - fFile.create(new ByteArrayInputStream(new byte[0]), false, null); + fFile.create(stream, false, null); } else { // validate edit if (fFile.isReadOnly()) { @@ -95,10 +95,13 @@ public class WorkspaceFileTargetHandle extends AbstractTargetHandle { throw new CoreException(status); } } + fFile.setContents(stream, true, false, null); } - ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); - manager.connect(fFile.getFullPath(), LocationKind.IFILE, null); - return manager.getTextFileBuffer(fFile.getFullPath(), LocationKind.IFILE); + } + + @Override + protected InputStream getInputStream() throws CoreException { + return fFile.getContents(); } @Override @@ -128,13 +131,6 @@ public class WorkspaceFileTargetHandle extends AbstractTargetHandle { P2TargetUtils.deleteProfile(this); } - @Override - public void save(ITargetDefinition definition) throws CoreException { - ((TargetDefinition) definition).write(getTextFileBuffer()); - if (fFile.exists()) { - fFile.refreshLocal(IResource.DEPTH_ZERO, null); - } - } @Override public String toString() { diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.genericeditor.extension.tests/META-INF/MANIFEST.MF index bc9b74f799..32b27e3a6f 100644 --- a/ui/org.eclipse.pde.genericeditor.extension.tests/META-INF/MANIFEST.MF +++ b/ui/org.eclipse.pde.genericeditor.extension.tests/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Tests for Generic Target Platform Editor Bundle-SymbolicName: org.eclipse.pde.genericeditor.extension.tests -Bundle-Version: 1.0.200.qualifier +Bundle-Version: 1.0.300.qualifier Bundle-ClassPath: . Bundle-Vendor: Eclipse.org Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/pom.xml b/ui/org.eclipse.pde.genericeditor.extension.tests/pom.xml index b686c98390..d2c50f5cda 100644 --- a/ui/org.eclipse.pde.genericeditor.extension.tests/pom.xml +++ b/ui/org.eclipse.pde.genericeditor.extension.tests/pom.xml @@ -19,7 +19,7 @@ </parent> <groupId>org.eclipse.pde</groupId> <artifactId>org.eclipse.pde.genericeditor.extension.tests</artifactId> - <version>1.0.200-SNAPSHOT</version> + <version>1.0.300-SNAPSHOT</version> <packaging>eclipse-test-plugin</packaging> <properties> diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/Bug528706CompletionWithMultilineTagsTest.java b/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/Bug528706CompletionWithMultilineTagsTest.java index ebd0fba1b7..50fccff103 100644 --- a/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/Bug528706CompletionWithMultilineTagsTest.java +++ b/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/Bug528706CompletionWithMultilineTagsTest.java @@ -39,17 +39,17 @@ public class Bug528706CompletionWithMultilineTagsTest extends AbstractTargetEdit @Test public void testTagValueCompletionBeforeAMultiline() { - confirmCompletionAtOffset(151, "carbon"); + confirmCompletionAtOffset(150, "cocoa"); } @Test public void testTagValueCompletionAsAMultiline() { - confirmCompletionAtOffset(167, "linux"); + confirmCompletionAtOffset(166, "linux"); } @Test public void testTagValueCompletionAfterAMultiline() { - confirmCompletionAtOffset(187, "PA_RISC"); + confirmCompletionAtOffset(181, "x86"); } @Test diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/Bug531602FormattingTests.java b/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/Bug531602FormattingTests.java index 0da2cfffd8..cb86bba961 100644 --- a/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/Bug531602FormattingTests.java +++ b/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/Bug531602FormattingTests.java @@ -15,19 +15,14 @@ package org.eclipse.pde.genericeditor.extension.tests; import static org.junit.Assert.assertEquals; -import java.io.File; +import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.InputStream; import java.net.URI; -import java.net.URL; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; import java.util.Arrays; import java.util.Scanner; -import org.eclipse.core.filebuffers.ITextFileBuffer; -import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.equinox.p2.metadata.IInstallableUnit; @@ -43,22 +38,20 @@ import org.junit.Test; import org.osgi.framework.FrameworkUtil; public class Bug531602FormattingTests extends AbstractTargetEditorTest { - private static final String TEST_FILE_LINE_SEPERATOR = "\n"; @Test public void testSettingNullPersists() throws Exception { ITargetPlatformService service = PDECore.getDefault().acquireService(ITargetPlatformService.class); ITargetDefinition targetDefinition = service.newTarget(); targetDefinition.setName("test"); - tempFile = File.createTempFile("targetDefinition", null); - ITextFileBuffer buffer = getTextFileBufferFromFile(tempFile); - TargetDefinitionPersistenceHelper.persistXML(targetDefinition, buffer); - String expectedOutput = readFile(tempFile.toPath(), StandardCharsets.UTF_8); + ByteArrayOutputStream expectedOutput = new ByteArrayOutputStream(); + TargetDefinitionPersistenceHelper.persistXML(targetDefinition, expectedOutput); + ByteArrayOutputStream actualOutput = new ByteArrayOutputStream(); targetDefinition.setProgramArguments(null); - TargetDefinitionPersistenceHelper.persistXML(targetDefinition, buffer); - String actualOutput = readFile(tempFile.toPath(), StandardCharsets.UTF_8); - assertEquals(expectedOutput, actualOutput); + TargetDefinitionPersistenceHelper.persistXML(targetDefinition, actualOutput); + assertEquals(expectedOutput.toString(StandardCharsets.UTF_8.toString()), + actualOutput.toString(StandardCharsets.UTF_8.toString())); } @Test @@ -66,18 +59,18 @@ public class Bug531602FormattingTests extends AbstractTargetEditorTest { ITargetPlatformService service = PDECore.getDefault().acquireService(ITargetPlatformService.class); ITargetDefinition targetDefinition = service.newTarget(); targetDefinition.setOS("test_os"); + ByteArrayOutputStream actualOutput = new ByteArrayOutputStream(); + TargetDefinitionPersistenceHelper.persistXML(targetDefinition, actualOutput); confirmMatch(targetDefinition, "IndentingTestCaseTarget.txt"); } @Test public void testCommentsAndWhitespacePersists() throws Exception { - URL url = FrameworkUtil.getBundle(this.getClass()) - .getEntry("testing-files/target-files/PersistTestCaseTarget.txt"); - File inputFile = new File(FileLocator.toFileURL(url).getFile()); + InputStream inputStream = FrameworkUtil.getBundle(this.getClass()) + .getEntry("testing-files/target-files/PersistTestCaseTarget.txt").openStream(); ITargetPlatformService service = PDECore.getDefault().acquireService(ITargetPlatformService.class); ITargetDefinition targetDefinition = service.newTarget(); - ITextFileBuffer buffer = getTextFileBufferFromFile(inputFile); - TargetDefinitionPersistenceHelper.initFromXML(targetDefinition, buffer); + TargetDefinitionPersistenceHelper.initFromXML(targetDefinition, inputStream); confirmMatch(targetDefinition, "PersistTestCaseTarget.txt"); } @@ -116,8 +109,6 @@ public class Bug531602FormattingTests extends AbstractTargetEditorTest { StringAsserts.assertEqualStringIgnoreDelim(actual, expected); } private void confirmMatch(ITargetDefinition targetDefinition, String expectedDefinitionPath) throws Exception { - String lineSeparator = System.getProperty("line.separator"); - boolean requireReplaceLineSeparator = !lineSeparator.equals(TEST_FILE_LINE_SEPERATOR); try (Scanner s = new Scanner(FrameworkUtil.getBundle(this.getClass()) .getEntry("testing-files/target-files/" + expectedDefinitionPath).openStream()).useDelimiter("\\A")) { String result = s.hasNext() ? s.next() : ""; @@ -129,14 +120,10 @@ public class Bug531602FormattingTests extends AbstractTargetEditorTest { Arrays.fill(chars, ' '); result.replace("\t", new String(chars)); } - tempFile = File.createTempFile("targetDefinition", null); - ITextFileBuffer buffer = getTextFileBufferFromFile(tempFile); - TargetDefinitionPersistenceHelper.persistXML(targetDefinition, buffer); - String fileContent = readFile(tempFile.toPath(), StandardCharsets.UTF_8); - if (requireReplaceLineSeparator) { - fileContent = fileContent.replace(lineSeparator, TEST_FILE_LINE_SEPERATOR); - } - assertEquals(result, fileContent); + ByteArrayOutputStream actualOutput = new ByteArrayOutputStream(); + TargetDefinitionPersistenceHelper.persistXML(targetDefinition, actualOutput); + + assertEqualStringIgnoreDelim(result, actualOutput.toString(StandardCharsets.UTF_8.toString())); } catch (IOException e) { } } @@ -164,9 +151,4 @@ public class Bug531602FormattingTests extends AbstractTargetEditorTest { targetDefinition.setTargetLocations(new ITargetLocation[] { dirContainer, profileContainer, featureContainer, restrictedProfileContainer, siteContainer }); } - - static String readFile(Path path, Charset encoding) throws IOException { - byte[] encoded = Files.readAllBytes(path); - return new String(encoded, encoding); - } }
\ No newline at end of file diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/testing-files/target-files/MultilineTagTestCaseTarget.txt b/ui/org.eclipse.pde.genericeditor.extension.tests/testing-files/target-files/MultilineTagTestCaseTarget.txt index d51da58210..acf466094d 100644 --- a/ui/org.eclipse.pde.genericeditor.extension.tests/testing-files/target-files/MultilineTagTestCaseTarget.txt +++ b/ui/org.eclipse.pde.genericeditor.extension.tests/testing-files/target-files/MultilineTagTestCaseTarget.txt @@ -11,12 +11,12 @@ <pro </locations> <environment> -<ws>carb</ws> +<ws>coc</ws> <os> linu </os> -<arch>PA_RIS</arch> +<arch>x</arch> </environment> </target>
\ No newline at end of file diff --git a/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/reconciler/folding/FoldingReconcilerStrategy.java b/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/reconciler/folding/FoldingReconcilerStrategy.java index 6cbd364ee5..e1b8e1e4c6 100644 --- a/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/reconciler/folding/FoldingReconcilerStrategy.java +++ b/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/reconciler/folding/FoldingReconcilerStrategy.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017 Red Hat Inc. and others + * Copyright (c) 2017, 2019 Red Hat Inc. and others * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -172,16 +172,18 @@ public class FoldingReconcilerStrategy implements IReconcilingStrategy, IReconci } break; case END_OF_LINE: - if (currentChar == '\n' || characters == currentCharIndex + 1) { - List<Integer> listOfAnnotationIndexes = startOfAnnotation.get(word); - int start = listOfAnnotationIndexes.get(0); - if (document.getLineOfOffset(start) != document.getLineOfOffset(currentCharIndex)) { - positions.add(new Position(start, currentCharIndex + 1 - start)); - } - if (listOfAnnotationIndexes.size() > 0) { - listOfAnnotationIndexes.remove(0); - }else { - startOfAnnotation.remove(word); + if (startOfAnnotation.containsKey(word)) { + if (currentChar == '\n' || characters == currentCharIndex + 1) { + List<Integer> listOfAnnotationIndexes = startOfAnnotation.get(word); + int start = listOfAnnotationIndexes.get(0); + if (document.getLineOfOffset(start) != document.getLineOfOffset(currentCharIndex)) { + positions.add(new Position(start, currentCharIndex + 1 - start)); + } + if (listOfAnnotationIndexes.size() > 0) { + listOfAnnotationIndexes.remove(0); + } else { + startOfAnnotation.remove(word); + } } searchingFor = SearchingFor.START_OF_TAG; } diff --git a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java index faf998a935..e46ad69d0b 100644 --- a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java +++ b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java @@ -607,7 +607,7 @@ public class BundleLauncherHelper { if (userAddedPlugins != null) { for (String addedPlugin : userAddedPlugins) { String[] pluginData = addedPlugin.split(":"); //$NON-NLS-1$ - boolean checked = Boolean.valueOf(pluginData[3]).booleanValue(); + boolean checked = Boolean.parseBoolean(pluginData[3]); if (!onlyEnabled || checked) { String id = pluginData[0]; String version = pluginData[1]; diff --git a/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF index 12724bf5bb..8ee78a4da7 100644 --- a/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF +++ b/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Tests for PDE templates Bundle-SymbolicName: org.eclipse.pde.ui.templates.tests -Bundle-Version: 1.0.200.qualifier +Bundle-Version: 1.0.300.qualifier Bundle-Vendor: Eclipse.org Bundle-ClassPath: tests.jar Bundle-RequiredExecutionEnvironment: JavaSE-1.8 diff --git a/ui/org.eclipse.pde.ui.templates.tests/pom.xml b/ui/org.eclipse.pde.ui.templates.tests/pom.xml index 835e49b6c4..11233e03da 100644 --- a/ui/org.eclipse.pde.ui.templates.tests/pom.xml +++ b/ui/org.eclipse.pde.ui.templates.tests/pom.xml @@ -19,7 +19,7 @@ </parent> <groupId>org.eclipse.pde</groupId> <artifactId>org.eclipse.pde.ui.templates.tests</artifactId> - <version>1.0.200-SNAPSHOT</version> + <version>1.0.300-SNAPSHOT</version> <packaging>eclipse-test-plugin</packaging> <properties> diff --git a/ui/org.eclipse.pde.ui.templates.tests/src/org/eclipse/pde/ui/templates/tests/TestPDETemplates.java b/ui/org.eclipse.pde.ui.templates.tests/src/org/eclipse/pde/ui/templates/tests/TestPDETemplates.java index 9346d3e79b..27830882df 100644 --- a/ui/org.eclipse.pde.ui.templates.tests/src/org/eclipse/pde/ui/templates/tests/TestPDETemplates.java +++ b/ui/org.eclipse.pde.ui.templates.tests/src/org/eclipse/pde/ui/templates/tests/TestPDETemplates.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017 Red Hat Inc. and others + * Copyright (c) 2017, 2019 Red Hat Inc. and others * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -24,6 +24,8 @@ import org.eclipse.osgi.internal.framework.EquinoxBundle; import org.eclipse.osgi.storage.BundleInfo.Generation; import org.eclipse.pde.core.target.*; import org.eclipse.pde.internal.core.ICoreConstants; +import org.eclipse.pde.internal.core.builders.CompilerFlags; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.target.TargetPlatformService; import org.eclipse.pde.internal.ui.wizards.IProjectProvider; import org.eclipse.pde.internal.ui.wizards.WizardElement; @@ -159,6 +161,12 @@ public class TestPDETemplates { this.project.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor()); IMarker[] markers = this.project.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE); + + // ignore missing package export marker + if (markers.length == 1 && CompilerFlags.P_MISSING_EXPORT_PKGS + .equals(markers[0].getAttribute(PDEMarkerFactory.compilerKey, ""))) { + markers = new IMarker[0]; + } if (markers.length > 0) { System.out.println("Template '" + template.getLabel() + "' generates errors."); for (IMarker marker : markers) { diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/runtime/AbstractRegistryModelTest.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/runtime/AbstractRegistryModelTest.java index e6f80c7c71..b004e4efe8 100644 --- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/runtime/AbstractRegistryModelTest.java +++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/runtime/AbstractRegistryModelTest.java @@ -92,7 +92,7 @@ public abstract class AbstractRegistryModelTest extends TestCase implements Mode testServiceReference = registration.getReference();
testExtPoint = Platform.getExtensionRegistry().getExtensionPoint(TEST_EXT_POINT);
- testExtPointBundle = TestUtils.getBundle(TEST_EXT_POINT_BUNDLE);
+ testExtPointBundle = Platform.getBundle(TEST_EXT_POINT_BUNDLE);
}
@Override
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/runtime/TestUtils.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/runtime/TestUtils.java index 4a3314e7ce..b05b94426b 100644 --- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/runtime/TestUtils.java +++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/runtime/TestUtils.java @@ -26,32 +26,11 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.pde.ui.tests.PDETestsPlugin;
import org.eclipse.swt.widgets.Display;
import org.junit.Assert;
-import org.osgi.framework.Bundle;
-import org.osgi.service.packageadmin.PackageAdmin;
/**
* Utility methods for JUnit tests.
*/
-@SuppressWarnings("deprecation")
-// We use package admin to access bundles during the tests
public class TestUtils {
-
- private static PackageAdmin packageAdmin;
-
- public static Bundle getBundle(String symbolicName) {
- if (packageAdmin == null) {
- packageAdmin = PDETestsPlugin.getBundleContext()
- .getService(PDETestsPlugin.getBundleContext().getServiceReference(PackageAdmin.class));
- }
- Bundle[] bundles = packageAdmin.getBundles(symbolicName, null);
-
- if (bundles != null) {
- return bundles[0];
- }
-
- return null;
- }
-
public static IExtensionPoint getExtensionPoint(String extensionPointId) {
return Platform.getExtensionRegistry().getExtensionPoint(extensionPointId);
}
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/IUBundleContainerTests.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/IUBundleContainerTests.java index 85b9c812d1..2a8621cce7 100644 --- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/IUBundleContainerTests.java +++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/IUBundleContainerTests.java @@ -13,17 +13,16 @@ *******************************************************************************/ package org.eclipse.pde.ui.tests.target; -import java.io.File; +import java.io.*; import java.net.URI; import java.net.URL; +import java.nio.charset.StandardCharsets; import java.util.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import org.eclipse.core.filebuffers.ITextFileBuffer; import org.eclipse.core.filesystem.URIUtil; import org.eclipse.core.runtime.*; import org.eclipse.equinox.frameworkadmin.BundleInfo; -import org.eclipse.equinox.internal.p2.metadata.InstallableUnit; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.query.QueryUtil; @@ -43,15 +42,6 @@ import org.xml.sax.helpers.DefaultHandler; * Tests for the IU bundle container */ public class IUBundleContainerTests extends AbstractTargetTest { - protected File tempFile; - - @Override - protected void tearDown() throws Exception { - if (tempFile != null) { - tempFile.delete(); - } - super.tearDown(); - } /** * Returns the metadata repository at the specified location. @@ -89,7 +79,7 @@ public class IUBundleContainerTests extends AbstractTargetTest { */ protected IInstallableUnit getUnit(String id, IMetadataRepository repository) { IQueryResult<IInstallableUnit> result = repository.query(QueryUtil.createIUQuery(id), null); - IInstallableUnit[] units = result.toArray(IInstallableUnit.class); + IInstallableUnit[] units = result.toArray(IInstallableUnit.class); if (units.length == 1) { return units[0]; } @@ -147,38 +137,6 @@ public class IUBundleContainerTests extends AbstractTargetTest { } /** - * P2TargetUtils should not consume much memory if all target definitions - * are deleted - */ - public void testSynchronizerLeak() throws Exception { - ITargetPlatformService service = getTargetService(); - URI[] uris = new URI[] { getURI("/tests/sites/site.a.b") }; - - long bundleCount = 0; - long memoryLimit = usedMemory() + 200_000_000; - for (int i = 0; i < 1000; i++) { - ITargetDefinition target = service.newTarget(); - try { - IInstallableUnit[] units = new IInstallableUnit[10000]; - for (int m = 0; m < units.length; m++) { - InstallableUnit unit = new InstallableUnit(); - unit.setId("bundle.a" + (bundleCount++)); - units[m] = unit; - } - IUBundleContainer container = createContainer(units, uris, 0); - target.setTargetLocations(new ITargetLocation[] { container }); - } finally { - // Free up memory and disk used by target - service.deleteTarget(target.getHandle()); - P2TargetUtils.cleanOrphanedTargetDefinitionProfiles(); - } - // If we omit this assertion, further tests won't be executed due - // to VM fatal error - assertTrue("Memory should not be consumed if all targets are deleted", usedMemory() < memoryLimit); - } - } - - /** * Tests all bundles are resolved for a single feature * * @throws Exception @@ -296,11 +254,12 @@ public class IUBundleContainerTests extends AbstractTargetTest { IUBundleContainer container = createContainer(unitIds); ITargetDefinition target = getTargetService().newTarget(); target.setTargetLocations(new ITargetLocation[]{container}); - tempFile = File.createTempFile("targetDefinition", null); - ITextFileBuffer fileBuffer = getTextFileBufferFromFile(tempFile); - TargetDefinitionPersistenceHelper.persistXML(target, fileBuffer); + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + TargetDefinitionPersistenceHelper.persistXML(target, outputStream); ITargetDefinition definitionB = getTargetService().newTarget(); - TargetDefinitionPersistenceHelper.initFromXML(definitionB, fileBuffer); + ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + TargetDefinitionPersistenceHelper.initFromXML(definitionB, inputStream); assertTrue("Target content not equal",((TargetDefinition)target).isContentEqual(definitionB)); // resolve the restored target and ensure bundles are correct @@ -555,12 +514,12 @@ public class IUBundleContainerTests extends AbstractTargetTest { public void deserializationTest(IUBundleContainer location) throws Exception { ITargetDefinition td = getTargetService().newTarget(); td.setTargetLocations(new ITargetLocation[] {location}); - tempFile = File.createTempFile("targetDefinition", null); - ITextFileBuffer fileBuffer = getTextFileBufferFromFile(tempFile); - TargetDefinitionPersistenceHelper.persistXML(td, fileBuffer); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + TargetDefinitionPersistenceHelper.persistXML(td, out); + String xml = new String(out.toByteArray()); DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder(); parser.setErrorHandler(new DefaultHandler()); - Document doc = parser.parse(new InputSource(fileBuffer.getFileStore().openInputStream(0, null))); + Document doc = parser.parse(new InputSource(new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)))); ITargetDefinition definition = getTargetService().newTarget(); Element root = doc.getDocumentElement(); @@ -588,10 +547,4 @@ public class IUBundleContainerTests extends AbstractTargetTest { String actualValue = xml.substring(start, start + String.valueOf(expectedValue).length()) ; assertEquals(String.valueOf(expectedValue), actualValue); } - - private long usedMemory() { - System.gc(); - return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); - } - } diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java index ce5c2412d4..49e4c0cded 100644 --- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java +++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/LocalTargetDefinitionTests.java @@ -450,7 +450,9 @@ public class LocalTargetDefinitionTests extends AbstractTargetTest { for (TargetBundle bundle : bundles) { expected.remove(bundle.getBundleInfo().getSymbolicName()); } - for (String name : expected) { + Iterator<String> iterator = expected.iterator(); + while (iterator.hasNext()) { + String name = iterator.next(); System.err.println("Missing: " + name); } assertTrue("Wrong bundles in JDT feature", expected.isEmpty()); @@ -500,7 +502,9 @@ public class LocalTargetDefinitionTests extends AbstractTargetTest { } } } - for (String name : expected) { + Iterator<String> iterator = expected.iterator(); + while (iterator.hasNext()) { + String name = iterator.next(); System.err.println("Missing: " + name); } assertTrue("Wrong bundles in JDT feature", expected.isEmpty()); @@ -613,7 +617,9 @@ public class LocalTargetDefinitionTests extends AbstractTargetTest { expected.remove(model.getPluginBase().getId()); assertTrue(model.isEnabled()); } - for (String name : expected) { + Iterator<String> iterator = expected.iterator(); + while (iterator.hasNext()) { + String name = iterator.next(); System.err.println("Missing: " + name); } assertTrue("Wrong bundles in target platform", expected.isEmpty()); @@ -657,7 +663,9 @@ public class LocalTargetDefinitionTests extends AbstractTargetTest { URL url = PDETestsPlugin.getBundleContext().getBundle().getEntry("/tests/targets/target-files/" + name + ".target"); File file = new File(FileLocator.toFileURL(url).getFile()); ITargetDefinition target = getNewTarget(); - TargetDefinitionPersistenceHelper.initFromXML(target, getTextFileBufferFromFile(file)); + try (FileInputStream stream = new FileInputStream(file)) { + TargetDefinitionPersistenceHelper.initFromXML(target, stream); + } return target; } diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/MinimalTargetDefinitionPersistenceTests.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/MinimalTargetDefinitionPersistenceTests.java index c734620182..66d6294043 100644 --- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/MinimalTargetDefinitionPersistenceTests.java +++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/MinimalTargetDefinitionPersistenceTests.java @@ -13,12 +13,11 @@ *******************************************************************************/ package org.eclipse.pde.ui.tests.target; -import java.io.File; +import java.io.*; import java.net.*; import java.util.HashSet; import java.util.Set; import junit.framework.TestCase; -import org.eclipse.core.filebuffers.ITextFileBuffer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.*; @@ -38,15 +37,6 @@ import org.osgi.framework.ServiceReference; * */ public class MinimalTargetDefinitionPersistenceTests extends TestCase { - protected File tempFile; - - @Override - protected void tearDown() throws Exception { - if (tempFile != null) { - tempFile.delete(); - } - super.tearDown(); - } protected void assertTargetDefinitionsEqual(ITargetDefinition targetA, ITargetDefinition targetB) { assertTrue("Target content not equal", ((TargetDefinition) targetA).isContentEqual(targetB)); @@ -185,11 +175,11 @@ public class MinimalTargetDefinitionPersistenceTests extends TestCase { */ public void testPersistEmptyDefinition() throws Exception { ITargetDefinition definitionA = getTargetService().newTarget(); - tempFile = File.createTempFile("targetDefinition", null); - ITextFileBuffer fileBuffer = AbstractTargetTest.getTextFileBufferFromFile(tempFile); - TargetDefinitionPersistenceHelper.persistXML(definitionA, fileBuffer); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + TargetDefinitionPersistenceHelper.persistXML(definitionA, outputStream); ITargetDefinition definitionB = getTargetService().newTarget(); - TargetDefinitionPersistenceHelper.initFromXML(definitionB, fileBuffer); + ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + TargetDefinitionPersistenceHelper.initFromXML(definitionB, inputStream); assertTargetDefinitionsEqual(definitionA, definitionB); } @@ -206,7 +196,9 @@ public class MinimalTargetDefinitionPersistenceTests extends TestCase { .getEntry("/tests/targets/target-files/" + name + ".trgt"); File file = new File(FileLocator.toFileURL(url).getFile()); ITargetDefinition target = getTargetService().newTarget(); - TargetDefinitionPersistenceHelper.initFromXML(target, AbstractTargetTest.getTextFileBufferFromFile(file)); + try (FileInputStream stream = new FileInputStream(file)) { + TargetDefinitionPersistenceHelper.initFromXML(target, stream); + } return target; } diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/TargetDefinitionPersistenceTests.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/TargetDefinitionPersistenceTests.java index df02f8429a..307460964e 100644 --- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/TargetDefinitionPersistenceTests.java +++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/TargetDefinitionPersistenceTests.java @@ -13,21 +13,18 @@ *******************************************************************************/ package org.eclipse.pde.ui.tests.target; -import static org.junit.Assert.assertArrayEquals; - -import java.io.File; -import java.net.*; -import java.nio.file.Files; -import org.eclipse.core.filebuffers.ITextFileBuffer; +import java.io.*; +import java.net.URI; +import java.net.URISyntaxException; import org.eclipse.core.resources.*; -import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Platform; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.jdt.launching.JavaRuntime; import org.eclipse.pde.core.plugin.TargetPlatform; import org.eclipse.pde.core.target.*; import org.eclipse.pde.internal.core.target.IUBundleContainer; import org.eclipse.pde.internal.core.target.TargetDefinitionPersistenceHelper; -import org.eclipse.pde.ui.tests.PDETestsPlugin; /** * Tests the persistence of target definitions. Tests memento creation, reading of old target files, and writing of the model. @@ -49,47 +46,18 @@ public class TargetDefinitionPersistenceTests extends MinimalTargetDefinitionPer ITargetDefinition definitionA = getTargetService().newTarget(); initComplexDefiniton(definitionA); - tempFile = File.createTempFile("targetDefinition", null); - ITextFileBuffer fileBuffer = AbstractTargetTest.getTextFileBufferFromFile(tempFile); - TargetDefinitionPersistenceHelper.persistXML(definitionA, fileBuffer); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + TargetDefinitionPersistenceHelper.persistXML(definitionA, outputStream); ITargetDefinition definitionB = getTargetService().newTarget(); - TargetDefinitionPersistenceHelper.initFromXML(definitionB, fileBuffer); + ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + TargetDefinitionPersistenceHelper.initFromXML(definitionB, inputStream); assertTargetDefinitionsEqual(definitionA, definitionB); } /** - * Tests that a target definition file with a non system default line delimiters - * can be deserialized and serialized back to xml without having it's line - * delimiters changed. - * - * @throws Exception - */ - public void testPersistLineDelimiters() throws Exception { - String lineSeparator = System.getProperty("line.separator"); - URL url; - if (!lineSeparator.equals("\n")) { - url = PDETestsPlugin.getBundleContext().getBundle() - .getEntry("/tests/targets/target-files/unixLineDelimiters.trgt"); - } else { - url = PDETestsPlugin.getBundleContext().getBundle() - .getEntry("/tests/targets/target-files/windowsLineDelimiters.trgt"); - } - File file = new File(FileLocator.toFileURL(url).getFile()); - byte[] f1 = Files.readAllBytes(file.toPath()); - - ITextFileBuffer fileBuffer = AbstractTargetTest.getTextFileBufferFromFile(file); - ITargetDefinition target = getTargetService().newTarget(); - TargetDefinitionPersistenceHelper.initFromXML(target, fileBuffer); - TargetDefinitionPersistenceHelper.persistXML(target, fileBuffer); - byte[] f2 = Files.readAllBytes(fileBuffer.getFileStore().toLocalFile(0, null).toPath()); - - assertArrayEquals(f1, f2); - } - - /** - * Tests that a complex workspace file based target definition can be serialized - * to xml, then deserialized without any loss of data. + * Tests that a complex workspace file based target definition can be + * serialized to xml, then deserialized without any loss of data. * * @throws Exception */ diff --git a/ui/org.eclipse.pde.ui/plugin.properties b/ui/org.eclipse.pde.ui/plugin.properties index 63b77fbc30..ccacf9e737 100644 --- a/ui/org.eclipse.pde.ui/plugin.properties +++ b/ui/org.eclipse.pde.ui/plugin.properties @@ -52,26 +52,26 @@ as binary (no source code) new.category.name=Plug-in Development new.pluginProject.name=Plug-in Project -new.pluginProject.description=Create a Plug-in Project +new.pluginProject.description=Create a plug-in project new.pluginWithJarsProject.name=Plug-in from Existing JAR Archives new.pluginWithJarsProject.description=Create a plug-in project from existing JAR archives new.fragmentProject.name=Fragment Project -new.fragmentProject.description=Create a Plug-in Fragment Project +new.fragmentProject.description=Create a plug-in fragment project new.schemaFile.name = Extension Point Schema -new.schemaFile.description = Create an Extension Point Schema File -new.cheat.sheet.description = Create a Cheat Sheet +new.schemaFile.description = Create an extension point schema file +new.cheat.sheet.description = Create a cheat sheet new.convert.name= Convert to Plug-in Projects... new.feature.name=Feature Project -new.feature.description=Create a Feature project +new.feature.description=Create a feature project new.patch.name=Feature Patch -new.patch.description=Create a Feature Patch +new.patch.description=Create a feature patch new.site.name=Update Site Project -new.site.description=Create an Update Site project +new.site.description=Create an update site project new.toc.name=Help Table of Contents -new.toc.description=Create a Table of Contents +new.toc.description=Create a table of contents new.ctxhelp.name=Context Help -new.ctxhelp.description=Create a Context Help file -new.categoryDefinition.description=Create a Category Definition file +new.ctxhelp.description=Create a context help file +new.categoryDefinition.description=Create a category definition file PluginImportWizard.label=Plug-ins and Fragments PluginImportWizard.description=Create projects from plug-ins and fragments in the file system. diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractManifestMarkerResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractManifestMarkerResolution.java index 09401808f9..c76631182b 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractManifestMarkerResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractManifestMarkerResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.core.IBaseModel; import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase; import org.eclipse.pde.internal.core.text.bundle.BundleModel; @@ -23,6 +24,10 @@ public abstract class AbstractManifestMarkerResolution extends AbstractPDEMarker super(type); } + public AbstractManifestMarkerResolution(int type, IMarker marker) { + super(type, marker); + } + protected abstract void createChange(BundleModel model); @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractPDEMarkerResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractPDEMarkerResolution.java index eea7af8e20..a6b8fff060 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractPDEMarkerResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractPDEMarkerResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2017 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,10 +13,12 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import java.util.HashSet; import org.eclipse.core.resources.*; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.pde.core.IBaseModel; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.ui.PDEPluginImages; import org.eclipse.pde.internal.ui.util.ModelModification; import org.eclipse.pde.internal.ui.util.PDEModelUtility; @@ -37,15 +39,31 @@ public abstract class AbstractPDEMarkerResolution extends WorkbenchMarkerResolut * ie. its not the be used in getImage()/getType()/getDesciption() */ protected IResource fResource; + protected IMarker marker = null; public AbstractPDEMarkerResolution(int type) { fType = type; } + public AbstractPDEMarkerResolution(int type, IMarker marker2) { + fType = type; + marker = marker2; + } + @Override public IMarker[] findOtherMarkers(IMarker[] markers) { - return new IMarker[0]; + HashSet<IMarker> mset = new HashSet<>(markers.length); + for (IMarker iMarker : markers) { + if (iMarker.equals(marker)) + continue; + String str = iMarker.getAttribute(PDEMarkerFactory.compilerKey, ""); //$NON-NLS-1$ + if (str.equals(marker.getAttribute(PDEMarkerFactory.compilerKey, ""))) //$NON-NLS-1$ + mset.add(iMarker); + } + int size = mset.size(); + return mset.toArray(new IMarker[size]); } + @Override public Image getImage() { if (image == null) { @@ -78,6 +96,7 @@ public abstract class AbstractPDEMarkerResolution extends WorkbenchMarkerResolut @Override public void run(IMarker marker) { + this.marker = marker; fResource = marker.getResource(); ModelModification modification = new ModelModification((IFile) marker.getResource()) { @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractXMLMarkerResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractXMLMarkerResolution.java index bfad1724d9..9beb42f7e7 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractXMLMarkerResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AbstractXMLMarkerResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -30,7 +30,7 @@ public abstract class AbstractXMLMarkerResolution extends AbstractPDEMarkerResol protected String fLocationPath; public AbstractXMLMarkerResolution(int resolutionType, IMarker marker) { - super(resolutionType); + super(resolutionType, marker); try { fLocationPath = (String) marker.getAttribute(PDEMarkerFactory.MPK_LOCATION_PATH); } catch (CoreException e) { @@ -46,6 +46,10 @@ public abstract class AbstractXMLMarkerResolution extends AbstractPDEMarkerResol } protected Object findNode(IPluginModelBase base) { + try { + fLocationPath = (String) marker.getAttribute(PDEMarkerFactory.MPK_LOCATION_PATH); + } catch (CoreException e) { + } if (fLocationPath == null) return null; diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddActivationHeaderResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddActivationHeaderResolution.java index 8f1f3c25d2..b24463dfad 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddActivationHeaderResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddActivationHeaderResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2015 IBM Corporation and others. + * Copyright (c) 2008, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.ICoreConstants; import org.eclipse.pde.internal.core.TargetPlatformHelper; @@ -27,13 +28,14 @@ public class AddActivationHeaderResolution extends AbstractManifestMarkerResolut String fHeader = null; - public AddActivationHeaderResolution(int type, String currentHeader) { - super(type); + public AddActivationHeaderResolution(int type, String currentHeader, IMarker marker) { + super(type, marker); fHeader = currentHeader; } @Override protected void createChange(BundleModel model) { + marker.getAttribute("header", ICoreConstants.ECLIPSE_AUTOSTART); //$NON-NLS-1$ IBundle bundle = model.getBundle(); IManifestHeader header = bundle.getManifestHeader(fHeader); if (header instanceof LazyStartHeader) { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddActivationPolicyResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddActivationPolicyResolution.java index 31e60327c5..6258959c7f 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddActivationPolicyResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddActivationPolicyResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2015 Alex Blewitt and others. + * Copyright (c) 2015, 2019 Alex Blewitt and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.ibundle.IBundle; import org.eclipse.pde.internal.core.ibundle.IManifestHeader; import org.eclipse.pde.internal.core.text.bundle.Bundle; @@ -22,8 +23,8 @@ import org.osgi.framework.Constants; public class AddActivationPolicyResolution extends AbstractManifestMarkerResolution { - public AddActivationPolicyResolution(int type) { - super(type); + public AddActivationPolicyResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddAutomaticModuleResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddAutomaticModuleResolution.java index 3148a1e77d..306aa51db3 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddAutomaticModuleResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddAutomaticModuleResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017 IBM Corporation and others. + * Copyright (c) 2017, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -28,7 +28,7 @@ public class AddAutomaticModuleResolution extends AbstractManifestMarkerResoluti private IMarker mark; public AddAutomaticModuleResolution(int type, IMarker marker) { - super(type); + super(type, marker); mark = marker; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBuildEntryResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBuildEntryResolution.java index d8f0f224be..cf365f5c3f 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBuildEntryResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBuildEntryResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -16,6 +16,7 @@ package org.eclipse.pde.internal.ui.correction; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; import org.eclipse.osgi.util.NLS; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.text.build.*; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -39,6 +40,11 @@ public class AddBuildEntryResolution extends BuildEntryMarkerResolution { @Override protected void createChange(Build build) { try { + fEntry = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_ENTRY); + fToken = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_TOKEN); + } catch (CoreException e) { + } + try { BuildModel buildModel = build.getModel(); if (buildModel.isStale()) { buildModel.reconciled(buildModel.getDocument()); diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBundleClassPathMarkerResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBundleClassPathMarkerResolution.java index d991cef28d..09ce2dbdd0 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBundleClassPathMarkerResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBundleClassPathMarkerResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2015 IBM Corporation and others. + * Copyright (c) 2007, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.ibundle.IBundle; import org.eclipse.pde.internal.core.text.bundle.*; @@ -23,8 +24,8 @@ public class AddBundleClassPathMarkerResolution extends AbstractManifestMarkerRe private String fValue; - public AddBundleClassPathMarkerResolution(int type, String value) { - super(type); + public AddBundleClassPathMarkerResolution(int type, String value, IMarker marker) { + super(type, marker); this.fValue = value; } @@ -35,6 +36,7 @@ public class AddBundleClassPathMarkerResolution extends AbstractManifestMarkerRe @Override protected void createChange(BundleModel model) { + this.fValue = marker.getAttribute("entry", null) ;//$NON-NLS-1$ IBundle bundle = model.getBundle(); if (bundle instanceof Bundle) { BundleClasspathHeader header = (BundleClasspathHeader) bundle.getManifestHeader(Constants.BUNDLE_CLASSPATH); diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBundleManifestVersionResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBundleManifestVersionResolution.java index 612fa7f0e7..f491ec1287 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBundleManifestVersionResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddBundleManifestVersionResolution.java @@ -1,11 +1,11 @@ /*******************************************************************************
- * Copyright (c) 2011, 2015 IBM Corporation and others.
- * + * Copyright (c) 2011, 2019 IBM Corporation 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/ - * + * https://www.eclipse.org/legal/epl-2.0/
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction;
+import org.eclipse.core.resources.IMarker;
import org.eclipse.pde.internal.core.text.bundle.BundleModel;
import org.eclipse.pde.internal.ui.PDEUIMessages;
import org.osgi.framework.Constants;
@@ -23,8 +24,8 @@ import org.osgi.framework.Constants; */
public class AddBundleManifestVersionResolution extends AbstractManifestMarkerResolution {
- public AddBundleManifestVersionResolution() {
- super(AbstractPDEMarkerResolution.CREATE_TYPE);
+ public AddBundleManifestVersionResolution(IMarker marker) {
+ super(AbstractPDEMarkerResolution.CREATE_TYPE, marker);
}
@Override
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddDefaultExecutionEnvironmentResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddDefaultExecutionEnvironmentResolution.java index f96771b74b..55d671fa96 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddDefaultExecutionEnvironmentResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddDefaultExecutionEnvironmentResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2015 IBM Corporation and others. + * Copyright (c) 2007, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -14,6 +14,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.jdt.launching.JavaRuntime; import org.eclipse.jdt.launching.environments.IExecutionEnvironment; import org.eclipse.osgi.util.NLS; @@ -27,13 +28,14 @@ public class AddDefaultExecutionEnvironmentResolution extends AbstractManifestMa private String id; - public AddDefaultExecutionEnvironmentResolution(int type, String id) { - super(type); + public AddDefaultExecutionEnvironmentResolution(int type, String id, IMarker marker) { + super(type, marker); this.id = id; } @Override protected void createChange(BundleModel model) { + id = this.marker.getAttribute("ee_id", null); //$NON-NLS-1$ IManifestHeader header = model.getBundle().getManifestHeader(Constants.BUNDLE_REQUIREDEXECUTIONENVIRONMENT); if (header == null) { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddExportPackageMarkerResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddExportPackageMarkerResolution.java index b911fa0d73..7ad6fd74dc 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddExportPackageMarkerResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddExportPackageMarkerResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2018 IBM Corporation and others. + * Copyright (c) 2006, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,10 +13,8 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; -import java.util.HashSet; import java.util.regex.Pattern; import org.eclipse.core.resources.IMarker; -import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.ibundle.IBundle; import org.eclipse.pde.internal.core.text.bundle.*; import org.eclipse.pde.internal.core.util.PatternConstructor; @@ -28,10 +26,9 @@ import org.osgi.framework.Constants; public class AddExportPackageMarkerResolution extends AbstractManifestMarkerResolution { private String fValues; - IMarker marker = null; public AddExportPackageMarkerResolution(IMarker mark, int type, String values) { - super(type); + super(type, mark); this.fValues = values; this.marker = mark; } @@ -42,12 +39,6 @@ public class AddExportPackageMarkerResolution extends AbstractManifestMarkerReso } @Override - public void run(IMarker marker) { - this.marker = marker; - super.run(marker); - } - - @Override protected void createChange(BundleModel model) { IBundle bundle = model.getBundle(); if (bundle instanceof Bundle) { @@ -78,18 +69,4 @@ public class AddExportPackageMarkerResolution extends AbstractManifestMarkerReso } } - @Override - public IMarker[] findOtherMarkers(IMarker[] markers) { - HashSet<IMarker> mset = new HashSet<>(markers.length); - for (IMarker iMarker : markers) { - if (iMarker.equals(marker)) - continue; - String str = iMarker.getAttribute(PDEMarkerFactory.compilerKey, ""); //$NON-NLS-1$ - if (str.equals(marker.getAttribute(PDEMarkerFactory.compilerKey, ""))) //$NON-NLS-1$ - mset.add(iMarker); - } - int size = mset.size(); - return mset.toArray(new IMarker[size]); - } - } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddNewExtensionPointResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddNewExtensionPointResolution.java index 11cb269080..3a4a13b4b8 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddNewExtensionPointResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddNewExtensionPointResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2015 IBM Corporation and others. + * Copyright (c) 2008, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.pde.core.IBaseModel; import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase; @@ -25,8 +26,8 @@ import org.eclipse.ui.IEditorPart; public class AddNewExtensionPointResolution extends AbstractPDEMarkerResolution { - public AddNewExtensionPointResolution(int type) { - super(type); + public AddNewExtensionPointResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddNewExtensionResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddNewExtensionResolution.java index 1fe5504dbc..c56c137569 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddNewExtensionResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddNewExtensionResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2015 IBM Corporation and others. + * Copyright (c) 2008, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.pde.core.IBaseModel; import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase; @@ -25,8 +26,8 @@ import org.eclipse.ui.IEditorPart; public class AddNewExtensionResolution extends AbstractPDEMarkerResolution { - public AddNewExtensionResolution(int type) { - super(type); + public AddNewExtensionResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSingletonToSymbolicName.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSingletonToSymbolicName.java index 68216f85e3..342ebdba6b 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSingletonToSymbolicName.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSingletonToSymbolicName.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.TargetPlatformHelper; import org.eclipse.pde.internal.core.ibundle.IBundle; import org.eclipse.pde.internal.core.ibundle.IManifestHeader; @@ -24,8 +25,8 @@ public class AddSingletonToSymbolicName extends AbstractManifestMarkerResolution private boolean fisDirective; - public AddSingletonToSymbolicName(int type, boolean directive) { - super(type); + public AddSingletonToSymbolicName(int type, boolean directive, IMarker marker) { + super(type, marker); fisDirective = directive; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSourceBuildEntryResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSourceBuildEntryResolution.java index 88fe0f5265..333671f4f3 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSourceBuildEntryResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AddSourceBuildEntryResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -22,6 +22,7 @@ import org.eclipse.osgi.util.NLS; import org.eclipse.pde.core.build.IBuildEntry; import org.eclipse.pde.internal.build.IBuildPropertiesConstants; import org.eclipse.pde.internal.core.builders.PDEBuilderHelper; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.text.build.Build; import org.eclipse.pde.internal.core.text.build.BuildEntry; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -40,6 +41,11 @@ public class AddSourceBuildEntryResolution extends BuildEntryMarkerResolution { @Override protected void createChange(Build build) { try { + fEntry = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_ENTRY); + fToken = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_TOKEN); + } catch (CoreException e) { + } + try { BuildEntry buildEntry = (BuildEntry) build.getEntry(fEntry); boolean unlistedOnly = true; if (buildEntry == null) { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AppendSeperatorBuildEntryResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AppendSeperatorBuildEntryResolution.java index 6c03f0f278..1d04fd0f0b 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AppendSeperatorBuildEntryResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/AppendSeperatorBuildEntryResolution.java @@ -16,6 +16,7 @@ package org.eclipse.pde.internal.ui.correction; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; import org.eclipse.osgi.util.NLS; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.text.build.Build; import org.eclipse.pde.internal.core.text.build.BuildEntry; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -29,6 +30,11 @@ public class AppendSeperatorBuildEntryResolution extends BuildEntryMarkerResolut @Override protected void createChange(Build build) { try { + fEntry = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_ENTRY); + fToken = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_TOKEN); + } catch (CoreException e) { + } + try { BuildEntry buildEntry = (BuildEntry) build.getEntry(fEntry); buildEntry.renameToken(fToken, fToken + '/'); } catch (CoreException e) { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/BuildEntryMarkerResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/BuildEntryMarkerResolution.java index a544807032..2ec55c915e 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/BuildEntryMarkerResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/BuildEntryMarkerResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -26,7 +26,7 @@ public abstract class BuildEntryMarkerResolution extends AbstractPDEMarkerResolu protected String fToken; public BuildEntryMarkerResolution(int type, IMarker marker) { - super(type); + super(type, marker); try { fEntry = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_ENTRY); fToken = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_TOKEN); diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ChooseManifestClassResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ChooseManifestClassResolution.java index ea840a7795..937e34a25c 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ChooseManifestClassResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ChooseManifestClassResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.jdt.ui.IJavaElementSearchConstants; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.ibundle.IManifestHeader; @@ -24,8 +25,8 @@ public class ChooseManifestClassResolution extends AbstractManifestMarkerResolut private String fHeader; - public ChooseManifestClassResolution(int type, String headerName) { - super(type); + public ChooseManifestClassResolution(int type, String headerName, IMarker marker) { + super(type, marker); fHeader = headerName; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ConfigureProblemSeverityForPDECompilerResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ConfigureProblemSeverityForPDECompilerResolution.java index d9b08ea3dd..2a6a81b541 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ConfigureProblemSeverityForPDECompilerResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ConfigureProblemSeverityForPDECompilerResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2017, 2018 IBM Corporation and others. + * Copyright (c) 2017, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -45,12 +45,10 @@ import org.eclipse.ui.dialogs.PreferencesUtil; public class ConfigureProblemSeverityForPDECompilerResolution extends AbstractManifestMarkerResolution implements IJavaCompletionProposal, IMarkerResolutionRelevance { private static final String CONFIGURE_PROBLEM_SEVERITY_DIALOG_ID = "configure_problem_severity_dialog_id_compiler"; //$NON-NLS-1$ - IMarker marker = null; String id = ""; //$NON-NLS-1$ public ConfigureProblemSeverityForPDECompilerResolution(IMarker mker, int type, String key) { - super(type); - marker = mker; + super(type, mker); id = key; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/CreateJREBundleHeaderResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/CreateJREBundleHeaderResolution.java index 46e4f542d1..5965cd41a7 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/CreateJREBundleHeaderResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/CreateJREBundleHeaderResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,14 +13,15 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.ICoreConstants; import org.eclipse.pde.internal.core.text.bundle.BundleModel; import org.eclipse.pde.internal.ui.PDEUIMessages; public class CreateJREBundleHeaderResolution extends AbstractManifestMarkerResolution { - public CreateJREBundleHeaderResolution(int type) { - super(type); + public CreateJREBundleHeaderResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/CreateManifestClassResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/CreateManifestClassResolution.java index fdbb4d6158..6789edb667 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/CreateManifestClassResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/CreateManifestClassResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.core.plugin.IPluginModelBase; @@ -28,8 +29,8 @@ public class CreateManifestClassResolution extends AbstractManifestMarkerResolut private String fHeader; - public CreateManifestClassResolution(int type, String headerName) { - super(type); + public CreateManifestClassResolution(int type, String headerName, IMarker marker) { + super(type, marker); fHeader = headerName; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/DeletePluginBaseResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/DeletePluginBaseResolution.java index 075c4d093b..96ad6322ec 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/DeletePluginBaseResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/DeletePluginBaseResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2015 IBM Corporation and others. + * Copyright (c) 2008, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -29,8 +29,8 @@ import org.eclipse.ui.IMarkerResolution; public class DeletePluginBaseResolution extends AbstractPDEMarkerResolution { - public DeletePluginBaseResolution(int type) { - super(type); + public DeletePluginBaseResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ExternalizeResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ExternalizeResolution.java index c1c259aab1..fef96d750e 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ExternalizeResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ExternalizeResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -128,6 +128,11 @@ public class ExternalizeResolution extends AbstractXMLMarkerResolution { PDEModelUtility.modifyModel(modification, null); } + @Override + public IMarker[] findOtherMarkers(IMarker[] markers) { + return new IMarker[0]; + } + private void checkPropertiesFile(IFile file) { if (!file.exists()) { String propertiesFileComment = ExternalizeStringsOperation.getPropertiesFileComment(file); diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ExternalizeStringsResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ExternalizeStringsResolution.java index c1ba3459ae..ffc765408d 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ExternalizeStringsResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ExternalizeStringsResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2018 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -24,16 +24,22 @@ import org.eclipse.swt.custom.BusyIndicator; public class ExternalizeStringsResolution extends AbstractPDEMarkerResolution { - public ExternalizeStringsResolution(int type) { - super(type); + private boolean hasRun = false; + + public ExternalizeStringsResolution(int type, IMarker marker) { + super(type, marker); } @Override public void run(final IMarker marker) { + // even for multiple error markers, this wizard must be run only once + if (hasRun) + return; BusyIndicator.showWhile(SWTUtil.getStandardDisplay(), () -> { GetNonExternalizedStringsAction fGetExternAction = new GetNonExternalizedStringsAction(); IStructuredSelection selection = new StructuredSelection(marker.getResource().getProject()); fGetExternAction.runGetNonExternalizedStringsAction(selection); + hasRun = true; }); } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/NoLineTerminationResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/NoLineTerminationResolution.java index 50b8b6455e..499b0eb17f 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/NoLineTerminationResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/NoLineTerminationResolution.java @@ -1,11 +1,11 @@ /*******************************************************************************
- * Copyright (c) 2011, 2015 IBM Corporation and others.
- * + * Copyright (c) 2011, 2019 IBM Corporation 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/ - * + * https://www.eclipse.org/legal/epl-2.0/
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction;
+import org.eclipse.core.resources.IMarker;
import org.eclipse.jface.text.*;
import org.eclipse.pde.internal.core.text.bundle.BundleModel;
import org.eclipse.pde.internal.ui.PDEUIMessages;
@@ -28,8 +29,8 @@ public class NoLineTerminationResolution extends AbstractManifestMarkerResolutio * @param type Either {@link AbstractPDEMarkerResolution#REMOVE_TYPE} to delete a whitespace only line
* or {@link AbstractPDEMarkerResolution#CREATE_TYPE} to add a new line
*/
- public NoLineTerminationResolution(int type) {
- super(type);
+ public NoLineTerminationResolution(int type, IMarker marker) {
+ super(type, marker);
}
/**
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OptionalImportPackageResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OptionalImportPackageResolution.java index 0cef8255aa..4f8d84a400 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OptionalImportPackageResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OptionalImportPackageResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.text.bundle.*; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -22,13 +23,14 @@ public class OptionalImportPackageResolution extends AbstractManifestMarkerResol private String fPackageName; - public OptionalImportPackageResolution(int type, String packageName) { - super(type); + public OptionalImportPackageResolution(int type, String packageName, IMarker marker) { + super(type, marker); fPackageName = packageName; } @Override protected void createChange(BundleModel model) { + fPackageName = marker.getAttribute("packageName", (String) null); //$NON-NLS-1$ Bundle bundle = (Bundle) model.getBundle(); ImportPackageHeader header = (ImportPackageHeader) bundle.getManifestHeader(Constants.IMPORT_PACKAGE); if (header != null) { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OptionalRequireBundleResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OptionalRequireBundleResolution.java index 265ab9a866..0496196882 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OptionalRequireBundleResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OptionalRequireBundleResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.text.bundle.*; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -22,13 +23,14 @@ public class OptionalRequireBundleResolution extends AbstractManifestMarkerResol private String fBundleId; - public OptionalRequireBundleResolution(int type, String bundleId) { - super(type); + public OptionalRequireBundleResolution(int type, String bundleId, IMarker marker) { + super(type, marker); fBundleId = bundleId; } @Override protected void createChange(BundleModel model) { + fBundleId= marker.getAttribute("bundleId", (String) null); //$NON-NLS-1$ Bundle bundle = (Bundle) model.getBundle(); RequireBundleHeader header = (RequireBundleHeader) bundle.getManifestHeader(Constants.REQUIRE_BUNDLE); if (header != null) { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeExportPackageResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeExportPackageResolution.java index 724472d4e8..7713ea73f7 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeExportPackageResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeExportPackageResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,14 +13,15 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.text.bundle.BundleModel; import org.eclipse.pde.internal.ui.PDEUIMessages; import org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifest; public class OrganizeExportPackageResolution extends AbstractManifestMarkerResolution { - public OrganizeExportPackageResolution(int type) { - super(type); + public OrganizeExportPackageResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeImportPackageResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeImportPackageResolution.java index a00af87807..1f93d32e4c 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeImportPackageResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeImportPackageResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.text.bundle.BundleModel; import org.eclipse.pde.internal.ui.PDEUIMessages; import org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifest; @@ -21,8 +22,8 @@ public class OrganizeImportPackageResolution extends AbstractManifestMarkerResol private boolean fRemoveImports; - public OrganizeImportPackageResolution(int type, boolean removeImports) { - super(type); + public OrganizeImportPackageResolution(int type, boolean removeImports, IMarker marker) { + super(type, marker); fRemoveImports = removeImports; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeRequireBundleResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeRequireBundleResolution.java index aa5bbb1fd3..20f7beb0f0 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeRequireBundleResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/OrganizeRequireBundleResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.text.bundle.BundleModel; import org.eclipse.pde.internal.ui.PDEUIMessages; import org.eclipse.pde.internal.ui.wizards.tools.OrganizeManifest; @@ -21,8 +22,8 @@ public class OrganizeRequireBundleResolution extends AbstractManifestMarkerResol private boolean fRemoveImports; - public OrganizeRequireBundleResolution(int type, boolean removeImports) { - super(type); + public OrganizeRequireBundleResolution(int type, boolean removeImports, IMarker marker) { + super(type, marker); fRemoveImports = removeImports; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveBuildEntryResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveBuildEntryResolution.java index fd3f5d2fa3..80b533d010 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveBuildEntryResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveBuildEntryResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -16,6 +16,7 @@ package org.eclipse.pde.internal.ui.correction; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; import org.eclipse.osgi.util.NLS; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.text.build.Build; import org.eclipse.pde.internal.core.text.build.BuildEntry; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -36,6 +37,11 @@ public class RemoveBuildEntryResolution extends BuildEntryMarkerResolution { @Override protected void createChange(Build build) { try { + fEntry = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_ENTRY); + fToken = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_TOKEN); + } catch (CoreException e) { + } + try { BuildEntry buildEntry = (BuildEntry) build.getEntry(fEntry); if (buildEntry == null) return; diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveExportPackageResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveExportPackageResolution.java index 5bb0ae0950..08ca7839e3 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveExportPackageResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveExportPackageResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.text.bundle.*; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -22,13 +23,14 @@ public class RemoveExportPackageResolution extends AbstractManifestMarkerResolut String fPackage; - public RemoveExportPackageResolution(int type, String pkgName) { - super(type); + public RemoveExportPackageResolution(int type, String pkgName, IMarker marker) { + super(type, marker); fPackage = pkgName; } @Override protected void createChange(BundleModel model) { + fPackage = marker.getAttribute("packageName", (String) null); //$NON-NLS-1$ Bundle bundle = (Bundle) model.getBundle(); ExportPackageHeader header = (ExportPackageHeader) bundle.getManifestHeader(Constants.EXPORT_PACKAGE); if (header != null) diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveImportExportServicesResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveImportExportServicesResolution.java index 7d375dd671..396ba561b3 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveImportExportServicesResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveImportExportServicesResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2015 IBM Corporation and others. + * Copyright (c) 2006, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.ibundle.IManifestHeader; import org.eclipse.pde.internal.core.text.bundle.Bundle; @@ -23,8 +24,8 @@ public class RemoveImportExportServicesResolution extends AbstractManifestMarker String fServiceHeader; - public RemoveImportExportServicesResolution(int type, String serviceHeader) { - super(type); + public RemoveImportExportServicesResolution(int type, String serviceHeader, IMarker marker) { + super(type, marker); fServiceHeader = serviceHeader; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveImportPackageResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveImportPackageResolution.java index cc2fad7671..450f856bde 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveImportPackageResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveImportPackageResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.text.bundle.*; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -22,13 +23,14 @@ public class RemoveImportPackageResolution extends AbstractManifestMarkerResolut private String fPkgName; - public RemoveImportPackageResolution(int type, String packageName) { - super(type); + public RemoveImportPackageResolution(int type, String packageName, IMarker marker) { + super(type, marker); fPkgName = packageName; } @Override protected void createChange(BundleModel model) { + fPkgName = marker.getAttribute("packageName", (String) null); //$NON-NLS-1$ Bundle bundle = (Bundle) model.getBundle(); ImportPackageHeader header = (ImportPackageHeader) bundle.getManifestHeader(Constants.IMPORT_PACKAGE); if (header != null) diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveInternalDirectiveEntryResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveInternalDirectiveEntryResolution.java index 19be3644c1..448b481747 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveInternalDirectiveEntryResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveInternalDirectiveEntryResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2015 IBM Corporation and others. + * Copyright (c) 2006, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.ibundle.IManifestHeader; import org.eclipse.pde.internal.core.text.bundle.*; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -22,13 +23,14 @@ public class RemoveInternalDirectiveEntryResolution extends AbstractManifestMark private String fPackageName; - public RemoveInternalDirectiveEntryResolution(int type, String packageName) { - super(type); + public RemoveInternalDirectiveEntryResolution(int type, String packageName, IMarker marker) { + super(type, marker); fPackageName = packageName; } @Override protected void createChange(BundleModel model) { + fPackageName= marker.getAttribute("packageName", (String) null); //$NON-NLS-1$ IManifestHeader header = model.getBundle().getManifestHeader(Constants.EXPORT_PACKAGE); if (header instanceof ExportPackageHeader) { ExportPackageObject exportedPackage = ((ExportPackageHeader) header).getPackage(fPackageName); diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveLazyLoadingDirectiveResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveLazyLoadingDirectiveResolution.java index 7da2d3051b..d568a6577d 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveLazyLoadingDirectiveResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveLazyLoadingDirectiveResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2015 IBM Corporation and others. + * Copyright (c) 2008, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -14,6 +14,8 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; +import org.eclipse.pde.internal.core.ICoreConstants; import org.eclipse.pde.internal.core.text.bundle.BundleModel; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -21,13 +23,14 @@ public class RemoveLazyLoadingDirectiveResolution extends AbstractManifestMarker private String fHeader = null; - public RemoveLazyLoadingDirectiveResolution(int type, String currentHeader) { - super(type); + public RemoveLazyLoadingDirectiveResolution(int type, String currentHeader, IMarker marker) { + super(type, marker); fHeader = currentHeader; } @Override protected void createChange(BundleModel model) { + fHeader = marker.getAttribute("header", ICoreConstants.ECLIPSE_LAZYSTART) ;//$NON-NLS-1$ model.getBundle().setHeader(fHeader, null); } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveRequireBundleResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveRequireBundleResolution.java index feedb25469..c2cee3ae7b 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveRequireBundleResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveRequireBundleResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.text.bundle.*; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -22,13 +23,14 @@ public class RemoveRequireBundleResolution extends AbstractManifestMarkerResolut private String fBundleId; - public RemoveRequireBundleResolution(int type, String bundleID) { - super(type); + public RemoveRequireBundleResolution(int type, String bundleID, IMarker marker) { + super(type, marker); fBundleId = bundleID; } @Override protected void createChange(BundleModel model) { + fBundleId = marker.getAttribute("bundleId", null); //$NON-NLS-1$ Bundle bundle = (Bundle) model.getBundle(); RequireBundleHeader header = (RequireBundleHeader) bundle.getManifestHeader(Constants.REQUIRE_BUNDLE); if (header != null) diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveSeperatorBuildEntryResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveSeperatorBuildEntryResolution.java index de605be4a2..7992c5307b 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveSeperatorBuildEntryResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveSeperatorBuildEntryResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -16,6 +16,7 @@ package org.eclipse.pde.internal.ui.correction; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; import org.eclipse.osgi.util.NLS; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.text.build.Build; import org.eclipse.pde.internal.core.text.build.BuildEntry; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -29,6 +30,11 @@ public class RemoveSeperatorBuildEntryResolution extends BuildEntryMarkerResolut @Override protected void createChange(Build build) { try { + fEntry = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_ENTRY); + fToken = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_TOKEN); + } catch (CoreException e) { + } + try { BuildEntry buildEntry = (BuildEntry) build.getEntry(fEntry); buildEntry.renameToken(fToken, fToken.substring(0, fToken.length() - 1)); } catch (CoreException e) { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveStaticProjectReferences.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveStaticProjectReferences.java index f13c5a4bdb..bfc27e2b7b 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveStaticProjectReferences.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveStaticProjectReferences.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -20,8 +20,8 @@ import org.eclipse.pde.internal.ui.PDEUIMessages; public class RemoveStaticProjectReferences extends AbstractPDEMarkerResolution { - public RemoveStaticProjectReferences(int type) { - super(type); + public RemoveStaticProjectReferences(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveUnknownExecEnvironments.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveUnknownExecEnvironments.java index 2d9a9363d7..88202a2679 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveUnknownExecEnvironments.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RemoveUnknownExecEnvironments.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.jdt.launching.JavaRuntime; import org.eclipse.jdt.launching.environments.IExecutionEnvironment; import org.eclipse.pde.internal.core.ibundle.IManifestHeader; @@ -22,8 +23,8 @@ import org.osgi.framework.Constants; public class RemoveUnknownExecEnvironments extends AbstractManifestMarkerResolution { - public RemoveUnknownExecEnvironments(int type) { - super(type); + public RemoveUnknownExecEnvironments(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RenameProvidePackageResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RenameProvidePackageResolution.java index b47a1b8f8f..4acceba1e4 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RenameProvidePackageResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/RenameProvidePackageResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2015 IBM Corporation and others. + * Copyright (c) 2007, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -14,6 +14,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.ICoreConstants; import org.eclipse.pde.internal.core.text.bundle.BundleModel; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -21,8 +22,8 @@ import org.osgi.framework.Constants; public class RenameProvidePackageResolution extends AbstractManifestMarkerResolution { - public RenameProvidePackageResolution(int type) { - super(type); + public RenameProvidePackageResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ReplaceBuildEntryResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ReplaceBuildEntryResolution.java index 692b8fec90..b00a84a779 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ReplaceBuildEntryResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ReplaceBuildEntryResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2015 IBM Corporation and others. + * Copyright (c) 2009, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -16,6 +16,7 @@ package org.eclipse.pde.internal.ui.correction; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; import org.eclipse.osgi.util.NLS; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.text.build.Build; import org.eclipse.pde.internal.core.text.build.BuildEntry; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -34,6 +35,11 @@ public class ReplaceBuildEntryResolution extends BuildEntryMarkerResolution { @Override protected void createChange(Build build) { try { + fEntry = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_ENTRY); + fToken = (String) marker.getAttribute(PDEMarkerFactory.BK_BUILD_TOKEN); + } catch (CoreException e) { + } + try { BuildEntry buildEntry = (BuildEntry) build.getEntry(fEntry); if (buildEntry == null) return; diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ResolutionGenerator.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ResolutionGenerator.java index 94b477184f..49c75e2010 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ResolutionGenerator.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ResolutionGenerator.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2018 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -53,18 +53,18 @@ public class ResolutionGenerator implements IMarkerResolutionGenerator2 { case PDEMarkerFactory.M_DEPRECATED_AUTOSTART : // if targetVersion <= 3.3, we can add Eclipse-LazyStart header even if previous header's value was false. We can't do this for 3.4+ since Bundle-AcativationPolicy does not have a "false" value. if (marker.getAttribute(PDEMarkerFactory.ATTR_CAN_ADD, true) || TargetPlatformHelper.getTargetVersion() <= 3.3) - return new IMarkerResolution[] {new UpdateActivationResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker.getAttribute(PDEMarkerFactory.ATTR_HEADER, ICoreConstants.ECLIPSE_AUTOSTART)), new AddActivationHeaderResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker.getAttribute("header", ICoreConstants.ECLIPSE_AUTOSTART))}; //$NON-NLS-1$ - return new IMarkerResolution[] {new UpdateActivationResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker.getAttribute(PDEMarkerFactory.ATTR_HEADER, ICoreConstants.ECLIPSE_AUTOSTART))}; + return new IMarkerResolution[] {new UpdateActivationResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker.getAttribute(PDEMarkerFactory.ATTR_HEADER, ICoreConstants.ECLIPSE_AUTOSTART),marker), new AddActivationHeaderResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker.getAttribute("header", ICoreConstants.ECLIPSE_AUTOSTART), marker)}; //$NON-NLS-1$ + return new IMarkerResolution[] {new UpdateActivationResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker.getAttribute(PDEMarkerFactory.ATTR_HEADER, ICoreConstants.ECLIPSE_AUTOSTART), marker)}; case PDEMarkerFactory.M_JAVA_PACKAGE__PORTED : - return new IMarkerResolution[] {new CreateJREBundleHeaderResolution(AbstractPDEMarkerResolution.CREATE_TYPE)}; + return new IMarkerResolution[] {new CreateJREBundleHeaderResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker)}; case PDEMarkerFactory.M_SINGLETON_DIR_NOT_SET : - return new IMarkerResolution[] {new AddSingletonToSymbolicName(AbstractPDEMarkerResolution.RENAME_TYPE, true)}; + return new IMarkerResolution[] {new AddSingletonToSymbolicName(AbstractPDEMarkerResolution.RENAME_TYPE, true, marker)}; case PDEMarkerFactory.M_SINGLETON_ATT_NOT_SET : - return new IMarkerResolution[] {new AddSingletonToSymbolicName(AbstractPDEMarkerResolution.RENAME_TYPE, false)}; + return new IMarkerResolution[] {new AddSingletonToSymbolicName(AbstractPDEMarkerResolution.RENAME_TYPE, false,marker)}; case PDEMarkerFactory.M_SINGLETON_DIR_NOT_SUPPORTED : - return new IMarkerResolution[] {new UnsupportedSingletonDirectiveResolution(AbstractPDEMarkerResolution.RENAME_TYPE)}; + return new IMarkerResolution[] {new UnsupportedSingletonDirectiveResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker)}; case PDEMarkerFactory.M_PROJECT_BUILD_ORDER_ENTRIES : - return new IMarkerResolution[] {new RemoveStaticProjectReferences(AbstractPDEMarkerResolution.REMOVE_TYPE)}; + return new IMarkerResolution[] {new RemoveStaticProjectReferences(AbstractPDEMarkerResolution.REMOVE_TYPE, marker)}; case PDEMarkerFactory.M_EXPORT_PKG_NOT_EXIST : return getUnresolvedExportProposals(marker); case PDEMarkerFactory.M_IMPORT_PKG_NOT_AVAILABLE : @@ -72,21 +72,21 @@ public class ResolutionGenerator implements IMarkerResolutionGenerator2 { case PDEMarkerFactory.M_REQ_BUNDLE_NOT_AVAILABLE : return getUnresolvedBundle(marker); case PDEMarkerFactory.M_UNKNOWN_ACTIVATOR : - return new IMarkerResolution[] {new CreateManifestClassResolution(AbstractPDEMarkerResolution.CREATE_TYPE, Constants.BUNDLE_ACTIVATOR), new ChooseManifestClassResolution(AbstractPDEMarkerResolution.RENAME_TYPE, Constants.BUNDLE_ACTIVATOR)}; + return new IMarkerResolution[] {new CreateManifestClassResolution(AbstractPDEMarkerResolution.CREATE_TYPE, Constants.BUNDLE_ACTIVATOR, marker), new ChooseManifestClassResolution(AbstractPDEMarkerResolution.RENAME_TYPE, Constants.BUNDLE_ACTIVATOR, marker)}; case PDEMarkerFactory.M_UNKNOWN_CLASS : - return new IMarkerResolution[] {new CreateManifestClassResolution(AbstractPDEMarkerResolution.CREATE_TYPE, ICoreConstants.PLUGIN_CLASS), new ChooseManifestClassResolution(AbstractPDEMarkerResolution.RENAME_TYPE, ICoreConstants.PLUGIN_CLASS)}; + return new IMarkerResolution[] {new CreateManifestClassResolution(AbstractPDEMarkerResolution.CREATE_TYPE, ICoreConstants.PLUGIN_CLASS, marker), new ChooseManifestClassResolution(AbstractPDEMarkerResolution.RENAME_TYPE, ICoreConstants.PLUGIN_CLASS, marker)}; case PDEMarkerFactory.M_DIRECTIVE_HAS_NO_EFFECT : return getRemoveInternalDirectiveResolution(marker); case PDEMarkerFactory.M_MISMATCHED_EXEC_ENV : - return new IMarkerResolution[] {new UpdateClasspathResolution(AbstractPDEMarkerResolution.RENAME_TYPE)}; + return new IMarkerResolution[] {new UpdateClasspathResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker)}; case PDEMarkerFactory.M_UNKNOW_EXEC_ENV : - return new IMarkerResolution[] {new RemoveUnknownExecEnvironments(AbstractPDEMarkerResolution.REMOVE_TYPE)}; + return new IMarkerResolution[] {new RemoveUnknownExecEnvironments(AbstractPDEMarkerResolution.REMOVE_TYPE,marker)}; case PDEMarkerFactory.M_DEPRECATED_IMPORT_SERVICE : - return new IMarkerResolution[] {new RemoveImportExportServicesResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, ICoreConstants.IMPORT_SERVICE)}; + return new IMarkerResolution[] {new RemoveImportExportServicesResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, ICoreConstants.IMPORT_SERVICE, marker)}; case PDEMarkerFactory.M_DEPRECATED_EXPORT_SERVICE : - return new IMarkerResolution[] {new RemoveImportExportServicesResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, ICoreConstants.EXPORT_SERVICE)}; + return new IMarkerResolution[] {new RemoveImportExportServicesResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, ICoreConstants.EXPORT_SERVICE, marker)}; case PDEMarkerFactory.M_UNECESSARY_DEP : - return new IMarkerResolution[] {new RemoveRequireBundleResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, marker.getAttribute("bundleId", null))}; //$NON-NLS-1$ + return new IMarkerResolution[] {new RemoveRequireBundleResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, marker.getAttribute("bundleId", null), marker)}; //$NON-NLS-1$ case PDEMarkerFactory.M_MISSING_EXPORT_PKGS : return new IMarkerResolution[] { new AddExportPackageMarkerResolution(marker,AbstractPDEMarkerResolution.CREATE_TYPE, marker.getAttribute("packages", null)) }; //$NON-NLS-1$ case PDEMarkerFactory.B_REMOVE_SLASH_FILE_ENTRY : @@ -106,29 +106,29 @@ public class ResolutionGenerator implements IMarkerResolutionGenerator2 { case PDEMarkerFactory.P_ILLEGAL_XML_NODE : return new IMarkerResolution[] {new RemoveNodeXMLResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, marker)}; case PDEMarkerFactory.P_UNTRANSLATED_NODE : - return new IMarkerResolution[] {new ExternalizeResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker), new ExternalizeStringsResolution(AbstractPDEMarkerResolution.RENAME_TYPE)}; + return new IMarkerResolution[] {new ExternalizeResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker), new ExternalizeStringsResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker)}; case PDEMarkerFactory.P_UNKNOWN_CLASS : return new IMarkerResolution[] {new CreateClassXMLResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker), new ChooseClassXMLResolution(AbstractPDEMarkerResolution.RENAME_TYPE, marker)}; case PDEMarkerFactory.P_USELESS_FILE : - return new IMarkerResolution[] {new DeletePluginBaseResolution(AbstractPDEMarkerResolution.REMOVE_TYPE), new AddNewExtensionResolution(AbstractPDEMarkerResolution.CREATE_TYPE), new AddNewExtensionPointResolution(AbstractPDEMarkerResolution.CREATE_TYPE)}; + return new IMarkerResolution[] {new DeletePluginBaseResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, marker), new AddNewExtensionResolution(AbstractPDEMarkerResolution.CREATE_TYPE,marker), new AddNewExtensionPointResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker)}; case PDEMarkerFactory.M_DEPRECATED_PROVIDE_PACKAGE : - return new IMarkerResolution[] {new RenameProvidePackageResolution(AbstractPDEMarkerResolution.RENAME_TYPE)}; + return new IMarkerResolution[] {new RenameProvidePackageResolution(AbstractPDEMarkerResolution.RENAME_TYPE,marker)}; case PDEMarkerFactory.M_EXECUTION_ENVIRONMENT_NOT_SET : - return new IMarkerResolution[] {new AddDefaultExecutionEnvironmentResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker.getAttribute("ee_id", null))}; //$NON-NLS-1$ + return new IMarkerResolution[] {new AddDefaultExecutionEnvironmentResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker.getAttribute("ee_id", null),marker)}; //$NON-NLS-1$ case PDEMarkerFactory.M_MISSING_BUNDLE_CLASSPATH_ENTRY : - return new IMarkerResolution[] {new AddBundleClassPathMarkerResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker.getAttribute("entry", null))}; //$NON-NLS-1$ + return new IMarkerResolution[] {new AddBundleClassPathMarkerResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker.getAttribute("entry", null), marker)}; //$NON-NLS-1$ case PDEMarkerFactory.M_LAZYLOADING_HAS_NO_EFFECT : - return new IMarkerResolution[] {new RemoveLazyLoadingDirectiveResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, marker.getAttribute("header", ICoreConstants.ECLIPSE_LAZYSTART))}; //$NON-NLS-1$ + return new IMarkerResolution[] {new RemoveLazyLoadingDirectiveResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, marker.getAttribute("header", ICoreConstants.ECLIPSE_LAZYSTART), marker)}; //$NON-NLS-1$ case PDEMarkerFactory.M_NO_LINE_TERMINATION : if (marker.getAttribute(PDEMarkerFactory.ATTR_HAS_CONTENT, true)) { - return new IMarkerResolution[] {new NoLineTerminationResolution(AbstractPDEMarkerResolution.CREATE_TYPE)}; + return new IMarkerResolution[] {new NoLineTerminationResolution(AbstractPDEMarkerResolution.CREATE_TYPE,marker)}; } - return new IMarkerResolution[] {new NoLineTerminationResolution(AbstractPDEMarkerResolution.REMOVE_TYPE)}; + return new IMarkerResolution[] {new NoLineTerminationResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, marker)}; case PDEMarkerFactory.M_R4_SYNTAX_IN_R3_BUNDLE : - return new IMarkerResolution[] {new AddBundleManifestVersionResolution()}; + return new IMarkerResolution[] {new AddBundleManifestVersionResolution(marker)}; case PDEMarkerFactory.M_SERVICECOMPONENT_MISSING_LAZY: return new IMarkerResolution[] { - new AddActivationPolicyResolution(AbstractPDEMarkerResolution.CREATE_TYPE) }; + new AddActivationPolicyResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker) }; case PDEMarkerFactory.M_NO_AUTOMATIC_MODULE: return new IMarkerResolution[] { new AddAutomaticModuleResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker) }; @@ -187,7 +187,7 @@ public class ResolutionGenerator implements IMarkerResolutionGenerator2 { if (packageName != null) { IResource res = marker.getResource(); if (res != null) - return new IMarkerResolution[] {new RemoveInternalDirectiveEntryResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, packageName)}; + return new IMarkerResolution[] {new RemoveInternalDirectiveEntryResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, packageName,marker)}; } return NO_RESOLUTIONS; } @@ -197,7 +197,7 @@ public class ResolutionGenerator implements IMarkerResolutionGenerator2 { if (packageName != null) { IResource res = marker.getResource(); if (res != null) - return new IMarkerResolution[] {new RemoveExportPackageResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, packageName)}; + return new IMarkerResolution[] {new RemoveExportPackageResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, packageName, marker)}; } return NO_RESOLUTIONS; } @@ -209,9 +209,9 @@ public class ResolutionGenerator implements IMarkerResolutionGenerator2 { boolean optionalPkg = marker.getAttribute("optional", false); //$NON-NLS-1$ if (optionalPkg) - return new IMarkerResolution[] {new RemoveImportPackageResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, packageName), new ConfigureTargetPlatformResolution()}; + return new IMarkerResolution[] {new RemoveImportPackageResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, packageName, marker), new ConfigureTargetPlatformResolution()}; - return new IMarkerResolution[] {new RemoveImportPackageResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, packageName), new OptionalImportPackageResolution(AbstractPDEMarkerResolution.RENAME_TYPE, packageName), new ConfigureTargetPlatformResolution()}; + return new IMarkerResolution[] {new RemoveImportPackageResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, packageName, marker), new OptionalImportPackageResolution(AbstractPDEMarkerResolution.RENAME_TYPE, packageName, marker), new ConfigureTargetPlatformResolution()}; } private IMarkerResolution[] getUnresolvedBundle(IMarker marker) { @@ -221,12 +221,12 @@ public class ResolutionGenerator implements IMarkerResolutionGenerator2 { boolean optionalBundle = marker.getAttribute("optional", false); //$NON-NLS-1$ if (optionalBundle) { - return new IMarkerResolution[] {new RemoveRequireBundleResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, bundleId), new ConfigureTargetPlatformResolution()}; + return new IMarkerResolution[] {new RemoveRequireBundleResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, bundleId, marker), new ConfigureTargetPlatformResolution()}; } // IPreferenceStore store = PDEPlugin.getDefault().getPreferenceStore(); // boolean removeImports = store.getString(IPreferenceConstants.PROP_RESOLVE_IMPORTS).equals(IPreferenceConstants.VALUE_REMOVE_IMPORT); - return new IMarkerResolution[] {new RemoveRequireBundleResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, bundleId), new OptionalRequireBundleResolution(AbstractPDEMarkerResolution.RENAME_TYPE, bundleId), new ConfigureTargetPlatformResolution() + return new IMarkerResolution[] {new RemoveRequireBundleResolution(AbstractPDEMarkerResolution.REMOVE_TYPE, bundleId, marker), new OptionalRequireBundleResolution(AbstractPDEMarkerResolution.RENAME_TYPE, bundleId, marker), new ConfigureTargetPlatformResolution() // new OrganizeRequireBundleResolution(AbstractPDEMarkerResolution.RENAME_TYPE, removeImports) }; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UnsupportedSingletonDirectiveResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UnsupportedSingletonDirectiveResolution.java index 5f00554c47..9489c325c0 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UnsupportedSingletonDirectiveResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UnsupportedSingletonDirectiveResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.correction; +import org.eclipse.core.resources.IMarker; import org.eclipse.pde.internal.core.ibundle.IBundle; import org.eclipse.pde.internal.core.ibundle.IManifestHeader; import org.eclipse.pde.internal.core.text.bundle.*; @@ -21,8 +22,8 @@ import org.osgi.framework.Constants; public class UnsupportedSingletonDirectiveResolution extends AbstractManifestMarkerResolution { - public UnsupportedSingletonDirectiveResolution(int type) { - super(type); + public UnsupportedSingletonDirectiveResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UpdateActivationResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UpdateActivationResolution.java index 2098fcdd38..bade7ac4cc 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UpdateActivationResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UpdateActivationResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2015 IBM Corporation and others. + * Copyright (c) 2008, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -14,9 +14,11 @@ package org.eclipse.pde.internal.ui.correction; import java.util.Map; +import org.eclipse.core.resources.IMarker; import org.eclipse.osgi.util.NLS; import org.eclipse.pde.internal.core.ICoreConstants; import org.eclipse.pde.internal.core.TargetPlatformHelper; +import org.eclipse.pde.internal.core.builders.PDEMarkerFactory; import org.eclipse.pde.internal.core.ibundle.IManifestHeader; import org.eclipse.pde.internal.core.text.bundle.*; import org.eclipse.pde.internal.ui.PDEUIMessages; @@ -26,13 +28,14 @@ public class UpdateActivationResolution extends AbstractManifestMarkerResolution private String fHeader = null; - public UpdateActivationResolution(int type, String currentHeader) { - super(type); + public UpdateActivationResolution(int type, String currentHeader, IMarker marker) { + super(type, marker); fHeader = currentHeader; } @Override protected void createChange(BundleModel model) { + fHeader = marker.getAttribute(PDEMarkerFactory.ATTR_HEADER, ICoreConstants.ECLIPSE_AUTOSTART); if (TargetPlatformHelper.getTargetVersion() >= 3.4) { // get the header we wish to replace LazyStartHeader header = (LazyStartHeader) model.getBundle().getManifestHeader(fHeader); diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UpdateClasspathResolution.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UpdateClasspathResolution.java index ee25073e03..49f21123fa 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UpdateClasspathResolution.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/UpdateClasspathResolution.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2015 IBM Corporation and others. + * Copyright (c) 2005, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -24,8 +24,8 @@ import org.eclipse.pde.internal.ui.PDEUIMessages; public class UpdateClasspathResolution extends AbstractPDEMarkerResolution { - public UpdateClasspathResolution(int type) { - super(type); + public UpdateClasspathResolution(int type, IMarker marker) { + super(type, marker); } @Override diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/RepositoryReferenceSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/RepositoryReferenceSection.java index c0eacc75ef..e5b9f96abd 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/RepositoryReferenceSection.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/RepositoryReferenceSection.java @@ -441,7 +441,7 @@ public class RepositoryReferenceSection extends TableSection { combo.addSelectionListener(widgetSelectedAdapter(e -> { item.setText(1, combo.getText()); try { - repo.setEnabled(Boolean.valueOf(combo.getText()).booleanValue()); + repo.setEnabled(Boolean.parseBoolean(combo.getText())); } catch (CoreException ex) { PDEPlugin.log(ex); } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/contentassist/ManifestContentAssistProcessor.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/contentassist/ManifestContentAssistProcessor.java index fbab565902..cee2e4770e 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/contentassist/ManifestContentAssistProcessor.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/contentassist/ManifestContentAssistProcessor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2017 IBM Corporation and others. + * Copyright (c) 2006, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -51,14 +51,6 @@ public class ManifestContentAssistProcessor extends TypePackageCompletionProcess private static final String[] fHeader = {Constants.BUNDLE_ACTIVATIONPOLICY, Constants.BUNDLE_ACTIVATOR, Constants.BUNDLE_CATEGORY, Constants.BUNDLE_CLASSPATH, Constants.BUNDLE_CONTACTADDRESS, Constants.BUNDLE_COPYRIGHT, Constants.BUNDLE_DESCRIPTION, Constants.BUNDLE_DOCURL, Constants.BUNDLE_LOCALIZATION, Constants.BUNDLE_MANIFESTVERSION, Constants.BUNDLE_NAME, Constants.BUNDLE_NATIVECODE, Constants.BUNDLE_REQUIREDEXECUTIONENVIRONMENT, Constants.BUNDLE_SYMBOLICNAME, Constants.BUNDLE_UPDATELOCATION, Constants.BUNDLE_VENDOR, Constants.BUNDLE_VERSION, Constants.DYNAMICIMPORT_PACKAGE, ICoreConstants.ECLIPSE_BUDDY_POLICY, ICoreConstants.ECLIPSE_BUNDLE_SHAPE, ICoreConstants.ECLIPSE_GENERIC_CAPABILITY, ICoreConstants.ECLIPSE_GENERIC_REQUIRED, ICoreConstants.ECLIPSE_LAZYSTART, ICoreConstants.PLATFORM_FILTER, ICoreConstants.ECLIPSE_REGISTER_BUDDY, ICoreConstants.ECLIPSE_SOURCE_REFERENCES, Constants.EXPORT_PACKAGE, ICoreConstants.EXPORT_SERVICE, Constants.FRAGMENT_HOST, Constants.IMPORT_PACKAGE, ICoreConstants.IMPORT_SERVICE, Constants.PROVIDE_CAPABILITY, Constants.REQUIRE_BUNDLE, Constants.REQUIRE_CAPABILITY}; - private static final String BAUMAN = "Brian Bauman"; //$NON-NLS-1$ - private static final String ANISZCZYK = "Chris Aniszczyk"; //$NON-NLS-1$ - private static final String LASOCKI_BICZYSKO = "Janek Lasocki-Biczysko"; //$NON-NLS-1$ - private static final String PAWLOWSKI = "Mike Pawlowski"; //$NON-NLS-1$ - private static final String MELHEM = "Wassim Melhem"; //$NON-NLS-1$ - private static final String WINDATT = "Curtis Windatt"; //$NON-NLS-1$ - - private static final String[] fNames = {BAUMAN, ANISZCZYK, LASOCKI_BICZYSKO, PAWLOWSKI, MELHEM, WINDATT}; private static final char[] fAutoActivationChars = { ':', ' ', ',', '.', ';', '=' }; @@ -245,23 +237,6 @@ public class ManifestContentAssistProcessor extends TypePackageCompletionProcess */ protected ICompletionProposal[] handleBundleNameCompletion(String currentValue, int offset) { currentValue = removeLeadingSpaces(currentValue); - int length = currentValue.length(); - - // only show when there is no bundle name - if (length == 0) { - return new ICompletionProposal[] {new TypeCompletionProposal(BAUMAN, null, BAUMAN, offset - length, length), new TypeCompletionProposal(ANISZCZYK, null, ANISZCZYK, offset - length, length), new TypeCompletionProposal(LASOCKI_BICZYSKO, null, LASOCKI_BICZYSKO, offset - length, length), new TypeCompletionProposal(PAWLOWSKI, null, PAWLOWSKI, offset - length, length), new TypeCompletionProposal(MELHEM, null, MELHEM, offset - length, length), new TypeCompletionProposal(WINDATT, null, WINDATT, offset - length, length)}; - } - - // only show when we are trying to complete a name - for (String fName : fNames) { - StringTokenizer tokenizer = new StringTokenizer(currentValue, " "); //$NON-NLS-1$ - while (tokenizer.hasMoreTokens()) { - String token = tokenizer.nextToken(); - if (fName.regionMatches(true, 0, token, 0, token.length())) { - return new ICompletionProposal[] {new TypeCompletionProposal(fName, null, fName, offset - token.length(), token.length())}; - } - } - } return new ICompletionProposal[0]; } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/JavaAttributeWizardPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/JavaAttributeWizardPage.java index 694fb06467..2d95577735 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/JavaAttributeWizardPage.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/JavaAttributeWizardPage.java @@ -112,8 +112,8 @@ public class JavaAttributeWizardPage extends NewClassWizardPage { IJavaElement element = javaProject.findElement(new Path(fileName)); if (element == null) return null; - if (element instanceof IClassFile) { - type = ((IClassFile) element).getType(); + if (element instanceof IOrdinaryClassFile) { + type = ((IOrdinaryClassFile) element).getType(); } else if (element instanceof ICompilationUnit) { IType[] types = ((ICompilationUnit) element).getTypes(); type = types[0]; diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/GeneralInfoSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/GeneralInfoSection.java index 00bce8cc8a..55fa40bb0a 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/GeneralInfoSection.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/GeneralInfoSection.java @@ -204,7 +204,7 @@ public class GeneralInfoSection extends PDESection { } else if (prop.equals(IProduct.P_VERSION)) { fVersionEntry.setValue(e.getNewValue().toString(), true); } else if (prop.equals(IProduct.P_INCLUDE_LAUNCHERS)) { - fLaunchersButton.setSelection(Boolean.valueOf(e.getNewValue().toString()).booleanValue()); + fLaunchersButton.setSelection(Boolean.parseBoolean(e.getNewValue().toString())); } } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PluginConfigurationSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PluginConfigurationSection.java index 80c868b6c3..343d3ddb78 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PluginConfigurationSection.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/PluginConfigurationSection.java @@ -478,7 +478,7 @@ public class PluginConfigurationSection extends TableSection { combo.pack(); combo.addSelectionListener(widgetSelectedAdapter(e -> { item.setText(2, combo.getText()); - ppc.setAutoStart(Boolean.valueOf(combo.getText()).booleanValue()); + ppc.setAutoStart(Boolean.parseBoolean(combo.getText())); })); fAutoColumnEditor.setEditor(combo, item, 2); } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/UpdatesSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/UpdatesSection.java index 938c10405d..73b50a1713 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/UpdatesSection.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/UpdatesSection.java @@ -433,7 +433,7 @@ public class UpdatesSection extends TableSection { combo.pack(); combo.addSelectionListener(widgetSelectedAdapter(e -> { item.setText(1, combo.getText()); - repo.setEnabled(Boolean.valueOf(combo.getText()).booleanValue()); + repo.setEnabled(Boolean.parseBoolean(combo.getText())); })); fEnabledColumnEditor.setEditor(combo, item, 1); } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/TargetEditor.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/TargetEditor.java index aef4fd391f..3b283f6bf6 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/TargetEditor.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/TargetEditor.java @@ -16,15 +16,13 @@ *******************************************************************************/ package org.eclipse.pde.internal.ui.editor.targetdefinition; -import java.io.File; -import java.io.IOException; +import java.io.*; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.Objects; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; -import org.eclipse.core.filebuffers.FileBuffers; -import org.eclipse.core.filebuffers.ITextFileBufferManager; import org.eclipse.core.resources.*; import org.eclipse.core.runtime.*; import org.eclipse.core.runtime.jobs.Job; @@ -99,8 +97,8 @@ public class TargetEditor extends FormEditor { protected void pageChange(int newPageIndex) { try { if (newPageIndex != fSourceTabIndex && getCurrentPage() == fSourceTabIndex) { - ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); - TargetDefinitionPersistenceHelper.initFromXML(getTarget(), manager.getTextFileBuffer(fTargetDocument)); + InputStream stream = new ByteArrayInputStream(fTargetDocument.get().getBytes(StandardCharsets.UTF_8)); + TargetDefinitionPersistenceHelper.initFromXML(getTarget(), stream); if (!getTarget().isResolved()) { getTargetChangedListener().contentsChanged(getTarget(), this, true, false); } @@ -524,11 +522,11 @@ public class TargetEditor extends FormEditor { } private void updateTextualEditor() { - ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager(); fTargetDocument.removeDocumentListener(fTargetDocumentListener); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { - TargetDefinitionPersistenceHelper.persistXML(getTarget(), manager.getTextFileBuffer(fTargetDocument)); - fTextualEditor.getDocumentProvider().resetDocument(getEditorInput()); + TargetDefinitionPersistenceHelper.persistXML(getTarget(), byteArrayOutputStream); + fTargetDocument.set(new String(byteArrayOutputStream.toByteArray())); } catch (CoreException | ParserConfigurationException | TransformerException | IOException | SAXException e) { PDEPlugin.log(e); } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/PDECompilersConfigurationBlock.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/PDECompilersConfigurationBlock.java index 13e4a419d7..dffb9ce2ed 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/PDECompilersConfigurationBlock.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/PDECompilersConfigurationBlock.java @@ -450,7 +450,7 @@ public class PDECompilersConfigurationBlock extends ConfigurationBlock { } else if (control instanceof Button) { Button button = (Button) control; ControlData data = (ControlData) button.getData(); - button.setSelection(Boolean.valueOf(data.key.getStoredValue(fLookupOrder, false, fManager)).booleanValue()); + button.setSelection(Boolean.parseBoolean(data.key.getStoredValue(fLookupOrder, false, fManager))); } else if (control instanceof Text) { Text text = (Text) control; ControlData data = (ControlData) text.getData(); @@ -591,7 +591,7 @@ public class PDECompilersConfigurationBlock extends ConfigurationBlock { Button button = SWTFactory.createCheckButton(parent, label, null, false, 2); ControlData data = new ControlData(key, new String[] {Boolean.toString(false)}); button.setData(data); - button.setSelection(Boolean.valueOf(data.key.getStoredValue(fLookupOrder, false, fManager)).booleanValue()); + button.setSelection(Boolean.parseBoolean(data.key.getStoredValue(fLookupOrder, false, fManager))); button.addSelectionListener(selectionlistener); Integer mapkey = Integer.valueOf(tabkind); HashSet<Control> controls = fControlMap.get(mapkey); diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/DependencyExtentOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/DependencyExtentOperation.java index 88bb66b314..6e0651f0a1 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/DependencyExtentOperation.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/DependencyExtentOperation.java @@ -124,8 +124,8 @@ public class DependencyExtentOperation { if (monitor.isCanceled()) break; IType[] types = new IType[0]; - if (child instanceof IClassFile) { - types = new IType[] {((IClassFile) child).getType()}; + if (child instanceof IOrdinaryClassFile) { + types = new IType[] {((IOrdinaryClassFile) child).getType()}; } else if (child instanceof ICompilationUnit) { types = ((ICompilationUnit) child).getTypes(); } diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/GatherUnusedDependenciesOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/GatherUnusedDependenciesOperation.java index 336e962fc0..8bde42271b 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/GatherUnusedDependenciesOperation.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/GatherUnusedDependenciesOperation.java @@ -173,8 +173,8 @@ public class GatherUnusedDependenciesOperation implements IRunnableWithProgress IType[] types = null; if (child instanceof ICompilationUnit) { types = ((ICompilationUnit) child).getAllTypes(); - } else if (child instanceof IClassFile) { - types = new IType[] { ((IClassFile) child).getType() }; + } else if (child instanceof IOrdinaryClassFile) { + types = new IType[] { ((IOrdinaryClassFile) child).getType() }; } if (types != null) { SubMonitor iterationMonitor = subMonitor.split(1).setWorkRemaining(types.length); diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/PluginsView.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/PluginsView.java index 10ffe92e47..6a6766235c 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/PluginsView.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/views/plugins/PluginsView.java @@ -23,6 +23,7 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IStorage; import org.eclipse.core.runtime.*; import org.eclipse.core.runtime.jobs.ISchedulingRule; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jdt.core.*; import org.eclipse.jdt.ui.JavaUI; import org.eclipse.jdt.ui.actions.OpenAction; @@ -81,7 +82,6 @@ public class PluginsView extends ViewPart implements IPluginModelListener { private DisabledFilter fHideExtEnabledFilter = new DisabledFilter(true); private DisabledFilter fHideExtDisabledFilter = new DisabledFilter(false); private WorkspaceFilter fHideWorkspaceFilter = new WorkspaceFilter(); - private SourcePluginFilter fSourcePluginFilter = new SourcePluginFilter(); private JavaFilter fJavaFilter = new JavaFilter(); private CopyToClipboardAction fCopyAction; private Clipboard fClipboard; @@ -558,7 +558,24 @@ public class PluginsView extends ViewPart implements IPluginModelListener { fHideWorkspaceFilterAction.setChecked(!hideWorkspace); fHideExtEnabledFilterAction.setChecked(!hideEnabledExternal); fHideExtDisabledFilterAction.setChecked(!hideDisabledExternal); - fTreeViewer.addFilter(fSourcePluginFilter); + + if (PDECore.getDefault().getModelManager().isInitialized()) { + PDEState state = PDECore.getDefault().getModelManager().getState(); + fTreeViewer.addFilter(new SourcePluginFilter(state)); + } else { + // when TP state is not initialized yet defer computation to + // background + // job and apply the filter when it is available + Job.createSystem("Initialize PDE State", monitor -> { //$NON-NLS-1$ + PDEState state = TargetPlatformHelper.getPDEState(); + Tree tree = fTreeViewer.getTree(); + if (!tree.isDisposed()) { + tree.getDisplay().asyncExec(() -> { + fTreeViewer.addFilter(new SourcePluginFilter(state)); + }); + } + }).schedule(); + } } private void hookContextMenu() { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ExportOptionsTab.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ExportOptionsTab.java index 48fdcbf1b0..08c014a3ed 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ExportOptionsTab.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/ExportOptionsTab.java @@ -194,17 +194,17 @@ public class ExportOptionsTab extends AbstractExportTab { protected boolean getInitialJarButtonSelection(IDialogSettings settings) { String selected = settings.get(S_JAR_FORMAT); - return selected == null ? TargetPlatformHelper.getTargetVersion() >= 3.1 : Boolean.valueOf(selected).booleanValue(); + return selected == null ? TargetPlatformHelper.getTargetVersion() >= 3.1 : Boolean.parseBoolean(selected); } protected boolean getInitialAllowBinaryCyclesSelection(IDialogSettings settings) { String selected = settings.get(S_ALLOW_BINARY_CYCLES); - return selected == null ? true : Boolean.valueOf(selected).booleanValue(); + return selected == null ? true : Boolean.parseBoolean(selected); } protected boolean getInitialUseWorkspaceCompiledClassesSelection(IDialogSettings settings) { String selected = settings.get(S_USE_WORKSPACE_COMPILED_CLASSES); - return selected == null ? false : Boolean.valueOf(selected).booleanValue(); + return selected == null ? false : Boolean.parseBoolean(selected); } protected void hookListeners() { diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/FragmentContentPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/FragmentContentPage.java index 9f7b35f49a..6d35e25fcf 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/FragmentContentPage.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/plugin/FragmentContentPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2018 IBM Corporation and others. + * Copyright (c) 2000, 2019 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -219,7 +219,7 @@ public class FragmentContentPage extends ContentPage { fExeEnvButton.setText(PDEUIMessages.NewProjectCreationPage_environmentsButton); fExeEnvButton.addListener(SWT.Selection, event -> PreferencesUtil.createPreferenceDialogOn(getShell(), "org.eclipse.jdt.debug.ui.jreProfiles", //$NON-NLS-1$ - new String[] { "org.eclipse.jdt.debug.ui.jreProfiles" }, null).open()); + new String[] { "org.eclipse.jdt.debug.ui.jreProfiles" }, null).open()); //$NON-NLS-1$ } private Text createPluginIdContainer(Composite parent, final boolean validateRange, int span) { diff --git a/ui/org.eclipse.ui.trace/META-INF/MANIFEST.MF b/ui/org.eclipse.ui.trace/META-INF/MANIFEST.MF index 5486e550b3..32532b6b44 100644 --- a/ui/org.eclipse.ui.trace/META-INF/MANIFEST.MF +++ b/ui/org.eclipse.ui.trace/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.ui.trace;singleton:=true
-Bundle-Version: 1.1.300.qualifier
+Bundle-Version: 1.1.400.qualifier
Bundle-Activator: org.eclipse.ui.trace.internal.TracingUIActivator
Bundle-Vendor: %providerName
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/ui/org.eclipse.ui.trace/pom.xml b/ui/org.eclipse.ui.trace/pom.xml index 8839102592..f99e2dbae1 100644 --- a/ui/org.eclipse.ui.trace/pom.xml +++ b/ui/org.eclipse.ui.trace/pom.xml @@ -19,6 +19,6 @@ </parent> <groupId>org.eclipse.ui</groupId> <artifactId>org.eclipse.ui.trace</artifactId> - <version>1.1.300-SNAPSHOT</version> + <version>1.1.400-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project> diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingPreferencePage.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingPreferencePage.java index 7fd50dbbac..119ee57c44 100644 --- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingPreferencePage.java +++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingPreferencePage.java @@ -572,8 +572,8 @@ public class TracingPreferencePage extends PreferencePage implements IWorkbenchP if (debugOptionsValue != null) {
if (TracingUtils.isValueBoolean(debugOptionsValue) && TracingUtils.isValueBoolean(prefDebugOption.getValue())) {
// pick the one that is 'true'
- boolean optionValue = Boolean.valueOf(debugOptionsValue).booleanValue();
- boolean prefValue = Boolean.valueOf(prefDebugOption.getValue()).booleanValue();
+ boolean optionValue = Boolean.parseBoolean(debugOptionsValue);
+ boolean prefValue = Boolean.parseBoolean(prefDebugOption.getValue());
if (prefValue != optionValue) {
// if the preference value is 'true' then use it... otherwise do nothing since the value
// in the debug options will be used.
diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponent.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponent.java index 7567d64e75..646d17bade 100644 --- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponent.java +++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponent.java @@ -221,7 +221,7 @@ public class TracingComponent extends AbstractTracingNode { for (IConfigurationElement child : componentChildren) {
if (child.getName().equals(TracingConstants.TRACING_EXTENSION_BUNDLE_ATTRIBUTE)) {
String name = child.getAttribute(TracingConstants.TRACING_EXTENSION_BUNDLE_NAME_ATTRIBUTE);
- boolean consumed = Boolean.valueOf(child.getAttribute(TracingConstants.TRACING_EXTENSION_BUNDLE_CONSUMED_ATTRIBUTE)).booleanValue();
+ boolean consumed = Boolean.parseBoolean(child.getAttribute(TracingConstants.TRACING_EXTENSION_BUNDLE_CONSUMED_ATTRIBUTE));
this.addBundle(name, consumed, installedBundles);
}
}
|