tc.Deploy se perdendo quando se cria um jar com pacotes com mudança de caso
Aparentemente, o tc.Deploy
se perde quando há distinção de caso em nomes de pacotes e pastas dos arquivos dentro do .jar
. Vou manter essa issue aberta até ser aberta uma específica para tratar esse caso.
Por exemplo, pegue essas duas classes:
br.com.file.App
br.com.File.Marmota
Na hora da geração do .jar
, em um sistema de arquivos case insensitive, o que ocorrerá é o seguinte:
- vai ser criada a pasta
br/com/file/
- vai ser criado o arquivo
br/com/file/App.class
- vai ser criado o arquivo
br/com/file/Marmota.class
Como é case insensitive, o ClassLoader
vai encontar a classe br.com.File.Marmota
no caminho br/com/file/Marmota.class
sem problemas e tudo continuaria funcionando no mesmo FS.
Porém, quando vai para o .jar
, ele mantém a mesma estrutura do FS. Quando o tc.Deploy
lista os arquivos dentro do zip
, ele mantém uma relação dos caminhos dos arquivos em uma coleção, porém ele compila pelo nome das classes. Então, ao procurar pela classe br.com.File.Marmota
, ele não a encontrará na relação e lançará o NullPointerException
.
Advindo do #220