Criar Plugin... Ajuda!

1 resposta
J

Galera, como posso criar um programa com suporte a plugins ??
Por exemplo esse meu programa terá uma pasta "plugins"... então eu vou e crio um outro projeto que será meu plugin... que terá apenas um método que retorna uma string "Hello World" !!! então pego o jar e jogo na pasta "plugin" do meu projeto principal.

Como fazer a integração, ou seja executar metodos do plugin no meu programa principal ??

Já criei estes dois projetos e usei o ClassLoader para carregar este modulo ao meu programa principal e deu td certo !!!

O grande problema aqui é como utilizo os recursos oferecidos pelo novo modulo ????

Segue o Código: PROJETO 2: PLUGIN
public class Plugin
{
    public void metodoPlugin()
    {
        System.out.println("Hello World !");
    }
}
PROJETO 1: PRINCIPAL
public class Principal
{
    public static void main(String[] args)
    {
        try
        {
            //Nada de mais, apenas busca o jar e carrega a unica classe
            File f = new File("\\plugin\\Plugin.jar");
            URLClassLoader urlCl = new URLClassLoader(new URL[] { f.toURI().toURL()},System.class.getClassLoader());
            Class classe =  urlCl.loadClass("pacote.Plugin");
            //imprime corretamente o nome da classe carregada
            System.out.println(classe.getName());


            //????????????
            // como posso chamar os metodos ? INTERFACE ? REFLECTION
            
        } 
        catch (MalformedURLException | ClassNotFoundException ex)
        {
            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
        }          
    }
}

Espero ter sido claro !

Abraços

1 Resposta

Ataxexe

Você poderia usar OSGi pra isso em vez de reinventar a roda (e essa aí dá bastante trabalho).

Criado 24 de abril de 2013
Ultima resposta 25 de abr. de 2013
Respostas 1
Participantes 2