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_INVALID_MASTER_PAGE_CONTEXT_CONTAINMENT = "Error.SemanticError.INVALID_MASTER_PAGE_CONTEXT_CONTAINMENT"; 
	public static final String SEMANTIC_ERROR_DATA_SET_MISSED_IN_JOINT_DATA_SET = "Error.SemanticError.DATA_SET_MISSED_IN_JOINT_DATA_SET"; 
	public static final String SEMANTIC_ERROR_MISSING_COLUMN_BINDING = "Error.SemanticError.MISSING_COLUMN_BINDING"; 
	public static final String SEMANTIC_ERROR_COLUMN_INSERT_FORBIDDEN = "Error.SemanticError.COLUMN_INSERT_FORBIDDEN"; 
	
	public static final String THEME_EXCEPTION_NOT_FOUND = "Error.ThemeException.NOT_FOUND"; 
	
	public static final String DESIGN_PARSER_EXCEPTION_FILE_NOT_FOUND = "Error.DesignParserException.FILE_NOT_FOUND"; 
	public static final String DESIGN_PARSER_EXCEPTION_RGB_REQUIRED = "Error.DesignParserException.RGB_REQUIRED"; 
	public static final String DESIGN_PARSER_EXCEPTION_COLOR_NAME_REQUIRED = "Error.DesignParserException.COLOR_NAME_REQUIRED"; 
	public static final String DESIGN_PARSER_EXCEPTION_ILLEGAL_EXTENDS = "Error.DesignParserException.ILLEGAL_EXTENDS"; 
	public static final String DESIGN_PARSER_EXCEPTION_IMAGE_REF_CONFLICT = "Error.DesignParserException.IMAGE_REF_CONFLICT"; 
	public static final String DESIGN_PARSER_EXCEPTION_INVALID_IMAGEREF_EXPR_VALUE = "Error.DesignParserException.INVALID_IMAGEREF_EXPR_VALUE"; 
	public static final String DESIGN_PARSER_EXCEPTION_INVALID_IMAGE_URL_VALUE = "Error.DesignParserException.INVALID_IMAGE_URL_VALUE"; 
	public static final String DESIGN_PARSER_EXCEPTION_INVALID_IMAGE_NAME_VALUE = "Error.DesignParserException.INVALID_IMAGE_NAME_VALUE"; 
	public static final String DESIGN_PARSER_EXCEPTION_ACTION_REPORTNAME_REQUIRED = "Error.DesignParserException.ACTION_REPORTNAME_REQUIRED"; 
	public static final String DESIGN_PARSER_EXCEPTION_ACTION_PARAMETER_NAME_REQUIRED = "Error.DesignParserException.ACTION_PARAMETER_NAME_REQUIRED"; 
	public static final String DESIGN_PARSER_EXCEPTION_CHOICE_RESTRICTION_VIOLATION = "Error.DesignParserException.CHOICE_RESTRICTION_VIOLATION"; 
	public static final String DESIGN_PARSER_EXCEPTION_MESSAGE_KEY_REQUIRED = "Error.DesignParserException.MESSAGE_KEY_REQUIRED"; 
	public static final String DESIGN_PARSER_EXCEPTION_DUPLICATE_TRANSLATION_LOCALE = "Error.DesignParserException.DUPLICATE_TRANSLATION_LOCALE"; 
	public static final String DESIGN_PARSER_EXCEPTION_NAME_REQUIRED = "Error.DesignParserException.NAME_REQUIRED"; 
	public static final String DESIGN_PARSER_EXCEPTION_WRONG_STRUCTURE_LIST_TYPE = "Error.DesignParserException.WRONG_STRUCTURE_LIST_TYPE"; 
	public static final String DESIGN_PARSER_EXCEPTION_WRONG_EXTENDED_PROPERTY_TYPE = "Error.DesignParserException.WRONG_EXTENDED_PROPERTY_TYPE"; 
	public static final String DESIGN_PARSER_EXCEPTION_INVALID_STRUCTURE_NAME = "Error.DesignParserException.INVALID_STRUCTURE_NAME"; 
	public static final String DESIGN_PARSER_EXCEPTION_INVALID_PROPERTY_SYNTAX = "Error.DesignParserException.INVALID_PROPERTY_SYNTAX"; 
	public static final String DESIGN_PARSER_EXCEPTION_UNDEFINED_PROPERTY = "Error.DesignParserException.UNDEFINED_PROPERTY"; 
	public static final String DESIGN_PARSER_EXCEPTION_UNSUPPORTED_ENCODING = "Error.DesignParserException.UNSUPPORTED_ENCODING"; 
	public static final String DESIGN_PARSER_EXCEPTION_PROPERTY_IS_NOT_ENCRYPTABLE = "Error.DesignParserException.PROPERTY_IS_NOT_ENCRYPTABLE"; 
	public static final String DESIGN_PARSER_EXCEPTION_UNSUPPORTED_VERSION = "Error.DesignParserException.UNSUPPORTED_VERSION"; 
	public static final String DESIGN_PARSER_EXCEPTION_INVALID_VERSION = "Error.DesignParserException.INVALID_VERSION";