Refine search
@Override public String generate (TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); assert (oracle != null); JClassType type = oracle.findType(typeName); if (type == null) { logger.log(ERROR, "Couldn't find type '" + typeName + "'"); throw new UnableToCompleteException(); } if (type.isInterface() == null) { logger.log(ERROR, "Type '" + typeName + "' must be an interface"); throw new UnableToCompleteException(); } ReflectionCacheSourceCreator source = new ReflectionCacheSourceCreator(logger, context, type); return source.create(); } }
@Override public String generate (TreeLogger logger, GeneratorContext context, String typeName) throws UnableToCompleteException { TypeOracle oracle = context.getTypeOracle(); assert (oracle != null); JClassType type = oracle.findType(typeName); if (type == null) { logger.log(ERROR, "Couldn't find type '" + typeName + "'"); throw new UnableToCompleteException(); } if (type.isInterface() == null) { logger.log(ERROR, "Type '" + typeName + "' must be an interface"); throw new UnableToCompleteException(); } ReflectionCacheSourceCreator source = new ReflectionCacheSourceCreator(logger, context, type); return source.create(); } }
private void ensureNoGssFile(URL[] resources, TreeLogger logger) throws UnableToCompleteException { for (URL stylesheet : resources) { if (stylesheet.getFile().endsWith(".gss")) { logger.log(Type.ERROR, "GSS is not enabled. Add the following line to your gwt.xml file " + "to enable it: " + "<set-configuration-property name=\"CssResource.enableGss\" value=\"true\" />"); throw new UnableToCompleteException(); } } }
private boolean ensureEitherCssOrGss(List<URL> resources, TreeLogger logger) throws UnableToCompleteException { boolean css = resources.get(0).toString().endsWith(".css"); for (URL stylesheet : resources) { if (css && !stylesheet.toString().endsWith(".css")) { logger.log(Type.ERROR, "Only either css files or gss files are supported on one interface"); throw new UnableToCompleteException(); } else if (!css && !stylesheet.toString().endsWith(".gss")) { logger.log(Type.ERROR, "Only either css files or gss files are supported on one interface"); throw new UnableToCompleteException(); } } return css; }
private String getClosureHelpers(TreeLogger logger) throws UnableToCompleteException { try { return Utility.getFileFromClassPath("com/google/gwt/junit/linker/closurehelpers.js"); } catch (IOException e) { logger.log(Type.ERROR, "Can't load closurehelpers.js", e); throw new UnableToCompleteException(); } } }
private static ConfigurationProperty findProperty( TreeLogger logger, Iterable<com.google.gwt.core.ext.linker.ConfigurationProperty> properties, String propName) throws UnableToCompleteException { for (ConfigurationProperty prop : properties) { if (prop.getName().equals(propName)) { return prop; } } logger.log(TreeLogger.ERROR, "Could not find configuration property " + propName); throw new UnableToCompleteException(); }
/** * Write the bundled image into a byte array, so that we can compute its * strong name. */ private static byte[] createImageBytes(TreeLogger logger, BufferedImage bundledImage) throws UnableToCompleteException { byte[] imageBytes; try { ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream(); boolean writerAvailable = ImageIO.write(bundledImage, BUNDLE_FILE_TYPE, byteOutputStream); if (!writerAvailable) { logger.log(TreeLogger.ERROR, "No " + BUNDLE_FILE_TYPE + " writer available"); throw new UnableToCompleteException(); } imageBytes = byteOutputStream.toByteArray(); } catch (IOException e) { logger.log(TreeLogger.ERROR, "An error occurred while trying to write the image bundle.", e); throw new UnableToCompleteException(); } return imageBytes; }
private void validateExternalClasses(Set<String> externalClasses, Set<String> externalClassCandidates, JMethod method, TreeLogger logger) throws UnableToCompleteException { if (!isStrictResource(method)) { return; } boolean hasError = false; for (String candidate : externalClassCandidates) { if (!externalClasses.contains(candidate)) { logger.log(Type.ERROR, "The following non-obfuscated class is present in a strict " + "CssResource: " + candidate + ". Fix by adding String accessor " + "method(s) to the CssResource interface for obfuscated classes, " + "or use an @external declaration for unobfuscated classes."); hasError = true; } } if (hasError) { throw new UnableToCompleteException(); } }
/** * Re-encode an image as a PNG to strip random header data. */ private static URL renderToTempPngFile(TreeLogger logger, ImageBundleBuilder builder, Arranger arranger) throws UnableToCompleteException { try { byte[] imageBytes = builder.render(logger, arranger); if (imageBytes == null) { return null; } File file = File.createTempFile(ImageResourceGenerator.class.getSimpleName(), ".png"); file.deleteOnExit(); Util.writeBytesToFile(logger, file, imageBytes); return file.toURI().toURL(); } catch (IOException ex) { logger.log(TreeLogger.ERROR, "Unable to write re-encoded PNG", ex); throw new UnableToCompleteException(); } }
/** * Re-encode an image as a PNG to strip random header data. */ private URL reencodeToTempFile(TreeLogger logger, ImageRect rect) throws UnableToCompleteException { try { byte[] imageBytes = ImageBundleBuilder.toPng(logger, rect); if (imageBytes == null) { return null; } File file = File.createTempFile(ImageResourceGenerator.class.getSimpleName(), ".png"); file.deleteOnExit(); Util.writeBytesToFile(logger, file, imageBytes); return file.toURI().toURL(); } catch (IOException ex) { logger.log(TreeLogger.ERROR, "Unable to write re-encoded PNG", ex); throw new UnableToCompleteException(); } }
public static String concatCssFiles(List<URL> resources, TreeLogger logger) throws UnableToCompleteException { StringBuffer buffer = new StringBuffer(); for (URL stylesheet : resources) { try { String fileContent = Resources.asByteSource(stylesheet).asCharSource(Charsets.UTF_8) .read(); buffer.append(fileContent); buffer.append("\n"); } catch (IOException e) { logger.log(TreeLogger.ERROR, "Unable to parse CSS", e); throw new UnableToCompleteException(); } } return buffer.toString(); }
logger.log(TreeLogger.ERROR, "Unexpected IOException", e); throw new UnableToCompleteException(); logger.log(TreeLogger.ERROR, "Internal error: manifest file does not include a serviceClass"); throw new UnableToCompleteException(); logger.log(TreeLogger.ERROR, "Internal error: manifest file does not include a path"); throw new UnableToCompleteException();
private boolean writeClassMethod(TreeLogger logger, JMethod userMethod, Map<String, String> substitutionMap, SourceWriter sw) throws UnableToCompleteException { if (userMethod.getParameters().length > 0) { logger.log(Type.ERROR, "The method [" + userMethod.getName() + "] shouldn't contain any " + "parameters"); throw new UnableToCompleteException(); } String name = getClassName(userMethod); String value = substitutionMap.get(name); if (value == null) { logger.log(Type.ERROR, "The following style class [" + name + "] is missing from the source" + " CSS file"); return false; } else { writeSimpleGetter(userMethod, "\"" + value + "\"", sw); } return true; }
public static LocalizedImage create(TreeLogger logger, ResourceContext context, ImageResourceDeclaration image) throws UnableToCompleteException { URL[] resources = ResourceGeneratorUtil.findResources(logger, context, image.getMethod()); if (resources.length != 1) { logger.log(TreeLogger.ERROR, "Exactly one image may be specified", null); throw new UnableToCompleteException(); } URL resource = resources[0]; LocalizedImage toReturn = new LocalizedImage(image, resource); return toReturn; }
@Override public void prepare(TreeLogger logger, ResourceContext context, ClientBundleRequirements requirements, JMethod method) throws UnableToCompleteException { URL[] urls = ResourceGeneratorUtil.findResources(logger, context, method); if (urls.length != 1) { logger.log(TreeLogger.ERROR, "Exactly one resource must be specified", null); throw new UnableToCompleteException(); } URL resource = urls[0]; String toWrite = Util.readURLAsString(resource); // This de-duplicates strings in the bundle. if (!hashes.containsKey(toWrite)) { hashes.put(toWrite, currentIndex++); if (!first) { data.append(",\n"); } else { first = false; } data.append('"'); data.append(Generator.escape(toWrite)); data.append('"'); } // Store the (possibly n:1) mapping of resource function to bundle index. offsets.put(method.getName(), hashes.get(toWrite)); }
gssEnabled = Boolean.parseBoolean(enableGss); } catch (BadPropertyValueException ex) { logger.log(Type.ERROR, "Unable to determine if GSS need to be used"); throw new UnableToCompleteException(); .toUpperCase(Locale.ROOT)); } catch (BadPropertyValueException ex) { logger.log(Type.ERROR, "Unable to conversion mode for GSS"); throw new UnableToCompleteException(); gssDefaultInUiBinder = Boolean.parseBoolean(uiBinderGssDefaultValue); } catch (BadPropertyValueException ex) { logger.log(Type.ERROR, "Unable to determine default for GSS in UiBinder"); throw new UnableToCompleteException();
@Override public void prepare(TreeLogger logger, ResourceContext context, ClientBundleRequirements requirements, JMethod method) throws UnableToCompleteException { if (method.getReturnType().isInterface() == null) { logger.log(TreeLogger.ERROR, "Return type must be an interface"); throw new UnableToCompleteException(); } URL[] resourceUrls = findResources(logger, context, method, gssOptions.isEnabled()); if (resourceUrls.length == 0) { logger.log(TreeLogger.ERROR, "At least one source must be specified"); throw new UnableToCompleteException(); } CssParsingResult cssParsingResult = parseResources(Lists.newArrayList(resourceUrls), context, logger); cssParsingResultMap.put(method, cssParsingResult); for (String permutationAxis : cssParsingResult.permutationAxes) { try { context.getRequirements().addPermutationAxis(permutationAxis); } catch (BadPropertyValueException e) { logger.log(TreeLogger.ERROR, "Unknown deferred-binding property " + permutationAxis, e); throw new UnableToCompleteException(); } } }
throw new UnableToCompleteException(); "<set-configuration-property name=\"CssResource.conversionMode\" value=\"lenient\" />"; logger.log(Type.ERROR, message, e); throw new UnableToCompleteException(); } catch (IOException e) { logger.log(Type.ERROR, "Error while writing temporary css file", e); throw new UnableToCompleteException(); } finally { if (tempFile != null) {
charset = Charset.forName(styleSheetCharset); } catch (UnsupportedCharsetException e) { logger.log(Type.ERROR, "Unsupported charset found: " + styleSheetCharset); throw new UnableToCompleteException(); branchLogger.log(TreeLogger.ERROR, "Unable to parse CSS", e); throw new UnableToCompleteException();
if (toReturn != null) { if (mtime != 0 && mtime <= toReturn.getTimestamp()) { logger.log(TreeLogger.DEBUG, "Using cached result"); return toReturn.getCopyOfStylesheet(); } else { logger.log(TreeLogger.DEBUG, "Invalidating cached stylesheet"); continue; } catch (CSSException e) { branchLogger.log(TreeLogger.ERROR, "Unable to parse CSS", e); } catch (IOException e) { branchLogger.log(TreeLogger.ERROR, "Unable to parse CSS", e); } catch (URISyntaxException e) { branchLogger.log(TreeLogger.ERROR, "Unable to parse CSS", e); throw new UnableToCompleteException(); throw new UnableToCompleteException();