Bug 146256 Birt cannot process images from a jar-based plugin
BIRT Build: 2.1.0.N20060531-1258 I have an XML document containg references to images with an Eclipse plugin jar file. For example see "severityImage" in the following example: <RESULT name="Avoid returning java.lang.Object , downcast to specific type instead" severity="Recommendation" severityId="0" severityImage="jar:file:D:\rad\eclipse\plugins\org.eclipse.tptp.platform.analysis.core_4.2.0.v200605251528.jar!/icons/rulercmdation_obj.gif"> </RESULT> The URL was generated by Eclipse API's and returns a path to an image stored within a JARred plugin. This plugin is in the same workspace as BIRT so BIRT should be able to find it. However when the BIRT report generator tries to build the report it is unable to find the image. I suspect the image loader in the BIRT report generator does not properly handle Eclipse-based URL's. This is impacting our product deliverables and the only workarounds appears to be for our code to extract the images from the plugin and write them to the filesystem, then reference that image file for BIRT.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/i18n/MessageConstants.java
public static final String SEMANTIC_ERROR_NEGATIVE_REPORT_REFRESH_RATE = "Error.SemanticError.NEGATIVE_REPORT_REFRESH_RATE"; 
	public static final String SEMANTIC_ERROR_NEGATIVE_CELL_COLUMN = "Error.SemanticError.NEGATIVE_CELL_COLUMN"; 
	public static final String SEMANTIC_ERROR_NEGATIVE_WIDTH = "Error.SemanticError.NEGATIVE_WIDTH"; 
	public static final String SEMANTIC_ERROR_NEGATIVE_HEIGHT = "Error.SemanticError.NEGATIVE_HEIGHT"; 
	public static final String SEMANTIC_ERROR_INVALID_COLUMN_REPEAT = "Error.SemanticError.INVALID_COLUMN_REPEAT"; 
	public static final String SEMANTIC_ERROR_INVALID_PAGE_COLUMNS = "Error.SemanticError.INVALID_PAGE_COLUMNS"; 
	public static final String SEMANTIC_ERROR_NEGATIVE_FONT_SIZE = "Error.SemanticError.NEGATIVE_FONT_SIZE"; 
	public static final String SEMANTIC_ERROR_NEGATIVE_BORDER_WIDTH = "Error.SemanticError.NEGATIVE_BORDER_WIDTH"; 
	public static final String SEMANTIC_ERROR_MISSING_DATA_SET = "Error.SemanticError.MISSING_DATA_SET"; 
	public static final String SEMANTIC_ERROR_UNSUPPORTED_ELEMENT = "Error.SemanticError.UNSUPPORTED_ELEMENT"; 
	public static final String SEMANTIC_ERROR_NEGATIVE_LINE_HEIGHT = "Error.SemanticError.NEGATIVE_LINE_HEIGHT"; 
	public static final String SEMANTIC_ERROR_AT_LEAST_ONE_COLUMN = "Error.SemanticError.AT_LEAST_ONE_COLUMN"; 
	public static final String SEMANTIC_ERROR_DUPLICATE_GROUP_NAME = "Error.SemanticError.DUPLICATE_GROUP_NAME"; 
	public static final String SEMANTIC_ERROR_INVALID_CUSTOM_COLOR_NAME = "Error.SemanticError.INVALID_CUSTOM_COLOR_NAME"; 
	public static final String SEMANTIC_ERROR_DUPLICATE_CUSTOM_COLOR_NAME = "Error.SemanticError.DUPLICATE_CUSTOM_COLOR_NAME"; 
	public static final String SEMANTIC_ERROR_EXTENSION_NOT_FOUND = "Error.SemanticError.EXTENSION_NOT_FOUND"; 
	public static final String SEMANTIC_ERROR_MISSING_EXTENSION = "Error.SemanticError.MISSING_EXTENSION"; 
	public static final String SEMANTIC_ERROR_PROPERTY_COPY_FORBIDDEN = "Error.SemanticError.PROPERTY_COPY_FORBIDDEN"; 
	public static final String SEMANTIC_ERROR_COLUMN_COPY_FORBIDDEN = "Error.SemanticError.COLUMN_COPY_FORBIDDEN"; 
	public static final String SEMANTIC_ERROR_COLUMN_PASTE_FORBIDDEN = "Error.SemanticError.COLUMN_PASTE_FORBIDDEN"; 
	public static final String SEMANTIC_ERROR_COLUMN_PASTE_DIFFERENT_LAYOUT = "Error.SemanticError.COLUMN_PASTE_DIFFERENT_LAYOUT"; 
	public static final String SEMANTIC_ERROR_INVALID_STRUCTURE_REF = "Error.SemanticError.INVALID_STRUCTURE_REF"; 
	public static final String SEMANTIC_ERROR_INVALID_SCALAR_PARAMETER_TYPE = "Error.SemanticError.INVALID_SCALAR_PARAMETER_TYPE"; 
	public static final String STYLE_EXCEPTION_FORBIDDEN = "Error.StyleException.FORBIDDEN"; 
	public static final String STYLE_EXCEPTION_NOT_FOUND = "Error.StyleException.NOT_FOUND"; 
	public static final String SEMANTIC_ERROR_MISSING_TEMPLATE_PARAMETER_TYPE = "Error.SemanticError.MISSING_TEMPLATE_PARAMETER_TYPE"; 
	public static final String SEMANTIC_ERROR_INCONSISTENT_TEMPLATE_PARAMETER_TYPE = "Error.SemanticError.INCONSISTENT_TEMPLATE_PARAMETER_TYPE"; 
	public static final String SEMANTIC_ERROR_INVALID_LIBRARY_REFERENCE = "Error.SemanticError.INVALID_LIBRARY_REFERENCE"; 
	public static final String SEMANTIC_ERROR_INVALID_PROPERTY_BINDING_ID = "Error.SemanticError.INVALID_PROPERTY_BINDING_ID"; 
	public static final String SEMANTIC_ERROR_PROPERTY_BINDING_FORBIDDEN = "Error.SemanticError.PROPERTY_BINDING_FORBIDDEN";