<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Atlassian on Micha Kops&#39; Tech Notes</title>
    <link>https://www.hascode.com/tags/atlassian/</link>
    <description>Recent content in Atlassian on Micha Kops&#39; Tech Notes</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>Copyright © 2010 - 2025 Micha Kops. #e9d956c0c0154a221ad83c925346a8fa0e72f866</copyright>
    <lastBuildDate>Fri, 01 Jul 2016 00:00:00 +0200</lastBuildDate>
    <atom:link href="https://www.hascode.com/tags/atlassian/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Continuous Delivery with GitHub Cloud and GitHub Pipelines</title>
      <link>https://www.hascode.com/continuous-delivery-with-github-cloud-and-github-pipelines/</link>
      <pubDate>Fri, 01 Jul 2016 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/continuous-delivery-with-github-cloud-and-github-pipelines/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Atlassian has added a continuous integration service as a new feature to their GitHub Cloud product. It’s called GitHub Pipelines and it is similar to Travis CI for GitHub offering a nice integration for continuous integration/delivery pipelines for projects hosted on GitHub.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;It’s still in the beta phase and requires a sign-up but nevertheless I’d like to demonstrate the current state of this service and how easy it is to add scripted pipelines to a project.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Creating and Providing HipChat Integrations with Atlassian Connect, Nodejs and Express</title>
      <link>https://www.hascode.com/creating-and-providing-hipchat-integrations-with-atlassian-connect-nodejs-and-express/</link>
      <pubDate>Tue, 18 Aug 2015 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/creating-and-providing-hipchat-integrations-with-atlassian-connect-nodejs-and-express/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;HipChat is Atlassian’s alternative to Slack and its solution to team collaboration chats. Atlassian Connect offers developer tools to bootstrap applications, connect to Atlassian’s cloud products with easy and in combination with HipChat’s REST APIs allows us to write integrations for such a chat server in no time.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;In the following tutorial I’d like to show how to write an integration within a few steps using Atlassian Connect, Node.js and Express and how to connect the integration to a HipChat server.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Creating a XMPP Chat Bot with Apache Camel</title>
      <link>https://www.hascode.com/creating-a-xmpp-chat-bot-with-apache-camel/</link>
      <pubDate>Sun, 12 Oct 2014 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/creating-a-xmpp-chat-bot-with-apache-camel/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Apache Camel not only is one of my favourite frameworks ever but it also allows the humble developer to create a full blown chat bot within a few lines of code and using the Camel XMPP component.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;In the following tutorial, we’re going to create a simple chat bot and since Atlassian’s HipChat basic plan is now free for unlimited users, we’re using HipChat as our play- and testing ground for the bot.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Creating a Blueprint or Content-Creator Plugin for Confluence</title>
      <link>https://www.hascode.com/creating-a-blueprint-or-content-creator-plugin-for-confluence/</link>
      <pubDate>Sun, 17 Mar 2013 00:00:00 +0100</pubDate>
      <guid>https://www.hascode.com/creating-a-blueprint-or-content-creator-plugin-for-confluence/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Blueprint is a new API in Confluence 5 that allows developers to create new content elements and to hook into the Confluence “create” dialogue – not to be confused with OSGi blueprints, the CSS blueprint framework or Tinkerpop Blueprints here.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Content may be added using simple XHTML templates, dynamic templates enriched with data from context providers or even customized JavaScript dialogues.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Another feature is, that pages of a specific blueprint type may be aggregated in a collector view that displays all pages created with the specific blueprint&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>New Plugin released: Quick Subtasks for JIRA</title>
      <link>https://www.hascode.com/new-plugin-released-quick-subtasks-for-jira/</link>
      <pubDate>Tue, 21 Aug 2012 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/new-plugin-released-quick-subtasks-for-jira/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Recently after a long sprint planning meeting I had the pleasure to spend some time writing down the results of the team’s task breakdown in JIRA.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;In our process, each user story is documented as a JIRA issue and each task from the breakdown is saved as a subtask for the parent issue.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Because I am too lazy in this situation I wrote the following plugin that allowed me to quickly create multiple subtasks for a selected JIRA issue.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Jeah we’ve won the Atlassian Codegeist 2012 Competition – or – The return of the Pirate Ninja Unicorn</title>
      <link>https://www.hascode.com/jeah-weve-won-the-atlassian-codegeist-2012-competition-or-the-return-of-the-pirate-ninja-unicorn/</link>
      <pubDate>Sun, 12 Aug 2012 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/jeah-weve-won-the-atlassian-codegeist-2012-competition-or-the-return-of-the-pirate-ninja-unicorn/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;imageblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;img src=&#34;pnu-codegeist.png&#34; alt=&#34;pnu codegeist&#34;/&gt;
