private boolean validatePluginId(IHeader header, String value) { if (!IdUtil.isValidCompositeID3_0(value)) { String message = PDECoreMessages.BundleErrorReporter_InvalidSymbolicName; report(message, getLine(header, value), CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); return false; } return true; }
private boolean validatePluginId(IHeader header, String value) { if (!IdUtil.isValidCompositeID(value)) { String message = PDECoreMessages.BundleErrorReporter_InvalidSymbolicName; report(message, getLine(header, value), CompilerFlags.WARNING, PDEMarkerFactory.CAT_FATAL); return false; } return true; }
private boolean exceptionsAttributesValid(IHeader header, ManifestElement[] elements) { if (elements == null || elements.length == 0) return true; int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_UNKNOWN_ATTRIBUTE); if (severity == CompilerFlags.IGNORE) return true; Enumeration keys = elements[0].getKeys(); if (keys != null && keys.hasMoreElements()) { String key = (String) keys.nextElement(); if ("exceptions".equals(key)) { //$NON-NLS-1$ String[] values = elements[0].getAttributes(key); for (int i = 0; i < values.length; i++) { StringTokenizer st = new StringTokenizer(values[i], ","); //$NON-NLS-1$ while (st.hasMoreTokens()) { String name = st.nextToken().trim(); if (!getExportedPackages().contains(name)) { String message = NLS.bind(PDECoreMessages.BundleErrorReporter_NotExistInProject, name); report(message, getLine(header, name), CompilerFlags.P_UNRESOLVED_IMPORTS, PDEMarkerFactory.CAT_OTHER); return false; } } } } } return true; }
private boolean exceptionsAttributesValid(IHeader header, ManifestElement[] elements) { if (elements == null || elements.length == 0) return true; int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_UNKNOWN_ATTRIBUTE); if (severity == CompilerFlags.IGNORE) return true; Enumeration<?> keys = elements[0].getKeys(); if (keys != null && keys.hasMoreElements()) { String key = (String) keys.nextElement(); if ("exceptions".equals(key)) { //$NON-NLS-1$ String[] values = elements[0].getAttributes(key); for (int i = 0; i < values.length; i++) { StringTokenizer st = new StringTokenizer(values[i], ","); //$NON-NLS-1$ while (st.hasMoreTokens()) { String name = st.nextToken().trim(); if (!getExportedPackages().contains(name)) { String message = NLS.bind(PDECoreMessages.BundleErrorReporter_NotExistInProject, name); report(message, getLine(header, name), CompilerFlags.P_UNRESOLVED_IMPORTS, PDEMarkerFactory.CAT_OTHER); return false; } } } } } return true; }
private void validateOptionalAttribute(IHeader header, ManifestElement element) { String rexport = element.getAttribute(ICoreConstants.OPTIONAL_ATTRIBUTE); if (rexport != null) { validateBooleanAttributeValue(header, element, ICoreConstants.OPTIONAL_ATTRIBUTE); if (fOsgiR4 && isCheckDeprecated()) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_deprecated_attribute_optional, ICoreConstants.OPTIONAL_ATTRIBUTE), getLine(header, ICoreConstants.OPTIONAL_ATTRIBUTE + "="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.CAT_DEPRECATION); } } }
private void validateReprovideAttribute(IHeader header, ManifestElement element) { String message; String rexport = element.getAttribute(ICoreConstants.REPROVIDE_ATTRIBUTE); if (rexport != null) { validateBooleanAttributeValue(header, element, ICoreConstants.REPROVIDE_ATTRIBUTE); if (fOsgiR4 && isCheckDeprecated()) { message = NLS.bind(PDECoreMessages.BundleErrorReporter_deprecated_attribute_reprovide, ICoreConstants.REPROVIDE_ATTRIBUTE); report(message, getLine(header, ICoreConstants.REPROVIDE_ATTRIBUTE + "="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.CAT_DEPRECATION); } } }
private void validateOptionalAttribute(IHeader header, ManifestElement element) { String rexport = element.getAttribute(ICoreConstants.OPTIONAL_ATTRIBUTE); if (rexport != null) { validateBooleanAttributeValue(header, element, ICoreConstants.OPTIONAL_ATTRIBUTE); if (fOsgiR4 && isCheckDeprecated()) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_deprecated_attribute_optional, ICoreConstants.OPTIONAL_ATTRIBUTE), getLine(header, ICoreConstants.OPTIONAL_ATTRIBUTE + "="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.CAT_DEPRECATION); } } }
private void validateReprovideAttribute(IHeader header, ManifestElement element) { String message; String rexport = element.getAttribute(ICoreConstants.REPROVIDE_ATTRIBUTE); if (rexport != null) { validateBooleanAttributeValue(header, element,ICoreConstants.REPROVIDE_ATTRIBUTE); if (fOsgiR4 && isCheckDeprecated()) { message = NLS.bind(PDECoreMessages.BundleErrorReporter_deprecated_attribute_reprovide, ICoreConstants.REPROVIDE_ATTRIBUTE); report(message, getLine(header, ICoreConstants.REPROVIDE_ATTRIBUTE + "="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.CAT_DEPRECATION); } } }
private void validateTranslatableHeaders() { int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_NOT_EXTERNALIZED); if (severity == CompilerFlags.IGNORE) return; for (int i = 0; i < ICoreConstants.TRANSLATABLE_HEADERS.length; i++) { IHeader header = getHeader(ICoreConstants.TRANSLATABLE_HEADERS[i]); if (header != null) { String value = header.getValue(); if (!value.startsWith("%")) { //$NON-NLS-1$ report(NLS.bind(PDECoreMessages.Builders_Manifest_non_ext_attribute, header.getName()), getLine(header, value), severity, PDEMarkerFactory.P_UNTRANSLATED_NODE, header.getName(), PDEMarkerFactory.CAT_NLS); } else if (fModel instanceof AbstractNLModel) { NLResourceHelper helper = ((AbstractNLModel) fModel).getNLResourceHelper(); if (helper == null || !helper.resourceExists(value)) { report(NLS.bind(PDECoreMessages.Builders_Manifest_key_not_found, value.substring(1), PDEManager.getBundleLocalization(fModel).concat(".properties")), getLine(header, value), severity, PDEMarkerFactory.CAT_NLS); //$NON-NLS-1$ } } } } }
private void validateTranslatableHeaders() { int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_NOT_EXTERNALIZED); if (severity == CompilerFlags.IGNORE) return; for (int i = 0; i < ICoreConstants.TRANSLATABLE_HEADERS.length; i++) { IHeader header = getHeader(ICoreConstants.TRANSLATABLE_HEADERS[i]); if (header != null) { String value = header.getValue(); if (!value.startsWith("%")) { //$NON-NLS-1$ report(NLS.bind(PDECoreMessages.Builders_Manifest_non_ext_attribute, header.getName()), getLine(header, value), severity, PDEMarkerFactory.P_UNTRANSLATED_NODE, header.getName(), PDEMarkerFactory.CAT_NLS); } else if (fModel instanceof AbstractNLModel) { NLResourceHelper helper = ((AbstractNLModel)fModel).getNLResourceHelper(); if (helper == null || !helper.resourceExists(value)) report(NLS.bind(PDECoreMessages.Builders_Manifest_key_not_found, value.substring(1)), getLine(header, value), severity, PDEMarkerFactory.CAT_NLS); } } } }
if (isCheckDeprecated() && fOsgiR4) { String message = PDECoreMessages.BundleErrorReporter_deprecated_attribute_singleton; report(message, getLine(header, ICoreConstants.SINGLETON_ATTRIBUTE + "="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.M_SINGLETON_DIR_NOT_SET, PDEMarkerFactory.CAT_DEPRECATION); return; if (isCheckDeprecated()) { String message = PDECoreMessages.BundleErrorReporter_deprecated_attribute_singleton; report(message, getLine(header, ICoreConstants.SINGLETON_ATTRIBUTE + "="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.M_SINGLETON_DIR_NOT_SET, PDEMarkerFactory.CAT_OTHER); if (isCheckDeprecated()) { String message = PDECoreMessages.BundleErrorReporter_unsupportedSingletonDirective; report(message, getLine(header, Constants.SINGLETON_DIRECTIVE + ":="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.M_SINGLETON_DIR_NOT_SUPPORTED, PDEMarkerFactory.CAT_OTHER);
private void validateBundleVersion() { IHeader header = validateRequiredHeader(Constants.BUNDLE_VERSION); if (header == null) return; IStatus status = VersionUtil.validateVersion(header.getValue()); if(!status.isOK()){ int line = getLine(header, header.getValue()); report(status.getMessage(), line, CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); } }
private void validateBundleVersion() { IHeader header = validateRequiredHeader(Constants.BUNDLE_VERSION); if (header == null) return; IStatus status = VersionUtil.validateVersion(header.getValue()); if (!status.isOK()) { int line = getLine(header, header.getValue()); report(status.getMessage(), line, CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); } }
if (isCheckDeprecated()) { String message = PDECoreMessages.BundleErrorReporter_deprecated_attribute_singleton; report(message, getLine(header, ICoreConstants.SINGLETON_ATTRIBUTE + "="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.M_SINGLETON_DIR_NOT_SET, PDEMarkerFactory.CAT_DEPRECATION); return; if (isCheckDeprecated()) { String message = PDECoreMessages.BundleErrorReporter_deprecated_attribute_singleton; report(message, getLine(header, ICoreConstants.SINGLETON_ATTRIBUTE + "="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.M_SINGLETON_DIR_NOT_SET, PDEMarkerFactory.CAT_OTHER); if (isCheckDeprecated()) { String message = PDECoreMessages.BundleErrorReporter_unsupportedSingletonDirective; report(message, getLine(header, Constants.SINGLETON_DIRECTIVE + ":="), //$NON-NLS-1$ CompilerFlags.P_DEPRECATED, PDEMarkerFactory.M_SINGLETON_DIR_NOT_SUPPORTED, PDEMarkerFactory.CAT_OTHER);
if (!validPath.equals(currentPath)) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_reqExecEnv_conflict, bundleEnvs[0]), getLine(header, bundleEnvs[0]), sev, PDEMarkerFactory.M_MISMATCHED_EXEC_ENV, PDEMarkerFactory.CAT_EE); bundleEnvs[i]), getLine(header, bundleEnvs[i]), sev, PDEMarkerFactory.M_UNKNOW_EXEC_ENV, PDEMarkerFactory.CAT_EE);
private void validateBundleActivator() { IHeader header = getHeader(Constants.BUNDLE_ACTIVATOR); if (header == null) return; String activator = header.getValue(); BundleDescription desc = fModel.getBundleDescription(); if (desc != null && desc.getHost() != null) { report(PDECoreMessages.BundleErrorReporter_fragmentActivator, header.getLineNumber() + 1, CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); return; } if (isCheckUnknownClass()) { try { if (fProject.hasNature(JavaCore.NATURE_ID)) { IJavaProject javaProject = JavaCore.create(fProject); // Look for this activator in the project's classpath if (!PDEJavaHelper.isOnClasspath(activator, javaProject)) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_NoExist, activator), getLine(header, activator), CompilerFlags.P_UNKNOWN_CLASS, PDEMarkerFactory.M_UNKNOWN_ACTIVATOR, PDEMarkerFactory.CAT_FATAL); } } } catch (CoreException ce) { } } }
private void validateBundleActivator() { IHeader header = getHeader(Constants.BUNDLE_ACTIVATOR); if (header == null) return; String activator = header.getValue(); BundleDescription desc = fModel.getBundleDescription(); if (desc != null && desc.getHost() != null) { report(PDECoreMessages.BundleErrorReporter_fragmentActivator, header.getLineNumber() + 1, CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); return; } if (isCheckUnknownClass()) { try { if (fProject.hasNature(JavaCore.NATURE_ID)) { IJavaProject javaProject = JavaCore.create(fProject); // Look for this activator in the project's classpath if (!PDEJavaHelper.isOnClasspath(activator, javaProject)) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_NoExist, activator), getLine(header, activator), CompilerFlags.P_UNKNOWN_CLASS, PDEMarkerFactory.M_UNKNOWN_ACTIVATOR, PDEMarkerFactory.CAT_FATAL); } } } catch (CoreException ce) { } } }
if (elems.length > 0) { if (!VersionUtil.validateVersionRange(elems[0].getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE)).isOK()) { int line = getLine(header, header.getValue()); report(UtilMessages.BundleErrorReporter_InvalidFormatInBundleVersion, line, CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); if (!range.isIncluded(version)) { String versionRange = host.getVersionRange().toString(); report(NLS.bind(PDECoreMessages.BundleErrorReporter_BundleRangeInvalidInBundleVersion, versionRange), getLine(header, versionRange), CompilerFlags.P_UNRESOLVED_IMPORTS, PDEMarkerFactory.CAT_FATAL); return; report(NLS.bind(PDECoreMessages.BundleErrorReporter_unresolvedHost, name), getLine(header, name), CompilerFlags.P_UNRESOLVED_IMPORTS, PDEMarkerFactory.CAT_FATAL); return; report(NLS.bind(PDECoreMessages.BundleErrorReporter_HostNotExistPDE, name), getLine(header, name), CompilerFlags.P_UNRESOLVED_IMPORTS, PDEMarkerFactory.CAT_FATAL);
String versionRange = host.getVersionRange().toString(); report(NLS.bind(PDECoreMessages.BundleErrorReporter_BundleRangeInvalidInBundleVersion, versionRange), getLine(header, versionRange), CompilerFlags.P_UNRESOLVED_IMPORTS, PDEMarkerFactory.CAT_FATAL); getLine(header, name), CompilerFlags.P_UNRESOLVED_IMPORTS, PDEMarkerFactory.CAT_FATAL); return; if (model == null || model instanceof IFragmentModel || !model.isEnabled()) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_HostNotExistPDE, name), getLine(header, name), CompilerFlags.P_UNRESOLVED_IMPORTS, PDEMarkerFactory.CAT_FATAL);
report(NLS.bind(PDECoreMessages.BundleErrorReporter_reqExecEnv_conflict, bundleEnvs[0]), getLine(header, bundleEnvs[0]), sev, PDEMarkerFactory.M_MISMATCHED_EXEC_ENV, PDEMarkerFactory.CAT_EE); report(NLS.bind(PDECoreMessages.BundleErrorReporter_reqExecEnv_unknown, bundleEnvs[i]), getLine(header, bundleEnvs[i]), sev, PDEMarkerFactory.M_UNKNOW_EXEC_ENV, PDEMarkerFactory.CAT_EE); break;