List of usage examples for com.google.gwt.dev.cfg ModuleDefLoader loadFromClassPath
public static ModuleDef loadFromClassPath(TreeLogger logger, String moduleName, boolean refresh) throws UnableToCompleteException
From source file:com.google.gdt.eclipse.designer.hosted.tdz.HostedModeSupport.java
License:Open Source License
/** * Load a module./*from ww w . jav a 2 s. co m*/ * * @param moduleName * a Name of the module to load. * @param outDir * @return the loaded module. */ private ModuleDef loadModule(String moduleName) throws Exception { //boolean assumeFresh = !alreadySeenModules.contains(moduleName); ModuleDef moduleDef = ModuleDefLoader.loadFromClassPath(getLogger(), moduleName, true/*!assumeFresh*/); //alreadySeenModules.add(moduleName); assert moduleDef != null : "Required module state is absent"; return moduleDef; }
From source file:gwt.ns.webworker.rebind.WorkerFactoryGenerator.java
License:Apache License
@Override public String generate(TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle typeOracle = context.getTypeOracle(); // find type, subinterface of WorkerFactory JClassType sourceType = typeOracle.findType(typeName); if (sourceType == null) { logger.log(TreeLogger.ERROR, "Could not find type " + typeName); throw new UnableToCompleteException(); }// w w w. j a v a 2s . c o m // name of class to be String genName = sourceType.getSimpleSourceName() + "Impl" + getSourceSuffix(); String pkgName = sourceType.getPackage().getName(); String fullName = pkgName + "." + genName; PrintWriter out = context.tryCreate(logger, pkgName, genName); // finished if already generated if (out != null) { // retrieve name of Worker module from annotation WorkerModuleDef workerDef = sourceType.getAnnotation(WorkerModuleDef.class); if (workerDef == null) { logger.log(TreeLogger.ERROR, "WorkerFactory declaration must be " + "annotated with module name."); throw new UnableToCompleteException(); } String moduleName = workerDef.value(); // better way? should be cached after first load (in this process) ModuleDef modDef; try { modDef = ModuleDefLoader.loadFromClassPath(logger, moduleName, true); } catch (UnableToCompleteException e) { logger.log(TreeLogger.ERROR, "An attempt to load the Worker module annotated, \"" + moduleName + "\", failed. See preceeding error."); throw e; } // basic module validity check: one entry point extending valid // Worker entry point class. // checked here so as to fail as soon as possible // only one entrypoint is supported for now String[] entryPoints = modDef.getEntryPointTypeNames(); if (entryPoints.length < 1) { logger.log(TreeLogger.ERROR, "Worker defined in " + moduleName + " must have an entry point specified."); throw new UnableToCompleteException(); } else if (entryPoints.length > 1) { logger.log(TreeLogger.ERROR, "Only a single entry point is currently supported. " + moduleName + " appears to define more than one:"); for (String enPoint : entryPoints) logger.log(TreeLogger.ERROR, "EntryPoint: " + enPoint); throw new UnableToCompleteException(); } // check to make sure entrypoint is worker compatible JClassType workerEntryType = typeOracle.findType(entryPoints[0]); JClassType superEntryType = typeOracle.findType(WorkerEntryPoint.class.getCanonicalName()); if (!workerEntryType.isAssignableTo(superEntryType)) { logger.log(TreeLogger.ERROR, "Worker EntryPoint " + workerEntryType.getName() + " must be assignable to " + superEntryType.getName()); throw new UnableToCompleteException(); } // generate WebWorker factory generateWorkerFactory(logger, context, sourceType, genName, out, modDef, workerEntryType); } return fullName; }
From source file:org.cruxframework.crux.tools.codeserver.CodeServer.java
License:Apache License
protected void processUserAgent() { if (userAgent == null) { PrintWriterTreeLogger logger = new PrintWriterTreeLogger(); logger.setMaxDetail(TreeLogger.Type.INFO); CompilerContext emptyCompilerContext = new CompilerContext.Builder().build(); try {//from www . java 2 s.c o m String moduleFullName = Modules.getInstance().getModule(moduleName).getFullName(); ModuleDef moduleDef = ModuleDefLoader.loadFromClassPath(logger, emptyCompilerContext, moduleFullName); BindingProperty userAgentProperty = (BindingProperty) moduleDef.getProperties().find("user.agent"); userAgent = userAgentProperty.getFirstAllowedValue(); if (userAgent == null) { throw new ConsoleParametersProcessingException(MSG_CAN_NOT_DETERMINE_THE_USER_AGENT); } else { CodeServer.logger.info("User Agent not provided. Using first valid value found on module " + moduleFullName + ".gwt.xml."); } } catch (UnableToCompleteException e) { throw new ConsoleParametersProcessingException(e.getCause()); } } }