Segue novo projeto de classes utilitárias, desenvolvido por min com ajuda de outros desenvolvedores ao longo deste ano, a idéia principal é manter classes utilitárias neste projeto e que possam ser utilizados por desenvolvedores em qualquer projeto.
Segue a primeira versão com algumas funcionalidades básicas, todas testadas, que usamos no dia a dia, caso alguém se interesse em contribuir ao projeto favor entrar em contato.
Este projeto terá continuidade, mas com a ajuda da comunidade poderá ir mais longe!!
*Todas as versões teram compatibilidade com as versões anteriores e os testes serão obrigatórios!
Na segunda versão(0.2) possui as seguintes funcionalidades:
[list]BufferedFileReader - Classe para facilitar a leitura de arquivos textos[/list]
[list]BufferedFileReaderConverter - Classe que converte as linhas de um arquivo em objetos java de acordo com um layout criado dinamicamente para leitura de arquivos no formato texto[/list]
[list]BufferedFileWriterConverter - Classe que converte objetos java em um layout criado dinamicamente para gravação em arquivos no formato texto[/list]
[list]CharSymbols - Formatação, Remoção de Simbolos de String …[/list]
[list]CpfCnpjUtils - Formatação, Validação de Cpf/Cnpj[/list]
[list]Cryptography - Criptografia com algoritmos MD5 e SHA-1[/list]
[list]DateFormat - Formatação, Parse de Date/Calendar[/list]
[list]FTPApacheCommonsNetImpl - Classe para facilitar o uso de uma comunicação com um FTP.[/list]
[list]HexaDecimalUtils - Conversão em HexaDecimal.[/list]
[list]IOUtils - Classes com métodos para manuseio de arquivos ou dispositivos I/O[/list]
[list]JSMin - Minimizador de codigo JavaScript.[/list]
[list]Logradouro - Classe para converter, formatar, obter unificar informações de logradouro.[/list]
[list]RealExtensiveName - Formatação de valores decimais em formato texto por extenso.[/list]
[list]ReflectField - Classe para setar ou obter os valores de atributos de classes atraves de reflection.[/list]
[list]ReflectUtils - Classe com algumas funções de Reflection para facilitar algumas coisas.[/list]
[list]RomanNumber - Classe para converter numeros inteiros em numeros romanos, ou virce versa[/list]
[list]SimpleFileWriter - Classe para simplificar a escrita de dados em arquivos no formato texto.[/list]
[list]StringUtils - Formatação, Parse, Pad, Truncate, Abreviação de nomes/sobrenomes, remoção de acentuação …[/list]
[list]XMLUtils - Validação de XML a partir de um XSD Schema, Criação de Xml.[/list]
[list]XMLSchemaValidate - Validação de XML a partir de um arquivo, url de XSD Schema[/list]
[list]ZipUtils - Utilitário para compactar/descompactar arquivos no formato zip.[/list]
[list]ZipFileCreator - Classe com métodos para compactar arquivos, diretorios no formato zip.[/list]
Olhei rapidamente e o projeto parece ser um bom canivete suíço, pois tem várias coisas úteis ao dia a dia de um programador Java.
Porém é uma pena que tenha sido usada a licença GPLv3, o que a torna proibitiva a muitos projetos, principalmente a projetos que usam a licença Apache 2 (a mais usada em projetos Java) e projetos fechados.
sobre o assunto de licenças eu ñ sou muito familiarizado. mas como tem bastante detalhes no termo desta licença posso ter passado desapercebido com algumas regras, mais analisando eu percebi onde está o erro, no google code onde o projeto está armazenado estava selecionado como GPLv3 porem o projeto é LGPLv3, nos fontes da biblioteca(src/svn) está como LGPLv3+, foi uma falha minha.
/* * Copyright (c) 2010 Felipe Priuli
*
* This file is part of OpenSutils-Br4J.
*
* OpenSutils-Br4J is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, any later version.
*
* OpenSutils-Br4J is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Foobar. If not, see <http://www.gnu.org/licenses/>.
*/
com está licença é permitida o uso em qualquer sistemas, fechado(corporativo) ou não(open source)…
E se alguém postar, contribuir nos fóruns do GUJ com qualquer funcionalidade porfavor me informem para adicionar no proj. E tb se alguém tiver interesse de contribuir ou ajudar no proj. favor entrar em contato.
Eu estou muito precisando gerar as XML da NF-e, eu estou usando o JAXB, já dei um parse nos XSD da NF-e, ai depois os proximos passos não consigo, já tenho o metodo que assina as notas, e tenho esse metodo que altera uma nota já gerada.
As classes de xml que tem neste projeto (OpenSutils-Br4j) só conseguem obter os erros de construção de um xml que estiver diferente de uma regra de um Schema (xsd).
Abaixo estou mostrando como verificar os erros de construção de um xml:
[code]
try{
/*EXEMPLO. Tem que ser a URL do arquivo xsd. (Só tem métodos para URL se tiver em arquivo na sua maquina tera que disponibilizar no seu localhost
(Nesta versão ainda só tem por URL) ou então olhar o codigo que eu faço e vc impementar o seu para pegar de um diretorio da maquina e não url
*/
String url = "http://www.nfe.fazenda.gov.br/portal/schemas.aspx/arquivoDeValidacaoAEncontrar.xsd";
XMLUtils.validateXML("<meuXML></meuXML>", url);
//Chegou aki, não existem erros pois passou na validação do Schema.
}catch (XMLException xmlE){
List list = xmlE.getListErro();
for(XMLElementError elError : list){
System.out.println("Descrição erro: “+elError.getError()+” linha: “+elError.getRow()+” coluna: "+elError.getColumn());
}
}
[/code]
Espero que ajude, se não me engano tb o site na Nfe tem um lugar q vc coloca o xml em um textarea do site e ele verifica se tem erros!!
Boa sorte!!, addicionei no msn.
Adicionado novas funcionalidades no projeto (versão 0.2), dentre elas estão classes para trabalhar com leitura e escrita de arquivos que conseguem converter linhas de texto em objetos java, ou vice-versa de maneira dinâmica, um layout é criado a partir de objetos que convertem texto(String) para Objeto(Object), ou vice-versa e escrevem ou faz a leitura de arquivos texto. Eu utilizei bastante em um sistema de gerenciamento de layout dinâmico, onde os layout eram cadastrado por um site. Dentre as funcionalidades estão:
[list] Classe para converter números inteiros em números romanos, ou virce-versa[/list]
[list] Classe para setar ou obter os valores de atributos de classes através de reflection.[/list]
[list] Classes com métodos para manuseio de arquivos ou dispositivos I/O[/list]
[list] Classe que converte as linhas de um arquivo em objetos java de acordo com um layout criado dinamicamente para leitura de arquivos no formato texto[/list]
[list] Classe que converte objetos java em um layout criado dinamicamente para gravação em arquivos no formato texto[/list]
[list] Validação de XML a partir de um arquivo, url de XSD Schema[/list]
Métodos adicionados em classes existentes:
[list]DateFormat.trunc(Date date)[/list]
[list]IOUtils.closeIgnore(Closeable c)[/list]
[list]IOUtils.closeIgnore(Socket s)[/list]
[list]IOUtils.copy(InputStream in, OutputStream out, int bufferSize)[/list]
[list]IOUtils.copy(Reader in, Writer out, int bufferSize)[/list]
[list]IOUtils.getExtension(String filename)[/list]
[list]IOUtils.getNameFile(String filename)[/list]
[list]IOUtils.removeExtension(String filename)[/list]
[list]IOUtils.toString(InputStream inputStream, int bufferSize)[/list]
[list]IOUtils.toString(Reader reader, int bufferSize) [/list]
[list]ReflectUtils.clone(Class classType, T value)[/list]
[list]ReflectUtils.getValuesInCollection(Collection collection, String nameField)[/list]
[list]ReflectUtils.getIdsFieldInCollection(Collection collection)[/list]
[list]ReflectUtils.toString(Object obj, boolean recursive)[/list]
[list]StringUtils.truncateAndRightPad(String value,int maxLength, String pad)[/list]
[list]StringUtils.truncateAndLeftPad(String value,int maxLength, String pad)[/list]
[list]StringUtils.nullToEmpty(String value)[/list]
[list]StringUtils.nullToEmpty(String value)[/list]
[list]StringUtils.isNullOrEmpty(String value)[/list]
[list]ZipFileCreator.addDirectory(File dir)[/list]