private String addJavaVerticle(Project project, String packageName, String className, boolean isMain) {
JavaSourceFacet source = project.getFacet(JavaSourceFacet.class);
String topLevelPackage;
if (packageName == null) {
topLevelPackage = source.getBasePackage();
} else {
topLevelPackage = packageName;
}
if (className.endsWith(".java")) {
className = className.substring(0, className.length() - ".java".length());
}
JavaClassSource mainVerticle = Roaster.create(JavaClassSource.class)
.setPackage(topLevelPackage)
.setAbstract(false)
.setName(className)
.setSuperType("io.vertx.core.AbstractVerticle");
mainVerticle
.addImport("io.vertx.core.*");
mainVerticle.addMethod().setName("start").setBody(
"vertx.createHttpServer().requestHandler(req -> req.response().end(\"Hello World!\")).listen(8080);")
.setPublic()
.addAnnotation(Override.class);
JavaResource resource = source.saveJavaSource(mainVerticle.getEnclosingType());
if (isMain) {
ForgeUtils.addPropertyToProject(project, "vertx.verticle", topLevelPackage + "." + className);
}
addJavaVerticleTest(project,packageName,className);
return resource.toString();
}