use of org.wso2.carbon.identity.template.mgt.exception.TemplateManagementException in project carbon-identity-framework by wso2.
the class CacheBackedConfigStoreBasedTemplateHandler method clearTemplateCache.
/**
* Clearing cache entries related to the template.
*
* @param templateId Template id.
*/
private void clearTemplateCache(String templateId) throws TemplateManagementException {
Template template = this.getTemplateById(templateId);
if (template != null) {
if (log.isDebugEnabled()) {
log.debug("Removing entry for Template with id " + templateId + " from cache.");
}
ConfigStoreBasedTemplateCacheKey cacheKey = new ConfigStoreBasedTemplateCacheKey(templateId);
configStoreBasedTemplateCache.clearCacheEntry(cacheKey, PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId());
} else {
if (log.isDebugEnabled()) {
log.debug("Entry for Template with id " + templateId + " not found in cache or DB");
}
}
}
use of org.wso2.carbon.identity.template.mgt.exception.TemplateManagementException in project carbon-identity-framework by wso2.
the class ConfigStoreBasedTemplateHandler method listTemplates.
@Override
public List<Template> listTemplates(String templateType, Integer limit, Integer offset, Condition searchCondition) throws TemplateManagementException {
ConfigurationManager configManager = TemplateManagerDataHolder.getInstance().getConfigurationManager();
try {
Resources resourcesList;
if (searchCondition == null) {
resourcesList = configManager.getResourcesByType(templateType);
} else {
resourcesList = configManager.getTenantResources(searchCondition);
}
return resourcesList.getResources().stream().map(resource -> {
resource.setResourceType(templateType);
return new ResourceToTemplate().apply(resource);
}).collect(Collectors.toList());
} catch (ConfigurationManagementException e) {
if (ConfigurationConstants.ErrorMessages.ERROR_CODE_RESOURCE_TYPE_DOES_NOT_EXISTS.getCode().equals(e.getErrorCode())) {
if (log.isDebugEnabled()) {
log.debug("Template type : '" + templateType + "' has not been created in the database.", e);
}
return Collections.emptyList();
} else if (ConfigurationConstants.ErrorMessages.ERROR_CODE_RESOURCES_DOES_NOT_EXISTS.getCode().equals(e.getErrorCode())) {
if (log.isDebugEnabled()) {
String message = "Templates do not exist for template type: " + templateType;
if (searchCondition != null) {
message = message + ", and search criteria:" + searchCondition.toString();
}
log.debug(message, e);
}
return Collections.emptyList();
}
throw handleServerException(TemplateMgtConstants.ErrorMessages.ERROR_CODE_LIST_TEMPLATES, e, templateType, getTenantDomainFromCarbonContext());
}
}
use of org.wso2.carbon.identity.template.mgt.exception.TemplateManagementException in project carbon-identity-framework by wso2.
the class ConfigStoreBasedTemplateHandler method addTemplateToConfigStore.
private String addTemplateToConfigStore(Template template) throws TemplateManagementException {
if (!isValidTemplateType(template.getTemplateType().toString())) {
throw handleClientException(TemplateMgtConstants.ErrorMessages.ERROR_CODE_INVALID_TEMPLATE_TYPE, template.getTemplateType().toString());
}
ConfigurationManager configManager = TemplateManagerDataHolder.getInstance().getConfigurationManager();
try {
Resource resource = configManager.addResource(template.getTemplateType().toString(), new TemplateToResourceAdd().apply(template));
configManager.addFile(template.getTemplateType().toString(), template.getTemplateName(), template.getTemplateName() + "_template_object", IOUtils.toInputStream(template.getTemplateScript()));
return resource.getResourceId();
} catch (ConfigurationManagementException e) {
if (ConfigurationConstants.ErrorMessages.ERROR_CODE_RESOURCE_ALREADY_EXISTS.getCode().equals(e.getErrorCode())) {
throw handleClientException(TemplateMgtConstants.ErrorMessages.ERROR_CODE_TEMPLATE_ALREADY_EXIST, e, template.getTemplateName());
} else if (ConfigurationConstants.ErrorMessages.ERROR_CODE_RESOURCE_TYPE_DOES_NOT_EXISTS.getCode().equals(e.getErrorCode())) {
// in the database, create the resource-type and retry the template creation.
try {
createResourceType(template.getTemplateType().toString());
return addTemplateToConfigStore(template);
} catch (ConfigurationManagementException e1) {
throw handleServerException(TemplateMgtConstants.ErrorMessages.ERROR_CODE_INSERT_TEMPLATE, e, template.getTemplateName());
}
} else {
throw handleServerException(TemplateMgtConstants.ErrorMessages.ERROR_CODE_INSERT_TEMPLATE, e, template.getTemplateName());
}
}
}
use of org.wso2.carbon.identity.template.mgt.exception.TemplateManagementException in project carbon-identity-framework by wso2.
the class TemplateManagerImpl method listTemplates.
/**
* This method is used to get the names and descriptions of all or filtered existing templates.
*
* @param limit Number of search results.
* @param offset Start index of the search.
* @return Filtered list of TemplateInfo elements.
* @throws TemplateManagementException Template Management Exception.
*/
@Override
public List<TemplateInfo> listTemplates(Integer limit, Integer offset) throws TemplateManagementException {
validatePaginationParameters(limit, offset);
if (limit == 0) {
limit = DEFAULT_SEARCH_LIMIT;
if (log.isDebugEnabled()) {
log.debug("Limit is not defined in the request, default to: " + limit);
}
}
TemplateManagerDAO templateManagerDAO = new TemplateManagerDAOImpl();
return templateManagerDAO.getAllTemplates(getTenantIdFromCarbonContext(), limit, offset);
}
use of org.wso2.carbon.identity.template.mgt.exception.TemplateManagementException in project carbon-identity-framework by wso2.
the class TemplateManagerDAOImpl method addTemplate.
/**
* Add a {@link Template}.
*
* @param template {@link Template} to insert.
* @return Inserted {@link TemplateInfo}.
* @throws TemplateManagementException If error occurs while adding the {@link Template}.
*/
public Template addTemplate(Template template) throws TemplateManagementException {
Template templateResult;
JdbcTemplate jdbcTemplate = JdbcUtils.getNewTemplate();
try {
jdbcTemplate.executeUpdate(TemplateMgtConstants.SqlQueries.INSERT_TEMPLATE, preparedStatement -> {
preparedStatement.setInt(1, template.getTenantId());
preparedStatement.setString(2, template.getTemplateName());
preparedStatement.setString(3, template.getDescription());
InputStream inputStream = IOUtils.toInputStream(template.getTemplateScript());
try {
preparedStatement.setBinaryStream(4, inputStream, inputStream.available());
} catch (IOException e) {
// SQLException is thrown since the QueryFilter throws an SQLException
throw TemplateMgtUtils.handleSQLException(ERROR_CODE_INSERT_TEMPLATE, template.getTemplateName(), e);
}
});
} catch (DataAccessException e) {
throw TemplateMgtUtils.handleServerException(ERROR_CODE_INSERT_TEMPLATE, template.getTemplateName(), e);
}
templateResult = new Template(template.getTenantId(), template.getTemplateName(), template.getDescription(), template.getTemplateScript());
return templateResult;
}
Aggregations