Forçar o compilador GWT a interromper a remoção de CompilationUnits inválidos

Eu tenho um projeto no PlayN que me permite compilar uma única base de código java para todas as plataformas sob o sol; Eu estou construindo contra o tronco gwt, que atualmente permite que o GWT.create () seja chamado em implementações de java puro. Existem alguns obstáculos para saltar, ou seja, chamar ServerGwtBridge.getInstance (). Register (String.class, new ClassInstantiator () {...}); para cada classe a ser usada pelo GWT.create ().

Então, em vez de codificar manualmente cada ligação, eu configurei algumas anotações em minhas classes e fiz um gerador que cospe o código de inicialização necessário para registrar osInteratators de classe. O gerador funciona bem em módulos gwt, e eu fiz um mojo maven para executar o gerador em minhas classes java puro também. Então, agora todos os meus módulos, gwt, java e android podem usar o GWT.create (), e eu posso suportar a sintaxe replace-with dos arquivos do módulo gwt.xml.

O problema é que quaisquer classes que fazem referência a qualquer classe ou método não suportado pelo gwt são removidas pelo pré-compilador gwt. Eles ainda estão presentes no cache da unidade, mas o TypeOracle do gerador não os vê mais. Eu não quero copiar e colar grandes faixas de código para impedir que o compilador remova as unidades inválidas; Eu vi alguma referência de código NameEnvironmentAnswer que parece permitir unidades inválidas na compilação, mas não consegui descobrir como fazê-lo funcionar.

Eu não tenho nenhuma intenção de vincular esse código, eu só quero um TypeOracle preenchido para o meu gerador para executar, e isso significa que eu preciso do compilador para parar a remoção de unidades inválidas.

questionAnswers(0)

yourAnswerToTheQuestion