public void setConf(Configuration conf) { config = conf; if (applicationDescriptorPath == null) throw new RuntimeException("GATE application path is null"); // create one instance of the GATE application // need to avoid concurrent access to the application try { if (inited == false) { File gateHome = new File(applicationDescriptorPath.getFile()).getParentFile(); LOG.info("Setting GATE_HOME as " + gateHome); File pluginsHome = new File(gateHome, "plugins"); // the config files are in the job archive - not in the GATE // application // zip // File siteConfigFile = new File(conf // .getResource("site-gate.xml").getFile()); // File userConfig = new File(conf.getResource("user-gate.xml") // .getFile()); Gate.runInSandbox(true); Gate.setGateHome(gateHome); Gate.setPluginsHome(pluginsHome); // Gate.setSiteConfigFile(siteConfigFile); // Gate.setUserConfigFile(userConfig); // the builtInCreoleDir files // are stored in the same place as the config ones // Gate.setBuiltinCreoleDir(conf.getResource("creole.xml")); Gate.init(); inited = true; } corpus = Factory.newCorpus("DummyCorpus"); this.GATEapplication = (CorpusController) PersistenceManager.loadObjectFromUrl(applicationDescriptorPath); // load the annotation and feature filters from the configuration this.filters = GATEAnnotationFilters.getFilters(config); } catch (Exception e) { LOG.error("Encountered error while initialising GATE", e); throw new RuntimeException(e); } }