Name qn = metaModel.getHandle().getPackageName().append("assets"); if(!context.isCopyFromSourcesExternallyManaged()) {
Name pkg = entry.getKey(); ProcessingContext env = metaModel.processingContext; ElementHandle.Package pkgHandle = ElementHandle.Package.create(pkg); PackageElement pkgElt = env.get(pkgHandle); Boolean minify = (Boolean)annotation.get("minify");
public static Package create(PackageElement elt) { return new Package(Name.parse(elt.getQualifiedName())); }
Name pkg = entry.getKey(); ProcessingContext env = metaModel.processingContext; ElementHandle.Package pkgHandle = ElementHandle.Package.create(pkg); PackageElement pkgElt = env.get(pkgHandle); Boolean minify = (Boolean)annotation.get("minify");
Name qn = metaModel.getHandle().getPackageName().append("assets"); if(!context.isCopyFromSourcesExternallyManaged()) {
Name pkg = metaModel.getHandle().getPackageName(); ProcessingContext env = metaModel.processingContext; List<AnnotationState> webJars = (List<AnnotationState>)annotation.get("value"); String path = "META-INF/maven/org.webjars/" + id + "/pom.properties"; URL resource = WebJarAssetLocator.class.getClassLoader().getResource(path); ElementHandle.Package pkgHandle = ElementHandle.Package.create(pkg); PackageElement pkgElt = env.get(pkgHandle); if (resource == null) {
Name pkg = metaModel.getHandle().getPackageName(); ProcessingContext env = metaModel.processingContext; List<AnnotationState> webJars = (List<AnnotationState>)annotation.get("value"); String path = "META-INF/maven/org.webjars/" + id + "/pom.properties"; URL resource = WebJarAssetLocator.class.getClassLoader().getResource(path); ElementHandle.Package pkgHandle = ElementHandle.Package.create(pkg); PackageElement pkgElt = env.get(pkgHandle); if (resource == null) {
PackageElement element = context.get(env); if (element == null) { throw new IllegalArgumentException("Package element cannot be resolved " + context); log.info("Found eclipse source path " + sourcePath + " for package " + context.getPackageName()); return sourcePath; if (sourcePath == null) { try { log.info("Trying to find a native file system for package " + context.getPackageName()); List<? extends AnnotationMirror> annotations = element.getAnnotationMirrors(); if (annotations.size() > 0) { log.info("Found package " + context.getPackageName() + " annotations " + annotations + " will use first one"); AnnotationMirror annotation = annotations.get(0); ClassLoader cl = env.getClass().getClassLoader(); JavaFileObject file = (JavaFileObject)getSourceFileMethod.invoke(cu); URI uri = file.toUri(); log.info("Resolved uri " + uri + " for package " + context.getPackageName()); File f = new File(uri.getPath()); if (f.exists() && f.isFile()) { log.info("No path object for package " + context.getPackageName()); log.info("Package " + context.getPackageName() + " is not annotated (does not make sense)"); log.info("Found cached source path " + sourcePath.getDescription() + " for package " + context.getPackageName());
PackageElement element = context.get(env); if (element == null) { throw new IllegalArgumentException("Package element cannot be resolved " + context); log.info("Found eclipse source path " + sourcePath + " for package " + context.getPackageName()); return sourcePath; if (sourcePath == null) { try { log.info("Trying to find a native file system for package " + context.getPackageName()); List<? extends AnnotationMirror> annotations = element.getAnnotationMirrors(); if (annotations.size() > 0) { log.info("Found package " + context.getPackageName() + " annotations " + annotations + " will use first one"); AnnotationMirror annotation = annotations.get(0); ClassLoader cl = env.getClass().getClassLoader(); JavaFileObject file = (JavaFileObject)getSourceFileMethod.invoke(cu); URI uri = file.toUri(); log.info("Resolved uri " + uri + " for package " + context.getPackageName()); File f = new File(uri.getPath()); if (f.exists() && f.isFile()) { log.info("No path object for package " + context.getPackageName()); log.info("Package " + context.getPackageName() + " is not annotated (does not make sense)"); log.info("Found cached source path " + sourcePath.getDescription() + " for package " + context.getPackageName());
if (relative) { context.info("Resolving classpath asset " + path); Name qn = application.getHandle().getPackageName().append("assets"); FileObject src; try {
if (relative) { context.info("Resolving classpath asset " + path); Name qn = application.getHandle().getPackageName().append("assets"); FileObject src; try {
simpleName = metaModel.getBaseName() + "Servlet"; Name clazz = pkg.getPackageName().append(simpleName); Writer writer = null; try { JavaFileObject file = metaModel.processingContext.createSourceFile(clazz, pkgElt); writer = file.openWriter(); writer.append("package ").append(pkg.getPackageName()).append(";\n"); writer.append("import javax.servlet.annotation.WebServlet;\n"); writer.append("import javax.servlet.annotation.WebInitParam;\n"); writer.append("@Override\n"); writer.append("protected String getApplicationName(javax.servlet.ServletConfig config) {\n"); writer.append("return \"").append(pkg.getPackageName()).append("\";\n"); writer.append("}\n"); writer.append("}\n"); throw CANNOT_WRITE_SERVLET_CLASS.failure(e, pkgElt, pkg.getPackageName());
simpleName = metaModel.getBaseName() + "Servlet"; Name clazz = pkg.getPackageName().append(simpleName); Writer writer = null; try { JavaFileObject file = metaModel.processingContext.createSourceFile(clazz, pkgElt); writer = file.openWriter(); writer.append("package ").append(pkg.getPackageName()).append(";\n"); writer.append("import javax.servlet.annotation.WebServlet;\n"); writer.append("import javax.servlet.annotation.WebInitParam;\n"); writer.append("@Override\n"); writer.append("protected String getApplicationName(javax.servlet.ServletConfig config) {\n"); writer.append("return \"").append(pkg.getPackageName()).append("\";\n"); writer.append("}\n"); writer.append("}\n"); throw CANNOT_WRITE_SERVLET_CLASS.failure(e, pkgElt, pkg.getPackageName());
@Override public void processAnnotationAdded(ApplicationMetaModel metaModel, AnnotationKey key, AnnotationState added) { if (metaModel.getHandle().equals(key.getElement())) { List<Map<String, Serializable>> value = (List<Map<String, Serializable>>)added.get("value"); Integer maxAge = (Integer)added.get("maxAge");
@Override public void processAnnotationAdded(ApplicationMetaModel metaModel, AnnotationKey key, AnnotationState added) { if (metaModel.getHandle().equals(key.getElement())) { List<Map<String, Serializable>> value = (List<Map<String, Serializable>>)added.get("value"); Integer maxAge = (Integer)added.get("maxAge");
public static ElementHandle<?> create(Element elt) { ElementKind kind = elt.getKind(); switch (kind) { case FIELD: { VariableElement variableElt = (VariableElement)elt; return Field.create(variableElt); } case CLASS: { TypeElement typeElt = (TypeElement)elt; return Type.create(typeElt); } case PACKAGE: { PackageElement packageElt = (PackageElement)elt; return Package.create(packageElt); } case METHOD: { ExecutableElement packageElt = (ExecutableElement)elt; return Method.create(packageElt); } default: throw new UnsupportedOperationException("Element " + elt + " with kind " + kind + " not supported"); } }
public static ElementHandle<?> create(Element elt) { ElementKind kind = elt.getKind(); switch (kind) { case FIELD: { VariableElement variableElt = (VariableElement)elt; return Field.create(variableElt); } case CLASS: { TypeElement typeElt = (TypeElement)elt; return Type.create(typeElt); } case PACKAGE: { PackageElement packageElt = (PackageElement)elt; return Package.create(packageElt); } case METHOD: { ExecutableElement packageElt = (ExecutableElement)elt; return Method.create(packageElt); } default: throw new UnsupportedOperationException("Element " + elt + " with kind " + kind + " not supported"); } }
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { if (count++ == 0) { try { ProcessingContext ctx = new ProcessingContext(processingEnv); ElementHandle.Package pkg = ElementHandle.Package.create(ctx.getPackageElement("compiler.dot.foo")); FileObject file = ctx.resolveResourceFromSourcePath(pkg, FileKey.newName("compiler.dot.foo", "a.b.txt")); InputStream in = file.openInputStream(); FileObject o = ctx.createResource(StandardLocation.CLASS_OUTPUT, FileKey.newName("compiler.dot.foo", "a.b.css")); OutputStream out = o.openOutputStream(); Tools.copy(in, out); Tools.safeClose(in); Tools.safeClose(out); } catch (Exception e) { throw failure(e); } } return true; } });
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { if (count++ == 0) { try { ProcessingContext ctx = new ProcessingContext(processingEnv); ElementHandle.Package pkg = ElementHandle.Package.create(ctx.getPackageElement("compiler.dot.foo")); FileObject file = ctx.resolveResourceFromSourcePath(pkg, FileKey.newName("compiler.dot.foo", "a.b.txt")); InputStream in = file.openInputStream(); FileObject o = ctx.createResource(StandardLocation.CLASS_OUTPUT, FileKey.newName("compiler.dot.foo", "a.b.css")); OutputStream out = o.openOutputStream(); Tools.copy(in, out); Tools.safeClose(in); Tools.safeClose(out); } catch (Exception e) { throw failure(e); } } return true; } });
private Properties loadBundle(ProcessingContext context, ElementHandle.Package pkg, String bundleName) { Path.Absolute absolute = pkg.getPackageName().resolve(bundleName + ".properties"); FileObject bundle = context.resolveResourceFromSourcePath(pkg, absolute); if (bundle != null) { try { InputStream in = bundle.openInputStream(); Properties properties = new Properties(); properties.load(in); return properties; } catch (IOException e) { context.log(Level.SEVERE, "Could not load resource bundle", e); } } return null; } // end::loadBundle[]