zharsing Posted November 7, 2019 Share Posted November 7, 2019 Hi everybody,I am looking to add my custom RepositoryService to Jaspersoft Studio. I have implemented a custom protocol using a new URLStreamHandlerFactory. My code works just fine when use it in my application, although I would like to have the same functionality in the workbench at design time.CustomRepositoryService.javaimport java.io.IOException;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;import java.net.URLStreamHandler;import java.util.Arrays;import net.sf.jasperreports.engine.DefaultJasperReportsContext;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperReportsContext;import net.sf.jasperreports.engine.SimpleJasperReportsContext;import net.sf.jasperreports.repo.DefaultRepositoryService;import net.sf.jasperreports.repo.RepositoryService;public class CustomRepositoryService extends DefaultRepositoryService { public CustomRepositoryService(JasperReportsContext parent) { super(parent); setURLStreamHandlerFactory(proto -> { return "myproto".equals(proto) ? new URLStreamHandler() { @Override protected URLConnection openConnection(URL u) throws IOException { return new URLConnection(u) { @Override public void connect() throws IOException { // noop } @Override public InputStream getInputStream() throws IOException { // do custom stuff to retrieve the data stream return super.getInputStream(); } }; } } : null; }); }}[/code]Usage example snippet SimpleJasperReportsContext ctx = new SimpleJasperReportsContext(); CustomRepositoryService repositoryService = new CustomRepositoryService(DefaultJasperReportsContext.getInstance()); ctx.setExtensions(RepositoryService.class, Arrays.asList(repositoryService)); JasperFillManager fillManager = JasperFillManager.getInstance(ctx); JasperPrint jasperPrint = fillManager.fill(jasperReport, parameters);[/code]JRXML example snippet [/code]Is it possible to attach this solution to the Jaspesoft Studio?Is there a better way to achieve the same goal?Any help would be much appreciated!Best Regards,Zsolt Link to comment Share on other sites More sharing options...
Solution zharsing Posted November 11, 2019 Author Solution Share Posted November 11, 2019 Hi anybody,I managed to make it work as an Extension based on this javadochttp://jasperreports.sourceforge.net/api/net/sf/jasperreports/extensions/package-summary.htmlBest Regards,Zsolt Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now