private JavaClassSource createCommand(JavaClassSource command, String commandName, Iterable<String> categories) { MethodSource<JavaClassSource> commandMethod = command.addMethod().setName(toMethodName(command, commandName)) .setReturnType(String.class) .setBody(String.format("return \"Command %s executed\";", commandName)).setPublic(); AnnotationSource<JavaClassSource> commandAnn = commandMethod.addAnnotation(Command.class); List<String> categoryList = new ArrayList<>(Lists.toList(categories)); commandAnn.setStringValue("value", commandName); if (!categoryList.isEmpty()) { commandAnn.setStringArrayValue("categories", categoryList.toArray(new String[categoryList.size()])); } // build the thing return command; }
protected void addAddressAnnotations(JavaClassSource type, ClassPlan plan) { AddressTemplate address = plan.getAddr(); // resource references if (1 == plan.getAddresses().size()) { type.addImport(Address.class); AnnotationSource<JavaClassSource> addressMeta = type.addAnnotation(Address.class); addressMeta.setStringValue(plan.getAddresses().get(0).toString()); } else { type.addImport(Addresses.class); String[] addresses = new String[plan.getAddresses().size()]; int i = 0; for (AddressTemplate addressTemplate : plan.getAddresses()) { addresses[i] = addressTemplate.toString(); i++; } AnnotationSource<JavaClassSource> addressesMeta = type.addAnnotation(Addresses.class); addressesMeta.setStringArrayValue(addresses); } }
protected void addAddressAnnotations(JavaClassSource type, ClassPlan plan) { AddressTemplate address = plan.getAddr(); // resource references if (1 == plan.getAddresses().size()) { type.addImport(Address.class); AnnotationSource<JavaClassSource> addressMeta = type.addAnnotation(Address.class); addressMeta.setStringValue(plan.getAddresses().get(0).toString()); } else { type.addImport(Addresses.class); String[] addresses = new String[plan.getAddresses().size()]; int i = 0; for (AddressTemplate addressTemplate : plan.getAddresses()) { addresses[i] = addressTemplate.toString(); i++; } AnnotationSource<JavaClassSource> addressesMeta = type.addAnnotation(Addresses.class); addressesMeta.setStringArrayValue(addresses); } }
private void createRepositoryConfiguration(JavaClassSource entitySource, Project project) { final String entitySourcePackage = entitySource.getPackage(); // only create repository configuration if we haven't done so already JavaSourceFacet facet = project.getFacet(JavaSourceFacet.class); final DirectoryResource entityPackage = facet.getPackage(entitySourcePackage); final Resource<?> configuration = entityPackage.getChild(REPOSITORY_CONFIGURATION + ".java"); if (configuration == null || !configuration.exists()) { final JavaClassSource source = Roaster.create(JavaClassSource.class) .setName(REPOSITORY_CONFIGURATION) .setPackage(entitySourcePackage); source.addImport("org.springframework.context.annotation.Configuration"); source.addImport("org.springframework.boot.autoconfigure.EnableAutoConfiguration"); source.addImport("org.springframework.transaction.annotation.EnableTransactionManagement"); source.addImport("org.springframework.boot.autoconfigure.domain.EntityScan"); source.addImport("org.springframework.data.jpa.repository.config.EnableJpaRepositories"); source.addAnnotation("Configuration"); source.addAnnotation("EnableAutoConfiguration"); source.addAnnotation("EnableTransactionManagement"); source.addAnnotation("EntityScan") .setStringArrayValue("basePackages", new String[]{entitySourcePackage}); source.addAnnotation("EnableJpaRepositories") .setStringArrayValue("basePackages", new String[]{entitySourcePackage}); facet.saveJavaSource(source); } } }
.setBody("return Response.ok(\"Hello from WildFly Swarm!\").build();"); method.addAnnotation(GET.class); method.addAnnotation(javax.ws.rs.Produces.class).setStringArrayValue(new String[] { MediaType.TEXT_PLAIN }); facet.saveJavaSource(restEndpoint);
method.addAnnotation(Bean.class).setStringArrayValue("name", springBeanAliases); method.addAnnotation(ConditionalOnMissingBean.class).setLiteralValue(model.getShortJavaType() + ".class");
method.addAnnotation(Bean.class).setStringArrayValue("name", springBeanAliases); method.addAnnotation(Scope.class).setLiteralValue("ConfigurableBeanFactory.SCOPE_PROTOTYPE"); method.addAnnotation(ConditionalOnMissingBean.class).setLiteralValue("value", model.getShortJavaType() + ".class");
method.addAnnotation(Bean.class).setStringArrayValue("name", springBeanAliases); method.addAnnotation(ConditionalOnMissingBean.class).setLiteralValue("value", model.getShortJavaType() + ".class");