Java API - Getting started

Java

Java developer section

Setup

All the steps in this section are detailled in Java setup.

Maven

This is the minimal pom structure. This includes the module dependency, OSGI instructions and Maven repository reference :

<project ...>
	<dependencies>
		<dependency>
    		<groupId>com.valiantys.software.elements.api</groupId>
    		<artifactId>elements-public-api</artifactId>
    		<version>1.0.0</version>
    		<scope>provided</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>maven-jira-plugin</artifactId>
                <version>${amps.version}</version>
                <extensions>true</extensions>
                <configuration>
					<instructions>
                        <Import-Package>
							com.valiantys.software.elements.api,
               				com.valiantys.software.elements.api.content,
                			com.valiantys.software.elements.api.model,
                			com.valiantys.software.elements.api.model.builders,
                			com.valiantys.software.elements.api.render,
                			com.valiantys.software.elements.api.render.format,
                			com.valiantys.software.elements.api.event
                        </Import-Package>
                        <Spring-Context>*</Spring-Context>
                    </instructions>
                </configuration>
            </plugin>
		</plugins>
	</build>

    <repositories>
		<repository>
    		<id>valiantys-repository</id>
    		<name>Valiantys</name>
    		<url>https://repository.valiantys.com/artifactory/valiantys-public</url>
		</repository>
    </repositories>


</project>

Service reference

This code used Atlassian Plugin Scanner. It allows you to inject a service from another plugin (Element PanelContentService here). 

@Named
public class MyService {
 
    private final PanelContentService panelContentService;
 
    @Inject
    public MyService(PanelContentService panelContentService) {
        this.panelContentService = panelContentService;
    }
     
    public void doStuff() throws ElementsException {
        Panel panel = panelContentService.getPanel(IssueRef.byKey("ISSUE-1"), PanelRef.byName("My Panel"));
        ...
    }
}


Groovy

ScriptRunner user section

Example script

All the steps in this section are detailled in ScriptRunner setup.

This code below contains the minimum to reference and use a service in Elements Checklist.

This references the PanelRenderingService and generates the default HTML content for a panel

import com.valiantys.software.elements.api.model.*;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.plugin.PluginAccessor;

PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor();
Class panelRenderingServiceClass = pluginAccessor.getClassLoader().findClass("com.valiantys.software.elements.api.render.PanelRenderingService");

def panelRenderingService = ComponentAccessor.getOSGiComponentInstanceOfType(panelRenderingServiceClass);

def htmlContent = panelRenderingService.renderPanel(IssueRef.byKey("test-36"), PanelRef.byName("Item List"))

return htmlContent