use of org.springframework.core.io.support.ResourcePatternResolver in project syncope by apache.
the class LoggerLogic method listAuditEvents.
@PreAuthorize("hasRole('" + StandardEntitlement.AUDIT_LIST + "') or hasRole('" + StandardEntitlement.NOTIFICATION_LIST + "')")
public List<EventCategoryTO> listAuditEvents() {
// use set to avoid duplications or null elements
Set<EventCategoryTO> events = new HashSet<>();
try {
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resourcePatternResolver);
String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + ClassUtils.convertClassNameToResourcePath(SystemPropertyUtils.resolvePlaceholders(this.getClass().getPackage().getName())) + "/**/*.class";
Resource[] resources = resourcePatternResolver.getResources(packageSearchPath);
for (Resource resource : resources) {
if (resource.isReadable()) {
final MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource);
final Class<?> clazz = Class.forName(metadataReader.getClassMetadata().getClassName());
if (clazz.isAnnotationPresent(Component.class) && AbstractLogic.class.isAssignableFrom(clazz)) {
EventCategoryTO eventCategoryTO = new EventCategoryTO();
eventCategoryTO.setCategory(clazz.getSimpleName());
for (Method method : clazz.getDeclaredMethods()) {
if (Modifier.isPublic(method.getModifiers()) && !eventCategoryTO.getEvents().contains(method.getName())) {
eventCategoryTO.getEvents().add(method.getName());
}
}
events.add(eventCategoryTO);
}
}
}
// SYNCOPE-608
EventCategoryTO authenticationControllerEvents = new EventCategoryTO();
authenticationControllerEvents.setCategory(AuditElements.AUTHENTICATION_CATEGORY);
authenticationControllerEvents.getEvents().add(AuditElements.LOGIN_EVENT);
events.add(authenticationControllerEvents);
events.add(new EventCategoryTO(EventCategoryType.PROPAGATION));
events.add(new EventCategoryTO(EventCategoryType.PULL));
events.add(new EventCategoryTO(EventCategoryType.PUSH));
for (AnyTypeKind anyTypeKind : AnyTypeKind.values()) {
resourceDAO.findAll().forEach(resource -> {
EventCategoryTO propEventCategoryTO = new EventCategoryTO(EventCategoryType.PROPAGATION);
EventCategoryTO pullEventCategoryTO = new EventCategoryTO(EventCategoryType.PULL);
EventCategoryTO pushEventCategoryTO = new EventCategoryTO(EventCategoryType.PUSH);
propEventCategoryTO.setCategory(anyTypeKind.name().toLowerCase());
propEventCategoryTO.setSubcategory(resource.getKey());
pullEventCategoryTO.setCategory(anyTypeKind.name().toLowerCase());
pushEventCategoryTO.setCategory(anyTypeKind.name().toLowerCase());
pullEventCategoryTO.setSubcategory(resource.getKey());
pushEventCategoryTO.setSubcategory(resource.getKey());
for (ResourceOperation resourceOperation : ResourceOperation.values()) {
propEventCategoryTO.getEvents().add(resourceOperation.name().toLowerCase());
}
pullEventCategoryTO.getEvents().add(ResourceOperation.DELETE.name().toLowerCase());
for (UnmatchingRule unmatching : UnmatchingRule.values()) {
String event = UnmatchingRule.toEventName(unmatching);
pullEventCategoryTO.getEvents().add(event);
pushEventCategoryTO.getEvents().add(event);
}
for (MatchingRule matching : MatchingRule.values()) {
String event = MatchingRule.toEventName(matching);
pullEventCategoryTO.getEvents().add(event);
pushEventCategoryTO.getEvents().add(event);
}
events.add(propEventCategoryTO);
events.add(pullEventCategoryTO);
events.add(pushEventCategoryTO);
});
}
EventCategoryTO eventCategoryTO = new EventCategoryTO(EventCategoryType.TASK);
eventCategoryTO.setCategory(PullJobDelegate.class.getSimpleName());
events.add(eventCategoryTO);
eventCategoryTO = new EventCategoryTO(EventCategoryType.TASK);
eventCategoryTO.setCategory(PushJobDelegate.class.getSimpleName());
events.add(eventCategoryTO);
} catch (Exception e) {
LOG.error("Failure retrieving audit/notification events", e);
}
return new ArrayList<>(events);
}
use of org.springframework.core.io.support.ResourcePatternResolver in project lavagna by digitalfondue.
the class ResourceController method addMessages.
private void addMessages(ServletContext context, OutputStream os, BeforeAfter ba) throws IOException {
ba.before("i18n", context, os);
//
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver.getResources("classpath:io/lavagna/i18n/messages_*.properties");
//
os.write(("window.io_lavagna=window.io_lavagna||{};window.io_lavagna.i18n=" + Json.GSON.toJson(fromResources(resources))).getBytes(StandardCharsets.UTF_8));
ba.after("i18n", context, os);
}
use of org.springframework.core.io.support.ResourcePatternResolver in project webcert by sklintyg.
the class ClasspathSchemaResourceResolver method load.
public static InputStream load(String schemaSystemId) throws IOException {
// Strip any relative path prefixes
if (schemaSystemId.contains("/")) {
schemaSystemId = schemaSystemId.substring(schemaSystemId.lastIndexOf('/') + 1);
}
// Do a wildcard classpath search..
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
String searchPattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + "/**/" + schemaSystemId;
Resource[] resources = resourcePatternResolver.getResources(searchPattern);
if ((resources == null) || (resources.length == 0)) {
throw new RuntimeException("Could not find schema [" + schemaSystemId + "]");
}
// We found at least 1 matching systemId - they should all be identical.
return resources[0].getInputStream();
}
use of org.springframework.core.io.support.ResourcePatternResolver in project spring-integration by spring-projects.
the class IntegrationRegistrar method registerIntegrationProperties.
/**
* Register {@code integrationGlobalProperties} bean if necessary.
* @param registry The {@link BeanDefinitionRegistry} to register additional {@link BeanDefinition}s.
*/
private void registerIntegrationProperties(BeanDefinitionRegistry registry) {
boolean alreadyRegistered = false;
if (registry instanceof ListableBeanFactory) {
alreadyRegistered = ((ListableBeanFactory) registry).containsBean(IntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAME);
} else {
alreadyRegistered = registry.isBeanNameInUse(IntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAME);
}
if (!alreadyRegistered) {
ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(this.classLoader);
try {
Resource[] defaultResources = resourceResolver.getResources("classpath*:META-INF/spring.integration.default.properties");
Resource[] userResources = resourceResolver.getResources("classpath*:META-INF/spring.integration.properties");
List<Resource> resources = new LinkedList<Resource>(Arrays.asList(defaultResources));
resources.addAll(Arrays.asList(userResources));
BeanDefinitionBuilder integrationPropertiesBuilder = BeanDefinitionBuilder.genericBeanDefinition(PropertiesFactoryBean.class).addPropertyValue("locations", resources);
registry.registerBeanDefinition(IntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAME, integrationPropertiesBuilder.getBeanDefinition());
} catch (IOException e) {
logger.warn("Cannot load 'spring.integration.properties' Resources.", e);
}
}
}
use of org.springframework.core.io.support.ResourcePatternResolver in project modesti by jlsalmon.
the class WorkflowInitialiser method init.
public void init() throws IOException {
log.info("Initialising workflow processes");
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(Thread.currentThread().getContextClassLoader());
Resource[] processes = resolver.getResources(PROCESS_RESOURCE_PATTERN);
for (Resource process : processes) {
repositoryService.createDeployment().addInputStream(process.getFilename(), process.getInputStream()).deploy();
}
}
Aggregations