### Eclipse Workspace Patch 1.0 #P org.eclipse.pde.core Index: src/org/eclipse/pde/internal/core/PDECoreMessages.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/PDECoreMessages.java,v retrieving revision 1.85 diff -u -r1.85 PDECoreMessages.java --- src/org/eclipse/pde/internal/core/PDECoreMessages.java 19 May 2010 20:58:01 -0000 1.85 +++ src/org/eclipse/pde/internal/core/PDECoreMessages.java 14 Jul 2011 16:50:53 -0000 @@ -187,6 +187,7 @@ public static String BundleErrorReporter_InvalidFormatInBundleVersion; public static String BundleErrorReporter_NotExistInProject; public static String BundleErrorReporter_BundleRangeInvalidInBundleVersion; + public static String BundleErrorReporter_R4SyntaxInR3Bundle; public static String BundleErrorReporter_invalidVersionRangeFormat; public static String BundleErrorReporter_NotExistPDE; Index: src/org/eclipse/pde/internal/core/pderesources.properties =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/pderesources.properties,v retrieving revision 1.135 diff -u -r1.135 pderesources.properties --- src/org/eclipse/pde/internal/core/pderesources.properties 4 Jul 2011 11:05:30 -0000 1.135 +++ src/org/eclipse/pde/internal/core/pderesources.properties 14 Jul 2011 16:50:53 -0000 @@ -176,6 +176,7 @@ BundleErrorReporter_unsatisfiedConstraint=Unsatisfied constraint: ''{0}'' BundleErrorReporter_noExecutionEnvironmentSet=No required execution environment has been set BundleErrorReporter_MissingVersion=''{0}'' is missing version constraint information +BundleErrorReporter_R4SyntaxInR3Bundle=OSGi Release 4 syntax in an OSGi Release 3 bundle BundleTextChangeListener_editNames_newLine=Add a new line at the end of the file BundleTextChangeListener_editNames_remove=Remove "{0}" header BundleTextChangeListener_editNames_insert=Insert "{0}" header Index: src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java,v retrieving revision 1.75 diff -u -r1.75 BundleErrorReporter.java --- src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java 3 Feb 2011 14:07:18 -0000 1.75 +++ src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java 14 Jul 2011 16:50:53 -0000 @@ -151,6 +151,10 @@ validatePluginId(header, id); validateSingleton(header, elements[0]); + // Header introduced in OSGi R4 - warn if R3 manifest + if (!fOsgiR4) + report(PDECoreMessages.BundleErrorReporter_R4SyntaxInR3Bundle, header.getLineNumber() + 1, CompilerFlags.WARNING, PDEMarkerFactory.M_R4_SYNTAX_IN_R3_BUNDLE, PDEMarkerFactory.CAT_OTHER); + return true; } @@ -230,6 +234,10 @@ return; } + // Header introduced in OSGi R4 - warn if R3 manifest + if (!fOsgiR4) + report(PDECoreMessages.BundleErrorReporter_R4SyntaxInR3Bundle, header.getLineNumber() + 1, CompilerFlags.WARNING, PDEMarkerFactory.M_R4_SYNTAX_IN_R3_BUNDLE, PDEMarkerFactory.CAT_OTHER); + if (!isCheckUnresolvedImports()) return; @@ -550,6 +558,11 @@ } } } + + // Header introduced in OSGi R4 - warn if R3 manifest + if (!fOsgiR4) + report(PDECoreMessages.BundleErrorReporter_R4SyntaxInR3Bundle, header.getLineNumber() + 1, CompilerFlags.WARNING, PDEMarkerFactory.M_R4_SYNTAX_IN_R3_BUNDLE, PDEMarkerFactory.CAT_OTHER); + } private void validateBundleVersionAttribute(IHeader header, ManifestElement element) { @@ -966,6 +979,11 @@ int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_DEPRECATED); if (header == null) return; + + // Header introduced in OSGi R4 - warn if R3 manifest + if (!fOsgiR4) + report(PDECoreMessages.BundleErrorReporter_R4SyntaxInR3Bundle, header.getLineNumber() + 1, CompilerFlags.WARNING, PDEMarkerFactory.M_R4_SYNTAX_IN_R3_BUNDLE, PDEMarkerFactory.CAT_OTHER); + if (TargetPlatformHelper.getTargetVersion() >= 3.3) { validateHeaderValue(header, new String[] {Constants.ACTIVATION_LAZY}); } else if (severity != CompilerFlags.IGNORE && !containsValidActivationHeader()) { @@ -1130,6 +1148,10 @@ location = new String(); } + // Header introduced in OSGi R4 - warn if R3 manifest + if (!fOsgiR4) + report(PDECoreMessages.BundleErrorReporter_R4SyntaxInR3Bundle, header.getLineNumber() + 1, CompilerFlags.WARNING, PDEMarkerFactory.M_R4_SYNTAX_IN_R3_BUNDLE, PDEMarkerFactory.CAT_OTHER); + IResource res = PDEProject.getBundleRoot(fProject).findMember(location); if (res == null || !(res instanceof IContainer)) { report(PDECoreMessages.BundleErrorReporter_localization_folder_not_exist, header.getLineNumber() + 1, CompilerFlags.getFlag(fProject, CompilerFlags.P_UNKNOWN_RESOURCE), PDEMarkerFactory.CAT_OTHER); Index: src/org/eclipse/pde/internal/core/builders/PDEMarkerFactory.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/PDEMarkerFactory.java,v retrieving revision 1.26 diff -u -r1.26 PDEMarkerFactory.java --- src/org/eclipse/pde/internal/core/builders/PDEMarkerFactory.java 30 Mar 2010 18:54:17 -0000 1.26 +++ src/org/eclipse/pde/internal/core/builders/PDEMarkerFactory.java 14 Jul 2011 16:50:53 -0000 @@ -47,6 +47,7 @@ public static final int M_MISSING_BUNDLE_CLASSPATH_ENTRY = 0x1021; // fatal problem public static final int M_LAZYLOADING_HAS_NO_EFFECT = 0x1022; //other problem public static final int M_DISCOURAGED_CLASS = 0x1023; //other problem + public static final int M_R4_SYNTAX_IN_R3_BUNDLE = 0x1025; // other problem // build properties fixes public static final int B_APPEND_SLASH_FOLDER_ENTRY = 0x2001; #P org.eclipse.pde.ui Index: src/org/eclipse/pde/internal/ui/PDEUIMessages.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/PDEUIMessages.java,v retrieving revision 1.496 diff -u -r1.496 PDEUIMessages.java --- src/org/eclipse/pde/internal/ui/PDEUIMessages.java 18 May 2011 19:45:24 -0000 1.496 +++ src/org/eclipse/pde/internal/ui/PDEUIMessages.java 14 Jul 2011 16:50:55 -0000 @@ -2936,6 +2936,9 @@ public static String AddExportPackageResolution_Label; public static String AddBundleClassPathResolution_add; + public static String AddBundleManifestVersionResolution_description; + public static String AddBundleManifestVersionResolution_label; + public static String AddToJavaSearchJob_0; public static String AntGeneratingExportWizard_0; Index: src/org/eclipse/pde/internal/ui/correction/AddBundleManifestVersionResolution.java =================================================================== RCS file: src/org/eclipse/pde/internal/ui/correction/AddBundleManifestVersionResolution.java diff -N src/org/eclipse/pde/internal/ui/correction/AddBundleManifestVersionResolution.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/pde/internal/ui/correction/AddBundleManifestVersionResolution.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,45 @@ +package org.eclipse.pde.internal.ui.correction; + +import java.util.HashMap; +import java.util.Map; +import org.eclipse.osgi.util.NLS; +import org.eclipse.pde.internal.core.text.bundle.BundleModel; +import org.eclipse.pde.internal.ui.PDEUIMessages; +import org.osgi.framework.Constants; + +/** + * Resolution to add the Bundle-ManifestVersion header to the manifest. + */ +public class AddBundleManifestVersionResolution extends AbstractManifestMarkerResolution { + + /** Bundle-ManifestVersion to use. */ + private String fManifestVersion; + + /** Map between Bundle-ManifestVersions and OSGi versions. */ + private static Map manifestVersionToOSGiVersion = new HashMap(2); + + static { + manifestVersionToOSGiVersion.put("1", "3"); //$NON-NLS-1$//$NON-NLS-2$ + manifestVersionToOSGiVersion.put("2", "4"); //$NON-NLS-1$//$NON-NLS-2$ + } + + public AddBundleManifestVersionResolution(String manifestVersion) { + super(AbstractPDEMarkerResolution.CREATE_TYPE); + this.fManifestVersion = manifestVersion; + } + + public String getLabel() { + return NLS.bind(PDEUIMessages.AddBundleManifestVersionResolution_label, manifestVersionToOSGiVersion.get(fManifestVersion)); + } + + public String getDescription() { + return NLS.bind(PDEUIMessages.AddBundleManifestVersionResolution_description, manifestVersionToOSGiVersion.get(fManifestVersion), fManifestVersion); + } + + protected void createChange(BundleModel model) { + + // Add the Bundle-ManifestVersion header. + model.getBundle().setHeader(Constants.BUNDLE_MANIFESTVERSION, fManifestVersion); + } + +} Index: src/org/eclipse/pde/internal/ui/correction/ResolutionGenerator.java =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/correction/ResolutionGenerator.java,v retrieving revision 1.40 diff -u -r1.40 ResolutionGenerator.java --- src/org/eclipse/pde/internal/ui/correction/ResolutionGenerator.java 30 Jun 2010 11:31:53 -0000 1.40 +++ src/org/eclipse/pde/internal/ui/correction/ResolutionGenerator.java 14 Jul 2011 16:50:57 -0000 @@ -105,6 +105,8 @@ return new IMarkerResolution[] {new AddBundleClassPathMarkerResolution(AbstractPDEMarkerResolution.CREATE_TYPE, marker.getAttribute("entry", null))}; //$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$ + case PDEMarkerFactory.M_R4_SYNTAX_IN_R3_BUNDLE : + return new IMarkerResolution[] {new AddBundleManifestVersionResolution("2")}; //$NON-NLS-1$ } return NO_RESOLUTIONS; } Index: src/org/eclipse/pde/internal/ui/pderesources.properties =================================================================== RCS file: /cvsroot/eclipse/pde/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/pderesources.properties,v retrieving revision 1.1169 diff -u -r1.1169 pderesources.properties --- src/org/eclipse/pde/internal/ui/pderesources.properties 18 May 2011 19:45:24 -0000 1.1169 +++ src/org/eclipse/pde/internal/ui/pderesources.properties 14 Jul 2011 16:50:57 -0000 @@ -2126,6 +2126,8 @@ OptionalImportPkgResolution_label=Mark package ''{0}'' as an optional imported package OptionalRequireBundleResolution_description=Mark bundle ''{0}'' as optional OptionalRequireBundleResolution_label=Mark bundle ''{0}'' as optional +AddBundleManifestVersionResolution_description=Mark the manifest for use by OSGi Release {0} by adding the ''Bundle-ManifestVersion: {1}'' header +AddBundleManifestVersionResolution_label=Mark the manifest for use by OSGi Release {0} OrganizeManifestJob_taskName=Organizing Manifest Headers... OrganizeManifestsWizard_title=Organize Manifests Wizard OrganizeManifestsWizardPage_title=Organize Manifests