Abstração para tratamento de arquivos texto em Java  XML
Índice dos Fóruns » Notícias
Autor Mensagem
fcoury
JavaChild
[Avatar]

Membro desde: 17/10/2006 16:24:36
Mensagens: 142
Localização: Campinas, SP - Brazil
Offline

Amigos do GUJ,

Tem algum tempo que estou escrevendo a biblioteca JFileHelpers, que abstrai a complexidade de trabalhar com arquivos-texto em java, fazendo uso de anotações para automatizar o trabalho.

Quem estiver interessado, dê uma lida no artigo que postei no meu Blog a respeito:
http://blog.felipecoury.com/jep/2008/02/java-text-import-export.html

Se gostarem do trabalho e tiverem interesse, estou precisando de contribuidores

Abraços a todos!

Felipe Gonçalves Coury
--
Arquivos texto em java: http://jfilehelpers.com
Visite meu blog: http://blogs.felipecoury.com
[WWW] [MSN]
andreban
JavaTeenager

Membro desde: 11/07/2006 10:41:57
Mensagens: 188
Localização: Rio de Janeiro
Offline

Achei interessante.

Fiquei curioso com duas coisas:

1a: Como ele trabalha com arquivos grandes, tipo... uns 2 gigas.

2a: Consegue trabalhar com registro variável, tipo... se o primeiro caracter for 1, o registro significa uma coisa, se for 2 significa outra... Isso é muito comum quando a gente integra com pessoal que gera arquivos em Cobol...

Estou querendo ajudar no projeto... Como fazer?

--== http://www.codemansion.com/ ==-- Blog de Desenvolvimento Android e Games

-== http://mobplug.com/ ==-- Simple products, powerful solutions!
SCJA | SJCP | SCJD | SCWCD
fcoury
JavaChild
[Avatar]

Membro desde: 17/10/2006 16:24:36
Mensagens: 142
Localização: Campinas, SP - Brazil
Offline

andreban,

Primeiro de tudo, me mande um e-mail ou uma mensagem privada que eu dou acesso de developer no projeto, daí vc baixa via SVN e pode começar a dar uma fuçada.

Agora respondendo:

1: Boa pergunta! Posso ser sincero? Não tenho a menor idéia... Aliás, seria uma ótima área para ser atacada!

2: Sim, há suporte para este cenário sim, além de layout de mestre-detalhe. Não tenho nenhum exemplo escrito ainda para registros condicionais, mas segue um enum que ilustra as possibilidades de registros condicionais:

Com isso você processa linhas diferentes com beans diferentes. Além disso, segue um trecho de MasterDetail, que implementa um Selector, que pode ser usado para também para registros condicionais:

Espero ter ilustrado, por alto, os cenários atendidos pela biblioteca.

Abraços!

This message was edited 1 time. Last update was at 12/02/2008 23:00:44


Felipe Gonçalves Coury
--
Arquivos texto em java: http://jfilehelpers.com
Visite meu blog: http://blogs.felipecoury.com
[WWW] [MSN]
gastaldi
Smalltalk

Membro desde: 29/01/2007 15:13:53
Mensagens: 4
Offline

Um projeto recente que manipula isso de uma forma interessante é o Spring - Batch : http://static.springframework.org/spring-batch/
De repente você poderia contribuir para este projeto.

Vlw.
fcoury
JavaChild
[Avatar]

Membro desde: 17/10/2006 16:24:36
Mensagens: 142
Localização: Campinas, SP - Brazil
Offline

gastaldi,

Nossa, li por cima a descrição deste projeto e parece fantástico. Vou dar uma olhada sem dúvidas.

Obrigado pela dica!

Abraços.

Felipe Gonçalves Coury
--
Arquivos texto em java: http://jfilehelpers.com
Visite meu blog: http://blogs.felipecoury.com
[WWW] [MSN]
kicolobo
Moderador
[Avatar]

Membro desde: 19/07/2006 14:11:09
Mensagens: 1188
Localização: Belo Horizonte
Offline

MUITO bacana o projeto.

Recentemente tive de fazer um trabalho de importação/exportação de dados para um dado ERP famoso e inacreditávelmente tosco que era inteiramente baseada em arquivos no formato texto tais como os que são manipulados pela sua biblioteca. E foi um processo incrívelmente trabalhoso, sua biblioteca me teria quebrado um tronco de sequóia. Parabéns.

Arquivos txt formatados são algo que infelizmente ou felizmente ainda são MUITO usados na indústria, e que estão completamente esquecidos atualmente.

NO entanto, fiquei com uma dúvida: você pode definir a ordem dos campos? Ou a ordem é definida de acordo com a ordem na qual os atributos das classes são declarados na classe?

Outra pergunta: qual a licença que você vai aplicar a esta biblioteca? E como devemos proceder para participar do seu projeto?

