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 PROPERTY_VALUE_EXCEPTION_PROPERTY_CHANGE_FORBIDDEN = "Error.PropertyValueException.PROPERTY_CHANGE_FORBIDDEN"; 
	public static final String PROPERTY_VALUE_EXCEPTION_NOT_LIST_TYPE = "Error.PropertyValueException.NOT_LIST_TYPE"; 
	public static final String PROPERTY_VALUE_EXCEPTION_ITEM_NOT_FOUND = "Error.PropertyValueException.ITEM_NOT_FOUND"; 
	public static final String PROPERTY_VALUE_EXCEPTION_WRONG_ELEMENT_TYPE = "Error.PropertyValueException.WRONG_ELEMENT_TYPE"; 
	public static final String PROPERTY_VALUE_EXCEPTION_VALUE_EXISTS = "Error.PropertyValueException.VALUE_EXISTS"; 
	public static final String PROPERTY_VALUE_EXCEPTION_VALUE_REQUIRED = "Error.PropertyValueException.VALUE_REQUIRED"; 
	public static final String PROPERTY_VALUE_EXCEPTION_VALUE_LOCKED = "Error.PropertyValueException.VALUE_LOCKED"; 
	public static final String PROPERTY_VALUE_EXCEPTION_UNIT_NOT_ALLOWED = "Error.PropertyValueException.UNIT_NOT_ALLOWED"; 
	public static final String PROPERTY_VALUE_EXCEPTION_CHOICE_NOT_ALLOWED = "Error.PropertyValueException.CHOICE_NOT_ALLOWED"; 
	public static final String PROPERTY_VALUE_EXCEPTION_WRONG_ITEM_TYPE = "Error.PropertyValueException.WRONG_ITEM_TYPE"; 
	public static final String PROPERTY_VALUE_EXCEPTION_NEGATIVE_VALUE = "Error.PropertyValueException.NEGATIVE_VALUE"; 
	public static final String PROPERTY_VALUE_EXCEPTION_NON_POSITIVE_VALUE = "Error.PropertyValueException.NON_POSITIVE_VALUE"; 
	public static final String PROPERTY_VALUE_EXCEPTION_DOT_FORBIDDEN = "Error.PropertyValueException.DOT_FORBIDDEN"; 
	
	public static final String SEMANTIC_ERROR_INCONSISTENT_TABLE_COL_COUNT = "Error.SemanticError.INCONSISTENT_TABLE_COL_COUNT"; 
	public static final String SEMANTIC_ERROR_INCONSISTENT_TABLE_COL_COUNT_COZ_DROP = "Error.SemanticError.INCONSISTENT_TABLE_COL_COUNT_COZ_DROP"; 
	public static final String SEMANTIC_ERROR_OVERLAPPING_CELLS = "Error.SemanticError.OVERLAPPING_CELLS"; 
	public static final String SEMANTIC_ERROR_INCONSISTENT_DROP_HEADINGS = "Error.SemanticError.INCONSISTENT_TABLE_DROP_HEADINGS"; 	
	public static final String SEMANTIC_ERROR_INVALID_PAGE_SIZE = "Error.SemanticError.INVALID_PAGE_SIZE"; 
	public static final String SEMANTIC_ERROR_INVALID_PAGE_MARGINS = "Error.SemanticError.INVALID_PAGE_MARGINS"; 
	public static final String SEMANTIC_ERROR_MISSING_PAGE_SIZE = "Error.SemanticError.MISSING_PAGE_SIZE"; 
	public static final String SEMANTIC_ERROR_MISSING_MASTER_PAGE = "Error.SemanticError.MISSING_MASTER_PAGE"; 
	public static final String SEMANTIC_ERROR_INVALID_MULTI_COLUMN = "Error.SemanticError.INVALID_MULTI_COLUMN"; 
	public static final String SEMANTIC_ERROR_INCONSISTENT_GRID_COL_COUNT = "Error.SemanticError.INCONSISTENT_GRID_COL_COUNT"; 
	public static final String SEMANTIC_ERROR_INVALID_ELEMENT_REF = "Error.SemanticError.INVALID_ELEMENT_REF"; 
	public static final String SEMANTIC_ERROR_MISSING_SQL_STMT = "Error.SemanticError.MISSING_SQL_STMT"; 
	public static final String SEMANTIC_ERROR_INVALID_IMAGE_SCALE_VALUE = "Error.SemanticError.INVALID_IMAGE_SCALE_VALUE"; 
	public static final String SEMANTIC_ERROR_CANNOT_SPECIFY_PAGE_SIZE = "Error.SemanticError.CANNOT_SPECIFY_PAGE_SIZE"; 
	public static final String SEMANTIC_ERROR_IMAGE_FILE_NOT_EXIST = "Error.SemanticError.IMAGE_FILE_NOT_FOUND"; 
	public static final String SEMANTIC_ERROR_INVALID_PROPERTY_NAME = "Error.SemanticError.INVALID_PROPERTY_NAME";