问题标签 [atlassian-plugin-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 替换 7.X 的 Atlassian JIRA 插件中已弃用的 AbstractEditHandlerDetailsWebAction
我正在关注Atlassian 的教程 - JIRA 的自定义消息(邮件)处理程序
我在倒数第二步遇到了一堵砖墙:
3)在src/main/java/com/example/plugins/tutorial/jira/mailhandlerdemo目录下新建一个名为EditDemoHandlerDetailsWebAction.java的文件,内容如下:
该类继承自 AbstractEditHandlerDetailsWebAction,它允许我们专注于参数验证。它负责添加、编辑和取消处理程序生命周期本身。
本教程应该支持 JIRA 5.0+,包括最新版本到 7.2
我正在使用 JIRA 7.1.8
我的问题是 maven 无法找到
经过大量挖掘,我发现它com.atlassian.jira.plugins.mail
存在于高达 JIRA 5.1.8 的规范中
但是,在 5.2-m03 以后的规范中,此文件夹不存在,这就是 maven 找不到它的原因。
此外,我找不到任何说明这些类已被弃用的信息,也找不到任何关于我应该为我的 JIRA 版本替换此代码的建议。
那么,我可以使用什么来代替com.atlassian.jira.plugins.mail.webwork.AbstractEditHandlerDetailsWebAction;
上述课程中看似已弃用的内容?
plugins - Jira 插件自定义字段值如何在 .vm 模板的过程中得到处理
Jira 服务器 7.2.1。自定义字段插件。
问题跟在这个讨论 后面 看不懂,getSingularObjectFromString 方法是做什么的? 以及来自“实用 jira 插件”的一些信息
我正在尝试使用基本的 value-displayValue 逻辑实现数据库自定义字段。该字段表示一个外部实体,因此我将 ID 存储为该字段的值,但显示 NAME。我有两个 .vm 模板:编辑和查看。我正在尝试选择将 ID 转换为 NAME 的正确位置。我已经重写了getStringFromSingularObject(Object o)
从 ID 获取 NAME 的方法。它在edit.vm 中工作得非常好。作为$value
变量,我得到了确切的名称,但在 view.vm 中,我仍然得到一个 id 作为$value
. 我已经记录了方法的方法调用AbstractSingleFieldType
并注意到
当包含我的字段的页面被呈现时:方法
getValueFromIssue, getDatabaseType, getObjectFromDbValue
被调用 4 次(按此顺序 4 个周期)。所以他们绝对不是查询的地方。当该字段以编辑模式呈现时(因此处理了edit.vm)(即创建屏幕或编辑屏幕,:相同的方法被调用4次,然后
getStringFromSingularObject
被getStringValueFromCustomFieldParams
调用,它们返回我想要的名称。当我只是刷新视图问题屏幕时:
getStringFromSingularObject
根本没有调用该方法 -我的问题的根源。当前在查看问题屏幕中,我看到的是 ID 而不是名称,但是当我单击铅笔(编辑)时,我看到了正确的值(名称)。此外,在这种情况下,不会调用任何方法。所以我猜 Jira 会事先处理这两个模板?
编辑.vm
视图.vm
再次,edit.vm 工作正常,将名称显示为值并将名称显示为选项。view.vm 工作错误,显示 id。所以,问题是:
- 为什么这种负责显示值的方法不会在视图上被调用?
$value
真正为 view.vm 设置的地方- 为了我的目的,我还有什么其他选择
maven - Atlassian SDK + Win10 => -Dmaven.multiModuleProjectDirectory 系统属性未设置
我正在尝试使用 Atlassian SDK 6.2.9。在我的装有 Win10 的笔记本电脑上,但是有一个 Maven 问题。Java:1.8.0_101
Mvn:3.3.9(M2_HOME)
CMD 全栈说更多:
我的问题是如何解决这个 mvn 问题?
非常感谢
javascript - 可以使用属性文件为某些汇合空间禁用插件吗?
我目前正在尝试为 Confluence 构建一个插件,我想知道是否可以为 Confluence 内的某些空间禁用我的插件。
为了澄清事情:我有 A、B、C、D 作为 Confluence 空间。在空间 A 和 B 内,用户应该能够使用该插件。对于空格 C 和 D,插件不应该可用。
我找不到如何“停用” C 和 D 空间的插件。希望我说清楚了。
任何帮助表示赞赏:)
jira-plugin - 弹簧扫描仪未检测到组件
我正在尝试为 jira 编写一个事件侦听器插件。当我采用旧方式(最新的 Atlassian SDK 6.2.9 所做的)并放置这两行时
并尝试打包插件我收到警告说I cannot use component/component-import statement inside plugin descriptor file when Atlassian plugin key is set
。最新的 SDK 使用 Spring Scanner,它会在骨架创建过程中自动添加到 pom.xml 文件中,并且文档强烈建议使用它。所以我从 atlassian-plugin.xml 文件中删除了这两行,并尝试用相应的注释替换它们:
我可以用这种方式编译和打包它,但是当我将它安装在一个正在运行的 Jira 实例上时,在插件的描述中它说This plugin has no modules
. 我尝试将 @Component 更改为 @Named ,将 @ExportAsService 添加到该类都无济于事。似乎弹簧扫描仪没有将我的类检测为组件。有没有人能够克服这个问题?我已经写信给 atlassian 社区,但到目前为止还没有任何消息。
maven - 无法启动插件:无法解析 167.0:缺少要求 [167.0] osgi.wiring.package;(osgi.wiring.package=com.atlassian.inject)
我正在使用最新版本的 atlassian SDK 为 JIRA 开发插件。我已经编写了大部分代码,并在我的项目的 pom.xml 文件中添加了一些我需要的依赖项(见下文)。
不幸的是,在运行 atlas-run 启动我的本地 JIRA 环境时,由于以下错误,它无法加载我的插件:
几天来,我一直被相同类型的错误所困扰,包括以下内容:(我设法通过将依赖项添加到我的 POM 来修复):
我尝试了以下事情:
- 使用 Atlassian 框架重新生成我的插件,直到我重新添加了我的依赖项
- 删除并重新添加我的依赖项以查看错误所在。无法找出是否存在错误的依赖关系。
- 更改我的外部依赖项的范围(提供-> 编译并返回,在必要时进行测试。)
- 在运行我的 atlas-run 命令之前,几乎每次都使用 atlas-mvn clean。
- 在 jira 中激活我的插件(超时错误)
- 在发布之前研究了这个问题。我特别迷茫,因为它似乎是导致问题的库存 Atlassian 软件包。
我的POM如下:
谢谢你。
java - 如何在 jira 插件 webwork 模块中动态显示表格内容?
我正在创建一个 jira 插件,我目前有一个 webwork 模块。我有以下类来表示网络工作:
现在,我能够成功发出 http 请求并将数据解析为 java 对象列表。如何在我的速度页面中查看该列表并为每个项目创建一个元素来显示数据。
这就是我想要做的:
我的速度页面似乎无法识别 $dataList 项目,它是我的 ReportWebworkAction 类中的 ArrayList 变量。但是,它可以访问字符串变量 temp。
我读到我需要使用 Content Provider 和 getContextMap() 方法,但我对如何在单独的类中使用它感到困惑。有人可以告诉我正确的方法吗?谢谢。
maven - atlas-run build failure after timeout error pinging "*/cargocpc/index.html" 由于需要代理身份验证 407
运行时,atlas-run -dhttp.proxyhost=*...
我在 600000 毫秒(10 米)后出现超时错误。在这 10 分钟内,一切正常,我可以正确使用我的插件。我工作的公司使用代理,因此我有 2 个代理条目:第一个在mvn.bat
,第二个在.m2\settings.xml
. 该系统在windwos 8上正常工作,没有这个问题,但自从win 10我只能使用它10分钟。
那么到底发生了什么:
atlas-run -X
向我展示了 maven pinghttp://localhost:1990/cargocpc/index.html
但没有得到答案
并在 600000 毫秒后关闭。
如果我从浏览器的地址栏中输入此 URL,我会得到答案:"Cargo Ping Component used to verify if the container is started."
。显然我可以连接并查看页面,但 sdk 不能。
10分钟后我得到标准MojoExecutionException
我希望你能帮助我。
java - Atlassian 插件无法编译,安装时缺少软件包
使用 pre 和 post 钩子创建一个 bitbucket 插件,但是由于包错误,项目无法编译。
使用以下命令的简单流程将导致错误。
atlas-create-bitbucket-plugin
& atlas-create-bitbucket-plugin-module
& atlas-debug
给出以下错误堆栈,操作错误为package com.atlassian.bitbucket.repository.hook does not exist
我已经尝试卸载 java、maven 和 atlassian sdk 并重做项目。那对我不起作用。我也尝试了命令atlas-package
,mvn package
不知道如何继续。
有关我的环境和路径的信息。
authentication - Bitbucker 服务器中的 SSO 插件如何启动身份验证
我正在尝试编写一个启用 SAML 2 SSO 身份验证的小型 bitbucket 插件。
我一直在看 bitbucket 中的示例身份验证插件的源代码,看起来很简单。
但是,我的问题是处理跨越不同请求的身份验证的最佳方法是什么。
要执行 SAML SSO,您必须通过用户的浏览器向 IdP 发送一个 POST,然后它再次通过 POST 发送一个 SAML 令牌,但是您不再处于身份验证的中间。所以我试图找出最干净的方法来再次启动身份验证过程,我目前的想法如下:
- 让我实现
com.atlassian.bitbucket.auth.HttpAuthenticationHandler
的身份验证处理程序检查该方法中是否发生了 SAML 身份验证authenticate()
,然后在必要时将它们重定向到 IdP。(由于重定向,身份验证过程已停止) - 在单独的 servlet 上从 IdP 接收 SAML 令牌并检查 SAML 令牌是否可以使用。假设一切正常,使用已验证的用户名设置 servlet 请求属性(或会话属性),然后将用户转发到他们尝试访问的原始页面。这应该再次启动身份验证过程。
- 我的身份验证处理程序再次运行,检查请求/会话属性,这一次创建成功完成
ApplicationUser
所必需的。authenticate()
这听起来像是一个好方法吗?我查看了有关 Crowd SSO 处理程序如何工作的 bitbucket 源代码,但使用 Crowd SSO 它不需要将您重定向到外部登录页面,因此它没有此流程的示例。
想法?