http://devkico.itexto.com.br

Twitter: http://www.twitter.com/loboweissmann

Vamos aprender Grails?
http://www.grailsbrasil.com.br
[WWW] [MSN] [ICQ]
fcoury
JavaChild
[Avatar]

Membro desde: 17/10/2006 16:24:36
Mensagens: 142
Localização: Campinas, SP - Brazil
Offline

kicolobo,

MUITO bacana o projeto.

(...)

Arquivos txt formatados são algo que infelizmente ou felizmente ainda são MUITO usados na indústria, e que estão completamente esquecidos atualmente.


Obrigado pelos comentários. Concordo plenamente: infelizmente o velho formato texto ainda é padrão para muita coisa. Prá ser bem sincero, eu não vejo tanta evolução em usar XML não. Veja bem: isso é uma opinião extremamente pessoal, não quero começar nenhum flame war com o pessoal que defende XML com unhas e dentes E também, isso são another five hundred

Meu maior desejo agora é arrumar um caso de uso para esta biblioteca, gostaria de colocá-la a prova. Então se você (ou qualquer outra pessoa que esteja lendo este tópico) precisar automatizar um import ou export de arquivo texto, manda uma MP, e-mail ou até mesmo mensagem nos fóruns que eu dou uma ajuda. Seria bem legal.

NO entanto, fiquei com uma dúvida: você pode definir a ordem dos campos? Ou a ordem é definida de acordo com a ordem na qual os atributos das classes são declarados na classe?


Hoje é usada a ordem natural que eles aparecem no bean (nunca tinha parado prá pensar nisso!), mas nada impede de implementar alguma anotação - ou até um parâmetro de uma anotação - para manipular isso.

Outra pergunta: qual a licença que você vai aplicar a esta biblioteca? E como devemos proceder para participar do seu projeto?


Ela está com a licença GPL hoje, com aquele disclaimer nos cabeçalhos do Código Fonte. Editado: Pô, esqueci de responder a mais importante: para contribuir fale comigo que eu libero seu usuário do SourceForge no projeto. Beleza? Pode ser por MP ou e-mail. Possíveis pessoas que possam contribuir são MUITO bem vindas.

Abraços!

This message was edited 2 times. Last update was at 13/02/2008 14:55:25


Felipe Gonçalves Coury
--
Arquivos texto em java: http://jfilehelpers.com
Visite meu blog: http://blogs.felipecoury.com
[WWW] [MSN]
loquaz
What is classpath?

Membro desde: 31/07/2006 09:41:06
Mensagens: 7
Offline

Existe algum "user guide"?
fcoury
JavaChild
[Avatar]

Membro desde: 17/10/2006 16:24:36
Mensagens: 142
Localização: Campinas, SP - Brazil
Offline

loquaz,

Existe algum "user guide"?


Como todo projeto que se preza em seu início: documentação zero Existe uma vasta documentação do projeto inspirador, em C#: http://www.filehelpers.com. Portar a documentação para Java é uma coisa que tenho muita vontade que aconteça também, mas se vc estiver com pressa, acredito que usar o link que mandei como referência é simples. C# e Java tem suas diferenças mas quase sempre dá pra entender e portar intuitivamente.

Abraços!

Felipe Gonçalves Coury
--
Arquivos texto em java: http://jfilehelpers.com
Visite meu blog: http://blogs.felipecoury.com
[WWW] [MSN]
loquaz
What is classpath?

Membro desde: 31/07/2006 09:41:06
Mensagens: 7
Offline

Fala irmão,

Primeiro lugar, parabenizar pela iniciativa e pedir desculpas por não ter felicitado-te no post anterior...rs

seguinte, ainda não baixei o source pra verificar a API, mas queria saber se existe como configurar a engine no momento da instanciação indicando meu bean deve ter seus campos mapeados para posições no layout que constam em linhas diferentes.

Exemplo (fictio e bobo por questões de simplicidade) :

Tenho o bean Celular com os campos: id, modelo, marca, agenda, fabricante.
Fabricante é um tipo de referencia definido por mim, então as informações dos seus campos constaram em uma linha após as informações basicas do celular (id, modelo, marca, agenda)

1, V50, motorola, 100 ---> info basica do bean Celular
1, Motorola, 0000151 ---> info basica do bean Fabricante

existe a possibilidade de ler um arquivo neste formato? onde as informações para cada registro constam em mais de uma linha?

Desde já agradecido,

Abração!
fcoury
JavaChild
[Avatar]

Membro desde: 17/10/2006 16:24:36
Mensagens: 142
Localização: Campinas, SP - Brazil
Offline

loquaz,

Obrigado mesmo pelas felicitações Eu considero que só o fato de a pessoa ter tirado um tempo para responder já é em si uma felicitação, então sem problemas!

... queria saber se existe como configurar a engine no momento da instanciação indicando meu bean deve ter seus campos mapeados para posições no layout que constam em linhas diferentes.


