public void init() { ThreadPoolExecutor executor = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), Runtime.getRuntime().availableProcessors(), 1, TimeUnit.HOURS, new ArrayBlockingQueue<>(5)); PrintStream oldErr = System.err; PrintStream oldOut = System.out; PrintStream nop = new PrintStream(new ByteArrayOutputStream()); System.setErr(nop); System.setOut(nop); executor.submit(new PackageLoader(this, Ifc2x3tc1Package.eINSTANCE, Schema.IFC2X3TC1)); executor.submit(new PackageLoader(this, Ifc4Package.eINSTANCE, Schema.IFC4)); executor.submit(new PackageLoader(this, GeometryPackage.eINSTANCE, Schema.GEOMETRY)); executor.submit(new PackageLoader(this, StorePackage.eINSTANCE, Schema.STORE)); executor.submit(new PackageLoader(this, LogPackage.eINSTANCE, Schema.LOG)); executor.shutdown(); try { executor.awaitTermination(1, TimeUnit.HOURS); } catch (InterruptedException e) { LOGGER.error("", e); } System.setErr(oldErr); System.setOut(oldOut); initDependencies(); }