use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class ControllerOperationsImpl method getInstalledControllerMVCResponseTypes.
/**
* This method gets all implementations of ControllerMVCResponseService
* interface to be able to locate all installed ControllerMVCResponseService
*
* @return Map with responseTypes identifier and the
* ControllerMVCResponseService implementation
*/
public Map<String, ControllerMVCResponseService> getInstalledControllerMVCResponseTypes() {
if (responseTypes.isEmpty()) {
try {
ServiceReference<?>[] references = this.context.getAllServiceReferences(ControllerMVCResponseService.class.getName(), null);
for (ServiceReference<?> ref : references) {
ControllerMVCResponseService responseTypeService = (ControllerMVCResponseService) this.context.getService(ref);
boolean isInstalled = false;
for (Pom module : getProjectOperations().getPoms()) {
if (responseTypeService.isInstalledInModule(module.getModuleName())) {
isInstalled = true;
break;
}
}
if (isInstalled) {
responseTypes.put(responseTypeService.getResponseType(), responseTypeService);
}
}
return responseTypes;
} catch (InvalidSyntaxException e) {
LOGGER.warning("Cannot load ControllerMVCResponseService on ControllerOperationsImpl.");
return null;
}
} else {
return responseTypes;
}
}
use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class ThymeleafMetadataProviderImpl method getJasperReportsMap.
/**
* Finds `JasperReportsExporter` for providing Metadata with its package.
* This method is temporal as `JasperReportsExporter` should be moved to
* other support project.
*/
public Map<String, JavaType> getJasperReportsMap() {
if (this.jasperReportsExporterMap == null) {
Map<String, JavaType> jasperReportsExporterMap = new HashMap<String, JavaType>();
Collection<Pom> modules = getProjectOperations().getPoms();
for (Pom module : modules) {
Collection<JavaType> typesForModule = getTypeLocationService().getTypesForModule(module);
for (JavaType type : typesForModule) {
if (type.getSimpleTypeName().equals("JasperReportsExporter")) {
jasperReportsExporterMap.put("JasperReportsExporter", type);
} else if (type.getSimpleTypeName().equals("JasperReportsCsvExporter")) {
jasperReportsExporterMap.put("JasperReportsCsvExporter", type);
} else if (type.getSimpleTypeName().equals("JasperReportsPdfExporter")) {
jasperReportsExporterMap.put("JasperReportsPdfExporter", type);
} else if (type.getSimpleTypeName().equals("JasperReportsXlsExporter")) {
jasperReportsExporterMap.put("JasperReportsXlsExporter", type);
} else if (type.getSimpleTypeName().equals("ExportingErrorException")) {
// Get ExportingErrorException
jasperReportsExporterMap.put("ExportingErrorException", type);
}
}
}
this.jasperReportsExporterMap = new HashMap<String, JavaType>();
this.jasperReportsExporterMap.putAll(jasperReportsExporterMap);
}
return this.jasperReportsExporterMap;
}
use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class WebFinderOperationsImpl method checkAndUseApplicationModule.
/**
* Checks if module provided in package is an application module. If not, find an
* application module and use it with default package.
*
* @param controllerPackage the provided JavaPackage to check
* @return
*/
private JavaPackage checkAndUseApplicationModule(JavaPackage controllerPackage) {
if (!typeLocationService.hasModuleFeature(projectOperations.getPomFromModuleName(controllerPackage.getModule()), ModuleFeatureName.APPLICATION)) {
LOGGER.log(Level.WARNING, "Focused or specified module isn't an application module (containing a class " + "annotated with @SpringBootApplication). Looking for an application module and default package...");
// Validate that project has at least one application module
Validate.notEmpty(typeLocationService.getModuleNames(ModuleFeatureName.APPLICATION), "The project must have at least one application module to publish web finders.");
// Get the first application module
String moduleName = typeLocationService.getModuleNames(ModuleFeatureName.APPLICATION).iterator().next();
Pom module = projectOperations.getPomFromModuleName(moduleName);
controllerPackage = new JavaPackage(typeLocationService.getTopLevelPackageForModule(module).concat(".web"), moduleName);
}
return controllerPackage;
}
use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class CacheOperationsImpl method setupCache.
@Override
public void setupCache(CacheProvider provider, String profile) {
// Add spring-boot-starter-cache dependency
List<Pom> modules = (List<Pom>) getTypeLocationService().getModules(ModuleFeatureName.APPLICATION);
if (modules.size() == 0) {
throw new RuntimeException(String.format("ERROR: Not found a module with %s feature", ModuleFeatureName.APPLICATION));
}
// Do the setup for each @SpringBootApplication module
for (Pom module : modules) {
addSpringCacheDependency(module);
}
// Add @EnableCache annotation to each application file
Set<ClassOrInterfaceTypeDetails> applicationClasses = getTypeLocationService().findClassesOrInterfaceDetailsWithAnnotation(SpringJavaType.SPRING_BOOT_APPLICATION);
for (ClassOrInterfaceTypeDetails applicationClass : applicationClasses) {
if (applicationClass.getAnnotation(SpringJavaType.ENABLE_CACHING) == null) {
ClassOrInterfaceTypeDetailsBuilder builder = new ClassOrInterfaceTypeDetailsBuilder(applicationClass);
builder.addAnnotation(new AnnotationMetadataBuilder(SpringJavaType.ENABLE_CACHING));
getTypeManagementService().createOrUpdateTypeOnDisk(builder.build());
}
}
if (provider != null) {
// Do setup of cache provider
if (!provider.isInstalled()) {
provider.setup(profile);
}
}
}
use of org.springframework.roo.project.maven.Pom in project spring-roo by spring-projects.
the class JavaTypeConverter method completeProjectSpecificPaths.
private void completeProjectSpecificPaths(final List<Completion> completions, final String existingData, final String optionContext) {
if (!projectOperations.isFocusedProjectAvailable()) {
return;
}
final Pom targetModule;
final String heading;
final String prefix;
final String formattedPrefix;
final String typeName;
if (existingData.contains(MODULE_PATH_SEPARATOR)) {
// Looking for a type in another module
final String targetModuleName = existingData.substring(0, existingData.indexOf(MODULE_PATH_SEPARATOR));
targetModule = projectOperations.getPomFromModuleName(targetModuleName);
heading = "";
prefix = targetModuleName + MODULE_PATH_SEPARATOR;
formattedPrefix = decorate(targetModuleName + MODULE_PATH_SEPARATOR, FG_CYAN);
typeName = StringUtils.substringAfterLast(existingData, MODULE_PATH_SEPARATOR);
} else {
// Looking for a type in the currently focused module
targetModule = projectOperations.getFocusedModule();
heading = targetModule.getModuleName();
prefix = "";
formattedPrefix = "";
typeName = existingData;
}
final String topLevelPackage = typeLocationService.getTopLevelPackageForModule(targetModule);
final String basePackage = resolveTopLevelPackageSymbol(typeName, topLevelPackage);
addCompletionsForOtherModuleNames(completions, targetModule);
if (!"pom".equals(targetModule.getPackaging())) {
addCompletionsForTypesInTargetModule(completions, optionContext, targetModule, heading, prefix, formattedPrefix, topLevelPackage, basePackage);
}
}
Aggregations