É possível sim, mas você vai ter que fazer uma diferenciação entre as linhas (por exemplo, linhas pares mapeiam para o bean do tipo A e linhas ímpares para o bean do tipo B -- ou usar algum tipo de identificador único que caracterize as linhas, como um caractere ou expressão que elas contenham).

No exemplo que vc citou, uma das possibilidades que me vêm à cabeça agora é de existirem dois beans, um Celular e outro Fabricante. Na hora de definir o Engine, vc passa prá ele um Selector, dizendo qual registro é mapeado para qual bean. Se as regras pré existentes não lhe atenderem, vc pode sempre implementar um delegate para definir como é feito o mapeamento...

Se quiser saber mais, baixe o código fonte e dê uma olhada nas classes JUnit que vêm junto. Existem vários casos abordados por lá.

Abração!

Editado: BBCode quote e URL estavam errados...

This message was edited 1 time. Last update was at 13/02/2008 19:33:04


Felipe Gonçalves Coury
--
Arquivos texto em java: http://jfilehelpers.com
Visite meu blog: http://blogs.felipecoury.com
[WWW] [MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Felipe, tudo bem?

Vi seu projeto e parece legal. Mas um de nossos fornecedores sugeriu usarmos sua biblioteca para leitura de flat files.

Entrei no site do projeto e, como arquiteto do projeto, fiquei preocupado com algumas coisas:

1) Falta de documentação e exemplos
2) Versão atual (qual é)? É alhpa, beta, final estável?
3) Qual o status do projeto? Parado, em pleno vapor, morto?
4) Há mais desenvolvedores trabalhando, uma comunidade, ou só você?

São considerações que devo levar ao escolher uma solução para um projeto corporativo grande.

Abraços

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
fcoury
JavaChild
[Avatar]

Membro desde: 17/10/2006 16:24:36
Mensagens: 142
Localização: Campinas, SP - Brazil
Offline

Oi Daniel,

Vamos lá:

danieldestro wrote:
1) Falta de documentação e exemplos

A falta principal não é de nenhum dos dois, e sim de tempo mesmo

No próprio projeto existem exemplos e JUnit tests que ajudam a ver as possibilidades do projeto. Além disso, ele é um port do FileHelpers (veja em http://www.filehelpers.com).

danieldestro wrote:
2) Versão atual (qual é)? É alhpa, beta, final estável?

Ele deve ser considerado como alpha, nunca foi testado em um projeto em produção. Seria algo muito interessante, mas também não ocorreu por falta de oportunidade.


danieldestro wrote:
3) Qual o status do projeto? Parado, em pleno vapor, morto?

Por enquanto, parado, quase morto Eu tenho planos de fazer um site com detalhes sobre a biblioteca, mas voltamos ao ponto 1)

danieldestro wrote:
4) Há mais desenvolvedores trabalhando, uma comunidade, ou só você?

Tem mais um desenvolvedor na Inglaterra que implementou algumas melhorias. Fora isso, é Felipe Futebol Clube mesmo

danieldestro wrote:
São considerações que devo levar ao escolher uma solução para um projeto corporativo grande.


E faz muito bem! Eu acredito que esta biblioteca esteja em um ponto onde possa começar a ser utilizada para coisas não-críticas, porém em um projeto em produção, acho muito arriscado, embora tenho maior interesse em amadurecer a biblioteca.

É isso.

Abraços e boa sorte!

Felipe Gonçalves Coury
--
Arquivos texto em java: http://jfilehelpers.com
Visite meu blog: http://blogs.felipecoury.com
[WWW] [MSN]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Se fosse eu o responsável pela implementação do módulo do sistema, eu até apostaria. Mas como sou eu o responsável pela escolha da tecnologia corporativamente, fico receoso.

Tecnicamente parece muito bom, mas todos sabem que não são apenas questões técnicas que levam às escolhas tecnológicas num projeto.

Mesmo assim, obrigado.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
faq
JavaChild
[Avatar]

Membro desde: 03/08/2005 15:06:13
Mensagens: 147
Offline

danieldestro wrote:Se fosse eu o responsável pela implementação do módulo do sistema, eu até apostaria. Mas como sou eu o responsável pela escolha da tecnologia corporativamente, fico receoso.

Tecnicamente parece muito bom, mas todos sabem que não são apenas questões técnicas que levam às escolhas tecnológicas num projeto.

Mesmo assim, obrigado.


Se o mesmo projeto (idêntico) fosse IBM-SUN-MS-WTF o seu "fico receoso" ainda seria fato? Se o projeto parece bom, gaste algumas horas num estudo de caso.

"There are worse things than being alone" Charles Bukowski
 
Índice dos Fóruns » Notícias
Ir para:   
Powered by JForum 2.1.8 © JForum Team