@Override protected void initSafe() { bindingsProcessors = new BindingsProcessors(logger, utils, outputter); metaInfResource = new MetaInfResource(logger, outputter, META_INF_FILE_NAME); }
private void createMetadataFile(Type gatekeeper) { metaInfResource.writeLine(gatekeeper.getQualifiedName()); metaInfResource.closeWriter(); logger.debug("Default gatekeeper `%s` written to meta data.", gatekeeper); }
private List<String> extractModulesToInstall(URI moduleFile) throws URISyntaxException, IOException { if (moduleFile.toString().contains("!")) { return extractModulesToInstallFromZip(moduleFile); } else { return extractModulesToInstall(Paths.get(moduleFile)); } }
private void maybeGenerateFromMetaData() { List<String> defaultGatekeepers = metaInfResource.readAll(); if (defaultGatekeepers.size() > 1) { logger.error().log("Multiple classes annotated with @DefaultGatekeeper found in classpath. " + "To resolve the issue, create a new default Gatekeeper in the current source path."); } else if (!defaultGatekeepers.isEmpty()) { createBinding(new Type(defaultGatekeepers.get(0))); generated = true; } }
private void flushTokensToMetaInf() { for (String token : tokens) { metaInfResource.writeLine(token); } tokens.clear(); } }
@Override protected void processSafe(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { super.processSafe(annotations, roundEnv); if (roundEnv.processingOver()) { ginModulesMetaData.closeWriter(); } }
private List<String> extractModulesToInstall(List<URL> moduleFiles) throws URISyntaxException, IOException { List<String> modules = new ArrayList<>(); for (URL moduleFile : moduleFiles) { modules.addAll(extractModulesToInstall(moduleFile.toURI())); } return modules; }
public void writeLine(String line) { ensureWriter(); try { writer.write(line); writer.newLine(); } catch (IOException e) { logger.error().throwable(e).log("Could not to write in metadata file '%s'.", type); throw new UnableToProcessException(); } }
private void ensureAppDataIsInitialized() { if (registryFile == null) { registryFile = outputter.prepareSourceFile(REGISTRY_TYPE); bindingsProcessors.process(newBinding( MAIN_MODULE_TYPE, new Type(PlaceTokenRegistry.class), REGISTRY_TYPE, Singleton.class)); tokens.addAll(metaInfResource.readAll()); } }
private void addModulesToMetaInf(Set<? extends Element> moduleElements) { logger.debug("Processing GWTP modules meta data."); for (Element moduleElement : moduleElements) { String moduleType = asType(moduleElement).getQualifiedName().toString(); ginModulesMetaData.writeLine(moduleType); } } }
@Override protected void processAsModule(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { extractNameTokens(roundEnv); flushTokensToMetaInf(); if (roundEnv.processingOver()) { metaInfResource.closeWriter(); } }
private List<String> extractModulesToInstallFromZip(URI uri) throws IOException { Map<String, Object> env = new HashMap<>(); String[] paths = uri.toString().split("!"); try (FileSystem fileSystem = newFileSystem(URI.create(paths[0]), env)) { return extractModulesToInstall(fileSystem.getPath(paths[1])); } }
private void ensureModuleIsCreated() { if (!moduleCreated) { bindingsProcessors.process(newModule(MAIN_MODULE_TYPE)); installModules(ginModulesMetaData.readAll()); moduleCreated = true; } }
@Override protected void initSafe() { bindingsProcessors = new BindingsProcessors(logger, utils, outputter); ginModulesMetaData = new MetaInfResource(logger, outputter, GIN_MODULES_META_INF_NAME); }
public List<String> readAll() { try { String metadataFileName = "META-INF/" + type.getSimpleName(); List<URL> moduleFiles = Collections.list(getClass().getClassLoader().getResources(metadataFileName)); return extractModulesToInstall(moduleFiles); } catch (IOException | URISyntaxException e) { logger.error().throwable(e).log("Could not read metadata file '%s'.", type); throw new UnableToProcessException(); } }
@Override protected void initSafe() { bindingsProcessors = new BindingsProcessors(logger, utils, outputter); metaInfResource = new MetaInfResource(logger, outputter, META_INF_FILE_NAME); tokens = new HashSet<>(); }