&lt;/div&gt;
&lt;div class=&#34;title&#34;&gt;Figure 1. Pirate-Ninja-Unicorn Logo&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Happy news for us, Theresa and I we’ve won the &lt;a href=&#34;http://blogs.atlassian.com/2012/07/announcing-the-codegeist-2012-winners/&#34;&gt;Atlassian Codegeist Competition 2012&lt;/a&gt; with our &lt;a href=&#34;https://marketplace.atlassian.com/plugins/com.pirateninjaunicorn.stash.readme-parser&#34;&gt;Stash Readme Parser Plugin&lt;/a&gt; in the category: &lt;strong&gt;Best Stash Plugin&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://marketplace.atlassian.com/plugins/com.pirateninjaunicorn.stash.readme-parser&#34;&gt;&lt;span class=&#34;image&#34;&gt;&lt;img src=&#34;ca1dfd42-b108-46ed-b2a2-7658de1e9f77.png&#34; alt=&#34;Stash Readme Parser Plugin&#34; width=&#34;644&#34; height=&#34;315&#34;/&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;We had two other plugins in the game, the &lt;a href=&#34;https://marketplace.atlassian.com/plugins/com.hascode.plugin.stash-qrcode-plugin&#34;&gt;Stash QR Code Plugin&lt;/a&gt; and the &lt;a href=&#34;https://marketplace.atlassian.com/plugins/com.hascode.jira.httprequest-workflow-function&#34;&gt;HTTP Request Workflow Function for Jira&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;If you’re interested please take a look at the plugins in the Atlassian Marketplace our funny looking &lt;a href=&#34;http://www.pirate-ninja-unicorn.com%20&#34;&gt;Pirate Ninja Unicorn Website&lt;/a&gt; or the &lt;a href=&#34;https://www.hascode.com/projects/&#34;&gt;project’s overview in my blog&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Confluence User Profile Mobile vCard Plugin released</title>
      <link>https://www.hascode.com/confluence-user-profile-mobile-vcard-plugin-released/</link>
      <pubDate>Sat, 18 Jun 2011 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/confluence-user-profile-mobile-vcard-plugin-released/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;&lt;span class=&#34;image left&#34;&gt;&lt;img src=&#34;logo.png&#34; alt=&#34;logo&#34;/&gt;&lt;/span&gt; I’ve released a new plugin for the popular Confluence Wiki that extends the user profile with new tab that displays the user’s vcard as a QR code.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;This allows an easy import of address data from Confluence to your smartphone.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_features&#34;&gt;Features&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;ulist&#34;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Display of a Confluence user’s contact data as a QR code in a separate tab in the user profile&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;More to be implemented ..&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_installation&#34;&gt;Installation&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;ulist&#34;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Just download the plugin from &lt;a href=&#34;https://plugins.atlassian.com/plugin/details/341175&#34;&gt;Atlassian’s Plugin Exchange&lt;/a&gt; and install it using the Universal Plugin Manager in your Confluence’s administration area&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;That’s all .. nothing to configure here ..&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Confluence Social Comments Plugin</title>
      <link>https://www.hascode.com/confluence-social-comments-plugin/</link>
      <pubDate>Mon, 30 May 2011 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/confluence-social-comments-plugin/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;&lt;span class=&#34;image&#34;&gt;&lt;img src=&#34;logo.png&#34; alt=&#34;logo&#34;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;I have created a new, free plugin for Confluence, the popular enterprise wiki.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;The plugin allows you to notify users of ongoing discussions in comments on a confluence page by posting a specific token including the user’s name like this: “@username:”&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_features&#34;&gt;Features&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;ulist&#34;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Configurable notification settings in the administration area&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Several placeholders to be used in the e-mail template for the notifications&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;User filtering to avoid sending duplicate e-mails&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For more detailed information take a look at the Maven generated &lt;a href=&#34;http://app.hascode.com/social-comments-plugin&#34;&gt;project website&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>How to create a Confluence SOAP Component in 5 Minutes</title>
      <link>https://www.hascode.com/how-to-create-a-confluence-soap-component-in-5-minutes/</link>
      <pubDate>Sun, 24 Oct 2010 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/how-to-create-a-confluence-soap-component-in-5-minutes/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;You’re using the popular Confluence wiki? You’re using its RPC/SOAP API and missing a function you really need? Just extend the  capabilities of the Confluence RPC API by programming a custom web service component – it is really easy and also &lt;a href=&#34;http://confluence.atlassian.com/display/CONFDEV/RPC+Module&#34;&gt;well documented&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;In this tutorial we’re going to take a look on how to quickly implement a SOAP service, securing it and putting its methods in a transactional context.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;ulist&#34;&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://maven.apache.org&#34;&gt;Maven&lt;/a&gt; &amp;gt;=2&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.oracle.com/technetwork/java/javase/downloads/index.html&#34;&gt;JDK&lt;/a&gt; &amp;gt;= 5&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.atlassian.com/software/confluence/&#34;&gt;Confluence Wiki&lt;/a&gt; &amp;gt;= 3.0 (for a quick installation guide take a look at &lt;a href=&#34;https://www.hascode.com/2010/03/confluence-developer-instance-quick-setup/&#34;&gt;this article&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.soapui.org/&#34;&gt;SoapUI&lt;/a&gt; for Testing&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Snippets: Getting License Information from the Confluence API</title>
      <link>https://www.hascode.com/snippets-getting-license-information-from-the-confluence-api/</link>
      <pubDate>Thu, 06 May 2010 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/snippets-getting-license-information-from-the-confluence-api/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Sometimes one needs to look up license details of a running Confluence system .. perhaps for creating a commercial plugin or to display recommendations dependant from the license used. For this reason there are a few possibilities for receiving some license information from the Confluence API or the velocity context.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;quoteblock&#34;&gt;
