package org.fastcatsearch.http.action.management.analysis; import java.io.IOException; import java.io.OutputStream; import org.fastcatsearch.http.ActionAuthority; import org.fastcatsearch.http.ActionAuthorityLevel; import org.fastcatsearch.http.ActionMapping; import org.fastcatsearch.http.action.ActionRequest; import org.fastcatsearch.http.action.ActionResponse; import org.fastcatsearch.http.action.AuthAction; import org.fastcatsearch.plugin.Plugin; import org.fastcatsearch.plugin.PluginService; import org.fastcatsearch.plugin.PluginSetting; import org.fastcatsearch.plugin.analysis.AnalysisPluginSetting; import org.fastcatsearch.service.ServiceManager; import org.fastcatsearch.util.JAXBConfigs; @ActionMapping(value = "/management/analysis/plugin-setting", authority = ActionAuthority.Analysis, authorityLevel = ActionAuthorityLevel.READABLE) public class GetAnalysisPluginSettings extends AuthAction { @Override public void doAuthAction(ActionRequest request, ActionResponse response) throws Exception { PluginService pluginService = ServiceManager.getInstance().getService(PluginService.class); String pluginId = request.getParameter("pluginId"); Plugin plugin = pluginService.getPlugin(pluginId); if(plugin != null) { PluginSetting pluginSetting = plugin.getPluginSetting(); if (pluginSetting instanceof AnalysisPluginSetting) { OutputStream ostream = null; try { ostream = response.getOutputStream(); JAXBConfigs.writeRawConfig(ostream, pluginSetting, AnalysisPluginSetting.class); } finally { if (ostream != null) { try { ostream.close(); } catch (IOException e) { } } } } } } }