| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2002 11:36:07
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
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:
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
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/08/2002 12:13:53
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
vou falar como funciona o JDBC, porque esse eu conheco
O DriverManager tem o seguinte metodo:
E quem chama ele, é o driver, enquanto voce inicializa ele:
Quando você faz isso, ele executa o inicializador estático da classe, que por sua vez se registra no DriverManager, avisando que ele é um candidato a driver
Aí, dentro do:
Ele vai de um em um driver, perguntar qual que aceita a string de conexao "x". Quando achar, pega uma Connection com ele, se nao achar, excecao.
O funcionamento do javamail deve ser um pouco diferente, telvez ele tenha os nomes das interfaces hardcodado. Precisa ver no source.
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/08/2002 10:37:48
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
Paulo Silveira wrote:O funcionamento do javamail deve ser um pouco diferente, telvez ele tenha os nomes das interfaces hardcodado. Precisa ver no source.
o jdbc eu tinha pensado que era assim mesmo
sobre o javamail, ele nao registra a classe
e a interface num precisa ta hardcodada mas de algum jeito ele tem q achar as classes q implementam essas interfaces, e como sem registrar?
com o https vc tem q indicar (system property) qual o pacote q vc vai usar pra tomar conta do protocolo...
gui
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/08/2002 12:14:30
|
crolmos
What is classpath?
Membro desde: 21/08/2002 10:15:55
Mensagens: 5
Localização: São Paulo
Offline
|
Na verdade vc não pode criar um Transport desse jeito, vc tem que pedir para o Session criar o Transport
A configuração de qual protocolo será carregado ao se ler a string "SMTP" está no arquivo javamail.default.provider que está dentro do mail.jar, e que tem linhas do tipo
e assim o session sabe qual tipo de transport usar...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/08/2002 14:07:50
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
crolmos wrote:e assim o session sabe qual tipo de transport usar...
brigadao crolmos, isso resolve o misterio de todos os factories desse tipo que conheco.... todos eles tem marcado de uma maneira ou de outra qal a classe que ele deve usar.....
dentre todas essas, a de registrar misturada com a pre-definida sao com certeza a melhor solucao, que, se nao me engano, eh a do https...
guilherme
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/08/2002 14:30:39
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
O guilherme me perguntou em particular quem era o "tiozao" crolmos.
Ele nao eh tiozao nao.
Ele eh o Cesar da faculdade. Se forma agora tambem, e acho que entre nos, eh ele e o Krico que tem mais experiencia em java contado por tempo.
Talvez isso possa fazer dele um Tiozao. Nao sei.
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/08/2002 14:58:14
|
crolmos
What is classpath?
Membro desde: 21/08/2002 10:15:55
Mensagens: 5
Localização: São Paulo
Offline
|
Paulo Silveira wrote:O guilherme me perguntou em particular quem era o "tiozao" crolmos.
Ele nao eh tiozao nao.
Eu esqueci de me apresentar, acho que vou colocar uma foto do lado como o peas
Assim ninguem vai me chamar mais de "tiozao"
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/08/2002 04:18:02
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
paulo, nao sabe as regras de etiqueta? se a gente fala tiozao num email eh pq eh privado
agora me queimei total e vou poder estrear essas carinhas estranhas q tem aqui no forum olha q chique?
bom tioz, oops, quero dizer, cesar, valeu pela ajuda
ps: arquivo sem ser class no .jar eu acho tao feio........... (esteticamente)
gui
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
|
|