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 SET_THEME_MESSAGE = "Message.SetTheme"; 
	public static final String MOVE_ELEMENT_MESSAGE = "Message.MoveElement"; 
	public static final String INSERT_ELEMENT_MESSAGE = "Message.InsertElement"; 
	public static final String DELETE_ELEMENT_MESSAGE = "Message.DeleteElement"; 
	public static final String SET_EXTENDS_MESSAGE = "Message.SetExtends"; 
	public static final String CHANGE_ITEM_MESSAGE = "Message.ChangeItem"; 
	public static final String ADD_ITEM_MESSAGE = "Message.AddItem"; 
	public static final String INSERT_ITEM_MESSAGE = "Message.InsertItem"; 
	public static final String REMOVE_ITEM_MESSAGE = "Message.RemoveItem"; 
	
	
	public static final String CONTENT_EXCEPTION_STRUCTURE_CHANGE_FORBIDDEN = "Error.ContentException.STRUCTURE_CHANGE_FORBIDDEN"; 
	public static final String CONTENT_EXCEPTION_SLOT_NOT_FOUND = "Error.ContentException.SLOT_NOT_FOUND"; 
	public static final String CONTENT_EXCEPTION_WRONG_TYPE = "Error.ContentException.WRONG_TYPE"; 
	public static final String CONTENT_EXCEPTION_DROP_FORBIDDEN = "Error.ContentException.DROP_FORBIDDEN"; 
	public static final String CONTENT_EXCEPTION_CONTENT_NOT_FOUND = "Error.ContentException.CONTENT_NOT_FOUND"; 
	public static final String CONTENT_EXCEPTION_NOT_CONTAINER = "Error.ContentException.NOT_CONTAINER"; 
	public static final String CONTENT_EXCEPTION_SLOT_IS_FULL = "Error.ContentException.SLOT_IS_FULL"; 
	public static final String CONTENT_EXCEPTION_RECURSIVE = "Error.ContentException.RECURSIVE"; 
	public static final String CONTENT_EXCEPTION_HAS_NO_CONTAINER = "Error.ContentException.HAS_NO_CONTAINER"; 
	public static final String CONTENT_EXCEPTION_MOVE_FORBIDDEN = "Error.ContentException.MOVE_FORBIDDEN"; 
	public static final String CONTENT_EXCEPTION_HAS_DESCENDENTS = "Error.ContentException.HAS_DESCENDENTS"; 
	public static final String CONTENT_EXCEPTION_INVALID_CONTEXT_CONTAINMENT = "Error.ContentException.INVALID_CONTEXT_CONTAINMENT"; 
	public static final String CONTENT_EXCEPTION_CONTENT_NAME_REQUIRED = "Error.ContentException.CONTENT_NAME_REQUIRED"; 
	public static final String CONTENT_EXCEPTION_INVALID_TEMPLATE_ELEMENT = "Error.ContentException.INVALID_TEMPLATE_ELEMENT"; 
	public static final String CONTENT_EXCEPTION_TEMPLATE_TRANSFORM_FORBIDDEN = "Error.ContentException.TEMPLATE_TRANSFORM_FORBIDDEN"; 
	
	public static final String CUSTOM_MSG_EXCEPTION_RESOURCE_KEY_REQUIRED = "Error.CustomMsgException.RESOURCE_KEY_REQUIRED"; 
	public static final String CUSTOM_MSG_EXCEPTION_DUPLICATE_LOCALE = "Error.CustomMsgException.DUPLICATE_LOCALE"; 
	public static final String CUSTOM_MSG_EXCEPTION_INVALID_LOCALE = "Error.CustomMsgException.INVALID_LOCALE";