2017-05-07 1 views
2

Jira 용 플러그인을 구축 중입니다. 캐싱 레이어를 추가하여 com.atlassian.cache.CacheManager을 사용하고 싶습니다. 인수/설정기를 통해 이것을 주입해야합니다.Jira/Java - 주입 관리자가 작동하지 않음 (설정자)

저는 다른 클래스를 확장하려고하므로 setter를 통해이 클래스를 삽입하려고했으나 어떤 이유로 든 null을 항상 반환합니다.

import com.atlassian.cache.Cache; 
import com.atlassian.cache.CacheLoader; 
import com.atlassian.cache.CacheManager; 
import com.atlassian.cache.CacheSettingsBuilder; 

public class Foo extends AbstractJiraContextProvider 
{ 
    private CacheManager cacheManager; 

    public void setCacheManager(CacheManager cacheManager) { 
     //It does not get past this function.. 
     this.cacheManager = cacheManager; 
    } 

    @Override 
    public Map getContextMap(ApplicationUser user, JiraHelper jiraHelper) { 


     cache = this.cacheManager.getCache("bar"); 

    } 
} 

은 또한 다음을 수행하여이 시도 :

public Foo(CacheManager cacheManager) { 
    this.cacheManager = cacheManager; 
} 

을하는 플러그인이하는 아무것도 후 더 이상. 나는 오류를 얻지 않지만, 단지 0 개의 결과만을 준다. https://developer.atlassian.com/confdev/confluence-plugin-guide/writing-confluence-plugins/accessing-confluence-components-from-plugin-modules

그리고 https://developer.atlassian.com/confdev/development-resources/confluence-developer-faq/how-do-i-cache-data-in-a-plugin#HowdoIcachedatainaplugin?-Instructions

답변

0

귀하의 질문은 JIRA 언급을하지만, 당신이 제공하는 문서 링크가 합류 (오래된)에 대해 다음과 같습니다

나는 문서에 대해이 작업을 사용했다.

최신 버전의 JIRA (7.2 이상)에 대한 추가 기능을 개발중인 경우 이제 구성 요소를 삽입하면 Atlassian Spring Scanner 2으로 처리되므로 모든 것이 주석과 함께 작동합니다. 당신이 다음 here을 나와있는 지침을 따르십시오

당신과 같이 생성자를 통해 구성 요소를 삽입 할 수 있어야한다 :

@Component 
public class MyService { 
    private final IssueService issueService; 
    private final InternalComponent internalComponent; 

    @Inject 
    public MyService(@ComponentImport final IssueService issueService,final InternalComponent internalComponent) { 
     this.issueService = issueService; 
     this.internalComponent = internalComponent; 
    } 
} 
관련 문제