¿Escribir el enlace precompuesto de GIT en java?

Necesito escribir un gancho precompromiso de Git en Java, que verificaría si el código comprometido por el desarrollador está formateado de acuerdo con un formateador de código de eclipse específico antes de comprometerlo, de lo contrario, rechazarlo. ¿Es posible escribir el gancho de precompromiso en Java?

La idea es llamar a un script que a su vez llame a su progtwig Java (verificando el formatting).

Aquí puede ver un ejemplo escrito en python , que llama a Java.

try: # call checkstyle and print output print call(['java', '-jar', checkstyle, '-c', checkstyle_config, '-r', tempdir]) except subprocess.CalledProcessError, ex: print ex.output # print checkstyle messages exit(1) finally: # remove temporary directory shutil.rmtree(tempdir) 

Este otro ejemplo llama directamente a ant , para ejecutar un script ant (que a su vez llama a un set de testings JUnit de Java)

 #!/bin/sh # Run the test suite. # It will exit with 0 if it everything compiled and tested fine. ant test if [ $? -eq 0 ]; then exit 0 else echo "Building your project or running the tests failed." echo "Aborting the commit. Run with --no-verify to ignore." exit 1 fi 

Puede escribir el gancho en cualquier idioma que pueda comprender el shell, con el intérprete configurado correctamente (bash, python, perl), etc.

Pero, ¿por qué no escribir el formateador de código java en java e invocarlo desde el enlace precompromiso?