Coding paradigm: line by line all my opinions are belong to me

I like to code and I like the feeling of code lines coming out of my fingertips. I try to build the simplest and most usable solutions to make awesome.

I live and work in Riga, Latvia and spend my days making kick ass things.

github curriculum vitae linkedin mail devternity

«Archive» · «Tags»

Atlassian SAL Plugin Settings

Has just discovered SAL PluginSettings entry point. No more painful plugin configuration storage for me. Good-bye propertyset-storage-toolkit, you was so young, so brave, so dumb :)

However, if you have more sophisticated needs than PluginSettings API, smth more than get, put, remove and you want all the power PropertySet could provide you - like lookup, more sophisticated data types, more sophisticated scopes (not like Global and Project-level only, but anything you could map to id, prefix and entityName) then you still might take a look into propertyset-storage-toolkit.

Note: please you SAL PluginSettings until you are really forced not to.

Read more

Jira - let's code update, edit issue operations (CRUD)

If you are familiar with JIRA and it’s API then you might agree, that some easy operations become a little difficult when it comes to coding (all the workflows, overall JIRA stack understanding, configuration items, integration with other systems etc).

The same is especially true when it comes to creating / updating JIRAs issues, which definitely is backbone for issue tracking systems. Some might argue that this type of things should be done by JIRA itself only. And I couldn't agree more. However JIRA tend to become issue-tracking puzzle-building machinery, where JIRA itself is LEGO puzzle only, so plenty of crazy stuff "you better shouldn't do this" or "you are not supposed to do that" is very popular in the JIRA plugin development world.
So, back to issue creation/update problem. This is kind of task I code almost in every plugin. And anyway, it bugs me every time :) It's difficult for me to remember all the nuances and it's context dependent as well. Lets see that JIRA development form says about this - create, update. Seems already solved problem, isn't it? However it takes me a plenty time to solve it out if I don't have out-the box solution in my local repository.
So, this time I decided to share a little code with you, and just a reminder to myself as well (I tend to forget things all the time).

And here comes the implementation itself:

Read more

atlas-cli IntelliJ support

I assume most of you, Atlassian Plugin SDK consumers are well familiar with atlas-cli command.

Read more

HOW-TO: propertyset-storage-toolkit - Jira configuration data storage made easy

Q: What is your favorite type of job? Atlassian Plugin SDK? A: Sure! Q: How exactly you like to code? A: As little as possibe!

Read more

Announcement: propertyset-storage-toolkit plugin has been released

Hi folks,

I assume many of you are Jira developers and I think I will express the overall feeling that configuration data storage in the Jira is a tricky moment many of you spent a lot of time on.

propertyset-storage-toolkit - is plugin to rescue from boilerplate configuration data storage coding. The plugin itself is more like library for configuration data persistence and retrieval (and a sample application along to start rolling).

Hopefully you will find it as useful as I do. The reason for me of creating one is - to help newcomers come on board the Jira Plugin Development process.

This said, here theere are list of feature available:

  • Database persistence using PropertySet for underlying data storage
  • Has no additional JIRA dependencies and provides enhanced PropertySet API sub-set
  • Could be used both as JAR dependency bundled with your plugin OR as separate plugin, depending one your current needs.
  • Provides a rich set of out-of box list of Scope objects. (Scope defines the sandbox of the PropertySet storage instance). At the moment following configuration options are supported

  • Named configuration scope (Example: My Gadget1 Configuration)
  • Action configuration scope (Example: your plugin may contain Administration action, which may require to persist and access administrator input).
  • Project configuration scope (Example: you may associate configuration information with project object)
  • Issue configuration scope (Example: you may associate configuration information with issue object)
  • The list of scopes is not limited and you may come-up with your own Scope
  • Apache 2 license


If you are interested to use, provide a feedback, review or any type of comments - you are always welcome to contribute.
Readme file is your place to start.
Hopefully with the help of you guys, will end-up with something really useful.

PS> Really enjoyable and productive weekend at the end of the day :)

Read more