private boolean isOptional(ManifestElement element) { return Constants.RESOLUTION_OPTIONAL.equals(element.getDirective(Constants.RESOLUTION_DIRECTIVE)) || "true".equals(element.getAttribute(ICoreConstants.OPTIONAL_ATTRIBUTE)); //$NON-NLS-1$ }
public String getLabel() { String version = underlyingElement.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE); String value = underlyingElement.getValue(); if (version == null) return value; if (Character.isDigit(version.charAt(0))) version = '(' + version + ')'; return value + ' ' + version; } }
protected void validateAttributeValue(IHeader header, ManifestElement element, String key, String[] allowedValues) { String value = element.getAttribute(key); if (value == null) { return; } for (int i = 0; i < allowedValues.length; i++) { if (allowedValues[i].equals(value)) { return; } } reportIllegalAttributeValue(header, key, value); }
protected void validateAttributeValue(IHeader header, ManifestElement element, String key, String[] allowedValues) { String value = element.getAttribute(key); if (value == null) { return; } for (int i = 0; i < allowedValues.length; i++) { if (allowedValues[i].equals(value)) { return; } } reportIllegalAttributeValue(header, key, value); }
private static BundleSpecification createRequiredBundle(ManifestElement spec) { BundleSpecificationImpl result = new BundleSpecificationImpl(); result.setName(spec.getValue()); result.setVersionRange(getVersionRange(spec.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE))); result.setExported(Constants.VISIBILITY_REEXPORT.equals(spec.getDirective(Constants.VISIBILITY_DIRECTIVE)) || "true".equals(spec.getAttribute(Constants.REPROVIDE_ATTRIBUTE))); //$NON-NLS-1$ result.setOptional(Constants.RESOLUTION_OPTIONAL.equals(spec.getDirective(Constants.RESOLUTION_DIRECTIVE)) || "true".equals(spec.getAttribute(Constants.OPTIONAL_ATTRIBUTE))); //$NON-NLS-1$ result.setAttributes(getAttributes(spec, DEFINED_BSN_MATCHING_ATTRS)); return result; }
static BundleSpecification createRequiredBundle(ManifestElement spec) { BundleSpecificationImpl result = new BundleSpecificationImpl(); result.setName(spec.getValue()); result.setVersionRange(getVersionRange(spec.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE))); result.setExported(Constants.VISIBILITY_REEXPORT.equals(spec.getDirective(Constants.VISIBILITY_DIRECTIVE)) || "true".equals(spec.getAttribute(StateImpl.REPROVIDE_ATTRIBUTE))); //$NON-NLS-1$ result.setOptional(Constants.RESOLUTION_OPTIONAL.equals(spec.getDirective(Constants.RESOLUTION_DIRECTIVE)) || "true".equals(spec.getAttribute(StateImpl.OPTIONAL_ATTRIBUTE))); //$NON-NLS-1$ result.setAttributes(getAttributes(spec, DEFINED_BSN_MATCHING_ATTRS)); result.setArbitraryDirectives(getDirectives(spec, DEFINED_REQUIRE_BUNDLE_DIRECTIVES)); return result; }
static BundleSpecification createRequiredBundle(ManifestElement spec) { BundleSpecificationImpl result = new BundleSpecificationImpl(); result.setName(spec.getValue()); result.setVersionRange(getVersionRange(spec.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE))); result.setExported(Constants.VISIBILITY_REEXPORT.equals(spec.getDirective(Constants.VISIBILITY_DIRECTIVE)) || "true".equals(spec.getAttribute(StateImpl.REPROVIDE_ATTRIBUTE))); //$NON-NLS-1$ result.setOptional(Constants.RESOLUTION_OPTIONAL.equals(spec.getDirective(Constants.RESOLUTION_DIRECTIVE)) || "true".equals(spec.getAttribute(StateImpl.OPTIONAL_ATTRIBUTE))); //$NON-NLS-1$ result.setAttributes(getAttributes(spec, DEFINED_BSN_MATCHING_ATTRS)); result.setArbitraryDirectives(getDirectives(spec, DEFINED_REQUIRE_BUNDLE_DIRECTIVES)); return result; }
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); } } }
static BundleSpecification createRequiredBundle(ManifestElement spec) { BundleSpecificationImpl result = new BundleSpecificationImpl(); result.setName(spec.getValue()); result.setVersionRange(getVersionRange(spec.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE))); result.setExported(Constants.VISIBILITY_REEXPORT.equals(spec.getDirective(Constants.VISIBILITY_DIRECTIVE)) || "true".equals(spec.getAttribute(Constants.REPROVIDE_ATTRIBUTE))); //$NON-NLS-1$ result.setOptional(Constants.RESOLUTION_OPTIONAL.equals(spec.getDirective(Constants.RESOLUTION_DIRECTIVE)) || "true".equals(spec.getAttribute(Constants.OPTIONAL_ATTRIBUTE))); //$NON-NLS-1$ result.setAttributes(getAttributes(spec, DEFINED_BSN_MATCHING_ATTRS)); result.setArbitraryDirectives(getDirectives(spec, DEFINED_REQUIRE_BUNDLE_DIRECTIVES)); return result; }
private String getAttribute(String key, String attribute) { IBundle bundle = getBundle(); if (bundle == null) return null; String value = bundle.getHeader(key); if (value == null) return null; try { ManifestElement[] elements = ManifestElement.parseHeader(key, value); if (elements.length > 0) return elements[0].getAttribute(attribute); } catch (BundleException e) { } return null; }
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 validateImportPackageVersion(IHeader header, ManifestElement element) { String version = element.getAttribute(Constants.VERSION_ATTRIBUTE); int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_MISSING_VERSION_IMP_PKG); if (severity != CompilerFlags.IGNORE && version == null) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_MissingVersion, element.getValue()), getPackageLine(header, element), severity, PDEMarkerFactory.CAT_OTHER); } validateVersionAttribute(header, element, true); }
private void validateExportPackageVersion(IHeader header, ManifestElement element) { String version = element.getAttribute(Constants.VERSION_ATTRIBUTE); int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_MISSING_VERSION_EXP_PKG); if (severity != CompilerFlags.IGNORE && version == null) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_MissingVersion, element.getValue()), getPackageLine(header, element), severity, PDEMarkerFactory.CAT_OTHER); } validateVersionAttribute(header, element, false); }
private void validateBundleVersionAttribute(IHeader header, ManifestElement element) { String versionRange = element.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE); if (versionRange != null && !VersionUtil.validateVersionRange(versionRange).isOK()) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_InvalidFormatInBundleVersion, element.getValue()), getPackageLine(header, element), CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); } }
private void validateBundleVersionAttribute(IHeader header, ManifestElement element) { String versionRange = element.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE); int severity = CompilerFlags.getFlag(fProject, CompilerFlags.P_MISSING_VERSION_REQ_BUNDLE); if (severity != CompilerFlags.IGNORE && versionRange == null) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_MissingVersion, element.getValue()), getPackageLine(header, element), severity, PDEMarkerFactory.CAT_OTHER); } if (versionRange != null && !VersionUtil.validateVersionRange(versionRange).isOK()) { report(NLS.bind(UtilMessages.BundleErrorReporter_InvalidFormatInBundleVersion, element.getValue()), getPackageLine(header, element), CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); } }
private void validateSpecificationVersionAttribute(IHeader header, ManifestElement element) { String version = element.getAttribute(ICoreConstants.PACKAGE_SPECIFICATION_VERSION); IStatus status = VersionUtil.validateVersion(version); if (!status.isOK()) { report(status.getMessage(), getPackageLine(header, element), CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); } if (isCheckDeprecated()) { if (fOsgiR4 && version != null) { report(NLS.bind(PDECoreMessages.BundleErrorReporter_deprecated_attribute_specification_version, ICoreConstants.PACKAGE_SPECIFICATION_VERSION), getPackageLine(header, element), CompilerFlags.P_DEPRECATED, PDEMarkerFactory.CAT_DEPRECATION); } } }
private void validateVersionAttribute(IHeader header, ManifestElement element, boolean range) { String version = element.getAttribute(Constants.VERSION_ATTRIBUTE); if (version == null) return; IStatus status = range ? VersionUtil.validateVersionRange(version) : VersionUtil.validateVersion(version); if(!status.isOK()) { report(status.getMessage(), getPackageLine(header, element), CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); } }
private void validateVersionAttribute(IHeader header, ManifestElement element, boolean range) { String version = element.getAttribute(Constants.VERSION_ATTRIBUTE); if (version != null) { IStatus status = range ? VersionUtil.validateVersionRange(version) : VersionUtil.validateVersion(version); if (!status.isOK()) { report(status.getMessage(), getPackageLine(header, element), CompilerFlags.ERROR, PDEMarkerFactory.CAT_FATAL); } } }
private static HostSpecification createHostSpecification(ManifestElement spec, StateImpl state) { if (spec == null) return null; HostSpecificationImpl result = new HostSpecificationImpl(); result.setName(spec.getValue()); result.setVersionRange(getVersionRange(spec.getAttribute(Constants.BUNDLE_VERSION_ATTRIBUTE))); String multiple = spec.getDirective("multiple-hosts"); //$NON-NLS-1$ if (multiple == null) multiple = getPlatformProperty(state, "osgi.support.multipleHosts"); //$NON-NLS-1$ result.setIsMultiHost("true".equals(multiple)); //$NON-NLS-1$ result.setAttributes(getAttributes(spec, DEFINED_BSN_MATCHING_ATTRS)); return result; }