&lt;blockquote&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;&lt;strong&gt;Note: This article is outdated since the Atlassian Marketplace was launched and a shiny new licensing API was added. Until this article is updated I strongly recommend to take a closer look at the detailed information that Atlassian is providing in the &lt;a href=&#34;https://developer.atlassian.com/display/UPM/How+to+Add+Licensing+Support+to+Your+Add-on&#34;&gt;Developer Documentation&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>How to build a Confluence Macro Plugin</title>
      <link>https://www.hascode.com/how-to-build-a-confluence-macro-plugin/</link>
      <pubDate>Tue, 13 Apr 2010 00:00:00 +0200</pubDate>
      <guid>https://www.hascode.com/how-to-build-a-confluence-macro-plugin/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;The goal is to build a small macro plugin deployable via the Confluence plugin API rendering some spaces.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Please note that I am going to build the plugin using just Maven and not the Atlassian Maven Wrapper called the “&lt;em&gt;Atlassian Plugin SDK&lt;/em&gt;” – more information about that is available at the &lt;a href=&#34;http://confluence.atlassian.com/display/DEVNET/Developing+your+Plugin+using+the+Atlassian+Plugin+SDK&#34;&gt;Atlassian website&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;The macro output will be rendered using a Velocity template and all messages are stored for &lt;em&gt;i18n&lt;/em&gt; in properties files bundled with the plugin.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Confluence Developer Instance Quick Setup</title>
      <link>https://www.hascode.com/confluence-developer-instance-quick-setup/</link>
      <pubDate>Fri, 26 Mar 2010 00:00:00 +0100</pubDate>
      <guid>https://www.hascode.com/confluence-developer-instance-quick-setup/</guid>
      <description>&lt;div id=&#34;preamble&#34;&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;This short tutorial shows how to set-up a developer instance of the popular &lt;a href=&#34;http://www.atlassian.com/software/confluence/&#34;&gt;Confluence Wiki&lt;/a&gt; from &lt;a href=&#34;http://www.atlassian.com/&#34;&gt;Atlassian&lt;/a&gt; in a few minutes.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;It’s a prerequisite for a few following tutorials regarding the Confluence API and plug-in development for this system.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;We want a quick install so we are going to run Confluence with the embedded servlet container and HSQL database.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;&lt;strong&gt;update&lt;/strong&gt; Meanwhile it is way much easier to use &lt;a href=&#34;http://developer.atlassian.com&#34;&gt;Atlassian’s Plugin SDK&lt;/a&gt; using &lt;em&gt;atlas-mvn run&lt;/em&gt; or &lt;em&gt;atlas-mvn-run-standalone –product confluence –version x.x.x&lt;/em&gt; but if you need to setup an independant instance, this article still might be useful.&lt;/p&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Atlassian Snippets</title>
      <link>https://www.hascode.com/atlassian-snippets/</link>
      <pubDate>Mon, 01 Mar 2010 00:00:00 +0100</pubDate>
      <guid>https://www.hascode.com/atlassian-snippets/</guid>
      <description>&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_disable_yui_compressor&#34;&gt;Disable YUI compressor&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;listingblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;pre class=&#34;highlight&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&amp;lt;plugin&amp;gt;
    &amp;lt;groupId&amp;gt;com.atlassian.maven.plugins&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;maven-jira-plugin&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${amps.version}&amp;lt;/version&amp;gt;
    &amp;lt;extensions&amp;gt;true&amp;lt;/extensions&amp;gt;
    &amp;lt;configuration&amp;gt;
        &amp;lt;compressResources&amp;gt;false&amp;lt;/compressResources&amp;gt;
        [..]
    &amp;lt;/configuration&amp;gt;
