Usando P4Package (Java) a partir de aplicativo Java para validar diretório Perforce
Pergunta
Em um web-app que estou escrevendo, o usuário deve digitar o caminho no repositório Perforce para o nó que está entrando. A aplicação é suposto para validar que o diretório entrou existe no repo.
Eu tenho o lib (p4.jar) P4Package, e eu estou configurá-lo corretamente o suficiente para que ele funciona para quase tudo, só que desta validação diretório. Estou criando um DirEntry (do p4.jar) usando um Env configurado e um caminho, mas quando eu chamo DirEntry.sync (), ele emite um comando incorreto. Onde quer que ele execute o comando:
p4 [informações de configuração] dirs directory_argument <- usando o comando dirs para validar um dir
Em vez disso, ele emite:
p4 [informações de configuração] dirs directory_argument% 1 <- nota estranha% 1
O que sempre falha, uma vez que nenhum dos diretórios têm uma% 1 no final deles.
Qualquer ajuda? Existe uma maneira diferente para verificar se existe um diretório usando esse pacote?
Solução 3
Assim, o código que eu estava usando tinha um bug que exige me para fazer uma mudança e verificar o código em meu repositório.
No entanto, desde então, Perforce surgiu com seu próprio invólucro Java para o cliente P4 que funciona muito melhor. Eu daria aquele um tiro.
Outras dicas
Parece que o comando sync tem um bug em relação a entradas Dir e o comando. Minha sugestão seria a de apenas rolar o comando mesmo, usando a linha de comando forçosamente como que tem de ser configurado de qualquer maneira, a fim de usar a biblioteca Java.
Process p = Runtime.getRuntime().exec("p4 dirs " + directory_argument);
BufferedReader stdOut = new BufferedReader(new InputReader(p.InputStream()));
//Read the output of the command and process appropriately after this
Gostaria de tentar outra biblioteca, P4Java, em vez disso:
P4Java é muito mais recente e eu encontrei funciona muito melhor do que a P4Package. Ele é usado no projeto Hudson e eu já vi isso na fonte Fisheye, porém, eu não tenho certeza se eles estão usando ou não.