#include <gcj/cni.h>

#include <java/io/FileInputStream.h>
#include <java/io/PrintStream.h>
#include <java/lang/System.h>
#include <java/lang/Throwable.h>
#include <javax/xml/parsers/DocumentBuilderFactory.h>
#include <javax/xml/parsers/DocumentBuilder.h>
#include <org/w3c/dom/Document.h>

int main(int argc, char **argv) {
  using namespace java::io;
  using namespace java::lang;
  using namespace javax::xml::parsers;
  using namespace org::w3c::dom;
     
  JvCreateJavaVM(NULL);
  JvAttachCurrentThread(NULL, NULL);
  JvInitClass(&System::class$);
  JvInitClass(&DocumentBuilderFactory::class$);

  DocumentBuilderFactory *factory = DocumentBuilderFactory::newInstance();
  DocumentBuilder *parser = factory->newDocumentBuilder();
  
  try {
    InputStream *in = new FileInputStream(JvNewStringUTF(argv[1]));
    Document *doc = parser->parse(in);
    System::out->println(doc->getXmlEncoding());
  } catch (java::lang::Throwable *ex) {
    ex->printStackTrace();
  }

  JvDetachCurrentThread();
}