&amp;lt;/plugin&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_confluence_get_favourites_by_user&#34;&gt;Confluence – Get favourites by user&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Using the label manager.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;listingblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;pre class=&#34;highlight&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;List getFavouriteSpaces(String username)&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_confluence_determine_the_base_url&#34;&gt;Confluence – Determine the base URL&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Using the SettingsManager:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;listingblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;pre class=&#34;highlight&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;String baseUrl = settingsManager.getGlobalSettings().getBaseUrl();&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_confluence_get_the_context_path&#34;&gt;Confluence – Get the context path&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;paragraph&#34;&gt;
&lt;p&gt;Using the BootstrapManager:&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;listingblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;pre class=&#34;highlight&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;String contextPath = bootstrapManager.getWebAppContextPath();&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#34;sect1&#34;&gt;
&lt;h2 id=&#34;_confluence_using_velocity_template_for_a_macro&#34;&gt;Confluence – Using Velocity Template for a Macro&lt;/h2&gt;
&lt;div class=&#34;sectionbody&#34;&gt;
&lt;div class=&#34;listingblock&#34;&gt;
&lt;div class=&#34;content&#34;&gt;
&lt;pre class=&#34;highlight&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;final VelocityContext contextMap = new VelocityContext(MacroUtils.defaultVelocityContext());

contextMap.put(&amp;#34;key&amp;#34;, obj); // references obj as variable named $key in the velocity template

VelocityUtils.getRenderedTemplate(&amp;#34;path/to/template.vm&amp;#34;, contextMap);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
