estou desenvolvendo um framework que monitora os bancos de dados disponíveis para uma aplicação. Até aí tudo bem… mas o caso é que eu gostaria de inicializar o sistema sem necessidade de intervenção do programador, ou seja:
Não vale Class.forName();
Não vale usar AOP para detectar método main (o framework pode ser embutido em sistema J2SE ou J2EE);
Não quero obrigar o desenvolvedor a estender nenhuma classe, implementar alguma interface, etc.
Bom… fiz um “olá, mundo” com os agentes, e funcionou, e tal… só que eu tive que usar a opção -javaagent, pra executar por linha de comando. Você sabe de alguma maneira de executar sem isso? Quer dizer… inicializou um jar, tem outro jar no classpath que já tme as devidas opções no Manifest, é só inicializar?
Trocando em miúdos… tem alguma maneira automatizada de fazer a invocação do agente, sem precisar modificar a chamada ao Jar?
Porque o sistema não seria “meu”; estou desenvolvendo um framework. Esse framework trata não só de monitorar o banco de dados, mas também de redirecionar automaticamente um EntityManager, Connection, qualquer coisa assim, para um banco de dados disponível. Percebe o tamanho da encrenca que seria fazer um driver JDBC wrapper?
Leia a mesma referência que lhe passei, mas no título “Starting Agents After VM Startup”. Obviamente a sua versão da JVM deve aceitar esses tais agents.