<p>I was struggling to get BIRT to recognize my pojo.jar file until I happened upon this video. Note very early on the 3 methods that must be implemented in order for the BIRT wizards to accept your pojo class. <a data-ipb='nomediaparse' href='
http://www.birt-exchange.com/be/download/demos/PojoDataSource.mp4'>http://www.birt-exchange.com/be/download/demos/PojoDataSource.mp4</a></p><p> </p><p>What I haven't been able to find is the interface within the BIRT designer or report api. If you find it, please post it here...</p><p> </p><p>Here's the implementation of the interface to save you the typing

:</p><p> </p><div><div>[font="'courier new', courier, monospace;"]package pojo;[/font]</div><div> </div><div>[font="'courier new', courier, monospace;"]import java.util.Map;[/font]</div><div> </div><div>[font="'courier new', courier, monospace;"]public interface BirtPojoFactory {[/font]</div><div> </div><div>[font="'courier new', courier, monospace;"] /**[/font]</div><div>[font="'courier new', courier, monospace;"] * Initialize data for the report.[/font]</div><div>[font="'courier new', courier, monospace;"] * [/font]</div><div>[font="'courier new', courier, monospace;"] *
@param appContext[/font]</div><div>[font="'courier new', courier, monospace;"] *
@param dataSetParamValues[/font]</div><div>[font="'courier new', courier, monospace;"] */[/font]</div><div>[font="'courier new', courier, monospace;"] public void open(Object appContext, Map<String, Object> dataSetParamValues);[/font]</div><div> </div><div>[font="'courier new', courier, monospace;"] /**[/font]</div><div>[font="'courier new', courier, monospace;"] * Return the next data item or null if there aren't any.[/font]</div><div>[font="'courier new', courier, monospace;"] * [/font]</div><div>[font="'courier new', courier, monospace;"] *
@return next data item or null.[/font]</div><div>[font="'courier new', courier, monospace;"] * [/font]</div><div>[font="'courier new', courier, monospace;"] */[/font]</div><div>[font="'courier new', courier, monospace;"] public Object next();[/font]</div><div> </div><div>[font="'courier new', courier, monospace;"] public void close();[/font]</div><div> </div><div>[font="'courier new', courier, monospace;"]}[/font]</div><div> </div></div><p> </p>