use of io.gravitee.plugin.fetcher.FetcherPlugin in project gravitee-management-rest-api by gravitee-io.
the class FetcherServiceImpl method findById.
@Override
public FetcherEntity findById(String fetcher) {
LOGGER.debug("Find fetcher by ID: {}", fetcher);
FetcherPlugin fetcherDefinition = fetcherPluginManager.get(fetcher);
if (fetcherDefinition == null) {
throw new FetcherNotFoundException(fetcher);
}
return convert(fetcherDefinition, true);
}
use of io.gravitee.plugin.fetcher.FetcherPlugin in project gravitee-management-rest-api by gravitee-io.
the class FetcherServiceImpl method convert.
private FetcherEntity convert(FetcherPlugin fetcherPlugin, boolean withPlugin) {
FetcherEntity entity = new FetcherEntity();
entity.setId(fetcherPlugin.id());
entity.setDescription(fetcherPlugin.manifest().description());
entity.setName(fetcherPlugin.manifest().name());
entity.setVersion(fetcherPlugin.manifest().version());
if (withPlugin) {
// Plugin information
Plugin plugin = fetcherPlugin;
PluginEntity pluginEntity = new PluginEntity();
pluginEntity.setPlugin(plugin.clazz());
pluginEntity.setPath(plugin.path().toString());
pluginEntity.setType(plugin.type().toString().toLowerCase());
pluginEntity.setDependencies(plugin.dependencies());
entity.setPlugin(pluginEntity);
}
return entity;
}
use of io.gravitee.plugin.fetcher.FetcherPlugin in project gravitee-management-rest-api by gravitee-io.
the class PageServiceImpl method getContentFromFetcher.
private String getContentFromFetcher(PageSource ps) throws FetcherException {
if (ps.getConfiguration().isEmpty()) {
return null;
}
try {
FetcherPlugin fetcherPlugin = fetcherPluginManager.get(ps.getType());
ClassLoader fetcherCL = fetcherPlugin.fetcher().getClassLoader();
Class<? extends FetcherConfiguration> fetcherConfigurationClass = (Class<? extends FetcherConfiguration>) fetcherCL.loadClass(fetcherPlugin.configuration().getName());
Class<? extends Fetcher> fetcherClass = (Class<? extends Fetcher>) fetcherCL.loadClass(fetcherPlugin.clazz());
FetcherConfiguration fetcherConfigurationInstance = fetcherConfigurationFactory.create(fetcherConfigurationClass, ps.getConfiguration());
Fetcher fetcher = fetcherClass.getConstructor(fetcherConfigurationClass).newInstance(fetcherConfigurationInstance);
// Autowire fetcher
applicationContext.getAutowireCapableBeanFactory().autowireBean(fetcher);
StringBuilder sb = new StringBuilder();
try (BufferedReader br = new BufferedReader(new InputStreamReader(fetcher.fetch()))) {
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
}
return sb.toString();
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new FetcherException(e.getMessage(), e);
}
}
use of io.gravitee.plugin.fetcher.FetcherPlugin in project gravitee-management-rest-api by gravitee-io.
the class FetcherServiceImpl method findAll.
@Override
public Set<FetcherEntity> findAll() {
try {
LOGGER.debug("List all fetchers");
final Collection<FetcherPlugin> fetcherDefinitions = fetcherPluginManager.findAll();
return fetcherDefinitions.stream().map(fetcherDefinition -> convert(fetcherDefinition, false)).collect(Collectors.toSet());
} catch (Exception ex) {
LOGGER.error("An error occurs while trying to list all fetchers", ex);
throw new TechnicalManagementException("An error occurs while trying to list all fetchers", ex);
}
}
Aggregations