Criar Plugin... Ajuda!

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

[code]
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);
    }          
}

}[/code]

Espero ter sido claro !

Abraços

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