How to get hold of some Greenhopper field from remote ou Como se apossar de algum campo de Greenhopper remoto.
Get version hierarchy programmatically via Greenhopper API How can I get enddate and releasedate from greenhopper API.
Antes de desenvolvermos a solução pesquisamos algumas possíveis soluções como:
...
| Bloco de código |
|---|
<dependency>
<groupId>com.atlassian.jira.plugins</groupId>
<artifactId>jira-greenhopper-plugin</artifactId>
<version>${greenhopper.version}</version>
<scope>provided</scope>
</dependency>
|
2-Adicionar esta tag no atlassian-plugin.xml para importar o componente e instanciá-lo num contrutor de uma classe.
| Bloco de código |
|---|
<component-import key="greenhopper-service" name="GreenHopper Service" interface="com.pyxis.greenhopper.GreenHopper"> <description>GreenHopper Service component to access Fix Versions hierarchy data</description> </component-import> public Constructor(GreenHopper gh) { //gh está ok. if (gh != null) { System.out.println("GreenhopperService inicializada com sucesso."); } //Mas "loadGHVersion(project)" aqui não instancia.. gh.loadGHVersion(project); } |
...
| Bloco de código |
|---|
ProjectConfiguration configuration = JiraUtil.getGreenHopperService().getConfiguration(project); Date versionStartDate = configuration.getVersionStartDate(versionJira); //Mas ".getGreenHopperService()" não instancia.. |
Eis o que realmente funcionou:
...
| Bloco de código |
|---|
<dependency>
<groupId>greenhopper</groupId>
<artifactId>jira-greenhopper-plugin</artifactId>
<version>5.6.2</version>
<scope>runtime</scope>
</dependency>
Esta(5.6.2) é a última versão no repositório da atlassian.
|
| Bloco de código |
|---|
private IssueManager issueManager = ComponentManager.getComponentInstanceOfType(IssueManager.class);
private IssueFieldManager issueFieldManager = ComponentManager.getComponentInstanceOfType(IssueFieldManager.class);
MutableIssue mi = issueManager.getIssueObject("issueId"); //issueId ou issuekey
ProjectConfiguration configuration = new ProjectConfiguration(mi.getProjectObject(), issueFieldManager);
List<Version> version = new ArrayList<Version>(mi.getFixVersions());
Version uniqueVersion = version.get(0);
VersionWrapper versionW = new VersionWrapper(uniqueVersion);
System.out.println("end-date: [ "+configuration.getVersionEndDate(uniqueVersion)+" \]"); //util.Date
System.out.println("relese-date: [ "+versionW.getReleaseDate()+" \]"); //DateMidnight formato: "2012-06-28T00:00:00.000-03:00";
|
