2

我正在尝试向我的插件添加配置,但我对我的选项感到很困惑。谁能给我一个 webwork 操作与 servlet 的比较,尤其是在配置 UI 方面。

到目前为止,我的背景是我已经完成了本教程。之后我发现我安装的所有插件都使用了动作,并且查看了一些现有的代码,我发现动作似乎更易于实现和使用(无需实现 JavaScript/REST 接口)。

我很困惑为什么本教程似乎使事情过于复杂,实际上并没有提到做同样事情的更简单的方法。任何人?

最重要的是,我已经看到了至少三种不同的保存设置的方法:使用PluginSettingsFactoryBandanaManagerConfigurationManager. 更混乱!如今,在融合中保存设置的“现代”方式是什么?

4

1 回答 1

2

Webwork Action 与 Servlet

  • Webwork Action 的优点是您可以使用与 webwork 融合在一起的内置速度模板机制以及 webwork 本身的所有优点。
  • 这两种变体都具有通过在 spring webframework 中内置的 confluence 进行依赖注入的优势。
  • 使用 servlet 而不是 webwork 操作可以让您独立于所有 atlassian 平台软件,因为并非所有 atlassian 产品都使用 webwork。
  • atlassian-plugin.xml 中的插件描述符允许插件配置页面的两种方法:

<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2"> 
    <plugin-info>
        <description>${project.description}</description> 
        <version>${project.version}</version>
        <vendor name="${project.organization.name}" url="${project.organization.url}"/>  
        <param name="plugin-icon">images/pluginIcon.png</param>  
        <param name="plugin-logo">images/pluginLogo.png</param>  
        <param name="configure.url">/admin/plugins/PATHTOYOURCONFIGPAGE</param>  
    </plugin-info>  
    ...  
</atlassian-plugin> 

存储插件设置

如果您查看PluginSettingsFactory 接口和实现该接口的所有已知类的列表,您会发现 ConfluencePluginSettingsFactory。声明了一个public void setBandanaManager (BandanaManager bandanaManager)方法。这是 BandanaManager 的依赖注入。这表明PluginSettingsFactory 接口的实现使用 BandanaManager 进行属性持久化。

我个人不知道ConfigurationManager的事情。我为我所有的 confluence 插件使用 BandanaManager 来存储可以通过管理设置页面或其他地方设置的属性。

在这里查看最先进的数据持久化方法,如 atlassian 所述:Persistence in Confluence。他们也使用 BandanaManager。

于 2013-09-04T11:30:11.847 回答