Бамбук: мои пользовательские действия в xWork не оформлены, страница отображается без вкладок

Я новичок в разработке Atlasian Bamboo и у меня есть проблема, если вы можете мне помочь.

Я разрабатываю бамбуковый плагин, и у меня есть эта работа:

<xwork key="viewNFTResults" name="View NFT Results">
    <package name="nftResults" extends="buildResultView">
        <action name="viewNFTLogs" class="com.atlassian.sap.nftresults.impl.NFTLogsView">
            <result name="success" type="freemarker">/fragments/view-nft-results-log.ftl</result>
            <result name="error" type="freemarker">/fragments/error.ftl</result>
        </action>
    </package>
</xwork>
<web-item key="NFT:\${planKey}-\${buildNumber}" name="chainNFTResults" section="chainResults.subMenu/chainResults"
          weight="80">
    <label key="NFT logs"/>
    <link linkId="NFT:\${planKey}-\${buildNumber}">/build/result/viewNFTLogs.action?buildKey=${planKey}&amp;buildNumber=${buildNumber}</link>
</web-item>

В моем файле ftl я положил в голову:

<head>
    <meta name="decorator" content="result"/>
    <meta name="tab" content="chainNFTResults"/>
</head>

и класс NFTLogsView расширяет BuildResultsAction.

Теперь, когда я щелкаю по вкладке NFt logs, когда сборка запущена, отображается содержимое этой вкладки и выполняется действие, а также оформитель страницы в порядке, вот так:

построить бег

Но когда я обновляю страницу или когда сборка заканчивается, и я показываю вкладку (я имею в виду внутри вкладки), я получаю эту страницу:

сборка закончена

Другие вкладки исчезли, и в журналах появилось много исключений, например:

BambooActionSupport.getWebSectionsForLocation(String) threw an exception.

а также...

`[INFO] [talledLocalContainer] ==> fn.hasPlanPermissionForKey("BUILD", 
stage.planKey)  [in template "lib/chains.ftl" at line 369, column 49]`

а также...

BambooActionSupport.hasPlanPermission(String, String) threw an exception.

И много других исключений. Хотя URL-адрес действия одинаков при нажатии на вкладку и при обновлении страницы.

Любые предложения, пожалуйста.

1 ответ

Наконец, после недели усилий и помощи команды разработчиков Atlassian, мы нашли причину и обходной путь, пока это не будет исправлено в Bamboo.

JIRA: [ https://jira.atlassian.com/browse/BAM-19884]

Причина. Следующие зависимости не вводятся для действия Xwork.

BambooPermissionManager, BambooAuthenticationContext, JiraApplinksService, WebInterfaceManager, VcsRepositoryConfigurationService, PlanExecutionManager, TriggerManager, PlanManager

Временное решение

Добавьте следующее в класс, который расширяет ViewBuildResult, Spring Scanner найдет эти зависимости и сделает их видимыми для загрузчика класса плагина, когда будет создан экземпляр действия xwork.

@ComponentImport
private BambooPermissionManager bambooPermissionManager;
@ComponentImport
private BambooAuthenticationContext bambooAuthenticationContext;
@ComponentImport
private JiraApplinksService jiraApplinksService;
@ComponentImport
private WebInterfaceManager webInterfaceManager;
@ComponentImport
private VcsRepositoryConfigurationService vcsRepositoryConfigurationService;
@ComponentImport
private PlanExecutionManager planExecutionManager;
@ComponentImport
private TriggerManager triggerManager;
@ComponentImport
private PlanManager planManager;

В pom.xml добавьте следующее (это может не понадобиться для самой последней версии сканера Spring)

<Import-Package>
 org.springframework.osgi.*;resolution:="optional",
 org.eclipse.gemini.blueprint.*;resolution:="optional",
 com.atlassian.bamboo.applinks.*;resolution:="optional",
 com.atlassian.bamboo.build.*;resolution:="optional",
 com.atlassian.bamboo.plan.*;resolution:="optional",
 com.atlassian.bamboo.plan.trigger.*;resolution:="optional",
 com.atlassian.bamboo.security.*;resolution:="optional",
 com.atlassian.bamboo.user.*;resolution:="optional",
 com.atlassian.bamboo.vcs.configuration.service.*:="optional",
 com.atlassian.plugin.web.*;resolution:="optional",
 *
</Import-Package>

Ссылка: Атласский Форум

https://community.developer.atlassian.com/t/problem-with-decorator-in-xwork-the-page-is-displayed-without-tabs-and-lot-of-exceptions-in-the-log/18516/26

Другие вопросы по тегам