Plugins Jira SAL使用插件安装
我想为我的插件寻找一种存储特定于项目的配置的方法。 在第一步中,我只想存储一个简单的字符串,如“Hello” 我找到的是SAL和插件。 这似乎很容易使用,但我不知道如何在代码中实现它。 我在项目管理部分使用了一个WebWork:Plugins Jira SAL使用插件安装,plugins,settings,jira,webwork,sal,Plugins,Settings,Jira,Webwork,Sal,我想为我的插件寻找一种存储特定于项目的配置的方法。 在第一步中,我只想存储一个简单的字符串,如“Hello” 我找到的是SAL和插件。 这似乎很容易使用,但我不知道如何在代码中实现它。 我在项目管理部分使用了一个WebWork: @Override public String doDefault() throws Exception { Project project = getProjectManager().getProjectObjByKey(_projectKey);
@Override
public String doDefault() throws Exception {
Project project = getProjectManager().getProjectObjByKey(_projectKey);
HttpServletRequest request = ExecutingHttpRequest.get();
request.setAttribute((new StringBuilder()).append("com.atlassian.jira.projectconfig.util.ServletRequestProjectConfigRequestCache").append(":project").toString(), project);
return INPUT;
}
@Override
protected String doExecute() throws Exception {
Project project = getProjectManager().getProjectObjByKey(_projectKey);
HttpServletRequest request = ExecutingHttpRequest.get();
request.setAttribute((new StringBuilder()).append("com.atlassian.jira.projectconfig.util.ServletRequestProjectConfigRequestCache").append(":project").toString(), project);
String param = request.getParameter("param");
return SUCCESS;
}
public void setProjectKey(String projectKey) {
_projectKey = projectKey;
}
public String getProjectKey() {
return _projectKey;
}
public String getBaseUrl() {
return ComponentAccessor.getApplicationProperties().getString(APKeys.JIRA_BASEURL);
}
正如SAL所说,我实现了一个设置类:
public CustomProjectSettings(
final PluginSettingsFactory pluginSettingsFactory,
final String projectKey) {
this.pluginSettingsFactory = pluginSettingsFactory;
this.projectKey = projectKey;
}
public void setValue(final String key, final String value) {
final PluginSettings settings = pluginSettingsFactory
.createSettingsForKey(projectKey);
settings.put(key, value);
}
public Object getValue(final String key) {
final PluginSettings settings = pluginSettingsFactory
.createSettingsForKey(projectKey);
return settings.get(key);
}
我在xml中添加了组件:
<component-import key="pluginSettingsFactory" interface="com.atlassian.sal.api.pluginsettings.PluginSettingsFactory" />
这比我想象的要容易。 我只需将设置作为我的Web工作的依赖项注入:
public WebWorkAction(CustomProjectSettings settings){
this.settings = settings
}
设置类通过以下方式自动连接:
<component-import key="pluginSettingsFactory"
interface="com.atlassian.sal.api.pluginsettings.PluginSettingsFactory" />
并加入
<component key="settingsComponent"
class="com.xxx.CustomProjectSettings">
</component>
我本人对此很陌生,但通过本教程,特别是第5步,似乎做了一些与您要求的类似的事情。至少你能瞥见有用的CodePatterns.ty来提醒我我的问题。我解决了这个问题,但忘了回答。是的,他们将组件导入类划分为插件类构造函数中可用的方式非常巧妙。一个强大的功能,对我来说是一个令人惊讶的发现:)我觉得它的文档记录不足,但是大西洋的文档组织得太差了,我可能在什么地方错过了它。
<component key="settingsComponent"
class="com.xxx.CustomProjectSettings">
</component>