Módulo: um conjunto de código único que pode ser reusado
Biblioteca: Módulo que realiza tarefa(s) e oferece uma interface para uso. Normalmente precisa de uma aplicação hospedeira para executar.
Framework: Uma biblioteca especializada em determinado domínio de aplicação, capaz de executar independentemente que permite ser customizado por plugins
Quando é mais vantajoso gerí-lo independente da aplicação que o usa
Ele não deve mudar com a aplicação?
Ele será usado por outros?
Não será muito difícil geri lo?
Você tem tempo para isto?
Problema: Como gerar PDF a partir de uma aplicação WEB
https://jersey.java.net/documentation/latest/mvc.html
Veja que só com o @Template o Jersey é a capaz de detectar qual o formato de saíde (‘ooo’) e selecionar o renderizador adequado
O Jasper para renderizar um pdf usa duas informações:
Uma é a lista de elementos, constituída por elementos do mesmo tipo que serão renderizados em uma parte do pdf que repete para cada um deles;
Outra é o mapa de propriedades, contituído por chave=>valor, que pode ser resgatado pelo jasper e renderizado em qualquer ponto do PDF.
Por isto a entrada de um arquivo jasper não pode ser um elemento qualquer, como numa saída normal do jersey
O exemplo foi muito simplificado, pois não é foco da apresentação explicar a library, mas sim qual seu impacto no desenvolvimento de software