Tanto a API do javamail como a do jsse e http usam um pattern q eu nao faco ideia do nome e nem de como eles fazem isso, queria saber se alguem sabe como eles fazem isso.
Basicamente voce fala assim:
Message msg = new Message();
Transport transport = new Transport(protocol);
transport.send(msg);
Substituindo a variavel pelo protocolo desejado. No caso do jsse e http eh na hora q cria uma conexao a partir de um objeto java.net.URL.
Entaum, minha duvida eh, como ele faz para achar as implementacoes do protocolo uma vez que as classes que implementam o protocolo estao em packages nada a ver com o da classe Transport (por exemplo). Como ele faz pra descobrir que esse protocolo esta disponivel?
Pra ver se eh disponivel eh soh achar as classes que implementam uma Interface de protocolo e pegar um metodo getProtocolName() ou qq coisa do genero.
Mas como descobrir quem implementa esta interface?
Se nao me engano o JDBC tambem usa um pattern meio assim, no caso dele voce pode ou registrar a classe que pode ser usada com o DriverManager ou NAO.
Naoe ntendo direito,
Abraco
Gui