Configurar DataSource próprio no iReport

Pessoal, criei um DataSource próprio para o Jasper (do original do Jasper que processar XML é muito lento), com isso preciso agora fazer o iReport também enxergar para conseguir utiliza-lo corretamente.

Vi que o iReport ao criar uma nova conexão para um arquivo XML ele aponta para:

Já tenho um classe desenvolvida para trabalhar da forma da original, porém não sei como fazer o iReport utiliza-la ao criar uma nova conexão para um arquivo XML qualquer. Alguém já fez ou sabe como fazer isso?

Esta tua classe revolucionária estende de JRXMLDataSourceConnection?

hehehe, não é tão revolucionária assim, somente mais rápida, mas sim, a versão original (que serve para meu ERP Java gerar o relatório em si) não, mas agora estou montando uma nova que extende JRXMLDataSourceConnection.

E fiquei na dúvida em como definir o iReport para trabalhar com ela.

Como os métodos que permitem gerar os relatórios recebem a JRXMLDataSourceConnection, provavelmente consiga trabalhar com as suas subclasses. Porém, será necessário sobrescrever os métodos adequados para ter o resultado esperado.

Ok, estou montando, na verdade são poucas as diferenças.

Então em teoria, basta desenvolver esta classe, adicionar ao CLASSPATH do iReport e definir um Custom DataSource?

Teoricamente, sim. Na prática, pode ser bem diferente.

Ok, vlw pela ajuda, estou finalizando e vou testar, o problema agora vai ficar em como deixar o nome do arquivo XML que será a fontes de dados ser dinâmico…

Problema? Esse arquivo será lido pelo novo XMLDataSource ou virá como parâmetro da aplicação mesmo?

Aliás, eu faria diferente. Eu realizaria a leitura do xml pelo java e faria através do JRBeanDataSource…

Problema? Esse arquivo será lido pelo novo XMLDataSource ou virá como parâmetro da aplicação mesmo?[/quote]

É que eu queria deixar tipo o XML DataSource padrão do iReport, o desenvolvedor iria inserir o path do seu arquivo XML de dados, realmente esta seria a situação ideal para o meu caso.

O problema é que gerei um pequeno App que vai ler o XML, gerar um dataSource (com a classe custom que fiz) e enviar para o Jasper gerar o relatório, isso já está funcionando bem.

A principio um Bean complica, pois tenho N sistemas diferentes que enviam XML de dados para o meu App Java e nem todos eles são em Java.

Meu maior problema agora é que dentro do iReport que fazemos o design dos relatórios não tem mais como fazer o Preview, pois dentro do subReport que criamos já enviamos o link para a minha classe custom do dataSource e como a raiz é instanciada pela classe “padrão do Jasper” dá problema de CAST (óbvio).

Por isso estou tentando fazer o iReport entender que ele tem que abandonar o método antigo e instanciar a minha custom DataSource.

Espero ter sido claro o suficiente.